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!
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)
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?
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())
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?
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.