• 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 [Request] Tfs1.2 Slot machine script fix

Kavalor

(Real)Creator of ChaosOT
Joined
Dec 13, 2007
Messages
260
Reaction score
52
Location
Washington State, USA
This script is mostly working. However it is performing 6 loops when the action is used and sends the jackpot value to the player(same value)6 times and costs 6x what it should while not raising the jackpot for that cost each time. The script should pick the correct layer it should have resolved and only execute that potion based on the random it resolved. It appears also to not be setting the itemspecialdescription in the process. There are no lua errors reported just the symptoms described. TFS 1.2...

Lua:
function onUse(cid, item, fromPosition, itemEx, toPosition)
-- config --
local Storage = 5555 -- What global & player storage value to use!
local Price = 1000 -- Cost to gamble (500-1000 gp atm)
-- Win Chances --
local JackpotChance = math.random(1, 1000) -- 0.1% to win the jackpot
local Jackpot = getGlobalStorageValue(Storage) -- the jackpot is 100% of the jackpot..
    local BigWinChance = math.random(1, 400) -- 0.25% to win the "bigwin"
    local BigWinMinPrize = getGlobalStorageValue(Storage)/30 -- 1/30 of the jackpot is the min "bigwin" prize.
    local BigWinMaxPrize = getGlobalStorageValue(Storage)/15 -- 1/15 of the jackpot is the max "bigwin" prize.
    local BigWinPrize = math.random(BigWinMinPrize, BigWinMaxPrize)  -- Dont touch! xD
            local SmallWinChance = math.random(1, 200) -- 0.5% to win the "smallwin"
            local SmallWinMinPrize = getGlobalStorageValue(Storage)/30 -- 1/30 of the jackpot is the "smallwin" prize.
            local SmallWinMaxPrize = getGlobalStorageValue(Storage)/60 -- 1/30 of the jackpot is the "smallwin" prize.
            local SmallWinPrize = math.random(SmallWinMinPrize, SmallWinMaxPrize)  -- Dont touch! xD
-- Free Spin --
local FreeSpinChance = math.random(1, 100) -- 1% to get some free spins
local FreeSpins = math.random(1, 4) -- You can get 1-4 free spins
local FreeSpinStorage = getPlayerStorageValue(cid, Storage) -- Dont touch! xD
-- Item Chances --
    local Item1Chance = math.random(1, 1000) -- very low odds
    local Item1 = 18422
    local Item2Chance = math.random(1, 1000) -- very low odds
    local Item2 = 18423
