FenixBorges 13 Postado Abril 16, 2013 Share Postado Abril 16, 2013 (editado) Bom gente, através do "Search" ali em cima eu não consegui encontrar um Tutorial "claro" de como criar uma Arena.. Bom eu já tenho o mapa e talz, agora só falta os Scripts que basicamente são: *alavancas que léva o player para a arena *ground/tile da arena, faz com que o player ñ perca items, level, skills. Só isso.. Valendo REP+ No aguardo, muito obrigado pela atenção. Editado Abril 16, 2013 por FenixBorges Link para o comentário https://xtibia.com/forum/topic/212302-sistema-arena-pvp-para-tfs-04/ Compartilhar em outros sites More sharing options...
0 Roksas 846 Postado Abril 16, 2013 Share Postado Abril 16, 2013 (editado) Ok amigão, vamos lá, primeiramente iremos instalar uma função na sua lib, vá em data/lib, abra o 050-function.lua ou function.lua, na última linha de todas, pule 2 e cole: function getPlayersInArea(area) local players = {} for x = area.fromx,area.tox do for y = area.fromy,area.toy do for z = area.fromz,area.toz do local m = getTopCreature({x=x, y=y, z=z}).uid if m ~= 0 and isPlayer(m) then table.insert(players, m) end end end end return players end Muito bem, agora iremos criar as alavancas, vá em data/actions/scripts, crie um arquivo chamado leverpvp.lua e adicione dentro: function onUse(cid, item, frompos, item2, topos) local cfg = { firstSquare = {x = 500, y = 400, z = 7}, secondSquare = {x = 400, y = 500, z =7}, arenaPos1 = {x = 450, y = 540, z = 7}, arenaPos2 = {x = 450, y = 540, z = 7}, } local area = {fromx = 1008, fromy = 1018, fromz = 7, tox = 1025, toy = 1033, toz = 7} -- Positions local check = getPlayersInArea(area) if #check > 1 then doPlayerSendTextMessage(cid, 27, "Wait for the current battle ends.") return true end if getThingfromPos(cfg.firstSquare).itemid > 0 and getThingfromPos(cfg.secondSquare).itemid > 0 then doTeleportThing(getThingfromPos(cfg.firstSquare).uid, cfg.arenaPos1) doTeleportThing(getThingfromPos(cfg.secondSquare).uid, cfg.arenaPos2) doSendAnimatedText(cfg.arenaPos1, "START!", math.random (1,255)) doSendAnimatedText(cfg.arenaPos2, "START!", math.random (1,255)) end return true end Configurando: local cfg = { firstSquare = {x = 500, y = 400, z = 7}, secondSquare = {x = 400, y = 500, z =7}, arenaPos1 = {x = 450, y = 540, z = 7}, arenaPos2 = {x = 450, y = 540, z = 7}, } firstSquare, você coloca as coordenadas do SQM da alavanca do player1, e secondSquare é a mesma coisa, só que do player2. arenaPos1 você coloca a posição do SQM de dentro da arena do player1, e arenaPos2 a mesma coisa só que para o player2. Essa parte: local area = {fromx = 1008, fromy = 1018, fromz = 7, tox = 1025, toy = 1033, toz = 7} -- Positions local check = getPlayersInArea(area) fromx , fromy e fromz são as coordenadas (X,Y,Z), coloque nesses 3 as coordenadas do canto esquerdo superior da arena, e tox, toy e toz coloca do canto inferior direito. Em actions.xml adicione essa tag: <action actionid="19229" event="script" value="leverpvp.lua"/> Agora adicione ACTION ID 19229 nas 2 alavancas, pelo RME MAP EDITOR ~~ Muito bem, agora vamos criar o código da arena, aonde ao morrer ali irão ser teleportados para o templo e não perderão vida/loot, correto? Vá em data/creaturescripts/scripts, crie um arquivo chamado arenadeath.lua e adicione dentro: [size=4]function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) [/size] local area = {fromx = 1008, fromy = 1018, fromz = 7, tox = 1025, toy = 1033, toz = 7} -- Positions if isInRange(getCreaturePosition(cid), area) then doCreatureSetDropLoot(cid, false) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doPlayerSendTextMessage(cid, 27, "You loose!") doCreatureAddHealth(cid, getCreatureMaxHealth(cid) + 65500, true) doTeleportThing(lastHitKiller, getTownTemplePosition(getPlayerTown(cid))) doPlayerSendTextMessage(lastHitKiller, 27, "Congratulations, you won!") end return true end Em creaturescripts.xml adicione essa tag: <event type="preparedeath" name="Arenadeath" event="script" value="arenadeath.lua"/> Reinicie o servidor e teste, poste resultados, bjs Editado Abril 17, 2013 por Roksas Link para o comentário https://xtibia.com/forum/topic/212302-sistema-arena-pvp-para-tfs-04/#findComment-1505196 Compartilhar em outros sites More sharing options...
0 FenixBorges 13 Postado Abril 17, 2013 Autor Share Postado Abril 17, 2013 (editado) Testanto... @Edit Após clicar na alavanca, o player1 no caso o "Elderzinho", não foi teleportado para aquele tile ali que aparece a mensagem animada. =/ Obs: Não deu nenhum erro no Distro, estranho isso. Cara eu acho que isso ai foi um Ctrl+C e Ctrl+V de algum tutorial por ai. Sem falar que oque eu pedi foi exatamente isso: *Alavanca com mesma função da alavanca da Annihi, que léva "x" players para "x" coordenada. *Tiles que faz com que o player não perca level, skills, items. Sem isso de levar para o templo/animações. Mesmo assim obg por tentar ajudar. Editado Abril 17, 2013 por FenixBorges Link para o comentário https://xtibia.com/forum/topic/212302-sistema-arena-pvp-para-tfs-04/#findComment-1505406 Compartilhar em outros sites More sharing options...
0 Roksas 846 Postado Abril 17, 2013 Share Postado Abril 17, 2013 (editado) Ctrl+c ctrl+v ? Fiz na mão rapaz, apenas errei uma coisinha, troque a alavanca por: function onUse(cid, item, frompos, item2, topos) local cfg = { firstSquare = {x = 500, y = 400, z = 7}, secondSquare = {x = 400, y = 500, z =7}, arenaPos1 = {x = 450, y = 540, z = 7}, arenaPos2 = {x = 450, y = 540, z = 7}, } local area = {fromx = 1008, fromy = 1018, fromz = 7, tox = 1025, toy = 1033, toz = 7} -- Positions local check = getPlayersInArea(area) if #check > 1 then doPlayerSendTextMessage(cid, 27, "Wait for the current battle ends.") return true end if getThingfromPos(cfg.firstSquare).itemid > 0 and getThingfromPos(cfg.secondSquare).itemid > 0 then doTeleportThing(cid, cfg.arenaPos1) doTeleportThing(cid, cfg.arenaPos2) doSendAnimatedText(cfg.arenaPos1, "START!", math.random (1,255)) doSendAnimatedText(cfg.arenaPos2, "START!", math.random (1,255)) end return true end Só configura ele dnovo Editado Abril 17, 2013 por Roksas Link para o comentário https://xtibia.com/forum/topic/212302-sistema-arena-pvp-para-tfs-04/#findComment-1505563 Compartilhar em outros sites More sharing options...
0 AdilsonHacker 98 Postado Abril 17, 2013 Share Postado Abril 17, 2013 Para fazer que o player não percam nada no tile basta ir no rme é colocar a area "PVP Zone Tool" em cima do tile (LEMBRANDO PLAYER AO MORRE ENCIMA DO TILE NÃO VAI PERDE NADA É VAI SER TELEPORTADO AO TEMPLO, MAIS SE VOCÊ QUISER QUE O PLAYER CONTINUE LÁ E FEITO EM SCRIPT MSM) Flw Link para o comentário https://xtibia.com/forum/topic/212302-sistema-arena-pvp-para-tfs-04/#findComment-1505569 Compartilhar em outros sites More sharing options...
0 FenixBorges 13 Postado Abril 17, 2013 Autor Share Postado Abril 17, 2013 Agora ao clicar em uma das alavancas, o player é levado para a mesma coordenada. :c Link para o comentário https://xtibia.com/forum/topic/212302-sistema-arena-pvp-para-tfs-04/#findComment-1505578 Compartilhar em outros sites More sharing options...
0 Roksas 846 Postado Abril 17, 2013 Share Postado Abril 17, 2013 (editado) Troca por esse e configura de novo: [size=4]function onUse(cid, item, frompos, item2, topos)[/size] local cfg = { firstSquare = {x = 500, y = 400, z = 7}, secondSquare = {x = 400, y = 500, z =7}, arenaPos1 = {x = 450, y = 540, z = 7}, arenaPos2 = {x = 450, y = 540, z = 7}, } local area = {fromx = 1008, fromy = 1018, fromz = 7, tox = 1025, toy = 1033, toz = 7} -- Positions local check = getPlayersInArea(area) if #check > 1 then doPlayerSendTextMessage(cid, 27, "Wait for the current battle ends.") return true end if isPlayer(getThingFromPos(cfg.firstSquare)) then doTeleportThing(cid, cfg.arenaPos1) doSendAnimatedText(cfg.arenaPos1, "START!", math.random (1,255)) end if isPlayer(getThingFromPos(cfg.secondSquare)) then doTeleportThing(cid, cfg.arenaPos2) doSendAnimatedText(cfg.arenaPos2, "START!", math.random (1,255)) end return true end [size=4]end[/size] E a tag do actions.xml troca por: <action actionid="13589;13590" event="script" value="leverpvp.lua"/> Editado Abril 22, 2013 por Roksas Link para o comentário https://xtibia.com/forum/topic/212302-sistema-arena-pvp-para-tfs-04/#findComment-1505580 Compartilhar em outros sites More sharing options...
0 FenixBorges 13 Postado Abril 17, 2013 Autor Share Postado Abril 17, 2013 Perfeito cara, funcionou. Só uma dúvida.. E o cara que vencer? é mandado pro templo ou continua na arena? Link para o comentário https://xtibia.com/forum/topic/212302-sistema-arena-pvp-para-tfs-04/#findComment-1505597 Compartilhar em outros sites More sharing options...
0 Roksas 846 Postado Abril 17, 2013 Share Postado Abril 17, 2013 Olha no meu primeiro post no final dele ta la no areandeath.lua, usa ele Link para o comentário https://xtibia.com/forum/topic/212302-sistema-arena-pvp-para-tfs-04/#findComment-1505599 Compartilhar em outros sites More sharing options...
0 FenixBorges 13 Postado Abril 17, 2013 Autor Share Postado Abril 17, 2013 (editado) Sim, já ta instalado também. Mais uma vez, brigadão por me ajudar cara. Agora só falta o VIP pro meu Aurea-OT ficar 100% E quem sabe um dia eu pósso posta-lo para Download. REP+ forte abraço. PROBLEMA RESOLVIDO! Editado Abril 17, 2013 por FenixBorges Link para o comentário https://xtibia.com/forum/topic/212302-sistema-arena-pvp-para-tfs-04/#findComment-1505611 Compartilhar em outros sites More sharing options...
0 Roksas 846 Postado Abril 17, 2013 Share Postado Abril 17, 2013 Tópico movido para a seção de dúvidas e pedidos resolvidos. Link para o comentário https://xtibia.com/forum/topic/212302-sistema-arena-pvp-para-tfs-04/#findComment-1505629 Compartilhar em outros sites More sharing options...
Pergunta
FenixBorges 13
Bom gente, através do "Search" ali em cima
eu não consegui encontrar um Tutorial "claro" de como criar
uma Arena..
Bom eu já tenho o mapa e talz, agora só falta os Scripts
que basicamente são:
*alavancas que léva o player para a arena
*ground/tile da arena, faz com que o player ñ perca items, level, skills.
Só isso..
Valendo REP+
No aguardo, muito obrigado pela atenção.
Editado por FenixBorgesLink para o comentário
https://xtibia.com/forum/topic/212302-sistema-arena-pvp-para-tfs-04/Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados