-
Total de itens
2553 -
Registro em
-
Última visita
-
Dias Ganhos
72
Tudo que zipter98 postou
-
Área incorreta, tópico movido. Mais cuidado da próxima vez.
-
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
Á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.
-
De onde essa variável boost do parâmetro da função tonumber surgiu? boost = tonumber(boost)
-
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
-
Corrigi o erro do Protection, foi falta de atenção mesmo. Sobre a área do Revenge, a área splash pega exatamente em volta.
-
[Encerrado] [Pedido] Comando !fly
tópico respondeu ao FlamesAdmin de zipter98 em Tópicos Sem Resposta
Tópico movido para a seção de dúvidas e pedidos resolvidos. -
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".
-
[Encerrado] [Pedido] Comando !fly
tópico respondeu ao FlamesAdmin de zipter98 em Tópicos Sem Resposta
Corrigi esse bug ontem. -
[Encerrado] [Pedido] Comando !fly
tópico respondeu ao FlamesAdmin de zipter98 em Tópicos Sem Resposta
Ahã. Ele se encontra no meu primeiro comentário (optei por editá-lo, ao invés de mandar 1 código por comentário). -
Entenderei isso como dúvida sanada. Movido.
-
Área incorreta, tópico movido. Mais cuidado da próxima vez. PS: Use spoiler assim: [.spoiler]conteúdo[./spoiler], sem os pontos.
-
Á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.
-
[Encerrado] [Pedido] Comando !fly
tópico respondeu ao FlamesAdmin de zipter98 em Tópicos Sem Resposta
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. -
Esse código que eu enviei é para colocar no exp2.0.lua.
-
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
[Encerrado] [Pedido] Comando !fly
tópico respondeu ao FlamesAdmin de zipter98 em Tópicos Sem Resposta
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. -
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.
-
[Encerrado] [Pedido] Comando !fly
tópico respondeu ao FlamesAdmin de zipter98 em Tópicos Sem Resposta
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 -
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
Área incorreta, tópico movido. Mais cuidado da próxima vez.
-
Como dito acima pelo Incur, área incorreta. Mais cuidado da próxima vez. Tópico movido.
-
[Encerrado]Procurando Scripter !
tópico respondeu ao BackOfTheHell de zipter98 em Formação de Equipes
Á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.- 2 respostas
-
- procurando
- otserv
-
(e 2 mais)
Tags:
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.