mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-08 01:47:50 -05:00
checked the remaining 6 gametypes scripts
ctf, dem, dom, hq, koth, and oneflag have all been checked.
This commit is contained in:
parent
20883d4bec
commit
dd94baef78
@ -5,15 +5,19 @@
|
|||||||
#include maps/mp/_scoreevents;
|
#include maps/mp/_scoreevents;
|
||||||
#include maps/mp/_popups;
|
#include maps/mp/_popups;
|
||||||
#include maps/mp/gametypes/_globallogic_utils;
|
#include maps/mp/gametypes/_globallogic_utils;
|
||||||
|
#include maps/mp/gametypes/_hud_message;
|
||||||
#include maps/mp/gametypes/_spawnlogic;
|
#include maps/mp/gametypes/_spawnlogic;
|
||||||
#include maps/mp/gametypes/_spawning;
|
#include maps/mp/gametypes/_spawning;
|
||||||
|
#include maps/mp/gametypes/_gameobjects;
|
||||||
#include maps/mp/gametypes/_globallogic_score;
|
#include maps/mp/gametypes/_globallogic_score;
|
||||||
#include maps/mp/teams/_teams;
|
#include maps/mp/teams/_teams;
|
||||||
#include maps/mp/gametypes/_globallogic_audio;
|
#include maps/mp/gametypes/_globallogic_audio;
|
||||||
|
#include maps/mp/gametypes/_callbacksetup;
|
||||||
|
#include maps/mp/gametypes/_globallogic;
|
||||||
#include maps/mp/gametypes/_hud_util;
|
#include maps/mp/gametypes/_hud_util;
|
||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
|
|
||||||
main()
|
main() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( getDvar( "mapname" ) == "mp_background" )
|
if ( getDvar( "mapname" ) == "mp_background" )
|
||||||
{
|
{
|
||||||
@ -80,7 +84,7 @@ main()
|
|||||||
maps/mp/gametypes/_globallogic_audio::registerdialoggroup( "ctf_flag_enemy", 0 );
|
maps/mp/gametypes/_globallogic_audio::registerdialoggroup( "ctf_flag_enemy", 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
onprecachegametype()
|
onprecachegametype() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
game[ "flag_dropped_sound" ] = "mp_war_objective_lost";
|
game[ "flag_dropped_sound" ] = "mp_war_objective_lost";
|
||||||
game[ "flag_recovered_sound" ] = "mp_war_objective_taken";
|
game[ "flag_recovered_sound" ] = "mp_war_objective_taken";
|
||||||
@ -122,15 +126,17 @@ onprecachegametype()
|
|||||||
game[ "strings" ][ "score_limit_reached" ] = &"MP_CAP_LIMIT_REACHED";
|
game[ "strings" ][ "score_limit_reached" ] = &"MP_CAP_LIMIT_REACHED";
|
||||||
}
|
}
|
||||||
|
|
||||||
onstartgametype()
|
onstartgametype() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( game[ "switchedsides" ] ) )
|
if ( !isDefined( game[ "switchedsides" ] ) )
|
||||||
{
|
{
|
||||||
game[ "switchedsides" ] = 0;
|
game[ "switchedsides" ] = 0;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
setdebugsideswitch( game[ "switchedsides" ] );
|
setdebugsideswitch( game[ "switchedsides" ] );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
setclientnamemode( "auto_change" );
|
setclientnamemode( "auto_change" );
|
||||||
maps/mp/gametypes/_globallogic_score::resetteamscores();
|
maps/mp/gametypes/_globallogic_score::resetteamscores();
|
||||||
setobjectivetext( "allies", &"OBJECTIVES_CTF" );
|
setobjectivetext( "allies", &"OBJECTIVES_CTF" );
|
||||||
@ -189,19 +195,15 @@ onstartgametype()
|
|||||||
level.spawn_axis = maps/mp/gametypes/_spawnlogic::getspawnpointarray( "mp_ctf_spawn_axis" );
|
level.spawn_axis = maps/mp/gametypes/_spawnlogic::getspawnpointarray( "mp_ctf_spawn_axis" );
|
||||||
level.spawn_allies = maps/mp/gametypes/_spawnlogic::getspawnpointarray( "mp_ctf_spawn_allies" );
|
level.spawn_allies = maps/mp/gametypes/_spawnlogic::getspawnpointarray( "mp_ctf_spawn_allies" );
|
||||||
level.spawn_start = [];
|
level.spawn_start = [];
|
||||||
_a256 = level.teams;
|
foreach ( team in level.teams )
|
||||||
_k256 = getFirstArrayKey( _a256 );
|
|
||||||
while ( isDefined( _k256 ) )
|
|
||||||
{
|
{
|
||||||
team = _a256[ _k256 ];
|
|
||||||
level.spawn_start[ team ] = maps/mp/gametypes/_spawnlogic::getspawnpointarray( "mp_ctf_spawn_" + team + "_start" );
|
level.spawn_start[ team ] = maps/mp/gametypes/_spawnlogic::getspawnpointarray( "mp_ctf_spawn_" + team + "_start" );
|
||||||
_k256 = getNextArrayKey( _a256, _k256 );
|
|
||||||
}
|
}
|
||||||
thread updategametypedvars();
|
thread updategametypedvars();
|
||||||
thread ctf();
|
thread ctf();
|
||||||
}
|
}
|
||||||
|
|
||||||
shouldplayovertimeround()
|
shouldplayovertimeround() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( game[ "overtime_round" ] ) )
|
if ( isDefined( game[ "overtime_round" ] ) )
|
||||||
{
|
{
|
||||||
@ -234,7 +236,7 @@ shouldplayovertimeround()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
minutesandsecondsstring( milliseconds )
|
minutesandsecondsstring( milliseconds ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
minutes = floor( milliseconds / 60000 );
|
minutes = floor( milliseconds / 60000 );
|
||||||
milliseconds -= minutes * 60000;
|
milliseconds -= minutes * 60000;
|
||||||
@ -249,7 +251,7 @@ minutesandsecondsstring( milliseconds )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setmatchscorehudelemforteam( team )
|
setmatchscorehudelemforteam( team ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( game[ "overtime_round" ] ) )
|
if ( !isDefined( game[ "overtime_round" ] ) )
|
||||||
{
|
{
|
||||||
@ -259,9 +261,7 @@ setmatchscorehudelemforteam( team )
|
|||||||
{
|
{
|
||||||
self settext( minutesandsecondsstring( game[ "ctf_overtime_best_time" ] ) );
|
self settext( minutesandsecondsstring( game[ "ctf_overtime_best_time" ] ) );
|
||||||
}
|
}
|
||||||
else
|
else if ( isDefined( game[ "ctf_overtime_first_winner" ] ) && game[ "ctf_overtime_first_winner" ] == team )
|
||||||
{
|
|
||||||
if ( isDefined( game[ "ctf_overtime_first_winner" ] ) && game[ "ctf_overtime_first_winner" ] == team )
|
|
||||||
{
|
{
|
||||||
self settext( minutesandsecondsstring( game[ "ctf_overtime_time_to_beat" ] ) );
|
self settext( minutesandsecondsstring( game[ "ctf_overtime_time_to_beat" ] ) );
|
||||||
return;
|
return;
|
||||||
@ -270,10 +270,9 @@ setmatchscorehudelemforteam( team )
|
|||||||
{
|
{
|
||||||
self settext( &"" );
|
self settext( &"" );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onroundswitch()
|
onroundswitch() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( game[ "switchedsides" ] ) )
|
if ( !isDefined( game[ "switchedsides" ] ) )
|
||||||
{
|
{
|
||||||
@ -283,7 +282,7 @@ onroundswitch()
|
|||||||
game[ "switchedsides" ] = !game[ "switchedsides" ];
|
game[ "switchedsides" ] = !game[ "switchedsides" ];
|
||||||
}
|
}
|
||||||
|
|
||||||
onendgame( winningteam )
|
onendgame( winningteam ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( game[ "overtime_round" ] ) )
|
if ( isDefined( game[ "overtime_round" ] ) )
|
||||||
{
|
{
|
||||||
@ -294,7 +293,6 @@ onendgame( winningteam )
|
|||||||
game[ "ctf_overtime_first_winner" ] = winningteam;
|
game[ "ctf_overtime_first_winner" ] = winningteam;
|
||||||
game[ "ctf_overtime_time_to_beat" ] = maps/mp/gametypes/_globallogic_utils::gettimepassed();
|
game[ "ctf_overtime_time_to_beat" ] = maps/mp/gametypes/_globallogic_utils::gettimepassed();
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -304,7 +302,7 @@ onendgame( winningteam )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onroundendgame( winningteam )
|
onroundendgame( winningteam ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( game[ "overtime_round" ] ) )
|
if ( isDefined( game[ "overtime_round" ] ) )
|
||||||
{
|
{
|
||||||
@ -325,24 +323,17 @@ onroundendgame( winningteam )
|
|||||||
level.enddefeatreasontext = &"MPUI_CTF_OVERTIME_DEFEAT_DID_NOT_DEFEND";
|
level.enddefeatreasontext = &"MPUI_CTF_OVERTIME_DEFEAT_DID_NOT_DEFEND";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if ( !isDefined( winningteam ) || winningteam == "tie" )
|
||||||
{
|
|
||||||
if ( !isDefined( winningteam ) || winningteam == "tie" )
|
|
||||||
{
|
{
|
||||||
return "tie";
|
return "tie";
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return winningteam;
|
return winningteam;
|
||||||
}
|
}
|
||||||
if ( level.roundscorecarry == 0 )
|
if ( level.roundscorecarry == 0 )
|
||||||
{
|
{
|
||||||
_a402 = level.teams;
|
foreach ( team in level.teams )
|
||||||
_k402 = getFirstArrayKey( _a402 );
|
|
||||||
while ( isDefined( _k402 ) )
|
|
||||||
{
|
{
|
||||||
team = _a402[ _k402 ];
|
|
||||||
[[ level._setteamscore ]]( team, game[ "roundswon" ][ team ] );
|
[[ level._setteamscore ]]( team, game[ "roundswon" ][ team ] );
|
||||||
_k402 = getNextArrayKey( _a402, _k402 );
|
|
||||||
}
|
}
|
||||||
winner = maps/mp/gametypes/_globallogic::determineteamwinnerbygamestat( "roundswon" );
|
winner = maps/mp/gametypes/_globallogic::determineteamwinnerbygamestat( "roundswon" );
|
||||||
}
|
}
|
||||||
@ -353,7 +344,7 @@ onroundendgame( winningteam )
|
|||||||
return winner;
|
return winner;
|
||||||
}
|
}
|
||||||
|
|
||||||
onspawnplayerunified()
|
onspawnplayerunified() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self.isflagcarrier = 0;
|
self.isflagcarrier = 0;
|
||||||
self.flagcarried = undefined;
|
self.flagcarried = undefined;
|
||||||
@ -361,7 +352,7 @@ onspawnplayerunified()
|
|||||||
maps/mp/gametypes/_spawning::onspawnplayer_unified();
|
maps/mp/gametypes/_spawning::onspawnplayer_unified();
|
||||||
}
|
}
|
||||||
|
|
||||||
onspawnplayer( predictedspawn )
|
onspawnplayer( predictedspawn ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self.isflagcarrier = 0;
|
self.isflagcarrier = 0;
|
||||||
self.flagcarried = undefined;
|
self.flagcarried = undefined;
|
||||||
@ -383,9 +374,11 @@ onspawnplayer( predictedspawn )
|
|||||||
{
|
{
|
||||||
spawnpoint = maps/mp/gametypes/_spawnlogic::getspawnpoint_nearteam( level.spawn_allies );
|
spawnpoint = maps/mp/gametypes/_spawnlogic::getspawnpoint_nearteam( level.spawn_allies );
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( isDefined( spawnpoint ) );
|
assert( isDefined( spawnpoint ) );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
if ( predictedspawn )
|
if ( predictedspawn )
|
||||||
{
|
{
|
||||||
self predictspawnpoint( spawnpoint.origin, spawnpoint.angles );
|
self predictspawnpoint( spawnpoint.origin, spawnpoint.angles );
|
||||||
@ -396,7 +389,7 @@ onspawnplayer( predictedspawn )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
updategametypedvars()
|
updategametypedvars() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level.flagcapturetime = getgametypesetting( "captureTime" );
|
level.flagcapturetime = getgametypesetting( "captureTime" );
|
||||||
level.flagtouchreturntime = getgametypesetting( "defuseTime" );
|
level.flagtouchreturntime = getgametypesetting( "defuseTime" );
|
||||||
@ -417,7 +410,7 @@ updategametypedvars()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
createflag( trigger )
|
createflag( trigger ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( trigger.target ) )
|
if ( isDefined( trigger.target ) )
|
||||||
{
|
{
|
||||||
@ -466,7 +459,7 @@ createflag( trigger )
|
|||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
createflagzone( trigger )
|
createflagzone( trigger ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
visuals = [];
|
visuals = [];
|
||||||
entityteam = trigger.script_team;
|
entityteam = trigger.script_team;
|
||||||
@ -474,7 +467,7 @@ createflagzone( trigger )
|
|||||||
{
|
{
|
||||||
entityteam = getotherteam( entityteam );
|
entityteam = getotherteam( entityteam );
|
||||||
}
|
}
|
||||||
flagzone = maps/mp/gametypes/_gameobjects::createuseobject( entityteam, trigger, visuals, ( 0, 0, -1 ), istring( entityteam + "_base" ) );
|
flagzone = maps/mp/gametypes/_gameobjects::createuseobject( entityteam, trigger, visuals, ( 0, 0, 0 ), istring( entityteam + "_base" ) );
|
||||||
flagzone maps/mp/gametypes/_gameobjects::allowuse( "friendly" );
|
flagzone maps/mp/gametypes/_gameobjects::allowuse( "friendly" );
|
||||||
flagzone maps/mp/gametypes/_gameobjects::setusetime( 0 );
|
flagzone maps/mp/gametypes/_gameobjects::setusetime( 0 );
|
||||||
flagzone maps/mp/gametypes/_gameobjects::setusetext( &"MP_CAPTURING_FLAG" );
|
flagzone maps/mp/gametypes/_gameobjects::setusetext( &"MP_CAPTURING_FLAG" );
|
||||||
@ -485,7 +478,7 @@ createflagzone( trigger )
|
|||||||
flag = level.teamflags[ entityteam ];
|
flag = level.teamflags[ entityteam ];
|
||||||
flag.flagbase = flagzone;
|
flag.flagbase = flagzone;
|
||||||
flagzone.flag = flag;
|
flagzone.flag = flag;
|
||||||
tracestart = trigger.origin + vectorScale( ( 0, 0, -1 ), 32 );
|
tracestart = trigger.origin + vectorScale( ( 0, 0, 1 ), 32 );
|
||||||
traceend = trigger.origin + vectorScale( ( 0, 0, -1 ), 32 );
|
traceend = trigger.origin + vectorScale( ( 0, 0, -1 ), 32 );
|
||||||
trace = bullettrace( tracestart, traceend, 0, undefined );
|
trace = bullettrace( tracestart, traceend, 0, undefined );
|
||||||
upangles = vectorToAngle( trace[ "normal" ] );
|
upangles = vectorToAngle( trace[ "normal" ] );
|
||||||
@ -497,7 +490,7 @@ createflagzone( trigger )
|
|||||||
return flagzone;
|
return flagzone;
|
||||||
}
|
}
|
||||||
|
|
||||||
createflaghint( team, origin )
|
createflaghint( team, origin ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
radius = 128;
|
radius = 128;
|
||||||
height = 64;
|
height = 64;
|
||||||
@ -509,7 +502,7 @@ createflaghint( team, origin )
|
|||||||
return trigger;
|
return trigger;
|
||||||
}
|
}
|
||||||
|
|
||||||
ctf()
|
ctf() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
level.flags = [];
|
level.flags = [];
|
||||||
level.teamflags = [];
|
level.teamflags = [];
|
||||||
@ -549,31 +542,32 @@ ctf()
|
|||||||
flag_triggers = getentarray( "ctf_flag_pickup_trig", "targetname" );
|
flag_triggers = getentarray( "ctf_flag_pickup_trig", "targetname" );
|
||||||
if ( !isDefined( flag_triggers ) || flag_triggers.size != 2 )
|
if ( !isDefined( flag_triggers ) || flag_triggers.size != 2 )
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
maps/mp/_utility::error( "Not enough ctf_flag_pickup_trig triggers found in map. Need two." );
|
maps/mp/_utility::error( "Not enough ctf_flag_pickup_trig triggers found in map. Need two." );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
index = 0;
|
for ( index = 0; index < flag_triggers.size; index++ )
|
||||||
while ( index < flag_triggers.size )
|
|
||||||
{
|
{
|
||||||
trigger = flag_triggers[ index ];
|
trigger = flag_triggers[ index ];
|
||||||
flag = createflag( trigger );
|
flag = createflag( trigger );
|
||||||
team = flag maps/mp/gametypes/_gameobjects::getownerteam();
|
team = flag maps/mp/gametypes/_gameobjects::getownerteam();
|
||||||
level.flags[ level.flags.size ] = flag;
|
level.flags[ level.flags.size ] = flag;
|
||||||
level.teamflags[ team ] = flag;
|
level.teamflags[ team ] = flag;
|
||||||
index++;
|
|
||||||
}
|
}
|
||||||
flag_zones = getentarray( "ctf_flag_zone_trig", "targetname" );
|
flag_zones = getentarray( "ctf_flag_zone_trig", "targetname" );
|
||||||
if ( !isDefined( flag_zones ) || flag_zones.size != 2 )
|
if ( !isDefined( flag_zones ) || flag_zones.size != 2 )
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
maps/mp/_utility::error( "Not enough ctf_flag_zone_trig triggers found in map. Need two." );
|
maps/mp/_utility::error( "Not enough ctf_flag_zone_trig triggers found in map. Need two." );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
index = 0;
|
for ( index = 0; index < flag_zones.size; index++ )
|
||||||
while ( index < flag_zones.size )
|
|
||||||
{
|
{
|
||||||
trigger = flag_zones[ index ];
|
trigger = flag_zones[ index ];
|
||||||
flagzone = createflagzone( trigger );
|
flagzone = createflagzone( trigger );
|
||||||
@ -583,19 +577,18 @@ ctf()
|
|||||||
level.flaghints[ team ] = createflaghint( team, trigger.origin );
|
level.flaghints[ team ] = createflaghint( team, trigger.origin );
|
||||||
facing_angle = getDvarInt( "scr_ctf_spawnPointFacingAngle" );
|
facing_angle = getDvarInt( "scr_ctf_spawnPointFacingAngle" );
|
||||||
setspawnpointsbaseweight( getotherteamsmask( team ), trigger.origin, facing_angle, level.spawnsystem.objective_facing_bonus );
|
setspawnpointsbaseweight( getotherteamsmask( team ), trigger.origin, facing_angle, level.spawnsystem.objective_facing_bonus );
|
||||||
index++;
|
|
||||||
}
|
}
|
||||||
createreturnmessageelems();
|
createreturnmessageelems();
|
||||||
}
|
}
|
||||||
|
|
||||||
ctf_icon_hide()
|
ctf_icon_hide() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level waittill( "game_ended" );
|
level waittill( "game_ended" );
|
||||||
level.teamflags[ "allies" ] maps/mp/gametypes/_gameobjects::setvisibleteam( "none" );
|
level.teamflags[ "allies" ] maps/mp/gametypes/_gameobjects::setvisibleteam( "none" );
|
||||||
level.teamflags[ "axis" ] maps/mp/gametypes/_gameobjects::setvisibleteam( "none" );
|
level.teamflags[ "axis" ] maps/mp/gametypes/_gameobjects::setvisibleteam( "none" );
|
||||||
}
|
}
|
||||||
|
|
||||||
removeinfluencers()
|
removeinfluencers() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( self.spawn_influencer_enemy_carrier ) )
|
if ( isDefined( self.spawn_influencer_enemy_carrier ) )
|
||||||
{
|
{
|
||||||
@ -614,7 +607,7 @@ removeinfluencers()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ondrop( player )
|
ondrop( player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( player ) )
|
if ( isDefined( player ) )
|
||||||
{
|
{
|
||||||
@ -693,7 +686,7 @@ ondrop( player )
|
|||||||
self.spawn_influencer_dropped = addsphereinfluencer( level.spawnsystem.einfluencer_type_game_mode, flag_origin, ss.ctf_dropped_influencer_radius, ss.ctf_dropped_influencer_score, player_team_mask | enemy_team_mask, "ctf_flag_dropped,r,s", maps/mp/gametypes/_spawning::get_score_curve_index( ss.ctf_dropped_influencer_score_curve ), level.idleflagreturntime, self.trigger );
|
self.spawn_influencer_dropped = addsphereinfluencer( level.spawnsystem.einfluencer_type_game_mode, flag_origin, ss.ctf_dropped_influencer_radius, ss.ctf_dropped_influencer_score, player_team_mask | enemy_team_mask, "ctf_flag_dropped,r,s", maps/mp/gametypes/_spawning::get_score_curve_index( ss.ctf_dropped_influencer_score_curve ), level.idleflagreturntime, self.trigger );
|
||||||
}
|
}
|
||||||
|
|
||||||
onpickup( player )
|
onpickup( player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
carrierkilledby = self.carrierkilledby;
|
carrierkilledby = self.carrierkilledby;
|
||||||
self.carrierkilledby = undefined;
|
self.carrierkilledby = undefined;
|
||||||
@ -792,17 +785,19 @@ onpickup( player )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onpickupmusicstate( player )
|
onpickupmusicstate( player ) //checked changed at own discretion
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
wait 6;
|
wait 6;
|
||||||
if ( player.isflagcarrier )
|
if (player.isFlagCarrier)
|
||||||
{
|
{
|
||||||
|
//imported from bo1 ctf.gsc
|
||||||
|
player thread maps\mp\gametypes\_globallogic_audio::set_music_on_player( "SUSPENSE", false, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ishome()
|
ishome() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( self.carrier ) )
|
if ( isDefined( self.carrier ) )
|
||||||
{
|
{
|
||||||
@ -815,7 +810,7 @@ ishome()
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
returnflag()
|
returnflag() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
team = self maps/mp/gametypes/_gameobjects::getownerteam();
|
team = self maps/mp/gametypes/_gameobjects::getownerteam();
|
||||||
otherteam = getotherteam( team );
|
otherteam = getotherteam( team );
|
||||||
@ -838,7 +833,7 @@ returnflag()
|
|||||||
maps/mp/gametypes/_globallogic_audio::leaderdialog( "theyreturn_flag", otherteam, "ctf_flag" );
|
maps/mp/gametypes/_globallogic_audio::leaderdialog( "theyreturn_flag", otherteam, "ctf_flag" );
|
||||||
}
|
}
|
||||||
|
|
||||||
oncapture( player )
|
oncapture( player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
team = player.pers[ "team" ];
|
team = player.pers[ "team" ];
|
||||||
enemyteam = getotherteam( team );
|
enemyteam = getotherteam( team );
|
||||||
@ -883,13 +878,13 @@ oncapture( player )
|
|||||||
flag removeinfluencers();
|
flag removeinfluencers();
|
||||||
}
|
}
|
||||||
|
|
||||||
giveflagcapturexp( player )
|
giveflagcapturexp( player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
maps/mp/_scoreevents::processscoreevent( "flag_capture", player );
|
maps/mp/_scoreevents::processscoreevent( "flag_capture", player );
|
||||||
player recordgameevent( "capture" );
|
player recordgameevent( "capture" );
|
||||||
}
|
}
|
||||||
|
|
||||||
onreset()
|
onreset() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
update_hints();
|
update_hints();
|
||||||
team = self maps/mp/gametypes/_gameobjects::getownerteam();
|
team = self maps/mp/gametypes/_gameobjects::getownerteam();
|
||||||
@ -908,7 +903,7 @@ onreset()
|
|||||||
self clearreturnflaghudelems();
|
self clearreturnflaghudelems();
|
||||||
}
|
}
|
||||||
|
|
||||||
getotherflag( flag )
|
getotherflag( flag ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( flag == level.flags[ 0 ] )
|
if ( flag == level.flags[ 0 ] )
|
||||||
{
|
{
|
||||||
@ -917,12 +912,11 @@ getotherflag( flag )
|
|||||||
return level.flags[ 0 ];
|
return level.flags[ 0 ];
|
||||||
}
|
}
|
||||||
|
|
||||||
onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shitloc, psoffsettime, deathanimduration )
|
onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shitloc, psoffsettime, deathanimduration ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
while ( isDefined( attacker ) && isplayer( attacker ) )
|
if ( isDefined( attacker ) && isplayer( attacker ) )
|
||||||
{
|
{
|
||||||
index = 0;
|
for ( index = 0; index < level.flags.size; index++ )
|
||||||
while ( index < level.flags.size )
|
|
||||||
{
|
{
|
||||||
flagteam = "invalidTeam";
|
flagteam = "invalidTeam";
|
||||||
inflagzone = 0;
|
inflagzone = 0;
|
||||||
@ -959,7 +953,6 @@ onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shi
|
|||||||
if ( level.flags[ index ].ownerteam == attacker.pers[ "team" ] )
|
if ( level.flags[ index ].ownerteam == attacker.pers[ "team" ] )
|
||||||
{
|
{
|
||||||
defendedflag = 1;
|
defendedflag = 1;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -973,7 +966,6 @@ onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shi
|
|||||||
if ( level.flags[ index ].ownerteam == attacker.pers[ "team" ] )
|
if ( level.flags[ index ].ownerteam == attacker.pers[ "team" ] )
|
||||||
{
|
{
|
||||||
defendedflag = 1;
|
defendedflag = 1;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1016,19 +1008,17 @@ onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shi
|
|||||||
self recordkillmodifier( "defending" );
|
self recordkillmodifier( "defending" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
index++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( !isDefined( self.isflagcarrier ) || !self.isflagcarrier )
|
else if ( !isDefined( self.isflagcarrier ) || !self.isflagcarrier )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ( isDefined( attacker ) && isplayer( attacker ) && attacker.pers[ "team" ] != self.pers[ "team" ] )
|
if ( isDefined( attacker ) && isplayer( attacker ) && attacker.pers[ "team" ] != self.pers[ "team" ] )
|
||||||
{
|
{
|
||||||
while ( isDefined( self.flagcarried ) )
|
if ( isDefined( self.flagcarried ) )
|
||||||
{
|
{
|
||||||
index = 0;
|
for ( index = 0; index < level.flags.size; index++ )
|
||||||
while ( index < level.flags.size )
|
|
||||||
{
|
{
|
||||||
currentflag = level.flags[ index ];
|
currentflag = level.flags[ index ];
|
||||||
if ( currentflag.ownerteam == self.team )
|
if ( currentflag.ownerteam == self.team )
|
||||||
@ -1043,10 +1033,6 @@ onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
index++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
attacker recordgameevent( "kill_carrier" );
|
attacker recordgameevent( "kill_carrier" );
|
||||||
@ -1054,7 +1040,7 @@ onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
createreturnmessageelems()
|
createreturnmessageelems() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level.returnmessageelems = [];
|
level.returnmessageelems = [];
|
||||||
level.returnmessageelems[ "allies" ][ "axis" ] = createservertimer( "objective", 1,4, "allies" );
|
level.returnmessageelems[ "allies" ][ "axis" ] = createservertimer( "objective", 1,4, "allies" );
|
||||||
@ -1079,7 +1065,7 @@ createreturnmessageelems()
|
|||||||
level.returnmessageelems[ "axis" ][ "axis" ].archived = 0;
|
level.returnmessageelems[ "axis" ][ "axis" ].archived = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
returnflagaftertimemsg( time )
|
returnflagaftertimemsg( time ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( level.touchreturn || level.idleflagreturntime == 0 )
|
if ( level.touchreturn || level.idleflagreturntime == 0 )
|
||||||
{
|
{
|
||||||
@ -1096,19 +1082,23 @@ returnflagaftertimemsg( time )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
returnflaghudelems( time )
|
returnflaghudelems( time ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "picked_up" );
|
self endon( "picked_up" );
|
||||||
level endon( "game_ended" );
|
level endon( "game_ended" );
|
||||||
ownerteam = self maps/mp/gametypes/_gameobjects::getownerteam();
|
ownerteam = self maps/mp/gametypes/_gameobjects::getownerteam();
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( !level.returnmessageelems[ "axis" ][ ownerteam ].alpha );
|
assert( !level.returnmessageelems[ "axis" ][ ownerteam ].alpha );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
level.returnmessageelems[ "axis" ][ ownerteam ].alpha = 1;
|
level.returnmessageelems[ "axis" ][ ownerteam ].alpha = 1;
|
||||||
level.returnmessageelems[ "axis" ][ ownerteam ] settimer( time );
|
level.returnmessageelems[ "axis" ][ ownerteam ] settimer( time );
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( !level.returnmessageelems[ "allies" ][ ownerteam ].alpha );
|
assert( !level.returnmessageelems[ "allies" ][ ownerteam ].alpha );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
level.returnmessageelems[ "allies" ][ ownerteam ].alpha = 1;
|
level.returnmessageelems[ "allies" ][ ownerteam ].alpha = 1;
|
||||||
level.returnmessageelems[ "allies" ][ ownerteam ] settimer( time );
|
level.returnmessageelems[ "allies" ][ ownerteam ] settimer( time );
|
||||||
if ( time <= 0 )
|
if ( time <= 0 )
|
||||||
@ -1122,16 +1112,16 @@ returnflaghudelems( time )
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
clearreturnflaghudelems()
|
clearreturnflaghudelems() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
ownerteam = self maps/mp/gametypes/_gameobjects::getownerteam();
|
ownerteam = self maps/mp/gametypes/_gameobjects::getownerteam();
|
||||||
level.returnmessageelems[ "allies" ][ ownerteam ].alpha = 0;
|
level.returnmessageelems[ "allies" ][ ownerteam ].alpha = 0;
|
||||||
level.returnmessageelems[ "axis" ][ ownerteam ].alpha = 0;
|
level.returnmessageelems[ "axis" ][ ownerteam ].alpha = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
resetflagbaseeffect()
|
resetflagbaseeffect() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
wait 0,1;
|
wait 0.1;
|
||||||
if ( isDefined( self.baseeffect ) )
|
if ( isDefined( self.baseeffect ) )
|
||||||
{
|
{
|
||||||
self.baseeffect delete();
|
self.baseeffect delete();
|
||||||
@ -1146,7 +1136,7 @@ resetflagbaseeffect()
|
|||||||
triggerfx( self.baseeffect );
|
triggerfx( self.baseeffect );
|
||||||
}
|
}
|
||||||
|
|
||||||
turn_on()
|
turn_on() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( level.hardcoremode )
|
if ( level.hardcoremode )
|
||||||
{
|
{
|
||||||
@ -1155,12 +1145,12 @@ turn_on()
|
|||||||
self.origin = self.original_origin;
|
self.origin = self.original_origin;
|
||||||
}
|
}
|
||||||
|
|
||||||
turn_off()
|
turn_off() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self.origin = ( self.original_origin[ 0 ], self.original_origin[ 1 ], self.original_origin[ 2 ] - 10000 );
|
self.origin = ( self.original_origin[ 0 ], self.original_origin[ 1 ], self.original_origin[ 2 ] - 10000 );
|
||||||
}
|
}
|
||||||
|
|
||||||
update_hints()
|
update_hints() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
allied_flag = level.teamflags[ "allies" ];
|
allied_flag = level.teamflags[ "allies" ];
|
||||||
axis_flag = level.teamflags[ "axis" ];
|
axis_flag = level.teamflags[ "axis" ];
|
||||||
@ -1186,7 +1176,7 @@ update_hints()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
claim_trigger( trigger )
|
claim_trigger( trigger ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self clientclaimtrigger( trigger );
|
self clientclaimtrigger( trigger );
|
||||||
@ -1194,7 +1184,7 @@ claim_trigger( trigger )
|
|||||||
self clientreleasetrigger( trigger );
|
self clientreleasetrigger( trigger );
|
||||||
}
|
}
|
||||||
|
|
||||||
createflagspawninfluencer( entityteam )
|
createflagspawninfluencer( entityteam ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
ctf_friendly_base_influencer_score = level.spawnsystem.ctf_friendly_base_influencer_score;
|
ctf_friendly_base_influencer_score = level.spawnsystem.ctf_friendly_base_influencer_score;
|
||||||
ctf_friendly_base_influencer_score_curve = level.spawnsystem.ctf_friendly_base_influencer_score_curve;
|
ctf_friendly_base_influencer_score_curve = level.spawnsystem.ctf_friendly_base_influencer_score_curve;
|
||||||
@ -1209,7 +1199,7 @@ createflagspawninfluencer( entityteam )
|
|||||||
self.spawn_influencer_enemy = addsphereinfluencer( level.spawnsystem.einfluencer_type_game_mode, self.trigger.origin, ctf_enemy_base_influencer_radius, ctf_enemy_base_influencer_score, other_team_mask, "ctf_enemy_base,r,s", maps/mp/gametypes/_spawning::get_score_curve_index( ctf_enemy_base_influencer_score_curve ) );
|
self.spawn_influencer_enemy = addsphereinfluencer( level.spawnsystem.einfluencer_type_game_mode, self.trigger.origin, ctf_enemy_base_influencer_radius, ctf_enemy_base_influencer_score, other_team_mask, "ctf_enemy_base,r,s", maps/mp/gametypes/_spawning::get_score_curve_index( ctf_enemy_base_influencer_score_curve ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
ctf_gamemodespawndvars( reset_dvars )
|
ctf_gamemodespawndvars( reset_dvars ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
ss = level.spawnsystem;
|
ss = level.spawnsystem;
|
||||||
ss.ctf_friendly_base_influencer_score = set_dvar_float_if_unset( "scr_spawn_ctf_friendly_base_influencer_score", "0", reset_dvars );
|
ss.ctf_friendly_base_influencer_score = set_dvar_float_if_unset( "scr_spawn_ctf_friendly_base_influencer_score", "0", reset_dvars );
|
||||||
@ -1229,7 +1219,7 @@ ctf_gamemodespawndvars( reset_dvars )
|
|||||||
ss.ctf_dropped_influencer_radius = set_dvar_float_if_unset( "scr_spawn_ctf_dropped_influencer_radius", "" + ( 10 * get_player_height() ), reset_dvars );
|
ss.ctf_dropped_influencer_radius = set_dvar_float_if_unset( "scr_spawn_ctf_dropped_influencer_radius", "" + ( 10 * get_player_height() ), reset_dvars );
|
||||||
}
|
}
|
||||||
|
|
||||||
ctf_getteamkillpenalty( einflictor, attacker, smeansofdeath, sweapon )
|
ctf_getteamkillpenalty( einflictor, attacker, smeansofdeath, sweapon ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
teamkill_penalty = maps/mp/gametypes/_globallogic_defaults::default_getteamkillpenalty( einflictor, attacker, smeansofdeath, sweapon );
|
teamkill_penalty = maps/mp/gametypes/_globallogic_defaults::default_getteamkillpenalty( einflictor, attacker, smeansofdeath, sweapon );
|
||||||
if ( isDefined( self.isflagcarrier ) && self.isflagcarrier )
|
if ( isDefined( self.isflagcarrier ) && self.isflagcarrier )
|
||||||
@ -1239,7 +1229,7 @@ ctf_getteamkillpenalty( einflictor, attacker, smeansofdeath, sweapon )
|
|||||||
return teamkill_penalty;
|
return teamkill_penalty;
|
||||||
}
|
}
|
||||||
|
|
||||||
ctf_getteamkillscore( einflictor, attacker, smeansofdeath, sweapon )
|
ctf_getteamkillscore( einflictor, attacker, smeansofdeath, sweapon ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
teamkill_score = maps/mp/gametypes/_rank::getscoreinfovalue( "kill" );
|
teamkill_score = maps/mp/gametypes/_rank::getscoreinfovalue( "kill" );
|
||||||
if ( isDefined( self.isflagcarrier ) && self.isflagcarrier )
|
if ( isDefined( self.isflagcarrier ) && self.isflagcarrier )
|
||||||
@ -1248,3 +1238,5 @@ ctf_getteamkillscore( einflictor, attacker, smeansofdeath, sweapon )
|
|||||||
}
|
}
|
||||||
return int( teamkill_score );
|
return int( teamkill_score );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,12 +11,17 @@
|
|||||||
#include maps/mp/_medals;
|
#include maps/mp/_medals;
|
||||||
#include maps/mp/gametypes/_spawnlogic;
|
#include maps/mp/gametypes/_spawnlogic;
|
||||||
#include maps/mp/gametypes/_spawning;
|
#include maps/mp/gametypes/_spawning;
|
||||||
|
#include maps/mp/gametypes/_gameobjects;
|
||||||
#include maps/mp/gametypes/_rank;
|
#include maps/mp/gametypes/_rank;
|
||||||
#include maps/mp/gametypes/_globallogic_defaults;
|
#include maps/mp/gametypes/_globallogic_defaults;
|
||||||
|
#include maps/mp/gametypes/_callbacksetup;
|
||||||
|
#include maps/mp/gametypes/_globallogic;
|
||||||
#include maps/mp/gametypes/_hud_util;
|
#include maps/mp/gametypes/_hud_util;
|
||||||
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
main()
|
|
||||||
|
main() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( getDvar( "mapname" ) == "mp_background" )
|
if ( getDvar( "mapname" ) == "mp_background" )
|
||||||
{
|
{
|
||||||
@ -68,7 +73,7 @@ main()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onprecachegametype()
|
onprecachegametype() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
game[ "bombmodelname" ] = "t5_weapon_briefcase_bomb_world";
|
game[ "bombmodelname" ] = "t5_weapon_briefcase_bomb_world";
|
||||||
game[ "bombmodelnameobj" ] = "t5_weapon_briefcase_bomb_world";
|
game[ "bombmodelnameobj" ] = "t5_weapon_briefcase_bomb_world";
|
||||||
@ -107,27 +112,27 @@ onprecachegametype()
|
|||||||
precachestring( &"MP_TIME_EXTENDED" );
|
precachestring( &"MP_TIME_EXTENDED" );
|
||||||
}
|
}
|
||||||
|
|
||||||
dem_getteamkillpenalty( einflictor, attacker, smeansofdeath, sweapon )
|
dem_getteamkillpenalty( einflictor, attacker, smeansofdeath, sweapon ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
teamkill_penalty = maps/mp/gametypes/_globallogic_defaults::default_getteamkillpenalty( einflictor, attacker, smeansofdeath, sweapon );
|
teamkill_penalty = maps/mp/gametypes/_globallogic_defaults::default_getteamkillpenalty( einflictor, attacker, smeansofdeath, sweapon );
|
||||||
if ( isDefined( self.isdefusing ) || self.isdefusing && isDefined( self.isplanting ) && self.isplanting )
|
if ( isDefined( self.isdefusing ) && self.isdefusing || isDefined( self.isplanting ) && self.isplanting )
|
||||||
{
|
{
|
||||||
teamkill_penalty *= level.teamkillpenaltymultiplier;
|
teamkill_penalty *= level.teamkillpenaltymultiplier;
|
||||||
}
|
}
|
||||||
return teamkill_penalty;
|
return teamkill_penalty;
|
||||||
}
|
}
|
||||||
|
|
||||||
dem_getteamkillscore( einflictor, attacker, smeansofdeath, sweapon )
|
dem_getteamkillscore( einflictor, attacker, smeansofdeath, sweapon ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
teamkill_score = maps/mp/gametypes/_rank::getscoreinfovalue( "team_kill" );
|
teamkill_score = maps/mp/gametypes/_rank::getscoreinfovalue( "team_kill" );
|
||||||
if ( isDefined( self.isdefusing ) || self.isdefusing && isDefined( self.isplanting ) && self.isplanting )
|
if ( isDefined( self.isdefusing ) && self.isdefusing || isDefined( self.isplanting ) && self.isplanting )
|
||||||
{
|
{
|
||||||
teamkill_score *= level.teamkillscoremultiplier;
|
teamkill_score *= level.teamkillscoremultiplier;
|
||||||
}
|
}
|
||||||
return int( teamkill_score );
|
return int( teamkill_score );
|
||||||
}
|
}
|
||||||
|
|
||||||
onroundswitch()
|
onroundswitch() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( game[ "switchedsides" ] ) )
|
if ( !isDefined( game[ "switchedsides" ] ) )
|
||||||
{
|
{
|
||||||
@ -149,14 +154,13 @@ onroundswitch()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
getbetterteam()
|
getbetterteam() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
kills[ "allies" ] = 0;
|
kills[ "allies" ] = 0;
|
||||||
kills[ "axis" ] = 0;
|
kills[ "axis" ] = 0;
|
||||||
deaths[ "allies" ] = 0;
|
deaths[ "allies" ] = 0;
|
||||||
deaths[ "axis" ] = 0;
|
deaths[ "axis" ] = 0;
|
||||||
i = 0;
|
for ( i = 0; i < level.players.size; i++ )
|
||||||
while ( i < level.players.size )
|
|
||||||
{
|
{
|
||||||
player = level.players[ i ];
|
player = level.players[ i ];
|
||||||
team = player.pers[ "team" ];
|
team = player.pers[ "team" ];
|
||||||
@ -165,30 +169,23 @@ getbetterteam()
|
|||||||
kills[ team ] += player.kills;
|
kills[ team ] += player.kills;
|
||||||
deaths[ team ] += player.deaths;
|
deaths[ team ] += player.deaths;
|
||||||
}
|
}
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
if ( kills[ "allies" ] > kills[ "axis" ] )
|
if ( kills[ "allies" ] > kills[ "axis" ] )
|
||||||
{
|
{
|
||||||
return "allies";
|
return "allies";
|
||||||
}
|
}
|
||||||
else
|
else if ( kills[ "axis" ] > kills[ "allies" ] )
|
||||||
{
|
|
||||||
if ( kills[ "axis" ] > kills[ "allies" ] )
|
|
||||||
{
|
{
|
||||||
return "axis";
|
return "axis";
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if ( deaths[ "allies" ] < deaths[ "axis" ] )
|
if ( deaths[ "allies" ] < deaths[ "axis" ] )
|
||||||
{
|
{
|
||||||
return "allies";
|
return "allies";
|
||||||
}
|
}
|
||||||
else
|
else if ( deaths[ "axis" ] < deaths[ "allies" ] )
|
||||||
{
|
|
||||||
if ( deaths[ "axis" ] < deaths[ "allies" ] )
|
|
||||||
{
|
{
|
||||||
return "axis";
|
return "axis";
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if ( randomint( 2 ) == 0 )
|
if ( randomint( 2 ) == 0 )
|
||||||
{
|
{
|
||||||
return "allies";
|
return "allies";
|
||||||
@ -196,7 +193,7 @@ getbetterteam()
|
|||||||
return "axis";
|
return "axis";
|
||||||
}
|
}
|
||||||
|
|
||||||
gamemodespawndvars( reset_dvars )
|
gamemodespawndvars( reset_dvars ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
ss = level.spawnsystem;
|
ss = level.spawnsystem;
|
||||||
ss.dem_enemy_base_influencer_score = set_dvar_float_if_unset( "scr_spawn_dem_enemy_base_influencer_score", "-500", reset_dvars );
|
ss.dem_enemy_base_influencer_score = set_dvar_float_if_unset( "scr_spawn_dem_enemy_base_influencer_score", "-500", reset_dvars );
|
||||||
@ -204,7 +201,7 @@ gamemodespawndvars( reset_dvars )
|
|||||||
ss.dem_enemy_base_influencer_radius = set_dvar_float_if_unset( "scr_spawn_dem_enemy_base_influencer_radius", "" + ( 15 * get_player_height() ), reset_dvars );
|
ss.dem_enemy_base_influencer_radius = set_dvar_float_if_unset( "scr_spawn_dem_enemy_base_influencer_radius", "" + ( 15 * get_player_height() ), reset_dvars );
|
||||||
}
|
}
|
||||||
|
|
||||||
onstartgametype()
|
onstartgametype() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
setbombtimer( "A", 0 );
|
setbombtimer( "A", 0 );
|
||||||
setmatchflag( "bomb_timer_a", 0 );
|
setmatchflag( "bomb_timer_a", 0 );
|
||||||
@ -275,8 +272,8 @@ onstartgametype()
|
|||||||
allowed[ 3 ] = "dem";
|
allowed[ 3 ] = "dem";
|
||||||
maps/mp/gametypes/_gameobjects::main( allowed );
|
maps/mp/gametypes/_gameobjects::main( allowed );
|
||||||
maps/mp/gametypes/_spawning::create_map_placed_influencers();
|
maps/mp/gametypes/_spawning::create_map_placed_influencers();
|
||||||
level.spawnmins = ( 0, 0, 1 );
|
level.spawnmins = ( 0, 0, 0 );
|
||||||
level.spawnmaxs = ( 0, 0, 1 );
|
level.spawnmaxs = ( 0, 0, 0 );
|
||||||
maps/mp/gametypes/_spawnlogic::dropspawnpoints( "mp_dem_spawn_attacker_a" );
|
maps/mp/gametypes/_spawnlogic::dropspawnpoints( "mp_dem_spawn_attacker_a" );
|
||||||
maps/mp/gametypes/_spawnlogic::dropspawnpoints( "mp_dem_spawn_attacker_b" );
|
maps/mp/gametypes/_spawnlogic::dropspawnpoints( "mp_dem_spawn_attacker_b" );
|
||||||
maps/mp/gametypes/_spawnlogic::dropspawnpoints( "mp_dem_spawn_defender_a" );
|
maps/mp/gametypes/_spawnlogic::dropspawnpoints( "mp_dem_spawn_defender_a" );
|
||||||
@ -318,7 +315,7 @@ onstartgametype()
|
|||||||
thread bombs();
|
thread bombs();
|
||||||
}
|
}
|
||||||
|
|
||||||
onspawnplayerunified()
|
onspawnplayerunified() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self.isplanting = 0;
|
self.isplanting = 0;
|
||||||
self.isdefusing = 0;
|
self.isdefusing = 0;
|
||||||
@ -326,7 +323,7 @@ onspawnplayerunified()
|
|||||||
maps/mp/gametypes/_spawning::onspawnplayer_unified();
|
maps/mp/gametypes/_spawning::onspawnplayer_unified();
|
||||||
}
|
}
|
||||||
|
|
||||||
onspawnplayer( predictedspawn )
|
onspawnplayer( predictedspawn ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !predictedspawn )
|
if ( !predictedspawn )
|
||||||
{
|
{
|
||||||
@ -362,9 +359,11 @@ onspawnplayer( predictedspawn )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
spawnpoints = maps/mp/gametypes/_spawnlogic::getspawnpointarray( spawnpointname );
|
spawnpoints = maps/mp/gametypes/_spawnlogic::getspawnpointarray( spawnpointname );
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( spawnpoints.size );
|
assert( spawnpoints.size );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
spawnpoint = maps/mp/gametypes/_spawnlogic::getspawnpoint_random( spawnpoints );
|
spawnpoint = maps/mp/gametypes/_spawnlogic::getspawnpoint_random( spawnpoints );
|
||||||
if ( predictedspawn )
|
if ( predictedspawn )
|
||||||
{
|
{
|
||||||
@ -376,17 +375,16 @@ onspawnplayer( predictedspawn )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dem_playerspawnedcb()
|
dem_playerspawnedcb() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level notify( "spawned_player" );
|
level notify( "spawned_player" );
|
||||||
}
|
}
|
||||||
|
|
||||||
onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shitloc, psoffsettime, deathanimduration )
|
onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shitloc, psoffsettime, deathanimduration ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
thread checkallowspectating();
|
thread checkallowspectating();
|
||||||
bombzone = undefined;
|
bombzone = undefined;
|
||||||
index = 0;
|
for ( index = 0; index < level.bombzones.size; index++ )
|
||||||
while ( index < level.bombzones.size )
|
|
||||||
{
|
{
|
||||||
if ( !isDefined( level.bombzones[ index ].bombexploded ) || !level.bombzones[ index ].bombexploded )
|
if ( !isDefined( level.bombzones[ index ].bombexploded ) || !level.bombzones[ index ].bombexploded )
|
||||||
{
|
{
|
||||||
@ -403,10 +401,6 @@ onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shi
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
index++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if ( isDefined( bombzone ) && isplayer( attacker ) && attacker.pers[ "team" ] != self.pers[ "team" ] )
|
if ( isDefined( bombzone ) && isplayer( attacker ) && attacker.pers[ "team" ] != self.pers[ "team" ] )
|
||||||
{
|
{
|
||||||
@ -426,9 +420,11 @@ onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shi
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
attacker iprintlnbold( "GAMETYPE DEBUG: NOT GIVING YOU OFFENSIVE CREDIT AS BOOSTING PREVENTION" );
|
attacker iprintlnbold( "GAMETYPE DEBUG: NOT GIVING YOU OFFENSIVE CREDIT AS BOOSTING PREVENTION" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( !isDefined( attacker.dem_defends ) )
|
else if ( !isDefined( attacker.dem_defends ) )
|
||||||
@ -450,9 +446,11 @@ onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shi
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
attacker iprintlnbold( "GAMETYPE DEBUG: NOT GIVING YOU DEFENSIVE CREDIT AS BOOSTING PREVENTION" );
|
attacker iprintlnbold( "GAMETYPE DEBUG: NOT GIVING YOU DEFENSIVE CREDIT AS BOOSTING PREVENTION" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( self.isplanting == 1 )
|
if ( self.isplanting == 1 )
|
||||||
@ -465,13 +463,13 @@ onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
checkallowspectating()
|
checkallowspectating() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
wait 0,05;
|
wait 0,05;
|
||||||
update = 0;
|
update = 0;
|
||||||
if ( level.numliveslivesleft = self.pers[ "lives" ];
|
livesleft = !level.numlives && !self.pers["lives"];
|
||||||
&& !level.alivecount[ game[ "attackers" ] ] && !livesleft )
|
if ( !level.alivecount[ game[ "attackers" ] ] && !livesleft )
|
||||||
{
|
{
|
||||||
level.spectateoverride[ game[ "attackers" ] ].allowenemyspectate = 1;
|
level.spectateoverride[ game[ "attackers" ] ].allowenemyspectate = 1;
|
||||||
update = 1;
|
update = 1;
|
||||||
@ -487,7 +485,7 @@ checkallowspectating()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dem_endgame( winningteam, endreasontext )
|
dem_endgame( winningteam, endreasontext ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( winningteam ) && winningteam != "tie" )
|
if ( isDefined( winningteam ) && winningteam != "tie" )
|
||||||
{
|
{
|
||||||
@ -496,7 +494,7 @@ dem_endgame( winningteam, endreasontext )
|
|||||||
thread maps/mp/gametypes/_globallogic::endgame( winningteam, endreasontext );
|
thread maps/mp/gametypes/_globallogic::endgame( winningteam, endreasontext );
|
||||||
}
|
}
|
||||||
|
|
||||||
ondeadevent( team )
|
ondeadevent( team ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( level.bombexploded || level.bombdefused )
|
if ( level.bombexploded || level.bombdefused )
|
||||||
{
|
{
|
||||||
@ -521,16 +519,13 @@ ondeadevent( team )
|
|||||||
}
|
}
|
||||||
dem_endgame( game[ "defenders" ], game[ "strings" ][ game[ "attackers" ] + "_eliminated" ] );
|
dem_endgame( game[ "defenders" ], game[ "strings" ][ game[ "attackers" ] + "_eliminated" ] );
|
||||||
}
|
}
|
||||||
else
|
else if ( team == game[ "defenders" ] )
|
||||||
{
|
|
||||||
if ( team == game[ "defenders" ] )
|
|
||||||
{
|
{
|
||||||
dem_endgame( game[ "attackers" ], game[ "strings" ][ game[ "defenders" ] + "_eliminated" ] );
|
dem_endgame( game[ "attackers" ], game[ "strings" ][ game[ "defenders" ] + "_eliminated" ] );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ononeleftevent( team )
|
ononeleftevent( team ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( level.bombexploded || level.bombdefused )
|
if ( level.bombexploded || level.bombdefused )
|
||||||
{
|
{
|
||||||
@ -539,7 +534,7 @@ ononeleftevent( team )
|
|||||||
warnlastplayer( team );
|
warnlastplayer( team );
|
||||||
}
|
}
|
||||||
|
|
||||||
ontimelimit()
|
ontimelimit() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( game[ "overtime_round" ] ) )
|
if ( isDefined( game[ "overtime_round" ] ) )
|
||||||
{
|
{
|
||||||
@ -548,14 +543,12 @@ ontimelimit()
|
|||||||
else if ( level.teambased )
|
else if ( level.teambased )
|
||||||
{
|
{
|
||||||
bombzonesleft = 0;
|
bombzonesleft = 0;
|
||||||
index = 0;
|
for ( index = 0; index < level.bombzones.size; index++ )
|
||||||
while ( index < level.bombzones.size )
|
|
||||||
{
|
{
|
||||||
if ( !isDefined( level.bombzones[ index ].bombexploded ) || !level.bombzones[ index ].bombexploded )
|
if ( !isDefined( level.bombzones[ index ].bombexploded ) || !level.bombzones[ index ].bombexploded )
|
||||||
{
|
{
|
||||||
bombzonesleft++;
|
bombzonesleft++;
|
||||||
}
|
}
|
||||||
index++;
|
|
||||||
}
|
}
|
||||||
if ( bombzonesleft == 0 )
|
if ( bombzonesleft == 0 )
|
||||||
{
|
{
|
||||||
@ -572,7 +565,7 @@ ontimelimit()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
warnlastplayer( team )
|
warnlastplayer( team ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( level.warnedlastplayer ) )
|
if ( !isDefined( level.warnedlastplayer ) )
|
||||||
{
|
{
|
||||||
@ -584,8 +577,7 @@ warnlastplayer( team )
|
|||||||
}
|
}
|
||||||
level.warnedlastplayer[ team ] = 1;
|
level.warnedlastplayer[ team ] = 1;
|
||||||
players = level.players;
|
players = level.players;
|
||||||
i = 0;
|
for ( i = 0; i < players.size; i++ )
|
||||||
while ( i < players.size )
|
|
||||||
{
|
{
|
||||||
player = players[ i ];
|
player = players[ i ];
|
||||||
if ( isDefined( player.pers[ "team" ] ) && player.pers[ "team" ] == team && isDefined( player.pers[ "class" ] ) )
|
if ( isDefined( player.pers[ "team" ] ) && player.pers[ "team" ] == team && isDefined( player.pers[ "class" ] ) )
|
||||||
@ -595,10 +587,6 @@ warnlastplayer( team )
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if ( i == players.size )
|
if ( i == players.size )
|
||||||
{
|
{
|
||||||
@ -607,12 +595,12 @@ warnlastplayer( team )
|
|||||||
players[ i ] thread givelastattackerwarning();
|
players[ i ] thread givelastattackerwarning();
|
||||||
}
|
}
|
||||||
|
|
||||||
givelastattackerwarning()
|
givelastattackerwarning() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
fullhealthtime = 0;
|
fullhealthtime = 0;
|
||||||
interval = 0,05;
|
interval = 0.05;
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
if ( self.health != self.maxhealth )
|
if ( self.health != self.maxhealth )
|
||||||
@ -628,14 +616,11 @@ givelastattackerwarning()
|
|||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
self maps/mp/gametypes/_globallogic_audio::leaderdialogonplayer( "sudden_death" );
|
self maps/mp/gametypes/_globallogic_audio::leaderdialogonplayer( "sudden_death" );
|
||||||
}
|
}
|
||||||
|
|
||||||
updategametypedvars()
|
updategametypedvars() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level.planttime = getgametypesetting( "plantTime" );
|
level.planttime = getgametypesetting( "plantTime" );
|
||||||
level.defusetime = getgametypesetting( "defuseTime" );
|
level.defusetime = getgametypesetting( "defuseTime" );
|
||||||
@ -650,7 +635,7 @@ updategametypedvars()
|
|||||||
level.playerdefensivemax = getgametypesetting( "maxPlayerDefensive" );
|
level.playerdefensivemax = getgametypesetting( "maxPlayerDefensive" );
|
||||||
}
|
}
|
||||||
|
|
||||||
resetbombzone()
|
resetbombzone() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( game[ "overtime_round" ] ) )
|
if ( isDefined( game[ "overtime_round" ] ) )
|
||||||
{
|
{
|
||||||
@ -673,7 +658,7 @@ resetbombzone()
|
|||||||
self.useweapon = "briefcase_bomb_mp";
|
self.useweapon = "briefcase_bomb_mp";
|
||||||
}
|
}
|
||||||
|
|
||||||
setupfordefusing()
|
setupfordefusing() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self maps/mp/gametypes/_gameobjects::allowuse( "friendly" );
|
self maps/mp/gametypes/_gameobjects::allowuse( "friendly" );
|
||||||
self maps/mp/gametypes/_gameobjects::setusetime( level.defusetime );
|
self maps/mp/gametypes/_gameobjects::setusetime( level.defusetime );
|
||||||
@ -687,7 +672,7 @@ setupfordefusing()
|
|||||||
self maps/mp/gametypes/_gameobjects::setvisibleteam( "any" );
|
self maps/mp/gametypes/_gameobjects::setvisibleteam( "any" );
|
||||||
}
|
}
|
||||||
|
|
||||||
bombs()
|
bombs() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
level.bombaplanted = 0;
|
level.bombaplanted = 0;
|
||||||
level.bombbplanted = 0;
|
level.bombbplanted = 0;
|
||||||
@ -719,39 +704,32 @@ bombs()
|
|||||||
trigger delete();
|
trigger delete();
|
||||||
defusetrig delete();
|
defusetrig delete();
|
||||||
visuals[ 0 ] delete();
|
visuals[ 0 ] delete();
|
||||||
_a831 = clipbrushes;
|
foreach ( clip in clipbrushes )
|
||||||
_k831 = getFirstArrayKey( _a831 );
|
|
||||||
while ( isDefined( _k831 ) )
|
|
||||||
{
|
{
|
||||||
clip = _a831[ _k831 ];
|
|
||||||
clip delete();
|
clip delete();
|
||||||
_k831 = getNextArrayKey( _a831, _k831 );
|
|
||||||
}
|
}
|
||||||
|
index++;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
else bombsiteteamowner = "neutral";
|
bombsiteteamowner = "neutral";
|
||||||
bombsiteallowuse = "any";
|
bombsiteallowuse = "any";
|
||||||
scriptlabel = "_a";
|
scriptlabel = "_a";
|
||||||
}
|
}
|
||||||
else
|
else if ( scriptlabel == "_overtime" )
|
||||||
{
|
|
||||||
if ( scriptlabel == "_overtime" )
|
|
||||||
{
|
{
|
||||||
trigger delete();
|
trigger delete();
|
||||||
defusetrig delete();
|
defusetrig delete();
|
||||||
visuals[ 0 ] delete();
|
visuals[ 0 ] delete();
|
||||||
_a846 = clipbrushes;
|
foreach ( clip in clipbrushes )
|
||||||
_k846 = getFirstArrayKey( _a846 );
|
|
||||||
while ( isDefined( _k846 ) )
|
|
||||||
{
|
{
|
||||||
clip = _a846[ _k846 ];
|
|
||||||
clip delete();
|
clip delete();
|
||||||
_k846 = getNextArrayKey( _a846, _k846 );
|
|
||||||
}
|
}
|
||||||
|
index++;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
name = istring( scriptlabel );
|
||||||
else name = istring( scriptlabel );
|
|
||||||
precachestring( name );
|
precachestring( name );
|
||||||
bombzone = maps/mp/gametypes/_gameobjects::createuseobject( bombsiteteamowner, trigger, visuals, ( 0, 0, 1 ), name );
|
bombzone = maps/mp/gametypes/_gameobjects::createuseobject( bombsiteteamowner, trigger, visuals, ( 0, 0, 0 ), name );
|
||||||
bombzone maps/mp/gametypes/_gameobjects::allowuse( bombsiteallowuse );
|
bombzone maps/mp/gametypes/_gameobjects::allowuse( bombsiteallowuse );
|
||||||
bombzone maps/mp/gametypes/_gameobjects::setusetime( level.planttime );
|
bombzone maps/mp/gametypes/_gameobjects::setusetime( level.planttime );
|
||||||
bombzone maps/mp/gametypes/_gameobjects::setusetext( &"MP_PLANTING_EXPLOSIVE" );
|
bombzone maps/mp/gametypes/_gameobjects::setusetext( &"MP_PLANTING_EXPLOSIVE" );
|
||||||
@ -770,25 +748,22 @@ bombs()
|
|||||||
bombzone.oncantuse = ::oncantuse;
|
bombzone.oncantuse = ::oncantuse;
|
||||||
bombzone.useweapon = "briefcase_bomb_mp";
|
bombzone.useweapon = "briefcase_bomb_mp";
|
||||||
bombzone.visuals[ 0 ].killcament = spawn( "script_model", bombzone.visuals[ 0 ].origin + vectorScale( ( 0, 0, 1 ), 128 ) );
|
bombzone.visuals[ 0 ].killcament = spawn( "script_model", bombzone.visuals[ 0 ].origin + vectorScale( ( 0, 0, 1 ), 128 ) );
|
||||||
i = 0;
|
for ( i = 0; i < visuals.size; i++ )
|
||||||
while ( i < visuals.size )
|
|
||||||
{
|
{
|
||||||
if ( isDefined( visuals[ i ].script_exploder ) )
|
if ( isDefined( visuals[ i ].script_exploder ) )
|
||||||
{
|
{
|
||||||
bombzone.exploderindex = visuals[ i ].script_exploder;
|
bombzone.exploderindex = visuals[ i ].script_exploder;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
level.bombzones[ level.bombzones.size ] = bombzone;
|
level.bombzones[ level.bombzones.size ] = bombzone;
|
||||||
bombzone.bombdefusetrig = defusetrig;
|
bombzone.bombdefusetrig = defusetrig;
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( isDefined( bombzone.bombdefusetrig ) );
|
assert( isDefined( bombzone.bombdefusetrig ) );
|
||||||
#/
|
#/
|
||||||
bombzone.bombdefusetrig.origin += vectorScale( ( 0, 0, 1 ), 10000 );
|
*/
|
||||||
|
bombzone.bombdefusetrig.origin += vectorScale( ( 0, 0, -1 ), 10000 );
|
||||||
bombzone.bombdefusetrig.label = scriptlabel;
|
bombzone.bombdefusetrig.label = scriptlabel;
|
||||||
dem_enemy_base_influencer_score = level.spawnsystem.dem_enemy_base_influencer_score;
|
dem_enemy_base_influencer_score = level.spawnsystem.dem_enemy_base_influencer_score;
|
||||||
dem_enemy_base_influencer_score_curve = level.spawnsystem.dem_enemy_base_influencer_score_curve;
|
dem_enemy_base_influencer_score_curve = level.spawnsystem.dem_enemy_base_influencer_score_curve;
|
||||||
@ -797,25 +772,21 @@ bombs()
|
|||||||
bombzone.spawninfluencer = addsphereinfluencer( level.spawnsystem.einfluencer_type_game_mode, trigger.origin, dem_enemy_base_influencer_radius, dem_enemy_base_influencer_score, team_mask, "dem_enemy_base,r,s", maps/mp/gametypes/_spawning::get_score_curve_index( dem_enemy_base_influencer_score_curve ) );
|
bombzone.spawninfluencer = addsphereinfluencer( level.spawnsystem.einfluencer_type_game_mode, trigger.origin, dem_enemy_base_influencer_radius, dem_enemy_base_influencer_score, team_mask, "dem_enemy_base,r,s", maps/mp/gametypes/_spawning::get_score_curve_index( dem_enemy_base_influencer_score_curve ) );
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
index = 0;
|
for ( index = 0; index < level.bombzones.size; index++ )
|
||||||
while ( index < level.bombzones.size )
|
|
||||||
{
|
{
|
||||||
array = [];
|
array = [];
|
||||||
otherindex = 0;
|
for ( otherindex = 0; otherindex < level.bombzones.size; otherindex++ )
|
||||||
while ( otherindex < level.bombzones.size )
|
|
||||||
{
|
{
|
||||||
if ( otherindex != index )
|
if ( otherindex != index )
|
||||||
{
|
{
|
||||||
array[ array.size ] = level.bombzones[ otherindex ];
|
array[ array.size ] = level.bombzones[ otherindex ];
|
||||||
}
|
}
|
||||||
otherindex++;
|
|
||||||
}
|
}
|
||||||
level.bombzones[ index ].otherbombzones = array;
|
level.bombzones[ index ].otherbombzones = array;
|
||||||
index++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onbeginuse( player )
|
onbeginuse( player ) //checked partially changed to match cerberus output did not change while loop to for loop see github for more info
|
||||||
{
|
{
|
||||||
timeremaining = maps/mp/gametypes/_globallogic_utils::gettimeremaining();
|
timeremaining = maps/mp/gametypes/_globallogic_utils::gettimeremaining();
|
||||||
if ( timeremaining <= ( level.planttime * 1000 ) )
|
if ( timeremaining <= ( level.planttime * 1000 ) )
|
||||||
@ -842,20 +813,19 @@ onbeginuse( player )
|
|||||||
bomblabel++;
|
bomblabel++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
dist = distancesquared( player.origin, bomb.origin );
|
dist = distancesquared( player.origin, bomb.origin );
|
||||||
if ( dist < bestdistance )
|
if ( dist < bestdistance )
|
||||||
{
|
{
|
||||||
bestdistance = dist;
|
bestdistance = dist;
|
||||||
closestbomb = bomb;
|
closestbomb = bomb;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
bomblabel++;
|
bomblabel++;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( isDefined( closestbomb ) );
|
assert( isDefined( closestbomb ) );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
player.defusing = closestbomb;
|
player.defusing = closestbomb;
|
||||||
closestbomb hide();
|
closestbomb hide();
|
||||||
}
|
}
|
||||||
@ -868,7 +838,7 @@ onbeginuse( player )
|
|||||||
player playsound( "fly_bomb_raise_plr" );
|
player playsound( "fly_bomb_raise_plr" );
|
||||||
}
|
}
|
||||||
|
|
||||||
onenduse( team, player, result )
|
onenduse( team, player, result ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( player ) )
|
if ( !isDefined( player ) )
|
||||||
{
|
{
|
||||||
@ -891,12 +861,12 @@ onenduse( team, player, result )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
oncantuse( player )
|
oncantuse( player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
player iprintlnbold( &"MP_CANT_PLANT_WITHOUT_BOMB" );
|
player iprintlnbold( &"MP_CANT_PLANT_WITHOUT_BOMB" );
|
||||||
}
|
}
|
||||||
|
|
||||||
onuseobject( player )
|
onuseobject( player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
team = player.team;
|
team = player.team;
|
||||||
enemyteam = getotherteam( team );
|
enemyteam = getotherteam( team );
|
||||||
@ -925,9 +895,11 @@ onuseobject( player )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
player iprintlnbold( "GAMETYPE DEBUG: NOT GIVING YOU PLANT CREDIT AS BOOSTING PREVENTION" );
|
player iprintlnbold( "GAMETYPE DEBUG: NOT GIVING YOU PLANT CREDIT AS BOOSTING PREVENTION" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
level thread maps/mp/_popups::displayteammessagetoall( &"MP_EXPLOSIVES_PLANTED_BY", player );
|
level thread maps/mp/_popups::displayteammessagetoall( &"MP_EXPLOSIVES_PLANTED_BY", player );
|
||||||
maps/mp/gametypes/_globallogic_audio::leaderdialog( "bomb_planted" );
|
maps/mp/gametypes/_globallogic_audio::leaderdialog( "bomb_planted" );
|
||||||
@ -954,9 +926,11 @@ onuseobject( player )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
player iprintlnbold( "GAMETYPE DEBUG: NOT GIVING YOU DEFUSE CREDIT AS BOOSTING PREVENTION" );
|
player iprintlnbold( "GAMETYPE DEBUG: NOT GIVING YOU DEFUSE CREDIT AS BOOSTING PREVENTION" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
level thread maps/mp/_popups::displayteammessagetoall( &"MP_EXPLOSIVES_DEFUSED_BY", player );
|
level thread maps/mp/_popups::displayteammessagetoall( &"MP_EXPLOSIVES_DEFUSED_BY", player );
|
||||||
thread maps/mp/gametypes/_globallogic_audio::set_music_on_team( "DEM_WE_DEFUSE", team, 0, 0, 5 );
|
thread maps/mp/gametypes/_globallogic_audio::set_music_on_team( "DEM_WE_DEFUSE", team, 0, 0, 5 );
|
||||||
@ -965,7 +939,7 @@ onuseobject( player )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ondrop( player )
|
ondrop( player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !level.bombplanted )
|
if ( !level.bombplanted )
|
||||||
{
|
{
|
||||||
@ -983,7 +957,7 @@ ondrop( player )
|
|||||||
maps/mp/_utility::playsoundonplayers( game[ "bomb_dropped_sound" ], game[ "attackers" ] );
|
maps/mp/_utility::playsoundonplayers( game[ "bomb_dropped_sound" ], game[ "attackers" ] );
|
||||||
}
|
}
|
||||||
|
|
||||||
onpickup( player )
|
onpickup( player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
player.isbombcarrier = 1;
|
player.isbombcarrier = 1;
|
||||||
self maps/mp/gametypes/_gameobjects::set3dicon( "friendly", "waypoint_defend" );
|
self maps/mp/gametypes/_gameobjects::set3dicon( "friendly", "waypoint_defend" );
|
||||||
@ -996,11 +970,11 @@ onpickup( player )
|
|||||||
maps/mp/_utility::playsoundonplayers( game[ "bomb_recovered_sound" ], game[ "attackers" ] );
|
maps/mp/_utility::playsoundonplayers( game[ "bomb_recovered_sound" ], game[ "attackers" ] );
|
||||||
}
|
}
|
||||||
|
|
||||||
onreset()
|
onreset() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
bombreset( label, reason )
|
bombreset( label, reason ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( label == "_a" )
|
if ( label == "_a" )
|
||||||
{
|
{
|
||||||
@ -1020,13 +994,13 @@ bombreset( label, reason )
|
|||||||
self.visuals[ 0 ] maps/mp/gametypes/_globallogic_utils::stoptickingsound();
|
self.visuals[ 0 ] maps/mp/gametypes/_globallogic_utils::stoptickingsound();
|
||||||
}
|
}
|
||||||
|
|
||||||
dropbombmodel( player, site )
|
dropbombmodel( player, site ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
trace = bullettrace( player.origin + vectorScale( ( 0, 0, 1 ), 20 ), player.origin - vectorScale( ( 0, 0, 1 ), 2000 ), 0, player );
|
trace = bullettrace( player.origin + vectorScale( ( 0, 0, 1 ), 20 ), player.origin - vectorScale( ( 0, 0, 1 ), 2000 ), 0, player );
|
||||||
tempangle = randomfloat( 360 );
|
tempangle = randomfloat( 360 );
|
||||||
forward = ( cos( tempangle ), sin( tempangle ), 0 );
|
forward = ( cos( tempangle ), sin( tempangle ), 0 );
|
||||||
forward = vectornormalize( forward - vectorScale( trace[ "normal" ], vectordot( forward, trace[ "normal" ] ) ) );
|
forward = vectornormalize( forward - vectorScale( trace[ "normal" ], vectordot( forward, trace[ "normal" ] ) ) );
|
||||||
dropangles = vectorToAngle( forward );
|
dropangles = vectorToAngles( forward );
|
||||||
if ( isDefined( trace[ "surfacetype" ] ) && trace[ "surfacetype" ] == "water" )
|
if ( isDefined( trace[ "surfacetype" ] ) && trace[ "surfacetype" ] == "water" )
|
||||||
{
|
{
|
||||||
phystrace = playerphysicstrace( player.origin + vectorScale( ( 0, 0, 1 ), 20 ), player.origin - vectorScale( ( 0, 0, 1 ), 2000 ) );
|
phystrace = playerphysicstrace( player.origin + vectorScale( ( 0, 0, 1 ), 20 ), player.origin - vectorScale( ( 0, 0, 1 ), 2000 ) );
|
||||||
@ -1093,18 +1067,16 @@ bombplanted( destroyedobj, player )
|
|||||||
destroyedobj.visuals[ 0 ] radiusdamage( explosionorigin, 512, 200, 20, undefined, "MOD_EXPLOSIVE", "briefcase_bomb_mp" );
|
destroyedobj.visuals[ 0 ] radiusdamage( explosionorigin, 512, 200, 20, undefined, "MOD_EXPLOSIVE", "briefcase_bomb_mp" );
|
||||||
}
|
}
|
||||||
currenttime = getTime();
|
currenttime = getTime();
|
||||||
while ( isDefined( level.lastbombexplodetime ) && level.lastbombexplodebyteam == player.team )
|
if ( isDefined( level.lastbombexplodetime ) && level.lastbombexplodebyteam == player.team )
|
||||||
{
|
{
|
||||||
while ( ( level.lastbombexplodetime + 10000 ) > currenttime )
|
if ( ( level.lastbombexplodetime + 10000 ) > currenttime )
|
||||||
{
|
{
|
||||||
i = 0;
|
for ( i = 0; i < level.players.size; i++ )
|
||||||
while ( i < level.players.size )
|
|
||||||
{
|
{
|
||||||
if ( level.players[ i ].team == player.team )
|
if ( level.players[ i ].team == player.team )
|
||||||
{
|
{
|
||||||
level.players[ i ] maps/mp/_challenges::bothbombsdetonatewithintime();
|
level.players[ i ] maps/mp/_challenges::bothbombsdetonatewithintime();
|
||||||
}
|
}
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1119,14 +1091,12 @@ bombplanted( destroyedobj, player )
|
|||||||
exploder( destroyedobj.exploderindex );
|
exploder( destroyedobj.exploderindex );
|
||||||
}
|
}
|
||||||
bombzonesleft = 0;
|
bombzonesleft = 0;
|
||||||
index = 0;
|
for ( index = 0; index < level.bombzones.size; index++ )
|
||||||
while ( index < level.bombzones.size )
|
|
||||||
{
|
{
|
||||||
if ( !isDefined( level.bombzones[ index ].bombexploded ) || !level.bombzones[ index ].bombexploded )
|
if ( !isDefined( level.bombzones[ index ].bombexploded ) || !level.bombzones[ index ].bombexploded )
|
||||||
{
|
{
|
||||||
bombzonesleft++;
|
bombzonesleft++;
|
||||||
}
|
}
|
||||||
index++;
|
|
||||||
}
|
}
|
||||||
destroyedobj maps/mp/gametypes/_gameobjects::disableobject();
|
destroyedobj maps/mp/gametypes/_gameobjects::disableobject();
|
||||||
if ( bombzonesleft == 0 )
|
if ( bombzonesleft == 0 )
|
||||||
@ -1165,7 +1135,7 @@ bombplanted( destroyedobj, player )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gettimelimit()
|
gettimelimit() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
timelimit = maps/mp/gametypes/_globallogic_defaults::default_gettimelimit();
|
timelimit = maps/mp/gametypes/_globallogic_defaults::default_gettimelimit();
|
||||||
if ( isDefined( game[ "overtime_round" ] ) )
|
if ( isDefined( game[ "overtime_round" ] ) )
|
||||||
@ -1179,7 +1149,7 @@ gettimelimit()
|
|||||||
return timelimit;
|
return timelimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
shouldplayovertimeround()
|
shouldplayovertimeround() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( game[ "overtime_round" ] ) )
|
if ( isDefined( game[ "overtime_round" ] ) )
|
||||||
{
|
{
|
||||||
@ -1192,15 +1162,17 @@ shouldplayovertimeround()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
waitlongdurationwithbombtimeupdate( whichbomb, duration )
|
waitlongdurationwithbombtimeupdate( whichbomb, duration ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( duration == 0 )
|
if ( duration == 0 )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( duration > 0 );
|
assert( duration > 0 );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
starttime = getTime();
|
starttime = getTime();
|
||||||
endtime = getTime() + ( duration * 1000 );
|
endtime = getTime() + ( duration * 1000 );
|
||||||
while ( getTime() < endtime )
|
while ( getTime() < endtime )
|
||||||
@ -1210,25 +1182,27 @@ waitlongdurationwithbombtimeupdate( whichbomb, duration )
|
|||||||
{
|
{
|
||||||
endtime += 250;
|
endtime += 250;
|
||||||
updatebombtimers( whichbomb, endtime );
|
updatebombtimers( whichbomb, endtime );
|
||||||
wait 0,25;
|
wait 0.25;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
if ( getTime() != endtime )
|
if ( getTime() != endtime )
|
||||||
{
|
{
|
||||||
println( "SCRIPT WARNING: gettime() = " + getTime() + " NOT EQUAL TO endtime = " + endtime );
|
println( "SCRIPT WARNING: gettime() = " + getTime() + " NOT EQUAL TO endtime = " + endtime );
|
||||||
#/
|
#/
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
while ( isDefined( level.hostmigrationtimer ) )
|
while ( isDefined( level.hostmigrationtimer ) )
|
||||||
{
|
{
|
||||||
endtime += 250;
|
endtime += 250;
|
||||||
updatebombtimers( whichbomb, endtime );
|
updatebombtimers( whichbomb, endtime );
|
||||||
wait 0,25;
|
wait 0.25;
|
||||||
}
|
}
|
||||||
return getTime() - starttime;
|
return getTime() - starttime;
|
||||||
}
|
}
|
||||||
|
|
||||||
updatebombtimers( whichbomb, detonatetime )
|
updatebombtimers( whichbomb, detonatetime ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( whichbomb == "_a" )
|
if ( whichbomb == "_a" )
|
||||||
{
|
{
|
||||||
@ -1243,7 +1217,7 @@ updatebombtimers( whichbomb, detonatetime )
|
|||||||
setmatchflag( "bomb_timer" + whichbomb, int( detonatetime ) );
|
setmatchflag( "bomb_timer" + whichbomb, int( detonatetime ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
bombdefused()
|
bombdefused() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self.tickingobject maps/mp/gametypes/_globallogic_utils::stoptickingsound();
|
self.tickingobject maps/mp/gametypes/_globallogic_utils::stoptickingsound();
|
||||||
self maps/mp/gametypes/_gameobjects::allowuse( "none" );
|
self maps/mp/gametypes/_gameobjects::allowuse( "none" );
|
||||||
@ -1254,7 +1228,7 @@ bombdefused()
|
|||||||
self bombreset( self.label, "bomb_defused" );
|
self bombreset( self.label, "bomb_defused" );
|
||||||
}
|
}
|
||||||
|
|
||||||
play_one_left_underscore( team, enemyteam )
|
play_one_left_underscore( team, enemyteam ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
wait 3;
|
wait 3;
|
||||||
if ( !isDefined( team ) || !isDefined( enemyteam ) )
|
if ( !isDefined( team ) || !isDefined( enemyteam ) )
|
||||||
@ -1265,7 +1239,7 @@ play_one_left_underscore( team, enemyteam )
|
|||||||
thread maps/mp/gametypes/_globallogic_audio::set_music_on_team( "DEM_ONE_LEFT_UNDERSCORE", enemyteam, 0, 0 );
|
thread maps/mp/gametypes/_globallogic_audio::set_music_on_team( "DEM_ONE_LEFT_UNDERSCORE", enemyteam, 0, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
updateeventsperminute()
|
updateeventsperminute() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( self.eventsperminute ) )
|
if ( !isDefined( self.eventsperminute ) )
|
||||||
{
|
{
|
||||||
@ -1285,7 +1259,7 @@ updateeventsperminute()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
isscoreboosting( player, flag )
|
isscoreboosting( player, flag ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !level.rankedmatch )
|
if ( !level.rankedmatch )
|
||||||
{
|
{
|
||||||
@ -1301,3 +1275,5 @@ isscoreboosting( player, flag )
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -6,15 +6,19 @@
|
|||||||
#include maps/mp/gametypes/_weapons;
|
#include maps/mp/gametypes/_weapons;
|
||||||
#include maps/mp/_popups;
|
#include maps/mp/_popups;
|
||||||
#include maps/mp/gametypes/_globallogic_utils;
|
#include maps/mp/gametypes/_globallogic_utils;
|
||||||
|
#include maps/mp/gametypes/_hud_message;
|
||||||
#include maps/mp/gametypes/_spawnlogic;
|
#include maps/mp/gametypes/_spawnlogic;
|
||||||
#include maps/mp/gametypes/_spawning;
|
#include maps/mp/gametypes/_spawning;
|
||||||
|
#include maps/mp/gametypes/_gameobjects;
|
||||||
#include maps/mp/gametypes/_globallogic_score;
|
#include maps/mp/gametypes/_globallogic_score;
|
||||||
#include maps/mp/teams/_teams;
|
#include maps/mp/teams/_teams;
|
||||||
#include maps/mp/gametypes/_globallogic_audio;
|
#include maps/mp/gametypes/_globallogic_audio;
|
||||||
|
#include maps/mp/gametypes/_callbacksetup;
|
||||||
|
#include maps/mp/gametypes/_globallogic;
|
||||||
#include maps/mp/gametypes/_hud_util;
|
#include maps/mp/gametypes/_hud_util;
|
||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
|
|
||||||
main()
|
main() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( getDvar( "mapname" ) == "mp_background" )
|
if ( getDvar( "mapname" ) == "mp_background" )
|
||||||
{
|
{
|
||||||
@ -81,7 +85,7 @@ main()
|
|||||||
maps/mp/gametypes/_globallogic_audio::registerdialoggroup( "ctf_flag_enemy", 0 );
|
maps/mp/gametypes/_globallogic_audio::registerdialoggroup( "ctf_flag_enemy", 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
onprecachegametype()
|
onprecachegametype() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
game[ "flag_dropped_sound" ] = "mp_war_objective_lost";
|
game[ "flag_dropped_sound" ] = "mp_war_objective_lost";
|
||||||
game[ "flag_recovered_sound" ] = "mp_war_objective_taken";
|
game[ "flag_recovered_sound" ] = "mp_war_objective_taken";
|
||||||
@ -132,15 +136,17 @@ onprecachegametype()
|
|||||||
game[ "strings" ][ "score_limit_reached" ] = &"MP_CAP_LIMIT_REACHED";
|
game[ "strings" ][ "score_limit_reached" ] = &"MP_CAP_LIMIT_REACHED";
|
||||||
}
|
}
|
||||||
|
|
||||||
onstartgametype()
|
onstartgametype() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( game[ "switchedsides" ] ) )
|
if ( !isDefined( game[ "switchedsides" ] ) )
|
||||||
{
|
{
|
||||||
game[ "switchedsides" ] = 0;
|
game[ "switchedsides" ] = 0;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
setdebugsideswitch( game[ "switchedsides" ] );
|
setdebugsideswitch( game[ "switchedsides" ] );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
setclientnamemode( "auto_change" );
|
setclientnamemode( "auto_change" );
|
||||||
maps/mp/gametypes/_globallogic_score::resetteamscores();
|
maps/mp/gametypes/_globallogic_score::resetteamscores();
|
||||||
setobjectivetext( "allies", &"OBJECTIVES_ONEFLAG" );
|
setobjectivetext( "allies", &"OBJECTIVES_ONEFLAG" );
|
||||||
@ -186,34 +192,26 @@ onstartgametype()
|
|||||||
allowed[ 1 ] = "dom";
|
allowed[ 1 ] = "dom";
|
||||||
maps/mp/gametypes/_gameobjects::main( allowed );
|
maps/mp/gametypes/_gameobjects::main( allowed );
|
||||||
entities = getentarray();
|
entities = getentarray();
|
||||||
entity_index = entities.size - 1;
|
for ( entity_index = entities.size - 1; entity_index >= 0; entity_index-- )
|
||||||
while ( entity_index >= 0 )
|
|
||||||
{
|
{
|
||||||
entity = entities[ entity_index ];
|
entity = entities[ entity_index ];
|
||||||
while ( isDefined( entity.script_gameobjectname ) && entity.script_gameobjectname != "[all_modes]" )
|
if ( isDefined( entity.script_gameobjectname ) && entity.script_gameobjectname != "[all_modes]" )
|
||||||
{
|
{
|
||||||
gameobjectnames = strtok( entity.script_gameobjectname, " " );
|
gameobjectnames = strtok( entity.script_gameobjectname, " " );
|
||||||
i = 0;
|
for ( i = 0; i < gameobjectnames.size; i++ )
|
||||||
while ( i < gameobjectnames.size )
|
|
||||||
{
|
{
|
||||||
if ( gameobjectnames[ i ] == "ctf" && gameobjectnames.size > 1 )
|
if ( gameobjectnames[ i ] == "ctf" && gameobjectnames.size > 1 )
|
||||||
{
|
{
|
||||||
entity delete();
|
entity delete();
|
||||||
entity_index--;
|
entity_index--;
|
||||||
continue;
|
break;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
entity_index--;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
maps/mp/gametypes/_spawning::create_map_placed_influencers();
|
maps/mp/gametypes/_spawning::create_map_placed_influencers();
|
||||||
level.spawnmins = ( 0, 0, -1 );
|
level.spawnmins = ( 0, 0, 0 );
|
||||||
level.spawnmaxs = ( 0, 0, -1 );
|
level.spawnmaxs = ( 0, 0, 0 );
|
||||||
maps/mp/gametypes/_spawnlogic::placespawnpoints( "mp_ctf_spawn_allies_start" );
|
maps/mp/gametypes/_spawnlogic::placespawnpoints( "mp_ctf_spawn_allies_start" );
|
||||||
maps/mp/gametypes/_spawnlogic::placespawnpoints( "mp_ctf_spawn_axis_start" );
|
maps/mp/gametypes/_spawnlogic::placespawnpoints( "mp_ctf_spawn_axis_start" );
|
||||||
maps/mp/gametypes/_spawnlogic::addspawnpoints( "allies", "mp_ctf_spawn_allies" );
|
maps/mp/gametypes/_spawnlogic::addspawnpoints( "allies", "mp_ctf_spawn_allies" );
|
||||||
@ -226,15 +224,11 @@ onstartgametype()
|
|||||||
level.spawn_axis = maps/mp/gametypes/_spawnlogic::getspawnpointarray( "mp_ctf_spawn_axis" );
|
level.spawn_axis = maps/mp/gametypes/_spawnlogic::getspawnpointarray( "mp_ctf_spawn_axis" );
|
||||||
level.spawn_allies = maps/mp/gametypes/_spawnlogic::getspawnpointarray( "mp_ctf_spawn_allies" );
|
level.spawn_allies = maps/mp/gametypes/_spawnlogic::getspawnpointarray( "mp_ctf_spawn_allies" );
|
||||||
level.spawn_start = [];
|
level.spawn_start = [];
|
||||||
_a283 = level.teams;
|
foreach ( team in level.teams )
|
||||||
_k283 = getFirstArrayKey( _a283 );
|
|
||||||
while ( isDefined( _k283 ) )
|
|
||||||
{
|
{
|
||||||
team = _a283[ _k283 ];
|
|
||||||
level.spawn_start[ team ] = maps/mp/gametypes/_spawnlogic::getspawnpointarray( "mp_ctf_spawn_" + team + "_start" );
|
level.spawn_start[ team ] = maps/mp/gametypes/_spawnlogic::getspawnpointarray( "mp_ctf_spawn_" + team + "_start" );
|
||||||
_k283 = getNextArrayKey( _a283, _k283 );
|
|
||||||
}
|
}
|
||||||
level.oneflagtimer = createservertimer( "objective", 1,4 );
|
level.oneflagtimer = createservertimer( "objective", 1.4 );
|
||||||
level.oneflagtimer.x = 11;
|
level.oneflagtimer.x = 11;
|
||||||
level.oneflagtimer.y = 120;
|
level.oneflagtimer.y = 120;
|
||||||
level.oneflagtimer.horzalign = "user_left";
|
level.oneflagtimer.horzalign = "user_left";
|
||||||
@ -253,13 +247,13 @@ onstartgametype()
|
|||||||
thread ctf();
|
thread ctf();
|
||||||
}
|
}
|
||||||
|
|
||||||
hidetimerdisplayongameend( timerdisplay )
|
hidetimerdisplayongameend( timerdisplay ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level waittill( "game_ended" );
|
level waittill( "game_ended" );
|
||||||
timerdisplay.alpha = 0;
|
timerdisplay.alpha = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
shouldplayovertimeround()
|
shouldplayovertimeround() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( game[ "overtime_round" ] ) )
|
if ( isDefined( game[ "overtime_round" ] ) )
|
||||||
{
|
{
|
||||||
@ -292,7 +286,7 @@ shouldplayovertimeround()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
minutesandsecondsstring( milliseconds )
|
minutesandsecondsstring( milliseconds ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
minutes = floor( milliseconds / 60000 );
|
minutes = floor( milliseconds / 60000 );
|
||||||
milliseconds -= minutes * 60000;
|
milliseconds -= minutes * 60000;
|
||||||
@ -307,7 +301,7 @@ minutesandsecondsstring( milliseconds )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setmatchscorehudelemforteam( team )
|
setmatchscorehudelemforteam( team ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( game[ "overtime_round" ] ) )
|
if ( !isDefined( game[ "overtime_round" ] ) )
|
||||||
{
|
{
|
||||||
@ -317,9 +311,7 @@ setmatchscorehudelemforteam( team )
|
|||||||
{
|
{
|
||||||
self settext( minutesandsecondsstring( game[ "ctf_overtime_best_time" ] ) );
|
self settext( minutesandsecondsstring( game[ "ctf_overtime_best_time" ] ) );
|
||||||
}
|
}
|
||||||
else
|
else if ( isDefined( game[ "ctf_overtime_first_winner" ] ) && game[ "ctf_overtime_first_winner" ] == team )
|
||||||
{
|
|
||||||
if ( isDefined( game[ "ctf_overtime_first_winner" ] ) && game[ "ctf_overtime_first_winner" ] == team )
|
|
||||||
{
|
{
|
||||||
self settext( minutesandsecondsstring( game[ "ctf_overtime_time_to_beat" ] ) );
|
self settext( minutesandsecondsstring( game[ "ctf_overtime_time_to_beat" ] ) );
|
||||||
return;
|
return;
|
||||||
@ -328,10 +320,9 @@ setmatchscorehudelemforteam( team )
|
|||||||
{
|
{
|
||||||
self settext( &"" );
|
self settext( &"" );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onroundswitch()
|
onroundswitch() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( game[ "switchedsides" ] ) )
|
if ( !isDefined( game[ "switchedsides" ] ) )
|
||||||
{
|
{
|
||||||
@ -341,7 +332,7 @@ onroundswitch()
|
|||||||
game[ "switchedsides" ] = !game[ "switchedsides" ];
|
game[ "switchedsides" ] = !game[ "switchedsides" ];
|
||||||
}
|
}
|
||||||
|
|
||||||
onendgame( winningteam )
|
onendgame( winningteam ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( game[ "overtime_round" ] ) )
|
if ( isDefined( game[ "overtime_round" ] ) )
|
||||||
{
|
{
|
||||||
@ -362,7 +353,7 @@ onendgame( winningteam )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onroundendgame( winningteam )
|
onroundendgame( winningteam ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( game[ "overtime_round" ] ) )
|
if ( isDefined( game[ "overtime_round" ] ) )
|
||||||
{
|
{
|
||||||
@ -383,24 +374,17 @@ onroundendgame( winningteam )
|
|||||||
level.enddefeatreasontext = &"MP_ONE_FLAG_CTF_OVERTIME_DEFEAT_DID_NOT_DEFEND";
|
level.enddefeatreasontext = &"MP_ONE_FLAG_CTF_OVERTIME_DEFEAT_DID_NOT_DEFEND";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if ( !isDefined( winningteam ) || winningteam == "tie" )
|
||||||
{
|
|
||||||
if ( !isDefined( winningteam ) || winningteam == "tie" )
|
|
||||||
{
|
{
|
||||||
return "tie";
|
return "tie";
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return winningteam;
|
return winningteam;
|
||||||
}
|
}
|
||||||
if ( level.roundscorecarry == 0 )
|
if ( level.roundscorecarry == 0 )
|
||||||
{
|
{
|
||||||
_a451 = level.teams;
|
foreach ( team in level.teams )
|
||||||
_k451 = getFirstArrayKey( _a451 );
|
|
||||||
while ( isDefined( _k451 ) )
|
|
||||||
{
|
{
|
||||||
team = _a451[ _k451 ];
|
|
||||||
[[ level._setteamscore ]]( team, game[ "roundswon" ][ team ] );
|
[[ level._setteamscore ]]( team, game[ "roundswon" ][ team ] );
|
||||||
_k451 = getNextArrayKey( _a451, _k451 );
|
|
||||||
}
|
}
|
||||||
winner = maps/mp/gametypes/_globallogic::determineteamwinnerbygamestat( "roundswon" );
|
winner = maps/mp/gametypes/_globallogic::determineteamwinnerbygamestat( "roundswon" );
|
||||||
}
|
}
|
||||||
@ -411,7 +395,7 @@ onroundendgame( winningteam )
|
|||||||
return winner;
|
return winner;
|
||||||
}
|
}
|
||||||
|
|
||||||
onspawnplayerunified()
|
onspawnplayerunified() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self.isflagcarrier = 0;
|
self.isflagcarrier = 0;
|
||||||
self.flagcarried = undefined;
|
self.flagcarried = undefined;
|
||||||
@ -419,7 +403,7 @@ onspawnplayerunified()
|
|||||||
maps/mp/gametypes/_spawning::onspawnplayer_unified();
|
maps/mp/gametypes/_spawning::onspawnplayer_unified();
|
||||||
}
|
}
|
||||||
|
|
||||||
onspawnplayer( predictedspawn )
|
onspawnplayer( predictedspawn ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self.isflagcarrier = 0;
|
self.isflagcarrier = 0;
|
||||||
self.flagcarried = undefined;
|
self.flagcarried = undefined;
|
||||||
@ -441,9 +425,11 @@ onspawnplayer( predictedspawn )
|
|||||||
{
|
{
|
||||||
spawnpoint = maps/mp/gametypes/_spawnlogic::getspawnpoint_nearteam( level.spawn_allies );
|
spawnpoint = maps/mp/gametypes/_spawnlogic::getspawnpoint_nearteam( level.spawn_allies );
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( isDefined( spawnpoint ) );
|
assert( isDefined( spawnpoint ) );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
if ( predictedspawn )
|
if ( predictedspawn )
|
||||||
{
|
{
|
||||||
self predictspawnpoint( spawnpoint.origin, spawnpoint.angles );
|
self predictspawnpoint( spawnpoint.origin, spawnpoint.angles );
|
||||||
@ -454,7 +440,7 @@ onspawnplayer( predictedspawn )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
updategametypedvars()
|
updategametypedvars() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level.flagcapturetime = getgametypesetting( "captureTime" );
|
level.flagcapturetime = getgametypesetting( "captureTime" );
|
||||||
level.flagtouchreturntime = getgametypesetting( "defuseTime" );
|
level.flagtouchreturntime = getgametypesetting( "defuseTime" );
|
||||||
@ -475,7 +461,7 @@ updategametypedvars()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
createflag( trigger )
|
createflag( trigger ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( trigger.target ) )
|
if ( isDefined( trigger.target ) )
|
||||||
{
|
{
|
||||||
@ -543,7 +529,7 @@ createflag( trigger )
|
|||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
createflagzone( trigger )
|
createflagzone( trigger ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
visuals = [];
|
visuals = [];
|
||||||
entityteam = trigger.script_team;
|
entityteam = trigger.script_team;
|
||||||
@ -551,7 +537,7 @@ createflagzone( trigger )
|
|||||||
{
|
{
|
||||||
entityteam = getotherteam( entityteam );
|
entityteam = getotherteam( entityteam );
|
||||||
}
|
}
|
||||||
flagzone = maps/mp/gametypes/_gameobjects::createuseobject( entityteam, trigger, visuals, ( 0, 0, -1 ), istring( entityteam + "_base" ) );
|
flagzone = maps/mp/gametypes/_gameobjects::createuseobject( entityteam, trigger, visuals, ( 0, 0, 0 ), istring( entityteam + "_base" ) );
|
||||||
flagzone maps/mp/gametypes/_gameobjects::allowuse( "friendly" );
|
flagzone maps/mp/gametypes/_gameobjects::allowuse( "friendly" );
|
||||||
flagzone maps/mp/gametypes/_gameobjects::setusetime( 0 );
|
flagzone maps/mp/gametypes/_gameobjects::setusetime( 0 );
|
||||||
flagzone maps/mp/gametypes/_gameobjects::setusetext( &"MP_CAPTURING_FLAG" );
|
flagzone maps/mp/gametypes/_gameobjects::setusetext( &"MP_CAPTURING_FLAG" );
|
||||||
@ -562,7 +548,7 @@ createflagzone( trigger )
|
|||||||
flag = level.teamflags[ entityteam ];
|
flag = level.teamflags[ entityteam ];
|
||||||
flag.flagbase = flagzone;
|
flag.flagbase = flagzone;
|
||||||
flagzone.flag = flag;
|
flagzone.flag = flag;
|
||||||
tracestart = trigger.origin + vectorScale( ( 0, 0, -1 ), 32 );
|
tracestart = trigger.origin + vectorScale( ( 0, 0, 1 ), 32 );
|
||||||
traceend = trigger.origin + vectorScale( ( 0, 0, -1 ), 32 );
|
traceend = trigger.origin + vectorScale( ( 0, 0, -1 ), 32 );
|
||||||
trace = bullettrace( tracestart, traceend, 0, undefined );
|
trace = bullettrace( tracestart, traceend, 0, undefined );
|
||||||
upangles = vectorToAngle( trace[ "normal" ] );
|
upangles = vectorToAngle( trace[ "normal" ] );
|
||||||
@ -574,7 +560,7 @@ createflagzone( trigger )
|
|||||||
return flagzone;
|
return flagzone;
|
||||||
}
|
}
|
||||||
|
|
||||||
createflaghint( team, origin )
|
createflaghint( team, origin ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
radius = 128;
|
radius = 128;
|
||||||
height = 64;
|
height = 64;
|
||||||
@ -586,7 +572,7 @@ createflaghint( team, origin )
|
|||||||
return trigger;
|
return trigger;
|
||||||
}
|
}
|
||||||
|
|
||||||
ctf()
|
ctf() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
level.flags = [];
|
level.flags = [];
|
||||||
level.teamflags = [];
|
level.teamflags = [];
|
||||||
@ -627,38 +613,33 @@ ctf()
|
|||||||
flag_triggers = getentarray( "ctf_flag_pickup_trig", "targetname" );
|
flag_triggers = getentarray( "ctf_flag_pickup_trig", "targetname" );
|
||||||
if ( !isDefined( flag_triggers ) || flag_triggers.size != 2 )
|
if ( !isDefined( flag_triggers ) || flag_triggers.size != 2 )
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
maps/mp/_utility::error( "Not enough ctf_flag_pickup_trig triggers found in map. Need two." );
|
maps/mp/_utility::error( "Not enough ctf_flag_pickup_trig triggers found in map. Need two." );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
index = 0;
|
for ( index = 0; index < flag_triggers.size; index++ )
|
||||||
while ( index < flag_triggers.size )
|
|
||||||
{
|
{
|
||||||
trigger = flag_triggers[ index ];
|
trigger = flag_triggers[ index ];
|
||||||
flag = createflag( trigger );
|
flag = createflag( trigger );
|
||||||
team = flag maps/mp/gametypes/_gameobjects::getownerteam();
|
team = flag maps/mp/gametypes/_gameobjects::getownerteam();
|
||||||
level.flags[ level.flags.size ] = flag;
|
level.flags[ level.flags.size ] = flag;
|
||||||
level.teamflags[ team ] = flag;
|
level.teamflags[ team ] = flag;
|
||||||
index++;
|
|
||||||
}
|
}
|
||||||
primaryflags = getentarray( "flag_primary", "targetname" );
|
primaryflags = getentarray( "flag_primary", "targetname" );
|
||||||
secondaryflags = getentarray( "flag_secondary", "targetname" );
|
secondaryflags = getentarray( "flag_secondary", "targetname" );
|
||||||
domflags = [];
|
domflags = [];
|
||||||
index = 0;
|
for ( index = 0; index < primaryflags.size; index++ )
|
||||||
while ( index < primaryflags.size )
|
|
||||||
{
|
{
|
||||||
domflags[ domflags.size ] = primaryflags[ index ];
|
domflags[ domflags.size ] = primaryflags[ index ];
|
||||||
index++;
|
|
||||||
}
|
}
|
||||||
index = 0;
|
for ( index = 0; index < secondaryflags.size; index++ )
|
||||||
while ( index < secondaryflags.size )
|
|
||||||
{
|
{
|
||||||
domflags[ domflags.size ] = secondaryflags[ index ];
|
domflags[ domflags.size ] = secondaryflags[ index ];
|
||||||
index++;
|
|
||||||
}
|
}
|
||||||
index = 0;
|
for ( index = 0; index < domflags.size; index++ )
|
||||||
while ( index < domflags.size )
|
|
||||||
{
|
{
|
||||||
trigger = domflags[ index ];
|
trigger = domflags[ index ];
|
||||||
if ( trigger.script_label == "_b" )
|
if ( trigger.script_label == "_b" )
|
||||||
@ -669,18 +650,18 @@ ctf()
|
|||||||
level.neutralflag = flag;
|
level.neutralflag = flag;
|
||||||
flag maps/mp/gametypes/_gameobjects::allowcarry( "any" );
|
flag maps/mp/gametypes/_gameobjects::allowcarry( "any" );
|
||||||
}
|
}
|
||||||
index++;
|
|
||||||
}
|
}
|
||||||
flag_zones = getentarray( "ctf_flag_zone_trig", "targetname" );
|
flag_zones = getentarray( "ctf_flag_zone_trig", "targetname" );
|
||||||
if ( !isDefined( flag_zones ) || flag_zones.size != 2 )
|
if ( !isDefined( flag_zones ) || flag_zones.size != 2 )
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
maps/mp/_utility::error( "Not enough ctf_flag_zone_trig triggers found in map. Need two." );
|
maps/mp/_utility::error( "Not enough ctf_flag_zone_trig triggers found in map. Need two." );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
index = 0;
|
for ( index = 0; index < flag_zones.size; index++ )
|
||||||
while ( index < flag_zones.size )
|
|
||||||
{
|
{
|
||||||
trigger = flag_zones[ index ];
|
trigger = flag_zones[ index ];
|
||||||
flagzone = createflagzone( trigger );
|
flagzone = createflagzone( trigger );
|
||||||
@ -690,19 +671,18 @@ ctf()
|
|||||||
level.flaghints[ team ] = createflaghint( team, trigger.origin );
|
level.flaghints[ team ] = createflaghint( team, trigger.origin );
|
||||||
facing_angle = getDvarInt( "scr_ctf_spawnPointFacingAngle" );
|
facing_angle = getDvarInt( "scr_ctf_spawnPointFacingAngle" );
|
||||||
setspawnpointsbaseweight( getotherteamsmask( team ), trigger.origin, facing_angle, level.spawnsystem.objective_facing_bonus );
|
setspawnpointsbaseweight( getotherteamsmask( team ), trigger.origin, facing_angle, level.spawnsystem.objective_facing_bonus );
|
||||||
index++;
|
|
||||||
}
|
}
|
||||||
createreturnmessageelems();
|
createreturnmessageelems();
|
||||||
}
|
}
|
||||||
|
|
||||||
ctf_icon_hide()
|
ctf_icon_hide() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level waittill( "game_ended" );
|
level waittill( "game_ended" );
|
||||||
level.teamflags[ "allies" ] maps/mp/gametypes/_gameobjects::setvisibleteam( "none" );
|
level.teamflags[ "allies" ] maps/mp/gametypes/_gameobjects::setvisibleteam( "none" );
|
||||||
level.teamflags[ "axis" ] maps/mp/gametypes/_gameobjects::setvisibleteam( "none" );
|
level.teamflags[ "axis" ] maps/mp/gametypes/_gameobjects::setvisibleteam( "none" );
|
||||||
}
|
}
|
||||||
|
|
||||||
removeinfluencers()
|
removeinfluencers() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( self.spawn_influencer_enemy_carrier ) )
|
if ( isDefined( self.spawn_influencer_enemy_carrier ) )
|
||||||
{
|
{
|
||||||
@ -721,19 +701,15 @@ removeinfluencers()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ondrop( player )
|
ondrop( player ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( player ) )
|
if ( isDefined( player ) )
|
||||||
{
|
{
|
||||||
player clearclientflag( 0 );
|
player clearclientflag( 0 );
|
||||||
}
|
}
|
||||||
_a825 = level.flagzones;
|
foreach ( goal in level.flagzones )
|
||||||
_k825 = getFirstArrayKey( _a825 );
|
|
||||||
while ( isDefined( _k825 ) )
|
|
||||||
{
|
{
|
||||||
goal = _a825[ _k825 ];
|
|
||||||
goal maps/mp/gametypes/_gameobjects::setflags( 0 );
|
goal maps/mp/gametypes/_gameobjects::setflags( 0 );
|
||||||
_k825 = getNextArrayKey( _a825, _k825 );
|
|
||||||
}
|
}
|
||||||
otherteam = self maps/mp/gametypes/_gameobjects::getownerteam();
|
otherteam = self maps/mp/gametypes/_gameobjects::getownerteam();
|
||||||
team = getotherteam( otherteam );
|
team = getotherteam( otherteam );
|
||||||
@ -810,7 +786,7 @@ ondrop( player )
|
|||||||
self.spawn_influencer_dropped = addsphereinfluencer( level.spawnsystem.einfluencer_type_game_mode, flag_origin, ss.ctf_dropped_influencer_radius, ss.ctf_dropped_influencer_score, player_team_mask | enemy_team_mask, "ctf_flag_dropped,r,s", maps/mp/gametypes/_spawning::get_score_curve_index( ss.ctf_dropped_influencer_score_curve ), level.idleflagreturntime, self.trigger );
|
self.spawn_influencer_dropped = addsphereinfluencer( level.spawnsystem.einfluencer_type_game_mode, flag_origin, ss.ctf_dropped_influencer_radius, ss.ctf_dropped_influencer_score, player_team_mask | enemy_team_mask, "ctf_flag_dropped,r,s", maps/mp/gametypes/_spawning::get_score_curve_index( ss.ctf_dropped_influencer_score_curve ), level.idleflagreturntime, self.trigger );
|
||||||
}
|
}
|
||||||
|
|
||||||
onpickup( player )
|
onpickup( player ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
carrierkilledby = self.carrierkilledby;
|
carrierkilledby = self.carrierkilledby;
|
||||||
self.carrierkilledby = undefined;
|
self.carrierkilledby = undefined;
|
||||||
@ -821,16 +797,12 @@ onpickup( player )
|
|||||||
}
|
}
|
||||||
player addplayerstatwithgametype( "PICKUPS", 1 );
|
player addplayerstatwithgametype( "PICKUPS", 1 );
|
||||||
self.ownerteam = player.team;
|
self.ownerteam = player.team;
|
||||||
_a945 = level.flagzones;
|
foreach ( goal in level.flagzones )
|
||||||
_k945 = getFirstArrayKey( _a945 );
|
|
||||||
while ( isDefined( _k945 ) )
|
|
||||||
{
|
{
|
||||||
goal = _a945[ _k945 ];
|
|
||||||
if ( goal.ownerteam != player.team )
|
if ( goal.ownerteam != player.team )
|
||||||
{
|
{
|
||||||
goal maps/mp/gametypes/_gameobjects::setflags( 1 );
|
goal maps/mp/gametypes/_gameobjects::setflags( 1 );
|
||||||
}
|
}
|
||||||
_k945 = getNextArrayKey( _a945, _k945 );
|
|
||||||
}
|
}
|
||||||
if ( level.touchreturn )
|
if ( level.touchreturn )
|
||||||
{
|
{
|
||||||
@ -880,7 +852,7 @@ onpickup( player )
|
|||||||
self.spawn_influencer_friendly_carrier = addsphereinfluencer( level.spawnsystem.einfluencer_type_game_mode, player.origin, ss.ctf_friendly_carrier_influencer_radius, ss.ctf_friendly_carrier_influencer_score, player_team_mask, "ctf_flag_friendly_carrier,r,s", maps/mp/gametypes/_spawning::get_score_curve_index( ss.ctf_friendly_carrier_influencer_score_curve ), 0, player );
|
self.spawn_influencer_friendly_carrier = addsphereinfluencer( level.spawnsystem.einfluencer_type_game_mode, player.origin, ss.ctf_friendly_carrier_influencer_radius, ss.ctf_friendly_carrier_influencer_score, player_team_mask, "ctf_flag_friendly_carrier,r,s", maps/mp/gametypes/_spawning::get_score_curve_index( ss.ctf_friendly_carrier_influencer_score_curve ), 0, player );
|
||||||
}
|
}
|
||||||
|
|
||||||
watchforscore()
|
watchforscore() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
level endon( "game_ended" );
|
level endon( "game_ended" );
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
@ -897,21 +869,13 @@ watchforscore()
|
|||||||
flag maps/mp/gametypes/_gameobjects::setvisibleteam( "none" );
|
flag maps/mp/gametypes/_gameobjects::setvisibleteam( "none" );
|
||||||
flag maps/mp/gametypes/_gameobjects::returnhome();
|
flag maps/mp/gametypes/_gameobjects::returnhome();
|
||||||
flag.visuals[ 0 ] hide();
|
flag.visuals[ 0 ] hide();
|
||||||
_a1063 = level.flags;
|
foreach ( baseflag in level.flags )
|
||||||
_k1063 = getFirstArrayKey( _a1063 );
|
|
||||||
while ( isDefined( _k1063 ) )
|
|
||||||
{
|
{
|
||||||
baseflag = _a1063[ _k1063 ];
|
|
||||||
baseflag.visuals[ 0 ] hide();
|
baseflag.visuals[ 0 ] hide();
|
||||||
_k1063 = getNextArrayKey( _a1063, _k1063 );
|
|
||||||
}
|
}
|
||||||
_a1067 = level.flagzones;
|
foreach ( goal in level.flagzones )
|
||||||
_k1067 = getFirstArrayKey( _a1067 );
|
|
||||||
while ( isDefined( _k1067 ) )
|
|
||||||
{
|
{
|
||||||
goal = _a1067[ _k1067 ];
|
|
||||||
goal maps/mp/gametypes/_gameobjects::setflags( 0 );
|
goal maps/mp/gametypes/_gameobjects::setflags( 0 );
|
||||||
_k1067 = getNextArrayKey( _a1067, _k1067 );
|
|
||||||
}
|
}
|
||||||
level.oneflagtimer.label = game[ "strings" ][ "flag_respawning_in" ];
|
level.oneflagtimer.label = game[ "strings" ][ "flag_respawning_in" ];
|
||||||
level.oneflagtimer settimer( level.flagrespawntime );
|
level.oneflagtimer settimer( level.flagrespawntime );
|
||||||
@ -926,17 +890,19 @@ watchforscore()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onpickupmusicstate( player )
|
onpickupmusicstate( player ) //checked changed at own discretion
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
wait 6;
|
wait 6;
|
||||||
if ( player.isflagcarrier )
|
if ( player.isflagcarrier )
|
||||||
{
|
{
|
||||||
|
//added from bo1 ctf.gsc
|
||||||
|
player thread maps\mp\gametypes\_globallogic_audio::set_music_on_player( "SUSPENSE", false, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ishome()
|
ishome() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( self.carrier ) )
|
if ( isDefined( self.carrier ) )
|
||||||
{
|
{
|
||||||
@ -949,7 +915,7 @@ ishome()
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
returnflag()
|
returnflag() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
team = self maps/mp/gametypes/_gameobjects::getownerteam();
|
team = self maps/mp/gametypes/_gameobjects::getownerteam();
|
||||||
otherteam = getotherteam( team );
|
otherteam = getotherteam( team );
|
||||||
@ -972,7 +938,7 @@ returnflag()
|
|||||||
maps/mp/gametypes/_globallogic_audio::leaderdialog( "theyreturn_flag", otherteam, "ctf_flag" );
|
maps/mp/gametypes/_globallogic_audio::leaderdialog( "theyreturn_flag", otherteam, "ctf_flag" );
|
||||||
}
|
}
|
||||||
|
|
||||||
oncapture( player )
|
oncapture( player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
team = player.pers[ "team" ];
|
team = player.pers[ "team" ];
|
||||||
enemyteam = getotherteam( team );
|
enemyteam = getotherteam( team );
|
||||||
@ -1015,13 +981,13 @@ oncapture( player )
|
|||||||
flag removeinfluencers();
|
flag removeinfluencers();
|
||||||
}
|
}
|
||||||
|
|
||||||
giveflagcapturexp( player )
|
giveflagcapturexp( player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
maps/mp/_scoreevents::processscoreevent( "flag_capture", player );
|
maps/mp/_scoreevents::processscoreevent( "flag_capture", player );
|
||||||
player recordgameevent( "capture" );
|
player recordgameevent( "capture" );
|
||||||
}
|
}
|
||||||
|
|
||||||
onreset()
|
onreset() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
update_hints();
|
update_hints();
|
||||||
team = self maps/mp/gametypes/_gameobjects::getownerteam();
|
team = self maps/mp/gametypes/_gameobjects::getownerteam();
|
||||||
@ -1032,7 +998,7 @@ onreset()
|
|||||||
self.visuals[ 0 ] clearclientflag( 6 );
|
self.visuals[ 0 ] clearclientflag( 6 );
|
||||||
}
|
}
|
||||||
|
|
||||||
getotherflag( flag )
|
getotherflag( flag ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( flag == level.flags[ 0 ] )
|
if ( flag == level.flags[ 0 ] )
|
||||||
{
|
{
|
||||||
@ -1041,7 +1007,7 @@ getotherflag( flag )
|
|||||||
return level.flags[ 0 ];
|
return level.flags[ 0 ];
|
||||||
}
|
}
|
||||||
|
|
||||||
onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shitloc, psoffsettime, deathanimduration )
|
onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shitloc, psoffsettime, deathanimduration ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( attacker ) && isplayer( attacker ) )
|
if ( isDefined( attacker ) && isplayer( attacker ) )
|
||||||
{
|
{
|
||||||
@ -1144,10 +1110,9 @@ onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shi
|
|||||||
}
|
}
|
||||||
if ( isDefined( attacker ) && isplayer( attacker ) && attacker.pers[ "team" ] != self.pers[ "team" ] )
|
if ( isDefined( attacker ) && isplayer( attacker ) && attacker.pers[ "team" ] != self.pers[ "team" ] )
|
||||||
{
|
{
|
||||||
while ( isDefined( self.flagcarried ) )
|
if ( isDefined( self.flagcarried ) )
|
||||||
{
|
{
|
||||||
index = 0;
|
for ( index = 0; index < level.flags.size; index++ )
|
||||||
while ( index < level.flags.size )
|
|
||||||
{
|
{
|
||||||
currentflag = level.flags[ index ];
|
currentflag = level.flags[ index ];
|
||||||
if ( currentflag.ownerteam == self.team )
|
if ( currentflag.ownerteam == self.team )
|
||||||
@ -1162,10 +1127,6 @@ onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
index++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
attacker recordgameevent( "kill_carrier" );
|
attacker recordgameevent( "kill_carrier" );
|
||||||
@ -1173,32 +1134,32 @@ onplayerkilled( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
createreturnmessageelems()
|
createreturnmessageelems() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level.returnmessageelems = [];
|
level.returnmessageelems = [];
|
||||||
level.returnmessageelems[ "allies" ][ "axis" ] = createservertimer( "objective", 1,4, "allies" );
|
level.returnmessageelems[ "allies" ][ "axis" ] = createservertimer( "objective", 1.4, "allies" );
|
||||||
level.returnmessageelems[ "allies" ][ "axis" ] setpoint( "TOPRIGHT", "TOPRIGHT", 0, 0 );
|
level.returnmessageelems[ "allies" ][ "axis" ] setpoint( "TOPRIGHT", "TOPRIGHT", 0, 0 );
|
||||||
level.returnmessageelems[ "allies" ][ "axis" ].label = &"MP_ENEMY_FLAG_RETURNING_IN";
|
level.returnmessageelems[ "allies" ][ "axis" ].label = &"MP_ENEMY_FLAG_RETURNING_IN";
|
||||||
level.returnmessageelems[ "allies" ][ "axis" ].alpha = 0;
|
level.returnmessageelems[ "allies" ][ "axis" ].alpha = 0;
|
||||||
level.returnmessageelems[ "allies" ][ "axis" ].archived = 0;
|
level.returnmessageelems[ "allies" ][ "axis" ].archived = 0;
|
||||||
level.returnmessageelems[ "allies" ][ "allies" ] = createservertimer( "objective", 1,4, "allies" );
|
level.returnmessageelems[ "allies" ][ "allies" ] = createservertimer( "objective", 1.4, "allies" );
|
||||||
level.returnmessageelems[ "allies" ][ "allies" ] setpoint( "TOPRIGHT", "TOPRIGHT", 0, 20 );
|
level.returnmessageelems[ "allies" ][ "allies" ] setpoint( "TOPRIGHT", "TOPRIGHT", 0, 20 );
|
||||||
level.returnmessageelems[ "allies" ][ "allies" ].label = &"MP_YOUR_FLAG_RETURNING_IN";
|
level.returnmessageelems[ "allies" ][ "allies" ].label = &"MP_YOUR_FLAG_RETURNING_IN";
|
||||||
level.returnmessageelems[ "allies" ][ "allies" ].alpha = 0;
|
level.returnmessageelems[ "allies" ][ "allies" ].alpha = 0;
|
||||||
level.returnmessageelems[ "allies" ][ "allies" ].archived = 0;
|
level.returnmessageelems[ "allies" ][ "allies" ].archived = 0;
|
||||||
level.returnmessageelems[ "axis" ][ "allies" ] = createservertimer( "objective", 1,4, "axis" );
|
level.returnmessageelems[ "axis" ][ "allies" ] = createservertimer( "objective", 1.4, "axis" );
|
||||||
level.returnmessageelems[ "axis" ][ "allies" ] setpoint( "TOPRIGHT", "TOPRIGHT", 0, 0 );
|
level.returnmessageelems[ "axis" ][ "allies" ] setpoint( "TOPRIGHT", "TOPRIGHT", 0, 0 );
|
||||||
level.returnmessageelems[ "axis" ][ "allies" ].label = &"MP_ENEMY_FLAG_RETURNING_IN";
|
level.returnmessageelems[ "axis" ][ "allies" ].label = &"MP_ENEMY_FLAG_RETURNING_IN";
|
||||||
level.returnmessageelems[ "axis" ][ "allies" ].alpha = 0;
|
level.returnmessageelems[ "axis" ][ "allies" ].alpha = 0;
|
||||||
level.returnmessageelems[ "axis" ][ "allies" ].archived = 0;
|
level.returnmessageelems[ "axis" ][ "allies" ].archived = 0;
|
||||||
level.returnmessageelems[ "axis" ][ "axis" ] = createservertimer( "objective", 1,4, "axis" );
|
level.returnmessageelems[ "axis" ][ "axis" ] = createservertimer( "objective", 1.4, "axis" );
|
||||||
level.returnmessageelems[ "axis" ][ "axis" ] setpoint( "TOPRIGHT", "TOPRIGHT", 0, 20 );
|
level.returnmessageelems[ "axis" ][ "axis" ] setpoint( "TOPRIGHT", "TOPRIGHT", 0, 20 );
|
||||||
level.returnmessageelems[ "axis" ][ "axis" ].label = &"MP_YOUR_FLAG_RETURNING_IN";
|
level.returnmessageelems[ "axis" ][ "axis" ].label = &"MP_YOUR_FLAG_RETURNING_IN";
|
||||||
level.returnmessageelems[ "axis" ][ "axis" ].alpha = 0;
|
level.returnmessageelems[ "axis" ][ "axis" ].alpha = 0;
|
||||||
level.returnmessageelems[ "axis" ][ "axis" ].archived = 0;
|
level.returnmessageelems[ "axis" ][ "axis" ].archived = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
returnflagaftertimemsg( time )
|
returnflagaftertimemsg( time ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( level.touchreturn || level.idleflagreturntime == 0 )
|
if ( level.touchreturn || level.idleflagreturntime == 0 )
|
||||||
{
|
{
|
||||||
@ -1215,19 +1176,23 @@ returnflagaftertimemsg( time )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
returnflaghudelems( time )
|
returnflaghudelems( time ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "picked_up" );
|
self endon( "picked_up" );
|
||||||
level endon( "game_ended" );
|
level endon( "game_ended" );
|
||||||
ownerteam = self maps/mp/gametypes/_gameobjects::getownerteam();
|
ownerteam = self maps/mp/gametypes/_gameobjects::getownerteam();
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( !level.returnmessageelems[ "axis" ][ ownerteam ].alpha );
|
assert( !level.returnmessageelems[ "axis" ][ ownerteam ].alpha );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
level.returnmessageelems[ "axis" ][ ownerteam ].alpha = 1;
|
level.returnmessageelems[ "axis" ][ ownerteam ].alpha = 1;
|
||||||
level.returnmessageelems[ "axis" ][ ownerteam ] settimer( time );
|
level.returnmessageelems[ "axis" ][ ownerteam ] settimer( time );
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( !level.returnmessageelems[ "allies" ][ ownerteam ].alpha );
|
assert( !level.returnmessageelems[ "allies" ][ ownerteam ].alpha );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
level.returnmessageelems[ "allies" ][ ownerteam ].alpha = 1;
|
level.returnmessageelems[ "allies" ][ ownerteam ].alpha = 1;
|
||||||
level.returnmessageelems[ "allies" ][ ownerteam ] settimer( time );
|
level.returnmessageelems[ "allies" ][ ownerteam ] settimer( time );
|
||||||
if ( time <= 0 )
|
if ( time <= 0 )
|
||||||
@ -1241,16 +1206,16 @@ returnflaghudelems( time )
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
clearreturnflaghudelems()
|
clearreturnflaghudelems() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
ownerteam = self maps/mp/gametypes/_gameobjects::getownerteam();
|
ownerteam = self maps/mp/gametypes/_gameobjects::getownerteam();
|
||||||
level.returnmessageelems[ "allies" ][ ownerteam ].alpha = 0;
|
level.returnmessageelems[ "allies" ][ ownerteam ].alpha = 0;
|
||||||
level.returnmessageelems[ "axis" ][ ownerteam ].alpha = 0;
|
level.returnmessageelems[ "axis" ][ ownerteam ].alpha = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
resetflagbaseeffect()
|
resetflagbaseeffect() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
wait 0,1;
|
wait 0.1;
|
||||||
if ( isDefined( self.baseeffect ) )
|
if ( isDefined( self.baseeffect ) )
|
||||||
{
|
{
|
||||||
self.baseeffect delete();
|
self.baseeffect delete();
|
||||||
@ -1265,7 +1230,7 @@ resetflagbaseeffect()
|
|||||||
triggerfx( self.baseeffect );
|
triggerfx( self.baseeffect );
|
||||||
}
|
}
|
||||||
|
|
||||||
turn_on()
|
turn_on() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( level.hardcoremode )
|
if ( level.hardcoremode )
|
||||||
{
|
{
|
||||||
@ -1274,12 +1239,12 @@ turn_on()
|
|||||||
self.origin = self.original_origin;
|
self.origin = self.original_origin;
|
||||||
}
|
}
|
||||||
|
|
||||||
turn_off()
|
turn_off() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self.origin = ( self.original_origin[ 0 ], self.original_origin[ 1 ], self.original_origin[ 2 ] - 10000 );
|
self.origin = ( self.original_origin[ 0 ], self.original_origin[ 1 ], self.original_origin[ 2 ] - 10000 );
|
||||||
}
|
}
|
||||||
|
|
||||||
update_hints()
|
update_hints() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
allied_flag = level.teamflags[ "allies" ];
|
allied_flag = level.teamflags[ "allies" ];
|
||||||
axis_flag = level.teamflags[ "axis" ];
|
axis_flag = level.teamflags[ "axis" ];
|
||||||
@ -1305,7 +1270,7 @@ update_hints()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
claim_trigger( trigger )
|
claim_trigger( trigger ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self clientclaimtrigger( trigger );
|
self clientclaimtrigger( trigger );
|
||||||
@ -1313,7 +1278,7 @@ claim_trigger( trigger )
|
|||||||
self clientreleasetrigger( trigger );
|
self clientreleasetrigger( trigger );
|
||||||
}
|
}
|
||||||
|
|
||||||
createflagspawninfluencer( entityteam )
|
createflagspawninfluencer( entityteam ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
ctf_friendly_base_influencer_score = level.spawnsystem.ctf_friendly_base_influencer_score;
|
ctf_friendly_base_influencer_score = level.spawnsystem.ctf_friendly_base_influencer_score;
|
||||||
ctf_friendly_base_influencer_score_curve = level.spawnsystem.ctf_friendly_base_influencer_score_curve;
|
ctf_friendly_base_influencer_score_curve = level.spawnsystem.ctf_friendly_base_influencer_score_curve;
|
||||||
@ -1328,7 +1293,7 @@ createflagspawninfluencer( entityteam )
|
|||||||
self.spawn_influencer_enemy = addsphereinfluencer( level.spawnsystem.einfluencer_type_game_mode, self.trigger.origin, ctf_enemy_base_influencer_radius, ctf_enemy_base_influencer_score, other_team_mask, "ctf_enemy_base,r,s", maps/mp/gametypes/_spawning::get_score_curve_index( ctf_enemy_base_influencer_score_curve ) );
|
self.spawn_influencer_enemy = addsphereinfluencer( level.spawnsystem.einfluencer_type_game_mode, self.trigger.origin, ctf_enemy_base_influencer_radius, ctf_enemy_base_influencer_score, other_team_mask, "ctf_enemy_base,r,s", maps/mp/gametypes/_spawning::get_score_curve_index( ctf_enemy_base_influencer_score_curve ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
ctf_gamemodespawndvars( reset_dvars )
|
ctf_gamemodespawndvars( reset_dvars ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
ss = level.spawnsystem;
|
ss = level.spawnsystem;
|
||||||
ss.ctf_friendly_base_influencer_score = set_dvar_float_if_unset( "scr_spawn_ctf_friendly_base_influencer_score", "0", reset_dvars );
|
ss.ctf_friendly_base_influencer_score = set_dvar_float_if_unset( "scr_spawn_ctf_friendly_base_influencer_score", "0", reset_dvars );
|
||||||
@ -1348,7 +1313,7 @@ ctf_gamemodespawndvars( reset_dvars )
|
|||||||
ss.ctf_dropped_influencer_radius = set_dvar_float_if_unset( "scr_spawn_ctf_dropped_influencer_radius", "" + ( 10 * get_player_height() ), reset_dvars );
|
ss.ctf_dropped_influencer_radius = set_dvar_float_if_unset( "scr_spawn_ctf_dropped_influencer_radius", "" + ( 10 * get_player_height() ), reset_dvars );
|
||||||
}
|
}
|
||||||
|
|
||||||
ctf_getteamkillpenalty( einflictor, attacker, smeansofdeath, sweapon )
|
ctf_getteamkillpenalty( einflictor, attacker, smeansofdeath, sweapon ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
teamkill_penalty = maps/mp/gametypes/_globallogic_defaults::default_getteamkillpenalty( einflictor, attacker, smeansofdeath, sweapon );
|
teamkill_penalty = maps/mp/gametypes/_globallogic_defaults::default_getteamkillpenalty( einflictor, attacker, smeansofdeath, sweapon );
|
||||||
if ( isDefined( self.isflagcarrier ) && self.isflagcarrier )
|
if ( isDefined( self.isflagcarrier ) && self.isflagcarrier )
|
||||||
@ -1358,7 +1323,7 @@ ctf_getteamkillpenalty( einflictor, attacker, smeansofdeath, sweapon )
|
|||||||
return teamkill_penalty;
|
return teamkill_penalty;
|
||||||
}
|
}
|
||||||
|
|
||||||
ctf_getteamkillscore( einflictor, attacker, smeansofdeath, sweapon )
|
ctf_getteamkillscore( einflictor, attacker, smeansofdeath, sweapon ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
teamkill_score = maps/mp/gametypes/_rank::getscoreinfovalue( "kill" );
|
teamkill_score = maps/mp/gametypes/_rank::getscoreinfovalue( "kill" );
|
||||||
if ( isDefined( self.isflagcarrier ) && self.isflagcarrier )
|
if ( isDefined( self.isflagcarrier ) && self.isflagcarrier )
|
||||||
@ -1367,3 +1332,5 @@ ctf_getteamkillscore( einflictor, attacker, smeansofdeath, sweapon )
|
|||||||
}
|
}
|
||||||
return int( teamkill_score );
|
return int( teamkill_score );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,13 +23,6 @@ patch_mp/maps/mp/bots/_bot.gsc
|
|||||||
patch_mp/maps/mp/bots/_bot_combat.gsc
|
patch_mp/maps/mp/bots/_bot_combat.gsc
|
||||||
patch_mp/maps/mp/bots/_bot_loadout.gsc
|
patch_mp/maps/mp/bots/_bot_loadout.gsc
|
||||||
|
|
||||||
patch_mp/maps/mp/gametypes/conf.gsc
|
|
||||||
patch_mp/maps/mp/gametypes/dm.gsc
|
|
||||||
patch_mp/maps/mp/gametypes/gun.gsc
|
|
||||||
patch_mp/maps/mp/gametypes/oic.gsc
|
|
||||||
patch_mp/maps/mp/gametypes/sas.gsc
|
|
||||||
patch_mp/maps/mp/gametypes/shrp.gsc
|
|
||||||
patch_mp/maps/mp/gametypes/tdm.gsc
|
|
||||||
patch_mp/maps/mp/gametypes/_callbacksetup.gsc
|
patch_mp/maps/mp/gametypes/_callbacksetup.gsc
|
||||||
patch_mp/maps/mp/gametypes/_damagefeedback.gsc
|
patch_mp/maps/mp/gametypes/_damagefeedback.gsc
|
||||||
patch_mp/maps/mp/gametypes/_healthoverlay.gsc
|
patch_mp/maps/mp/gametypes/_healthoverlay.gsc
|
||||||
@ -40,6 +33,20 @@ patch_mp/maps/mp/gametypes/_perplayer.gsc
|
|||||||
patch_mp/maps/mp/gametypes/_serversettings.gsc
|
patch_mp/maps/mp/gametypes/_serversettings.gsc
|
||||||
patch_mp/maps/mp/gametypes/_tweakables.gsc
|
patch_mp/maps/mp/gametypes/_tweakables.gsc
|
||||||
patch_mp/maps/mp/gametypes/_weapon_utils.gsc
|
patch_mp/maps/mp/gametypes/_weapon_utils.gsc
|
||||||
|
patch_mp/maps/mp/gametypes/conf.gsc
|
||||||
|
patch_mp/maps/mp/gametypes/ctf.gsc
|
||||||
|
patch_mp/maps/mp/gametypes/dem.gsc
|
||||||
|
patch_mp/maps/mp/gametypes/dm.gsc
|
||||||
|
patch_mp/maps/mp/gametypes/dom.gsc
|
||||||
|
patch_mp/maps/mp/gametypes/gun.gsc
|
||||||
|
patch_mp/maps/mp/gametypes/hq.gsc
|
||||||
|
patch_mp/maps/mp/gametypes/koth.gsc
|
||||||
|
patch_mp/maps/mp/gametypes/oic.gsc
|
||||||
|
patch_mp/maps/mp/gametypes/oneflag.gsc
|
||||||
|
patch_mp/maps/mp/gametypes/sas.gsc
|
||||||
|
patch_mp/maps/mp/gametypes/sd.gsc
|
||||||
|
patch_mp/maps/mp/gametypes/shrp.gsc
|
||||||
|
patch_mp/maps/mp/gametypes/tdm.gsc
|
||||||
```
|
```
|
||||||
### The following scripts are not checked yet, uploaded to setup a baseline:
|
### The following scripts are not checked yet, uploaded to setup a baseline:
|
||||||
```
|
```
|
||||||
@ -81,13 +88,6 @@ patch_mp/maps/mp/gametypes/_spectating.gsc
|
|||||||
patch_mp/maps/mp/gametypes/_wager.gsc
|
patch_mp/maps/mp/gametypes/_wager.gsc
|
||||||
patch_mp/maps/mp/gametypes/_weaponobjects.gsc
|
patch_mp/maps/mp/gametypes/_weaponobjects.gsc
|
||||||
patch_mp/maps/mp/gametypes/_weapons.gsc
|
patch_mp/maps/mp/gametypes/_weapons.gsc
|
||||||
patch_mp/maps/mp/gametypes/ctf.gsc
|
|
||||||
patch_mp/maps/mp/gametypes/dem.gsc
|
|
||||||
patch_mp/maps/mp/gametypes/dom.gsc
|
|
||||||
patch_mp/maps/mp/gametypes/hq.gsc
|
|
||||||
patch_mp/maps/mp/gametypes/koth.gsc
|
|
||||||
patch_mp/maps/mp/gametypes/oneflag.gsc
|
|
||||||
patch_mp/maps/mp/gametypes/sd.gsc
|
|
||||||
```
|
```
|
||||||
### The following scipts are dev scripts filled with dev calls making them useless to modify for now
|
### The following scipts are dev scripts filled with dev calls making them useless to modify for now
|
||||||
```
|
```
|
||||||
|
Loading…
x
Reference in New Issue
Block a user