Ir para conteúdo

zipter98

Herói
  • Total de itens

    2553
  • Registro em

  • Última visita

  • Dias Ganhos

    72

Tudo que zipter98 postou

  1. Opa, área incorreta. Pelo fato de seu pedido estar relacionado à um servidor derivado (Pokémon), a correta seria: Pedidos e dúvidas - Servidores derivados. Mais cuidado da próxima vez. Tópico movido. Poderia postar seu catch.lua, localizado em data/actions/scripts?
  2. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  3. Em data/npc/scripts, crie um arquivo com extensão .lua, nomeie-o travelnpc, e coloque nele o seguinte conteúdo: 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 cfg = { storage = 13500, --Storage. pos = {x = x, y = y, z = z}, --Para onde o jogador será teleportado. } if msgcontains(msg, "travel") or msgcontains(msg, "viajar") then selfSay("Você gostaria de viajar? Para isso, você precisa ser VIP.", cid) talkState[talkUser] = 1 return true elseif msgcontains(msg, "yes") and talkState[talkUser] == 1 then if getPlayerStorageValue(cid, cfg.storage) >= 1 then selfSay("Boa viajem!", cid) doTeleportThing(cid, cfg.pos) talkState[talkUser] = 0 return true else selfSay("Desculpe, você não é VIP.", cid) talkState[talkUser] = 0 return true end elseif msgcontains(msg, "no") and talkState[talkUser] == 1 then selfSay("Tudo bem, então...", cid) talkState[talkUser] = 0 return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Depois, em data/npc, crie um arquivo com extensão .xml, e adicione neste o seguinte conteúdo: <?xml version="1.0" encoding="UTF-8"?> <npc name="Nome do NPC" script="travelnpc.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="523" head="114" body="119" legs="114" feet="114" corpse="2212"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|, would you like to {travel}?"/> </parameters> </npc> OBS: Não se esqueça de alterar o nome e a outfit do NPC no arquivo acima.
  4. Área incorreta, tópico movido. Pelo fato de suas dúvidas serem relacionadas à um servidor derivado (Pokémon), a correta seria Pedidos e dúvidas - Servidores derivados. Mais cuidado da próxima vez. Tópico movido.
  5. Vou entender isso como dúvida sanada. Sanado, movido.
  6. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  7. Hm, agora realmente complicou. Não tenho a mínima ideia do quê está fazendo seu servidor cair. Aparentemente, está tudo certinho (como eu disse, funcionou aqui). O jeito vai ser ir testando de linha em linha. Talvez seja uma única função usada que está causando isso. Se esta for descoberta, ficará mais fácil resolver. Se não se importar, poderia ir testando cada vez com uma função diferente após o else? Por exemplo, function onStatsChange(cid, attacker, type, combat, value) local artigo = getPlayerSex(cid) == 0 and "comida" or "comido" local max_hits = 3 --Quantos hits o jogador irá levar, no máximo. 3 = 3 hits do Zombie. if getCreatureName(attacker) == "Event Zombie" and isInArea(getCreaturePosition(cid), amoebaZombie.fromPosition, amoebaZombie.toPosition) then if type == STATSCHANGE_HEALTHLOSS then if getPlayerStorageValue(cid, 834412) <= (max_hits - 2) then setPlayerStorageValue(cid, 834412, getPlayerStorageValue(cid, 834412) + 1) else setGlobalStorageValue(amoebaZombie.playerStorage, getGlobalStorageValue(amoebaZombie.playerStorage)-1) end end end return true end Depois, se o anterior funcionar, function onStatsChange(cid, attacker, type, combat, value) local artigo = getPlayerSex(cid) == 0 and "comida" or "comido" local max_hits = 3 --Quantos hits o jogador irá levar, no máximo. 3 = 3 hits do Zombie. if getCreatureName(attacker) == "Event Zombie" and isInArea(getCreaturePosition(cid), amoebaZombie.fromPosition, amoebaZombie.toPosition) then if type == STATSCHANGE_HEALTHLOSS then if getPlayerStorageValue(cid, 834412) <= (max_hits - 2) then setPlayerStorageValue(cid, 834412, getPlayerStorageValue(cid, 834412) + 1) else setGlobalStorageValue(amoebaZombie.playerStorage, getGlobalStorageValue(amoebaZombie.playerStorage)-1) local corpse = doCreateItem(3058, 1, getPlayerPosition(cid)) doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".") end end end return true end E assim vai. Ou, se o primeiro não funcionar, function onStatsChange(cid, attacker, type, combat, value) local artigo = getPlayerSex(cid) == 0 and "comida" or "comido" local max_hits = 3 --Quantos hits o jogador irá levar, no máximo. 3 = 3 hits do Zombie. if getCreatureName(attacker) == "Event Zombie" and isInArea(getCreaturePosition(cid), amoebaZombie.fromPosition, amoebaZombie.toPosition) then if type == STATSCHANGE_HEALTHLOSS then if getPlayerStorageValue(cid, 834412) <= (max_hits - 2) then setPlayerStorageValue(cid, 834412, getPlayerStorageValue(cid, 834412) + 1) else local corpse = doCreateItem(3058, 1, getPlayerPosition(cid)) doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".") end end end return true end aí depois, se funcionar function onStatsChange(cid, attacker, type, combat, value) local artigo = getPlayerSex(cid) == 0 and "comida" or "comido" local max_hits = 3 --Quantos hits o jogador irá levar, no máximo. 3 = 3 hits do Zombie. if getCreatureName(attacker) == "Event Zombie" and isInArea(getCreaturePosition(cid), amoebaZombie.fromPosition, amoebaZombie.toPosition) then if type == STATSCHANGE_HEALTHLOSS then if getPlayerStorageValue(cid, 834412) <= (max_hits - 2) then setPlayerStorageValue(cid, 834412, getPlayerStorageValue(cid, 834412) + 1) else local corpse = doCreateItem(3058, 1, getPlayerPosition(cid)) doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".") doBroadcastMessage(getPlayerName(cid) .." foi " .. artigo .. " pelos zombies!") end end end return true end e assim vai ._.
  8. Como já informado pelo Ikarus, área incorreta. Pelo fato de seu pedido ser relacionado ao OTClient, a correta seria Dúvidas e Pedidos - Mods/Modules. Mais cuidado da próxima vez. Tópico movido.
  9. Tópicos que estão sem atividade do autor e da comunidade por mais de 7 dias são movidos para a seção de resolvidos.
  10. Opa, área incorreta. Pelo fato do seu pedido ser relacionado à um servidor derivado (no caso, Pokémon), a correta seria: Pedidos e dúvidas - Servidores derivados. Mais cuidado da próxima vez.
  11. zipter98

    Ajuda Npc +rep

    Tópico movido para a seção de dúvidas e pedidos resolvidos.
  12. Hm, dessas duas seguintes maneiras, o servidor fecha, ou ocorre certinho o quê está escrito no código? function onStatsChange(cid, attacker, type, combat, value) local artigo = getPlayerSex(cid) == 0 and "comida" or "comido" local max_hits = 3 --Quantos hits o jogador irá levar, no máximo. 3 = 3 hits do Zombie. if getCreatureName(attacker) == "Event Zombie" and isInArea(getCreaturePosition(cid), amoebaZombie.fromPosition, amoebaZombie.toPosition) then if type == STATSCHANGE_HEALTHLOSS then if getPlayerStorageValue(cid, 834412) <= (max_hits - 2) then setPlayerStorageValue(cid, 834412, getPlayerStorageValue(cid, 834412) + 1) else setGlobalStorageValue(amoebaZombie.playerStorage, getGlobalStorageValue(amoebaZombie.playerStorage)-1) local corpse = doCreateItem(3058, 1, getPlayerPosition(cid)) doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".") doBroadcastMessage(getPlayerName(cid) .." foi " .. artigo .. " pelos zombies!") doPlayerAddItem(cid, amoebaZombie.consolo[1], amoebaZombie.consolo[2]) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) setPlayerStorageValue(cid, 834412, 0) addEvent(winZombieEvent, 1000) addEvent(removeZombies, 1000) end end end return true end function onStatsChange(cid, attacker, type, combat, value) local artigo = getPlayerSex(cid) == 0 and "comida" or "comido" local max_hits = 3 --Quantos hits o jogador irá levar, no máximo. 3 = 3 hits do Zombie. if getCreatureName(attacker) == "Event Zombie" and isInArea(getCreaturePosition(cid), amoebaZombie.fromPosition, amoebaZombie.toPosition) then if type == STATSCHANGE_HEALTHLOSS then if getPlayerStorageValue(cid, 834412) <= (max_hits - 2) then setPlayerStorageValue(cid, 834412, getPlayerStorageValue(cid, 834412) + 1) else setGlobalStorageValue(amoebaZombie.playerStorage, getGlobalStorageValue(amoebaZombie.playerStorage)-1) local corpse = doCreateItem(3058, 1, getPlayerPosition(cid)) doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".") doBroadcastMessage(getPlayerName(cid) .." foi " .. artigo .. " pelos zombies!") doPlayerAddItem(cid, amoebaZombie.consolo[1], amoebaZombie.consolo[2]) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) setPlayerStorageValue(cid, 834412, 0) end end end return true end
  13. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  14. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  15. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  16. Só pra confirmar uma coisa: retire tudo que está abaixo do else, e coloque um simples print("test") O server continua fechando, ou imprime o "test"?
  17. function onSay(cid, words, param) maximum = { player = getPlayerGUID(cid), lvlmax = 717218, -- Level que o player vai ficar apos usar o comando. resets = 10, --Quantos resets são necessários, no mínimo, para usar o comando. } if getPlayerStorageValue(cid, 2310) >= maximum.resets then if getPlayerLevel(cid) == 717217 then doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..maximum.lvlmax..", `experience` = 10000 WHERE `id` = "..maximum.player) else doPlayerSendCancel(cid, 'You do not have the level max 717217.') doSendMagicEffect(getPlayerPosition(cid),37) end else return doPlayerSendCancel(cid, "Sorry, not possible.") end return true end
  18. Estranho, testei aqui e tá funcionando direitinho (claro, tive que editar algumas coisas pra funcionar: criar as funções e a tabela) Seu servidor tá fechando em ambas as ocasiões (storage global maior que 2 e igual a 2)?
  19. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  20. Área incorreta, e título fora das regras. Sobre o primeiro: a área que você postou é direcionada à códigos prontos, e não à pedidos e/ou dúvidas. Para isso, poste na devida área: Pedidos e dúvidas - Scripting. Já sobre o segundo: o título do tópico deve conter, resumidamente, o seu objetivo/conteúdo. Tópico movido, e título alterado. Caso não esteja satisfeito com o que coloquei, basta alterá-lo usando a ferramente "Usar Editor Completo". Mais cuidado da próxima vez.
  21. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...