• 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!
  • New resources must be posted under Resources tab. A discussion thread will be created automatically, you can't open threads manually anymore.

Action [Fun Script] Roulette

Set the 4 positions in the script, and give an item a action id or unique id...
 
Lua:
  --[[
        Russian Roulette
        by Maxi (Shawak)

]]--
	local newPos = {x=XXX,y=YYY,z=Z} -- position there you get teleportet after win the game

        local positions = {
        ----------------------------------------------------------------------
        ---------------- CONFIG ----------------------------------------------
        ----------------------------------------------------------------------

                {x = 1116, y = 1148, z = 7, stackpos = 253},
                {x = 1118, y = 1150, z = 7, stackpos = 253},
                {x = 1116, y = 1152, z = 7, stackpos = 253},
                {x = 1114, y = 1150, z = 7, stackpos = 253},

        ----------------------------------------------------------------------
        ---------------- CONFIG END ------------------------------------------
        ----------------------------------------------------------------------
        }

local fight = createConditionObject(CONDITION_INFIGHT,24*60*60*1000)
function onUse(cid, item, frompos, item2, topos)
        local cfg = { active = 9999, speed = 200, addSpeed = 100, maxSpeed = 1100 }
        local cfg, active, speed, addSpeed, maxSpeed, player, ded_player_pos = cfg, cfg.active, cfg.speed, cfg.addSpeed, cfg.maxSpeed, {0, 0, 0, 0}, {}
        local player1 = getThingfromPos(positions[1])
        local player2 = getThingfromPos(positions[2])
        local player3 = getThingfromPos(positions[3])
        local player4 = getThingfromPos(positions[4])

        if getGlobalStorageValue(active) == 0 or getGlobalStorageValue(active) == FALSE then
                if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then
                        -- if getPlayerGroupId(player1) == 1 and getPlayerGroupId(player2) == 1 and getPlayerGroupId(player3) == 1 and getPlayerGroupId(player4) == 1 and isPlayer(player1) == TRUE and isPlayer(player2) == TRUE and isPlayer(player3) == TRUE and isPlayer(player4) == TRUE then
                                setGlobalStorageValue(active, 1)
                                for i = 1 ,4 do
                                        player[i] = getThingfromPos(positions[i])
                                        doAddCondition(player[i].uid, fight)
                                        doCreatureSetNoMove(player[i].uid, 1)
                                end
                                doSendAnimatedText(frompos,"~~GO!~~",180)
                                addEvent(system,100,{cfg = cfg, player1 = player1, player2 = player2, player3 = player3, player4 = player4, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
                        -- else
                        --      doPlayerSendTextMessage(cid,18,"This game works only with players.")
                        -- end
                else
                        doPlayerSendTextMessage(cid,18,"You need 4 players.")
                end
        else
                doPlayerSendTextMessage(cid,18,"The game is already been running.")
        end
        return TRUE
end

function system(parameters)
        local cfg, player1, player2, player3, player4, positions, active, speed, addSpeed, maxSpeed, ded_player_pos  = parameters.cfg, parameters.player1, parameters.player2, parameters.player3, parameters.player4, parameters.positions, parameters.active, parameters.speed, parameters.addSpeed, parameters.maxSpeed, parameters.ded_player_pos

        if speed < maxSpeed then
                addEvent(effect1,100,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        elseif speed >= maxSpeed then
                local player = {0, 0, 0, 0}
                local ded_player = getThingfromPos(ded_player_pos)
                doSendAnimatedText(ded_player_pos,"~~PENG~~",180)
                doCreatureAddHealth(ded_player.uid,-getCreatureHealth(ded_player.uid))
                for i = 1 ,4 do
                        player[i] = getThingfromPos(positions[i])
                        if player[i].itemid > 0 then
                                doCreatureSetNoMove(player[i].uid, 0)
                                doRemoveCondition(player[i].uid, CONDITION_INFIGHT)
				doTeleportThing(player[i],newPos)
                        end
                end
                speed = cfg.speed
                addSpeed = cfg.addSpeed
                setGlobalStorageValue(active,0)
        end
        return TRUE
end

function effect1(parameters)
        local cfg, positions, active, speed, addSpeed, maxSpeed, ded_player_pos  = parameters.cfg, parameters.positions, parameters.active, parameters.speed, parameters.addSpeed, parameters.maxSpeed, parameters.ded_player_pos

        if speed < maxSpeed then
                if math.random(1,25) <= 5 then
                        speed = speed+addSpeed
                end
                doSendMagicEffect(positions[1],39)
                ded_player_pos = positions[1]
                addEvent(effect2,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        else
                addEvent(system,100,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        end
        return TRUE
end

function effect2(parameters)
        local cfg, positions, active, speed, addSpeed, maxSpeed, ded_player_pos  = parameters.cfg, parameters.positions, parameters.active, parameters.speed, parameters.addSpeed, parameters.maxSpeed, parameters.ded_player_pos

        if speed < maxSpeed then
                if math.random(1,25) <= 5 then
                        speed = speed+addSpeed
                end
                doSendMagicEffect(positions[2],39)
                ded_player_pos =  positions[2]
                addEvent(effect3,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        else
                addEvent(system,100,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        end
        return TRUE
end

function effect3(parameters)
        local cfg, positions, active, speed, addSpeed, maxSpeed, ded_player_pos  = parameters.cfg, parameters.positions, parameters.active, parameters.speed, parameters.addSpeed, parameters.maxSpeed, parameters.ded_player_pos

        if speed < maxSpeed then
                if math.random(1,25) <= 5 then
                        speed = speed+addSpeed
                end
                doSendMagicEffect(positions[3],39)
                ded_player_pos =  positions[3]
                addEvent(effect4,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        else
                addEvent(system,100,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        end
        return TRUE
end

function effect4(parameters)
        local cfg, positions, active, speed, addSpeed, maxSpeed, ded_player_pos  = parameters.cfg, parameters.positions, parameters.active, parameters.speed, parameters.addSpeed, parameters.maxSpeed, parameters.ded_player_pos

        if speed < maxSpeed then
                if math.random(1,25) <= 5 then
                        speed = speed+addSpeed
                end
                doSendMagicEffect(positions[4],39)
                ded_player_pos =  positions[4]
                addEvent(effect1,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        else
                addEvent(system,100,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        end
        return TRUE
end

I added it for you, change..
Lua:
local newPos = {x=XXX,y=YYY,z=Z}
.. to your position.

Regards,
Shawak


The first script works great! but the one with teleport isnt working for me. It just keep saying "The game is already been running".

Change..
Code:
        local cfg = { active = [COLOR="Red"]9999[/COLOR], speed = 200, addSpeed = 100, maxSpeed = 1100 }
9999 to any other number, example: 9998.

Regards,
Shawak

Tryd to change it with alot of diffrent nummbers but its not working.. Please help!

Great script anyway!
 
Fixed:
Lua:
  --[[
        Russian Roulette
        by Maxi (Shawak)

]]--
	local newPos = {x=XXX,y=YYY,z=Z} -- position there you get teleportet after win the game

        local positions = {
        ----------------------------------------------------------------------
        ---------------- CONFIG ----------------------------------------------
        ----------------------------------------------------------------------

                {x = 1116, y = 1148, z = 7, stackpos = 253},
                {x = 1118, y = 1150, z = 7, stackpos = 253},
                {x = 1116, y = 1152, z = 7, stackpos = 253},
                {x = 1114, y = 1150, z = 7, stackpos = 253},

        ----------------------------------------------------------------------
        ---------------- CONFIG END ------------------------------------------
        ----------------------------------------------------------------------
        }

local fight = createConditionObject(CONDITION_INFIGHT,24*60*60*1000)
function onUse(cid, item, frompos, item2, topos)
        local cfg = { active = 9999, speed = 200, addSpeed = 100, maxSpeed = 1100 }
        local cfg, active, speed, addSpeed, maxSpeed, player, ded_player_pos = cfg, cfg.active, cfg.speed, cfg.addSpeed, cfg.maxSpeed, {0, 0, 0, 0}, {}
        local player1 = getThingfromPos(positions[1])
        local player2 = getThingfromPos(positions[2])
        local player3 = getThingfromPos(positions[3])
        local player4 = getThingfromPos(positions[4])

        if getGlobalStorageValue(active) == 0 or getGlobalStorageValue(active) == FALSE then
                if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then
                        -- if getPlayerGroupId(player1) == 1 and getPlayerGroupId(player2) == 1 and getPlayerGroupId(player3) == 1 and getPlayerGroupId(player4) == 1 and isPlayer(player1) == TRUE and isPlayer(player2) == TRUE and isPlayer(player3) == TRUE and isPlayer(player4) == TRUE then
                                setGlobalStorageValue(active, 1)
                                for i = 1 ,4 do
                                        player[i] = getThingfromPos(positions[i])
                                        doAddCondition(player[i].uid, fight)
                                        doCreatureSetNoMove(player[i].uid, 1)
                                end
                                doSendAnimatedText(frompos,"~~GO!~~",180)
                                addEvent(system,100,{cfg = cfg, player1 = player1, player2 = player2, player3 = player3, player4 = player4, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
                        -- else
                        --      doPlayerSendTextMessage(cid,18,"This game works only with players.")
                        -- end
                else
                        doPlayerSendTextMessage(cid,18,"You need 4 players.")
                end
        else
                doPlayerSendTextMessage(cid,18,"The game is already been running.")
        end
        return TRUE
end

function system(parameters)
        local cfg, player1, player2, player3, player4, positions, active, speed, addSpeed, maxSpeed, ded_player_pos  = parameters.cfg, parameters.player1, parameters.player2, parameters.player3, parameters.player4, parameters.positions, parameters.active, parameters.speed, parameters.addSpeed, parameters.maxSpeed, parameters.ded_player_pos

        if speed < maxSpeed then
                addEvent(effect1,100,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        elseif speed >= maxSpeed then
                local player = {0, 0, 0, 0}
                local ded_player = getThingfromPos(ded_player_pos)
                doSendAnimatedText(ded_player_pos,"~~PENG~~",180)
                doCreatureAddHealth(ded_player.uid,-getCreatureHealth(ded_player.uid))
                for i = 1 ,4 do
                        player[i] = getThingfromPos(positions[i])
                        if player[i].itemid > 0 then
                                doCreatureSetNoMove(player[i].uid, 0)
                                doRemoveCondition(player[i].uid, CONDITION_INFIGHT)
				doTeleportThing(player[i].uid ,newPos)
                        end
                end
                speed = cfg.speed
                addSpeed = cfg.addSpeed
                setGlobalStorageValue(active,0)
        end
        return TRUE
end

function effect1(parameters)
        local cfg, positions, active, speed, addSpeed, maxSpeed, ded_player_pos  = parameters.cfg, parameters.positions, parameters.active, parameters.speed, parameters.addSpeed, parameters.maxSpeed, parameters.ded_player_pos

        if speed < maxSpeed then
                if math.random(1,25) <= 5 then
                        speed = speed+addSpeed
                end
                doSendMagicEffect(positions[1],39)
                ded_player_pos = positions[1]
                addEvent(effect2,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        else
                addEvent(system,100,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        end
        return TRUE
end

function effect2(parameters)
        local cfg, positions, active, speed, addSpeed, maxSpeed, ded_player_pos  = parameters.cfg, parameters.positions, parameters.active, parameters.speed, parameters.addSpeed, parameters.maxSpeed, parameters.ded_player_pos

        if speed < maxSpeed then
                if math.random(1,25) <= 5 then
                        speed = speed+addSpeed
                end
                doSendMagicEffect(positions[2],39)
                ded_player_pos =  positions[2]
                addEvent(effect3,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        else
                addEvent(system,100,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        end
        return TRUE
end

function effect3(parameters)
        local cfg, positions, active, speed, addSpeed, maxSpeed, ded_player_pos  = parameters.cfg, parameters.positions, parameters.active, parameters.speed, parameters.addSpeed, parameters.maxSpeed, parameters.ded_player_pos

        if speed < maxSpeed then
                if math.random(1,25) <= 5 then
                        speed = speed+addSpeed
                end
                doSendMagicEffect(positions[3],39)
                ded_player_pos =  positions[3]
                addEvent(effect4,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        else
                addEvent(system,100,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        end
        return TRUE
end

function effect4(parameters)
        local cfg, positions, active, speed, addSpeed, maxSpeed, ded_player_pos  = parameters.cfg, parameters.positions, parameters.active, parameters.speed, parameters.addSpeed, parameters.maxSpeed, parameters.ded_player_pos

        if speed < maxSpeed then
                if math.random(1,25) <= 5 then
                        speed = speed+addSpeed
                end
                doSendMagicEffect(positions[4],39)
                ded_player_pos =  positions[4]
                addEvent(effect1,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        else
                addEvent(system,100,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
        end
        return TRUE
end
 
Back
Top