-
Total de itens
2553 -
Registro em
-
Última visita
-
Dias Ganhos
72
Tudo que zipter98 postou
-
dúvida [Encerrado] Problema com alavancas!
tópico respondeu ao binhuzinho de zipter98 em Tópicos Sem Resposta
Tópico movido para a seção de dúvidas e pedidos resolvidos. -
O exausted, você coloca na tag da spell. Fiz rápido ambos os códigos, pois logo estarei saindo. PS: Suponho que você saiba fazer as tags (não se esqueça de registrar o evento em login.lua). Spell: function onCastSpell(cid, var) local msg = "If you die while Izanagi's effect (%d seconds) is activated, you'll be teleported to an place, then teleported to your death's position." local time = 30 --Duração do efeito do Izanagi. local msg_two = "In %d seconds, the Izanagi's effect will end." local IZANAGI_STORAGE = 91831 if getPlayerStorageValue(cid, IZANAGI_STORAGE) > os.time() then return doPlayerSendCancel(cid, msg_two:format(getPlayerStorageValue(cid, IZANAGI_STORAGE))) else doPlayerSendTextMessage(cid, 27, msg:format(time)) setPlayerStorageValue(cid, IZANAGI_STORAGE, os.time() + time) end return true end Prepare death: local time = 5 --Depois de quanto tempo o jogador será teleportado para o local da morte (já que quando "morrer" será teleportado para outro local, como você disse no tópico). local pos = {x = x, y = y, z = z} --Para onde será teleportado. local IZANAGI_STORAGE = 91831 local function Revive(cid, id) addEvent(function() if not isCreature(cid) then if id then local pos = db.getResult("SELECT value FROM player_storage WHERE player_id = "..id.." AND key = 91832") if pos:getID() == -1 then return true end local x = pos.x local y = pos.y local z = pos.z return db.executeQuery("UPDATE players SET posx = "..x..", posy = "..y..", posz = "..z.." WHERE id = "..id) end else local posis = {} posis.x = getPlayerStorageValue(cid, 91832).x posis.y = getPlayerStorageValue(cid, 91832).y posis.z = getPlayerStorageValue(cid, 91832).z doTeleportThing(cid, posis) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have been teleported to your death's place.") end end, time * 1000) end function onPrepareDeath(cid) if isPlayer(cid) and getPlayerStorageValue(cid, IZANAGI_STORAGE) > os.time() then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doCreatureAddMana(cid, getCreatureMaxMana(cid)) setPlayerStorageValue(cid, 91832, getThingPos(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, string.format("You have been revived by Izanagi. In %d, you will be teleported to your death's place.", time) doTeleportThing(cid, pos) Revive(cid, getPlayerGUID(cid)) end return true end
-
Tópico movido para a seção de dúvidas e pedidos resolvidos.
- 9 respostas
-
- clicar objeto teleportado
- resolvido
- (e 1 mais)
-
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
Tópico atendido e movido para a seção de pedidos entregues.
-
Tópico movido para a seção de dúvidas e pedidos resolvidos.
- 7 respostas
-
- nava vocation
- vocation
- (e 6 mais)
-
Poderia enviar o quê está escrito na linha 24 de catch system.lua?
-
Seria interessente se você enviasse o quê se encontra na linha 4621 de pokemon moves.lua. Sobre as storages, não sei. Talvez sim. Vou revisar o código do Protection aqui. Qualquer coisa, reescrevo-o. #EDIT: Código reescrito. Aqui, pelo menos, está funcionando perfeitamente. elseif spell == "Protection" then local area = heal --Área do Protection. local pos = getPosfromArea(cid, area) local n = 0 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 if isSummon(cid) then ret.id = cid ret.cd = duration ret.eff = eff ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) local owner = getCreatureMaster(cid) ret.id = owner doCondition2(ret) elseif isMonster(cid) then ret.id = cid ret.cd = duration ret.eff = eff ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) end while n < #pos do n = n + 1 local posis = {x = pos[n].x, y = pos[n].y, z = pos[n].z, stackpos = 253} local thing = getThingFromPosWithProtect(posis) if isCreature(thing) then if isSummon(cid) then local owner = getCreatureMaster(cid) if isSummon(thing) then if getPlayerStorageValue(owner, duel_sto_1) >= 1 then if getPlayerStorageValue(getCreatureMaster(thing), duel_sto_2) < 1 then ret.id = thing ret.cd = duration ret.eff = eff ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) end elseif getPlayerStorageValue(owner, duel_sto_2) >= 1 then if getPlayerStorageValue(getCreatureMaster(thing), duel_sto_1) < 1 then ret.id = thing ret.cd = duration ret.eff = eff ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) end elseif getPlayerStorageValue(owner, pvp_sto_2) >= 1 then if getPlayerStorageValue(getCreatureMaster(thing), pvp_sto_1) < 1 then ret.id = thing ret.cd = duration ret.eff = eff ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) end elseif getPlayerStorageValue(owner, pvp_sto_1) >= 1 then if getPlayerStorageValue(getCreatureMaster(thing), pvp_sto_2) < 1 then ret.id = thing ret.cd = duration ret.eff = eff ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) end end elseif isPlayer(thing) then if getPlayerStorageValue(owner, duel_sto_1) >= 1 then if getPlayerStorageValue(thing, duel_sto_2) < 1 then ret.id = thing ret.cd = duration ret.eff = eff ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) end elseif getPlayerStorageValue(owner, duel_sto_2) >= 1 then if getPlayerStorageValue(thing, duel_sto_1) < 1 then ret.id = thing ret.cd = duration ret.eff = eff ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) end elseif getPlayerStorageValue(owner, pvp_sto_2) >= 1 then if getPlayerStorageValue(thing, pvp_sto_1) < 1 then ret.id = thing ret.cd = duration ret.eff = eff ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) end elseif getPlayerStorageValue(owner, pvp_sto_1) >= 1 then if getPlayerStorageValue(thing, pvp_sto_2) < 1 then ret.id = thing ret.cd = duration ret.eff = eff ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) end end end end end end
-
Também esqueci de mencionar isso: Em some functions.lua, procurem por: function doReduceStatus(cid, off, def, agi) if not isCreature(cid) then return true end E troquem por: function doReduceStatus(cid, off, def, agi) if not isCreature(cid) then return true elseif not pokes[getCreatureName(cid)] then return true end
-
Ué, mas não é assim que o Protection funciona? ._.
-
Atualização! •Missão da Equipe Rocket adicionada abaixo do Cassino de Viridian. •Adicionadas duas novas outfits. •Remakes adicionados para os seguintes pokémons: Feraligatr, Meganium, Typhlosion, Jynx, Forretress, Electivire e Magmortar. •Reativada evolução de Electabuzz e Magmar. Link do novo client, aqui.
-
Nada. Sanado, movido.
-
Há uma maneira mais simples e menor de fazer isso: tabelas. Aqui está o seu código (não lhe culpo se não entender, não sou bom com explicações): local tabela_de_exemplo = { [1] = {item, "mensagem"}, --[valor da storage] = {id do item, mensagem}, [2] = {item, "mensagem"}, [3] = {item, "mensagem"}, } if tabela_de_exemplo[getPlayerStorageValue(cid, storage)] then --Se o valor da storage "storage" do jogador for igual à algum dos valores entre colchetes da tabela_de_exemplo, então: local tab = tabela_de_exemplo[getPlayerStorageValue(cid, storage)] doPlayerAddItem(cid, tab[1], 1) --O jogador receberá o item com ID programado no índice 1 da tabela equivalente ao valor da storage do jogador entre colchetes na tabela_de_exemplo. doPlayerSendTextMessage(cid, 27, tab[2]) --Será enviada ao jogador uma mensagem programada no índice 2 da tabela equivalente ao valor da storage do jogador entre colchetes na tabela_de_exemplo. else --Caso contrário: return doPlayerSendCancel(cid, "Mensagem") --Enviará uma mensagem. end Entende-se como cid quem executou a ação. PS: Não entendi muito bem a parte de "storages que o jogador tem". Assim, é possível entender como keys, e não values. Porém, suponho que seu objetivo fosse a segunda opção.
-
Á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).
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.