Newtonnotwen 80 Postado Agosto 17, 2012 Share Postado Agosto 17, 2012 (editado) Esse npc da uma vocação que só dura até o player deslogar. Pode ser usado como uma vocação especial ou seja se o player deslogar perde ela e terá que comprar novamente. Em data/npc crie um arquivo.xml nomeie para newvoc e adicione: <?xml version="1.0" encoding="UTF-8"?> <npc name="Newvoc" script="data/npc/scripts/newvoc.lua" walkinterval="1000" floorchange="1"> <health now="100" max="100"/> <look type="302" head="114" body="114" legs="200" feet="114" addons="3"/> <parameters> <parameter key="message_greet" value="Deseja virar nova prof? "/> </parameters> </npc> Em data/npc/scripts crie um arquivo.lua nomeie para newvoc e adicione: 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, 'yes') or msgcontains(msg, 'sim')) then selfSay('Diga newvoc.', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'newvoc') and talkState[talkUser] == 1) then if(getPlayerItemCount(cid, 2160) >= 100) then doPlayerRemoveItem(cid, 2160, 100) doPlayerSetVocation(cid, 10) selfSay('Agora você possui a nova vocação!', cid) else selfSay('Você não tem dinheiro!', cid) end talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Editando: -Roxo: Looktype -Verde escuro: Mensagem após falar hi -Dourado: Mensagem que o player precisara dizer para o npc continuar -Vermelho: Próxima mensagem do npc -Verde claro: Próxima mensagem do player -Marrom: Id do item a ser removido -Violeta: Quantidade do item a ser removido -Cinza: Id da vocação -Azul Turco: Mensagem de confirmação -Teal: Mensagem de cancelamento Obs: Autor desconhecido (pelo menos por mim) Créditos: Autor desconhecido ----- Pelo script Newtonnotwen ----- Pela edição e pelo tutorial Imagens: -------------------Ouça uma musica enquanto instala o npc Editado Agosto 19, 2012 por Newtonnotwen Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/ Compartilhar em outros sites More sharing options...
rhamer 5 Postado Agosto 18, 2012 Share Postado Agosto 18, 2012 lol legal amigo muito interessante Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/#findComment-1318431 Compartilhar em outros sites More sharing options...
Newtonnotwen 80 Postado Agosto 19, 2012 Autor Share Postado Agosto 19, 2012 Adicionei para o npc falar pelo defaut além do private com o player. Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/#findComment-1319759 Compartilhar em outros sites More sharing options...
Raidou 16 Postado Agosto 19, 2012 Share Postado Agosto 19, 2012 Hmm.Muito interessante este npc. Eu gosto mais da função que ele fala por private é mais legal e organizado.rsrs Abraços. Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/#findComment-1319765 Compartilhar em outros sites More sharing options...
Newtonnotwen 80 Postado Agosto 19, 2012 Autor Share Postado Agosto 19, 2012 Hmm.Muito interessante este npc. Eu gosto mais da função que ele fala por private é mais legal e organizado.rsrs Abraços. Ele fala pelos 2, tipo: Player (private): Hi Npc (Private): Hello Npc (defaut): Hello Ao mesmo tempo... Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/#findComment-1319791 Compartilhar em outros sites More sharing options...
LuckOake 400 Postado Agosto 19, 2012 Share Postado Agosto 19, 2012 (editado) @Newtonnotwen Pelo que eu vi, esse NPC não é exatamente um NPC que dá vocation só até o player deslogar. Isso só funcionaria se a vocation possuísse o fromvoc diferente do ID dela mesma. Por exemplo, se colocar pra virar Druid, a vocation continuaria mesmo deslogando. Para seu NPC ficar 100% igual você diz, teria que usar uma storage e um creaturescript. Gostaria que eu fizesse para você? E dica, esse trecho: if(getPlayerItemCount(cid, 2160) >= 100) then doPlayerRemoveItem(cid, 2160, 100) Poderia ser reduzido para isso: if doPlayerRemoveMoney(cid, 1000000) then Editado Agosto 19, 2012 por LuckOake Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/#findComment-1319810 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Agosto 19, 2012 Share Postado Agosto 19, 2012 @Newtonnotwen Pelo que eu vi, esse NPC não é exatamente um NPC que dá vocation só até o player deslogar. Isso só funcionaria se a vocation possuísse o fromvoc diferente do ID dela mesma. Por exemplo, se colocar pra virar Druid, a vocation continuaria mesmo deslogando. Para seu NPC ficar 100% igual você diz, teria que usar uma storage e um creaturescript. Gostaria que eu fizesse para você? E dica, esse trecho: if(getPlayerItemCount(cid, 2160) >= 100) then doPlayerRemoveItem(cid, 2160, 100) Poderia ser reduzido para isso: if doPlayerRemoveMoney(cid, 1000000) then eu qria ver vc fazer sim se puder posta aqui mesmo Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/#findComment-1319813 Compartilhar em outros sites More sharing options...
LuckOake 400 Postado Agosto 19, 2012 Share Postado Agosto 19, 2012 (editado) @Vodkart Não sei por quê, mas to com impressão de que falei alguma bobeira e você vai usar isso para me zoar .-. Please, se falei algo errado apenas me corrija, não me maltrate haehuaeh Mas ok, vou tentar fazer aqui. Se falei algo sem sentido, edito depois. NPC: 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, 'yes') or msgcontains(msg, 'sim')) then selfSay('Diga newvoc.', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'newvoc') and talkState[talkUser] == 1) then if doPlayerRemoveMoney(cid, 1000000) then voc = getPlayerVocation(cid) setPlayerStorageValue(cid, 7123, voc) doPlayerSetVocation(cid, 10) selfSay('Agora você possui a nova vocação!', cid) else selfSay('Você não tem dinheiro!', cid) end talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) voclogin.lua: function onLogin(cid) voc = getPlayerStorageValue(cid, 7123) if voc ~= -1 then doPlayerSetVocation(cid, voc) end return true end Editado Agosto 19, 2012 por LuckOake Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/#findComment-1319817 Compartilhar em outros sites More sharing options...
Newtonnotwen 80 Postado Agosto 19, 2012 Autor Share Postado Agosto 19, 2012 Obs: Então testa, pra você ver se perde a vocação... Perde sim, na verdade não era pra perde, só que quando tava editando percebi que perde. Testa antes de confirmar algo. Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/#findComment-1319818 Compartilhar em outros sites More sharing options...
LuckOake 400 Postado Agosto 19, 2012 Share Postado Agosto 19, 2012 @Newtonnotwen Eu testei e a vocation continuou. Teste ai também, crie um char sem promotion Knight, coloque o NPC pra dar vocation 3, compre e logue. Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/#findComment-1319821 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Agosto 19, 2012 Share Postado Agosto 19, 2012 @Vodkart Não sei por quê, mas to com impressão de que falei alguma bobeira e você vai usar isso contra mim .-. Please, se falei algo errado apenas me corrija, não me maltrate haehuaeh Mas ok, vou tentar fazer aqui. Se falei algo sem sentido, edito depois. NPC: 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, 'yes') or msgcontains(msg, 'sim')) then selfSay('Diga newvoc.', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'newvoc') and talkState[talkUser] == 1) then if doPlayerRemoveMoney(cid, 1000000) then voc = getPlayerVocation(cid) setPlayerStorageValue(cid, 7123, voc) doPlayerSetVocation(cid, 10) selfSay('Agora você possui a nova vocação!', cid) else selfSay('Você não tem dinheiro!', cid) end talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) voclogin.lua: function onLogin(cid) voc = getPlayerStorageValue(cid, 7123) if voc ~= -1 then doPlayerSetVocation(cid, voc) end return true end como eu imaginei, usou o mesmo método que eu, salvou a voc em uma storage e deu qndo logou é isso ai cara parabens n tenho rep agr pra te da Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/#findComment-1319823 Compartilhar em outros sites More sharing options...
Newtonnotwen 80 Postado Agosto 19, 2012 Autor Share Postado Agosto 19, 2012 (editado) Editado Agosto 19, 2012 por Newtonnotwen Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/#findComment-1319827 Compartilhar em outros sites More sharing options...
LuckOake 400 Postado Agosto 19, 2012 Share Postado Agosto 19, 2012 @Vodkart Ui, me senti especial. Um Deus dos scripts me elogiando ou me zoando através de palavras com sentido subentendido @Newtonnotwen Tenta usar as vocations originais do Tibia (Druid, Knight, Pally, Sorc). Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/#findComment-1319834 Compartilhar em outros sites More sharing options...
Newtonnotwen 80 Postado Agosto 19, 2012 Autor Share Postado Agosto 19, 2012 As vocações possuem o mesmo id, não vai mudar nada. Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/#findComment-1319849 Compartilhar em outros sites More sharing options...
LuckOake 400 Postado Agosto 19, 2012 Share Postado Agosto 19, 2012 (editado) @Newtonnotwen Hm... Estranho. Bom, no fim isso não importa muito. Ai sumiu, aqui não, ok, cada server é diferente. Mas pra quem tiver o problema da vocation não sumir, igual eu, basta usar o fix que postei ali em cima. Editado Agosto 20, 2012 por LuckOake Link para o comentário https://xtibia.com/forum/topic/192151-npc-vende-voca%C3%A7%C3%A3o-que-s%C3%B3-dura-at%C3%A9-deslogar/#findComment-1319856 Compartilhar em outros sites More sharing options...
Posts Recomendados