Ir para conteúdo

Monster War Arena System 1.0 - By SmiX


SmiX

Posts Recomendados

Olá pessoal, hoje venho postar o meu primeiro evento do ano ^^. Ele é para ots que gostam de comemorar datas especiais, como o ano novo. Vou explicar como ele funciona:

 

Como funciona tio SmiX?

O evento só começa se tiver "x" players registrados. Como eu vejo muitos scripts de pokémon legais por ai, pensei; "Por que não adpitar um deles para Tibia"?. O evento é chamado de "Monster War Arena". Ela sai invocando monstros em uma "arena" e os players serão teleportado para ela, para killar todos os mostros. Semelhante ao "Golden Arena" da PXG.

 

Vamos instala-lo?

Não >.<

 

 

Vá em (globalevents/scripts) e crie um arquivo chamado "event1.lua" e cole o seguinte código dentro:


function doSummonMonsterInEvent(cid)
    summonMonster = getGlobalStorageValue(29474) 
    summonMonsterInPos = math.random(arenaPositionInitial, arenaPositionEnd)
    for g = 1, #monstersPositions do
        monster = doSummonCreature(levels[summonMonster][g], monstersPositions[g])
        doSendMagicEffect(getThingPos(monster), 21)
        local sto = getGlobalStorageValue(29474) == -1 and 0 or getGlobalStorageValue(29474)
         setGlobalStorageValue(29474, sto+1) 
  for _, sid in ipairs(getPlayersOnline()) do
      if getPlayerStorageValue(sid, playerstoragewararena) == 1 then
         doPlayerSendTextMessage(sid, 21, "The "..summonMonster.." level monsters appeared.")   
         doPlayerSendTextMessage(sid, 28, "The "..summonMonster.." level monsters appeared.")
      end
  end
    end
addEvent(doSummonMonsterInEvent, 30000, cid)
end

function getPlayerInEvent(cid)
        if getGlobalStorageValue(wararenastor) >= minPLayers then
           for _, poid in ipairs(getPlayersOnline()) do
               if getPlayerStorageValue(poid, playerstoragewararena) == 1 then
                  doPlayerSendTextMessage(poid, 25, "Prepare your weapons warrior. The monsters will spawn in 30 seconds.")
                  doTeleportThing(poid, math.random(arenaPositionInitial, arenaPositionEnd), false)
                  addEvent(doSummonMonsterInEvent, 30 * 1000, cid) 
               end
           end
        end
end
function onTimer(cid, interval, lastExecution) 
        setGlobalStorageValue(29474, 1)
        doBroadcastMessage("The Monster War Arena will start 5 minuts.")
        addEvent(getPlayerInEvent, 5 * 1000 * 60, cid) 
end

 

A tag:

<globalevent name="Event1" time="2:50;7:50;11:50;16:50;21:50" event="script" value="event1.lua"/>

 

Agora vamos em lib e criemos um arquivo chamado "eventArena.lua" e cole isto dentro:

wararenastor = 10101 -- Global storage
playerstoragewararena = 10102 -- Npc storage
minPLayers = 5 -- Minimo de players
arenaPositionInitial = { x = 1, y = 1, z = 1 } -- Posição da ponta inferior direita da arena
arenaPositionEnd = { x = 1, y = 1, z = 1 } -- Posição da ponta superior esquerda da arena, formando assim um quadrado; --------
																												   |	 *|
																												   |	  |
																												   |*	 |
																												   --------
local monstersPositions = {
{ x = 1, y = 1, z = 1 },
{ x = 1, y = 1, z = 1 },
{ x = 1, y = 1, z = 1 },-- posição aonde os monstros vão nescer
{ x = 1, y = 1, z = 1 },
{ x = 1, y = 1, z = 1 },
{ x = 1, y = 1, z = 1 },
{ x = 1, y = 1, z = 1 },
{ x = 1, y = 1, z = 1 },
{ x = 1, y = 1, z = 1 },
{ x = 1, y = 1, z = 1 },
}
local levels = {
  [1] = {monsters = {"Rat", "Cave rat", "Rotworm", "Assassin", "Rat", "Cave rat", "Rotworm", "Assassin", "Zombie", ""}},
																												 --/\ Caso não queira colocar os dez monstros deixe um espaço nas aspas
}

 

agora vamos em data/talkactions/scripts, crie um arquivo chamado "event1.lua" e colemos isso dentro:



function onSay(cid, words, param, channel)

if param and (param == "register" or param == "Register") then
  if getPlayerStorageValue(cid, playerstoragewararena) < 1 then
     if getGlobalStorageValue(wararenastor) > minPLayers then
        setPlayerStorageValue(cid, playerstoragewararena, 1)
        doPlayerSendTextMessage(cid, 27, "You are a registred in the event. Good luck!")
     end
  end
end 
return true
end

 

tag:

<talkaction words="/event" event="script" value="event1.lua"/>

 

Acho que eu esqueci algo, vale lembrar que eu não testei. Preciso da ajuda de vocês para isso. Obrigado.

Link para o comentário
Compartilhar em outros sites

parece legalzinho.. dica: ao invés do user colocar a posição que o bicho vai nascer, faz um random pra nascer em qualquer lugar de dentro da arena :D... dae os players num vao ficar esperando resp nas posições corretas :)

Link para o comentário
Compartilhar em outros sites

  • 10 months later...

Oi, Sei que já faz Muito Tempo que este Tópico Foi Adicionado no Xtibia, Mas mesmo assim vou perguntar.....

Nos Talkactions, Tenho que adicionar a Tag Nos players..? e eles falam /event Register ?

se for responda por favor!

Outra coisa Qual id Do item que precisa para Registrar... Ou melhor aonde muda, Queria por para 2160. Caso não tenha item para começar só me responda a primeira Valeu ai ! mdr.gif

Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...
×
×
  • Criar Novo...