mylorc 0 Postado Novembro 14, 2013 Share Postado Novembro 14, 2013 (editado) [Resolvido]Olá,preciso de um npc que de as segundas profissões de perssonagens como master sorcer,elder druid,royal paladin,elite knight. Alguém pode arrumar o npc para mim? Obs:Para players lvl 250. Editado Novembro 14, 2013 por mylorc Link para o comentário Compartilhar em outros sites More sharing options...
0 markindoot 46 Postado Novembro 14, 2013 Share Postado Novembro 14, 2013 (editado) npc/script local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endfunction creatureSayCallback(cid, type, msg)if(not npcHandler:isFocused(cid)) thenreturn falseendif msgcontains(msg, "destino") and getPlayerStorageValue(cid, oraculo) - 1 thenselfSay("Deseja começar? {sim}", cid)talkState[cid] = 1elseif msgcontains(msg, "destino") and getPlayerStorageValue(cid, oraculo) == 1 thenselfSay("Voce de novo, voce quer encarar seu destino?", cid)talkState[cid] = 1endif msgcontains(msg, 'sim') and talkState[cid] == 0 and getPlayerLevel(cid) >= 250 thenselfSay("Entao voce quer sair desta salinha?", cid)talkState[cid] = 1elseif talkState[cid] == 250 and msgcontains(msg, 'sim') and getPlayerLevel(cid) < 250 thenselfSay("Voce acha q isso eh uma brincadeira? Volte quando estiver forte.", cid)setPlayerStorageValue(cid, oraculo, 1)return trueendif msgcontains(msg, 'sim') and talkState[cid] == 1 thenselfSay("Tudo bem. Mas para ir para seguir o caminho voce tem que pegar a vocacao nova, {ok}?", cid)talkState[cid] = 2endif msgcontains(msg, 'ok') and talkState[cid] == 2 thenselfSay("Otimo... Voce quer ser {promovido}?...", cid)selfSay("...", cid)talkState[cid] = 3endif msgcontains(msg, 'promovido') and talkState[cid] == 3 thenif isInArray({5,6,7,8}, getPlayerVocation(cid)) thenif(getPlayerMoney(cid) >= 100000) thenif getPlayerLevel(cid) > 100 thendoPlayerRemoveMoney(cid, 100000)doPlayerSetVocation(cid, getPlayerVocation(cid)+4)setPlayerStorageValue(cid, 45211, 1)selfSay('Agora você possui a nova vocação!', cid)elseselfSay('Voce nao tem level suficiente!', cid)endelseselfSay('Você não tem dinheiro!', cid)endelseselfSay('Voce precisa ser Bruxo, Elite Knight, Elder Druid ou Royal Paladin para ganhar a vocação nova!', cid)endif talkState[cid] == 8 or talkState[cid] == 9 or talkState[cid] == 10 or talkState[cid] == 11 thenselfSay("Otimo agora, que voce e um Elementalista, voce pode usar novas spells... {Ok}?", cid)talkState[cid] = 12endif msgcontains(msg, "ok") and talkState[cid] == 12 thenselfSay("Voce terá de retornar a Hermes? {Cidade}", cid)selfSay("Quer ir mesmo?", cid)talkState[cid] = 13endif msgcontains(msg, "Cidade") and talkState[cid] == 13 thenselfSay("Você Será Movido Para Hermes City OK? {sim}", cid)talkState[cid] = 14elseif msgcontains(msg, "thaiszz") and talkState[cid] == 13 thenselfSay("Tem certeza q deseja {VIVER} em Thais?", cid)talkState[cid] = 15elseif msgcontains(msg, "venorezz") and talkState[cid] == 13 thenselfSay("Tem certeza q deseja {VIVER} em Venore?", cid)talkState[cid] = 16endif msgcontains(msg, "sim") and talkState[cid] == 14 thenselfSay("Boa viagem e tome cuidado", cid)doPlayerSetTown(cid, 2)-------------------------------------------------------ID da nova cidade (Conferido pelo map editor)doTeleportThing(cid, {x=1017, y=1057, z=7, stackpos=253})-------------------coordenadas da nova cidadedoPlayerSendTextMessage(cid, 22,"Você Agora é Um Elementalista e Pode Usar Novas Magias!")elseif msgcontains(msg, "sim") and talkState[cid] == 15 thenselfSay("Boa viagem e tome cuidado", cid)doPlayerSetTown(cid, 5)-------------------------------------------------------ID da nova cidade (Conferido pelo map editor)doTeleportThing(cid, {x=32369, y=32241, z=7, stackpos=253})-------------------coordenadas da nova cidadedoSendMagicEffect({x=32369, y=32241, z=7, stackpos=253}, 10)------------------coordenadas do efeito de teleportedoPlayerSendTextMessage(cid, 22,"Bem vindo. Agora vc eh um cidadao de Thais")elseif msgcontains(msg, "sim") and talkState[cid] == 16 thenselfSay("Boa viagem e tome cuidado", cid)doPlayerSetTown(cid, 6)-------------------------------------------------------ID da nova cidade (Conferido pelo map editor)doTeleportThing(cid, {x=32957, y=32076, z=7, stackpos=253})-------------------coordenadas da nova cidadedoSendMagicEffect({x=32957, y=32076, z=7, stackpos=253}, 10)------------------coordenadas do efeito de teleportedoPlayerSendTextMessage(cid, 22,"Bem vindo. Agora vc eh um cidadao de Venore")endreturn trueendendendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new()) npc: <?xml version="1.0" encoding="UTF-8"?> <npc name="The Oracle" script="data/npc/scripts/promotion.lua" walkinterval="0" floorchange="0"> <health now="100" max="100"/> <look typeex="1448"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|! How can I {help} you?" /> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="help" /> <parameter key="keyword_reply1" value="I can give you the {first promotion} and {second promotion}." /> </parameters> </npc> Editado Novembro 14, 2013 por markindoot Link para o comentário Compartilhar em outros sites More sharing options...
0 mylorc 0 Postado Novembro 14, 2013 Autor Share Postado Novembro 14, 2013 Eu quero sem que ele seja teleportado para outra city e sem que precise pagar,o que tenho que tirar? Obrigado. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alexclusive 687 Postado Novembro 14, 2013 Share Postado Novembro 14, 2013 Amigo, acho que você postou sem querer em SPRITING.... estarei movendo para SCRIPTING Abraço Link para o comentário Compartilhar em outros sites More sharing options...
0 mylorc 0 Postado Novembro 14, 2013 Autor Share Postado Novembro 14, 2013 Amigo, acho que você postou sem querer em SPRITING.... estarei movendo para SCRIPTING Abraço Ahh é isso haha Realmente e creio ter feito mas de uma vez,irei prestar mais atenção,obrigado. Link para o comentário Compartilhar em outros sites More sharing options...
0 zipter98 1101 Postado Novembro 14, 2013 Share Postado Novembro 14, 2013 (editado) Tenta: 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 local need_lv = 250 if msgcontains(msg, 'promotion') or msgcontains(msg, 'promote') then selfSay("Então, você gostaria de ser promovido?", cid) doPlayerSendTextMessage(cid, 27, "Say yes or no. You need be at least level "..need_lv.." to be promoted.") talkState[talkUser] = 1 return true elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then if getPlayerLevel(cid) >= need_lv then selfSay("Parabéns, você foi promovido.") doPlayerSetPromotionLevel(cid, 1) talkState[talkUser] = 0 return true else selfSay("Você precisa estar, no mínimo, level "..need_lv.." para ser promovido.", cid) talkState[talkUser] = 0 return true end elseif msgcontains(msg, 'no') and talkState[talkUser] == 1 then selfSay("Ok, então...", cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) O XML, você sabe criar? Editado Novembro 14, 2013 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
0 zipter98 1101 Postado Janeiro 15, 2014 Share Postado Janeiro 15, 2014 Tópico movido para a seção de dúvidas e pedidos resolvidos. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
mylorc 0
[Resolvido]Olá,preciso de um npc que de as segundas profissões de perssonagens como master sorcer,elder druid,royal paladin,elite knight.
Alguém pode arrumar o npc para mim?
Obs:Para players lvl 250.
Editado por mylorcLink para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados