Postado Agosto 14, 2020 5 anos Autor @Lurk opa boa noite amigo! desculpe a demora para responder, estava de plantão hoje, não pude testar, mas testei agora. Resultado: não acontece nada, nem erro na distro e o item não funciona, será que preciso configurar outra coisa para que funcione? poxa espero que alguém possa ajudar, iria ficar muito legal minha mission assim.
Postado Agosto 17, 2020 5 anos @Lisbeky Não tive como testar, mas se você configurar certinho creio que funcionará. 1. Adicione o NPC Em data/npc, adicione o arquivo.xml. As falas, o nome do NPC bem como o looktype são apenas para exemplo, configure como quiser. <?xml version="1.0" encoding="UTF-8"?> <npc name="Ghoster" script="default.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="48"/> <voices> <voice text="Annnnnnkkkhhhhhhhhh" interval2="50"/> <voice text="Boo!" interval2="50"/> <voice text="Why are you scared?" interval2="50"/> </voices> </npc> 2. Em data/actions/scripts crie um arquivo.lua e cole isto dentro: Spoiler local t = { removeItemOnUse = true, -- 'true' para remover a ankh ao usar, 'false' para não remover npcName = "Ghoster", -- nome do NPC monster = { name = "Ghost Boss", -- nome do monstro createPos = {x = 1, y = 1, z = 1}, -- posição na qual o monstro será criado timeToCreate = {10, "sec"}, -- tempo para criar o monstro após usar a ankh no NPC timeToRemove = {5, "min"} -- tempo para remover o monstro e retornar o NPC } } function onUse(cid, item, fromPosition, itemEx, toPosition) if not isCreature(itemEx.uid) or isPlayer(itemEx.uid) then return false end local npc = itemEx.uid if getCreatureName(npc):lower() == t.npcName:lower() then doCreatureSay(npc, "Brace yourselves!", TALKTYPE_MONSTER_YELL) local npcPos = getCreaturePosition(npc) doSendMagicEffect(npcPos, CONST_ME_POFF) doRemoveCreature(npc) addEvent(function() local m = doCreateMonster(t.monster.name, t.monster.createPos) doCreatureSay(m, "HA HA HA!", TALKTYPE_MONSTER_YELL) doSendMagicEffect(t.monster.createPos, CONST_ME_TELEPORT) addEvent(function() if isCreature(m) then doCreatureSay(m, "I WON! HA HA HA!", TALKTYPE_MONSTER_YELL) doSendMagicEffect(getCreaturePosition(m), CONST_ME_POFF) doRemoveCreature(m) end local checkNpc = getCreatureByName(t.npcName) if not isCreature(checkNpc) then doCreateNpc(t.npcName, npcPos) doSendMagicEffect(npcPos, CONST_ME_HOLYAREA) end end, mathtime(t.monster.timeToRemove) * 1000) end, mathtime(t.monster.timeToCreate) * 1000) if t.removeItemOnUse then doRemoveItem(item.uid, 1) end return true end return false end function mathtime(table) -- by dwarfer local unit = {"sec", "min", "hour", "day"} for i, v in pairs(unit) do if v == table[2] then return table[1]*(60^(v == unit[4] and 2 or i-1))*(v == unit[4] and 24 or 1) end end end No actions.xml adicione a tag e edite o id do item: <action itemid="1111" script="NOMEDOARQUIVO.lua" /> 3. No arquivo do monstro, adicione antes de </monster>, o seguinte: <script> <event name = "GhostBossDeath"/> </script> 4. Em data/creaturescripts/scripts, crie um arquivo.lua e cole isto dentro: Spoiler local storage = {key = 11111, value = 1} -- storage key e value local npcName = "Ghoster" -- nome do NPC function onDeath(cid, corpse, deathList) local killers = deathList for _, pid in pairs(killers) do if isPlayer(pid) then if getPlayerStorageValue(pid, storage.key) < storage.value then setPlayerStorageValue(pid, storage.key, storage.value) doPlayerSendTextMessage(pid, MESSAGE_INFO_DESCR, "You helped to defeat the "..getCreatureName(cid).."!") end end end local p = getCreaturePosition(cid) local npc = doCreateNpc(npcName, p) doSendMagicEffect(p, CONST_ME_TELEPORT) doCreatureSay(npc, "I am back.", TALKTYPE_MONSTER_YELL) return true end Edite o storage para os valores da sua quest. Lembrando que só ganharão o storage aqueles que causarem dano ao boss. No creaturescripts.xml, adicione a tag: <event type="death" name="GhostBossDeath" event="script" value="NOMEDOARQUIVO.lua"/> É isso. Contato: Email: [email protected] Discord: Dwarfer#2715
Postado Agosto 17, 2020 5 anos Autor @Dwarfer show meu amigo, obrigado pelo esforço! mas tive que criar outro tópico, pois houve pouca ajuda em relação a esse, então pensei que tivesse explicado de uma forma em que pareceu ser difícil o meu pedido, logo, no outro tópico já conseguiram o script que eu queria. Editado Agosto 17, 2020 5 anos por Lisbeky (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.