Ir para conteúdo

zipter98

Herói
  • Total de itens

    2553
  • Registro em

  • Última visita

  • Dias Ganhos

    72

Tudo que zipter98 postou

  1. Área incorreta, tópico movido. Mais cuidado da próxima vez.
  2. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  3. Área incorreta, tópico movido. Mais cuidado da próxima vez. PS: Para pedidos e/ou dúvidas relacionados à servidores derivados (como Pokémon, no seu caso), opte por postar em Pedidos e dúvidas - Servidores derivados.
  4. zipter98

    Scripter de items

    Tópico movido para a seção de dúvidas e pedidos resolvidos.
  5. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  6. De onde essa variável boost do parâmetro da função tonumber surgiu? boost = tonumber(boost)
  7. Corrigido o "erro" do Revenge. Sobre o Protection, quando possível, darei uma olhada. #EDIT: Em some functions.lua, procure por: function doRaiseStatus(cid, off, def, agi, time) if not isCreature(cid) then return true end Troque por: function doRaiseStatus(cid, off, def, agi, time) if not isCreature(cid) then return true elseif not pokes[getCreatureName(cid)] then return true end
  8. Corrigi o erro do Protection, foi falta de atenção mesmo. Sobre a área do Revenge, a área splash pega exatamente em volta.
  9. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  10. Fiz as duas spells bem rápido aqui, então qualquer erro, só postar. Revenge: PS: Como não foi informado o intervalo de tempo entre os ataques, coloquei 500 milésimos. elseif spell == "Revenge" then local effs = {92, 93, 99, 94, 93} for i = 1, #effs do addEvent(function() if not isCreature(cid) then return true end doAreaCombatHealth(cid, FIGHTINGDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 0) doSendMagicEffect(getThingPos(cid), effs[i]) end, i * 500) end Protection: elseif spell == "Protection" then local duel_sto_1 = xxx --Storage de duel. local duel_sto_2 = xxx --Storage de duel. local pvp_sto_1 = xxx --Storage de PvP. local pvp_sto_2 = xxx --Storage de PvP. local duration = 8 --Duração do buff. local eff = 117 local ret = {} local function isMonster(cid) if isCreature(cid) then if not isPlayer(cid) and not isSummon(cid) and not ehNPC(cid) then return true else return false end end return nil end local spec = getSpectators(getThingPos(cid), 5, 5, false) for i = 1, #spec do if isSummon(cid) then local owner = getCreatureMaster(cid) if isSummon(spec[i]) or isPlayer(spec[i]) then if getPlayerStorageValue(owner, duel_sto_1) >= 1 then if getPlayerStorageValue(getCreatureMaster(spec[i]), duel_sto_2) >= 1 then table.remove(spec, i) end elseif getPlayerStorageValue(owner, duel_sto_2) >= 1 then if getPlayerStorageValue(getCreatureMaster(spec[i]), duel_sto_1) >= 1 then table.remove(spec, i) end elseif getPlayerStorageValue(owner, pvp_sto_2) >= 1 then if getPlayerStorageValue(getCreatureMaster(spec[i]), pvp_sto_1) >= 1 then table.remove(spec, i) end elseif getPlayerStorageValue(owner, pvp_sto_1) >= 1 then if getPlayerStorageValue(getCreatureMaster(spec[i]), pvp_sto_2) >= 1 then table.remove(spec, i) end end elseif isMonster(spec[i]) then table.remove(spec, i) end end end for i = 1, #spec do ret.id = spec[i] ret.cd = duration ret.eff = eff ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) end Depois, em newStatusSyst.lua, procure por semelhantes à esta seguinte condição, e adicione: elseif buff == "Protection" then doRaiseStatus(cid, 0, 2, 0, a) --Estará buffando a mesma quantia de def que o Harden. Altere no valor "2".
  11. Corrigi esse bug ontem.
  12. Ahã. Ele se encontra no meu primeiro comentário (optei por editá-lo, ao invés de mandar 1 código por comentário).
  13. Entenderei isso como dúvida sanada. Movido.
  14. Área incorreta, tópico movido. Mais cuidado da próxima vez. PS: Use spoiler assim: [.spoiler]conteúdo[./spoiler], sem os pontos.
  15. Área incorreta, tópico movido. Mais cuidado da próxima vez. @erro Aparentemente, a função isSummon não existe, ou não está sendo encontrada.
  16. Infelizmente, não sei o quê pode estar causando o primeiro erro com você (o de não poder usar o comando no chão). Pelo menos aqui, está funcionando perfeitamente. Sobre o segundo erro, foi falta de atenção minha. Corrigi ele e mais um "erro". Código alterado. PS: Sobre o pedido de aumentar a velocidade neste comando, acontece o seguinte: na verdade, o jogador se teleporta, e não "anda", como parece na prática. E o intervalo de tempo entre estes teleportes é de 500 milésimos. Ou seja, a velocidade do jogador de nada altera nisto. Tanto um jogador com slow que anula 90% de sua velocidade, quanto um jogador com o triplo de sua real velocidade "voariam" na mesma velocidade. Porém, se você quiser mesmo que a velocidade seja aumentada, pode ser feita um cálculo com a speed do jogador para altear o intervalo de tempo.
  17. Esse código que eu enviei é para colocar no exp2.0.lua.
  18. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  19. Sobre o primeiro caso, é porquê não é possível andar normalmente em pisos "vazios" (no caso do Fly, o "ar"). Como, no código, para teleportar o jogador é necessário que o piso seja "andável", retorna ao jogador esta mensagem, pelo motivo que citei. Como corrigir, é algo que vou pensar. Sobre o segundo, logo edito o código com isso. #EDIT: Primeiro erro, corrigido. Código alterado.
  20. Hoje provavelmente não conseguirei fazer o código, portanto darei uma pequena explicação de como fazer: action que seta atributo; exp2.0.lua, procure por onde calcula o damage (variável valor, se não me engano). E então, faça algo tipo assim: local tabela_de_exemplo = { ["fire"] = FIREDAMAGE, ["water"] = WATERDAMAGE, --["elemento 1 do pokémon"] = damage, } if isSummon(attacker) then local owner = getCreatureMaster(attacker) if getItemAttribute(getPlayerSlotItem(owner, 8).uid, "atributo_setado_na_action") then if tabela_de_exemplo[pokes[getCreatureName(attacker)].type] then local damage = tabela_de_exemplo[pokes[getCreatureName(attacker)].type] if damageCombat == damage then valor = valor * 2 end end end end Aí, no look.lua, fazer algo assim: if getItemAttribute(thing.uid, "atributo_setado_na_action") then table.insert(str, "Esta pokeball possui o atributo setado na action.\n") end Por exemplo, pelo elemento "1" do Slowking ser water, ataques aquáticos dariam o dobro do dano.
  21. Infelizmente, não encontrei uma maneira funcional de o jogador continuar andando "infinitamente". As que encontrei, geravam algum tipo de bug (travavam o servidor e etc). Para evitar tais erros, fiz assim: após x segundos (configuráveis, claro), o jogador "se cansa". Ou seja, o comando !fly é desativado. Espero que mesmo assim o código lhe satisfaça. PS: Como informado no script, não coloque valores muito altos nos segundos, pois o servidor pode travar. local cfg = { storage = 918311, fly_storage = 17000, seconds = 20, --Quantos segundos até o jogador "cansar". Recomendo não colocar um valor muito alto. } function isWalkable(pos)-- by Nord / editado por Omega if isCreature(getTopCreature(pos).uid) then return false elseif getTileInfo(pos).protection then return false else if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid ~= 0 then if hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then return false end end end return true end function autoWalk(cid, id) local a = 0 for i = 1, (cfg.seconds * 2) do if getPlayerStorageValue(cid, cfg.storage) < 1 then break end if a == (cfg.seconds * 2) then setPlayerStorageValue(cid, cfg.storage, -1) doPlayerSendTextMessage(cid, 27, "Your character is exausted.") doCreatureSay(cid, "*Puff*", TALKTYPE_MONSTER) break end addEvent(function() if not isCreature(cid) then if id then return db.executeQuery("UPDATE player_storage SET value = -1 WHERE key = 918311 AND player_id = "..id) end end local tab = { [0] = {x = getThingPos(cid).x, y = getThingPos(cid).y - 1, z = getThingPos(cid).z}, [1] = {x = getThingPos(cid).x + 1, y = getThingPos(cid).y, z = getThingPos(cid).z}, [2] = {x = getThingPos(cid).x, y = getThingPos(cid).y + 1, z = getThingPos(cid).z}, [3] = {x = getThingPos(cid).x - 1, y = getThingPos(cid).y, z = getThingPos(cid).z}, } local lookdir = getCreatureLookDir(cid) local topos = tab[lookdir] if getPlayerStorageValue(cid, cfg.storage) < 1 then return true elseif isWalkable(topos) then if getTileThingByPos({x = topos.x, y = topos.y, z = topos.z, stackpos = 0}).itemid == 0 then doCombatAreaHealth(cid, 0, topos, 0, 0, 0, CONST_ME_NONE) doCreateItem(11676, 1, topos) end doTeleportThing(cid, topos) a = a + 1 else setPlayerStorageValue(cid, cfg.storage, -1) doPlayerSendTextMessage(cid, 27, "Há algum objeto à sua frente impedindo a passagem.") return true end end, i * 500) end end function onSay(cid, words) if getPlayerStorageValue(cid, cfg.fly_storage) < 1 then return doPlayerSendCancel(cid, "Para usar este comando, você deve estar em Fly.") elseif getPlayerStorageValue(cid, cfg.storage) >= 1 then return setPlayerStorageValue(cid, cfg.storage, -1) and doPlayerSendTextMessage(cid, 27, "Comando !fly desativado.") else doPlayerSendTextMessage(cid, 27, "Comando !fly ativado.") setPlayerStorageValue(cid, cfg.storage, 1) autoWalk(cid, getPlayerGUID(cid)) end return true end
  22. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  23. zipter98

    Bleach GT

    Área incorreta, tópico movido. Mais cuidado da próxima vez.
  24. Como dito acima pelo Incur, área incorreta. Mais cuidado da próxima vez. Tópico movido.
  25. Área incorreta, tópico movido. Mais cuidado da próxima vez. PS: Recomendo ler este manual do fórum para evitar cometer mais erros como este.
  • Quem Está Navegando   0 membros estão online

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