checked 3 scripts 1 of which was a dual script

_copter, and _wager for patch_mp have been checked. _weapons for patch_mp and patch_zm have been checked.
This commit is contained in:
JezuzLizard 2020-05-19 09:42:09 -07:00
parent 2a63ea0438
commit 83a2e644ea
6 changed files with 1161 additions and 1347 deletions

View File

@ -1,5 +1,6 @@
//checked no includes
init()
init() //checked changed to match cerberus output
{
level.coptermodel = "vehicle_cobra_helicopter_fly";
precachemodel( level.coptermodel );
@ -7,55 +8,48 @@ init()
level.copter_maxvel = 700;
level.copter_rotspeed = 90;
level.copter_accellookahead = 2;
level.coptercenteroffset = vectorScale( ( 0, 0, -1 ), 72 );
level.coptertargetoffset = vectorScale( ( 0, 0, -1 ), 45 );
level.coptercenteroffset = vectorScale( ( 0, 0, 1 ), 72 );
level.coptertargetoffset = vectorScale( ( 0, 0, 1 ), 45 );
level.copterexplosion = loadfx( "explosions/fx_default_explosion" );
level.copterfinalexplosion = loadfx( "explosions/fx_large_vehicle_explosion" );
}
getabovebuildingslocation( location )
getabovebuildingslocation( location ) //checked changed to match cerberus output
{
trace = bullettrace( location + vectorScale( ( 0, 0, -1 ), 10000 ), location, 0, undefined );
trace = bullettrace( location + vectorScale( ( 0, 0, 1 ), 10000 ), location, 0, undefined );
startorigin = trace[ "position" ] + vectorScale( ( 0, 0, -1 ), 514 );
zpos = 0;
maxxpos = 13;
maxypos = 13;
xpos = 0;
while ( xpos < maxxpos )
for ( xpos = 0; xpos < maxxpos; xpos++ )
{
ypos = 0;
while ( ypos < maxypos )
for ( ypos = 0; ypos < maxypos; ypos++ )
{
thisstartorigin = startorigin + ( ( ( xpos / ( maxxpos - 1 ) ) - 0,5 ) * 1024, ( ( ypos / ( maxypos - 1 ) ) - 0,5 ) * 1024, 0 );
thisstartorigin = startorigin + ( ( ( xpos / ( maxxpos - 1 ) ) - 0.5 ) * 1024, ( ( ypos / ( maxypos - 1 ) ) - 0.5 ) * 1024, 0 );
thisorigin = bullettrace( thisstartorigin, thisstartorigin + vectorScale( ( 0, 0, -1 ), 10000 ), 0, undefined );
zpos += thisorigin[ "position" ][ 2 ];
ypos++;
}
xpos++;
}
zpos /= maxxpos * maxypos;
zpos += 850;
return ( location[ 0 ], location[ 1 ], zpos );
}
vectorangle( v1, v2 )
vectorangle( v1, v2 ) //checked changed to match cerberus output
{
dot = vectordot( v1, v2 );
if ( dot >= 1 )
{
return 0;
}
else
{
if ( dot <= -1 )
else if ( dot <= -1 )
{
return 180;
}
}
return acos( dot );
}
vectortowardsothervector( v1, v2, angle )
vectortowardsothervector( v1, v2, angle ) //checked matches cerberus output
{
dot = vectordot( v1, v2 );
if ( dot <= -1 )
@ -66,18 +60,18 @@ vectortowardsothervector( v1, v2, angle )
return vectorScale( v1, cos( angle ) ) + vectorScale( v3, sin( angle ) );
}
veclength( v )
veclength( v ) //checked changed to match cerberus output
{
return distance( ( 0, 0, -1 ), v );
return distance( ( 0, 0, 0 ), v );
}
createcopter( location, team, damagetrig )
createcopter( location, team, damagetrig ) //checked changed to match cerberus output dvars taken from the beta dump
{
location = getabovebuildingslocation( location );
scriptorigin = spawn( "script_origin", location );
scriptorigin.angles = vectorToAngle( ( 0, 0, -1 ) );
scriptorigin.angles = vectorToAngle( ( 1, 0, 0 ) );
copter = spawn( "script_model", location );
copter.angles = vectorToAngle( ( 0, 0, -1 ) );
copter.angles = vectorToAngle( ( 1, 0, 0 ) );
copter linkto( scriptorigin );
scriptorigin.copter = copter;
copter setmodel( level.coptermodel );
@ -87,15 +81,15 @@ createcopter( location, team, damagetrig )
scriptorigin.damagetrig = damagetrig;
scriptorigin.finaldest = location;
scriptorigin.finalzdest = location[ 2 ];
scriptorigin.desireddir = ( 0, 0, -1 );
scriptorigin.desireddir = ( 1, 0, 0 );
scriptorigin.desireddirentity = undefined;
scriptorigin.desireddirentityoffset = ( 0, 0, -1 );
scriptorigin.vel = ( 0, 0, -1 );
scriptorigin.desireddirentityoffset = ( 0, 0, 0 );
scriptorigin.vel = ( 0, 0, 0 );
scriptorigin.dontascend = 0;
scriptorigin.health = 2000;
if ( getDvar( #"A8262D2E" ) != "" )
if ( getDvar( "scr_copter_health" ) != "" )
{
scriptorigin.health = getDvarFloat( #"A8262D2E" );
scriptorigin.health = getDvarFloat( "scr_copter_health" );
}
scriptorigin.team = team;
scriptorigin thread copterai();
@ -103,7 +97,7 @@ createcopter( location, team, damagetrig )
return scriptorigin;
}
makecopterpassive()
makecopterpassive() //checked matches cerberus output
{
self.damagetrig notify( "unlink" );
self.damagetrig = undefined;
@ -112,7 +106,7 @@ makecopterpassive()
self.desireddir = undefined;
}
makecopteractive( damagetrig )
makecopteractive( damagetrig ) //checked matches cerberus output
{
damagetrig.origin = self.origin;
damagetrig thread mylinkto( self );
@ -121,18 +115,18 @@ makecopteractive( damagetrig )
self thread copterdamage( damagetrig );
}
mylinkto( obj )
mylinkto( obj ) //checked matches cerberus output
{
self endon( "unlink" );
while ( 1 )
{
self.angles = obj.angles;
self.origin = obj.origin;
wait 0,1;
wait 0.1;
}
}
setcopterdefensearea( areaent )
setcopterdefensearea( areaent ) //checked changed to match cerberus output
{
self.areaent = areaent;
self.areadescentpoints = [];
@ -140,15 +134,13 @@ setcopterdefensearea( areaent )
{
self.areadescentpoints = getentarray( areaent.target, "targetname" );
}
i = 0;
while ( i < self.areadescentpoints.size )
for ( i = 0; i < self.areadescentpoints.size; i++ )
{
self.areadescentpoints[ i ].targetent = getent( self.areadescentpoints[ i ].target, "targetname" );
i++;
}
}
copterai()
copterai() //checked changed to match cerberus output and partially the beta dump
{
self thread coptermove();
self thread coptershoot();
@ -160,16 +152,16 @@ copterai()
returningtoarea = 0;
while ( 1 )
{
while ( !isDefined( self.areaent ) )
if ( !isDefined( self.areaent ) )
{
wait 1;
continue;
}
players = level.players;
enemytargets = [];
while ( self.team != "neutral" )
if ( self.team != "neutral" )
{
i = 0;
while ( i < players.size )
for ( i = 0; i < players.size; i++ )
{
if ( isalive( players[ i ] ) && isDefined( players[ i ].pers[ "team" ] ) && players[ i ].pers[ "team" ] != self.team && !isDefined( players[ i ].usingobj ) )
{
@ -180,30 +172,25 @@ copterai()
enemytargets[ enemytargets.size ] = players[ i ];
}
}
i++;
}
}
insidetargets = [];
outsidetargets = [];
skyheight = bullettrace( self.origin, self.origin + vectorScale( ( 0, 0, -1 ), 10000 ), 0, undefined )[ "position" ][ 2 ] - 10;
skyheight = bullettrace( self.origin, self.origin + vectorScale( ( 0, 0, 1 ), 10000 ), 0, undefined )[ "position" ][ 2 ] - 10;
besttarget = undefined;
bestweight = 0;
i = 0;
while ( i < enemytargets.size )
for ( i = 0; i < enemytargets.size; i++ )
{
inside = 0;
trace = bullettrace( enemytargets[ i ].origin + vectorScale( ( 0, 0, -1 ), 10 ), enemytargets[ i ].origin + vectorScale( ( 0, 0, -1 ), 10000 ), 0, undefined );
trace = bullettrace( enemytargets[ i ].origin + vectorScale( ( 0, 0, 1 ), 10 ), enemytargets[ i ].origin + vectorScale( ( 0, 0, 1 ), 10000 ), 0, undefined );
if ( trace[ "position" ][ 2 ] >= skyheight )
{
outsidetargets[ outsidetargets.size ] = enemytargets[ i ];
i++;
continue;
}
else
{
insidetargets[ insidetargets.size ] = enemytargets[ i ];
}
i++;
}
gotopos = undefined;
calcedgotopos = 0;
@ -218,7 +205,6 @@ copterai()
if ( isDefined( descendingent ) )
{
gotopos = result[ "position" ];
break;
}
else
{
@ -226,19 +212,18 @@ copterai()
}
}
}
else olddescendingent = descendingent;
else
{
olddescendingent = descendingent;
if ( insidetargets.size == 0 )
{
flying = 1;
}
else
{
if ( outsidetargets.size > 0 )
else if ( outsidetargets.size > 0 )
{
if ( !isDefined( descendingent ) )
{
flying = 1;
break;
}
else
{
@ -265,7 +250,6 @@ copterai()
descendingent = result[ "descendEnt" ];
gotopos = result[ "position" ];
reacheddescendingent = 0;
break;
}
else if ( isDefined( descendingent ) )
{
@ -277,7 +261,6 @@ copterai()
{
gotopos = descendingent.origin;
}
break;
}
else
{
@ -293,20 +276,20 @@ copterai()
{
desireddist = 2560;
disttoarea = distance( ( self.origin[ 0 ], self.origin[ 1 ], self.areaent.origin[ 2 ] ), self.areaent.origin );
if ( outsidetargets.size == 0 && disttoarea > ( self.areaent.radius + ( desireddist * 0,25 ) ) )
if ( outsidetargets.size == 0 && disttoarea > ( self.areaent.radius + ( desireddist * 0.25 ) ) )
{
returningtoarea = 1;
}
else
{
if ( disttoarea < ( self.areaent.radius * 0,5 ) )
if ( disttoarea < ( self.areaent.radius * 0.5 ) )
{
returningtoarea = 0;
}
}
while ( outsidetargets.size == 0 && !returningtoarea )
if ( outsidetargets.size == 0 && !returningtoarea )
{
while ( self.team != "neutral" )
if ( self.team != "neutral" )
{
i = 0;
while ( i < players.size )
@ -326,8 +309,7 @@ copterai()
}
best = undefined;
bestdist = 0;
i = 0;
while ( i < outsidetargets.size )
for ( i = 0; i < outsidetargets.size; i++ )
{
dist = abs( distance( outsidetargets[ i ].origin, self.origin ) - desireddist );
if ( !isDefined( best ) || dist < bestdist )
@ -335,7 +317,6 @@ copterai()
best = outsidetargets[ i ];
bestdist = dist;
}
i++;
}
if ( isDefined( best ) )
{
@ -357,42 +338,51 @@ copterai()
}
continue;
}
else if ( distance( self.origin, descendingent.origin ) < descendingent.radius )
else
{
if ( distance( self.origin, descendingent.origin ) < descendingent.radius )
{
reacheddescendingent = 1;
}
if ( isDefined( olddescendingent ) )
if ( isdefined( oldDescendingEnt ) && oldDescendingEnt == descendingEnt )
{
godirectly = olddescendingent == descendingent;
}
if ( godirectly )
{
godirectly = reacheddescendingent;
}
self.desireddir = vectornormalize( descendingent.targetent.origin - gotopos - level.coptercenteroffset );
self.desireddirentity = descendingent.targetent;
self.desireddirentityoffset = ( 0, 0, -1 );
if ( gotopos != self.origin )
{
self setcopterdest( gotopos - level.coptercenteroffset, 1, godirectly );
wait 0,3;
continue;
goDirectly = 1;
}
else
{
wait 0,3;
goDirectly = 0;
}
if ( goDirectly && reachedDescendingEnt )
{
goDirectly = 1;
}
else
{
goDirectly = 0;
}
self.desireddir = vectornormalize( descendingent.targetent.origin - gotopos - level.coptercenteroffset );
self.desireddirentity = descendingent.targetent;
self.desireddirentityoffset = ( 0, 0, 0 );
if ( gotopos != self.origin )
{
self setcopterdest( gotopos - level.coptercenteroffset, 1, godirectly );
wait 0.3;
}
else
{
wait 0.3;
}
}
}
}
determinebestpos( targets, descendent, startorigin )
determinebestpos( targets, descendent, startorigin ) //checked changed to match cerberus output
{
targetpos = descendent.targetent.origin;
circleradius = distance( targetpos, descendent.origin );
bestpoint = undefined;
bestdist = 0;
i = 0;
while ( i < targets.size )
for ( i = 0; i < targets.size; i++ )
{
enemypos = targets[ i ].origin + level.coptertargetoffset;
passed = bullettracepassed( enemypos, targetpos, 0, undefined );
@ -413,19 +403,17 @@ determinebestpos( targets, descendent, startorigin )
}
}
}
i++;
}
return bestpoint;
}
determinebestent( targets, descendents, startorigin )
determinebestent( targets, descendents, startorigin ) //checked changed to match cerberus output
{
result = [];
bestpos = undefined;
bestent = 0;
bestdist = 0;
i = 0;
while ( i < descendents.size )
for ( i = 0; i < descendents.size; i++ )
{
thispos = determinebestpos( targets, descendents[ i ], startorigin );
if ( isDefined( thispos ) )
@ -438,7 +426,6 @@ determinebestent( targets, descendents, startorigin )
bestdist = thisdist;
}
}
i++;
}
if ( isDefined( bestpos ) )
{
@ -449,7 +436,7 @@ determinebestent( targets, descendents, startorigin )
return result;
}
determinebestattackpos( targetpos, curpos, desireddist )
determinebestattackpos( targetpos, curpos, desireddist ) //checked changed to match cerberus output
{
targetposcopterheight = ( targetpos[ 0 ], targetpos[ 1 ], curpos[ 2 ] );
attackdirx = curpos - targetposcopterheight;
@ -457,8 +444,7 @@ determinebestattackpos( targetpos, curpos, desireddist )
attackdiry = ( 0 - attackdirx[ 1 ], attackdirx[ 0 ], 0 );
bestpos = undefined;
bestdist = 0;
i = 0;
while ( i < 8 )
for ( i = 0; i < 8; i++ )
{
theta = ( i / 8 ) * 360;
thisdir = vectorScale( attackdirx, cos( theta ) ) + vectorScale( attackdiry, sin( theta ) );
@ -473,14 +459,15 @@ determinebestattackpos( targetpos, curpos, desireddist )
bestdist = thisdist;
}
}
i++;
}
gotopos = undefined;
if ( isDefined( bestpos ) )
{
gotopos = bestpos;
}
else dist = distance( targetposcopterheight, curpos );
else
{
dist = distance( targetposcopterheight, curpos );
if ( dist > desireddist )
{
gotopos = self.origin + vectorScale( vectornormalize( attackdirx ), 0 - dist - desireddist );
@ -489,10 +476,11 @@ determinebestattackpos( targetpos, curpos, desireddist )
{
gotopos = self.origin;
}
}
return gotopos;
}
getrandompos( origin, radius )
getrandompos( origin, radius ) //checked does not match cerberus output does match beta dump leaving as is
{
pos = origin + ( ( randomfloat( 2 ) - 1 ) * radius, ( randomfloat( 2 ) - 1 ) * radius, 0 );
while ( distancesquared( pos, origin ) > ( radius * radius ) )
@ -502,7 +490,7 @@ getrandompos( origin, radius )
return pos;
}
coptershoot()
coptershoot() //checked changed to match cerberus output
{
self endon( "death" );
self endon( "passive" );
@ -527,31 +515,29 @@ coptershoot()
{
self playsound( "mp_copter_shoot" );
numshots = 20;
i = 0;
while ( i < numshots )
for ( i = 0; i < numshots; i++ )
{
mypos = self.origin + level.coptercenteroffset;
dir = anglesToForward( self.angles );
dir += ( ( randomfloat( 2 ) - 1 ) * 0,015, ( randomfloat( 2 ) - 1 ) * 0,015, ( randomfloat( 2 ) - 1 ) * 0,015 );
dir += ( ( randomfloat( 2 ) - 1 ) * 0.015, ( randomfloat( 2 ) - 1 ) * 0.015, ( randomfloat( 2 ) - 1 ) * 0.015 );
dir = vectornormalize( dir );
self mymagicbullet( mypos, dir );
wait 0,075;
i++;
wait 0.075;
}
wait 0,25;
wait 0.25;
}
}
}
wait 0,25;
wait 0.25;
}
}
mymagicbullet( pos, dir )
mymagicbullet( pos, dir ) //checked matches cerberus output dvars found in beta dump
{
damage = 20;
if ( getDvar( #"9E8F8CB7" ) != "" )
if ( getDvar( "scr_copter_damage" ) != "" )
{
damage = getDvarInt( #"9E8F8CB7" );
damage = getDvarInt( "scr_copter_damage" );
}
trace = bullettrace( pos, pos + vectorScale( dir, 10000 ), 1, undefined );
if ( isDefined( trace[ "entity" ] ) && isplayer( trace[ "entity" ] ) && isalive( trace[ "entity" ] ) )
@ -560,7 +546,7 @@ mymagicbullet( pos, dir )
}
}
setcopterdest( newlocation, descend, dontascend )
setcopterdest( newlocation, descend, dontascend ) //checked matches cerberus output
{
self.finaldest = getabovebuildingslocation( newlocation );
if ( isDefined( descend ) && descend )
@ -579,13 +565,13 @@ setcopterdest( newlocation, descend, dontascend )
}
}
notifyarrived()
notifyarrived() //checked matches cerberus output
{
wait 0,05;
wait 0.05;
self notify( "arrived" );
}
coptermove()
coptermove() //checked changed to match cerberus output
{
self endon( "death" );
if ( isDefined( self.coptermoverunning ) )
@ -594,8 +580,8 @@ coptermove()
}
self.coptermoverunning = 1;
self.intransit = 0;
interval = 0,15;
zinterp = 0,1;
interval = 0.15;
zinterp = 0.1;
tiltamnt = 0;
while ( 1 )
{
@ -633,9 +619,11 @@ coptermove()
}
else
{
/*
/#
assert( movingvertically );
#/
*/
thisdest = ( self.origin[ 0 ], self.origin[ 1 ], desiredz );
}
movevec = thisdest - self.origin;
@ -652,15 +640,13 @@ coptermove()
self.vel = vectorScale( self.vel, level.copter_maxvel / vlen );
}
thisdest = self.origin + vectorScale( self.vel, interval );
self moveto( thisdest, interval * 0,999 );
self moveto( thisdest, interval * 0.999 );
speed = veclength( self.vel );
if ( isDefined( self.desireddirentity ) && isDefined( self.desireddirentity.origin ) )
{
self.destdir = vectornormalize( ( self.desireddirentity.origin + self.desireddirentityoffset ) - ( self.origin + level.coptercenteroffset ) );
}
else
{
if ( isDefined( self.desireddir ) )
else if ( isDefined( self.desireddir ) )
{
self.destdir = self.desireddir;
break;
@ -674,7 +660,7 @@ coptermove()
else
{
tiltamnt = speed / level.copter_maxvel;
tiltamnt = ( tiltamnt - 0,1 ) / 0,9;
tiltamnt = ( tiltamnt - 0.1 ) / 0.9;
if ( tiltamnt < 0 )
{
tiltamnt = 0;
@ -682,13 +668,12 @@ coptermove()
self.destdir = movevec;
self.destdir = vectornormalize( ( self.destdir[ 0 ], self.destdir[ 1 ], 0 ) );
tiltamnt *= 1 - ( vectorangle( anglesToForward( self.angles ), self.destdir ) / 180 );
self.destdir = vectornormalize( ( self.destdir[ 0 ], self.destdir[ 1 ], tiltamnt * -0,4 ) );
}
self.destdir = vectornormalize( ( self.destdir[ 0 ], self.destdir[ 1 ], tiltamnt * -0.4 ) );
}
newdir = self.destdir;
if ( newdir[ 2 ] < -0,4 )
if ( newdir[ 2 ] < -0.4 )
{
newdir = vectornormalize( ( newdir[ 0 ], newdir[ 1 ], -0,4 ) );
newdir = vectornormalize( ( newdir[ 0 ], newdir[ 1 ], -0.4 ) );
}
copterangles = self.angles;
copterangles = combineangles( copterangles, vectorScale( ( 0, 0, -1 ), 90 ) );
@ -698,7 +683,7 @@ coptermove()
newdir2d = vectornormalize( ( newdir[ 0 ], newdir[ 1 ], 0 ) );
angle = vectorangle( olddir2d, newdir2d );
angle3d = vectorangle( olddir, newdir );
if ( angle > 0,001 && thisrotspeed > 0,001 )
if ( angle > 0.001 && thisrotspeed > 0.001 )
{
thisangle = thisrotspeed * interval;
if ( thisangle > angle )
@ -711,12 +696,10 @@ coptermove()
interpz = oldz + ( ( newz - oldz ) * ( thisangle / angle ) );
newdir = vectornormalize( ( newdir2d[ 0 ], newdir2d[ 1 ], interpz ) );
copterangles = vectorToAngle( newdir );
copterangles = combineangles( copterangles, vectorScale( ( 0, 0, -1 ), 90 ) );
self rotateto( copterangles, interval * 0,999 );
copterangles = combineangles( copterangles, vectorScale( ( 0, -1, 0 ), 90 ) );
self rotateto( copterangles, interval * 0.999 );
}
else
{
if ( angle3d > 0,001 && thisrotspeed > 0,001 )
else if ( angle3d > 0.001 && thisrotspeed > 0.001 )
{
thisangle = thisrotspeed * interval;
if ( thisangle > angle3d )
@ -726,9 +709,8 @@ coptermove()
newdir = vectortowardsothervector( olddir, newdir, thisangle );
newdir = vectornormalize( newdir );
copterangles = vectorToAngle( newdir );
copterangles = combineangles( copterangles, vectorScale( ( 0, 0, -1 ), 90 ) );
self rotateto( copterangles, interval * 0,999 );
}
copterangles = combineangles( copterangles, vectorScale( ( 0, -1, 0 ), 90 ) );
self rotateto( copterangles, interval * 0.999 );
}
wait interval;
}
@ -740,7 +722,7 @@ copterdamage( damagetrig )
while ( 1 )
{
damagetrig waittill( "damage", amount, attacker );
while ( isDefined( attacker ) && isplayer( attacker ) && isDefined( attacker.pers[ "team" ] ) && attacker.pers[ "team" ] == self.team )
if ( isDefined( attacker ) && isplayer( attacker ) && isDefined( attacker.pers[ "team" ] ) && attacker.pers[ "team" ] == self.team )
{
continue;
}
@ -753,13 +735,13 @@ copterdamage( damagetrig )
}
}
copterdie()
copterdie() //checked changed to match cerberus output
{
self endon( "passive" );
self death_notify_wrapper();
self.dead = 1;
self thread copterexplodefx();
interval = 0,2;
interval = 0.2;
rottime = 15;
self rotateyaw( 360 + randomfloat( 360 ), rottime );
self rotatepitch( 360 + randomfloat( 360 ), rottime );
@ -773,12 +755,9 @@ copterdie()
{
break;
}
else
{
self moveto( newpos, interval * 0,999 );
wait interval;
}
}
playfx( level.copterfinalexplosion, self.origin );
fakeself = spawn( "script_origin", self.origin );
fakeself playsound( "mp_copter_explosion" );
@ -788,7 +767,7 @@ copterdie()
fakeself delete();
}
deletecopter()
deletecopter() //checked matches cerberus output
{
if ( isDefined( self.damagetrig ) )
{
@ -799,13 +778,14 @@ deletecopter()
self delete();
}
copterexplodefx()
copterexplodefx() //checked matches cerberus output
{
self endon( "finaldeath" );
while ( 1 )
{
playfx( level.copterexplosion, self.origin );
self playsound( "mp_copter_explosion" );
wait ( 0,5 + randomfloat( 1 ) );
wait ( 0.5 + randomfloat( 1 ) );
}
}

View File

@ -1,3 +1,4 @@
//checked includes match cerberus output
#include maps/mp/killstreaks/_killstreaks;
#include maps/mp/gametypes/_class;
#include maps/mp/gametypes/_globallogic_audio;
@ -10,7 +11,7 @@
#include common_scripts/utility;
#include maps/mp/_utility;
init()
init() //checked matches cerberus output
{
precachestring( &"MP_HEADS_UP" );
precachestring( &"MP_U2_ONLINE" );
@ -37,7 +38,7 @@ init()
level.takelivesondeath = 1;
}
onplayerconnect()
onplayerconnect() //checked matches cerberus output
{
for ( ;; )
{
@ -47,7 +48,7 @@ onplayerconnect()
}
}
initwagerplayer()
initwagerplayer() //checked changed to match cerberus output
{
self endon( "disconnect" );
self waittill( "spawned_player" );
@ -57,7 +58,7 @@ initwagerplayer()
self.pers[ "wager_sideBetWinnings" ] = 0;
self.pers[ "wager_sideBetLosses" ] = 0;
}
if ( isDefined( level.inthemoneyonradar ) || level.inthemoneyonradar && isDefined( level.firstplaceonradar ) && level.firstplaceonradar )
if ( isDefined( level.inthemoneyonradar ) && level.inthemoneyonradar || isDefined( level.firstplaceonradar ) && level.firstplaceonradar )
{
self.pers[ "hasRadar" ] = 1;
self.hasspyplane = 1;
@ -70,7 +71,7 @@ initwagerplayer()
self thread deductplayerante();
}
ondisconnect()
ondisconnect() //checked matches cerberus output
{
level endon( "game_ended" );
self endon( "player_eliminated" );
@ -78,7 +79,7 @@ ondisconnect()
level notify( "player_eliminated" );
}
deductplayerante()
deductplayerante() //checked matches cerberus output
{
if ( isDefined( self.pers[ "hasPaidWagerAnte" ] ) )
{
@ -109,7 +110,7 @@ deductplayerante()
self thread maps/mp/gametypes/_persistence::uploadstatssoon();
}
incrementescrowforplayer( amount )
incrementescrowforplayer( amount ) //checked matches cerberus output
{
if ( !isDefined( self ) || !isplayer( self ) )
{
@ -130,7 +131,7 @@ incrementescrowforplayer( amount )
game[ "escrows" ][ game[ "escrows" ].size ] = escrowstruct;
}
clearescrows()
clearescrows() //checked changed to match cerberus output
{
if ( !isDefined( game[ "escrows" ] ) )
{
@ -138,22 +139,20 @@ clearescrows()
}
escrows = game[ "escrows" ];
numescrows = escrows.size;
i = 0;
while ( i < numescrows )
for ( i = 0; i < numescrows; i++ )
{
escrowstruct = escrows[ i ];
i++;
}
game[ "escrows" ] = [];
}
addrecentearningstostat( recentearnings )
addrecentearningstostat( recentearnings ) //checked matches cerberus output
{
currearnings = self maps/mp/gametypes/_persistence::getrecentstat( 1, 0, "score" );
self maps/mp/gametypes/_persistence::setrecentstat( 1, 0, "score", currearnings + recentearnings );
}
prematchperiod()
prematchperiod() //checked matches cerberus output
{
if ( !level.wagermatch )
{
@ -161,7 +160,7 @@ prematchperiod()
}
}
finalizewagerround()
finalizewagerround() //checked matches cerberus output
{
if ( level.wagermatch == 0 )
{
@ -176,9 +175,13 @@ finalizewagerround()
determinewagerwinnings()
{
if ( isDefined( level.dontcalcwagerwinnings ) )
if ( !isDefined( level.dontcalcwagerwinnings ) || !level.dontcalcwagerwinnings )
{
shouldcalculatewinnings = !level.dontcalcwagerwinnings;
shouldcalculatewinnings = 0;
}
else
{
shouldcalculatewinnings = 1;
}
if ( !shouldcalculatewinnings )
{
@ -194,33 +197,28 @@ determinewagerwinnings()
}
}
calculatefreeforallpayouts()
calculatefreeforallpayouts() //checked changed to match cerberus output
{
playerrankings = level.placement[ "all" ];
payoutpercentages = array( 0,5, 0,3, 0,2 );
payoutpercentages = array( 0.5, 0.3, 0.2 );
if ( playerrankings.size == 2 )
{
payoutpercentages = array( 0,7, 0,3 );
payoutpercentages = array( 0.7, 0.3 );
}
else
{
if ( playerrankings.size == 1 )
else if ( playerrankings.size == 1 )
{
payoutpercentages = array( 1 );
}
}
setwagerwinningsonplayers( level.players, 0 );
if ( isDefined( level.hostforcedend ) && level.hostforcedend )
{
wagerbet = getDvarInt( "scr_wagerBet" );
i = 0;
while ( i < playerrankings.size )
for ( i = 0; i < playerrankings.size; i++ )
{
if ( !playerrankings[ i ] islocaltohost() )
{
playerrankings[ i ].wagerwinnings = wagerbet;
}
i++;
}
}
else if ( level.players.size == 1 )
@ -233,8 +231,7 @@ calculatefreeforallpayouts()
cumulativepayoutpercentage = payoutpercentages[ 0 ];
playergroup = [];
playergroup[ playergroup.size ] = playerrankings[ 0 ];
i = 1;
while ( i < playerrankings.size )
for ( i = 1; i < playerrankings.size; i++ )
{
if ( playerrankings[ i ].pers[ "score" ] < playergroup[ 0 ].pers[ "score" ] )
{
@ -248,20 +245,18 @@ calculatefreeforallpayouts()
{
cumulativepayoutpercentage += payoutpercentages[ currentpayoutpercentage ];
}
i++;
}
setwagerwinningsonplayers( playergroup, int( ( game[ "wager_pot" ] * cumulativepayoutpercentage ) / playergroup.size ) );
}
}
calculateplacesbasedonscore()
calculateplacesbasedonscore() //checked changed to match cerberus output
{
level.playerplaces = array( [], [], [] );
playerrankings = level.placement[ "all" ];
placementscores = array( playerrankings[ 0 ].pers[ "score" ], -1, -1 );
currentplace = 0;
index = 0;
while ( index < playerrankings.size && currentplace < placementscores.size )
for ( index = 0; index < playerrankings.size && currentplace < placementscores.size; index++ )
{
player = playerrankings[ index ];
if ( player.pers[ "score" ] < placementscores[ currentplace ] )
@ -269,19 +264,15 @@ calculateplacesbasedonscore()
currentplace++;
if ( currentplace >= level.playerplaces.size )
{
return;
break;
}
else
{
placementscores[ currentplace ] = player.pers[ "score" ];
}
level.playerplaces[ currentplace ][ level.playerplaces[ currentplace ].size ] = player;
index++;
}
}
}
calculateteampayouts()
calculateteampayouts() //checked changed to match cerberus output
{
winner = maps/mp/gametypes/_globallogic::determineteamwinnerbygamestat( "teamScores" );
if ( winner == "tie" )
@ -290,8 +281,7 @@ calculateteampayouts()
return;
}
playersonwinningteam = [];
index = 0;
while ( index < level.players.size )
for ( index = 0; index < level.players.size; index++ )
{
player = level.players[ index ];
player.wagerwinnings = 0;
@ -299,7 +289,6 @@ calculateteampayouts()
{
playersonwinningteam[ playersonwinningteam.size ] = player;
}
index++;
}
if ( playersonwinningteam.size == 0 )
{
@ -310,17 +299,15 @@ calculateteampayouts()
setwagerwinningsonplayers( playersonwinningteam, winningssplit );
}
setwagerwinningsonplayers( players, amount )
setwagerwinningsonplayers( players, amount ) //checked changed to match cerberus output
{
index = 0;
while ( index < players.size )
for ( index = 0; index < players.size; index++ )
{
players[ index ].wagerwinnings = amount;
index++;
}
}
finalizewagergame()
finalizewagergame() //checked changed to match cerberus output
{
level.wagergamefinalized = 1;
if ( level.wagermatch == 0 )
@ -330,10 +317,9 @@ finalizewagergame()
determinewagerwinnings();
determinetopearners();
players = level.players;
wait 0,5;
wait 0.5;
playerrankings = level.wagertopearners;
index = 0;
while ( index < players.size )
for ( index = 0; index < players.size; index++ )
{
player = players[ index ];
if ( isDefined( player.pers[ "wager_sideBetWinnings" ] ) )
@ -348,12 +334,11 @@ finalizewagergame()
{
maps/mp/gametypes/_globallogic_score::updatewinstats( player );
}
index++;
}
clearescrows();
}
payoutwagerwinnings( player, winnings )
payoutwagerwinnings( player, winnings ) //checked matches cerberus output
{
if ( winnings == 0 )
{
@ -365,12 +350,11 @@ payoutwagerwinnings( player, winnings )
player addrecentearningstostat( winnings );
}
determinetopearners()
determinetopearners() //checked changed to match beta dump
{
topwinnings = array( -1, -1, -1 );
level.wagertopearners = [];
index = 0;
while ( index < level.players.size )
for ( index = 0; index < level.players.size; index++ )
{
player = level.players[ index ];
if ( !isDefined( player.wagerwinnings ) )
@ -385,8 +369,6 @@ determinetopearners()
level.wagertopearners[ 2 ] = level.wagertopearners[ 1 ];
level.wagertopearners[ 1 ] = level.wagertopearners[ 0 ];
level.wagertopearners[ 0 ] = player;
index++;
continue;
}
else if ( player.wagerwinnings > topwinnings[ 1 ] )
{
@ -394,22 +376,16 @@ determinetopearners()
topwinnings[ 1 ] = player.wagerwinnings;
level.wagertopearners[ 2 ] = level.wagertopearners[ 1 ];
level.wagertopearners[ 1 ] = player;
index++;
continue;
}
else
{
if ( player.wagerwinnings > topwinnings[ 2 ] )
else if ( player.wagerwinnings > topwinnings[ 2 ] )
{
topwinnings[ 2 ] = player.wagerwinnings;
level.wagertopearners[ 2 ] = player;
}
}
index++;
}
}
postroundsidebet()
postroundsidebet() //checked matches cerberus output
{
if ( isDefined( level.sidebet ) && level.sidebet )
{
@ -418,7 +394,7 @@ postroundsidebet()
}
}
sidebettimer()
sidebettimer() //checked changed to match cerberus output
{
level endon( "side_bet_end" );
secondstowait = ( level.sidebetendtime - getTime() ) / 1000;
@ -427,19 +403,17 @@ sidebettimer()
secondstowait = 0;
}
wait secondstowait;
playerindex = 0;
while ( playerindex < level.players.size )
for ( playerindex = 0; playerindex < level.players.size; playerindex++ )
{
if ( isDefined( level.players[ playerindex ] ) )
{
level.players[ playerindex ] closemenu();
}
playerindex++;
}
level notify( "side_bet_end" );
}
sidebetallbetsplaced()
sidebetallbetsplaced() //checked changed to match cerberus output
{
secondsleft = ( level.sidebetendtime - getTime() ) / 1000;
if ( secondsleft <= 3 )
@ -448,19 +422,17 @@ sidebetallbetsplaced()
}
level.sidebetendtime = getTime() + 3000;
wait 3;
playerindex = 0;
while ( playerindex < level.players.size )
for ( playerindex = 0; playerindex < level.players.size; playerindex++ )
{
if ( isDefined( level.players[ playerindex ] ) )
{
level.players[ playerindex ] closemenu();
}
playerindex++;
}
level notify( "side_bet_end" );
}
setupblankrandomplayer( takeweapons, chooserandombody, weapon )
setupblankrandomplayer( takeweapons, chooserandombody, weapon ) //checked changed to match cerberus output
{
if ( !isDefined( chooserandombody ) || chooserandombody )
{
@ -484,23 +456,21 @@ setupblankrandomplayer( takeweapons, chooserandombody, weapon )
{
self.hasspyplane = 1;
}
while ( isDefined( self.powerups ) && isDefined( self.powerups.size ) )
if ( isDefined( self.powerups ) && isDefined( self.powerups.size ) )
{
i = 0;
while ( i < self.powerups.size )
for ( i = 0; i < self.powerups.size; i++ )
{
self applypowerup( self.powerups[ i ] );
i++;
}
}
self setradarvisibility();
}
assignrandombody()
assignrandombody() //checked matches cerberus output
{
}
queuewagerpopup( message, points, submessage, announcement )
queuewagerpopup( message, points, submessage, announcement ) //checked matches cerberus output
{
self endon( "disconnect" );
size = self.wagernotifyqueue.size;
@ -512,7 +482,7 @@ queuewagerpopup( message, points, submessage, announcement )
self notify( "received award" );
}
helpgameend()
helpgameend() //checked changed to match beta dump
{
level endon( "game_ended" );
for ( ;; )
@ -522,37 +492,30 @@ helpgameend()
{
continue;
}
else
{
wait 0,05;
wait 0.05;
players = level.players;
playersleft = 0;
i = 0;
while ( i < players.size )
for ( i = 0; i < players.size; i++ )
{
if ( isDefined( players[ i ].pers[ "lives" ] ) && players[ i ].pers[ "lives" ] > 0 )
{
playersleft++;
}
i++;
}
while ( playersleft == 2 )
if ( playersleft == 2 )
{
i = 0;
while ( i < players.size )
for ( i = 0; i < players.size; i++ )
{
players[ i ] queuewagerpopup( &"MP_HEADS_UP", 0, &"MP_U2_ONLINE", "wm_u2_online" );
players[ i ].pers[ "hasRadar" ] = 1;
players[ i ].hasspyplane = 1;
level.activeuavs[ players[ i ] getentitynumber() ]++;
i++;
}
}
}
}
}
setradarvisibility()
setradarvisibility() //checked changed to match cerberus output
{
prevscoreplace = self.prevscoreplace;
if ( !isDefined( prevscoreplace ) )
@ -570,9 +533,7 @@ setradarvisibility()
self setperk( "specialty_gpsjammer" );
}
}
else
{
if ( isDefined( level.firstplaceonradar ) && level.firstplaceonradar )
else if ( isDefined( level.firstplaceonradar ) && level.firstplaceonradar )
{
if ( prevscoreplace == 1 && isDefined( self.score ) && self.score > 0 )
{
@ -584,17 +545,15 @@ setradarvisibility()
self setperk( "specialty_gpsjammer" );
}
}
}
}
playerscored()
playerscored() //checked changed to match cerberus output
{
self notify( "wager_player_scored" );
self endon( "wager_player_scored" );
wait 0,05;
wait 0.05;
maps/mp/gametypes/_globallogic::updateplacement();
i = 0;
while ( i < level.placement[ "all" ].size )
for ( i = 0; i < level.placement["all"].size; i++ )
{
prevscoreplace = level.placement[ "all" ][ i ].prevscoreplace;
if ( !isDefined( prevscoreplace ) )
@ -602,16 +561,13 @@ playerscored()
prevscoreplace = 1;
}
currentscoreplace = i + 1;
j = i - 1;
while ( j >= 0 )
for ( j = i - 1; j >= 0; j-- )
{
if ( level.placement[ "all" ][ i ].score == level.placement[ "all" ][ j ].score )
{
currentscoreplace--;
}
j--;
}
wasinthemoney = prevscoreplace <= 3;
isinthemoney = currentscoreplace <= 3;
@ -619,25 +575,21 @@ playerscored()
{
level.placement[ "all" ][ i ] wagerannouncer( "wm_in_the_money" );
}
else
{
if ( wasinthemoney && !isinthemoney )
else if ( wasinthemoney && !isinthemoney )
{
level.placement[ "all" ][ i ] wagerannouncer( "wm_oot_money" );
}
}
level.placement[ "all" ][ i ].prevscoreplace = currentscoreplace;
level.placement[ "all" ][ i ] setradarvisibility();
i++;
}
}
wagerannouncer( dialog, group )
wagerannouncer( dialog, group ) //checked matches cerberus output
{
self maps/mp/gametypes/_globallogic_audio::leaderdialogonplayer( dialog, group );
}
createpowerup( name, type, displayname, iconmaterial )
createpowerup( name, type, displayname, iconmaterial ) //checked matches cerberus output
{
powerup = spawnstruct();
powerup.name = [];
@ -648,32 +600,30 @@ createpowerup( name, type, displayname, iconmaterial )
return powerup;
}
addpowerup( name, type, displayname, iconmaterial )
addpowerup( name, type, displayname, iconmaterial ) //checked changed to match cerberus output
{
if ( !isDefined( level.poweruplist ) )
{
level.poweruplist = [];
}
i = 0;
while ( i < level.poweruplist.size )
for ( i = 0; i < level.poweruplist.size; i++ )
{
if ( level.poweruplist[ i ].displayname == displayname )
{
level.poweruplist[ i ].name[ level.poweruplist[ i ].name.size ] = name;
return;
}
i++;
}
powerup = createpowerup( name, type, displayname, iconmaterial );
level.poweruplist[ level.poweruplist.size ] = powerup;
}
copypowerup( powerup )
copypowerup( powerup ) //checked matches cerberus output
{
return createpowerup( powerup.name[ 0 ], powerup.type, powerup.displayname, powerup.iconmaterial );
}
applypowerup( powerup )
applypowerup( powerup ) //checked changed to match cerberus output
{
switch( powerup.type )
{
@ -700,11 +650,9 @@ applypowerup( powerup )
self setweaponammoclip( powerup.name[ 0 ], 2 );
break;
case "perk":
i = 0;
while ( i < powerup.name.size )
for ( i = 0; i < powerup.name.size; i++ )
{
self setperk( powerup.name[ i ] );
i++;
}
case "killstreak":
self maps/mp/killstreaks/_killstreaks::givekillstreak( powerup.name[ 0 ] );
@ -713,10 +661,9 @@ applypowerup( powerup )
self.scoremultiplier = powerup.name[ 0 ];
break;
}
}
}
givepowerup( powerup, doanimation )
givepowerup( powerup, doanimation ) //checked changed to match cerberus output
{
if ( !isDefined( self.powerups ) )
{
@ -724,27 +671,25 @@ givepowerup( powerup, doanimation )
}
powerupindex = self.powerups.size;
self.powerups[ powerupindex ] = copypowerup( powerup );
i = 0;
while ( i < powerup.name.size )
for ( i = 0; i < powerup.name.size; i++ )
{
self.powerups[ powerupindex ].name[ self.powerups[ powerupindex ].name.size ] = powerup.name[ i ];
i++;
}
self applypowerup( self.powerups[ powerupindex ] );
self thread showpowerupmessage( powerupindex, doanimation );
}
pulsepowerupicon( powerupindex )
pulsepowerupicon( powerupindex ) //checked changed to match cerberus output
{
if ( isDefined( self ) && isDefined( self.powerups ) || !isDefined( self.powerups[ powerupindex ] ) && !isDefined( self.powerups[ powerupindex ].hud_elem_icon ) )
if ( !isDefined( self ) || !isDefined( self.powerups ) || !isDefined( self.powerups[ powerupindex ] ) || !isDefined( self.powerups[ powerupindex ].hud_elem_icon ) )
{
return;
}
self endon( "disconnect" );
self endon( "delete" );
self endon( "clearing_powerups" );
pulsepercent = 1,5;
pulsetime = 0,5;
pulsepercent = 1.5;
pulsetime = 0.5;
hud_elem = self.powerups[ powerupindex ].hud_elem_icon;
if ( isDefined( hud_elem.animating ) && hud_elem.animating )
{
@ -758,18 +703,18 @@ pulsepowerupicon( powerupindex )
bigheight = origheight * pulsepercent;
xoffset = ( bigwidth - origwidth ) / 2;
yoffset = ( bigheight - origheight ) / 2;
hud_elem scaleovertime( 0,05, int( bigwidth ), int( bigheight ) );
hud_elem moveovertime( 0,05 );
hud_elem scaleovertime( 0.05, int( bigwidth ), int( bigheight ) );
hud_elem moveovertime( 0.05 );
hud_elem.x = origx - xoffset;
hud_elem.y = origy - yoffset;
wait 0,05;
wait 0.05;
hud_elem scaleovertime( pulsetime, origwidth, origheight );
hud_elem moveovertime( pulsetime );
hud_elem.x = origx;
hud_elem.y = origy;
}
showpowerupmessage( powerupindex, doanimation )
showpowerupmessage( powerupindex, doanimation ) //checked changed to match cerberus output
{
self endon( "disconnect" );
self endon( "delete" );
@ -836,7 +781,7 @@ showpowerupmessage( powerupindex, doanimation )
{
self thread queuewagerpopup( self.powerups[ powerupindex ].displayname, 0, &"MP_BONUS_ACQUIRED" );
}
pulsetime = 0,5;
pulsetime = 0.5;
if ( doanimation )
{
self.powerups[ powerupindex ].hud_elem fadeovertime( pulsetime );
@ -867,33 +812,28 @@ showpowerupmessage( powerupindex, doanimation )
{
self thread queuewagerpopup( self.powerups[ powerupindex ].displayname, 0, &"MP_BONUS_ACQUIRED" );
}
wait 1,5;
i = 0;
while ( i <= powerupindex )
wait 1.5;
for ( i = 0; i <= powerupindex; i++ )
{
self.powerups[ i ].hud_elem fadeovertime( 0,25 );
self.powerups[ i ].hud_elem fadeovertime( 0.25 );
self.powerups[ i ].hud_elem.alpha = 0;
i++;
}
wait 0,25;
i = 0;
while ( i <= powerupindex )
wait 0.25;
for ( i = 0; i <= powerupindex; i++ )
{
self.powerups[ i ].hud_elem_icon moveovertime( 0,25 );
self.powerups[ i ].hud_elem_icon moveovertime( 0.25 );
self.powerups[ i ].hud_elem_icon.x = 0 - iconsize;
self.powerups[ i ].hud_elem_icon.horzalign = "user_right";
i++;
}
self.powerups[ powerupindex ].hud_elem_icon.animating = 0;
}
clearpowerups()
clearpowerups() //checked changed to match cerberus output
{
self notify( "clearing_powerups" );
while ( isDefined( self.powerups ) && isDefined( self.powerups.size ) )
{
i = 0;
while ( i < self.powerups.size )
for ( i = 0; i < self.powerups.size; i++ )
{
if ( isDefined( self.powerups[ i ].hud_elem ) )
{
@ -903,13 +843,12 @@ clearpowerups()
{
self.powerups[ i ].hud_elem_icon destroy();
}
i++;
}
}
self.powerups = [];
}
trackwagerweaponusage( name, incvalue, statname )
trackwagerweaponusage( name, incvalue, statname ) //checked matches cerberus output
{
if ( !isDefined( self.wagerweaponusage ) )
{
@ -926,7 +865,7 @@ trackwagerweaponusage( name, incvalue, statname )
self.wagerweaponusage[ name ][ statname ] += incvalue;
}
gethighestwagerweaponusage( statname )
gethighestwagerweaponusage( statname ) //checked partially changed to match cerberus output did not use continues in for loop see github for more info
{
if ( !isDefined( self.wagerweaponusage ) )
{
@ -935,26 +874,22 @@ gethighestwagerweaponusage( statname )
bestweapon = undefined;
highestvalue = 0;
wagerweaponsused = getarraykeys( self.wagerweaponusage );
i = 0;
while ( i < wagerweaponsused.size )
for ( i = 0; i < wagerweaponsused.size; i++ )
{
weaponstats = self.wagerweaponusage[ wagerweaponsused[ i ] ];
if ( !isDefined( weaponstats[ statname ] ) || !getbaseweaponitemindex( wagerweaponsused[ i ] ) )
{
i++;
continue;
}
else if ( !isDefined( bestweapon ) || weaponstats[ statname ] > highestvalue )
{
bestweapon = wagerweaponsused[ i ];
highestvalue = weaponstats[ statname ];
}
i++;
}
return bestweapon;
}
setwagerafteractionreportstats()
setwagerafteractionreportstats() //checked changed to match beta dump
{
topweapon = self gethighestwagerweaponusage( "kills" );
topkills = 0;
@ -978,11 +913,10 @@ setwagerafteractionreportstats()
}
else
{
i = 0;
while ( i < 3 )
for(i = 0; i < 3; i++)
{
self maps/mp/gametypes/_persistence::setafteractionreportstat( "wagerAwards", 0, i );
i++;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -33,6 +33,8 @@ patch_mp/maps/mp/bots/_bot_sd.gsc
patch_mp/maps/mp/gametypes/_battlechatter_mp.gsc
patch_mp/maps/mp/gametypes/_callbacksetup.gsc
patch_mp/maps/mp/gametypes/_class.gsc
patch_mp/maps/mp/gametypes/_copter.gsc
patch_mp/maps/mp/gametypes/_damagefeedback.gsc
patch_mp/maps/mp/gametypes/_deathicons.gsc
patch_mp/maps/mp/gametypes/_friendicons.gsc
@ -50,6 +52,8 @@ patch_mp/maps/mp/gametypes/_rank.gsc
patch_mp/maps/mp/gametypes/_serversettings.gsc
patch_mp/maps/mp/gametypes/_spectating.gsc
patch_mp/maps/mp/gametypes/_tweakables.gsc
patch_mp/maps/mp/gametypes/_wager.gsc
patch_mp/maps/mp/gametypes/_weapons.gsc
patch_mp/maps/mp/gametypes/_weapon_utils.gsc
patch_mp/maps/mp/gametypes/conf.gsc
patch_mp/maps/mp/gametypes/ctf.gsc
@ -68,8 +72,6 @@ patch_mp/maps/mp/gametypes/tdm.gsc
```
### The following scripts are not checked yet, uploaded to setup a baseline:
```
patch_mp/maps/mp/gametypes/_class.gsc
patch_mp/maps/mp/gametypes/_copter.gsc
patch_mp/maps/mp/gametypes/_gameobjects.gsc
patch_mp/maps/mp/gametypes/_globallogic_actor.gsc
patch_mp/maps/mp/gametypes/_globallogic_audio.gsc
@ -84,9 +86,7 @@ patch_mp/maps/mp/gametypes/_hud_message.gsc
patch_mp/maps/mp/gametypes/_hud_util.gsc
patch_mp/maps/mp/gametypes/_spawning.gsc
patch_mp/maps/mp/gametypes/_spawnlogic.gsc
patch_mp/maps/mp/gametypes/_wager.gsc
patch_mp/maps/mp/gametypes/_weaponobjects.gsc
patch_mp/maps/mp/gametypes/_weapons.gsc
```
### The following scipts are dev scripts filled with dev calls making them useless to modify for now
```

File diff suppressed because it is too large Load Diff

View File

@ -59,6 +59,7 @@ patch_zm/maps/mp/gametypes_zm/_perplayer.gsc
patch_zm/maps/mp/gametypes_zm/_serversettings.gsc
patch_zm/maps/mp/gametypes_zm/_spectating.gsc
patch_zm/maps/mp/gametypes_zm/_tweakables.gsc
patch_zm/maps/mp/gametypes_zm/_weapons.gsc
patch_zm/maps/mp/gametypes_zm/_weapon_utils.gsc
patch_zm/maps/mp/zombies/_zm_blockers.gsc
patch_zm/maps/mp/zombies/_zm_buildables.gsc
@ -95,7 +96,6 @@ patch_zm/maps/mp/gametypes_zm/_hud_util.gsc
patch_zm/maps/mp/gametypes_zm/_spawning.gsc
patch_zm/maps/mp/gametypes_zm/_spawnlogic.gsc
patch_zm/maps/mp/gametypes_zm/_weaponobjects.gsc
patch_zm/maps/mp/gametypes_zm/_weapons.gsc
```
### The following scripts have not been checked using the proper debugging methods:
```