Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''arena''.



Mais opções de pesquisa

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • A Cidade OTBR
    • OTServ Brasil
    • Atendimento
    • Taverna
  • Projetos Open Source
    • Canary
    • OTServBR-Global
    • Mehah OTClient
    • MyAAC
  • OpenTibia
    • Notícias e Discussões
    • Suporte - Dúvidas, Bugs, Erros
    • Downloads
    • Tutoriais
    • Show-Off
  • Outros
    • Design

Encontrado 3 registros

  1. DungeonSystem - solo

    Olá rapaziada, como alguns puderam ver no Discord, estou desenvolvendo um sistema de Dungeon. O sistema será para um servidor que estou desenvolvendo e está nas fases iniciais, com muita coisa pra fazer e mudar, até o momento conta com uma demo de 3 tipos de arenas dentro da Dungeon com seus monstros e bosses. A Dungeon vai ser solo, ou seja, para cada "Tower" ou "Arena" como preferir chamar, será feita apenas por um player - MAS NETO COMO ASSIM?! OS OUTROS PLAYERS TEM QUE ESPERAR? - Não... a próxima pessoa a tentar entrar será enviada para a primeira tower disponível. Como apresentado no vídeo. Esse primeiro vídeo ainda não tinha a atualização de arena, bosses e monstros. Segue o vídeo da atualização: Estarei atualizando esse post conforme atualizo o sistema, pretendo posteriormente postar um sistema básico parecido com esse, mas não esperem nada detalhado com mil funções, será a base para você usar sua imaginação e seu conhecimento em programação e aprimorar, estarei fazendo de forma a agradecer as pessoas que tiraram minhas dúvidas no Discord.
  2. Mutant Arena

    Depois de um longo tempo desde meu ultimo tópico aqui no fórum (mais ou menos 3 anos :think:) voltei para trazer um script que fiz esses dias em casa. Há muito tempo postei na área VIP do fórum (na época que ainda ela cavaleiro) um script de uma arena um pouco diferente da comum, porém perdi os scripts que estavam no meu PC inclusive esse e por isso refiz ele do zero para ver se ainda lembrava algo de LUA A ideia do script é simples. Porque as Arenas tem que se restringir apenas à um quadrado onde você luta com o monstro? Que tal se você fosse levado para lutar com a criatura em seu próprio habitat? É Exatamente isso que o script faz. Para cada monstro da arena você pode definir um habitat para, o player e o monstro, lutarem :pega-el: Vamos começar ~~ Criando a Arena e os Cenários ~~ A primeira coisa que devemos fazer é montar a arena seguindo o seguinte modelo Ela deve ter um piso do lado de fora (para entrar na arena), um piso do lado de dentro (para que o player possa desistir, ou caso ja tenha matado o monstro, ir para o próximo round) e um local com tamanho 1x1 (para ficar o item que marcará o tempo - podendo ser qualquer um, nas imagens acima usei um fire field amarelo). Lembrando que a área principal da arena deve ficar vazia (pois é nela que aparecerá o cenário), qualquer coisa dentro da área principal será deletado. Os pisos devem ter um determinado ActionId (No piso para entrar eu usei 12000 e o para desistir/avançar round eu coloquei 12001). Agora vamos montar os habitats ou cenários. Um cenário não é nada mais que uma área do seu mapa (de preferencia em um lugar longe dos olhos dos players) do tamanho da área principal da arena. Esse pedaço do mapa será copiado para dentro da arena!! Você pode montar quantos cenários você quiser, desde florestas até construções (nessa versão do script ele copia apenas o que estiver no z=7) Feito isso é hora de instalar o script no server ~~ Instalando o script ~~ Instalar é bem simples!! Vá até a pasta data/movements e abra o arquivo movements.xml e coloque isso lá dentro: <movevent type="StepIn" actionid="12000" event="script" value="mutantArena.lua"/> <movevent type="StepIn" actionid="12001" event="script" value="mutantArena.lua"/> Lembrando que o ActionId 12000 é o do piso de entrada e o ActionId 12001 é o do piso de escape/avançar round Agora vá até data/movements/scripts copie qualquer arquivo de la e renomeie para mutantArena.lua. Abra o arquivo, apague tudo o que estiver dentro e coloque isso: ---------------------------------------- -- Mutant Arena (v 0.1) - BETA -- Develop By: Dark (OTBr) -- www.otserv.com.br ---------------------------------------- -- Configurações Básicas do Sistema!!! -- CONFIG = { iArena = {x=146,y=24,z=7}, fArena = {x=158,y=34,z=7}, storageLevel = 12004, storageMonster = 12005, posTeleporte = {x = 153, y=29, z=7}, posSaida = {x=160, y=31, z=7}, tempoRound = 20, posItem = {x = 152, y=23, z=7}, itemTempo = {1500,1501,1502} } -- Leveis da Arena LEVEL = { [1] = { {monstro = "dwarf guard", cenario = "cave", magic = 2, pos={x=147,y=30,z=7}}, {monstro = "cyclops", cenario = "floresta", magic = 2, pos={x=147,y=30,z=7}}, {monstro = "water elemental", cenario = "agua", magic = 2, pos={x=147,y=30,z=7}}, {monstro = "orc shaman", cenario = "floresta", magic = 2, pos={x=147,y=30,z=7}}, {monstro = "giant spider", cenario = "deserto", magic = 10, pos={x=147,y=30,z=7}}, }, } -- Cenarios CENARIO = { floresta = { i = {x=168,y=25,z=7}, f = {x=180,y=35,z=7}, m = 44 }, agua = { i = {x=168,y=38,z=7}, f = {x=180,y=48,z=7}, m = 53 }, deserto = { i = {x=183,y=38,z=7}, f = {x=195,y=48,z=7}, m = 2 }, cave = { i = {x=183,y=25,z=7}, f = {x=195,y=35,z=7}, m = 38 }, } -------------------------------------------------- eventID = nil; function onStepIn(cid, item, pos, fpos) level = getPlayerStorageValue(cid, CONFIG.storageLevel) if(level <= 0) then setPlayerStorageValue(cid, CONFIG.storageLevel, 1) level = 1 end stopEvent(eventID) if(item.actionid == 12000) then if(not havePlayer()) then if(LEVEL[level] ~= nil) then resetArena() setPlayerStorageValue(cid, CONFIG.storageMonster, 1) round = getPlayerStorageValue(cid, CONFIG.storageMonster) doTeleportThing(cid, CONFIG.posTeleporte) iniciarPartida(level, round) else doSendMagicEffect(pos, 2) doPlayerSendTextMessage(cid, 22, "Não há mais desafios para você aqui") end else doSendMagicEffect(pos, 2) doPlayerSendTextMessage(cid, 22, "Há um jogador na arena! Aguarde a sua vez") end else if(arenaIsEmpty()) then round = getPlayerStorageValue(cid, CONFIG.storageMonster) if(round < #LEVEL[level]) then setPlayerStorageValue(cid, CONFIG.storageMonster, round+1) resetArena() doTeleportThing(cid, CONFIG.posTeleporte) iniciarPartida(level, round+1) else doTeleportThing(cid, CONFIG.posSaida) setPlayerStorageValue(cid, CONFIG.storageLevel, level+1) doPlayerSendTextMessage(cid, 22, "GANHOU") resetArena() end else doSendMagicEffect(pos, 2) doTeleportThing(cid, CONFIG.posSaida, true) doSendMagicEffect(CONFIG.posSaida, 20) doSetMonsterOutfit(cid, "chicken", 5*60*1000) resetArena() end end end function havePlayer() for w = 0, (CONFIG.fArena.x-CONFIG.iArena.x) do for z = 0, (CONFIG.fArena.y-CONFIG.iArena.y) do -- Verifica se há Player posArena = {x=CONFIG.iArena.x+w, y=CONFIG.iArena.y+z, z=7, stackpos=253} itemTemp = getThingFromPos(posArena) if(isPlayer(itemTemp.uid)) then return true end end end return false end function arenaIsEmpty() for w = 0, (CONFIG.fArena.x-CONFIG.iArena.x) do for z = 0, (CONFIG.fArena.y-CONFIG.iArena.y) do -- Verifica se há Criaturas posArena = {x=CONFIG.iArena.x+w, y=CONFIG.iArena.y+z, z=7, stackpos=253} itemTemp = getThingFromPos(posArena) if(isCreature(itemTemp.uid)) then return false end end end return true end function iniciarPartida(lvl,round) carregaCenario(LEVEL[lvl][round].cenario) doSummonCreature(LEVEL[lvl][round].monstro, LEVEL[lvl][round].pos) doSendMagicEffect(LEVEL[lvl][round].pos, LEVEL[lvl][round].magic) mudarTempo(1) end function mudarTempo(estagio) if(estagio <= #CONFIG.itemTempo) then posItem = CONFIG.posItem posItem.stackpos = 1 itemT = getThingFromPos(posItem) if(itemT.uid ~= 0) then doRemoveItem(itemT.uid) end doCreateItem(CONFIG.itemTempo[estagio], 1, posItem) newTime = (CONFIG.tempoRound*1000) / #CONFIG.itemTempo eventID = addEvent(mudarTempo, newTime, estagio+1) else resetArena() end end function carregaCenario(cenario) arrayCenario = CENARIO[cenario]; -- Copia Cenário for w = 0, (CONFIG.fArena.x-CONFIG.iArena.x) do for z = 0, (CONFIG.fArena.y-CONFIG.iArena.y) do posCenario = {x=arrayCenario.i.x+w, y=arrayCenario.i.y+z, z=7, stackpos=0} posArena = {x=CONFIG.iArena.x+w, y=CONFIG.iArena.y+z, z=7, stackpos=0} cenarioTemp = getThingFromPos(posCenario) doCreateItem(cenarioTemp.itemid, 1, posArena) for s = 3, 1, -1 do posCenario.stackpos = s cenarioTemp = getThingFromPos(posCenario) if(cenarioTemp.itemid ~= 0) then doCreateItem(cenarioTemp.itemid, 1, posArena) end end doSendMagicEffect(posArena, arrayCenario.m) end end end function resetArena() for w = 0, (CONFIG.fArena.x-CONFIG.iArena.x) do for z = 0, (CONFIG.fArena.y-CONFIG.iArena.y) do --Coloca Piso posArena = {x=CONFIG.iArena.x+w, y=CONFIG.iArena.y+z, z=7, stackpos=0} doCreateItem(413, 1, posArena) -- Remove Criaturas posArena.stackpos = 253 itemTemp = getThingFromPos(posArena) if(isCreature(itemTemp.uid) and not(isPlayer(itemTemp.uid))) then doRemoveCreature(itemTemp.uid) end if(isPlayer(itemTemp.uid)) then doTeleportThing(itemTemp.uid, CONFIG.posSaida, true) end -- Remove Itens for s = 3, 1, -1 do posArena.stackpos = s itemTemp = getThingFromPos(posArena) if(itemTemp.itemid ~= 0) then doRemoveItem(itemTemp.uid) end end end end end Pronto, salve e feche! Agora vamos aprender a configura-lo ~~ Configurando o script ~~ As primeiras coisas que temos que configurar no Script é: CONFIG = { iArena = {x=146,y=24,z=7}, fArena = {x=158,y=34,z=7}, storageLevel = 12004, storageMonster = 12005, posTeleporte = {x = 153, y=29, z=7}, posSaida = {x=160, y=31, z=7}, tempoRound = 20, posItem = {x = 152, y=23, z=7}, itemTempo = {1500,1501,1502} } iArena - Posição do primeiro SQM da área principal da Arena (canto esquerdo superior fArena - Posição do último SQM da área principal da Arena (canto direito inferior) StorageLevel - Storage value que será salvo o level da arena atual do usuário StorageMonster - Storage value que será usado para salvar o round atual do usuário (é resetado toda vez que entra na arena) posTeleporte - Posição para a qual o player será teleportado ao entrar na arena (uma posição dentro da arena) posSaida - Posição para o qual o player será teleportado ao sair ou vencer a arena tempoRound - Tempo (em segundos) que durará cada round (após o tempo o player é teleportado para fora) posItem - Posição do local onde ficará o item que representará o tempo itemTempo - Itens que representarão o tempo. Nesse exemplo está sendo usado o fire fileld amarelo (1500, 1501, 1502) Como há três itens o tempo será dividido por 3 (A cada 6 Segundos o item muda para o próximo da lista). Exemplo: Após isso vamos configurar os leveis LEVEL = { [1] = { {monstro = "dwarf guard", cenario = "cave", magic = 2, pos={x=147,y=30,z=7}}, {monstro = "cyclops", cenario = "floresta", magic = 2, pos={x=147,y=30,z=7}}, {monstro = "water elemental", cenario = "agua", magic = 2, pos={x=147,y=30,z=7}}, {monstro = "orc shaman", cenario = "floresta", magic = 2, pos={x=147,y=30,z=7}}, {monstro = "giant spider", cenario = "deserto", magic = 10, pos={x=147,y=30,z=7}}, }, } [x]={} - Cada Level é um Array contendo os monstros (na ordem que eles vão aparecer) monstro - Nome do monstro que será sumonado cenario - nome do cenário que aparecerá com o monstro (iremos configurar isso depois) magic - Efeito que aparecerá no monstro sumonado posItem - Posição da Arena em que o monstro será sumonado Como exemplo vamos criar um 2º level (o player poderá lutar nesse level se ele já passou pelo 1º). Esse level terá 3 criaturas: A primeira será um orc, depois um orc shaman e por fim um orc leader e todos usarão o mesmo habitat, floresta. [2] = { {monstro = "orc", cenario = "floresta", magic = 2, pos={x=147,y=30,z=7}}, {monstro = "orc shaman", cenario = "floresta", magic = 3, pos={x=147,y=30,z=7}}, {monstro = "orc leader", cenario = "floresta", magic = 4, pos={x=147,y=30,z=7}}, }, E no geral ficaria assim: LEVEL = { [1] = { {monstro = "dwarf guard", cenario = "cave", magic = 2, pos={x=147,y=30,z=7}}, {monstro = "cyclops", cenario = "floresta", magic = 2, pos={x=147,y=30,z=7}}, {monstro = "water elemental", cenario = "agua", magic = 2, pos={x=147,y=30,z=7}}, {monstro = "orc shaman", cenario = "floresta", magic = 2, pos={x=147,y=30,z=7}}, {monstro = "giant spider", cenario = "deserto", magic = 10, pos={x=147,y=30,z=7}}, }, [2] = { {monstro = "orc", cenario = "floresta", magic = 2, pos={x=147,y=30,z=7}}, {monstro = "orc shaman", cenario = "floresta", magic = 3, pos={x=147,y=30,z=7}}, {monstro = "orc leader", cenario = "floresta", magic = 4, pos={x=147,y=30,z=7}}, }, } E por fim vamos configurar os cenários CENARIO = { floresta = { i = {x=168,y=25,z=7}, f = {x=180,y=35,z=7}, m = 44 }, agua = { i = {x=168,y=38,z=7}, f = {x=180,y=48,z=7}, m = 53 }, deserto = { i = {x=183,y=38,z=7}, f = {x=195,y=48,z=7}, m = 2 }, cave = { i = {x=183,y=25,z=7}, f = {x=195,y=35,z=7}, m = 38 }, } NOME DO CENARIO={} - Cada cenário é um array, sendo o nome dele o index. Esse nome é que será usado nos monstros para definir qual cenário usar i - Posição do primeiro SQM do cenário (primeiro sqm do lado superior esquerdo). Caso de dúvida veja na Planta do Cenário o SQM marcado como Inicio f - Posição do último SQM do cenário (último sqm do lado inferior direito). Caso de dúvida veja na Planta do Cenário o SQM marcado como Fim Pronto. A Arena já está pronta para ser usada ~~ Considerações finais ~~ Eu sei que o script é simples mas deem um desconto porque não mexo com LUA já faz uns 3 anos ;p. O script se encontra em Beta por isso é muito provável que haja bugs. Estou pensando em futuras versões (não sei se é um futuro próximo ou longínquo) colocar novas funcionalidades, então se você tiver alguma sugestão por favor poste Esse script NÃO pode ser postado em outros forums (Apesar de saber que ele será)
  3. [8.31] Arena Quest v3.0 90% rl by ta4e

    ------------------------------- Nome: Arena Quest 4.0 Versão: 8.31+ Tipo do script: Action, Movements e Npc Servidor Testado: The Forgotten Server 0.3.0 Alpha 3 Autor: Ta4e ------------------------------- A pedidos arrumei os bugs conhecidos e diminui o script Aqui as mudanças : Funcionamento :A arena funciona da seguinte forma : O player prescisará comprar a permissão no Npc Arena custando o valor especificado no npc. Depois ele deverá passar a porta de permissão que só abrirá se ele tiver os storage de compra e se não houver ninguem fazendo nenhum tipo de arena. Depois ele andará e entrará no teleport que sumonará o bicho equivalente ao seu nivel. Nas arenas ao matar um boss a pedra se transformará em teleport ele andará e será teleportado para a proxima sala. Na ultima sala ele será teleportado para a area das recompensas e ganhará um storage que será a prova que ele termino essa missão. E as portas de permissão recompensa deverá ter esse storage. Na sala ele poderá andar no tile e ganhar seu trofeu e depois escolhe 1 entre os 5 prêmios. O script é dividido em 3 arquivos : Movements Arena : Responsavel pelos antigos arena1, arena e trofeu. Ou seja tudo que é em movimentos Actions  reward.lua : É as recompensas das arenas.  Arena door.lua : Esse arquivo checa se os há players fazendo a arena. Bem recomendo que vc faça o download do mapa que “copiei “ do tibia para ter uma melhor localização ou até editar e usar ele mesmo pq não está tão mal... mapa 4.0 download mapa Em movimentos crie o arena.lua e adicione --Function by Ta4e 07/11/2008-- --90% Arena quest in tibia rl-- --Version 4.0-- --This script make create a globet, summons monsters and create and delete teleports-- function onStepIn(cid, item, position, fromPosition) getele = getThingfromPos(arenaroom) getele1 = getThingfromPos(arenache1) getele2 = getThingfromPos(arenache2) getele3 = getThingfromPos(arenache3) getele4 = getThingfromPos(arenache4) getele5 = getThingfromPos(arenache5) getele6 = getThingfromPos(arenache6) getele7 = getThingfromPos(arenache7) getele8 = getThingfromPos(arenache8) getele9 = getThingfromPos(arenache9) getele10 = getThingfromPos(arenache10) greenhornstatus = getPlayerStorageValue(cid,5000) scrapperstatus = getPlayerStorageValue(cid,5001) warlordstatus = getPlayerStorageValue(cid,5002) ----------------------------------------------------------------------------------------------------------------- if item.itemid == 1387 and item.actionid == 5110 then doTeleportThing(getele.uid,arenapos,0) doSendMagicEffect(arenapos,10) if warlordstatus == 1 then doSummonCreature(bossw1, monsterpos1) setPlayerStorageValue(cid,5002,2) elseif scrapperstatus == 1 then doSummonCreature(bosss1, monsterpos1) setPlayerStorageValue(cid,5001,2) elseif greenhornstatus == 1 then doSummonCreature(bossg1, monsterpos1) setPlayerStorageValue(cid,5000,2) else doPlayerSendCancel(cid,"You need talk to halvar") end elseif item.itemid == 1387 and item.actionid == 5100 then doTeleportThing(getele1.uid,arenapos2,0) doSendMagicEffect(arenapos2,10) getrem1 = getThingfromPos({x=arenache1.x, y=arenache1.y, z=arenache1.z, stackpos =1}) doCreateItem(1354,1,arenache1) doRemoveItem(getrem1.uid,1) if warlordstatus == 2 then doSummonCreature(bossw2, monsterpos2) elseif scrapperstatus == 2 then doSummonCreature(bosss2, monsterpos2) elseif greenhornstatus == 2 then doSummonCreature(bossg2, monsterpos2) end elseif item.itemid == 1387 and item.actionid == 5101 then doTeleportThing(getele2.uid,arenapos3,0) doSendMagicEffect(arenapos3,10) local getrem2 = getThingfromPos({x=arenache2.x, y=arenache2.y, z=arenache2.z, stackpos =1}) doRemoveItem(getrem2.uid,1) doCreateItem(1354,1,arenache2) if warlordstatus == 2 then doSummonCreature(bossw3, monsterpos3) elseif scrapperstatus == 2 then doSummonCreature(bosss3, monsterpos3) elseif greenhornstatus == 2 then doSummonCreature(bossg3, monsterpos3) end elseif item.itemid == 1387 and item.actionid == 5102 then doTeleportThing(getele3.uid,arenapos4,0) doSendMagicEffect(arenapos4,10) local getrem3 = getThingfromPos({x=arenache3.x, y=arenache3.y, z=arenache3.z, stackpos =1}) doRemoveItem(getrem3.uid,1) doCreateItem(1354,1,arenache3) if warlordstatus == 2 then doSummonCreature(bossw4, monsterpos4) elseif scrapperstatus == 2 then doSummonCreature(bosss4, monsterpos4) elseif greenhornstatus == 2 then doSummonCreature(bossg4, monsterpos4) end elseif item.itemid == 1387 and item.actionid == 5103 then doTeleportThing(getele4.uid,arenapos5,0) doSendMagicEffect(arenapos5,10) local getrem4 = getThingfromPos({x=arenache4.x, y=arenache4.y, z=arenache4.z, stackpos =1}) doRemoveItem(getrem4.uid,1) doCreateItem(1354,1,arenache4) if warlordstatus == 2 then doSummonCreature(bossw5, monsterpos5) elseif scrapperstatus == 2 then doSummonCreature(bosss5, monsterpos5) elseif greenhornstatus == 2 then doSummonCreature(bossg5, monsterpos5) end elseif item.itemid == 1387 and item.actionid == 5104 then doTeleportThing(getele5.uid,arenapos6,0) doSendMagicEffect(arenapos6,10) local getrem5 = getThingfromPos({x=arenache5.x, y=arenache5.y, z=arenache5.z, stackpos =1}) doRemoveItem(getrem5.uid,1) doCreateItem(1354,1,arenache5) if warlordstatus == 2 then doSummonCreature(bossw6, monsterpos6) elseif scrapperstatus == 2 then doSummonCreature(bosss6, monsterpos6) elseif greenhornstatus == 2 then doSummonCreature(bossg6, monsterpos6) end elseif item.itemid == 1387 and item.actionid == 5105 then doTeleportThing(getele6.uid,arenapos7,0) doSendMagicEffect(arenapos7,10) local getrem6 = getThingfromPos({x=arenache6.x, y=arenache6.y, z=arenache6.z, stackpos =1}) doRemoveItem(getrem6.uid,1) doCreateItem(1354,1,arenache6) if warlordstatus == 2 then doSummonCreature(bossw7, monsterpos7) elseif scrapperstatus == 2 then doSummonCreature(bosss7, monsterpos7) elseif greenhornstatus == 2 then doSummonCreature(bossg7, monsterpos7) end elseif item.itemid == 1387 and item.actionid == 5106 then doTeleportThing(getele7.uid,arenapos8,0) doSendMagicEffect(arenapos8,10) local getrem7 = getThingfromPos({x=arenache7.x, y=arenache7.y, z=arenache7.z, stackpos =1}) doRemoveItem(getrem7.uid,1) doCreateItem(1354,1,arenache7) if warlordstatus == 2 then doSummonCreature(bossw8, monsterpos8) elseif scrapperstatus == 2 then doSummonCreature(bosss8, monsterpos8) elseif greenhornstatus == 2 then doSummonCreature(bossg8, monsterpos8) end elseif item.itemid == 1387 and item.actionid == 5107 then doTeleportThing(getele8.uid,arenapos9,0) doSendMagicEffect(arenapos8,10) local getrem8 = getThingfromPos({x=arenache8.x, y=arenache8.y, z=arenache8.z, stackpos =1}) doRemoveItem(getrem8.uid,1) doCreateItem(1354,1,arenache8) if warlordstatus == 2 then doSummonCreature(bossw9, monsterpos9) elseif scrapperstatus == 2 then doSummonCreature(bosss9, monsterpos9) elseif greenhornstatus == 2 then doSummonCreature(bossg9, monsterpos9) end elseif item.itemid == 1387 and item.actionid == 5108 then doTeleportThing(getele9.uid,arenapos10,0) doSendMagicEffect(arenapos9,10) local getrem9 = getThingfromPos({x=arenache9.x, y=arenache9.y, z=arenache9.z, stackpos =1}) doRemoveItem(getrem9.uid,1) doCreateItem(1354,1,arenache9) if warlordstatus == 2 then doSummonCreature(bossw10, monsterpos10) elseif scrapperstatus == 2 then doSummonCreature(bosss10, monsterpos10) elseif greenhornstatus == 2 then doSummonCreature(bossg10, monsterpos10) end elseif item.itemid == 1387 and item.actionid == 5109 then doTeleportThing(getele10.uid,rewardpos,0) doSendMagicEffect(rewardpos,10) local getrem10 = getThingfromPos({x=arenache10.x, y=arenache10.y, z=arenache10.z, stackpos =1}) doRemoveItem(getrem10.uid,1) doCreateItem(1354,1,arenache10) if warlordstatus == 2 then setPlayerStorageValue(cid,5002,3) setPlayerStorageValue(cid,5007,1) elseif scrapperstatus == 2 then setPlayerStorageValue(cid,5001,3) setPlayerStorageValue(cid,5006,1) elseif greenhornstatus == 2 then setPlayerStorageValue(cid,5000,3) setPlayerStorageValue(cid,5005,1) end elseif item.itemid == 1387 and item.actionid == 5111 then if warlordstatus == 2 then setPlayerStorageValue(cid,5002,0) elseif scrapperstatus == 2 then setPlayerStorageValue(cid,5001,0) elseif greenhornstatus == 2 then setPlayerStorageValue(cid,5000,0) end elseif item.itemid == 426 then if item.actionid == 5010 then doTransformItem(item.uid, 425) if getPlayerStorageValue(cid,5017) == -1 then local golden = doCreateItem(8698,1,globet1) doSetItemSpecialDescription(golden, 'It is given to the courageous victor of the barbarian arena warlord difficulty. Awarded to '..getPlayerName(cid)..'.') doSendMagicEffect(globet1,10) setPlayerStorageValue(cid,5017,1) else doSendMagicEffect(globet1,2) end elseif item.actionid == 5011 then doTransformItem(item.uid, 425) if getPlayerStorageValue(cid,5016) == -1 then local golden = doCreateItem(7370,1,globet2) doSetItemSpecialDescription(golden, 'It is given to the courageous victor of the barbarian arena in scrapper difficulty. Awarded to '..getPlayerName(cid)..'.') doSendMagicEffect(globet2,10) setPlayerStorageValue(cid,5016,1) else doSendMagicEffect(globet2,2) end elseif item.actionid == 5012 then doTransformItem(item.uid, 425) if getPlayerStorageValue(cid,5015) == -1 then local golden = doCreateItem(7371,1,globet3) doSetItemSpecialDescription(golden, 'It is given to the courageous victor of the barbarian arena in greenhorn difficulty. Awarded to '..getPlayerName(cid)..'.') doSendMagicEffect(globet3,10) setPlayerStorageValue(cid,5015,1) else doSendMagicEffect(globet3,2) end end end return TRUE end function onAddItem(moveitem, tileitem, position) if moveitem.itemid == 7349 and tileitem.actionid == 5000 then local getrem1 = getThingfromPos({x=arenache1.x, y=arenache1.y, z=arenache1.z, stackpos =1}) doRemoveItem(getrem1.uid,1) doCreateItem(1387,1,arenache1) doMakeEffect(arenache1,13) local getrem1 = getThingfromPos({x=arenache1.x, y=arenache1.y, z=arenache1.z, stackpos =1}) doSetItemActionId(getrem1.uid,5100) elseif moveitem.itemid == 7349 and tileitem.actionid == 5001 then local getrem2 = getThingfromPos({x=arenache2.x, y=arenache2.y, z=arenache2.z, stackpos =1}) doRemoveItem(getrem2.uid,1) doCreateItem(1387,1,arenache2) doMakeEffect(arenache2,13) local getrem2 = getThingfromPos({x=arenache2.x, y=arenache2.y, z=arenache2.z, stackpos =1}) doSetItemActionId(getrem2.uid,5101) elseif moveitem.itemid == 7349 and tileitem.actionid == 5002 then local getrem3 = getThingfromPos({x=arenache3.x, y=arenache3.y, z=arenache3.z, stackpos =1}) doRemoveItem(getrem3.uid,1) doCreateItem(1387,1,arenache3) doMakeEffect(arenache3,13) local getrem3 = getThingfromPos({x=arenache3.x, y=arenache3.y, z=arenache3.z, stackpos =1}) doSetItemActionId(getrem3.uid,5102) elseif moveitem.itemid == 7349 and tileitem.actionid == 5003 then local getrem4 = getThingfromPos({x=arenache4.x, y=arenache4.y, z=arenache4.z, stackpos =1}) doRemoveItem(getrem4.uid,1) doCreateItem(1387,1,arenache4) doMakeEffect(arenache4,13) local getrem4 = getThingfromPos({x=arenache4.x, y=arenache4.y, z=arenache4.z, stackpos =1}) doSetItemActionId(getrem4.uid,5103) elseif moveitem.itemid == 7349 and tileitem.actionid == 5004 then local getrem5 = getThingfromPos({x=arenache5.x, y=arenache5.y, z=arenache5.z, stackpos =1}) doRemoveItem(getrem5.uid,1) doCreateItem(1387,1,arenache5) doMakeEffect(arenache5,13) local getrem5 = getThingfromPos({x=arenache5.x, y=arenache5.y, z=arenache5.z, stackpos =1}) doSetItemActionId(getrem5.uid,5104) elseif moveitem.itemid == 7349 and tileitem.actionid == 5005 then local getrem6 = getThingfromPos({x=arenache6.x, y=arenache6.y, z=arenache6.z, stackpos =1}) doRemoveItem(getrem6.uid,1) doCreateItem(1387,1,arenache6) doMakeEffect(arenache6,13) local getrem6 = getThingfromPos({x=arenache6.x, y=arenache6.y, z=arenache6.z, stackpos =1}) doSetItemActionId(getrem6.uid,5105) elseif moveitem.itemid == 7349 and tileitem.actionid == 5006 then local getrem7 = getThingfromPos({x=arenache7.x, y=arenache7.y, z=arenache7.z, stackpos =1}) doRemoveItem(getrem7.uid,1) doCreateItem(1387,1,arenache7) doMakeEffect(arenache7,13) local getrem7 = getThingfromPos({x=arenache7.x, y=arenache7.y, z=arenache7.z, stackpos =1}) doSetItemActionId(getrem7.uid,5106) elseif moveitem.itemid == 7349 and tileitem.actionid == 5007 then local getrem8 = getThingfromPos({x=arenache8.x, y=arenache8.y, z=arenache8.z, stackpos =1}) doRemoveItem(getrem8.uid,1) doCreateItem(1387,1,arenache8) doMakeEffect(arenache8,13) local getrem8 = getThingfromPos({x=arenache8.x, y=arenache8.y, z=arenache8.z, stackpos =1}) doSetItemActionId(getrem8.uid,5107) elseif moveitem.itemid == 7349 and tileitem.actionid == 5008 then local getrem9 = getThingfromPos({x=arenache9.x, y=arenache9.y, z=arenache9.z, stackpos =1}) doRemoveItem(getrem9.uid,1) doCreateItem(1387,1,arenache9) doMakeEffect(arenache9,13) local getrem9 = getThingfromPos({x=arenache9.x, y=arenache9.y, z=arenache9.z, stackpos =1}) doSetItemActionId(getrem9.uid,5108) elseif moveitem.itemid == 7349 and tileitem.actionid == 5009 then local getrem10 = getThingfromPos({x=arenache10.x, y=arenache10.y, z=arenache10.z, stackpos =1}) doRemoveItem(getrem10.uid,1) doCreateItem(1387,1,arenache10) doMakeEffect(arenache10,13) local getrem10 = getThingfromPos({x=arenache10.x, y=arenache10.y, z=arenache10.z, stackpos =1}) doSetItemActionId(getrem10.uid,5109) end end Nesse novo script, voce prescisa apenas colocar a coordenada especificada como here player teleport da primeira arena (a marrom msm). Mais isso se configura no lib dos movements. Em movements/lib/movement.lua add : --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- arenapos={x=1172, y=925, z=7} --posição do meio da primeira arena rewardpos={x=1208, y=899, z=6} --posicao que ele ira ao matar o ultimo boss-- arenaroom={x=1205,y=934, z=7, stackpos =253} - posição do teleport q ira para a primeira arena-- --posicao que criara os trofeus-- globet1 = {x=1215, y=869, z=7, stackpos = 1} -- warlord globet2 = {x=1215, y=876, z=7, stackpos = 1} --scrapper globet3 = {x=1215, y=883, z=7, stackpos = 1} --greenhorn --Bosses of Warlord Arena-- bossw1 = "webster" bossw2 = "darakan the executioner" bossw3 = "norgle glacierbeard" bossw4 = "the pit lord" bossw5 = "svoren the mad" bossw6 = "the masked marauder" bossw7 = "gnorre chyllson" bossw8 = "fallen mooh'tah master ghar" bossw9 = "deathbringer" bossw10 = "the obliverator" --Bosses of Scrapper Arena-- bosss1 = "avalanche" bosss2 = "kreebosh the exile" bosss3 = "The Dark Dancer" bosss4 = "the hag" bosss5 = "slim" bosss6 = "Grimgor Guteater" bosss7 = "drasilla" bosss8 = "spirit of earth" bosss9 = "spirit of water" bosss10 = "spirit of fire" --Bosses of Greenhorn Arena-- bossg1 = "frostfur" bossg2 = "bloodpaw" bossg3 = "bovinus" bossg4 = "achad" bossg5 = "colerian the barbarian" bossg6 = "the hairy one" bossg7 = "axeitus headbanger" bossg8 = "rocky" bossg9 = "cursed gladiator" bossg10 = "Orcus the cruel" --------------------------------------------------------------------------------------------------------------------------------------------------- --Posicoes de chegada-- arenapos2={x=arenapos.x-12, y=arenapos.y, z=arenapos.z, stackpos = 1} arenapos3={x=arenapos.x-24, y=arenapos.y, z=arenapos.z, stackpos = 1} arenapos4={x=arenapos.x-36, y=arenapos.y, z=arenapos.z, stackpos = 1} arenapos5={x=arenapos.x-30, y=arenapos.y-12, z=arenapos.z, stackpos = 1} arenapos6={x=arenapos.x-18, y=arenapos.y-12, z=arenapos.z, stackpos = 1} arenapos7={x=arenapos.x-6, y=arenapos.y-12, z=arenapos.z, stackpos = 1} arenapos8={x=arenapos.x-12, y=arenapos.y-25, z=arenapos.z, stackpos = 1} arenapos9={x=arenapos.x-24, y=arenapos.y-25, z=arenapos.z, stackpos = 1} arenapos10={x=arenapos.x-18, y=arenapos.y-38, z=arenapos.z, stackpos = 1} --Posicoes de teleport-- arenache1={x=arenapos.x-5, y=arenapos.y, z=arenapos.z, stackpos = 253} arenache2={x=arenapos.x-17, y=arenapos.y, z=arenapos.z, stackpos = 253} arenache3={x=arenapos.x-29, y=arenapos.y, z=arenapos.z, stackpos = 253} arenache4={x=arenapos.x-41, y=arenapos.y, z=arenapos.z, stackpos = 253} arenache5={x=arenapos.x-35, y=arenapos.y-12, z=arenapos.z, stackpos = 253} arenache6={x=arenapos.x-23, y=arenapos.y-12, z=arenapos.z, stackpos = 253} arenache7={x=arenapos.x-11, y=arenapos.y-12, z=arenapos.z, stackpos = 253} arenache8={x=arenapos.x-17, y=arenapos.y-25, z=arenapos.z, stackpos = 253} arenache9={x=arenapos.x-29, y=arenapos.y-25, z=arenapos.z, stackpos = 253} arenache10={x=arenapos.x-23, y=arenapos.y-38, z=arenapos.z, stackpos = 253} --Posição de Sumonar monstros-- monsterpos1={x=arenapos.x+1, y=arenapos.y-3, z=arenapos.z, stackpos =1} monsterpos2={x=arenapos2.x+1, y=arenapos2.y-3, z=arenapos2.z, stackpos =1} monsterpos3={x=arenapos3.x+1, y=arenapos3.y-3, z=arenapos3.z, stackpos =1} monsterpos4={x=arenapos4.x+1, y=arenapos4.y-3, z=arenapos4.z, stackpos =1} monsterpos5={x=arenapos5.x+1, y=arenapos5.y-3, z=arenapos5.z, stackpos =1} monsterpos6={x=arenapos6.x+1, y=arenapos6.y-3, z=arenapos6.z, stackpos =1} monsterpos7={x=arenapos7.x+1, y=arenapos7.y-3, z=arenapos7.z, stackpos =1} monsterpos8={x=arenapos8.x+1, y=arenapos8.y-3, z=arenapos8.z, stackpos =1} monsterpos9={x=arenapos9.x+1, y=arenapos9.y-3, z=arenapos9.z, stackpos =1} monsterpos10={x=arenapos10.x+1, y=arenapos10.y-3, z=arenapos10.z, stackpos =1} --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- function doMakeEffect(pos,effect) pos1={x=pos.x+1, y=pos.y, z=pos.z} pos2={x=pos.x+1, y=pos.y+1, z=pos.z} pos3={x=pos.x+1, y=pos.y-1, z=pos.z} doSendMagicEffect(pos,effect) doSendMagicEffect(pos1,effect) doSendMagicEffect(pos2,effect) doSendMagicEffect(pos3,effect) end e em movements.xml add : <!-- Arena --> <movevent event="AddItem" tileitem="1" actionid="5000" script="arena.lua"/> <movevent event="AddItem" tileitem="1" actionid="5001" script="arena.lua"/> <movevent event="AddItem" tileitem="1" actionid="5002" script="arena.lua"/> <movevent event="AddItem" tileitem="1" actionid="5003" script="arena.lua"/> <movevent event="AddItem" tileitem="1" actionid="5004" script="arena.lua"/> <movevent event="AddItem" tileitem="1" actionid="5005" script="arena.lua"/> <movevent event="AddItem" tileitem="1" actionid="5006" script="arena.lua"/> <movevent event="AddItem" tileitem="1" actionid="5007" script="arena.lua"/> <movevent event="AddItem" tileitem="1" actionid="5008" script="arena.lua"/> <movevent event="AddItem" tileitem="1" actionid="5009" script="arena.lua"/> <movevent event="StepIn" actionid="5010" script="arena.lua"/> <movevent event="StepIn" actionid="5011" script="arena.lua"/> <movevent event="StepIn" actionid="5012" script="arena.lua"/> <movevent event="StepIn" actionid="5100" script="arena.lua"/> <movevent event="StepIn" actionid="5101" script="arena.lua"/> <movevent event="StepIn" actionid="5102" script="arena.lua"/> <movevent event="StepIn" actionid="5103" script="arena.lua"/> <movevent event="StepIn" actionid="5104" script="arena.lua"/> <movevent event="StepIn" actionid="5105" script="arena.lua"/> <movevent event="StepIn" actionid="5106" script="arena.lua"/> <movevent event="StepIn" actionid="5107" script="arena.lua"/> <movevent event="StepIn" actionid="5108" script="arena.lua"/> <movevent event="StepIn" actionid="5109" script="arena.lua"/> <movevent event="StepIn" actionid="5110" script="arena.lua"/> Agora em actions/scripts adicione o reward.lua e coloque : --Function by Ta4e 07/11/2008-- --90% Arena quest in tibia rl-- --Version 4.0-- function onUse(cid, item, frompos, item2, topos) --Storages values when you win a reward-- warlord = 5012 scrapper = 5011 greenhorn = 5010 --Caution when modify-- -------------------------------------------------------------------------------------------------- --ARENA warlord-- if item.uid == 5300 then queststatus = getPlayerStorageValue(cid,warlord) if queststatus == -1 then if getPlayerFreeCap(cid) >= 39.00 then doPlayerSendTextMessage(cid,24,"You have found a blessed sceptre.") doPlayerAddItem(cid,7429,1) setPlayerStorageValue(cid,warlord,1) else doPlayerSendTextMessage(cid,24,"You have found a blessed sceptre. Weighing 39.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 5301 then queststatus = getPlayerStorageValue(cid,warlord) if queststatus == -1 then if getPlayerFreeCap(cid) >= 92.00 then doPlayerSendTextMessage(cid,24,"You have found a Royal Axe.") doPlayerAddItem(cid,7434,1) setPlayerStorageValue(cid,warlord,1) else doPlayerSendTextMessage(cid,24,"You have found a Royal Axe. Weighing 92.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 5302 then queststatus = getPlayerStorageValue(cid,warlord) if queststatus == -1 then if getPlayerFreeCap(cid) >= 50.00 then doPlayerSendTextMessage(cid,24,"You have found a justice seeker.") doPlayerAddItem(cid,7390,1) setPlayerStorageValue(cid,warlord,1) else doPlayerSendTextMessage(cid,24,"You have found a justice seeker. Weighing 50.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 5303 then queststatus = getPlayerStorageValue(cid,warlord) if queststatus == -1 then if getPlayerFreeCap(cid) >= 20.00 then doPlayerSendTextMessage(cid,24,"You have found a present.") container = doPlayerAddItem(cid,1990,1) doAddContainerItem(container, 6558, 1) --panda doAddContainerItem(container, 6574, 1) --chocolate doAddContainerItem(container, 6569,10) --candy doAddContainerItem(container, 7372, 1) --ice cream setPlayerStorageValue(cid,warlord,1) else doPlayerSendTextMessage(cid,24,"You have found a present. Weighing 20.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 5304 then queststatus = getPlayerStorageValue(cid,warlord) if queststatus == -1 then if getPlayerFreeCap(cid) >= 110.00 then doPlayerSendTextMessage(cid,24,"You have found a backpack.") container = doPlayerAddItem(cid,7342,1) doAddContainerItem(container, 2268, 50) doAddContainerItem(container, 2273, 50) doAddContainerItem(container, 7440, 1) doAddContainerItem(container, 7439, 1) doAddContainerItem(container, 6529, 100) setPlayerStorageValue(cid,warlord,1) else doPlayerSendTextMessage(cid,24,"You have found a backpack. Weighing 110.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end --ARENA scrapper-- elseif item.uid == 5305 then queststatus = getPlayerStorageValue(cid,scrapper) if queststatus == -1 then if getPlayerFreeCap(cid) >= 78.00 then doPlayerSendTextMessage(cid,24,"You have found a Cranial Basher.") doPlayerAddItem(cid,4715,1) setPlayerStorageValue(cid,scrapper,1) else doPlayerSendTextMessage(cid,24,"You have found a Cranial Basher. Weighing 78.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 5306 then queststatus = getPlayerStorageValue(cid,scrapper) if queststatus == -1 then if getPlayerFreeCap(cid) >= 61.00 then doPlayerSendTextMessage(cid,24,"You have found a heroic axe.") doPlayerAddItem(cid,7751,1) setPlayerStorageValue(cid,scrapper,1) else doPlayerSendTextMessage(cid,24,"You have found a heroic axe. Weighing 61.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 5307 then queststatus = getPlayerStorageValue(cid,scrapper) if queststatus == -1 then if getPlayerFreeCap(cid) >= 35.00 then doPlayerSendTextMessage(cid,24,"You have found a mystic blade.") doPlayerAddItem(cid,7765,1) setPlayerStorageValue(cid,scrapper,1) else doPlayerSendTextMessage(cid,24,"You have found a mystic blade. Weighing 35.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 5308 then queststatus = getPlayerStorageValue(cid,scrapper) if queststatus == -1 then if getPlayerFreeCap(cid) >= 15.00 then doPlayerSendTextMessage(cid,24,"You have found a present.") container = doPlayerAddItem(cid,1990,1) doAddContainerItem(container, 7184, 1) doAddContainerItem(container, 6574, 1) --chocolate doAddContainerItem(container, 6569,10) --candy doAddContainerItem(container, 7372, 1) --ice cream setPlayerStorageValue(cid,scrapper,1) else doPlayerSendTextMessage(cid,24,"You have found a present. Weighing 15.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 5309 then queststatus = getPlayerStorageValue(cid,scrapper) if queststatus == -1 then if getPlayerFreeCap(cid) >= 158.00 then doPlayerSendTextMessage(cid,24,"You have found a backpack.") container = doPlayerAddItem(cid,7342,1) doAddContainerItem(container, 2304, 50) doAddContainerItem(container, 2311, 50) doAddContainerItem(container, 7365, 100) doAddContainerItem(container, 2457, 100) setPlayerStorageValue(cid,scrapper,1) else doPlayerSendTextMessage(cid,24,"You have found a backpack. Weighing 158.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end --ARENA greenhorn-- elseif item.uid == 5310 then queststatus = getPlayerStorageValue(cid,greenhorn) if queststatus == -1 then if getPlayerFreeCap(cid) >= 158.00 then doPlayerSendTextMessage(cid,24,"You have found a backpack.") container = doPlayerAddItem(cid,7342,1) doAddContainerItem(container, 7364, 100) doAddContainerItem(container, 7365, 100) setPlayerStorageValue(cid,greenhorn,1) else doPlayerSendTextMessage(cid,24,"You have found a backpack. Weighing 158.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 5311 then queststatus = getPlayerStorageValue(cid,greenhorn) if queststatus == -1 then if getPlayerFreeCap(cid) >= 54.00 then doPlayerSendTextMessage(cid,24,"You have found a orcish maul.") doPlayerAddItem(cid,7392,1) setPlayerStorageValue(cid,greenhorn,1) else doPlayerSendTextMessage(cid,24,"You have found a orcish maul. Weighing 54.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 5312 then queststatus = getPlayerStorageValue(cid,greenhorn) if queststatus == -1 then if getPlayerFreeCap(cid) >= 59.00 then doPlayerSendTextMessage(cid,24,"You have found a Blacksteel Sword.") doPlayerAddItem(cid,7406,1) setPlayerStorageValue(cid,greenhorn,1) else doPlayerSendTextMessage(cid,24,"You have found a Blacksteel Sword. Weighing 59.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 5313 then queststatus = getPlayerStorageValue(cid,greenhorn) if queststatus == -1 then if getPlayerFreeCap(cid) >= 73.80 then doPlayerSendTextMessage(cid,24,"You have found a HeadChopper.") doPlayerAddItem(cid,7380,1) setPlayerStorageValue(cid,greenhorn,1) else doPlayerSendTextMessage(cid,24,"You have found a HeadChopper. Weighing 73.80 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 5314 then queststatus = getPlayerStorageValue(cid,greenhorn) if queststatus == -1 then if getPlayerFreeCap(cid) >= 18.00 then doPlayerSendTextMessage(cid,24,"You have found a present.") container = doPlayerAddItem(cid,1990,1) doAddContainerItem(container, 2114, 1) doAddContainerItem(container, 6570, 1) doAddContainerItem(container, 6574, 1) doAddContainerItem(container, 2668,10) doAddContainerItem(container, 7372, 1) setPlayerStorageValue(cid,greenhorn,1) else doPlayerSendTextMessage(cid,24,"You have found a present. Weighing 18.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end end return 1 end e crie também o arena door.lua e adicione : --Function by Ta4e 28/09/2008-- --90% Arena quest in tibia rl-- --Version 4.0-- function onUse(cid, item, fromPosition, itemEx, toPosition) --Storages of Arena NPC-- greenhorn = 5000 scrapper = 5001 warlord = 5002 starting={x=1132, y=882, z=7, stackpos=253} ending={x=1176, y=929, z=7, stackpos=253} trash= {x=1169, y=725, z=13} --------------------------------------------------------------------------------------------------------------------- greenhornstatus = getPlayerStorageValue(cid,greenhorn) scrapperstatus = getPlayerStorageValue(cid,scrapper) warlordstatus = getPlayerStorageValue(cid,warlord) checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos} if item.itemid == 5132 and item.actionid == 60000 then if warlordstatus == 1 or scrapperstatus == 1 or greenhornstatus == 1 then players=0 totalmonsters=0 monster = {} repeat creature= getThingfromPos(checking) if creature.itemid > 0 then if getPlayerAccess(creature.uid) == 0 then players=players+1 end if getPlayerAccess(creature.uid) ~= 0 and getPlayerAccess(creature.uid) ~= 3 then totalmonsters=totalmonsters+1 monster[totalmonsters]=creature.uid end end checking.x=checking.x+1 if checking.x>ending.x then checking.x=starting.x checking.y=checking.y+1 end until checking.y>ending.y if players==0 then current=0 repeat current=current+1 doTeleportThing(monster[current],trash) until current>=totalmonsters doTransformItem(item.uid, 5133) doTeleportThing(cid, toPosition, TRUE) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You need permission of Halvar to enter in Arena.") end end end Esse starting e a posicao de cima q abrange todos os tile da arena ou seja o mais noroeste possivel Ja o ending eh o mais sudeste possivel com a msm caracteristicas Para ele não dar erro vai em others/door.lua e modifique a parte [font=Courier New]if isInArray(questDoors, item.itemid) == TRUE then[/font] [font=Courier New] if getPlayerStorageValue(cid, item.actionid) ~= -1 then[/font] por [font=Courier New]if isInArray(questDoors, item.itemid) == TRUE and itemEx.actionid < 59999 then[/font] [font=Courier New] if getPlayerStorageValue(cid, item.actionid) >= 1 then[/font] e agora em actions.xml adicione : <action uniqueid="5300" script="Reward.lua" /> <action uniqueid="5301" script="Reward.lua" /> <action uniqueid="5302" script="Reward.lua" /> <action uniqueid="5303" script="Reward.lua" /> <action uniqueid="5304" script="Reward.lua" /> <action uniqueid="5305" script="Reward.lua" /> <action uniqueid="5306" script="Reward.lua" /> <action uniqueid="5307" script="Reward.lua" /> <action uniqueid="5308" script="Reward.lua" /> <action uniqueid="5309" script="Reward.lua" /> <action uniqueid="5310" script="Reward.lua" /> <action uniqueid="5311" script="Reward.lua" /> <action uniqueid="5312" script="Reward.lua" /> <action uniqueid="5313" script="Reward.lua" /> <action uniqueid="5314" script="Reward.lua" /> <action actionid="60000" script="arena door.lua"/> NPCS Esse npc é o novo adaptado para TFS 0.3.0 alpha 3 em npc\scripts adiciona arena.lua com isso : 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, 'fight') then selfSay('So you agree to the rules and want to participate in the challenge? Which difficulty do you choose, {Greenhorn}, {Scrapper} or {Warlord}?', cid) talkState[talkUser] = 2 elseif msgcontains(msg, 'rules') then selfSay('What do you want to know? Something about the three different {DIFICULTIES}, the {GENERAL} rules or the {PRICES}? Maybe you also want to know what happens when you die?', cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if msgcontains(msg, 'dificulties') then selfSay('We have three difficulty. The easiest are Greenhorn, the medium are scrapper and the hardest are warlord.', cid) talkState[talkUser] = 0 elseif msgcontains(msg, 'general') then selfSay('Remember that if you die, it is YOUR problem and you won\'t be able to get back to your corpse and your backpack.If you enter in arena or you win or you go to temple.', cid) talkState[talkUser] = 0 elseif msgcontains(msg, 'prices') then selfSay('A greenhorn cost 1000 gold, scrapper cost 5000 golds and a great warlord cost 10000 golds.', cid) talkState[talkUser] = 0 end elseif talkState[talkUser] == 2 then if msgcontains(msg, 'greenhorn') then selfSay('The fee is 1000 gold for one try. Remember that if you die, it is YOUR problem and you won\'t be able to get back to your corpse andyour backpack. Do you really want to participate in the arena in the easiest difficulty?', cid) talkState[talkUser] = 3 elseif msgcontains(msg, 'scrapper') then selfSay('The fee is 5000 gold for one try. Remember that if you die, it is YOUR problem and you won\'t be able to get back to your corpse and your backpack. Do you really want to participate in the arena in the medium difficulty?', cid) talkState[talkUser] = 4 elseif msgcontains(msg, 'warlord') then selfSay('The fee is 10000 gold for one try. Remember that if you die, it is YOUR problem and you won\'t be able to get back to your corpse and your backpack. Do you really want to participate in the arena in the hardest difficulty?', cid) talkState[talkUser] = 5 end elseif talkState[talkUser] == 3 then if msgcontains(msg, 'yes') then if(doPlayerRemoveMoney(cid, 1000) == TRUE) then setPlayerStorageValue(cid,5000,1) selfSay('As you wish! You can pass the door now and enter the teleporter to the pits.', cid) else selfSay('Then not. Get away and don\'t waste my time!', cid) end end elseif talkState[talkUser] == 4 then if msgcontains(msg, 'yes') then if(doPlayerRemoveMoney(cid, 5000) == TRUE) then setPlayerStorageValue(cid,5001,1) selfSay('As you wish! You can pass the door now and enter the teleporter to the pits.', cid) else selfSay('Then not. Get away and don\'t waste my time!', cid) end end elseif talkState[talkUser] == 5 then if msgcontains(msg, 'yes') then if(doPlayerRemoveMoney(cid, 10000) == TRUE) then setPlayerStorageValue(cid,5002,1) selfSay('As you wish! You can pass the door now and enter the teleporter to the pits.', cid) else selfSay('Then not. Get away and don\'t waste my time!', cid) end end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Ok then.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) e em npcs adiciona o halvar.xml <npc name="Halvar" script="data/npc/scripts/arena.lua" floorchange="0" access="5"> <health now="150" max="150"/> <look type="143" head="2" body="112" legs="78" feet="116" addons="2" corpse="2212"/> <parameters> <parameter key="message_greet" value="Hello competitor! Do you want to {fight} in the arena or shall I explain the {rules} first "/> </parameters></npc> Bem é isso qualquer bug reporte Estou preparando a versão 5.0 Que será muito mais simples Porém irá demorar um pouco para ficar pronta E dificlmente poderia dar suporte nesse topico
×