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

Lua TFS 1.3 use egg and receive a mount

Icaraii

Well-Known Member
Joined
Jan 5, 2020
Messages
469
Solutions
1
Reaction score
58
Guys I would like a script where the player uses one of those eggs and one of those happen:

Use hydra egg:
  • 91% Nothing
  • 5% gain bogwurm as mount
  • 3% gain gloomwurm as mount
  • 1% gain rustwurm as mount

Use phoenix egg:
  • 91% Nothing
  • 5% gain emerald raven as mount
  • 3% gain mystic raven as mount
-1% gain radiant raven as mount
 
Solution
X
LUA:
local eggs = {
    -- itemid
    [1111] = {
        [{1, 1}] = {rewardMount = 111}, -- between numbers 1 - 1 (aka, 1%) (1)
        [{2, 4}] = {rewardMount = 111}, -- between numbers 2 - 4 (aka, 3%) (2, 3, 4)
        [{5, 9}] = {rewardMount = 111}, -- between numbers 5 - 9 (aka, 5%) (5, 6, 7, 8, 9)
                                        -- between numbers 10 - 100 (aka, 91%) (do nothing, cuz not in table.)
    },
    [2222] = {
        [{1, 1}] = {rewardMount = 111},
        [{2, 4}] = {rewardMount = 111},
        [{5, 9}] = {rewardMount = 111},                           
    }
}

local action = Action()

function action.onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local index = eggs[item:getId()]
    if not index...
LUA:
local eggs = {
    -- itemid
    [1111] = {
        [{1, 1}] = {rewardMount = 111}, -- between numbers 1 - 1 (aka, 1%) (1)
        [{2, 4}] = {rewardMount = 111}, -- between numbers 2 - 4 (aka, 3%) (2, 3, 4)
        [{5, 9}] = {rewardMount = 111}, -- between numbers 5 - 9 (aka, 5%) (5, 6, 7, 8, 9)
                                        -- between numbers 10 - 100 (aka, 91%) (do nothing, cuz not in table.)
    },
    [2222] = {
        [{1, 1}] = {rewardMount = 111},
        [{2, 4}] = {rewardMount = 111},
        [{5, 9}] = {rewardMount = 111},                           
    }
}

local action = Action()

function action.onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local index = eggs[item:getId()]
    if not index then
        return true
    end
    local rand = math.random(100)
    for v, k in pairs(index) do
        if v[1] <= rand and v[2] >= rand then
            if player:hasMount(k.rewardMount) then
                return true
            end
            player:addMount(k.rewardMount)
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You have received a mount.")
            break
        end
    end
    return true
end

for v, k in pairs(eggs) do
    action:id(v)
end
action:register()

ninja edit.
Changed () to [] on line 19
 
Last edited by a moderator:
Solution
LUA:
local eggs = {
    -- itemid
    [1111] = {
        [{1, 1}] = {rewardMount = 111}, -- between numbers 1 - 1 (aka, 1%) (1)
        [{2, 4}] = {rewardMount = 111}, -- between numbers 2 - 4 (aka, 3%) (2, 3, 4)
        [{5, 9}] = {rewardMount = 111}, -- between numbers 5 - 9 (aka, 5%) (5, 6, 7, 8, 9)
                                        -- between numbers 10 - 100 (aka, 91%) (do nothing, cuz not in table.)
    },
    [2222] = {
        [{1, 1}] = {rewardMount = 111},
        [{2, 4}] = {rewardMount = 111},
        [{5, 9}] = {rewardMount = 111},                          
    }
}

local action = Action()

function action.onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local index = eggs[item:getId()]
    if not index then
        return true
    end
    local rand = math.random(100)
    for v, k in pairs(index) do
        if v[1] <= rand and v[2] >= rand then
            if player:hasMount(k.rewardMount) then
                return true
            end
            player:addMount(k.rewardMount)
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You have received a mount.")
            break
        end
    end
    return true
end

for v, k in pairs(eggs) do
    action:id(v)
end
action:register()

ninja edit.
Changed () to [] on line 19
It works, but can you put to remove the egg when used?
 

Similar threads

Back
Top