139 27 Postado Janeiro 30, 2011 Share Postado Janeiro 30, 2011 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 More sharing options...
Demonbholder 420 Postado Janeiro 30, 2011 Share Postado Janeiro 30, 2011 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 More sharing options...
Posts Recomendados