Postado Maio 24, 2018 7 anos E ae galera BLZ? Gostaria que alguém me explicasse o pq que não da para duplicar esse NPC de task: E se possível cria um similar ou igual que de para modificar os monstros que é necessário matar e as storage . OBS: NÃO POSTEM COISAS DESNECESSÁRIAS COMO: - "É SO MUDAR OS NÚMEROS DAS STORAGE QUE FUNCIONA." Npc: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local quest = 76669 local reward = 70000 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) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if(not npcHandler:isFocused(cid)) then return false elseif msgcontains(msg, "ajudar") and talkState[talkUser] == 1 then npcHandler:say("Agradeco, por se empenhar em ajudar a vila, tenha cuidado {ok} ?", cid) talkState[talkUser] = 2 elseif msgcontains(msg, "ok") and talkState[talkUser] == 2 then npcHandler:say("Tenha cuidado nao se esforce muito!", cid) setPlayerStorageValue(cid, quest, 2) talkState[talkUser] = 0 elseif msgcontains(msg, "favor") then local str = getPlayerStorageValue(cid, quest) if(str < 2) then npcHandler:say("msg.", cid) talkState[talkUser] = 1 return true elseif(str == 2) then npcHandler:say("msg!", cid) elseif(str == 3) then npcHandler:say("msg.", cid) doPlayerAddItem(cid, 2148, 75) doPlayerAddExp(cid, 1300) doPlayerSendTextMessage(cid, 22, 'exp.') setPlayerStorageValue(cid, quest, 4) elseif(str == 4) then npcHandler:say("msg.", cid) end talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Creature: local monsters = { --name = storage ["Monstro"] = 55004, } function onKill(cid, target) local monster = monsters[getCreatureName(target):lower()] if(isPlayer(target) == FALSE and monster and getPlayerStorageValue(cid, 76669) == 2) then if getPlayerStorageValue(cid, monster) < 50 then local killedMonsters = getPlayerStorageValue(cid, monster) if(killedMonsters == -1) then killedMonsters = 1 end setPlayerStorageValue(cid, monster, killedMonsters + 1) doPlayerSendTextMessage(cid,1, "msg.") else doPlayerSendTextMessage(cid,22, "msg.") setPlayerStorageValue(cid, 76669, 3) end end return TRUE end Creature.xml: <event type="kill" name="nome" script="script.lua"/> Desde já Grato!! Editado Maio 24, 2018 7 anos por peterson18 (veja o histórico de edições)
Postado Maio 24, 2018 7 anos Mas cara, é só mudar as storages, e nome dos monstros ! Tu registrou os eventos distintamente?
Postado Maio 24, 2018 7 anos Autor Em 24/05/2018 em 23:00, FlavioHulk disse: Mas cara, é só mudar as storages, e nome dos monstros ! Tu registrou os eventos distintamente? Sim manow, já tentei de toda as formas. E no mesmo lugar que peguei tinha alguém com a mesma dúvida, pois dps que você pega uma task desse npc não consegue pegar a outra, não da erro nem nada, mas também não conta os monstros. Tentativas: Tentei mudar todos os numeros de Storage, reward e quests. Registrei no login a nova script, registrei no monstro a script. Tentei mudar as sequencias do NPC. Se possível teste, o primeiro funciona 100%, mas o segundo meio que "Buga" mas não da erro na distro.
Postado Maio 24, 2018 7 anos Como assim o primeiro funciona e o segundo não? O NPC tá pra fazer apenas uma task
Postado Maio 24, 2018 7 anos Autor Em 24/05/2018 em 23:20, FlavioHulk disse: Como assim o primeiro funciona e o segundo não? O NPC tá pra fazer apenas uma task Será? Eu não entendo muito de Script. Mas o que eu quero é duplicar a script, ou seja sera um outro NPC que vai dar a task... Ele ate da a quest storage, mas quando mata os monstros não conta... Provavelmente é alguma coisa no Creature.... Obs: Já tentei editar a estrutura da script, mas sem sucesso...
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.