feat: test CI
This commit is contained in:
		
							
								
								
									
										1727
									
								
								data/maps/mp/alien/_drill.gsc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1727
									
								
								data/maps/mp/alien/_drill.gsc
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										3302
									
								
								data/maps/mp/gametypes/_damage.gsc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3302
									
								
								data/maps/mp/gametypes/_damage.gsc
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										2770
									
								
								data/maps/mp/gametypes/_gamelogic.gsc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2770
									
								
								data/maps/mp/gametypes/_gamelogic.gsc
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										721
									
								
								data/maps/mp/gametypes/_menus.gsc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										721
									
								
								data/maps/mp/gametypes/_menus.gsc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,721 @@ | ||||
| // IW6 GSC SOURCE | ||||
| // Dumped by https://github.com/xensik/gsc-tool | ||||
|  | ||||
| init() | ||||
| { | ||||
|     if ( !isdefined( game["gamestarted"] ) ) | ||||
|     { | ||||
|         game["menu_team"] = "team_marinesopfor"; | ||||
|  | ||||
|         if ( level.multiteambased ) | ||||
|             game["menu_team"] = "team_mt_options"; | ||||
|  | ||||
|         if ( maps\mp\_utility::bot_is_fireteam_mode() ) | ||||
|         { | ||||
|             level.fireteam_menu = "class_commander_" + level.gametype; | ||||
|             game["menu_class"] = level.fireteam_menu; | ||||
|             game["menu_class_allies"] = level.fireteam_menu; | ||||
|             game["menu_class_axis"] = level.fireteam_menu; | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             game["menu_class"] = "class"; | ||||
|             game["menu_class_allies"] = "class_marines"; | ||||
|             game["menu_class_axis"] = "class_opfor"; | ||||
|         } | ||||
|  | ||||
|         game["menu_changeclass_allies"] = "changeclass_marines"; | ||||
|         game["menu_changeclass_axis"] = "changeclass_opfor"; | ||||
|  | ||||
|         if ( level.multiteambased ) | ||||
|         { | ||||
|             for ( var_0 = 0; var_0 < level.teamnamelist.size; var_0++ ) | ||||
|             { | ||||
|                 var_1 = "menu_class_" + level.teamnamelist[var_0]; | ||||
|                 var_2 = "menu_changeclass_" + level.teamnamelist[var_0]; | ||||
|                 game[var_1] = game["menu_class_allies"]; | ||||
|                 game[var_2] = "changeclass_marines"; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         game["menu_changeclass"] = "changeclass"; | ||||
|  | ||||
|         if ( level.console ) | ||||
|         { | ||||
|             game["menu_controls"] = "ingame_controls"; | ||||
|  | ||||
|             if ( level.splitscreen ) | ||||
|             { | ||||
|                 if ( level.multiteambased ) | ||||
|                 { | ||||
|                     for ( var_0 = 0; var_0 < level.teamnamelist.size; var_0++ ) | ||||
|                     { | ||||
|                         var_1 = "menu_class_" + level.teamnamelist[var_0]; | ||||
|                         var_2 = "menu_changeclass_" + level.teamnamelist[var_0]; | ||||
|                         game[var_1] += "_splitscreen"; | ||||
|                         game[var_2] += "_splitscreen"; | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|                 game["menu_team"] += "_splitscreen"; | ||||
|                 game["menu_class_allies"] += "_splitscreen"; | ||||
|                 game["menu_class_axis"] += "_splitscreen"; | ||||
|                 game["menu_changeclass_allies"] += "_splitscreen"; | ||||
|                 game["menu_changeclass_axis"] += "_splitscreen"; | ||||
|                 game["menu_controls"] += "_splitscreen"; | ||||
|                 game["menu_changeclass_defaults_splitscreen"] = "changeclass_splitscreen_defaults"; | ||||
|                 game["menu_changeclass_custom_splitscreen"] = "changeclass_splitscreen_custom"; | ||||
|                 precachemenu( game["menu_changeclass_defaults_splitscreen"] ); | ||||
|                 precachemenu( game["menu_changeclass_custom_splitscreen"] ); | ||||
|             } | ||||
|  | ||||
|             precachemenu( game["menu_controls"] ); | ||||
|         } | ||||
|  | ||||
|         precachemenu( game["menu_team"] ); | ||||
|         precachemenu( game["menu_class_allies"] ); | ||||
|         precachemenu( game["menu_class_axis"] ); | ||||
|         precachemenu( game["menu_changeclass"] ); | ||||
|         precachemenu( game["menu_changeclass_allies"] ); | ||||
|         precachemenu( game["menu_changeclass_axis"] ); | ||||
|         precachemenu( game["menu_class"] ); | ||||
|         precachestring( &"MP_HOST_ENDED_GAME" ); | ||||
|         precachestring( &"MP_HOST_ENDGAME_RESPONSE" ); | ||||
|     } | ||||
|  | ||||
|     level thread onplayerconnect(); | ||||
| } | ||||
|  | ||||
| onplayerconnect() | ||||
| { | ||||
|     for (;;) | ||||
|     { | ||||
|         level waittill( "connected", var_0 ); | ||||
|         var_0 thread watchforclasschange(); | ||||
|         var_0 thread watchforteamchange(); | ||||
|         var_0 thread watchforleavegame(); | ||||
|         var_0 thread connectedmenus(); | ||||
|     } | ||||
| } | ||||
|  | ||||
| connectedmenus() | ||||
| { | ||||
|  | ||||
| } | ||||
|  | ||||
| getclasschoice( var_0 ) | ||||
| { | ||||
|     if ( var_0 > 10 ) | ||||
|     { | ||||
|         if ( var_0 > 10 && var_0 < 17 ) | ||||
|         { | ||||
|             var_0 -= 10; | ||||
|             var_0 = "axis_recipe" + var_0; | ||||
|         } | ||||
|         else if ( var_0 > 16 && var_0 < 23 ) | ||||
|         { | ||||
|             var_0 -= 16; | ||||
|             var_0 = "allies_recipe" + var_0; | ||||
|         } | ||||
|     } | ||||
|     else | ||||
|         var_0 = "custom" + var_0; | ||||
|  | ||||
|     return var_0; | ||||
| } | ||||
|  | ||||
| watchforclasschange() | ||||
| { | ||||
|     self endon( "disconnect" ); | ||||
|     level endon( "game_ended" ); | ||||
|  | ||||
|     for (;;) | ||||
|     { | ||||
|         self waittill( "luinotifyserver", var_0, var_1 ); | ||||
|  | ||||
|         if ( var_0 != "class_select" ) | ||||
|             continue; | ||||
|  | ||||
|         if ( getdvarint( "systemlink" ) && getdvarint( "xblive_competitionmatch" ) && self ismlgspectator() ) | ||||
|         { | ||||
|             self setclientomnvar( "ui_options_menu", 0 ); | ||||
|             continue; | ||||
|         } | ||||
|  | ||||
|         var_2 = isai( self ) || issubstr( self.name, "tcBot" ); | ||||
|  | ||||
|         if ( !var_2 ) | ||||
|         { | ||||
|             if ( !isai( self ) && "" + var_1 != "callback" ) | ||||
|                 self setclientomnvar( "ui_loadout_selected", var_1 ); | ||||
|         } | ||||
|  | ||||
|         if ( isdefined( self.waitingtoselectclass ) && self.waitingtoselectclass ) | ||||
|             continue; | ||||
|  | ||||
|         if ( !maps\mp\_utility::allowclasschoice() || maps\mp\_utility::showfakeloadout() ) | ||||
|             continue; | ||||
|  | ||||
|         if ( "" + var_1 != "callback" ) | ||||
|         { | ||||
|             if ( isdefined( self.pers["isBot"] ) && self.pers["isBot"] ) | ||||
|             { | ||||
|                 self.pers["class"] = var_1; | ||||
|                 self.class = var_1; | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 var_3 = var_1 + 1; | ||||
|                 var_3 = getclasschoice( var_3 ); | ||||
|  | ||||
|                 if ( !isdefined( self.pers["class"] ) || var_3 == self.pers["class"] ) | ||||
|                     continue; | ||||
|  | ||||
|                 self.pers["class"] = var_3; | ||||
|                 self.class = var_3; | ||||
|  | ||||
|                 if ( level.ingraceperiod && !self.hasdonecombat ) | ||||
|                 { | ||||
|                     maps\mp\gametypes\_class::setclass( self.pers["class"] ); | ||||
|                     self.tag_stowed_back = undefined; | ||||
|                     self._id_7E62 = undefined; | ||||
|                     maps\mp\gametypes\_class::giveloadout( self.pers["team"], self.pers["class"] ); | ||||
|                 } | ||||
|                 else if ( isalive( self ) ) | ||||
|                     self iprintlnbold( game["strings"]["change_class"] ); | ||||
|             } | ||||
|  | ||||
|             continue; | ||||
|         } | ||||
|  | ||||
|         menuclass( "callback" ); | ||||
|     } | ||||
| } | ||||
|  | ||||
| watchforleavegame() | ||||
| { | ||||
|     self endon( "disconnect" ); | ||||
|     level endon( "game_ended" ); | ||||
|  | ||||
|     for (;;) | ||||
|     { | ||||
|         self waittill( "luinotifyserver", var_0, var_1 ); | ||||
|  | ||||
|         if ( var_0 != "end_game" ) | ||||
|             continue; | ||||
|  | ||||
|         if ( maps\mp\_utility::is_aliens() ) | ||||
|         { | ||||
|             [[ level.forceendgame_alien ]](); | ||||
|             continue; | ||||
|         } | ||||
|  | ||||
|         level thread maps\mp\gametypes\_gamelogic::forceend( var_1 ); | ||||
|     } | ||||
| } | ||||
|  | ||||
| watchforteamchange() | ||||
| { | ||||
|     self endon( "disconnect" ); | ||||
|     level endon( "game_ended" ); | ||||
|  | ||||
|     for (;;) | ||||
|     { | ||||
|         self waittill( "luinotifyserver", var_0, var_1 ); | ||||
|  | ||||
|         if ( var_0 != "team_select" ) | ||||
|             continue; | ||||
|  | ||||
|         if ( maps\mp\_utility::matchmakinggame() && !getdvarint( "force_ranking" ) ) | ||||
|             continue; | ||||
|  | ||||
|         if ( var_1 != 3 ) | ||||
|             thread showloadoutmenu(); | ||||
|  | ||||
|         if ( var_1 == 3 ) | ||||
|         { | ||||
|             self setclientomnvar( "ui_spectator_selected", 1 ); | ||||
|             self setclientomnvar( "ui_loadout_selected", -1 ); | ||||
|             self.spectating_actively = 1; | ||||
|  | ||||
|             if ( getdvarint( "systemlink" ) && getdvarint( "xblive_competitionmatch" ) ) | ||||
|             { | ||||
|                 self setmlgspectator( 1 ); | ||||
|                 self.pers["mlgSpectator"] = 1; | ||||
|                 thread maps\mp\gametypes\_spectating::setmlgcamvisibility( 1 ); | ||||
|                 thread maps\mp\gametypes\_spectating::setspectatepermissions(); | ||||
|                 self setclientomnvar( "ui_options_menu", 2 ); | ||||
|             } | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             self setclientomnvar( "ui_spectator_selected", -1 ); | ||||
|             self.spectating_actively = 0; | ||||
|  | ||||
|             if ( getdvarint( "systemlink" ) && getdvarint( "xblive_competitionmatch" ) ) | ||||
|             { | ||||
|                 self setmlgspectator( 0 ); | ||||
|                 self.pers["mlgSpectator"] = 0; | ||||
|                 thread maps\mp\gametypes\_spectating::setmlgcamvisibility( 0 ); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         self setclientomnvar( "ui_team_selected", var_1 ); | ||||
|  | ||||
|         if ( var_1 == 0 ) | ||||
|             var_1 = "axis"; | ||||
|         else if ( var_1 == 1 ) | ||||
|             var_1 = "allies"; | ||||
|         else if ( var_1 == 2 ) | ||||
|             var_1 = "random"; | ||||
|         else | ||||
|             var_1 = "spectator"; | ||||
|  | ||||
|         if ( isdefined( self.pers["team"] ) && var_1 == self.pers["team"] ) | ||||
|         { | ||||
|             self notify( "selected_same_team" ); | ||||
|             continue; | ||||
|         } | ||||
|  | ||||
|         self setclientomnvar( "ui_loadout_selected", -1 ); | ||||
|  | ||||
|         if ( var_1 == "axis" ) | ||||
|         { | ||||
|             thread setteam( "axis" ); | ||||
|             continue; | ||||
|         } | ||||
|  | ||||
|         if ( var_1 == "allies" ) | ||||
|         { | ||||
|             thread setteam( "allies" ); | ||||
|             continue; | ||||
|         } | ||||
|  | ||||
|         if ( var_1 == "random" ) | ||||
|         { | ||||
|             thread autoassign(); | ||||
|             continue; | ||||
|         } | ||||
|  | ||||
|         if ( var_1 == "spectator" ) | ||||
|             thread setspectator(); | ||||
|     } | ||||
| } | ||||
|  | ||||
| showloadoutmenu() | ||||
| { | ||||
|     self endon( "disconnect" ); | ||||
|     level endon( "game_ended" ); | ||||
|     common_scripts\utility::waittill_any( "joined_team", "selected_same_team" ); | ||||
|     self setclientomnvar( "ui_options_menu", 2 ); | ||||
| } | ||||
|  | ||||
| autoassign() | ||||
| { | ||||
|     if ( maps\mp\_utility::is_aliens() ) | ||||
|         thread setteam( "allies" ); | ||||
|     else if ( ( getdvarint( "squad_match" ) == 1 || getdvarint( "squad_vs_squad" ) == 1 || getdvarint( "squad_use_hosts_squad" ) == 1 ) && isdefined( self.bot_team ) ) | ||||
|         thread setteam( self.bot_team ); | ||||
|     else if ( !isdefined( self.team ) ) | ||||
|     { | ||||
|         if ( self ismlgspectator() ) | ||||
|             thread setspectator(); | ||||
|         else if ( level.teamcount["axis"] < level.teamcount["allies"] ) | ||||
|             thread setteam( "axis" ); | ||||
|         else if ( level.teamcount["allies"] < level.teamcount["axis"] ) | ||||
|             thread setteam( "allies" ); | ||||
|         else if ( getteamscore( "allies" ) > getteamscore( "axis" ) ) | ||||
|             thread setteam( "axis" ); | ||||
|         else | ||||
|             thread setteam( "allies" ); | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         if ( self ismlgspectator() ) | ||||
|         { | ||||
|             thread setspectator(); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ( level.teamcount["axis"] < level.teamcount["allies"] && self.team != "axis" ) | ||||
|         { | ||||
|             thread setteam( "axis" ); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ( level.teamcount["allies"] < level.teamcount["axis"] && self.team != "allies" ) | ||||
|         { | ||||
|             thread setteam( "allies" ); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ( level.teamcount["allies"] == level.teamcount["axis"] ) | ||||
|         { | ||||
|             if ( getteamscore( "allies" ) > getteamscore( "axis" ) && self.team != "axis" ) | ||||
|                 thread setteam( "axis" ); | ||||
|             else if ( self.team != "allies" ) | ||||
|                 thread setteam( "allies" ); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| setteam( var_0 ) | ||||
| { | ||||
|     self endon( "disconnect" ); | ||||
|  | ||||
|     if ( !isai( self ) && level.teambased && !maps\mp\gametypes\_teams::getjointeampermissions( var_0 ) ) | ||||
|         return; | ||||
|  | ||||
|     if ( level.ingraceperiod && !self.hasdonecombat ) | ||||
|         self.hasspawned = 0; | ||||
|  | ||||
|     if ( self.sessionstate == "playing" ) | ||||
|     { | ||||
|         self.switching_teams = 1; | ||||
|         self.joining_team = var_0; | ||||
|         self.leaving_team = self.pers["team"]; | ||||
|     } | ||||
|  | ||||
|     addtoteam( var_0 ); | ||||
|  | ||||
|     if ( self.sessionstate == "playing" ) | ||||
|         self suicide(); | ||||
|  | ||||
|     waitforclassselect(); | ||||
|     endrespawnnotify(); | ||||
|  | ||||
|     if ( self.sessionstate == "spectator" ) | ||||
|     { | ||||
|         if ( game["state"] == "postgame" ) | ||||
|             return; | ||||
|  | ||||
|         if ( game["state"] == "playing" && !maps\mp\_utility::isinkillcam() ) | ||||
|         { | ||||
|             if ( isdefined( self.waitingtospawnamortize ) && self.waitingtospawnamortize ) | ||||
|                 return; | ||||
|  | ||||
|             thread maps\mp\gametypes\_playerlogic::spawnclient(); | ||||
|         } | ||||
|  | ||||
|         thread maps\mp\gametypes\_spectating::setspectatepermissions(); | ||||
|     } | ||||
|  | ||||
|     self notify( "okToSpawn" ); | ||||
| } | ||||
|  | ||||
| setspectator() | ||||
| { | ||||
|     if ( isdefined( self.pers["team"] ) && self.pers["team"] == "spectator" ) | ||||
|         return; | ||||
|  | ||||
|     if ( isalive( self ) ) | ||||
|     { | ||||
|         self.switching_teams = 1; | ||||
|         self.joining_team = "spectator"; | ||||
|         self.leaving_team = self.pers["team"]; | ||||
|         self suicide(); | ||||
|     } | ||||
|  | ||||
|     self notify( "becameSpectator" ); | ||||
|     addtoteam( "spectator" ); | ||||
|     self.pers["class"] = undefined; | ||||
|     self.class = undefined; | ||||
|     thread maps\mp\gametypes\_playerlogic::spawnspectator(); | ||||
| } | ||||
|  | ||||
| waitforclassselect() | ||||
| { | ||||
|     self endon( "disconnect" ); | ||||
|     level endon( "game_ended" ); | ||||
|     self.waitingtoselectclass = 1; | ||||
|  | ||||
|     for (;;) | ||||
|     { | ||||
|         if ( maps\mp\_utility::allowclasschoice() || maps\mp\_utility::showfakeloadout() && !isai( self ) ) | ||||
|             self waittill( "luinotifyserver", var_0, var_1 ); | ||||
|         else | ||||
|         { | ||||
|             bypassclasschoice(); | ||||
|             break; | ||||
|         } | ||||
|  | ||||
|         if ( var_0 != "class_select" ) | ||||
|             continue; | ||||
|  | ||||
|         if ( self.team == "spectator" ) | ||||
|             continue; | ||||
|  | ||||
|         if ( "" + var_1 != "callback" ) | ||||
|         { | ||||
|             if ( isdefined( self.pers["isBot"] ) && self.pers["isBot"] ) | ||||
|             { | ||||
|                 self.pers["class"] = var_1; | ||||
|                 self.class = var_1; | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 var_1 += 1; | ||||
|                 self.pers["class"] = getclasschoice( var_1 ); | ||||
|                 self.class = getclasschoice( var_1 ); | ||||
|             } | ||||
|  | ||||
|             self.waitingtoselectclass = 0; | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             self.waitingtoselectclass = 0; | ||||
|             menuclass( "callback" ); | ||||
|         } | ||||
|  | ||||
|         break; | ||||
|     } | ||||
| } | ||||
|  | ||||
| beginclasschoice( var_0 ) | ||||
| { | ||||
|     var_1 = self.pers["team"]; | ||||
|  | ||||
|     if ( maps\mp\_utility::allowclasschoice() || maps\mp\_utility::showfakeloadout() && !isai( self ) ) | ||||
|     { | ||||
|         self setclientomnvar( "ui_options_menu", 2 ); | ||||
|  | ||||
|         if ( !self ismlgspectator() ) | ||||
|             waitforclassselect(); | ||||
|  | ||||
|         endrespawnnotify(); | ||||
|  | ||||
|         if ( self.sessionstate == "spectator" ) | ||||
|         { | ||||
|             if ( game["state"] == "postgame" ) | ||||
|                 return; | ||||
|  | ||||
|             if ( game["state"] == "playing" && !maps\mp\_utility::isinkillcam() ) | ||||
|             { | ||||
|                 if ( isdefined( self.waitingtospawnamortize ) && self.waitingtospawnamortize ) | ||||
|                     return; | ||||
|  | ||||
|                 thread maps\mp\gametypes\_playerlogic::spawnclient(); | ||||
|             } | ||||
|  | ||||
|             thread maps\mp\gametypes\_spectating::setspectatepermissions(); | ||||
|         } | ||||
|  | ||||
|         self.connecttime = gettime(); | ||||
|         self notify( "okToSpawn" ); | ||||
|     } | ||||
|     else | ||||
|         thread bypassclasschoice(); | ||||
|  | ||||
|     if ( !isalive( self ) ) | ||||
|         thread maps\mp\gametypes\_playerlogic::predictabouttospawnplayerovertime( 0.1 ); | ||||
| } | ||||
|  | ||||
| bypassclasschoice() | ||||
| { | ||||
|     self.selectedclass = 1; | ||||
|     self.waitingtoselectclass = 0; | ||||
|  | ||||
|     if ( isdefined( level.bypassclasschoicefunc ) ) | ||||
|     { | ||||
|         var_0 = self [[ level.bypassclasschoicefunc ]](); | ||||
|         self.class = var_0; | ||||
|     } | ||||
|     else | ||||
|         self.class = "class0"; | ||||
| } | ||||
|  | ||||
| beginteamchoice() | ||||
| { | ||||
|     self setclientomnvar( "ui_options_menu", 1 ); | ||||
| } | ||||
|  | ||||
| showmainmenuforteam() | ||||
| { | ||||
|     var_0 = self.pers["team"]; | ||||
|     self openpopupmenu( game["menu_class_" + var_0] ); | ||||
| } | ||||
|  | ||||
| menuspectator() | ||||
| { | ||||
|     if ( isdefined( self.pers["team"] ) && self.pers["team"] == "spectator" ) | ||||
|         return; | ||||
|  | ||||
|     if ( isalive( self ) ) | ||||
|     { | ||||
|         self.switching_teams = 1; | ||||
|         self.joining_team = "spectator"; | ||||
|         self.leaving_team = self.pers["team"]; | ||||
|         self suicide(); | ||||
|     } | ||||
|  | ||||
|     addtoteam( "spectator" ); | ||||
|     self.pers["class"] = undefined; | ||||
|     self.class = undefined; | ||||
|     thread maps\mp\gametypes\_playerlogic::spawnspectator(); | ||||
| } | ||||
|  | ||||
| menuclass( var_0 ) | ||||
| { | ||||
|     if ( var_0 == "demolitions_mp,0" && self getrankedplayerdata( "featureNew", "demolitions" ) ) | ||||
|         self setrankedplayerdata( "featureNew", "demolitions", 0 ); | ||||
|  | ||||
|     if ( var_0 == "sniper_mp,0" && self getrankedplayerdata( "featureNew", "sniper" ) ) | ||||
|         self setrankedplayerdata( "featureNew", "sniper", 0 ); | ||||
|  | ||||
|     var_1 = self.pers["team"]; | ||||
|     var_2 = maps\mp\gametypes\_class::getclasschoice( var_0 ); | ||||
|     var_3 = maps\mp\gametypes\_class::getweaponchoice( var_0 ); | ||||
|  | ||||
|     if ( var_2 == "restricted" ) | ||||
|     { | ||||
|         beginclasschoice(); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     if ( isdefined( self.pers["class"] ) && self.pers["class"] == var_2 && ( isdefined( self.pers["primary"] ) && self.pers["primary"] == var_3 ) ) | ||||
|         return; | ||||
|  | ||||
|     if ( self.sessionstate == "playing" ) | ||||
|     { | ||||
|         if ( isdefined( self.pers["lastClass"] ) && isdefined( self.pers["class"] ) ) | ||||
|         { | ||||
|             self.pers["lastClass"] = self.pers["class"]; | ||||
|             self.lastclass = self.pers["lastClass"]; | ||||
|         } | ||||
|  | ||||
|         self.pers["class"] = var_2; | ||||
|         self.class = var_2; | ||||
|         self.pers["primary"] = var_3; | ||||
|  | ||||
|         if ( game["state"] == "postgame" ) | ||||
|             return; | ||||
|  | ||||
|         if ( level.ingraceperiod && !self.hasdonecombat ) | ||||
|         { | ||||
|             maps\mp\gametypes\_class::setclass( self.pers["class"] ); | ||||
|             self.tag_stowed_back = undefined; | ||||
|             self._id_7E62 = undefined; | ||||
|             maps\mp\gametypes\_class::giveloadout( self.pers["team"], self.pers["class"] ); | ||||
|         } | ||||
|         else | ||||
|             self iprintlnbold( game["strings"]["change_class"] ); | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         if ( isdefined( self.pers["lastClass"] ) && isdefined( self.pers["class"] ) ) | ||||
|         { | ||||
|             self.pers["lastClass"] = self.pers["class"]; | ||||
|             self.lastclass = self.pers["lastClass"]; | ||||
|         } | ||||
|  | ||||
|         self.pers["class"] = var_2; | ||||
|         self.class = var_2; | ||||
|         self.pers["primary"] = var_3; | ||||
|  | ||||
|         if ( game["state"] == "postgame" ) | ||||
|             return; | ||||
|  | ||||
|         if ( game["state"] == "playing" && !maps\mp\_utility::isinkillcam() ) | ||||
|             thread maps\mp\gametypes\_playerlogic::spawnclient(); | ||||
|     } | ||||
|  | ||||
|     thread maps\mp\gametypes\_spectating::setspectatepermissions(); | ||||
| } | ||||
|  | ||||
| update_wargame_after_migration() | ||||
| { | ||||
|     foreach ( var_1 in level.players ) | ||||
|     { | ||||
|         if ( !isai( var_1 ) && var_1 ishost() ) | ||||
|             level.wargame_client = var_1; | ||||
|     } | ||||
| } | ||||
|  | ||||
| addtoteam( var_0, var_1, var_2 ) | ||||
| { | ||||
|     if ( isdefined( self.team ) ) | ||||
|     { | ||||
|         maps\mp\gametypes\_playerlogic::removefromteamcount(); | ||||
|  | ||||
|         if ( isdefined( var_2 ) && var_2 ) | ||||
|             maps\mp\gametypes\_playerlogic::decrementalivecount( self.team ); | ||||
|     } | ||||
|  | ||||
|     self.pers["team"] = var_0; | ||||
|     self.team = var_0; | ||||
|  | ||||
|     if ( getdvar( "squad_vs_squad" ) == "1" ) | ||||
|     { | ||||
|         if ( !isai( self ) ) | ||||
|         { | ||||
|             if ( var_0 == "allies" ) | ||||
|             { | ||||
|                 if ( !isdefined( level.squad_vs_squad_allies_client ) ) | ||||
|                     level.squad_vs_squad_allies_client = self; | ||||
|             } | ||||
|             else if ( var_0 == "axis" ) | ||||
|             { | ||||
|                 if ( !isdefined( level.squad_vs_squad_axis_client ) ) | ||||
|                     level.squad_vs_squad_axis_client = self; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if ( getdvar( "squad_match" ) == "1" ) | ||||
|     { | ||||
|         if ( !isai( self ) && self ishost() ) | ||||
|         { | ||||
|             if ( !isdefined( level.squad_match_client ) ) | ||||
|                 level.squad_match_client = self; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if ( getdvar( "squad_use_hosts_squad" ) == "1" ) | ||||
|     { | ||||
|         if ( !isai( self ) && self ishost() ) | ||||
|         { | ||||
|             if ( !isdefined( level.wargame_client ) ) | ||||
|                 level.wargame_client = self; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|    // session team is readonly in ranked matches if "teambased" is set on the playlist | ||||
|     if ( level.teambased ) | ||||
|         self.sessionteam = var_0; | ||||
|     else if ( var_0 == "spectator" ) | ||||
|         self.sessionteam = "spectator"; | ||||
|     else | ||||
|         self.sessionteam = "none"; | ||||
|  | ||||
|     if ( game["state"] != "postgame" ) | ||||
|     { | ||||
|         maps\mp\gametypes\_playerlogic::addtoteamcount(); | ||||
|  | ||||
|         if ( isdefined( var_2 ) && var_2 ) | ||||
|             maps\mp\gametypes\_playerlogic::incrementalivecount( self.team ); | ||||
|     } | ||||
|  | ||||
|     maps\mp\_utility::updateobjectivetext(); | ||||
|  | ||||
|     if ( isdefined( var_1 ) && var_1 ) | ||||
|         waittillframeend; | ||||
|  | ||||
|     maps\mp\_utility::updatemainmenu(); | ||||
|  | ||||
|     if ( var_0 == "spectator" ) | ||||
|     { | ||||
|         self notify( "joined_spectators" ); | ||||
|         level notify( "joined_team", self ); | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         self notify( "joined_team" ); | ||||
|         level notify( "joined_team", self ); | ||||
|     } | ||||
| } | ||||
|  | ||||
| endrespawnnotify() | ||||
| { | ||||
|     self.waitingtospawn = 0; | ||||
|     self notify( "end_respawn" ); | ||||
| } | ||||
							
								
								
									
										1883
									
								
								data/maps/mp/gametypes/_playerlogic.gsc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1883
									
								
								data/maps/mp/gametypes/_playerlogic.gsc
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										2171
									
								
								data/maps/mp/gametypes/aliens.gsc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2171
									
								
								data/maps/mp/gametypes/aliens.gsc
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										3154
									
								
								data/maps/mp/mp_alien_beacon.gsc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3154
									
								
								data/maps/mp/mp_alien_beacon.gsc
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user