Posted: Wed Nov 22, 2006 10:34 pm
you would have to write a whole knew script to track players joining and leaving the server.
Code: Select all
//*************************************************************************************************************
//*** death_water script
//*** modifed version of the MOHAA minefield
//*** modifed by Duncan Weir May 2002
//*** The player enters the water, and within 15 secs
//*** if he's still in the water he'll start to drown.
//
//*** This main thread is called by this script and should not be called by the
//*** level script itsself. The level script should call deathwater_setup
//*** syntax ------------------------------------
//*** deathwater <this>
// script_object -> trigger multiple
// targetname = deathwater
// #startdrowntime = set to number of seconds a player can be in the water before drowning starts // default 10
// #timetodrown = set to number of seconds a player takes to drown // default 10
//*************************************************************************************************************
deathwater local.index:
thread debugtext ("THREAD: deathwater = " + local.index)
if ($deathwater[local.index].startdrowntime == NIL)
local.startdrowntime = 10
else
local.startdrowntime = $deathwater[local.index].startdrowntime
if ($deathwater[local.index].timetodrown == NIL)
local.timetodrown = 10
else
local.timetodrown = $deathwater[local.index].timetodrown
local.radius = 40 // radius of the damage - only in local player area
thread debugtext (" Radius = " + local.radius)
local.damage = 100 / local.timetodrown // calculate how much damage per second
thread debugtext (" Damage = " + local.damage)
deathwater_loop:
thread debugtext "THREAD: deathwater_loop"
$deathwater[local.index] waittill trigger // wait till this field is triggered
local.sucker = parm.other // gets the player info
thread debugtext " deathwater triggered"
thread debugtext (" local.sucker = " + local.sucker)
wait ( local.startdrowntime ) // wait a set amount of time before starting to drown
deathwater_drown_loop:
if (local.sucker istouching $deathwater[local.index] == 1) // check player is still in the deathwater
{
thread debugtext " Player is drowning"
// local.spawn_drown = (local.sucker.targetname + "_drown")
// spawn animate/fx_mortar_water targetname local.spawn_mine
// local.spawn_drown = $(local.sucker.targetname + "_drown")
// local.spawn_drown.origin = local.sucker.origin
// local.spawn_drown anim start
// local.spawn_drown playsound grenade_exp_water
radiusdamage local.sucker.origin local.damage local.radius
wait 1 // wait 1 second
// local.spawn_drown remove //*** remove the effect
goto deathwater_drown_loop // go back and see if player is still drowning
}
goto deathwater_loop
thread debugtext ("END THREAD: deathwater = " + local.index)
end
//*************************************************
//*** setup the deathwater(s)
//*** the level scripts should call this thread
//*************************************************
deathwater_setup:
thread debugtext "THREAD: deathwater_setup"
if ($deathwater == NULL)
{
thread debugtext " There is no deathwater in the map!!!"
local.deathwaters = 0
goto deathwater_setup_end
}
else
local.deathwaters = $deathwater.size
thread debugtext (" There are " + local.deathwaters + " deathwaters in this map")
for (local.i = 1 ; local.i <= $deathwater.size ; local.i ++)
{
thread deathwater local.i
}
deathwater_setup_end:
thread debugtext "END THREAD: deathwater_setup"
end
// text only output if debug mode is turned on
debugtext local.text:
if (level.debug == 1)
println local.text
end