Monster War Arena System 1.0 - By SmiX

SmiX
Por SmiX
em Globalevents e Spells

SmiX

SlashX
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 25/01/12Posts: 963

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.

Shyrriro

Mestre Design
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/07/11Posts: 41

Ta bom, da pra melhorar duro trabalho leva o rep.

drakylucas

Draky Scripter
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 12/09/10Posts: 416Char no Tibia: Draky Lucas

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 :)

garep

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 08/01/06Posts: 118Char no Tibia: Bahanot

Cara não sei se coloquei errado mais eu falo a cmd aqui e ñ funfa, e ñ esta dando erro no serve.

 

 

 

worriedsmiley.gif

kinhozinho157

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/11/13Posts: 7

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

FlamesAdmin

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 28/01/12Posts: 1550Gênero: Masculino

Obrigado! Mais acho que isso fica meio ruim, até pensei em colocar o math.random() nas posições mais achei melhor não.

Eu acho que seria melhor msm, com math.random

[Show off] Mapping Pokémon (OLD)

[PDA] Pokeball Icon System

 

 

[Mapping] Mapinha Johto = Para conferir, clique Aqui
[Mapping] Outland RockPara conferir, clique Aqui
[Mapping] Centro Pokémon de Cinnabar e cidade de Hamlin(PxG) Para conferir, clique Aqui
[Mapping] Antigo Trade Center(PvP) do PxG Para conferir, clique Aqui
[PDA] Reformulação do level das magias e level dos Pokemons Para conferir, clique Aqui
[PDA] Comando de Clan sem task = Para conferir, clique Aqui
[Utilitário] OT Restarter by: Gabrielbsales(Featzen) Para conferir, clique Aqui
[Database] Descriptografia MD5 & SHA1 = Para conferir, clique Aqui
[Scripting] Level Máximo = Para conferir, clique Aqui