ME

[Globalevents] Invasão

Por meubk, 15 de mai. de 2011 em Globalevents e Spells

tibia
script
otserv
17
9.1k
meubkM
15 de maio de 2011 às 15:44

fwwkjh591cu7jnj1ferumbras.jpg

 

Olá depois de um tempo, afastado voltei, e trouxe um script bem legal e interessante é um script para fazer invasões.

 

Instalando

 

Entre na pasta data/globalevents/scripts e crie um arquivo com o nome de inv.lua e cole o seguinte código:

 

local i = {
["00:00"] = {nome = "Demon Invasões", pos = {x=1000, y=1000, z=7}, monster = {"40 Demon", "50 Fire Devil", "4 Orshabaal"}},
["21:00"] = {nome = "Dragon Invasões", pos = {x=1000, y=1000, z=7}, monster = {"100 Dragon"}},
}

function onThink(interval, lastExecution)
hours = tostring(os.date("%X")):sub(1, 5)
tb = i[hours]
if tb then
	doBroadcastMessage(hours .. " - " .. tb.nome .. " Iníciou.")
	for _,x in pairs(tb.monster) do
		for s = 1, tonumber(x:match("%d+")) do
			doSummonCreature(x:match("%s(.+)"), tb.pos)
		end
	end
end
return true
end

 

Depois vá na pasta data/globalevents e procure pelo arquivo globalevents.xml e adicione a seguinte tag:

 

<globalevent name="Invasao" interval="60" event="script" value="inv.lua"/>

 

Adicionando Invasões

 

No arquivo inv.lua vc segue a seguinte tabela:

 

local i = {
["00:00"] = {nome = "Demon Invasões", pos = {x=1000, y=1000, z=7}, monster = {"40 Demon", "50 Fire Devil", "4 Orshabaal"}},
["21:00"] = {nome = "Dragon Invasões", pos = {x=1000, y=1000, z=7}, monster = {"100 Dragon"}},
}

 

Para adicionar mais eventos é simples, somente configurar:

["HORA DA INVASÃO"] = {nome = "NOME DA INVASÃO", pos = {POSIÇÃO X, Y, Z}, monster = {"MONSTROS"}},

 

Á hora da invasão é colocada entre " " e somente a hora e minuto, segundos não precisa exemplo:

"15:00"

 

Á Posição está entre { } adicionando as posições x, y e z, exemplo:

{x=1688, y=1445, z=7}

 

Os monters tem um modo especial de configurar, vc coloca entre { }, e cada monstro entre " ", e entre as " " vc adiciona "QUANTIDADE MONSTRO", e para adicionar mais tipos de monstro se separa por virgulas, exemplo:

{"40 Water Elemental", "5 Cyclops"}

 

E no final de cada invasão não esqueça a virgula, exemplo:

["21:00"] = {nome = "Dragon Invasões", pos = {x=1000, y=1000, z=7}, monster = {"100 Dragon"}},

 

 

Então é isso, qualquer erro só falar.

Fui.

Editado Maio 15 por xotservx

joaohdJ
15 de maio de 2011 às 15:50

Avançou muito enquanto estive afastado hein. Bom script. Teve um pouco de dificuldade mas depois você aprende.

 

flw

meubkM
16 de maio de 2011 às 12:48

Obrigado apocarai, tudu que sei, devo a vc.

16 de maio de 2011 às 12:53

Wow que legal, gostei bastante. E pow, avançou mesmo, string.sub, os.date e string.match com pattern e pong, parabéns.

 

Até mais.

SanfS
16 de maio de 2011 às 13:17

ótimo script :D

2 meses depois...
Gustavo18OG
21 de julho de 2011 às 19:19

AKI NAO FUNFO

4 meses depois...
ADMJuanA
17 de novembro de 2011 às 21:12

Bom script mais tem um problema, é que se você colocar 1 ele da invasão de 6 monstro ou seja? se voce bota um the horned fox ele da invasão de 6.

Lym312yzL
22 de novembro de 2011 às 21:25

MUITO BOM!

PAREBENS

penguinserverP
28 de novembro de 2011 às 23:08

Gostaria de saber como eu faço pra colocar tipo um dia certo tambem !

por exemplo toda quarta as 15:00 invsao de dragon

 

ao inves de ser todo dia invasao de dragon as 15:00

4 meses depois...
VodkartV
14 de março de 2012 às 12:50

por dia:

 

local days = {
["Sunday"] = {
["00:00"] = {nome = "Demon Invasões", pos = {x=185, y=54, z=7}, monster = {"40 Demon", "50 Fire Devil", "4 Orshabaal"}},
["21:00"] = {nome = "Dragon Invasões", pos = {x=185, y=54, z=7}, monster = {"100 Dragon"}}
},
["Wednesday"] = {
["00:00"] = {nome = "Demon Invasões", pos = {x=185, y=54, z=7}, monster = {"40 Demon", "50 Fire Devil", "4 Orshabaal"}},
["12:48"] = {nome = "Dragon Invasões", pos = {x=185, y=57, z=7},monster = {"100 Dragon"}}
}
}
function onThink(interval, lastExecution)
function getDayName()
local days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}
return days[os.date("*t")["wday"]]
end
hours = tostring(os.date("%X")):sub(1, 5)	  
	tb = days[getDayName()][hours]
	if tb then
			doBroadcastMessage(hours .. " - " .. tb.nome .. " Iníciou.")
			for _,x in pairs(tb.monster) do
					for s = 1, tonumber(x:match("%d+")) do
							doSummonCreature(x:match("%s(.+)"), tb.pos)
					end
			end
	end
	return true
end

 

só configurar o dia que você quer,adicionar + dias e configurar as horas...

 

no caso eu coloquei para executar domingo e quarta

Editado Março 14 por Vodkart

7 meses depois...
ShyrriroS
21 de outubro de 2012 às 10:35

Muito bom leva +rep

25 de outubro de 2012 às 21:07

Eu queria um script deste, porém os monstro só é liberto com a fala do GOD, tipo quando ele fala /invasão, soltava os monstro deste script.

mais bom script. rep+

SkyLighS
25 de outubro de 2012 às 21:09

@Hellcomander ja existe este comando .

 

link : http://www.xtibia.com/forum/topic/135225-talkaction-comando-de-invasao/

25 de outubro de 2012 às 21:30

brigado, REP+ para você pela ajuda ;D

1 mês depois...
DinoAdminD
19 de novembro de 2012 às 08:08

Usuario, Quais versoens este script é compativel?

Bom No meu caso para eu por No meu ot de poketibia 8.54 eu teria que retirar o nome do Monster e por o do pokemon e o position?