Posted: Tue Nov 30, 2004 2:02 am
i added the end though and i am kicked from the game
Code: Select all
bomb_thinker2:
level.bomb_defuse_time = 40 //tenths of a second
level.bomb_set_time = 50 //tenths of a second
level.bomb_tick_time = 15 //seconds
level.bomb_explosion_radius = 1054 //quake units
level.bomb_use_distance = 128 //quake units
level.bomb_damage = 200
level.bombusefov = 30
level.subtitleX = 100
level.subtitleY = 50
self.live = 0
if (self.target != NIL && self.target != NULL && $(self.target) != NULL)
{
self.target.collisionent = self.target.target
self.target notsolid
}
thread bomb_waittill_set2
end
bomb_waittill_set2:
self model items/pulse_explosive.tik
while ( $(self.trigger_name) )
{
self.trigger_name waittill trigger
local.player = parm.other
if (local.player.dmteam != allies)
{
goto bomb_waittill_set2
println "failed dmteam check" local.player.dmteam
}
local.counter = 0
while ( (Isalive local.player) && (local.player cansee self level.bombusefov level.bomb_use_distance) && (local.player.useheld == 1) && self.live == 0 )
{
if (local.counter == 0)
local.player stopwatch (level.bomb_set_time * .1)
local.counter++
wait 0.1
if (local.counter >= level.bomb_set_time)
{
iprintlnbold ( loc_convert_string "The Allies have planted a bomb!" )
if (level.planting_team == "allies")
self playsound dfr_objective_o
else
self playsound den_objective_o
thread bomb_waittill_defuse2
thread bomb_waittill_explode2
self.live = 1
end
}
}
if (local.counter > 0)
local.player stopwatch 0
}
end
bomb_waittill_defuse2:
while ( $(self.trigger_name) )
{
self.trigger_name waittill trigger
local.player = parm.other
if (local.player.dmteam != axis)
{
println "failed dmteam check" local.player.dmteam
goto bomb_waittill_defuse2
}
local.counter = 0
while ( (Isalive local.player) && (local.player cansee self level.bombusefov level.bomb_use_distance) && (local.player.useheld == 1) && self.live == 1 )
{
if (local.counter == 0)
local.player stopwatch (level.bomb_defuse_time * .1)
local.counter++
wait 0.1
if (local.counter >= level.bomb_defuse_time)
{
iprintlnbold ( loc_convert_string "The Allies bomb has been defused!" )
if (level.defusing_team == "allies")
self playsound dfr_diffused_d
else
self playsound den_diffused_d
thread bomb_waittill_set2 //start first thread again
self.live = 0
end
}
}
if (local.counter > 0)
local.player stopwatch 0
}
end
bomb_waittill_explode2:
self model items/explosive.tik
self playsound plantbomb
self loopsound bombtick
local.start_time = level.time
while (level.time < (local.start_time + level.bomb_tick_time) )
{
wait 0.1
if (self.live != 1)
{
self stoploopsound
end
}
if (level.time == (local.start_time + level.bomb_tick_time - 10) )
{
self stoploopsound
self loopsound final_countdown
}
}
self stoploopsound
thread bomb_explode2
end
bomb_explode2:
self.trigger_name remove
thread global/obj_dm.scr::jitter_large 0
if (self.exploder_set != NIL)
{
thread global/exploder.scr::explode self.exploder_set
}
if (self.explosion_fx != NIL)
self thread global/obj_dm.scr::spawn_fx self.explosion_fx
if (self.explosion_sound != NIL)
self playsound self.explosion_sound
if (self.target != NIL && self.target != NULL && self.target != "" && self.target.size == 1)
{
if (self.target.destroyed_model != NIL)
{
local.damaged = self.target thread spawn_damaged self.target.destroyed_model
}
if (self.exploder_set == NIL)
{
self.target remove
}
waitframe
}
radiusdamage self.origin level.bomb_damage level.bomb_explosion_radius
if (self.killarea != NIL)
{
self.killarea volumedamage 1000
}
self hide
self notsolid
self remove
$exploder2 remove
iprintlnbold "Subatomic energy destroyed.Earth is saved"
self.live = 0
level.allies_obj++
self.exploded = 1
wait 0.5
thread check_axis_bomb
end
check_axis_bomb:
while(1)
{
if (local.self.exploded == 1)
{
for(local.i=1;local.i<=$player.size;local.i++)
{
if ((isAlive $player[local.i]) && $player[local.i].dmteam=="axis")
{
}
if($player[local.i].dead == 0)
{
$player[local.i].dead = 1
}
}
}
}
thread prevent_player_spawn
end
prevent_player_spawn:
while(1)
{
if($player[local.i].dead == 1)
{
$player[local.i] takeall
$player[local.i] hide
$player[local.i] notsolid
$player[local.i] noclip
}
wait .1
}
end Code: Select all
check_axis_bomb:
while(1)
{
if (local.self.exploded == 1)
{
for(local.i=1;local.i<=$player.size;local.i++)
{
if ((isAlive $player[local.i]) && $player[local.i].dmteam=="axis")
{
}
if($player[local.i].dead == 0)
{
$player[local.i].dead = 1
}
}
}
wait .1
}
end
Code: Select all
^~^~^ Script Error: Field 'exploded' applied to NULL listener
if($player[local.i].dead == 1) (maps/obj/mp_stargate_objective_final_obj.scr, 1765)
if($player^
^~^~^ Script Error: Cannot cast 'NIL' to int
if (local.self.exploded == 1) (maps/obj/mp_stargate_objective_final_obj.scr, 1731)
if (local.self^
^~^~^ Script Error: Field 'exploded' applied to NULL listener
if($player[local.i].dead == 1) (maps/obj/mp_stargate_objective_final_obj.scr, 1765)
if($player^
^~^~^ Script Error: Cannot cast 'NIL' to int
if (local.self.exploded == 1) (maps/obj/mp_stargate_objective_final_obj.scr, 1731)
if (local.self^
^~^~^ Script Error: Field 'exploded' applied to NULL listener
if($player[local.i].dead == 1) (maps/obj/mp_stargate_objective_final_obj.scr, 1765)
if($player^
^~^~^ Script Error: Cannot cast 'NIL' to int
if (local.self.exploded == 1) (maps/obj/mp_stargate_objective_final_obj.scr, 1731)
if (local.self^
^~^~^ Script Error: Field 'exploded' applied to NULL listenerCode: Select all
exec global/exploder.scr
exec global/door_locked.scr::lock
Code: Select all
..............bla bla bla
self.live = 0
level.allies_obj++
$bomb2.exploded = 1
wait 0.5
end
check_axis_bomb:
while(1)
{
if ($bomb2.exploded == 1)
{
for(local.i=1;local.i<=$player.size;local.i++)
{
if ((isAlive $player[local.i]) && $player[local.i].dmteam=="axis")
{
}
if($player[local.i].dead == 0)
{
$player[local.i].dead = 1
}
}
}
wait .1
}
endCode: Select all
check_allies_bomb:
while(1)
{
if (local.bomb1.exploded == 1)
{
while(1)
{
for(local.i=1;local.i<=$player.size;local.i++)
{
if ((isAlive $player[local.i]) && $player[local.i].dmteam=="allies")
{
}
else
{
$player[local.i].dead = 1
}
}
}
}
}
end
Code: Select all
check_allies_bomb:
while(1)
{
if (local.bomb1.exploded == 1)
{
for(local.i=1;local.i<=$player.size;local.i++)
{
if($player[local.i].dmteam=="axis")
{
$player[local.i] waittill death
$player[local.i].dead = 1
}
}
}
}
end
Yep I forgot the wait .1.agentmad007 wrote:infinite loop i guess you forget a wait .1
never mind i think i give up the thing .....