Ir para conteúdo

glacialot

Membro
  • Registro em

  • Última visita

Tudo que glacialot postou

  1. Pessoal, tenho alumas quests aqui e os cara ficam com knight na frente blocando os boss e tacando mwall pra fazer a quest, não tem como fazer o monsters empurra os chars? no casa ele ataca o cara e dai empurra e muda de target, tem como fazer isso? agradeço desde já!
  2. Eu tenho em meu otserv uma área com TREINER OFFLINE, mas nao ta ativada, ta com grade, não da para entrar, sera que pode ser isso ?
  3. Fui banido da OTServ List, e me aparece aq seguinte mensagem oque é isso? This server is currently banned! Reason: Spoofing data info (Type: #2). Como faço para ser desbanido?
  4. Pessoal to fazendo uma arena aqui, nela são sumonados 4 monsters, quando o player mata os 4 aparecem +4, pois bem o problema é que tem alguns monsters que matam o outro, por exemplo sai 2 hydras e 2 dragon lord, dai com as waves um mata o outro, e dai nao contabiliza que o player matou os 4 e a arena nao vai pra frente, tem como por para os bixos nao se atacarem em uma area x y?
  5. Show de bola, o problema estava quando substitui esse ultimo post dele copiei apenas RENA e nao ARENA como ele mesmo informou... Quero agradecer imensamente a ajuda do @ziper98 pelo esforço e dedicação aplicada nesse script, ficou 100% mesmo, tudo funcionando conforme o pedido, que você continue ajudando aqui no Forum, faz um ótimo trabalho amigo, precisamos de mais pessoas como você por aqui! Parabéns!
  6. Cara tu não vai acreditar mas agora ele da erro no script do NPC Script: 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 if msgcontains(msg:lower(), "arena") or msgcontains(msg:lower(), "enter") then if getPlayerLevel(cid) < ARENA.level then selfSay("You do not have enough level ["..ARENA.level.."].", cid) talkState[talkUser] = 0 return true elseif getGlobalStorageValue(1000) > -1 then selfSay("Someone is at the arena right now, please wait.", cid) talkState[talkUser] = 0 return true elseif getPlayerStorageValue(cid, ARENA.STORAGES.storage) > -1 then selfSay("You already completed the arena.", cid) talkState[talkUser] = 0 return true else selfSay("You really want enter in the arena? It will cost you {"..ARENA.NPC.price.."}.", cid) talkState[talkUser] = 1 return true end elseif msgcontains(msg:lower(), "yes") and talkState[talkUser] == 1 then if doPlayerRemoveMoney(cid, ARENA.NPC.price) then selfSay("Good luck! ^.^", cid) doTeleportThing(cid, ARENA.NPC.position) setPlayerStorageValue(cid, ARENA.STORAGES.wave_sto, 1) setPlayerStorageValue(cid, 90183, 1) setGlobalStorageValue(1000, 1) doWave(cid, 1) talkState[talkUser] = 0 return true else selfSay("You do not have enough money.", cid) talkState[talkUser] = 0 return true end elseif msgcontains(msg:lower(), "no") and talkState[talkUser] == 1 then selfSay("Ok, then...", cid) talkState[talkUser] = 0 return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  7. Exatamente, eu coloco o DOLL la e ee sumona mesmo tendo monstros na sala...
  8. Mato e nao aparece a outra WAVE do Distro: Creaturescripts: function onKill(cid, target) print("test6") 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 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) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) setGlobalStorageValue(1000, -1) clearArena() end return true end e a LIB: 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, }, 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 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 not isPlayer(creature) and not isSummon(creature) then print("test5") return false end end end end end print("test2") return true end
  9. Amigo aonde fica os arquivos test? Na distro deu isso: ">http:// E não começou a WAVE 2 depois de matar os 4 demons da WAVE 1
  10. Certo, agora ele matou todos os demons, porem ele nao passa para a WAVE 2, no caso eu matei os 4 demon da wave 1, dai nao acontece mais nada, e nao ganha o premio tbm 14:36 Vandrigo Ten [9177]: hi 14:36 The Guard of Arena: Olá, Eu vendo Summon Doll, o custo é 50k cada um, para comprar fale: trade. Com ele você poderá Summon um Monstro Aleatório na Maquina de Summon na sala abaixo. 14:36 Em 15 segundos, começa seu desafio. [Wave: 1] 14:37 Você Matou 2281 Demon's. 14:37 Você Matou 2282 Demon's. 14:37 Você Matou 2283 Demon's. 14:37 Você Matou 2284 Demon's.
  11. Cara mudei ali conforme voce falou: 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 = 623, y = 2084, 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, }, 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 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 not isPlayer(creature) and not isSummon(creature) then return false end end end end return true end mas agora voltou o problema que tinha sido resolvido antes, eu mato os bixo e eles nao morrem... O demon da esquerda la eu matei e ele fica la de pé Erro na distro:
  12. Não, agora nao da mais o erro, só que eu mato os 4 demons da Wave 1 e ele nao pula para a Wave 2 Olha como ta o script, eu editei oque voce foi falando ali, menos esse ultimo post que tu fez para o @olokomeu Script: 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 = { {item_id, count}, --{ID do item, quantidade}, {item_id, count}, }, }, }, }, NPC = { price = 2000, --Preço para entrar na arena. position = {x = 623, y = 2084, 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, }, 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 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
  13. frompos é cima a esquerda e topos é direita embaixo né? Cara continua na mesma, eu posso sumonar quantos monstros eu quizer, e quando saio da arena e volto os monstros ainda estão lá, segue a imagem e o script: Script: local fromPos = {x = 635, y = 2032} -- Configurar position da sala. local toPos = {x = 653, y = 2051} -- Configurar position da sala. local function isThereSomeMonster() for x = fromPos.x, toPos.x do for y = fromPos.y, toPos.y do local area = {x = x, y = y, z = 6} -- floor onde a sala esta. local creature = getTopCreature(area).uid if isMonster(creature) then return true end end end return false end function onUse(cid, item, fromPos, itemEx, toPos) -- [[INICIO CONFIG - Beyond Sky]] monstros = { [1] = {chance = 35, name = "Golden Demon"}, --[[Monstro do shirine fire e item fire]] [2] = {chance = 5, name = "The Handmaiden"}, --[[Monstro do shirine fire e item fire]] [3] = {chance = 5, name = "Hellfire Fighter"}, --[[Monstro do shirine fire e item fire]] [4] = {chance = 5, name = "Carrasco"}, --[[Monstro do shirine fire e item fire]] [5] = {chance = 5, name = "Demonic Dragon"}, --[[Monstro do shirine ice e item ice]] [6] = {chance = 5, name = "Mestre Ninja"}, --[[Monstro do shirine ice e item ice]] [7] = {chance = 5, name = "Crystal Dragon"}, --[[Monstro do shirine ice e item ice]] [8] = {chance = 5, name = "Orshabaal"}, --[[Monstro do shirine ice e item ice]] [9] = {chance = 5, name = "Morgaroth"}, --[[Monstro do shirine tera e item tera]] [10] = {chance = 5, name = "Juggernaut"}, --[[Monstro do shirine tera e item tera]] [11] = {chance = 5, name = "Apocalypse"}, --[[Monstro do shirine tera e item tera]] [12] = {chance = 5, name = "Massacre"}, --[[Monstro do shirine tera e item tera]] [13] = {chance = 5, name = "Glacialisty"}, --[[Monstro do shirine energy e item energ]] [14] = {chance = 5, name = "Senhor das Maquinas"}, --[[Monstro do shirine energy e item energ]] [15] = {chance = 5, name = "Senhor do Gelo"}, --[[Monstro do shirine energy e item energ]] [16] = {chance = 5, name = "Senhor das Chamas"} --[[Monstro do shirine energy e item energ]] } local uniqid = 40002 --[[UNIQUE ID DA ALAVANCA - Beyond Sky]] local ItemIdFire = 11757 --[[Item do shrine Fire]] local ItemIdIce = 6551 --[[ESSA EU NAO USO]] local ItemIdTera = 6549 --[[ESSA EU NAO USO]] local ItemIdEnergy = 6548 --[[ESSA EU NAO USO]] local PosNameFire = {x=636, y=2049, z=6} --[[Pos do monster da shrine Fire]] local PosNameIce = {x=2203, y=2079, z=8} --[[ESSA EU NAO USO]] local PosNameTera = {x=2203, y=2076, z=8} --[[ESSA EU NAO USO]] local PosNameEnergy = {x=2203, y=2088, z=8} --[[ESSA EU NAO USO]] local PosItem = {x=637, y=2044, z=6, stackpos = 255} --[[Posição do item que vai ser preciso]] local getitem = getThingfromPos(PosItem) -- [[FIM CONFIG - Beyond Sky]] for i = 1, 14 do if item.uid == uniqid and getitem.itemid == ItemIdFire and item.itemid == 9825 and (monstros[i].chance >= math.random(1, 100)) then doSummonCreature(monstros[i].name, PosNameFire) doRemoveItem(getitem.uid,1) doCreatureSay(cid, "A máquina de summon criou um "..monstros[i].name..".", TALKTYPE_ORANGE_1) doSendMagicEffect(PosItem, 13) elseif item.uid == uniqid and getitem.itemid == ItemIdIce and item.itemid == 9825 and (monstros[i+4].chance >= math.random(1, 100)) then doSummonCreature(monstros[i+4].name, PosNameIce) doRemoveItem(getitem.uid,1) doCreatureSay(cid, "A máquina de summon criou um "..monstros[i+4].name..".", TALKTYPE_ORANGE_1) doSendMagicEffect(PosItem, 13) elseif item.uid == uniqid and getitem.itemid == ItemIdTera and item.itemid == 9825 and (monstros[i+8].chance >= math.random(1, 100)) then doSummonCreature(monstros[i+8].name, PosNameTera) doRemoveItem(getitem.uid,1) doCreatureSay(cid, "A máquina de summon criou um "..monstros[i+8].name..".", TALKTYPE_ORANGE_1) doSendMagicEffect(PosItem, 13) elseif item.uid == uniqid and getitem.itemid == ItemIdEnergy and item.itemid == 9825 and (monstros[i+12].chance >= math.random(1, 100)) then doSummonCreature(monstros[i+12].name, PosNameEnergy) doRemoveItem(getitem.uid,1) doCreatureSay(cid, "A máquina de summon criou um "..monstros[i+12].name..".", TALKTYPE_ORANGE_1) doSendMagicEffect(PosItem, 13) elseif item.uid == uniqid and item.itemid == 9826 then if isThereSomeMonster() then return doCreatureSay(cid, "Ainda tem monstros no local.", TALKTYPE_ORANGE_1) and doSendMagicEffect(getPlayerPosition(cid), 2) end doTransformItem(item.uid, 9825) return true end end end "> http:// Na Imagen o GOLDEN DEMON é um BOSS, o CARRASCO é outro e o HellFireFighter seria outro...
  14. tranquilo @olokomeu, muito obrigado por ter ajudado até agora
  15. Fiz isso, agora da pra matar os 4 demons... mas eu termino de matar a wave 1 e ele nao puxa a wave 2...
  16. Nessa parte ai teria que por as coordenadas de cima e de baixo tbm? Assim: 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 = 614, y = 2082, z = 6} 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 = 630, y = 2092, z = 6} local creature = getTopCreature(area).uid if isCreature(creature) and isMonster(creature) then return false end end end end return true end
  17. Mudei mas nao resolveu, olha oque acontece: eu mato 2 demons, dai o terceiro nao morre: http://prntscr.com/5x520g e logo apos 15 segundos ele ja puxa a segunda wave: (sem eu ter terminado de matar a primeira) http://prntscr.com/5x533n E continua o erro na distro quando eu mato os demons da arena: http://prntscr.com/5x4tlh
  18. Mas cara eu ja fiz tudo oque diz no topico ai, substitui todas as linhas que ele mandou.. vou por aqui pra deixar mais claro: LIB: 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 = { {item_id, count}, --{ID do item, quantidade}, {item_id, count}, }, }, }, }, NPC = { price = 2000, --Preço para entrar na arena. position = {x = 623, y = 2084, 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, }, toPos = {x = 614, y = 2082, z = 6}, --Coordenadas da posição superior esquerda da arena. fromPos = {x = 630, y = 2092, 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 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 Creaturescript: 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 new_wave > getPlayerStorageValue(cid, 90183) then setPlayerStorageValue(cid, 90183, new_wave) end 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 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) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) setGlobalStorageValue(1000, -1) clearArena() end return true end Melda, faltou no clear arena as coordenadas que eu substitui, vou ver agora
  19. Cara ainda nao deu certo, a alavanca que tenho q por no Mapa eh a 9825 ou a 26? (na verdade ja tentei com as duas up
  20. Cara ele segue dando o erro na DB e assim, ele sumona 4 demon na primeira wave, dai eu mato 2 e os outros 2 eu mato mas eles nao somem e sem eu ter matado os 4 ja sai a segunda wave....
  21. Cara achei 3 problemas, o primeiro é que - colquei para sumonar 4 bosses, entao nasce os 4, dai eu mato 2 e os outro 2 que eu mato os bixo nao some, ele morre mas fica de pé lá. - Nao tem o deelay de 15 segundos de uma wave para outra - Quando o cara morre o proximo entra na sala e os bixo tao la ainda, ele não limpa os bixo da arena quando alguem morre E da um erro na DB http://prntscr.com/5x4tlh
  22. Ziper se nao for incomodar demais a que tu desenvolveu o Script, nao tem como sumonar mais que 1 monster por Wave? e tem como fazer um RANK para mim? mostrando quantas waves o cara passou? pretendo colocar mais waves e com niveis mais dificeis... teria como por tambem uma recompensa por WAVE? tipo Wave 1 500k, wave 2 1kk, wave 3 1kk + item? Muito grato e levo um REP+

Informação Importante

Confirmação de Termo