Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá Tibia Kingianus?! ou King Tibianus... enfim, venho novamente pedir a ajuda dos reis do script para um evento, e o evento desta vez ééééé: DEVIL SQUARE.

 

 

• Mas que diabos é esse evento Devil Square?

 

O Evento Devil Square acontece da seguinte forma, um teleport se abrirá no templo(com data e hora configurada), e os jogadores serão teleportados para o centro deste mapa:

bbrx.jpg

 

 

E então, depois de 5 minutos (ou o tempo que eu configurar) o teleport se fechará no templo e o evento se iniciará.

 

 

• Mas como se inicia?

 

Simples. Quando se iniciar, os monstros configurados para o 1º round nascerão no centro do mapa(circulado em vermelho), e, o 2º round iniciará, se e somente se, TODOS os monstros do 1º round forem mortos.

 

1º Round: Monstros fracos

2º Round : Monstros medianos

3º Round: Monstros Fortes

4º Round: Boss do evento

 

Então, quando o Boss do evento for morto, todos os players do mapa são teleportados pro templo, ou então um teleport é criado...isso é indiferente... O importante é o evento em si.

 

 

Bom, era isso...

 

Eu sei que isso dá um trabalhão no minimo chato até pra quem manja de script, mas não custa tentar.

 

 

Acho que não preciso dizer que vai ser REP+ por 1 semana né?

 

 

Atenciosamente,

Gabriel Dias.

 

 

 

Link para o post
Compartilhar em outros sites

olha se pode utilizar este sistema aqui,

e um sistema de arena de sobrevivencia, os monstros nascem em waves, no caso os seus rounds, e voce configura os monstros que quer que nasce.

e no final os que sobreviverem ganham o premio, também configurado.

vo postar aqui, não e meu o script.

 

 

