Galera não encontrei um tutorial no fórum com esse script, mais caso haja por favor moderadores remova o tópico!
Script útil a todos:
TFS 0.4 e OTX
Abra data/globalevents/globalevents.xml adicione a seguinte tag:
<globalevent name="raids" interval="1000" event="script" value="raid.lua"/>
Na pasta data/globalevents/scripts crie um arquivo .lua com o nome raid.lua adicione o seguinte code dentro do arquivo:
--[[
- hour should be exact SERVER hour
- to do the raid at clock 00 minutes 00
- to do the raid at exaxt date use type "exact"
- to do the raid weekly use type "weekly"
- days names are used only for weekly type and should be
- "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"
- also should be inside a array -> {}
]]
local raids =
{
[1] =
{
name = 'Morgaroth',
type = 'exact',
date = {day = 15, month = 08},
hour = 16,
minu = 27
},
[2] =
{
name = 'Zulazza the Corruptor',
type = 'weekly',
days = {'monday'},
hour = 20,
minu = 00
},
[3] =
{
name = 'RatsThais',
type = 'exact',
date = {day = 31, month = 07},
hour = 03,
minu = 00
},
[4] =
{
name = 'OrcsThais',
type = 'exact',
date = {day = 03, month = 08},
hour = 17,
minu = 00
},
[5] =
{
name = 'Barbarian',
type = 'exact',
date = {day = 05, month = 08},
hour = 18,
minu = 00
},
[6] =
{
name = 'Demodras',
type = 'exact',
date = {day = 07, month = 08},
hour = 19,
minu = 00
},
[7] =
{
name = 'Elfos',
type = 'exact',
date = {day = 09, month = 08},
hour = 20,
minu = 00
},
[8] =
{
name = 'Ferumbras',
type = 'exact',
date = {day = 11, month = 08},
hour = 21,
minu = 00
},
[9] =
{
name = 'Ghazbaran',
type = 'exact',
date = {day = 13, month = 08},
hour = 22,
minu = 00
},
[10] =
{
name = 'Horned Fox',
type = 'exact',
date = {day = 17, month = 08},
hour = 23,
minu = 00
},
[11] =
{
name = 'Necropharus',
type = 'exact',
date = {day = 19, month = 08},
hour = 00,
minu = 00
},
[12] =
{
name = 'Nomads',
type = 'exact',
date = {day = 21, month = 08},
hour = 01,
minu = 00
},
[13] =
{
name = 'Orshabaal',
type = 'exact',
date = {day = 23, month = 08},
hour = 14,
minu = 00
},
[14] =
{
name = 'Pirates',
type = 'exact',
date = {day = 25, month = 08},
hour = 15,
minu = 00
},
[15] =
{
name = 'Quaras',
type = 'exact',
date = {day = 27, month = 08},
hour = 16,
minu = 00
},
[16] =
{
name = 'Scarabs',
type = 'exact',
date = {day = 29, month = 08},
hour = 17,
minu = 00
},
[17] =
{
name = 'Old Widow',
type = 'exact',
date = {day = 31, month = 08},
hour = 18,
minu = 00
},
[18] =
{
name = 'Undead Army',
type = 'exact',
date = {day = 02, month = 09},
hour = 19,
minu = 00
},
[19] =
{
name = 'Undead Darashia',
type = 'exact',
date = {day = 04, month = 09},
hour = 20,
minu = 00
},
[20] =
{
name = 'Sir Valorcrest',
type = 'weekly',
days = {'monday'},
hour = 20,
minu = 00
},
[21] =
{
name = 'Zevelong Duskbringer',
type = 'weekly',
days = {'tuesday'},
hour = 20,
minu = 00
},
[22] =
{
name = 'Diblis The Fair',
type = 'weekly',
days = {'thursday'},
hour = 20,
minu = 00
},
[23] =
{
name = 'Arachir the Ancient One',
type = 'weekly',
days = {'saturday'},
hour = 20,
minu = 00
},
[24] =
{
name = 'Halloween Hare',
type = 'exact',
date = {day = 31, month = 10},
hour = 16,
minu = 00
}
}
local last_execsutes = {}
function onThink(interval, lastExecution, thinkInterval)
local static_time = os.time()
for k, raid in ipairs(raids) do
if (raid.type == 'weekly') then
local day = os.date("%A", static_time):lower()
if isInArray(raid.days, day) then
local hour = tonumber(os.date("%H", static_time))
if (raid.hour == hour) then
local minute = tonumber(os.date("%M", static_time))
if (raid.minu == minute) then
local day_number = tonumber(os.date("%d", static_time))
if (last_execsutes[k] ~= day_number) then
last_execsutes[k] = day_number
doExecuteRaid(raid.name)
end
end
end
end
elseif (raid.type == 'exact') then
local month = tonumber(os.date("%m", static_time))
if (raid.date.month == month) then
local day = tonumber(os.date("%d", static_time))
if (raid.date.day == day) then
local hour = tonumber(os.date("%H", static_time))
if (raid.hour == hour) then
local minute = tonumber(os.date("%M", static_time))
if (raid.minu == minute) then
if (last_execsutes[k] ~= day) then
last_execsutes[k] = day
doExecuteRaid(raid.name)
end
end
end
end
end
end
end
return true
end
Como funciona? Veja abaixo alguns exemplos:
Nessa raid abaixo está configurada pra ser executada, dia X, mês X, hora XX:XX minutos.
[1] =
{
name = 'Morgaroth',
type = 'exact',
date = {day = 15, month = 08},
hour = 16,
minu = 27
},
Essa outra abaixo é uma raid pra ser executada semanalmente no dia e horário que você desejar.
[2] =
{
name = 'Zulazza the Corruptor',
type = 'weekly',
days = {'monday'},
hour = 20,
minu = 00
},
Lembrado, name = 'Morgaroth', é necessário que essa raid esteja configurada na pasta data/raids.
Os créditos eu não sei quem fez, só sei que foi alguém da otland