Primeiro 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 strBlueFalcon = 189860 -- não mexer strGoldHawk = 189861 -- não mexer strBlackSword = 189862 -- não mexer posBlueFalcon = {x=80, y=348, z=7} -- posição Blue Falcon posGoldHawk = {x=75, y=340, z=7} --- posição gold hawk posBlackSword = {x=84, y=339, z=7} --- posição black sword iditemfalcon = 2160 -- id do item que ganha quando escolhe a companhias falcon iditemhawk = 2160 -- id do item que ganha quando escolhe a companhias hawk iditemsword = 2160 -- id do item que ganha quando escolhe a companhias sword if msgcontains(msg, "mission") then selfSay("Ola aventureiro, tenho 3 companhias que voce pode escolher, (Blue Falcon, Gold Hawk e Black Sword) qual voce deseja?", cid) talkState[talkUser] = 1 elseif msgcontains(msg, "blue falcon") and talkState[talkUser] == 1 and getPlayerStorageValue(cid, strBlueFalcon) < 1 and getPlayerStorageValue(cid, strGoldHawk) < 1 and getPlayerStorageValue(cid, strBlackSword) < 1 then setPlayerStorageValue(cid, strBlueFalcon, 1) doTeleportThing(cid, posBlueFalcon) doSendMagicEffect(getThingPos(cid), 10) doPlayerAddItem(cid, iditemfalcon, 1) selfSay("Que assim seja!", cid) elseif msgcontains(msg, "gold hawk") and talkState[talkUser] == 1 and getPlayerStorageValue(cid, strBlueFalcon) < 1 and getPlayerStorageValue(cid, strGoldHawk) < 1 and getPlayerStorageValue(cid, strBlackSword) < 1 then setPlayerStorageValue(cid, strGoldHawk, 1) doTeleportThing(cid, posGoldHawk) doSendMagicEffect(getThingPos(cid), 10) doPlayerAddItem(cid, iditemhawk, 1) selfSay("Que assim seja!", cid) elseif msgcontains(msg, "black sword") and talkState[talkUser] == 1 and getPlayerStorageValue(cid, strBlueFalcon) < 1 and getPlayerStorageValue(cid, strGoldHawk) < 1 and getPlayerStorageValue(cid, strBlackSword) < 1 then setPlayerStorageValue(cid, strBlackSword, 1) doTeleportThing(cid, posBlackSword) doSendMagicEffect(getThingPos(cid), 10) doPlayerAddItem(cid, iditemsword, 1) selfSay("Que assim seja!", cid) else selfSay("Voce ja escolheu seu destino", cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Segundo 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 strBlueFalcon = 189860 -- não mexer strGoldHawk = 189861 -- não mexer strBlackSword = 189862 -- não mexer posBlueFalcon = {x=80, y=348, z=7} -- posição Blue Falcon posGoldHawk = {x=75, y=340, z=7} --- posição gold hawk posBlackSword = {x=84, y=339, z=7} --- posição black sword iditemfalcon = 2160 -- id do item que precisa para companhias falcon iditemhawk = 2160 -- id do item que precisa para companhias hawk iditemsword = 2160 -- id do item que precisa para companhias sword if msgcontains(msg, "mission") and getPlayerStorageValue(cid, strBlueFalcon) == 1 and getPlayerItemCount(cid, iditemfalcon) == 1 then selfSay("voce e da companhia Blue falcon, deseja ir para a ilha?", cid) talkState[talkUser] = 1 elseif msgcontains(msg, "yes") and getPlayerStorageValue(cid, strBlueFalcon) == 1 and talkState[talkUser] == 1 then selfSay("que assim seja", cid) doTeleportThing(cid, posBlueFalcon) doSendMagicEffect(getThingPos(cid), 10) talkState[talkUser] = 0 elseif msgcontains(msg, "mission") and getPlayerStorageValue(cid, strGoldHawk) == 1 and getPlayerItemCount(cid, iditemhawk) == 1 then selfSay("voce e da companhia Gold Hawk, deseja ir para a ilha?", cid) talkState[talkUser] = 1 elseif msgcontains(msg, "yes") and getPlayerStorageValue(cid, strGoldHawk) == 1 and talkState[talkUser] == 1 then selfSay("que assim seja", cid) doTeleportThing(cid, posGoldHawk) doSendMagicEffect(getThingPos(cid), 10) talkState[talkUser] = 0 elseif msgcontains(msg, "mission") and getPlayerStorageValue(cid, strBlackSword) == 1 and getPlayerItemCount(cid, iditemsword) == 1 then selfSay("voce e da companhia Black Sword, deseja ir para a ilha?", cid) talkState[talkUser] = 1 elseif msgcontains(msg, "yes") and getPlayerStorageValue(cid, strBlackSword) == 1 and talkState[talkUser] == 1 then selfSay("que assim seja", cid) doTeleportThing(cid, posBlackSword) doSendMagicEffect(getThingPos(cid), 10) talkState[talkUser] = 0 else selfSay("Preciso que voce tenha o card em maos", cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())





info
Grupo: Campones
Registrado: 18/03/13
Posts: 18
Reputação: 0
Boa tarde!
Tenho uma ideia de npcs que preciso implementar no meu servidor para que eu possa prosseguir nas edições da história.
Ele funcionaria da seguinte forma:
Primeiro Npc.
Ao falar com esse npc ele me da 3 opções de companhias que existem dentro do meu servidor (Blue Falcon, Gold Hawk e Black Sword).
E o player tem que escolher uma dessas pra prosseguir, após escolher ele seria transportado para a companhia que escolheu, então seriam 3 locais diferentes. E com isso ele também ganharia um item(Esse item não pode ser retirado da bag, seria como o id card da companhia dele)
Blue Falcon: Local = X + Blue Falcon Card
Gold Hawk: Local = Y + Gold Hawk Card
Black Sword: Local = Z + Black Sword Card
Segundo Npc.
Ao falar com esse npc ele vai pedir o ID card que o player ganhou no outro npc para que ele possa transportar o jogador para uma area.
E lembrando que esse item não pode sair da bag, então o npc não vai remove-lo.
Obs: A minha intenção é criar vários desse segundo npc para que haja uma variedade de missões diferentes para cada companhia, então seria melhor um script aonde eu pudesse apenas trocar o id do item que pede e o local que vai transportar.
Se servir de base tenho aqui um npc de teleport comum. (No xml a ideia já está implementada na fala do npc)
Account Clerk.xml
Account Clerk.lua
Preciso muito disso, se alguém puder me ajudar ficarei muito grato!
-Base PDA 8.54
Editado Fevereiro 10 por eliaspalermo