Postado Fevereiro 22, 2017 8 anos Olá pessoal, - primeiramente obrigado a todos que estiverem dispostos a me ajudar se alguem estiver disposto em me ajudar presciso de 1 NPC Mission, ele funciona mais ou menos assim: o npc vai conter algumas missoes de rpg logistico.. no final o player vai ganhar uma promotion! no caso de DRUID>para>ELDER DRUID esses dias eu tava navegando pelo site, e vi alguns topicos onde membros mais experientes diziam, "crie topicos criativos, com ideias novas e diferenciadas, assim voçê despertará a curiosidade de bons scripters, e talvez saia lucrando um otimo conteudo para teu servidor." - entao ai vai.. assim ficaria os dialagos.. (faça do jeito que der, nao estou exigindo nada, só vou escrever como exemplo) dialogo: 1 - pedindo a primeira missao. player: hi > npc: olá |playername|, oque esta procurando aqui neste lugar remoto? {mission} player: mission > npc: um antigo amigo e agora meu rival esta com 1 item que me pertence.. traga-o para mim.. player: bye dialogo: 2 - entregando a primeira missao e pegando outra. player: hi >npc: olá |playername|, oque esta procurando aqui neste lugar remoto? {mission} player: mission >npc: voce ficou de me entregar 1 item! BOSS Zukgroak certamente possui este item. voce trouxe-o para mim? player: yes (aqui o npc deve recolher 1 Jewelled Amulet<-("2130"), e continuar falando.. \/ ... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... >npc: voce prova ser corajoso, mais me diga, voce esta procurando uma nova {promotion} sim ou nao? player: yes >npc: primeiramente, para ganhar promotion voce deve me trazer no minimo 10 bitcoins como pagamento. dialago: 3 - continuaçao>pagamento dos bitcoins"(<- gold ingot 9971)" player: hi >npc: olá |playername|, oque esta procurando aqui neste lugar remoto? player: mission >npc: seje objetivo em suas vindas até este lugar, VOCE TROUXE OU NAO MEU PAGAMENTO? player: yes>npc: OTIMO, voce certamente vai prescisar ser mais forte para a proxima missao, felizmente vou lhe ajudar com isso, lhe darei 1 nova arma para usar em seus combates. (aqui o npc recolhe os 10 gold ingot, e adiciona um item diferente para cada vocaçao knight=1 sword, paladin=1 bow, mages=1 staff, se nao for possivel fazer isto pode ser apenas 1 item para cada vocaçao mesmo) dialago: 4 pegando nova missao player: hi >npc: olá |playername|, oque esta procurando aqui neste lugar remoto? player: mission >npc: primeiro me traga um Powered Crystal(<-"9141"). player: bye dialago: 4 pegando entregando o Powered Crystal. player: hi >npc: olá |playername|, oque esta procurando aqui neste lugar remoto? {mission} player:mission >npc: nao direi nenhuma palavra até voce me entregar um Powered Crystal. {entregar} player: entregar (agora o npc recolhe o Powered Crystal(<-"9141") e da uma nova missao.. >npc: procure por meu rival The Imperror Master, e MATE-O !!! player: bye dialago: 5 entregando a ultima missao e recompensa final player: hi >npc: olá |playername|, oque esta procurando aqui neste lugar remoto? {mission} player:mission >npc: e entao? voce obteve sucesso em matar The Imperror Master? player: yes (agora o npc vai checar se o player tem 1 storange que ele ganha matando o monstro "The Imperror Master") >npc: otimo, isto era tudo oque eu prescisava. obrigado meu caro, voce agora sera conhecido como NEXTH PLAYER, pois provou sua fidelidade. (agora o npc adiciona uma promotion ao player, ele vai passar de DRUID, para ELDER DRUID, SORCERER para MASTER SORCERER, PALADIN para ROYAL PALADIN e KNIGHT para ELITE KNIGHT) legal a ideia neh? se nao tiver como fazer igual ao meu exemplo, nao tem problema, o meu objetivo é fazer com que o player entregue algum item.. ou faça alguma missao para o npc ANTES de ganhar a promotion.. hehe.. REP ++ PRA QUEM AJUDAR. Editado Março 1, 2017 8 anos por liteon9y reformulaçao no titulo (veja o histórico de edições)
Postado Março 1, 2017 8 anos Ainda não testei npc/joao.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Joao" script="npcmissao.lua" walkinterval="0" floorchange="0"> <health now="100" max="100"/> <look type="145" head="1" body="114" legs="114" feet="133" addons="1" corpse="2212"/> </npc> npc/scripts/npcmissao.lua Spoiler 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 npcHandler:setMessage(MESSAGE_GREET, "olá |PLAYERNAME|, o que esta procurando aqui neste lugar remoto? {mission}") npcHandler:setMessage(MESSAGE_FAREWELL, "Até mais.") local quest = 87321 local storageMonstro = 87333 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, "mission") then if getPlayerStorageValue(cid, quest) == -1 then selfSay("um antigo amigo e agora meu rival esta com 1 item que me pertence.. traga-o para mim..", cid) setPlayerStorageValue(cid, quest, 0) elseif getPlayerStorageValue(cid, quest) == 0 then selfSay("voce ficou de me entregar 1 item! BOSS Zukgroak certamente possui este item. voce trouxe-o para mim?", cid) talkState[talkUser] = 1 elseif getPlayerStorageValue(cid, quest) == 1 then selfSay("seje objetivo em suas vindas até este lugar, VOCE TROUXE OU NAO MEU PAGAMENTO?", cid) talkState[talkUser] = 1 elseif getPlayerStorageValue(cid, quest) == 2 then selfSay("primeiro me traga um Powered Crystal", cid) setPlayerStorageValue(cid, quest, 3) elseif getPlayerStorageValue(cid, quest) == 3 then selfSay("nao direi nenhuma palavra até voce me entregar um Powered Crystal. {entregar}", cid) talkState[talkUser] = 1 elseif getPlayerStorageValue(cid, quest) == 4 then selfSay("e entao? voce obteve sucesso em matar The Imperror Master?", cid) talkState[talkUser] = 1 elseif getPlayerStorageValue(cid, quest) == 5 then selfSay("voce ja fez a missao", cid) talkState[talkUser] = 1 end elseif msgcontains(msg, "entregar") and talkState[talkUser] == 1 then if getPlayerStorageValue(cid, quest) == 3 then if getPlayerItemCount(cid, 9141) >= 1 then doPlayerRemoveItem(cid, 9141, 1) selfSay("procure por meu rival The Imperror Master, e MATE-O!!!", cid) setPlayerStorageValue(cid, quest, 4) else selfSay("Voce nao tem o item", cid) end end elseif msgcontains(msg, "yes") and talkState[talkUser] == 1 then if getPlayerStorageValue(cid, quest) == 0 then if getPlayerItemCount(cid, 2130) >= 1 then doPlayerRemoveItem(cid, 2130, 1) selfSay("voce prova ser corajoso, mais me diga, voce esta procurando uma nova promotion sim ou nao?", cid) talkState[talkUser] = 2 else selfSay("Voce nao tem o item", cid) end elseif getPlayerStorageValue(cid, quest) == 1 then if getPlayerItemCount(cid, 9971) >= 10 then doPlayerRemoveItem(cid, 9971, 10) selfSay("OTIMO, voce certamente vai prescisar ser mais forte para a proxima missao, felizmente vou lhe ajudar com isso, lhe darei 1 nova arma para usar em seus combates.", cid) if getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2 then doPlayerAddItem(cid, 2401, 1) end if getPlayerVocation(cid) == 3 then doPlayerAddItem(cid, 2456, 1) end if getPlayerVocation(cid) == 4 then doPlayerAddItem(cid, 2376, 1) end setPlayerStorageValue(cid, quest, 2) else selfSay("Voce nao tem o item", cid) end elseif getPlayerStorageValue(cid, quest) == 4 then if getPlayerStorageValue(cid, storageMonstro) >= 1 then selfSay("otimo, isto era tudo oque eu prescisava. obrigado meu caro, voce agora sera conhecido como NEXTH PLAYER, pois provou sua fidelidade.", cid) setPlayerStorageValue(cid, quest, 5) if getPlayerVocation(cid) == 1 then doPlayerSetVocation(cid, 5) end if getPlayerVocation(cid) == 2 then doPlayerSetVocation(cid, 6) end if getPlayerVocation(cid) == 3 then doPlayerSetVocation(cid, 7) end if getPlayerVocation(cid) == 4 then doPlayerSetVocation(cid, 8) end else selfSay("Voce nao o matou", cid) end end elseif msgcontains(msg, "yes") and talkState[talkUser] == 2 then if getPlayerStorageValue(cid, quest) == 0 then selfSay("primeiramente, para ganhar promotion voce deve me trazer no minimo 10 bitcoins como pagamento.", cid) setPlayerStorageValue(cid, quest, 1) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) creaturescripts/creaturescrips.xml <event type="kill" name="npcmissao" event="script" value="npcmissao.lua"/> creaturescripts/scripts/login.lua registerCreatureEvent(cid, "npcmissao") creaturescripts/scripts/npcmissao.lua function onKill(cid, target) local monster = getCreatureName(target):lower() if monster == "the imperror master" then -- aqui vai o nome do bixo que precisa matar, tudo em minusculo if getPlayerStorageValue(cid, 87321) == 4 and getPlayerStorageValue(cid, 87333) <= 0 then setPlayerStorageValue(cid, 87333, 1) end end return true end Editado Março 1, 2017 8 anos por Zanrix (veja o histórico de edições)
Postado Março 1, 2017 8 anos Autor apareceu este erro no console amigo ;/ vale lembrar que meu TFS é 0.4 ? !! mais já dei REP+ pelo empenho de me ajudar!! Editado Março 1, 2017 8 anos por liteon9y detalhes (veja o histórico de edições)
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.