Donio
Banned User
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