Ir para conteúdo

Posts Recomendados

Iaaae galera suave braaits ? Hoje venho trazer para vocês um sistema de Torneio, mas, como funciona?

 

Vários players entram numa sala, falando com o NPC (tem horário configurável para poder falar), e para poder participar deve pagar uma quantia, ao pagar você é teleportado á Arena aonde começa a batalha.

 

O último que sobreviver vence :)

Vamos á instalação?

 

~~

 

Vá em data/npc, copie algum arquivo .XML da pasta e cole, renomeie para Tournament,

cole isso dentro:

 

 

  Mostrar conteúdo oculto

 

 

Ok, agora vá em data/npc/scripts, copie algum arquivo dessa pasta e cole, renomeie para tournament, cole isso:

 

 

  Mostrar conteúdo oculto

  • Configurando:

local cfg = {
price = 100, -- Money to sign in tournament
startPos = {x = 1016, y = 1025, z = 7}, -- Posição central da sala de torneio
hour = "18:00:00", -- Hour to start
maxhour = "18:15:00" -- Max to start
}

 

Price é o preço que paga para entrar no Torneio, startPos é as coordenadas do meio da sala de Torneio, e Hour é a hora do dia que começa, o Torneio no caso é diário, mude o horário de "18:00:00" para o horário desejado, entre aspas e no formato 00:00:00! Já o maxhour determina até quando o NPC vende inscrições, no caso coloquei por 15 minutos.

 

 

Agora vamos configurar a alavanca e o baú do vencedor! Vá em data/lib, abra o arquivo 050-function.lua ou function.lua, vá até a última linha de todas, pule 2 linhas e cole isso:

 

 

  Mostrar conteúdo oculto

 

 

Essa é a lib que usaremos no nosso Torneio, muito bem, agora vá em data/actions/scripts, copie algum arquivo desta pasta e cole, renomeie para tournament e cole isso dentro:

 

 

  Mostrar conteúdo oculto

  • Configurando:

local cfg = {
salaAward = {x = 1016, y = 1014 , z = 7}, -- Coordenates of the award place
}

 

salaAward, coloque as coordenadas da sala de prêmio do vencedor do Torneio!

 

local area = {fromx = 1008, fromy = 1018, fromz = 7, tox = 1025, toy = 1033, toz = 7}

 

fromx - fromy - fromz, coloque as coordenadas (X,Y e Z) do canto superior esquerdo da sala de Torneio, e tox - toy - toz, coloque as coordenadas (X, Y e Z) do canto inferior direito da sala de Torneio.

 

local maxhour = "18:15:00", coloque igual ao script do NPC!

 

Na mesma pasta crie outro arquivo, mas agora com o nome de tournamentchest e adicione isso dentro:

 

  Mostrar conteúdo oculto
  • ​Configurando:

local cfg = {
awardId = 2148, -- Item ID of winner prize
awardAmount = 100, -- Amount of item ID
}

 

awardId coloque o ID do item que vai receber ao ganhar o Torneio, e awardAmount a quantidade!

 

Em actions.xml adicione essas tags:

 

<action actionid="13549" event="script" value="tournament.lua"/>
<action uniqueid="5531" event="script" value="tournamentchest.lua"/>

 

Muito bem, dirija-se á data/creaturescripts/scripts, copie algum arquivo da pasta e cole, renomeie para tournamentdeath, e adicione isso dentro:

 

  Mostrar conteúdo oculto
  • Configurando:

local cfg = {
leftPos = {x = 1008, y = 1018, z = 7},
rightPos = {x = 1025, y = 1033, z = 7},
}

 

leftPos coloque as coordenadas do canto superior esquerdo da Sala de Torneio, e rightPos coloque o canto inferior direito da sala :)

 

Agora em creaturescripts.xml adicione essa tag:

 

<event type="preparedeath" name="TournamentDeath" event="script" value="tournamentdeath.lua"/>

 

Prontinho galera, agora apenas adicione ACTION ID 13549 na alavanca e UNIQUE ID 5531 no baú do campeão :D

 

f0wvoi.jpg

 

 

Download Mapa Tournament (Tibia) - 4shared

Editado por Roksas
Link para o comentário
https://xtibia.com/forum/topic/212213-torneio-pvp/
Compartilhar em outros sites

Obrigado galera, espero que façam bom uso, não foi muito difícil de fazer, apenas fiquei uma meia hora pensando numa lógica bem legalzinha, aqui funcionou certinho, espero que tenham boas ideias para usá-lo!

 

