Ir para conteúdo

[Encerrado] [NPC] Spells 8.60


Daskyn

Posts Recomendados

Olá galera do XTibia , tudo tranquilo ? Bom , gostaria de pedir a vocês , um NPC que adicionasse uma spell ao player , e mudasse a outfit do mesmo.

Exemplo : 

Spoiler

Um player está andando pelo mapa , ele encontra um NPC e diz :
- Hi (Player)
- Olá !PLAYERNAME! , eu sou Yuri , gostaria de aprender a spell exevo gran mas frigo ? (NPC)
- Yes (Player)

Logo então , o Player , poderia utilizar exevo gran mas frigo (mas claro , continuaria com todas as outras spells [ por exemplo se ele for um Paladin , continua com spells de Palandin , porém é adicionado o exevo gran mas frigo ]  , e o NPC mudaria sua outfit para 985.

Bom , é isso galera ^.^
Desde já muito obrigado XD

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
NPC: Spell Seller
Créditos: Vodkart
 
Crie um arquivo com a extensão .xml chamado "SpellSeller.xml" em "data\npc" e adicione o código abaixo :
<?xml version="1.0"?><npc name="Spell Seller" script="data/npc/scripts/spell_trade.lua" walkinterval="50000" floorchange="0"><health now="100" max="100"/><look type="129" head="95" body="116" legs="121" feet="115" addons="3"/><parameters><parameter key="message_greet" value="Hello |PLAYERNAME|.I have many {spells} to sell for you! {trade}" /></parameters></npc>

 

Crie um arquivo com a extensão .lua chamado "spell_trade.lua" em "data\npc\scripts" e adicione o código abaixo :
local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endfunction creatureSayCallback(cid, type, msg)if(not npcHandler:isFocused(cid)) thenreturn falseendlocal talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cidlocal shopWindow = {}local spells = {{id=1950, buy = 150, name = "Exana Pox", spell_name = "Andidote", vocations = {1,2,3,4,5,6,7,8}, level = 10},{id=1950, buy = 2500, name = "Exori", spell_name = "Berserk", vocations = {4,8}, level = 35},{id=1950, buy = 80, name = "Exiva", spell_name = "Find Person", vocations = {1,2,3,4,5,6,7,8}, level = 8},{id=2182, buy = 5000, name = "Exori Flam", spell_name = "Flame Strike", vocations = {1,2,5,6}, level = 12},{id=1950, buy = 8000, name = "Utito Tempo", spell_name = "Blood Rage", vocations = {4,8}, level = 60},{id=1950, buy = 2000, name = "Exeta Res", spell_name = "Challenge", vocations = {8}, level = 20},{id=1950, buy = 5000, name = "Exori Gran", spell_name = "Fierce Berserk", vocations = {4,8}, level = 70},{id=1950, buy = 500, name = "Utevo Gran Lux", spell_name = "Great Light", vocations = {1,2,3,4,5,6,7,8}, level = 13},{id=1950, buy = 1500, name = "Exori Mas", spell_name = "Groundshaker", vocations = {4,8}, level = 33},{id=1950, buy = 1500, name = "Exana Mort", spell_name = "Wound Cleansing", vocations = {4,8}, level = 30}}local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)if not getPlayerLearnedInstantSpell(cid, shopWindow[item].Words) thenif getPlayerLevel(cid) >= shopWindow[item].Level thenif isInArray(shopWindow[item].Vocs, getPlayerVocation(cid)) thendoPlayerRemoveMoney(cid, shopWindow[item].Price)doPlayerLearnInstantSpell(cid, shopWindow[item].Words)npcHandler:say("você aprendeu uma nova magia chamada "..shopWindow[item].Words, cid)elsenpcHandler:say("você não tem a vocação para comprar está spell.", cid)endelsenpcHandler:say("você precisa ter level "..shopWindow[item].Level.." ou mais para comprar essa magia.", cid)endelsenpcHandler:say("você já aprendeu essa magia.", cid)endreturn trueendif msgcontains(msg, 'trade') or msgcontains(msg, 'spells') thenfor var, item in pairs(spells) doshopWindow[item.id] = {Level = item.level, Vocs = item.vocations, item_id = item.id, Price = item.buy, subType = 0, Words = item.spell_name, SpellName = item.name}endopenShopWindow(cid, spells, onBuy, onSell)endreturn trueendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())

 

*Você pode modificar o script conforme a sua necessidade.

Editado por Stigal
Link para o comentário
Compartilhar em outros sites

  • 8 months later...
Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...