Ir para conteúdo

Npc Spell Seller


139

Posts Recomendados

Tipo do script: NPC

Protocolo (versão do Tibia): 8.4

Servidor utilizado: TFS

Nível de experiência: --

Adicionais/Informações: --

 

Eu preciso de um NPC que vende ( de permissão ao player de usar ) uma spell.

Não precisa explicar como funciona o script porque eu já sei.

 

O dialogo pode ser assim com o npc:

EX:

Hi

<Hell wave>

Yes.

 

Custo da spell, se possível de graça.

Requerimento de LEVEL -> 200 ou 0.

Link para o comentário
Compartilhar em outros sites

Acho que funciona:

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

 

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end

function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end

function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end

function onThink() npcHandler:onThink() end

 

function creatureSayCallback(cid, type, msg)

if(not npcHandler:isFocused(cid)) then

return false

end

 

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

 

if(msgcontains(msg, 'exori')) then

selfSay('voce gostaria de aprender exori?', cid)

talkState[talkUser] = 1

elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then

if(getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8) then

if(getPlayerLevel(cid) >= 200 and getPlayerLearnedInstantSpell(cid, "Exori") == FALSE) then

doPlayerLearnInstantSpell(cid, "Exori")

selfSay('Agora voce aprendeu a magia exori.', cid)

else

selfSay('Voce ja aprendeu esta magia ou não possui nivel suficiente.', cid)

end

else

selfSay('Apenas Knights e Elite Knights podem aprender esta magia.', cid)

end

talkState[talkUser] = 0

elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then

talkState[talkUser] = 0

selfSay('Certo então.', cid)

end

 

if(msgcontains(msg, 'exura')) then

selfSay('voce gostaria de aprender exura?', cid)

talkState[talkUser] = 2

elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then

if getPlayerVocation(cid) > 0 then

if(getPlayerLevel(cid) >= 10 and getPlayerLearnedInstantSpell(cid, "Exura") == FALSE) then

doPlayerLearnInstantSpell(cid, "Exura")

selfSay('Agora voce aprendeu a magia exura.', cid)

else

selfSay('Voce ja aprendeu esta magia ou não possui nivel suficiente.', cid)

end

else

selfSay('Apenas jogadores com vocações podem aprender esta magia.', cid)

end

talkState[talkUser] = 0

elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then

talkState[talkUser] = 0

selfSay('Certo então.', cid)

end

 

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

Testa ae, depois fala se funcionou. Até.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...