-- config end --
if (getPlayerMoney(cid) >= Price or FreeSpinStorage >= 1) then
    if JackpotChance == 1 and getPlayerMoney(cid) >= Price then
        doPlayerAddMoney(cid, Jackpot)
            doPlayerSendTextMessage(cid, 22, "You have won the jackpot! " .. Jackpot .. " gold coins!")
                setGlobalStorageValue(Storage, 100)
                    doSetItemSpecialDescription(item, "Current jackpot: " .. Jackpot .. " gold coins.")
                        if FreeSpinStorage <= 0 then
                            doPlayerRemoveMoney(cid, Price)
                        else
                            setPlayerStorageValue(cid, Storage, FreeSpinStorage-1)
                                doPlayerSendTextMessage(cid, 22, "You have used one of your free spins! " .. FreeSpinStorage .. " spins left!")
                        end
    else
            setGlobalStorageValue(Storage, Jackpot+Price)
                doPlayerRemoveMoney(cid, Price)
                    doPlayerSendTextMessage(cid, 22, "You lost. The jackpot is now " .. Jackpot .. ".")
                        doSetItemSpecialDescription(item, "Current jackpot: " .. Jackpot .. " gold coins.")
    end
    if JackpotChance >= 2 then
        if BigWinChance == 1 and getPlayerMoney(cid) >= Price then
            doPlayerAddMoney(cid, BigWinPrize)
                doPlayerSendTextMessage(cid, 22, "You have won the Big Win! " .. BigWinPrize .. " gold coins!")
                    setGlobalStorageValue(Storage, Jackpot-BigWinPrize)
                        doSetItemSpecialDescription(item, "Current jackpot: " .. Jackpot .. " gold coins.")
            if FreeSpinStorage <= 0 then
                doPlayerRemoveMoney(cid, Price)
            else
                setPlayerStorageValue(cid, Storage, FreeSpinStorage-1)
                    doPlayerSendTextMessage(cid, 22, "You have used one of your free spins! " .. FreeSpinStorage .. " spins left!")
            end
        else 
            setGlobalStorageValue(Storage, Jackpot+Price)
                doPlayerSendTextMessage(cid, 22, "You lost. The jackpot is now " .. Jackpot .. ".")
                    doSetItemSpecialDescription(item, "Current jackpot: " .. Jackpot .. " gold coins.")
            if FreeSpinStorage <= 0 then
                doPlayerRemoveMoney(cid, Price)
            else
                setPlayerStorageValue(cid, Storage, FreeSpinStorage-1)
                    doPlayerSendTextMessage(cid, 22, "You have used one of your free spins! " .. FreeSpinStorage .. " spins left!")
            end
        end
    end
    if JackpotChance >= 2 and BigWinChance >= 2 then
        if SmallWinChance == 1 and getPlayerMoney(cid) >= Price then
            doPlayerAddMoney(cid, SmallWinPrize)
                doPlayerSendTextMessage(cid, 22, "You have won the Small Win! " .. SmallWinPrize .. " gold coins!")
                    setGlobalStorageValue(Storage, Jackpot-SmallWinPrize)
                        doSetItemSpecialDescription(item, "Current jackpot: " .. Jackpot .. " gold coins.")
                            if FreeSpinStorage <= 0 then
                                doPlayerRemoveMoney(cid, Price)
                            else
                                setPlayerStorageValue(cid, Storage, FreeSpinStorage-1)
                                    doPlayerSendTextMessage(cid, 22, "You have used one of your free spins! " .. FreeSpinStorage .. " spins left!")
                            end
        else 
            setGlobalStorageValue(Storage, Jackpot+Price)
                doPlayerSendTextMessage(cid, 22, "You lost. The jackpot is now " .. Jackpot .. ".")
                    doSetItemSpecialDescription(item, "Current jackpot: " .. Jackpot .. " gold coins.")
            if FreeSpinStorage <= 0 then
                doPlayerRemoveMoney(cid, Price)
            else
                setPlayerStorageValue(cid, Storage, FreeSpinStorage-1)
                    doPlayerSendTextMessage(cid, 22, "You have used one of your free spins! " .. FreeSpinStorage .. " spins left!")
            end
        end
    end
    if Item1Chance == 1 and getPlayerMoney(cid) >= Price then
        doPlayerSendTextMessage(cid, 22, "You have won " ..Item1 ..".")
            doPlayerAddItem(cid, Item1)
                setGlobalStorageValue(Storage, Jackpot+Price)
                    if FreeSpinStorage <= 0 then
                        doPlayerRemoveMoney(cid, Price)
                    else
                        setPlayerStorageValue(cid, Storage, FreeSpinStorage-1)
                            doPlayerSendTextMessage(cid, 22, "You have used one of your free spins! " .. FreeSpinStorage .. " spins left!")
                    end
    else 
        setGlobalStorageValue(Storage, Jackpot+Price)
            doPlayerSendTextMessage(cid, 22, "You lost. The jackpot is now " .. Jackpot .. ".")
                doSetItemSpecialDescription(item, "Current jackpot: " .. Jackpot .. " gold coins.")
                    if FreeSpinStorage <= 0 then
                        doPlayerRemoveMoney(cid, Price)
                    else
                        setPlayerStorageValue(cid, Storage, FreeSpinStorage-1)
                            doPlayerSendTextMessage(cid, 22, "You have used one of your free spins! " .. FreeSpinStorage .. " spins left!")
                    end
    end
    if Item2Chance == 1 and getPlayerMoney(cid) >= Price then
        doPlayerSendTextMessage(cid, 22, "You have won " ..Item2 ..".")
            doPlayerAddItem(cid, Item2)
                setGlobalStorageValue(Storage, Jackpot+Price)
                    if FreeSpinStorage <= 0 then
                        doPlayerRemoveMoney(cid, Price)
                    else
                        setPlayerStorageValue(cid, Storage, FreeSpinStorage-1)
                            doPlayerSendTextMessage(cid, 22, "You have used one of your free spins! " .. FreeSpinStorage .. " spins left!")
                    end
    else 
        setGlobalStorageValue(Storage, Jackpot+Price)
            doPlayerSendTextMessage(cid, 22, "You lost. The jackpot is now " .. Jackpot .. ".")
                doSetItemSpecialDescription(item, "Current jackpot: " .. Jackpot .. " gold coins.")
                    if FreeSpinStorage <= 0 then
                        doPlayerRemoveMoney(cid, Price)
                    else
                        setPlayerStorageValue(cid, Storage, FreeSpinStorage-1)
                            doPlayerSendTextMessage(cid, 22, "You have used one of your free spins! " .. FreeSpinStorage .. " spins left!")
                    end
    end 
    if FreeSpinChance == 1 and JackpotChance >= 2 and BigWinChance >= 2 and SmallWinChance >= 2 then
        setPlayerStorageValue(cid, Storage, FreeSpinStorage+FreeSpins)
            doPlayerSendTextMessage(cid, 22, "You have won some free spins! " .. FreeSpinStorage .. " spins left!")
                if FreeSpinStorage <= 0 then
                    doPlayerRemoveMoney(cid, Price)
                else
                    setPlayerStorageValue(cid, Storage, FreeSpinStorage-1)
                        doPlayerSendTextMessage(cid, 22, "You have used one of your free spins! " .. FreeSpinStorage .. " spins left!")
                end
    else
        setGlobalStorageValue(Storage, Jackpot+Price)
            doPlayerSendTextMessage(cid, 22, "You lost. The jackpot is now " .. Jackpot .. ".")
                doSetItemSpecialDescription(item, "Current jackpot: " .. Jackpot .. " gold coins.")
                    if FreeSpinStorage <= 0 then
                        doPlayerRemoveMoney(cid, Price)
                    else
                        setPlayerStorageValue(cid, Storage, FreeSpinStorage-1)
                            doPlayerSendTextMessage(cid, 22, "You have used one of your free spins! " .. FreeSpinStorage .. " spins left!")
                    end
    end
else
            doPlayerSendTextMessage(cid, 22, "You don't have enough money.")
end
end
 
Back
Top