Postado Novembro 1, 2014 10 anos Olá, eu quero que algum mago das programações em .lua me crie um npc pra mim, este ira fazer a promote de vocations (royal paladin, elite knight, elder druid e master sorc) eu suas evoluões no OT (lord paladin, monster knight, majestyc druid e supreme sorc... vocações by Fox world [estão na sequencia, exemplo :sorcerer 1 master sorcerer 5 e supreme sorcerer 9]) a promotion vai ser de graça e n precisa de lvl, o nome do npc vai ser Mestre raikatu... dialogo: Olá eu sou o Mestre Raikatu, oque você quer comigo? promotion/ Eu posso lhe ensinar uma nova promotion, voce aceita? yes/no (se no) Então adeus jovém gafanhoto (se yes) Parabéns você evoluiu sua promotion! bye Siga sua jornada por esta nova era a aparencia fica a criterio do scripter, dou REP+++ muito obrigado... up! Conquistei com glória o respeito dos irmãos (8)
Postado Novembro 1, 2014 10 anos raikatu.lua (data/npc/scripts): local tab = { [5] = {prom = 9}, -- [vocid] = {prom = newvocid}, [6] = {prom = 10}, [7] = {prom = 11}, [8] = {prom = 12} } 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, 'promotion')) then if tab[getPlayerVocation(cid)] then talkState[talkUser] = 1 selfSay('Eu posso lhe ensinar uma nova promotion, voce aceita?', cid) else talkState[talkUser] = 0 selfSay('Eu nao posso te promover, voce ainda nao esta pronto.', cid) end elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if (getPlayerVocation(cid) ~= tab[getPlayerVocation(cid)].prom) then talkState[talkUser] = 0 doPlayerSetVocation(cid, tab[getPlayerVocation(cid)].prom) doSendMagicEffect(getThingPos(cid), CONST_ME_GIFT_WRAPS) selfSay('Parabens, voce evoluiu sua promotion!', cid) else talkState[talkUser] = 0 selfSay('Voce ja foi promovido, continue sua jornada.', cid) end elseif (msgcontains(msg, 'no') and talkState[talkUser] == 1) then talkState[talkUser] = 0 selfSay('Entao adeus, jovem gafanhoto.', cid) end return true end Mestre Raikatu.xml (data/npc): <npc name="Mestre Raikatu" script="data/npc/scripts/raikatu.lua" access="5" lookdir="1"> <health now="1000" max="1000"/> <look type="325" head="39" body="114" legs="114" feet="39" addons="1"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Eu sou o Mestre Raikatu, o que voce quer comigo?" /> </parameters> </npc> Editado Novembro 12, 2014 10 anos por Suicide (veja o histórico de edições) The corrupt fear us. The honest support us. The heroic join us.
Postado Novembro 2, 2014 10 anos Autor Cara, só ta com um probleminha, ele fica dizendo "18:08 Mestre Raikatu: Eu nao posso te promover, voce ainda nao esta pronto." eu ja fui lah, com todas as vocations, lvl 20, 45, 300 e ele sempre diz que eu não estou pronto, vc sabe oque ta errado? Conquistei com glória o respeito dos irmãos (8)
Postado Novembro 2, 2014 10 anos Teste assim -- Códigos do Suicide. local tab = { [5] = {prom = 9}, -- [vocid] = {prom = newvocid}, [6] = {prom = 10}, [7] = {prom = 11}, [8] = {prom = 12}, } 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 t = tab[getPlayerVocation(cid)] local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if (msgcontains(msg, 'promotion')) then if t then talkState[talkUser] = 1 selfSay('Eu posso lhe ensinar uma nova promotion, voce aceita?', cid) else talkState[talkUser] = 0 selfSay('Eu nao posso te promover, voce ainda nao esta pronto.', cid) end elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if (getPlayerVocation(cid) ~= t.prom) then talkState[talkUser] = 0 doPlayerSetVocation(cid, t.prom) doSendMagicEffect(getThingPos(cid), CONST_ME_GIFT_WRAPS) selfSay('Parabens, voce evoluiu sua promotion!', cid) else talkState[talkUser] = 0 selfSay('Voce ja foi promovido, continue sua jornada.', cid) end elseif (msgcontains(msg, 'no') and talkState[talkUser] == 1) then talkState[talkUser] = 0 selfSay('Entao adeus, jovem gafanhoto.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Tony Araújo
Postado Novembro 3, 2014 10 anos Autor Ótimo! reputados os dois, mas você poderia me ajudar com mais uma coisa? não ta aparecendo "you are a master sorcerer" e aparece este erro na distro [02/11/2014 22:46:25] [Warning - Vocations::getVocation] Vocation 4294967295 not found. [02/11/2014 22:46:25] [Warning - Vocations::getVocation] Vocation 4294967295 not found. [02/11/2014 22:46:25] Sorc foda has logged in. Eu coloquei as vocations errado? Conquistei com glória o respeito dos irmãos (8)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.