Script:
na pasta onde fica o executavel do server, há uma pasta chamada Mods, entre nela e crie um arquivo chamado arena.xml e nele coloque isso:
[PS: Editado 01:39 - 14/07/2012 por correção de um erro ortográfico do forum que comeu um parenteses do script]

 

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Arena" version="1.0" author="DrakyLucas" contact="XTibia" enabled="yes">
<config name="arena_config"><![CDATA[
  config = {
   delay = 60, -- tempo de um level para o outro
   posicaoPlayer = {x = 37,y = 96,z = 7}, -- posição q o player vai cair dps de entra no TP
   posicaoArena = {{x = 35,y = 94,z = 7},{x = 42,y = 99,z = 7}},
   premio = {
   {2160,70},
   {2152,50},
   }, -- ID, Quantidade... só aceita de 1 a 100 por vez, e você pode adicionar quantos itens quiser.
   storage = 15444, -- não mecha..
   posicaoTp = {x = 37, y = 91, z = 7}, -- posicao que o teleporte vai aparecer
   acesso = 3, -- acesso  minimo para ser ignorado pelo evento, e o mesmo acesso para poder inicializa-lo
  }
  -- você pode adicionar quantos leveis desejar
  -- [NumeroDoLevel] = {{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade}},
  leveis = {
  [1] = {{"Dragon",5}},
  [2] = {{"Dragon",5},{"Dragon Lord",2}},
  [3] = {{"Dragon Lord",5}},
  [4] = {{"Demodras",2},{"Demon",1}},
  [5] = {{"Demon",5},{"Orshabaal",1},{"Ferumbras",1}},
  }
  
   function abrirTeleport(n)
	doItemSetAttribute(doCreateItem(1387, config.posicaoTp), "aid", 2941) -- cria o tp e deixa aid 2941
	doBroadcastMessage("O Evento arena vai começar! teleport foi aberto e faltam ".. n .. " pessoas para o evento iniciar!")
	doSetStorage(config.storage, n)
   end
  
   function fecharTPeAguardarEvento()
	doRemoveItem(getTileItemById(config.posicaoTp, 1387).uid,100)
	doBroadcastMessage("O evento ja concluio " .. #getPlayersInArena() .. " players e começará em " .. config.delay .. " segundos!")
	addEvent(evento,config.delay*1000,1)
   end
  
  
   function HaveCreatureArena(area, remove, clean) -- função do Vodkart
			for x = area[1].x - 1, area[2].x + 1 do
				for y = area[1].y - 1, area[2].y + 1 do
					local pos = {x=x, y=y, z=area[1].z}
					local m = getTopCreature(pos).uid
					if remove ~= false and m ~= 0 and isMonster(m) then doRemoveCreature(m) end
					if clean ~= false then doCleanTile(pos, false) end
				end
   end
   end
   function resetEvento()
	doSetStorage(config.storage, -1)
   end
  
   function criarMonstros(lv)
	local monstro = leveis[lv]
	local area = {config.posicaoArena[1],config.posicaoArena[2]}
	for i = 1,#monstro do
	 for k=1,monstro[i][2]do
		pos = {x=math.random(area[1].x,area[2].x), y=math.random(area[1].y,area[2].y), z=area[1].z}
	  monstrinho = doCreateMonster(monstro[i][1], pos)
	  registerCreatureEvent(monstrinho, "removerCorpse")
	 end
	end
   end
  
   function evento(i)
	if #getPlayersInArena() == 0 then
	 doBroadcastMessage("Ninguem sobreviveu a arena =/")
	 doBroadcastMessage("EVENTO TERMINADO!")
	 HaveCreatureArena({config.posicaoArena[1],config.posicaoArena[2]}, true, true) -- remove monstros, itens da arena
	 resetEvento()
	 return true
	end
  
	if i == (#leveis +1) then
	HaveCreatureArena({config.posicaoArena[1],config.posicaoArena[2]}, true, true)
	  doBroadcastMessage("Evento finalizado, " .. #getPlayersInArena() .. " sobreviveram ao evento!")
	 for _, pid in ipairs(getPlayersInArena()) do
	  doPlayerSendTextMessage(pid,22,"Parabens, você sobreviveu ao evento!")
	  addItens(pid)
	  doTeleportThing(pid,getTownTemplePosition(getPlayerTown(pid)))
	 end
	  resetEvento()
	  return true
	end
	 for _, pid  in ipairs(getPlayersInArena()) do
	  doPlayerSendTextMessage(pid,22,"GoGo Nivel " .. i .. " !!!")
	 end
	criarMonstros(i)
	addEvent(evento,config.delay*1000,i+1)
   end
   function addItens(pid)
	for i=1,#config.premio do
	 doPlayerAddItem(pid,config.premio[i][1],config.premio[i][2])
	end
	doPlayerSendTextMessage(pid,22,"Parabens, voce recebeu seus premios!")
   end
  
   function getPlayersInArena()
   local t = {}
	for _, pid in pairs(getPlayersOnline()) do
	 if getPlayerAccess(pid) < config.acesso then
	 if isInRange(getCreaturePosition(pid), config.posicaoArena[1], config.posicaoArena[2]) then
						table.insert(t, pid)
	 end
	 end
	end
   return t
   end
  
]]></config>
<talkaction words="/arena" event="buffer"><![CDATA[
  domodlib('arena_config')
  if getPlayerAccess(cid) < config.acesso then
   return doPlayerSendCancel(cid,"Voce nao tem acesso para esse comando")
  end
  if tonumber(param) ~= nil then -- se o parametro é numerico
   if tonumber(param) > 0 then
	doSetStorage(config.storage, param)
	abrirTeleport(param)
   end
  else
  doPlayerSendTextMessage(cid,19,"Digite /arena e um numero.. \n exemplo: \n/arena 5")
  end

]]></talkaction>

<movevent type="StepIn" actionid="2941" event="script"><![CDATA[
		domodlib('arena_config')
			 if getPlayerAccess(cid) > config.acesso then doTeleportThing(cid, config.posicaoPlayer) return false end -- GM nao conta
	doSetStorage(config.storage,getStorage(config.storage) - 1)
	doTeleportThing(cid, config.posicaoPlayer)
	registerCreatureEvent(cid, "naoAtacarPlayer")
	registerCreatureEvent(cid, "morrerNaArena")
	if getStorage(config.storage) <= 0 then
	fecharTPeAguardarEvento()
	end
	return true	  
]]></movevent>
<event type="login" name="VerSeTaNaArenaEExpulsa" event="script"><![CDATA[
domodlib('arena_config')
if isInRange(getCreaturePosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
end
return true  
]]></event>
<event type="combat" name="naoAtacarPlayer" event="script"><![CDATA[
				 domodlib('arena_config')
				 if isPlayer(cid) and isPlayer(target) then
					   if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) and isInRange(getPlayerPosition(target), config.posicaoArena[1], config.posicaoArena[2]) then
								doPlayerSendCancel(cid, "Nao ataque seus amigos.")
								return false
						end
				end
				return true
]]></event>
<event type="death" name="removerCorpse" event="script"><![CDATA[
				 domodlib('arena_config')
	 doCreatureSay(cid,"Ninguem terá meu loot! Buaahahahha",1)
	 pos = getCreaturePosition(cid)
	 addEvent(doCleanTile,1,pos, false)
				return true
]]></event>
<event type="statschange" name="morrerNaArena" event="script"><![CDATA[
				 domodlib('arena_config')
	 if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then
	 if type == STATSCHANGE_HEALTHLOSS then
	  if isPlayer(cid) then
								if value >= getCreatureHealth(cid) then
		 doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))
		 doPlayerSendTextMessage(pid,22,"Você morreu na arena =/.. veja pelo lado positivo, você nao perdeu nada!")
		 doCreatureAddHealth(cid,getCreatureMaxHealth(cid) - getCreatureHealth(cid))
		return false
		end
						end
	  end
				end
				return true
]]></event>
</mod>

config = {
delay = 10, -- tempo de um level para o outro
posicaoPlayer = {x = 37,y = 96,z = 7}, -- posição q o player vai cair dps de entra no TP
posicaoArena = {{x = 35,y = 94,z = 7},{x = 42,y = 99,z = 7}},
premio = {
{2160,70},
{2152,50},
}, -- ID, Quantidade... só aceita de 1 a 100 por vez, e você pode adicionar quantos itens quiser.
storage = 15444, -- não mecha..
posicaoTp = {x = 37, y = 91, z = 7}, -- posicao que o teleporte vai aparecer
acesso = 3, -- acesso minimo para ser ignorado pelo evento, e o mesmo acesso para poder inicializa-lo
}
-- você pode adicionar quantos leveis desejar
-- [NumeroDoLevel] = {{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade}},
leveis = {
[1] = {{"Dragon",5}},
[2] = {{"Dragon",5},{"Dragon Lord",2}},
[3] = {{"Dragon Lord",5}},
[4] = {{"Demodras",2},{"Demon",1}},
[5] = {{"Demon",5},{"Orshabaal",1},{"Ferumbras",1}},
}

a sim, para ativar o evento é so usar o comando, /arena numerodeplayers.

se não funciona é so da /reload mods, e tentar novamente.

espero ter ajudado.

 

 

Credits:

DrakyLucas

Editado por atakashi (veja o histórico de edições)

giphy.gif

   Pokemon PRO, Profissionais em diversão.

 

Servidor 24 Horas
Uptime: 100%

Link para o post
Compartilhar em outros sites

como faço pra sumonar um boss no final, e logo depois do boss morrer abrir um tp pra todos sairem? ou todos serem teleportados pro temple..tanto faz :x

Link para o post
Compartilhar em outros sites
  • 2 years later...

Sei que estou revivendo, mas é um sistema que só encontrei nesse tópico e em nenhum outro mais recente...

 

Gostaria que alguém por favor explicasse onde 'instalar' cada script, porque ficou bem confusa a explicação do camarada.

 

Agradeço desde já.

Angelina_Me_by_msklotz.png

 

Atenciosamente,

Felipe Lotz.

 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo