• 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!

Scripter TFS 1.x[Prefer]/0.x Scripting Services

snowsz

Member
Joined
Jan 24, 2012
Messages
9
Reaction score
5
Location
Brazil
About:
Hi! I am offering my scripting service :)
I have more than 5 years of .lua scripting experience, and i can create every system in that language.
All my systems i have focus in perfection (indenting, functional and readable). I can code in C++ a little bit.

Sample part of a code:
Lua:
--in lib.lua put      dofile('data/lib/Hunting Area.lua')

HUNTINGAREA = {
    [Position(145, 387, 7)] = {  --Position of the teleport in front of the room
        Max_Players = 2,   --Max players in room
        Max_Monsters = 4,   --Max monsters in room
        Spawn_Cooldown = 1,  --Cooldown to spawn new monsters
        Enter_Position = Position(145, 385, 7),  --Position to teleport to the room
       
        Items = { --Item option list
            --[itemid] = {Count = item count, Time = Time in the room in seconds}
            [2160] = {Count = 1, Time = 20*60},
        },
       
        Monsters = { --If have more than 1 monster, will be random.
            "Hydra",
        },
    }
}

HUNTINGAREA = setmetatable(HUNTINGAREA, {
    __index = function(table, key)
        for k, v in pairs(table) do
            if k.x == key.x and k.y == key.y and k.z == key.z then
                return v
            end
        end
    end
})  -- This function is to simply use HUNTINGAREA[any position here], ex: HUNTINGAREA[Position(152, 345, 7)] and will return the correct table.

for k, v in pairs(HUNTINGAREA) do --To apply the cache to all the tables.
    if type(v) == "table" then
        v.Cache = {
            Time = false,
            Players = {},
            Monsters = {},
            Cooldown = 0
        }
    end
end

HUNTINGAREA.ShowWindow = function(player, position)
    local MainW = ModalWindow{
        title = "Hunting Area",
        message = "Choose a method to pay your entrance."
    }
    local Area = HUNTINGAREA[position]
    for k, v in pairs(Area.Items) do
        local choice = MainW:addChoice(string.format("%sx %s - %s", v.Count, ItemType(k):getName(), string.diff(v.Time)))
        choice.ItemID = k
        choice.Count = v.Count
        choice.Time = v.Time
    end
   
    MainW:addButton('Enter',
    function(button, choice)
        if #Area.Cache.Players < Area.Max_Players then
            if player:getItemCount(choice.ItemID) >= choice.Count then
                player:removeItem(choice.ItemID, choice.Count)
                player:teleportTo(Area.Enter_Position, true, true)
                player:setSpecialStorage("HUNTINGAREA", position)
                table.insert(Area.Cache.Players, player)
                Area.Cache.Time = true
                HUNTINGAREA.Countdown(Area, choice.Time)
            else
                player:sendCancelMessage(string.format("You don't have %sx %s to enter!", choice.Count, ItemType(choice.ItemID):getName()))
            end
        else
            player:sendCancelMessage(string.format("This area already are in the max capacity, %s player%s.", Area.Max_Players, (Area.Max_Players > 1 and 's' or '')))
        end
    end
    )
    MainW:addButton('Close')
    MainW:setDefaultEscapeButton('Close')
    MainW:setDefaultEnterButton('Enter')
    MainW:sendToPlayer(player)
end

Gif:
http://g.recordit.co/NOuEiptLOa.gif OR Recordit: Record screencasts fast & free! with GIF Support!

Prices:
• Explain what you want and i will tell you the value after get details.

Payments method:
Paypal

Contact:
• Discord: Snowsz#5520
• Private Message here.

Thank you for reading and i hope make your server the best!
 
Back
Top