Ir para conteúdo

zipter98

Membro
  • Registro em

  • Última visita

Tudo que zipter98 postou

  1. zipter98 postou uma resposta no tópico em Design Show Off
    ficou legal. ( ͡° ͜ʖ ͡°)
  2. zipter98 postou uma resposta no tópico em Outros Jogos
    e pra tablet também acho
  3. local pokemons = {"monster_name", "monster_name", "monster_name"} --Aqui você configura os monstros que serão invocados aleatoriamente. function onUse(cid, item, fromPosition, item2, toPosition) local poke = pokemons[math.random(1, #pokemons)] doSummonCreature(poke, getThingPos(cid)) doSendMagicEffect(getCreaturePosition(cid), 29) doRemoveItem(item.uid, 1) doCreatureSay(cid, "Cuidado! Pokemons Muito Perigosos apareceram do Nada OMG.", TALKTYPE_ORANGE_1) return true end
  4. zipter98 postou uma resposta no tópico em Outros Jogos
    É daora, dá pra jogar durante a queue do lol.
  5. zipter98 postou uma resposta no tópico em Suporte Tibia OTServer
    Claro. --Comando que muda linguagem. local lang = { ["portuguese"] = 1, ["english"] = 2, ["spanish"] = 3, } local storage = 8971 function onSay(cid, words, param) if not param or param == "" then return doPlayerSendCancel(cid, "Command: command portuguese/english/spanish") elseif not lang[param:lower()] then return doPlayerSendCancel(cid, "This language isn't available.") elseif getPlayerStorageValue(cid, storage) == lang[param:lower()] then return doPlayerSendCancel(cid, "Your game is already on this language.") end doPlayerSendTextMessage(cid, 27, "Game language changed to "..param..".") setPlayerStorageValue(cid, storage, lang[param:lower()]) return true end --Exemplo de talkaction que manda um popup com linguagem dependendo da configurada pelo comando acima. local messages = { [1] = "Oi, como vai?", [2] = "Hello, how are you?", [3] = "Hola, cómo estás?", } local default = "Hello, how are you?" --Mensagem padrão. function onSay(cid, words) local msg = messages[getPlayerStorageValue(cid, 8971)] if not msg then msg = default end doPlayerPopupFYI(cid, msg) return true end
  6. zipter98 postou uma resposta no tópico em Suporte Tibia OTServer
    Se for por talkaction, você pode setar uma storage com valor diferenciado para cada linguagem (ex.: 1 para português, 2 para inglês, etc). Aí, nos códigos que terão multilinguagem, é só checar tal storage e mandar a mensagem conforme o valor.
  7. Talkaction: local cities = { --["city"] = town_id, ["enigma"] = 1, --Exemplo. } function onSay(cid, words, param) if not param or param == "" then return doPlayerSendCancel(cid, 'Command: command "city') elseif getPlayerStorageValue(cid, 60191) < 1 then return doPlayerSendCancel(cid, "You can only teleport on the special floors.") elseif not cities[param:lower():sub(2)] then return doPlayerSendCancel(cid, "This city doesn't exist or you can't teleport there.") end local city = param:lower():sub(2) local toPos = getTownTemplePosition(cities[city]) doPlayerSendTextMessage(cid, 27, "You teleported to "..city..".") doTeleportThing(cid, toPos) doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT) return true end Movement: function onStepIn(cid, item, position, fromPosition) setPlayerStorageValue(cid, 60191, 1) return true end function onStepOut(cid, item, position, fromPosition) setPlayerStorageValue(cid, 60191, -1) return true end Serão 2 tags: uma para StepIn e outra para StepOut. Em ambas você configura o mesmo actionid.
  8. Solucionado pelo Skype. O erro estava sendo causado porque o glacialot havia copiado o nome da tabela errado (RENA, e não ARENA). O sistema está funcionando perfeitamente.
  9. OK. Refiz a parte que checa se a wave foi ou não completa. Tanto a maneira antiga quanto a nova funcionaram aqui. Espero que o mesmo aconteça no seu servidor. Troque sua lib por essa: ARENA = { WAVES = { [1] = { monsters = { {"Demon", {x = 617, y = 2086, z = 6}}, --{nome_do_monstro, {posição_que_vai_nascer}}, {"Demon", {x = 617, y = 2089, z = 6}}, {"Demon", {x = 627, y = 2086, z = 6}}, {"Demon", {x = 627, y = 2089, z = 6}}, }, prize = { cash = 500000, --Coloque false se não for receber cash nessa wave. items = false, --Coloque false se não for receber item(s) nessa wave. }, }, [2] = { monsters = { {"Hellfire Figher", {x = 617, y = 2086, z = 6}}, --{nome_do_monstro, {posição_que_vai_nascer}}, {"Hellfire Figher", {x = 617, y = 2089, z = 6}}, {"Hellfire Figher", {x = 627, y = 2086, z = 6}}, {"Hellfire Figher", {x = 627, y = 2089, z = 6}}, }, prize = { cash = 1000000, items = false, }, }, [3] = { monsters = { {"Orshabaal", {x = 617, y = 2086, z = 6}}, --{nome_do_monstro, {posição_que_vai_nascer}}, {"Orshabaal", {x = 617, y = 2089, z = 6}}, {"Orshabaal", {x = 627, y = 2086, z = 6}}, {"Orshabaal", {x = 627, y = 2089, z = 6}}, }, prize = { cash = 1000000, items = { {2160, 1}, --{ID do item, quantidade}, {2160, 1}, }, }, }, }, NPC = { price = 2000, --Preço para entrar na arena. position = {x = 622, y = 2088, z = 6}, --Para onde o jogador será teleportado ao falar com o NPC. }, TELEPORT = { tpId = 1387, --ID do teleporte. tpPos = {x = 622, y = 2084, z = 6}, --Onde o teleporte será criado, ao matar o último boss. tpToPos = {x = 622, y = 2081, z = 5}, --Para onde o teleporte levará. aid = 1307, }, STORAGES = { storage = 90190, wave_sto = 90191, kill = 90194, }, toPos = {x = 630, y = 2092, z = 6}, --Coordenadas da posição superior esquerda da arena. fromPos = {x = 614, y = 2082, z = 6}, --Coordenadas da posição inferior direita da arena. delay = 15, --Segundos para o boss aparecer. level = 100, --Level mínimo. } function doWave(cid, wave) if not isPlayer(cid) then return true elseif not ARENA.WAVES[wave] then return true elseif getPlayerStorageValue(cid, ARENA.STORAGES.storage) > -1 then return true end local monster = ARENA.WAVES[wave] local m = monster.monsters doPlayerSendTextMessage(cid, 27, "Em "..ARENA.delay.." segundos, começa seu desafio. [Wave: "..wave.."]") addEvent(function() for i = 1, #m do doCreateMonster(m[i][1], m[i][2]) end end, ARENA.delay * 1000) end function clearArena() for x = ARENA.fromPos.x, ARENA.toPos.x do for y = ARENA.fromPos.y, ARENA.toPos.y do for z = ARENA.fromPos.z, ARENA.toPos.z do local area = {x = x, y = y, z = z} local creature = getTopCreature(area).uid if isCreature(creature) then doRemoveCreature(creature) end end end end end function getKilledMonsters(cid) return getPlayerStorageValue(cid, ARENA.STORAGES.kill) > 0 and getPlayerStorageValue(cid, ARENA.STORAGES.kill) or 0 end Troque seu creaturescript por esse: function onKill(cid, target) if isPlayer(cid) and getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then setPlayerStorageValue(cid, ARENA.STORAGES.kill, getKilledMonsters(cid) + 1) local wave = getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) local new_wave = wave + 1 if getKilledMonsters(cid) >= #ARENA.WAVES[wave].monsters then local reward = ARENA.WAVES[getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto)].prize local str = "You won:" if reward.cash then doPlayerAddMoney(cid, reward.cash) str = str.."\n"..reward.cash.."$" end if reward.items then for i = 1, #reward.items do local item = reward.items[i][1] local count = reward.items[i][2] if not isItemStackable(item) and count > 1 then for i = 1, count do doPlayerAddItem(cid, item, 1) end else doPlayerAddItem(cid, item, count) end str = str.."\nItem - "..count.."x "..getItemNameById(item) end end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, str) setPlayerStorageValue(cid, ARENA.STORAGES.kill, 0) if ARENA.WAVES[new_wave] then setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, new_wave) doWave(cid, new_wave) else local tp = doCreateTeleport(ARENA.TELEPORT.tpId, ARENA.TELEPORT.tpToPos, ARENA.TELEPORT.tpPos) doItemSetAttribute(tp, "aid", ARENA.TELEPORT.aid) end end end return true end function onLogout(cid) if isPlayer(cid) then if getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then doPlayerSendCancel(cid, "You can't logout now.") return false end end return true end function onPrepareDeath(cid) if getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, -1) setGlobalStorageValue(1000, -1) clearArena() end return true end
  10. OK. Último teste: Abaixo do: function onKill(cid, target) adicione: print("test6") ficando: function onKill(cid, target) print("test6")
  11. Opa, de nada. (: E foi mal pelos erros. Quando estava escrevendo o código pela primeira vez, não havia pensado nas várias possibilidades de bugs que ele apresentava. Isso que dá fazer um sistema na pressa.
  12. Não, não altera. Só faz aquilo que eu disse. glacialot, algum erro no console? Enfim, para ver exatamente onde está o erro, vamos fazer alguns testes. No creaturescript, troque: function onKill(cid, target) if isPlayer(cid) and getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then local new_wave = getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) + 1 if newWave() then local reward = ARENA.WAVES[getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto)].prize local str = "You won:" if reward.cash then doPlayerAddMoney(cid, reward.cash) str = str.."\n"..reward.cash.."$" end if reward.items then for i = 1, #reward.items do local item = reward.items[i][1] local count = reward.items[i][2] if not isItemStackable(item) and count > 1 then for i = 1, count do doPlayerAddItem(cid, item, 1) end else doPlayerAddItem(cid, item, count) end str = str.."\nItem - "..count.."x "..getItemNameById(item) end end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, str) if ARENA.WAVES[new_wave] then setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, new_wave) doWave(cid, new_wave) else local tp = doCreateTeleport(ARENA.TELEPORT.tpId, ARENA.TELEPORT.tpToPos, ARENA.TELEPORT.tpPos) doItemSetAttribute(tp, "aid", ARENA.TELEPORT.aid) end end end return true end por: function onKill(cid, target) if isPlayer(cid) and getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then print("test3") local new_wave = getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) + 1 if newWave() then print("test4") local reward = ARENA.WAVES[getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto)].prize local str = "You won:" if reward.cash then doPlayerAddMoney(cid, reward.cash) str = str.."\n"..reward.cash.."$" end if reward.items then for i = 1, #reward.items do local item = reward.items[i][1] local count = reward.items[i][2] if not isItemStackable(item) and count > 1 then for i = 1, count do doPlayerAddItem(cid, item, 1) end else doPlayerAddItem(cid, item, count) end str = str.."\nItem - "..count.."x "..getItemNameById(item) end end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, str) if ARENA.WAVES[new_wave] then setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, new_wave) doWave(cid, new_wave) else local tp = doCreateTeleport(ARENA.TELEPORT.tpId, ARENA.TELEPORT.tpToPos, ARENA.TELEPORT.tpPos) doItemSetAttribute(tp, "aid", ARENA.TELEPORT.aid) end end end return true end Na lib, substitua a função newWave() por essa: function newWave() for x = ARENA.fromPos.x, ARENA.toPos.x do for y = ARENA.fromPos.y, ARENA.toPos.y do for z = ARENA.fromPos.z, ARENA.toPos.z do local area = {x = x, y = y, z = z} local creature = getTopCreature(area).uid if isCreature(creature) then print("test1") if isMonster(creature) then print("test5") return false end end end end end print("test2") return true end Envie o que for imprimido no console (test1, test2, test3, test4, test5).
  13. Você não tem a função isSummon. Em data/lib, abra 050-function.lua e adicione no final do arquivo: function isSummon(cid) if isCreature(cid) and not isPlayer(cid) and not isMonster(cid) and not isNpc(cid) then return true end return false end
  14. Falta configurar aquela parte que mencionei, sobre os itens. items = { {item_id, count}, --{ID do item, quantidade}, {item_id, count}, }, Isso na wave 3. E troca sua função newWave() por essa: function newWave() for x = ARENA.fromPos.x, ARENA.toPos.x do for y = ARENA.fromPos.y, ARENA.toPos.y do for z = ARENA.fromPos.z, ARENA.toPos.z do local area = {x = x, y = y, z = z} local creature = getTopCreature(area).uid if isCreature(creature) and isMonster(creature) then return false end end end end return true end
  15. Vou tentar ajudar um de cada vez, pra não ficar muito sobrecarregado. olokomeu, vamos tentar assim: troque seu killboss por esse: function onKill(cid, target) if isPlayer(cid) and getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then local new_wave = getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) + 1 if ARENA.WAVES[new_wave] then setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, new_wave) doWave(cid, new_wave) else local tp = doCreateTeleport(ARENA.TELEPORT.tpId, ARENA.TELEPORT.tpToPos, ARENA.TELEPORT.tpPos) doItemSetAttribute(tp, "aid", ARENA.TELEPORT.aid) end end return true end function onLogout(cid) if isPlayer(cid) then if getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then doPlayerSendCancel(cid, "You can't logout now.") return false end end return true end function onPrepareDeath(cid) if getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then setGlobalStorageValue(1000, -1) clearArena() end return true end Depois, no seu login.lua, adicione em baixo do callback onLogin: if getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, -1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end ficando: function onLogin(cid) if getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, -1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end @glacialot Aquele erro na distro que você informou no começo desta página continua? E achei um erro na sua lib. Você esqueceu de configurar os items da wave 3. Como pode ver: items = { {item_id, count}, --{ID do item, quantidade}, {item_id, count}, },
  16. Por que essas coisas só acontecem com você? ._. No creaturescript, troca: function onPrepareDeath(cid) if getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, -1) setGlobalStorageValue(1000, -1) clearArena() end return true end por: function onPrepareDeath(cid) if getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, -1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) setGlobalStorageValue(1000, -1) clearArena() end return true end E vê se continua assim.
  17. zipter98 postou uma resposta no tópico em Suporte Tibia OTServer
    local outfit = xxx --Outfit. function onStepIn(cid, item, position, fromPosition) doSetCreatureOutfit(cid, {lookType = outfit}, -1) return true end function onStepOut(cid, item, position, fromPosition) doRemoveCondition(cid, CONDITION_OUTFIT) return true end
  18. zipter98 postou uma resposta no tópico em Suporte Tibia OTServer
    if getTileItemById(pos, 9485).uid < 1 then doCreateItem(9485, 1, pos) end Quando você quiser checar items em posições, recomendo usar getTileItemById(position, itemid).
  19. Estranho este erro estar acontecendo com você. Aqui funcionou perfeitamente. Mas enfim, substitua: if getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then doPlayerSendCancel(cid, "You can't logout now.") return false end por: if isPlayer(cid) then if getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then doPlayerSendCancel(cid, "You can't logout now.") return false end end
  20. local monsters = { --["monster_name"] = gold, ["Rat"] = 30, ["Rotworm"] = 10, } function onKill(cid, target) if isPlayer(cid) and isMonster(target) and monsters[getCreatureName(target)] then doPlayerAddMoney(cid, monsters[getCreatureName(target)]) end return true end
  21. Tira isso do creaturescript: if getTileInfo(getThingPos(cid)).protection and getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then return setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, -1) end Essa proteção já é inútil mesmo. E sem problemas sobre ter errado a fromPos e toPos. No começo elas confundem mesmo xD
  22. local toPosition = {x = x, y = y, z = z} --Para onde o jogador será teleportado. function onStepIn(cid, item, position, fromPosition) for posx = 494, 497 do -- checar posição X, começo e final da sala for posy = 499, 502 do -- checar posicao Y, começo e final da sala local pos = {x = posx, y = posy, z = 5, stackpos = 253} -- posição que ira verificar se existe creatures (stackpos = 253) local creature = getThingfromPos(pos) -- pega informações da creature da posição if isMonster(creature.uid) then -- verifica se é um monster return doTeleportThing(cid, fromPosition) and doSendMagicEffect(getPlayerPosition(cid), 2) end end end doTeleportThing(cid, toPosition) return true end Ou: local fromPos = {x = 494, y = 499} local toPos = {x = 497, y = 502} local toPosition = {x = x, y = y, z = z} --Para onde o jogador será teleportado. local function isThereSomeMonster() for x = fromPos.x, toPos.x do for y = fromPos.y, toPos.y do local area = {x = x, y = y, z = 5} local creature = getTopCreature(area).uid if isMonster(creature) then return true end end end return false end function onStepIn(cid, item, position, fromPosition) if isThereSomeMonster() then return doTeleportThing(cid, fromPosition) and doSendMagicEffect(getPlayerPosition(cid), 2) end doTeleportThing(cid, toPosition) return true end
  23. Ah, isso explica. Você configurou errado. toPos nunca terá valores menores que fromPos. Provavelmente você inverteu fromPos e toPos. E também deve ser por isso que algumas funções que usei anteriormente não funcionaram com você. @glacialot Pronto, terminei o que você pediu. Deixei 3 waves configuradas como exemplo. Para adicionar mais waves, siga o modelo das já existentes. Substitua sua lib por essa: ARENA = { WAVES = { [1] = { monsters = { {"monster_name", {x = x, y = y, z = z}}, --{nome_do_monstro, {posição_que_vai_nascer}}, {"monster_name", {x = x, y = y, z = z}}, {"monster_name", {x = x, y = y, z = z}}, }, prize = { cash = 500000, --Coloque false se não for receber cash nessa wave. items = false, --Coloque false se não for receber item(s) nessa wave. }, }, [2] = { monsters = { {"monster_name", {x = x, y = y, z = z}}, --{nome_do_monstro, {posição_que_vai_nascer}}, {"monster_name", {x = x, y = y, z = z}}, {"monster_name", {x = x, y = y, z = z}}, }, prize = { cash = 1000000, items = false, }, }, [3] = { monsters = { {"monster_name", {x = x, y = y, z = z}}, --{nome_do_monstro, {posição_que_vai_nascer}}, {"monster_name", {x = x, y = y, z = z}}, {"monster_name", {x = x, y = y, z = z}}, }, prize = { cash = 1000000, items = { {item_id, count}, --{ID do item, quantidade}, {item_id, count}, }, }, }, }, NPC = { price = 2000, --Preço para entrar na arena. position = {x = x, y = y, z = z}, --Para onde o jogador será teleportado ao falar com o NPC. }, TELEPORT = { tpId = 1387, --ID do teleporte. tpPos = {x = x, y = y, z = z}, --Onde o teleporte será criado, ao matar o último boss. tpToPos = {x = x, y = y, z = z}, --Para onde o teleporte levará. aid = 1307, }, STORAGES = { storage = 90190, wave_sto = 90191, }, toPos = {x = x, y = y, z = z}, --Coordenadas da posição superior esquerda da arena. fromPos = {x = x, y = y, z = z}, --Coordenadas da posição inferior direita da arena. delay = 15, --Segundos para o boss aparecer. level = 100, --Level mínimo. } function doWave(cid, wave) if not isPlayer(cid) then return true elseif not ARENA.WAVES[wave] then return true elseif getPlayerStorageValue(cid, ARENA.STORAGES.storage) > -1 then return true end local monster = ARENA.WAVES[wave] local m = monster.monsters doPlayerSendTextMessage(cid, 27, "In "..ARENA.delay.." seconds, monsters will spawn. [Wave: "..wave.."]") addEvent(function() for i = 1, #m do doCreateMonster(m[i][1], m[i][2]) end end, ARENA.delay * 1000) end function clearArena() for x = ARENA.fromPos.x, ARENA.toPos.x do for y = ARENA.fromPos.y, ARENA.toPos.y do for z = ARENA.fromPos.z, ARENA.toPos.z do local area = {x = x, y = y, z = z} local creature = getTopCreature(area).uid if isCreature(creature) then doRemoveCreature(creature) end end end end end function newWave() for x = ARENA.fromPos.x, ARENA.toPos.x do for y = ARENA.fromPos.y, ARENA.toPos.y do for z = ARENA.fromPos.z, ARENA.toPos.z do local area = {x = x, y = y, z = z} local creature = getTopCreature(area).uid if isCreature(creature) and isMonster(creature) then return false end end end end return true end Substitua seu creaturescript (killboss.lua) por esse: function onKill(cid, target) if isPlayer(cid) and getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then local new_wave = getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) + 1 if newWave() then local reward = ARENA.WAVES[getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto)].prize local str = "You won:" if reward.cash then doPlayerAddMoney(cid, reward.cash) str = str.."\n"..reward.cash.."$" end if reward.items then for i = 1, #reward.items do local item = reward.items[i][1] local count = reward.items[i][2] if not isItemStackable(item) and count > 1 then for i = 1, count do doPlayerAddItem(cid, item, 1) end else doPlayerAddItem(cid, item, count) end str = str.."\nItem - "..count.."x "..getItemNameById(item) end end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, str) if ARENA.WAVES[new_wave] then setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, new_wave) doWave(cid, new_wave) else local tp = doCreateTeleport(ARENA.TELEPORT.tpId, ARENA.TELEPORT.tpToPos, ARENA.TELEPORT.tpPos) doItemSetAttribute(tp, "aid", ARENA.TELEPORT.aid) end end end return true end function onLogout(cid) if getTileInfo(getThingPos(cid)).protection and getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then return setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, -1) end if getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then doPlayerSendCancel(cid, "You can't logout now.") return false end return true end function onPrepareDeath(cid) if getPlayerStorageValue(cid, ARENA.STORAGES.wave_sto) > -1 then setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, -1) setGlobalStorageValue(1000, -1) clearArena() end return true end Novamente: o sistema de ranking se encontra na página 4.
  24. Estranho, testei a função aqui e funcionou perfeitamente. Pode postar o que você configurou em toPos e fromPos? Qualquer coisa, eu faço uma função teste para ver o que está acontecendo, exatamente.
  25. O tempo vai ser contado após os jogadores completarem a quest ou morrerem, certo? Sobre o primeiro pedido, as áreas serão quadradas/retangulares ou terão uma forma diferente?

Informação Importante

Confirmação de Termo