• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Please! Veteran and WorldBoss

renancs

New Member
Joined
Jul 8, 2008
Messages
252
Reaction score
3
In my OTserv, will add two types of Boss, which were raids ...
veteran Boss
and World Boss

The Veteran Boss, every day will dawn one different from Monday until Saturday ... 6 being the whole ...
Already the world boss, MT will be 4, and 1 each week, on Sundays ...
I would like these 10 monsters spawns were in places that I will choose the script, and already configured with the times, so I do not get lost in the script kkkk
Is that e
example:

Veteran: Insane Spider - Monday
Veteran: Dragone - Tuesday
Veteran: Elemental Mastery - Wednesday
Veteran: Dark Reaper - Thursday
Veteran: Hell Demon - Friday
Veteran: Destruction Colossus - Saturday


Worldboss - King of Lost Face - first Sunday of the month
Worldboss - Blood Tyrant Spectre - the second Sunday of the month
Worldboss - Hell Abomination - the third Sunday of the month
Worldboss - Insane Glorius Hell - the fourth Sunday of the month
 
How about this then?

Lua:
--[[
- 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 = 'weekly',
                days = {'friday'},
                hour = 18,
                minu = 00
            },
        [2] = 
            {
                name = 'Zulazza the Corruptor',
                type = 'weekly',
                days = {'tuesday'},
                hour = 20,
                minu = 00
            },
        [3] = 
            {
                name = 'RatsThais',
                type = 'weekly',
                days = {'monday'},
                hour = 8,
                minu = 00
            },
        [4] = 
            {
                name = 'OrcsThais',
                type = 'weekly',
                days = {'wednesday'},
                hour = 12,
                minu = 00
            },
        [5] = 
            {
                name = 'Barbarian',
                type = 'weekly',
                days = {'thursday'},
                hour = 10,
                minu = 00
            },
        [6] = 
            {
                name = 'Demodras',
                type = 'weekly',
                days = {'sunday'},
                hour = 15,
                minu = 00
            },
        [7] = 
            {
                name = 'Elfs',
                type = 'weekly',
                days = {'tuesday'},
                hour = 10,
                minu = 00
            },
        [8] = 
            {
                name = 'Ferumbras',
                type = 'weekly',
                days = {'saturday'},
                hour = 22,
                minu = 00
            },
        [9] = 
            {
                name = 'Ghazbaran',
                type = 'weekly',
                days = {'monday'},
                hour = 16,
                minu = 00
            },
        [10] = 
            {
                name = 'Horned Fox',
                type = 'weekly',
                days = {'sunday'},
                hour = 8,
                minu = 00
            },
        [11] = 
            {
                name = 'Necropharus',
                type = 'weekly',
                days = {'thursday'},
                hour = 20,
                minu = 00
            },
        [12] = 
            {
                name = 'Nomads',
                type = 'weekly',
                days = {'wednesday'},
                hour = 8,
                minu = 00
            },
        [13] = 
            {
                name = 'Orshabaal',
                type = 'weekly',
                days = {'sunday'},
                hour = 18,
                minu = 00
            },
        [14] = 
            {
                name = 'Pirates',
                type = 'weekly',
                days = {'saturday'},
                hour = 6,
                minu = 00
            },
        [15] = 
            {
                name = 'Quaras',
                type = 'weekly',
                days = {'friday'},
                hour = 4,
                minu = 00
            },
        [16] = 
            {
                name = 'Scarabs',
                type = 'weekly',
                days = {'tuesday'},
                hour = 5,
                minu = 00
            },
        [17] = 
            {
                name = 'Old Widow',
                type = 'weekly',
                days = {'wednesday'},
                hour = 19,
                minu = 00
            },
        [18] = 
            {
                name = 'Undead Army',
                type = 'weekly',
                days = {'thursday'},
                hour = 20,
                minu = 00
            },
        [19] = 
            {
                name = 'Sir Valorcrest',
                type = 'weekly',
                days = {'monday'},
                hour = 11,
                minu = 00
            },
        [20] = 
            {
                name = 'Zevelon Duskbringer',
                type = 'weekly',
                days = {'tuesday'},
                hour = 3,
                minu = 00
            },
        [21] = 
            {
                name = 'Diblis The Fair',
                type = 'weekly',
                days = {'saturday'},
                hour = 12,
                minu = 00
            },
        [22] = 
            {
                name = 'Arachir the Ancient One',
                type = 'weekly',
                days = {'monday'},
                hour = 15,
                minu = 00
            },
        [23] = 
            {
                name = 'Mutated Pumpkin',
                type = 'weekly',
                days = {'friday'},
                hour = 22,
                minu = 00
            },
        [24] = 
            {
                name = 'Demonic Army',
                type = 'weekly',
                days = {'wednesday'},
                hour = 23,
                minu = 00
            },
        [25] = 
            {
                name = 'Halloween Hare',
                type = 'exact',
                date = {day = 31, month = 10},
                hour = 16,
                minu = 00
            },
        [26] = 
            {
                name = 'Tiquandas Revenge',
                type = 'weekly',
                days = {'sunday'},
                hour = 21,
                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
 
where im put position of monsters?

Code:
local raids =
    {
        [1] = 
            {
                name = '[COLOR="#FF0000"]Morgaroth[/COLOR]',
                type = 'weekly',
                days = {'friday'},
                hour = 18,
                minu = 00
            },

You need register in Raids.xml for example:
Code:
<raid name="[COLOR="#FF0000"]Morgaroth[/COLOR]" file="scripts/Morgaroth.xml" chance="999999999999" interval2="999999999" margin="0"></raid>

and script execute raid by name saved in raids.xml
 
How about this then?

Lua:
--[[
- 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 = 'weekly',
                days = {'friday'},
                hour = 18,
                minu = 00
            },
        [2] = 
            {
                name = 'Zulazza the Corruptor',
                type = 'weekly',
                days = {'tuesday'},
                hour = 20,
                minu = 00
            },
        [3] = 
            {
                name = 'RatsThais',
                type = 'weekly',
                days = {'monday'},
                hour = 8,
                minu = 00
            },
        [4] = 
            {
                name = 'OrcsThais',
                type = 'weekly',
                days = {'wednesday'},
                hour = 12,
                minu = 00
            },
        [5] = 
            {
                name = 'Barbarian',
                type = 'weekly',
                days = {'thursday'},
                hour = 10,
                minu = 00
            },
        [6] = 
            {
                name = 'Demodras',
                type = 'weekly',
                days = {'sunday'},
                hour = 15,
                minu = 00
            },
        [7] = 
            {
                name = 'Elfs',
                type = 'weekly',
                days = {'tuesday'},
                hour = 10,
                minu = 00
            },
        [8] = 
            {
                name = 'Ferumbras',
                type = 'weekly',
                days = {'saturday'},
                hour = 22,
                minu = 00
            },
        [9] = 
            {
                name = 'Ghazbaran',
                type = 'weekly',
                days = {'monday'},
                hour = 16,
                minu = 00
            },
        [10] = 
            {
                name = 'Horned Fox',
                type = 'weekly',
                days = {'sunday'},
                hour = 8,
                minu = 00
            },
        [11] = 
            {
                name = 'Necropharus',
                type = 'weekly',
                days = {'thursday'},
                hour = 20,
                minu = 00
            },
        [12] = 
            {
                name = 'Nomads',
                type = 'weekly',
                days = {'wednesday'},
                hour = 8,
                minu = 00
            },
        [13] = 
            {
                name = 'Orshabaal',
                type = 'weekly',
                days = {'sunday'},
                hour = 18,
                minu = 00
            },
        [14] = 
            {
                name = 'Pirates',
                type = 'weekly',
                days = {'saturday'},
                hour = 6,
                minu = 00
            },
        [15] = 
            {
                name = 'Quaras',
                type = 'weekly',
                days = {'friday'},
                hour = 4,
                minu = 00
            },
        [16] = 
            {
                name = 'Scarabs',
                type = 'weekly',
                days = {'tuesday'},
                hour = 5,
                minu = 00
            },
        [17] = 
            {
                name = 'Old Widow',
                type = 'weekly',
                days = {'wednesday'},
                hour = 19,
                minu = 00
            },
        [18] = 
            {
                name = 'Undead Army',
                type = 'weekly',
                days = {'thursday'},
                hour = 20,
                minu = 00
            },
        [19] = 
            {
                name = 'Sir Valorcrest',
                type = 'weekly',
                days = {'monday'},
                hour = 11,
                minu = 00
            },
        [20] = 
            {
                name = 'Zevelon Duskbringer',
                type = 'weekly',
                days = {'tuesday'},
                hour = 3,
                minu = 00
            },
        [21] = 
            {
                name = 'Diblis The Fair',
                type = 'weekly',
                days = {'saturday'},
                hour = 12,
                minu = 00
            },
        [22] = 
            {
                name = 'Arachir the Ancient One',
                type = 'weekly',
                days = {'monday'},
                hour = 15,
                minu = 00
            },
        [23] = 
            {
                name = 'Mutated Pumpkin',
                type = 'weekly',
                days = {'friday'},
                hour = 22,
                minu = 00
            },
        [24] = 
            {
                name = 'Demonic Army',
                type = 'weekly',
                days = {'wednesday'},
                hour = 23,
                minu = 00
            },
        [25] = 
            {
                name = 'Halloween Hare',
                type = 'exact',
                date = {day = 31, month = 10},
                hour = 16,
                minu = 00
            },
        [26] = 
            {
                name = 'Tiquandas Revenge',
                type = 'weekly',
                days = {'sunday'},
                hour = 21,
                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

Thanks you for help :) i rep you :)
 
Back
Top