• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

Russian roulet

Donio

Banned User
Joined
Jun 24, 2008
Messages
4,004
Reaction score
16
Location
Manhattan, New York
This is my russian roulett script.. The think here is that I want it to hit like 20k hp so the player gets killed.. but its on a pvp tile so he will only get tped to temple. Also when a player dies I dont want it to be "You need 4 players to play this game~" just so the game keeps going til there is only 1 player left =)

Code:
--[[
	Russian Roulette
	by Maxi (Shawak)
 
]]--
	local positions = {
		{x = 959, y = 1287, z = 6, stackpos = 253},
		{x = 960, y = 1288, z = 6, stackpos = 253},
		{x = 959, y = 1289, z = 6, stackpos = 253},
		{x = 958, y = 1288, z = 6, stackpos = 253}
	}
 
local fight = createConditionObject(CONDITION_INFIGHT,24*60*60*1000)
function onUse(cid, item, frompos, item2, topos)
 
	local cfg = { active = 9995, 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) == -1 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)
			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