mirror of
https://github.com/ineedbots/iw4_bot_warfare.git
synced 2025-04-22 22:05:44 +00:00
flares and health
This commit is contained in:
parent
d5789913e7
commit
7aef080d94
@ -10,12 +10,30 @@
|
|||||||
- scr_helicopter_cobra_duration <float>
|
- scr_helicopter_cobra_duration <float>
|
||||||
40.0 - (default) the amount in seconds the helicopter will fly around for
|
40.0 - (default) the amount in seconds the helicopter will fly around for
|
||||||
|
|
||||||
|
- scr_helicopter_cobra_num_flares <int>
|
||||||
|
0 - (default) the number of flares on this helicopter
|
||||||
|
|
||||||
|
- scr_helicopter_cobra_health <int>
|
||||||
|
1500 - (default) the amount of health on this helicopter
|
||||||
|
|
||||||
- scr_helicopter_pavelow_duration <float>
|
- scr_helicopter_pavelow_duration <float>
|
||||||
60.0 - (default) the amount in seconds the helicopter will fly around for
|
60.0 - (default) the amount in seconds the helicopter will fly around for
|
||||||
|
|
||||||
|
- scr_helicopter_pavelow_num_flares <int>
|
||||||
|
1 - (default) the number of flares on this helicopter
|
||||||
|
|
||||||
|
- scr_helicopter_pavelow_health <int>
|
||||||
|
3000 - (default) the amount of health on this helicopter
|
||||||
|
|
||||||
- scr_helicopter_apache_duration <float>
|
- scr_helicopter_apache_duration <float>
|
||||||
40.0 - (default) the amount in seconds the helicopter will fly around for
|
40.0 - (default) the amount in seconds the helicopter will fly around for
|
||||||
|
|
||||||
|
- scr_helicopter_apache_num_flares <int>
|
||||||
|
1 - (default) the number of flares on this helicopter
|
||||||
|
|
||||||
|
- scr_helicopter_apache_health <int>
|
||||||
|
1500 - (default) the amount of health on this helicopter
|
||||||
|
|
||||||
Thanks: H3X1C, Emosewaj
|
Thanks: H3X1C, Emosewaj
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -59,11 +77,25 @@ init()
|
|||||||
setDvarIfUninitialized( "scr_helicopter_pavelow_duration", 60 );
|
setDvarIfUninitialized( "scr_helicopter_pavelow_duration", 60 );
|
||||||
setDvarIfUninitialized( "scr_helicopter_apache_duration", 40 );
|
setDvarIfUninitialized( "scr_helicopter_apache_duration", 40 );
|
||||||
|
|
||||||
|
setDvarIfUninitialized( "scr_helicopter_cobra_num_flares", 0 );
|
||||||
|
setDvarIfUninitialized( "scr_helicopter_cobra_health", 1500 );
|
||||||
|
setDvarIfUninitialized( "scr_helicopter_pavelow_num_flares", 1 );
|
||||||
|
setDvarIfUninitialized( "scr_helicopter_pavelow_health", 3000 );
|
||||||
|
setDvarIfUninitialized( "scr_helicopter_apache_num_flares", 1 );
|
||||||
|
setDvarIfUninitialized( "scr_helicopter_apache_health", 1500 );
|
||||||
|
|
||||||
level.helicopter_allowQueue = getDVarInt("scr_helicopter_allowQueue");
|
level.helicopter_allowQueue = getDVarInt("scr_helicopter_allowQueue");
|
||||||
level.cobra_duration = getDvarFloat( "scr_helicopter_cobra_duration" );
|
level.cobra_duration = getDvarFloat( "scr_helicopter_cobra_duration" );
|
||||||
level.pavelow_duration = getDvarFloat( "scr_helicopter_pavelow_duration" );
|
level.pavelow_duration = getDvarFloat( "scr_helicopter_pavelow_duration" );
|
||||||
level.apache_duration = getDvarFloat( "scr_helicopter_apache_duration" );
|
level.apache_duration = getDvarFloat( "scr_helicopter_apache_duration" );
|
||||||
|
|
||||||
|
level.cobra_flares = getDVarInt("scr_helicopter_cobra_num_flares");
|
||||||
|
level.cobra_health = getDVarInt("scr_helicopter_cobra_health");
|
||||||
|
level.pavelow_flares = getDVarInt("scr_helicopter_pavelow_num_flares");
|
||||||
|
level.pavelow_health = getDVarInt("scr_helicopter_pavelow_health");
|
||||||
|
level.apache_flares = getDVarInt("scr_helicopter_apache_num_flares");
|
||||||
|
level.apache_health = getDVarInt("scr_helicopter_apache_health");
|
||||||
|
|
||||||
// array of paths, each element is an array of start nodes that all leads to a single destination node
|
// array of paths, each element is an array of start nodes that all leads to a single destination node
|
||||||
level.heli_start_nodes = getEntArray( "heli_start", "targetname" );
|
level.heli_start_nodes = getEntArray( "heli_start", "targetname" );
|
||||||
assertEx( level.heli_start_nodes.size, "No \"heli_start\" nodes found in map!" );
|
assertEx( level.heli_start_nodes.size, "No \"heli_start\" nodes found in map!" );
|
||||||
@ -759,9 +791,11 @@ heli_think( lifeId, owner, startnode, heli_team, heliType )
|
|||||||
chopper.owner = owner;
|
chopper.owner = owner;
|
||||||
|
|
||||||
if ( heliType == "flares" )
|
if ( heliType == "flares" )
|
||||||
chopper.maxhealth = level.heli_maxhealth*2; // max health
|
chopper.maxhealth = level.pavelow_health;
|
||||||
|
else if ( heliType == "minigun" )
|
||||||
|
chopper.maxhealth = level.apache_health;
|
||||||
else
|
else
|
||||||
chopper.maxhealth = level.heli_maxhealth; // max health
|
chopper.maxhealth = level.cobra_health;
|
||||||
|
|
||||||
chopper.targeting_delay = level.heli_targeting_delay; // delay between per targeting scan - in seconds
|
chopper.targeting_delay = level.heli_targeting_delay; // delay between per targeting scan - in seconds
|
||||||
chopper.primaryTarget = undefined; // primary target ( player )
|
chopper.primaryTarget = undefined; // primary target ( player )
|
||||||
@ -769,8 +803,12 @@ heli_think( lifeId, owner, startnode, heli_team, heliType )
|
|||||||
chopper.attacker = undefined; // last player that shot the helicopter
|
chopper.attacker = undefined; // last player that shot the helicopter
|
||||||
chopper.currentstate = "ok"; // health state
|
chopper.currentstate = "ok"; // health state
|
||||||
|
|
||||||
if ( heliType == "flares" || heliType == "minigun" )
|
if ( heliType == "flares" )
|
||||||
chopper thread heli_flares_monitor();
|
chopper thread heli_flares_monitor(level.pavelow_flares);
|
||||||
|
else if ( heliType == "minigun" )
|
||||||
|
chopper thread heli_flares_monitor(level.apache_flares);
|
||||||
|
else
|
||||||
|
chopper thread heli_flares_monitor(level.cobra_flares);
|
||||||
|
|
||||||
// helicopter loop threads
|
// helicopter loop threads
|
||||||
chopper thread heli_leave_on_disconnect( owner );
|
chopper thread heli_leave_on_disconnect( owner );
|
||||||
@ -2220,26 +2258,35 @@ deployFlares()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
heli_flares_monitor()
|
heli_flares_monitor(numFlares)
|
||||||
{
|
{
|
||||||
level endon ( "game_ended" );
|
level endon ( "game_ended" );
|
||||||
|
|
||||||
for ( ;; )
|
for ( ;; )
|
||||||
{
|
{
|
||||||
|
if (!numFlares)
|
||||||
|
return;
|
||||||
|
|
||||||
level waittill ( "stinger_fired", player, missile, lockTarget );
|
level waittill ( "stinger_fired", player, missile, lockTarget );
|
||||||
|
|
||||||
if ( !IsDefined( lockTarget ) || (lockTarget != self) )
|
if ( !IsDefined( lockTarget ) || (lockTarget != self) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
missile endon ( "death" );
|
numFlares--;
|
||||||
|
self thread misguideRocket(missile);
|
||||||
self thread playFlareFx();
|
|
||||||
newTarget = self deployFlares();
|
|
||||||
missile Missile_SetTargetEnt( newTarget );
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
misguideRocket(missile)
|
||||||
|
{
|
||||||
|
level endon ( "game_ended" );
|
||||||
|
missile endon ( "death" );
|
||||||
|
|
||||||
|
self thread playFlareFx();
|
||||||
|
newTarget = self deployFlares();
|
||||||
|
missile Missile_SetTargetEnt( newTarget );
|
||||||
|
}
|
||||||
|
|
||||||
deleteAfterTime( delay )
|
deleteAfterTime( delay )
|
||||||
{
|
{
|
||||||
wait ( delay );
|
wait ( delay );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user