Próximas versões poderei ver se faço para Poketibia, etc :)

Thanks!

Link para o comentário
https://xtibia.com/forum/topic/212213-torneio-pvp/#findComment-1504487
Compartilhar em outros sites

esse script é bem parecido com o do dalton, da vapus.

 

é bem legal, porém como já existe ai você poderia implementar algumas coisas a mais como por exemplo, a cada pessoa que se inscrever no torneio, no npc tem uma opção que você consiga ver todos os inscritos .. seria interessante , já fiz parecido.

Link para o comentário
https://xtibia.com/forum/topic/212213-torneio-pvp/#findComment-1504489
Compartilhar em outros sites

  Em 15/04/2013 em 18:47, Roksas disse:

Não sabia que já existia, tem algo de diferente o outro deste?

 

local config = {
temporaryArea = {
	{x = 997, y = 1013, z = 7}, -- northwest corner of area where players must stand in order to join the event
	{x = 1001, y = 1015, z = 7} -- south east corner
},
arenaArea = {
	{x = 1003, y = 1009, z = 7}, -- nw corner of arena
	{x = 1015, y = 1019, z = 7}, -- se corner of arena
	{x = 1009, y = 1014, z = 7} -- center of arena
},
minPlayers = 2, -- min players required to start the battle
prize = {2160, 5467} -- rewards
}

function onThink(interval, lastExecution, thinkInterval)
local players, arenaPlayers = {}, {}
for x = (config.temporaryArea)[1].x, (config.temporaryArea)[2].x do
	for y = (config.temporaryArea)[1].y, (config.temporaryArea)[2].y do
		for z = (config.temporaryArea)[1].z, (config.temporaryArea)[2].z do
			if(isPlayer(getTopCreature({x = x, y = y, z = z}).uid)) then
				table.insert(players, getTopCreature({x = x, y = y, z = z}).uid)
			end
		end
	end
end
for x = (config.arenaArea)[1].x, (config.arenaArea)[2].x do
	for y = (config.arenaArea)[1].y, (config.arenaArea)[2].y do
		for z = (config.arenaArea)[1].z, (config.arenaArea)[2].z do
			if(isPlayer(getTopCreature({x = x, y = y, z = z}).uid)) then
				table.insert(arenaPlayers, getTopCreature({x = x, y = y, z = z}).uid)
			end
		end
	end
end
if(table.maxn(arenaPlayers) == 1) then
	doTeleportThing(arenaPlayers[1], getPlayerMasterPos(arenaPlayers[1]))
	doSendMagicEffect(getPlayerMasterPos(arenaPlayers[1]), CONST_ME_TELEPORT)
	doPlayerSendTextMessage(arenaPlayers[1], MESSAGE_STATUS_CONSOLE_BLUE, "You win a battle and recived your reward.")
	doPlayerAddItem(arenaPlayers[1], (config.prize)[math.random(1, table.maxn(config.prize))], 1)
elseif(table.maxn(arenaPlayers) < 1) then
	if(table.maxn(players) >= config.minPlayers) then
		for i = 1, config.minPlayers do
			doTeleportThing(players[i], (config.arenaArea)[3])
			doSendMagicEffect((config.arenaArea)[3], CONST_ME_TELEPORT)
			doPlayerSendTextMessage(players[i], MESSAGE_STATUS_WARNING, "The battle begins. Survive for glory!")
		end
	end
end
return true
end

 

Mais complexo, enfim .. tente adicionar os nomes dos participantes .. ou então faça assim por categoria para evitar que um level 300 lute com level 100 .. seria interessante :)

Link para o comentário
https://xtibia.com/forum/topic/212213-torneio-pvp/#findComment-1504494
Compartilhar em outros sites

desculpem por postar aqui Galera queria saber pq quando coloco area no logout em um canto o player n fica com battle exemplo:

ele n consegue logar mais n fica com battle queria saber como colocar para ficar com battle quero colocar um evento no meu ot mais

meu servidor tem um sistema !ir que so pode viajar sem battle ai se o tile ficar sem battle ele vai conseguir fujir do evento Vlw

 

Do rep + pra quem me ajudar!

Link para o comentário
https://xtibia.com/forum/topic/212213-torneio-pvp/#findComment-1504502
Compartilhar em outros sites

×
×
  • Criar Novo...