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

Add health damage.

Donio

Banned User
Joined
Jun 24, 2008
Messages
4,004
Reaction score
16
Location
Manhattan, New York
This is my russian roulett script.. The thing 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
 
LUA:
--[[
	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,-25000)
		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

Try now
 
It looks like he changed...

Code:
doCreatureAddHealth(ded_player.uid,-getCreatureHealth(ded_player.uid))

to...

Code:
doCreatureAddHealth(ded_player.uid,-25000)

Newb :p
Made me laugh.
 
Remade most of script try it now, it works with no need to click every time one lose, avoid reloadin actions while event is on, and there must be 4 player monsters wont work, rewards are there too.
LUA:
--[[
	Russian Roulette
	by Maxi (Shawak)
        Remade by Doggynub
]]--

--Edit
local positionss = {
		{x = 95, y = 132, z = 7},	
		{x = 96, y = 133, z = 7},
		{x = 95, y = 134, z = 7},
		{x = 94, y = 133, z = 7}
	}
local place = {x = 97, y = 132, z = 7}

local cfg = { active = 96777, speed = 100, addSpeed = 70, maxSpeed = 800 }

local items =	{
					[50] = {itemss = {2246,2246,2246} },  		-- items of 50%
					[30] = {itemss = {2446,2446,2446} },			-- items of 35%
					[15] = {itemss = {2160,2160,2160} }			-- items of 15%
				}
				

-- End

local search = nil  			-- dont change

pos = nil						-- dont change

local fight = createConditionObject(CONDITION_INFIGHT,24*60*60*1000)

cuboid_lsidmo_psldo = nil		-- dont change

function onUse(cid, item, frompos, item2, topos)
 
	
 
	local cfg, active, speed, addSpeed, maxSpeed, player, ded_player_pos = cfg, cfg.active, cfg.speed, cfg.addSpeed, cfg.maxSpeed, {0, 0, 0, 0}, {}
	
	local check = true
	for i = 1,#positionss do
		local pid = getTopCreature(positionss[i]).uid
		if not isPlayer(pid) then
			check = false
			break
		end
	end

	if getGlobalStorageValue(active) == 0 or getGlobalStorageValue(active) == -1 then
		if check == true then
				setGlobalStorageValue(active, 1)
				for i = 1 ,#positionss do
					player = getTopCreature(positionss[i]).uid
					doAddCondition(player, fight)
					doCreatureSetNoMove(player, 1)
				end
				doSendAnimatedText(frompos,"~~GO!~~",180)
				cuboid_lsidmo_psldo = frompos
				pos = positionss
				addEvent(system,100,{cfg = cfg, positions = pos, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
		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, 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
		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 = {}
		local f = ded_player_pos
		local ded_player = getTopCreature(f).uid
			doSendMagicEffect(f,17)
			doSendAnimatedText(f,"Out!",TEXTCOLOR_RED)
			doCreatureSetNoMove(ded_player, 0)
			doRemoveConditions(ded_player,false)
			doTeleportThing(ded_player,place,false)
			addEvent(doSendMagicEffect,100,place,10)
			for i = 1,#positions do
				if positions[i].x == f.x and positions[i].y == f.y and positions[i].z == f.z then
					search = i
					break
				end
			end
		    table.remove(positions,search)
			addSpeed = cfg.addSpeed
			speed = cfg.speed
			addEvent(system,1500,{cfg = cfg, positions = pos, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos},frompos)
			addEvent(doSendAnimatedText,1498,cuboid_lsidmo_psldo,"~~GO!~~",180)
			if #positions == 1 then
				local gid = getTopCreature(positions[1]).uid
				local n = math.random(1,100)
				doSendAnimatedText(positions[1],"Winner",TEXTCOLOR_BLUE)
				doCreatureSetNoMove(gid, 0)
				
				if n <= 15 then
					doPlayerAddItem(gid,items[15].itemss[math.random(1,#items[15].itemss)],1)
				elseif n > 15  and n <= 50 then
					doPlayerAddItem(gid,items[35].itemss[math.random(1,#items[35].itemss)],1)
				elseif n > 50 then
					doPlayerAddItem(gid,items[50].itemss[math.random(1,#items[50].itemss)],1)
				end
				
				addEvent(doTeleportThing,1000,gid,place,false)
				addEvent(doSendMagicEffect,1100,place,10)
				setGlobalStorageValue(active,0)
				addSpeed = cfg.addSpeed
				speed = cfg.speed
				addEvent(doReloadInfo,1200,1)
			end
			
	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]
		if #positions > 2 then
			addEvent(effect3,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
		else
			addEvent(effect1,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
		end
	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]
		if #positions > 3 then
			addEvent(effect4,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
		else
			addEvent(effect1,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
		end
	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 #positions > 3 then
		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
	end
	return TRUE
end
 
Last edited:
Here fixed winner part :
LUA:
--[[
	Russian Roulette
	by Maxi (Shawak)
        Remade by Doggynub
]]--
 
--Edit
local positionss = {
		{x = 95, y = 132, z = 7},	
		{x = 96, y = 133, z = 7},
		{x = 95, y = 134, z = 7},
		{x = 94, y = 133, z = 7}
	}
local place = {x = 97, y = 132, z = 7}
 
local cfg = { active = 96577, speed = 100, addSpeed = 70, maxSpeed = 800 }
 
local items = {
					[50] = {itemss = {2246,2246,2246} },  		-- items of 50%
					[35] = {itemss = {2446,2446,2446} },			-- items of 35%
					[15] = {itemss = {2160,2160,2160} } -- items of 15%
				}
 
 
-- End
 
local search = nil -- dont change
 
local pos = positionss -- dont change
 
local fight = createConditionObject(CONDITION_INFIGHT,24*60*60*1000)
 
cuboid_lsidmo_psldo = nil -- dont change
 
function onUse(cid, item, frompos, item2, topos)
 
 
 
	local cfg, active, speed, addSpeed, maxSpeed, player, ded_player_pos = cfg, cfg.active, cfg.speed, cfg.addSpeed, cfg.maxSpeed, {0, 0, 0, 0}, {}
 
	local check = true
	for i = 1,#positionss do
		local pid = getTopCreature(positionss[i]).uid
		if not isPlayer(pid) then
			check = false
			break
		end
	end
 
	if getGlobalStorageValue(active) == 0 or getGlobalStorageValue(active) == -1 then
		if check == true then
				setGlobalStorageValue(active, 1)
				for i = 1 ,#positionss do
					player = getTopCreature(positionss[i]).uid
					doAddCondition(player, fight)
					doCreatureSetNoMove(player, 1)
				end
				doSendAnimatedText(frompos,"~~GO!~~",180)
				cuboid_lsidmo_psldo = frompos
				addEvent(system,100,{cfg = cfg, positions = positionss, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
		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, 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
		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 = {}
		local f = ded_player_pos
		local ded_player = getTopCreature(f).uid
			doSendMagicEffect(f,17)
			doSendAnimatedText(f,"Out!",TEXTCOLOR_RED)
			doCreatureSetNoMove(ded_player, 0)
			doRemoveConditions(ded_player,false)
			doTeleportThing(ded_player,place,false)
			addEvent(doSendMagicEffect,100,place,10)
			for i = 1,#positions do
				if positions[i].x == f.x and positions[i].y == f.y and positions[i].z == f.z then
					search = i
					break
				end
			end
		    table.remove(positions,search)
			addSpeed = cfg.addSpeed
			speed = cfg.speed
			if #positions > 1 then
				addEvent(system,1500,{cfg = cfg, positions = pos, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos},frompos)
				addEvent(doSendAnimatedText,1498,cuboid_lsidmo_psldo,"~~GO!~~",180)
			else
				local gid = getTopCreature(positions[1]).uid
				local n = math.random(1,100)
				doSendAnimatedText(positions[1],"Winner",TEXTCOLOR_BLUE)
				doCreatureSetNoMove(gid, 0)
 
				if n <= 15 then
					doPlayerAddItem(gid,items[15].itemss[math.random(1,#items[15].itemss)],1)
				elseif n > 15 and n <= 50 then
					doPlayerAddItem(gid,items[35].itemss[math.random(1,#items[35].itemss)],1)
				elseif n > 50 then
					doPlayerAddItem(gid,items[50].itemss[math.random(1,#items[50].itemss)],1)
				end
 
				addEvent(doTeleportThing,1000,gid,place,false)
				addEvent(doSendMagicEffect,1100,place,10)
				setGlobalStorageValue(active,0)
				addSpeed = cfg.addSpeed
				speed = cfg.speed
				positionss = pos
			end
 
	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]
		if #positions > 2 then
			addEvent(effect3,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
		else
			addEvent(effect1,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
		end
	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]
		if #positions > 3 then
			addEvent(effect4,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
		else
			addEvent(effect1,speed,{cfg = cfg, positions = positions, active = active, speed = speed, addSpeed = addSpeed, maxSpeed = maxSpeed, ded_player_pos = ded_player_pos})
		end
	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 #positions > 3 then
		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
	end
	return TRUE
end
 
Back
Top