Added MW3 Scripts

This commit is contained in:
InfinityLoader
2023-10-27 03:47:01 -04:00
commit d559c1d414
981 changed files with 539970 additions and 0 deletions

View File

@ -0,0 +1,116 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_ambient.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 11
* Decompile Time: 181 ms
* Timestamp: 10/27/2023 2:33:50 AM
*******************************************************************/
//Function Number: 1
setup_new_eq_settings(param_00,param_01)
{
if(!isdefined(param_00) || !isdefined(level.ambient_eq[param_00]))
{
deactivate_index(param_01);
return 0;
}
if(level.eq_track[param_01] == param_00)
{
return 0;
}
level.eq_track[param_01] = param_00;
use_eq_settings(param_00,param_01);
return 1;
}
//Function Number: 2
use_eq_settings(param_00,param_01)
{
if(level.player maps\_utility::ent_flag("player_has_red_flashing_overlay"))
{
return;
}
maps\_audio::func_1138(param_00,param_01);
}
//Function Number: 3
deactivate_index(param_00)
{
level.eq_track[param_00] = "";
level.player deactivateeq(param_00);
}
//Function Number: 4
blend_to_eq_track(param_00,param_01)
{
var_02 = 1;
if(isdefined(param_01))
{
var_02 = param_01;
}
var_03 = 0.05;
var_04 = var_02 / var_03;
var_05 = 1 / var_04;
for(var_06 = 0;var_06 <= 1;var_06 = var_06 + var_05)
{
level.player seteqlerp(var_06,param_00);
wait var_03;
}
level.player seteqlerp(1,param_00);
}
//Function Number: 5
func_14E7(param_00)
{
if(level.player maps\_utility::ent_flag("player_has_red_flashing_overlay"))
{
return;
}
maps\_audio_reverb::rvb_start_preset(param_00);
}
//Function Number: 6
deactivate_reverb()
{
maps\_audio_reverb::rvb_deactive_reverb();
}
//Function Number: 7
ambientdelay(param_00,param_01,param_02)
{
maps\_audio::aud_print_warning("ambientDelay called, this is deprecated! Use new preset string tables.");
}
//Function Number: 8
ambientevent(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
maps\_audio::aud_print_warning("ambientEvent called, this is deprecated! Use new preset string tables.");
}
//Function Number: 9
func_14EB(param_00)
{
maps\_audio::aud_print_warning("ambientEventStart called, this is deprecated! Use maps_utility::set_ambient( track, fade_ ).");
maps\_utility::set_ambient(param_00);
}
//Function Number: 10
func_14ED(param_00)
{
maps\_audio::aud_print_warning("start_ambient_event called, this is deprecated! Use maps_utility::set_ambient( track, fade_ ).");
maps\_utility::set_ambient(param_00);
}
//Function Number: 11
get_progess(param_00,param_01,param_02,param_03)
{
maps\_utility::get_progress(param_00,param_01,param_03,param_02);
}

2409
MW3/Xbox/SP/maps/_anim.gsc Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
Failed to decompile this file, open a ticket if you need this fixed.

File diff suppressed because it is too large Load Diff

1267
MW3/Xbox/SP/maps/_art.gsc Normal file

File diff suppressed because it is too large Load Diff

3235
MW3/Xbox/SP/maps/_audio.gsc Normal file

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

View File

@ -0,0 +1,184 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_audio_music.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 12
* Decompile Time: 186 ms
* Timestamp: 10/27/2023 2:33:20 AM
*******************************************************************/
//Function Number: 1
mus_init()
{
if(!isdefined(level._audio))
{
level._audio = spawnstruct();
}
level._audio.music = spawnstruct();
level._audio.music.cue_cash = [];
level._audio.music.curr_cue_name = "";
level._audio.music.prev_cue_name = "";
level._audio.music.var_116D = 0;
level._audio.music.var_116E = [[0,0.5],[0.9,1],[1,1]];
thread musx_monitor_game_vars();
}
//Function Number: 2
mus_play(param_00,param_01,param_02,param_03,param_04)
{
var_05 = undefined;
var_06 = mus_get_playing_cue_preset();
var_07 = musx_construct_cue(param_00);
var_08 = var_07["fade_in_time"];
if(isdefined(param_01))
{
var_08 = param_01;
}
var_09 = 2;
if(isdefined(var_06))
{
if(isdefined(param_02))
{
var_09 = param_02;
}
else if(isdefined(param_01))
{
var_09 = param_01;
}
else if(isdefined(var_06["fade_out_time"]))
{
var_09 = var_06["fade_out_time"];
}
}
var_0A = var_07["volume"];
if(isdefined(param_03))
{
var_0A = param_03;
}
musx_start_cue(var_07["name"],var_08,var_09,var_0A,param_04);
}
//Function Number: 3
func_1170(param_00)
{
var_01 = 3;
if(mus_is_playing())
{
var_02 = musx_get_cashed_cue(level._audio.music.curr_cue_name);
var_01 = var_02["fade_out_time"];
}
if(isdefined(param_00))
{
var_01 = param_00;
}
musx_stop_all_music(var_01);
}
//Function Number: 4
mus_is_playing()
{
return isdefined(level._audio.music.curr_cue_name) && level._audio.music.curr_cue_name != "";
}
//Function Number: 5
mus_get_playing_cue_preset()
{
var_00 = undefined;
if(mus_is_playing())
{
var_00 = musx_get_cashed_cue(level._audio.music.curr_cue_name);
}
return var_00;
}
//Function Number: 6
musx_construct_cue(param_00)
{
var_01 = musx_get_cashed_cue(param_00);
if(!isdefined(var_01))
{
var_01 = [];
musx_cash_cue(var_41);
}
return var_41;
}
//Function Number: 7
musx_start_cue(param_00,param_01,param_02,param_03,param_04)
{
var_05 = 0;
if(isdefined(param_04))
{
var_05 = param_04;
}
if(param_00 == level._audio.music.curr_cue_name && !var_05)
{
return;
}
var_06 = level._audio.music.prev_cue_name;
var_07 = level._audio.music.curr_cue_name;
level._audio.music.prev_cue_name = level._audio.music.curr_cue_name;
level._audio.music.curr_cue_name = param_00;
var_08 = musx_get_cashed_cue(level._audio.music.curr_cue_name);
var_09 = musx_get_cashed_cue(level._audio.music.prev_cue_name);
var_0A = undefined;
if(isdefined(var_09))
{
var_0A = var_09["alias"];
}
maps\_audio_stream_manager::func_1048(var_08["alias"],param_01,param_02,param_03,var_0A);
}
//Function Number: 8
musx_stop_all_music(param_00)
{
maps\_audio_stream_manager::sm_stop_music(param_00);
}
//Function Number: 9
func_1176()
{
return level._audio.music.var_116D;
}
//Function Number: 10
musx_get_cashed_cue(param_00)
{
return level._audio.music.cue_cash[param_00];
}
//Function Number: 11
musx_cash_cue(param_00)
{
level._audio.music.cue_cash[param_00["name"]] = param_00;
}
//Function Number: 12
musx_monitor_game_vars()
{
if(func_1176())
{
var_00 = 1;
for(;;)
{
wait var_00;
if(func_1176())
{
var_01 = maps\_audio::func_117A();
var_02 = maps\_audio::func_117B(var_01,level._audio.music.var_116E);
}
}
}
}

View File

@ -0,0 +1,27 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_audio_presets_music.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 3
* Decompile Time: 48 ms
* Timestamp: 10/27/2023 2:34:49 AM
*******************************************************************/
//Function Number: 1
audio_presets_music_moods(param_00,param_01)
{
maps\_audio::aud_print_warning("CALLING MUSIC_MOODS PRESET USING OLD METHOD!");
}
//Function Number: 2
audio_presets_music_cue_groups(param_00,param_01)
{
maps\_audio::aud_print_warning("CALLING MUSIC_CUE_GROUPS PRESET USING OLD METHOD!");
}
//Function Number: 3
audio_presets_music_cues(param_00,param_01)
{
maps\_audio::aud_print_warning("CALLING MUSIC_CUES PRESET USING OLD METHOD!");
}

View File

@ -0,0 +1,339 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_audio_presets_vehicles.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 2
* Decompile Time: 36 ms
* Timestamp: 10/27/2023 2:33:09 AM
*******************************************************************/
//Function Number: 1
audio_presets_vehicles(param_00,param_01)
{
switch(param_00)
{
case "nymn_player_hind":
break;
var_41["speed"]
[["hind_move",["pitch","player_hind_move_pitch"],["volume","player_hind_move_volume"]],["hind_hover",["pitch","player_hind_hover_pitch"],["volume","player_hind_hover_volume"]],["updaterate",0.2],["smooth_up",0.3],["smooth_down",0.03],["range",1,40]]
break;
case "nymn_broad_hind":
break;
var_41["speed"]
[["broad_hind_move",["pitch","player_hind_move_pitch"],["volume","enemy_hind_move_volume"]],["updaterate",0.2],["smooth_up",0.3],["smooth_down",0.03],["range",1,30]]
break;
case "paris_a_mi17":
break;
var_41["speed"]
[["mi17_engine_high",["pitch","mi17_move_pitch"],["volume","mi17_move_volume"]],["mi17_idle_high",["pitch","mi17_hover_pitch"],["volume","mi17_hover_volume"]],["updaterate",0.2],["smooth_up",0.3],["smooth_down",0.01],["range",1,30]]
break;
case "dubai_littlebird":
break;
var_41["speed"]
[["dubai_littlebird_engine_high",["pitch","dubai_littlebird_move_pitch"],["volume","dubai_littlebird_move_volume"]],["dubai_littlebird_idle_high",["pitch","dubai_littlebird_hover_pitch"],["volume","dubai_littlebird_hover_volume"]],["updaterate",0.2],["smooth_up",0.3],["smooth_down",0.01],["range",1,30]]
break;
case "paris_chase_hind":
break;
var_41["speed"]
[["chase_hind_move",["pitch","player_hind_move_pitch"],["volume","enemy_hind_move_volume"]],["updaterate",0.2],["smooth_up",0.3],["smooth_down",0.01],["range",1,30]]
break;
case "escape_zodiac":
break;
var_41["start_stop"]
[["start","shg_zodiac_plr_rampup",["pitch","zodiac_player_rampup_pitch"],["volume","zodiac_player_rampup_volume"],1],["stop","shg_zodiac_plr_rampdown",["pitch","zodiac_player_rampdown_pitch"],["volume","zodiac_player_rampdown_volume"]],["updaterate",0.1],["offset",-50],["throttle_input","throttle"],["on_threshold",0.3],["off_threshold",-0.3],["smooth_up",0.5],["smooth_down",0.5]]
var_41["speed"]
[["shg_zodiac_plr_motor_slow",["pitch","zodiac_player_slow_pitch"],["volume","zodiac_player_slow_volume"]],["shg_zodiac_plr_motor_med",["pitch","zodiac_player_medium_pitch"],["volume","zodiac_player_medium_volume"]],["shg_zodiac_plr_motor_fast",["pitch","zodiac_player_fast_pitch"],["volume","zodiac_player_fast_volume"]],["offset",-50],["updaterate",0.2],["multiply_by_throttle",1],["smooth_up",0.15],["smooth_down",0.25],["oneshot_duck",0.5],["oneshot_duck_time",1.5],["range",0,45]]
break;
case "escape_zodiac_water":
break;
var_41["speed"]
[["shg_zodiac_plr_water_idle",["pitch","zodiac_plr_water_idle_pitch"],["volume","zodiac_plr_water_idle_volume"]],["shg_zodiac_plr_water_slow",["pitch","zodiac_plr_water_slow_pitch"],["volume","zodiac_plr_water_slow_volume"]],["shg_zodiac_plr_water_med",["pitch","zodiac_plr_water_med_pitch"],["volume","zodiac_plr_water_med_volume"]],["shg_zodiac_plr_water_fast",["pitch","zodiac_plr_water_fast_pitch"],["volume","zodiac_plr_water_fast_volume"]],["updaterate",0.2],["smooth_up",0.3],["smooth_down",0.3],["range",1,30],["heightmax",25]]
break;
case "sdv_motor_player":
break;
var_41["start_stop"]
[["start","shg_sdv_plr_startup",["pitch","sdv_plr_rampup_pitch"],["volume","sdv_plr_rampup_volume"]],["stop","shg_sdv_plr_shutdown",["pitch","sdv_plr_rampdown_pitch"],["volume","sdv_plr_rampdown_volume"]],["updaterate",0.1],["throttle_input","throttle"],["on_threshold",0.3],["off_threshold",-0.3],["smooth_up",0.5],["smooth_down",0.5]]
var_41["speed"]
[["shg_sdv_plr_motor_slow",["pitch","sdv_plr_motor_slow_pitch"],["volume","sdv_plr_motor_slow_volume"]],["shg_sdv_plr_motor_med",["pitch","sdv_plr_motor_med_pitch"],["volume","sdv_plr_motor_med_volume"]],["shg_sdv_plr_motor_fast",["pitch","sdv_plr_motor_fast_pitch"],["volume","sdv_plr_motor_fast_volume"]],["updaterate",0.2],["multiply_by_throttle",1],["throttle_input","throttle"],["smooth_up",0.1],["smooth_down",0.3],["range",1,12]]
break;
case "ugv_motor_player":
break;
var_41["start_stop"]
[["start","null",["pitch","sdv_plr_rampup_pitch"],["volume","sdv_plr_rampup_volume"]],["stop","null",["pitch","sdv_plr_rampdown_pitch"],["volume","sdv_plr_rampdown_volume"]],["updaterate",0.3],["throttle_input","leftstick_abs"],["on_threshold",0.3],["off_threshold",-0.3],["smooth_up",0.2],["smooth_down",0.2]]
var_41["speed"]
[["ugv_plr_motor_slow",["pitch","sdv_plr_motor_slow_pitch"],["volume","sdv_plr_motor_slow_volume"]],["ugv_plr_motor_slow",["pitch","sdv_plr_motor_med_pitch"],["volume","sdv_plr_motor_med_volume"]],["ugv_plr_motor_fast",["pitch","sdv_plr_motor_fast_pitch"],["volume","sdv_plr_motor_fast_volume"]],["updaterate",0.1],["multiply_by_throttle",1],["throttle_input","leftstick_abs"],["smooth_up",0.2],["smooth_down",0.2],["range",1,8]]
break;
case "ugv_treads_player":
break;
var_41["speed"]
[["ugv_plr_treads_slow",["pitch","sdv_plr_motor_slow_pitch"],["volume","sdv_plr_motor_slow_volume"]],["ugv_plr_treads_slow",["pitch","sdv_plr_motor_med_pitch"],["volume","sdv_plr_motor_med_volume"]],["ugv_plr_treads_fast",["pitch","sdv_plr_motor_fast_pitch"],["volume","sdv_plr_motor_fast_volume"]],["updaterate",0.1],["multiply_by_throttle",1],["throttle_input","leftstick_abs"],["smooth_up",0.1],["smooth_down",0.1],["range",0.5,8]]
break;
case "ugv_idle_player":
break;
var_41["speed"]
[["ugv_plr_idle",["pitch","so_jeep_idle_pitch"],["volume","so_jeep_idle_volume"]],["updaterate",0.1],["smooth_up",0.2],["smooth_down",0.2],["range",0,25]]
break;
case "sdv_water_player":
break;
var_41["speed"]
[["shg_sdv_plr_water_slow",["pitch","sdv_plr_water_slow_pitch"],["volume","sdv_plr_water_slow_volume"]],["shg_sdv_plr_water_med",["pitch","sdv_plr_water_med_pitch"],["volume","sdv_plr_water_med_volume"]],["updaterate",0.2],["smooth_up",0.3],["smooth_down",0.1],["range",1,8]]
break;
case "so_paris_jeep":
break;
var_41["speed"]
[["so_jeep_slow",["pitch","so_jeep_slow_pitch"],["volume","so_jeep_slow_volume"]],["so_jeep_fast",["pitch","so_jeep_medium_pitch"],["volume","so_jeep_medium_volume"]],["so_jeep_idle",["pitch","so_jeep_idle_pitch"],["volume","so_jeep_idle_volume"]],["updaterate",0.1],["smooth_up",0.3],["smooth_down",0.1],["range",0,25]]
break;
}
return var_41;
}
//Function Number: 2
audio_presets_vehicle_maps(param_00,param_01)
{
switch(param_00)
{
case "so_jeep_idle_pitch":
param_01 = [[0,0.5],[0.02,0.65],[0.1,0.75],[0.2,0.85],[1,1]];
break;
case "so_jeep_idle_volume":
param_01 = [[0,1],[0.05,0.9],[0.1,0.85],[0.25,0.45],[0.3,0.15],[0.35,0],[1,0]];
break;
case "so_jeep_slow_pitch":
param_01 = [[0,0.38],[0.1,0.4],[0.4,0.45],[0.45,0.5],[0.55,0.55],[0.7,0.6],[1,0.8]];
break;
case "so_jeep_slow_volume":
param_01 = [[0,0.01],[0.1,0.5],[0.35,0.75],[0.55,1],[0.7,0.6],[0.8,0.45],[1,0.01]];
break;
case "so_jeep_medium_pitch":
param_01 = [[0,0.25],[0.5,0.3],[0.65,0.35],[0.75,0.4],[0.85,0.45],[1,0.5]];
break;
case "so_jeep_medium_volume":
param_01 = [[0,0],[0.4,0.2],[0.6,0.6],[0.75,0.9],[1,1]];
break;
case "player_hind_move_volume":
param_01 = [[0,0],[0.3,0],[0.6,0.35],[0.7,0.9],[1,1]];
break;
case "player_hind_move_pitch":
param_01 = [[0,0.4],[0.5,0.4],[0.75,0.5],[1,0.7]];
break;
case "player_hind_hover_volume":
param_01 = [[0,1],[1,1]];
break;
case "player_hind_hover_pitch":
param_01 = [[0,0.4],[0.5,0.5],[1,0.7]];
break;
case "enemy_hind_move_volume":
param_01 = [[0,1],[1,1]];
break;
case "mi17_move_volume":
param_01 = [[0,0.75],[0.3,0.85],[0.6,0.95],[0.7,0.99],[1,1]];
break;
case "mi17_move_pitch":
param_01 = [[0,0.4],[0.5,0.6],[1,0.7]];
break;
case "mi17_hover_volume":
param_01 = [[0,1],[1,0.75]];
break;
case "mi17_hover_pitch":
param_01 = [[0,0.4],[0.5,0.6],[1,0.7]];
break;
case "dubai_littlebird_move_volume":
param_01 = [[0,0.75],[0.3,0.85],[0.6,0.95],[0.7,0.99],[1,1]];
break;
case "dubai_littlebird_move_pitch":
param_01 = [[0,0.4],[0.5,0.6],[1,0.7]];
break;
case "dubai_littlebird_hover_volume":
param_01 = [[0,1],[1,0.75]];
break;
case "dubai_littlebird_hover_pitch":
param_01 = [[0,0.4],[0.5,0.6],[1,0.7]];
break;
case "zodiac_player_rampup_pitch":
param_01 = [[0,0.45],[0.5,0.5],[1,1]];
break;
case "zodiac_player_rampup_volume":
param_01 = [[0,0],[0.25,0.5],[0.85,1],[1,1]];
break;
case "zodiac_player_rampdown_pitch":
param_01 = [[0,0.5],[0.25,0.55],[1,0.6]];
break;
case "zodiac_player_rampdown_volume":
param_01 = [[0,1],[0.25,0.85],[0.5,0.5],[1,0.25]];
break;
case "zodiac_player_idle_pitch":
param_01 = [[0,0.5],[0.02,0.65],[0.1,0.75],[0.2,0.85],[1,1]];
break;
case "zodiac_player_idle_volume":
param_01 = [[0,0.75],[0.05,1],[0.1,0.85],[0.25,0.45],[0.3,0.15],[0.35,0],[1,0]];
break;
case "zodiac_player_bottom_pitch":
param_01 = [[0,0.35],[0.1,0.4],[0.3,0.5],[0.35,0.6],[0.45,0.65],[0.6,0.7],[1,0.75]];
break;
case "zodiac_player_bottom_volume":
param_01 = [[0,0.75],[0.15,0.75],[0.35,1],[0.45,0.35],[0.55,0.25],[0.6,0.2],[0.7,0.15],[1,0]];
break;
case "zodiac_player_slow_pitch":
param_01 = [[0,0.2],[0.4,0.35],[0.45,0.45],[0.55,0.5],[0.7,0.6],[1,0.8]];
break;
case "zodiac_player_slow_volume":
param_01 = [[0,0.25],[0.1,0.5],[0.35,0.75],[0.55,1],[0.7,0.5],[0.8,0.35],[1,0.2]];
break;
case "zodiac_player_medium_pitch":
param_01 = [[0,0.35],[0.5,0.45],[0.65,0.5],[0.75,0.6],[0.85,0.7],[1,0.7]];
break;
case "zodiac_player_medium_volume":
param_01 = [[0,0],[0.4,0.2],[0.6,0.5],[0.75,1],[0.8,0.5],[0.9,0.25],[1,0.1]];
break;
case "zodiac_player_fast_pitch":
param_01 = [[0,0.45],[0.7,0.45],[0.85,0.5],[0.95,0.55],[1,0.7]];
break;
case "zodiac_player_fast_volume":
param_01 = [[0,0],[0.6,0],[0.7,0.25],[0.85,0.5],[0.95,0.5],[1,1]];
break;
case "zodiac_plr_water_idle_pitch":
param_01 = [[0,0.5],[1,0.5]];
break;
case "zodiac_plr_water_idle_volume":
param_01 = [[0,1],[0.1,0.5],[0.15,0.25],[0.2,0.15],[0.35,0],[1,0]];
break;
case "zodiac_plr_water_botm_pitch":
param_01 = [[0,0.45],[0.1,0.5],[0.3,0.5],[1,0.5]];
break;
case "zodiac_plr_water_botm_volume":
param_01 = [[0,0],[0.15,0.25],[0.35,1],[0.45,0.35],[0.55,0.25],[0.6,0.2],[0.7,0.15],[1,0]];
break;
case "zodiac_plr_water_slow_pitch":
param_01 = [[0,0.45],[0.1,0.5],[0.3,0.5],[1,0.5]];
break;
case "zodiac_plr_water_slow_volume":
param_01 = [[0,0],[0.1,0.25],[0.35,0.75],[0.55,1],[0.7,0.5],[0.8,0.35],[1,0.2]];
break;
case "zodiac_plr_water_med_pitch":
param_01 = [[0,0.45],[0.1,0.5],[0.3,0.5],[1,0.5]];
break;
case "zodiac_plr_water_med_volume":
param_01 = [[0,0],[0.4,0.2],[0.6,0.5],[0.75,1],[0.8,0.5],[0.9,0.25],[1,0.1]];
break;
case "zodiac_plr_water_fast_pitch":
param_01 = [[0,0.45],[0.1,0.5],[0.3,0.5],[1,0.5]];
break;
case "zodiac_plr_water_fast_volume":
param_01 = [[0,0],[0.6,0],[0.7,0.5],[0.85,1],[1,1]];
break;
case "sdv_plr_rampup_pitch":
param_01 = [[0,0.5],[0.5,0.5],[1,0.5]];
break;
case "sdv_plr_rampup_volume":
param_01 = [[0,1],[1,1]];
break;
case "sdv_plr_rampdown_pitch":
param_01 = [[0,0.5],[0.5,0.5],[1,0.5]];
break;
case "sdv_plr_rampdown_volume":
param_01 = [[0,1],[1,1]];
break;
case "sdv_plr_motor_slow_pitch":
param_01 = [[0,0.25],[0.15,0.4],[0.3,0.5],[0.6,0.55],[0.75,0.65],[1,0.75]];
break;
case "sdv_plr_motor_slow_volume":
param_01 = [[0,0],[0.05,0.5],[0.15,0.75],[0.25,1],[0.35,0.5],[0.45,0.25],[0.55,0.2],[1,0]];
break;
case "sdv_plr_motor_med_pitch":
param_01 = [[0,0.5],[0.6,0.5],[0.75,0.65],[1,0.75]];
break;
case "sdv_plr_motor_med_volume":
param_01 = [[0,0],[0.25,0.1],[0.35,0.5],[0.45,1],[0.65,1],[0.75,0.75],[0.95,0.25],[1,0.1]];
break;
case "sdv_plr_motor_fast_pitch":
param_01 = [[0,0.4],[0.6,0.4],[0.7,0.45],[0.85,0.5],[1,0.5]];
break;
case "sdv_plr_motor_fast_volume":
param_01 = [[0,0],[0.6,0.35],[0.7,0.55],[0.85,0.85],[1,1]];
break;
case "sdv_plr_water_slow_pitch":
param_01 = [[0,0.45],[0.1,0.5],[0.3,0.5],[1,0.5]];
break;
case "sdv_plr_water_slow_volume":
param_01 = [[0,0],[0.1,0.25],[0.45,0.75],[0.65,1],[0.7,0.5],[0.8,0.35],[1,0.2]];
break;
case "sdv_plr_water_med_pitch":
param_01 = [[0,0.45],[0.1,0.5],[0.3,0.5],[0.8,0.5],[1,0.55]];
break;
case "sdv_plr_water_med_volume":
param_01 = [[0,0],[0.5,0],[0.75,0],[0.85,0.25],[0.95,0.5],[1,1]];
break;
}
return param_01;
}

View File

@ -0,0 +1,303 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_audio_reverb.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 15
* Decompile Time: 251 ms
* Timestamp: 10/27/2023 2:33:05 AM
*******************************************************************/
//Function Number: 1
rvb_init(param_00)
{
if(!isdefined(level._audio))
{
level._audio = spawnstruct();
}
level._audio.reverb = spawnstruct();
level._audio.reverb.use_string_table_presets = 0;
level._audio.reverb.use_iw_presets = 0;
level._audio.reverb.current_reverb = "";
}
//Function Number: 2
rvb_use_string_table()
{
level._audio.reverb.use_string_table_presets = 1;
level._audio.reverb.use_iw_presets = 0;
}
//Function Number: 3
rvb_use_iw_presets()
{
level._audio.reverb.use_iw_presets = 1;
level._audio.reverb.use_string_table_presets = 0;
}
//Function Number: 4
rvb_set_dry_level(param_00,param_01)
{
param_01 = clamp(param_01,0,1);
param_00.drylevel = param_01;
}
//Function Number: 5
rvb_set_wet_level(param_00,param_01)
{
param_01 = clamp(param_01,0,1);
param_00.wetlevel = param_01;
}
//Function Number: 6
rvb_apply_reverb(param_00,param_01)
{
if(!isdefined(level._audio.reverb.applied_reverb) || level._audio.reverb.applied_reverb != param_00)
{
level._audio.reverb.applied_reverb = param_00;
var_02 = undefined;
if(isdefined(param_01))
{
var_02 = param_01;
}
else
{
var_02 = param_00.fadetime;
}
level.player setreverb(param_00.priority,param_00.roomtype,param_00.drylevel,param_00.wetlevel,var_02);
}
}
//Function Number: 7
rvb_start_preset(param_00,param_01)
{
if(level.player maps\_utility::ent_flag("player_has_red_flashing_overlay"))
{
if(isdefined(param_00) && param_00 != "none")
{
var_02 = func_103A(param_00);
if(!isdefined(var_02))
{
maps\_audio::aud_print_warning("Failed to load reverb preset: " + param_00);
return;
}
if(param_00 != "deathsdoor")
{
rvbx_store_current_reverb_track(param_00,var_02);
level._audio.deathsdoor.reverb = param_00;
}
}
else
{
rvbx_store_current_reverb_track("none",undefined);
level._audio.deathsdoor.reverb = "none";
}
return;
}
if(((isdefined(param_00) && param_00 == "none") || !isdefined(param_00)) && isdefined(level._audio.current_reverb))
{
level.player deactivatereverb("snd_enveffectsprio_level",1);
level._audio.current_reverb = undefined;
level._audio.reverb.current_reverb = "";
return;
}
else if(!isdefined(param_00) || isdefined(param_00) && param_00 == "none")
{
return;
}
var_02 = func_103A(param_00);
if(!isdefined(var_02))
{
maps\_audio::aud_print_warning("Failed to load reverb preset: " + param_00);
return;
}
level._audio.current_reverb = param_00;
if(param_00 != "deathsdoor")
{
rvbx_store_current_reverb_track(param_00,var_02);
}
if(level._audio.reverb.current_reverb != param_00)
{
level._audio.reverb.current_reverb = param_00;
rvb_apply_reverb(var_02,param_01);
}
}
//Function Number: 8
rvbx_store_current_reverb_track(param_00,param_01)
{
if(param_00 != "deathsdoor")
{
level.var_1031 = param_00;
if(param_00 == "none" && !isdefined(level.ambient_reverb["none"]))
{
level.ambient_reverb["none"] = 1;
return;
}
if(!isdefined(level.ambient_reverb[param_00]))
{
level.ambient_reverb[param_00] = [];
level.ambient_reverb[param_00]["priority"] = "snd_enveffectsprio_level";
level.ambient_reverb[param_00]["roomtype"] = param_01.roomtype;
level.ambient_reverb[param_00]["drylevel"] = param_01.drylevel;
level.ambient_reverb[param_00]["wetlevel"] = param_01.wetlevel;
level.ambient_reverb[param_00]["fadetime"] = param_01.fadetime;
return;
}
}
}
//Function Number: 9
rvb_deactive_reverb()
{
level.var_1031 = "";
level.player deactivatereverb("snd_enveffectsprio_level",2);
level._audio.current_reverb = undefined;
level._audio.reverb.current_reverb = "";
}
//Function Number: 10
rvb_get_applied_reverb()
{
var_00 = undefined;
if(isdefined(level._audio.reverb.applied_reverb))
{
var_00 = level._audio.reverb.applied_reverb;
}
return var_00;
}
//Function Number: 11
rvbx_get_preset_from_string_table(param_00,param_01)
{
var_02 = maps\_audio::get_reverb_stringtable();
var_03 = "soundtables/common_reverb.csv";
var_04 = [];
if(param_01)
{
var_04 = rvbx_get_reverb_preset_from_stringtable_internal(var_02,param_00);
}
if(!isdefined(var_04) || var_04.size == 0)
{
var_04 = rvbx_get_reverb_preset_from_stringtable_internal(var_03,param_00);
}
if(!isdefined(var_04) || var_04.size == 0)
{
return;
}
return var_04;
}
//Function Number: 12
rvbx_get_reverb_preset_from_stringtable_internal(param_00,param_01)
{
var_02 = [];
var_03 = "";
var_04 = "";
var_05 = 6;
for(var_06 = 1;var_06 < var_05;var_06++)
{
var_03 = tablelookup(param_00,0,"reverb_names",var_06);
var_04 = tablelookup(param_00,0,param_01,var_06);
if(var_03 != "comments" && var_04 != "")
{
if(var_03 != "roomtype")
{
var_02[var_03] = float(var_04);
continue;
}
var_02[var_03] = var_04;
}
}
return var_02;
}
//Function Number: 13
rvbx_apply_inital_reverb()
{
while(!isdefined(level.player))
{
wait 0.5;
}
rvb_apply_reverb(level._audio.reverb.var_1039);
}
//Function Number: 14
func_103A(param_00)
{
if(!isdefined(level._audio.reverb.preset_cache))
{
level._audio.reverb.preset_cache = [];
}
var_01 = rvbx_create();
var_02 = [];
if(isdefined(level._audio.var_103C))
{
var_02 = [[ level._audio.var_103C ]](param_00,var_02);
}
else if(isdefined(level._audio.reverb.preset_cache[param_00]))
{
var_02 = level._audio.reverb.preset_cache[param_00];
}
else if(level._audio.reverb.use_string_table_presets)
{
var_02 = rvbx_get_preset_from_string_table(param_00,1);
if(!isdefined(var_02))
{
return;
}
level._audio.reverb.preset_cache[param_00] = var_02;
}
else
{
var_02 = rvbx_get_preset_from_string_table(param_00,0);
if(!isdefined(var_02) || var_02.size == 0)
{
var_02 = maps\_audio::audio_presets_reverb(param_00,var_02);
}
if(!isdefined(var_02))
{
return;
}
level._audio.reverb.preset_cache[param_00] = var_02;
}
var_01.name = param_00;
var_01.roomtype = var_02["roomtype"];
var_01.drylevel = var_02["drylevel"];
var_01.wetlevel = var_02["wetlevel"];
var_01.fadetime = var_02["fadetime"];
return var_01;
}
//Function Number: 15
rvbx_create()
{
var_00 = spawnstruct();
var_00.roomtype = "generic";
var_00.drylevel = 1;
var_00.wetlevel = 0.5;
var_00.fadetime = 0;
var_00.priority = "snd_enveffectsprio_level";
return var_00;
}

View File

@ -0,0 +1,217 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_audio_stream_manager.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 13
* Decompile Time: 194 ms
* Timestamp: 10/27/2023 2:32:58 AM
*******************************************************************/
//Function Number: 1
sm_init()
{
level._audio.stream = spawnstruct();
level._audio.stream.music = spawnstruct();
level._audio.stream.music.var_1042 = smx_create_struct();
level._audio.stream.music.prev = smx_create_struct();
level._audio.stream.var_1044 = spawnstruct();
level._audio.stream.var_1044.var_1042 = smx_create_struct();
level._audio.stream.var_1044.prev = smx_create_struct();
}
//Function Number: 2
func_1045(param_00,param_01,param_02,param_03,param_04)
{
var_05 = 1;
if(isdefined(param_01))
{
var_05 = max(param_01,0);
}
var_06 = 1;
if(isdefined(param_04))
{
var_06 = max(param_04,0);
}
smx_set_values_for_struct(level._audio.stream.var_1044.prev,level._audio.stream.var_1044.var_1042.name,level._audio.stream.var_1044.var_1042.vol,level._audio.stream.var_1044.var_1042.fade);
smx_set_values_for_struct(level._audio.stream.var_1044.var_1042,param_00,var_06,var_05);
ambientplay(param_00,var_05,var_06);
}
//Function Number: 3
func_1048(param_00,param_01,param_02,param_03,param_04)
{
var_05 = 1;
if(isdefined(param_01))
{
var_05 = max(param_01,0);
}
var_06 = 1;
if(isdefined(param_02))
{
var_06 = param_02;
}
var_07 = 1;
if(isdefined(param_03))
{
var_07 = max(param_03,0);
}
smx_set_values_for_struct(level._audio.stream.music.prev,level._audio.stream.music.var_1042.name,level._audio.stream.music.var_1042.vol,level._audio.stream.music.var_1042.fade);
smx_set_values_for_struct(level._audio.stream.music.var_1042,param_00,var_07,var_05);
if(isdefined(param_04))
{
musicstop(var_06,param_04);
musicplay(param_00,var_05,var_07,0);
return;
}
musicplay(param_00,var_05,var_07);
}
//Function Number: 4
sm_stop_ambient_alias(param_00,param_01)
{
if(param_00 != "none")
{
var_02 = 1;
if(isdefined(param_01))
{
var_02 = max(param_01,0);
}
if(level._audio.stream.var_1044.var_1042.name == param_00)
{
level._audio.stream.var_1044.var_1042 = level._audio.stream.var_1044.prev;
smx_clear_struct(level._audio.stream.var_1044.prev);
}
else if(level._audio.stream.var_1044.prev.name == param_00)
{
smx_clear_struct(level._audio.stream.var_1044.prev);
}
ambientstop(var_02,param_00);
}
}
//Function Number: 5
sm_stop_music_alias(param_00,param_01)
{
var_02 = 1;
if(isdefined(param_01))
{
var_02 = max(param_01,0);
}
if(level._audio.stream.music.var_1042.name == param_00)
{
level._audio.stream.music.var_1042 = level._audio.stream.music.prev;
smx_clear_struct(level._audio.stream.music.prev);
}
else if(level._audio.stream.var_1044.prev.name == param_00)
{
smx_clear_struct(level._audio.stream.music.prev);
}
musicstop(var_02,param_00);
}
//Function Number: 6
sm_stop_ambience(param_00)
{
var_01 = 1;
if(isdefined(param_00))
{
var_01 = param_00;
}
ambientstop(var_01);
}
//Function Number: 7
sm_stop_music(param_00)
{
var_01 = 1;
if(isdefined(param_00))
{
var_01 = param_00;
}
smx_clear_struct(level._audio.stream.music.var_1042);
smx_clear_struct(level._audio.stream.music.prev);
musicstop(var_01);
}
//Function Number: 8
sm_mix_ambience(param_00)
{
var_01 = 0.009;
if(param_00.size == 1)
{
smx_set_values_for_struct(level._audio.stream.var_1044.var_1042,param_00[0].alias,param_00[0].vol,param_00[0].fade);
}
else if(param_00.size == 2)
{
smx_set_values_for_struct(level._audio.stream.var_1044.prev,param_00[0].alias,param_00[0].vol,param_00[0].fade);
smx_set_values_for_struct(level._audio.stream.var_1044.var_1042,param_00[1].alias,param_00[1].vol,param_00[1].fade);
}
for(var_06 = 0;var_06 < param_00.size;var_06++)
{
var_07 = param_00[var_06].alias;
var_08 = max(param_00[var_06].vol,0);
var_09 = clamp(param_00[var_06].fade,0,1);
if(var_07 != "none")
{
if(var_08 < var_01)
{
ambientstop(var_09,var_07);
continue;
}
ambientplay(var_07,var_09,var_08,0);
}
}
}
//Function Number: 9
sm_get_current_ambience_name()
{
return level._audio.stream.var_1044.var_1042.name;
}
//Function Number: 10
sm_get_current_music_name()
{
return level._audio.stream.music.var_1042.name;
}
//Function Number: 11
smx_set_values_for_struct(param_00,param_01,param_02,param_03)
{
param_00.name = param_01;
param_00.vol = param_02;
param_00.fade = param_03;
}
//Function Number: 12
smx_create_struct()
{
var_00 = spawnstruct();
var_00.name = "";
var_00.vol = 0;
var_00.fade = 0;
return var_00;
}
//Function Number: 13
smx_clear_struct(param_00)
{
param_00.name = "";
param_00.vol = 0;
param_00.fade = 0;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,162 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_audio_whizby.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 9
* Decompile Time: 135 ms
* Timestamp: 10/27/2023 2:33:21 AM
*******************************************************************/
//Function Number: 1
whiz_init()
{
setsaveddvar("snd_newWhizby",1);
level._audio.whiz = spawnstruct();
level._audio.whiz.use_string_table_presets = 0;
}
//Function Number: 2
whiz_use_string_table()
{
level._audio.whiz.use_string_table_presets = 1;
}
//Function Number: 3
whiz_set_preset(param_00)
{
var_01 = [];
if(level._audio.whiz.use_string_table_presets)
{
var_01 = whizx_get_stringtable_preset(param_00);
}
else
{
var_01 = maps\_audio::audio_presets_whizby(param_00,var_01);
}
var_02 = var_41["probability"];
var_03 = var_41["spread"];
var_04 = var_41["radius"];
var_05 = var_41["offset"];
level.player setwhizbyprobabilities(var_02[0],var_02[1],var_02[2]);
level.player setwhizbyspreads(var_03[0],var_03[1],var_03[2]);
level.player setwhizbyradii(var_04[0],var_04[1],var_04[2]);
level.player setwhizbyoffset(var_05);
}
//Function Number: 4
whiz_set_probabilities(param_00,param_01,param_02)
{
level.player setwhizbyprobabilities(param_00,param_01,param_02);
}
//Function Number: 5
whiz_set_spreads(param_00,param_01,param_02)
{
level.player setwhizbyspreads(param_00,param_01,param_02);
}
//Function Number: 6
whiz_set_radii(param_00,param_01,param_02)
{
level.player setwhizbyradii(param_00,param_01,param_02);
}
//Function Number: 7
whiz_set_offset(param_00)
{
level.player setwhizbyoffset(param_00);
}
//Function Number: 8
whizx_get_stringtable_preset(param_00)
{
var_01 = "soundtables/common_whizby.csv";
var_02 = [];
var_02 = whizx_get_mix_preset_from_stringtable_internal(var_01,param_00);
return var_02;
}
//Function Number: 9
whizx_get_mix_preset_from_stringtable_internal(param_00,param_01)
{
var_02 = [];
var_03 = "";
var_04 = "";
var_05 = 12;
var_06 = [];
var_07 = [];
var_08 = [];
var_09 = 0;
var_0A = 0;
for(var_0B = 1;var_0B < var_05;var_0B++)
{
var_03 = tablelookup(param_00,0,"whizby_preset",var_0B);
var_04 = tablelookup(param_00,0,param_01,var_0B);
if(!isdefined(var_04))
{
break;
}
if(var_04 != "" && var_04 != "comments")
{
var_0A++;
switch(var_03)
{
case "radius_offset":
var_09 = float(var_04);
break;
case "near_radius":
var_06[0] = float(var_04);
break;
case "medium_radius":
var_06[1] = float(var_04);
break;
case "far_radius":
var_06[2] = float(var_04);
break;
case "near_spread":
var_07[0] = float(var_04);
break;
case "medium_spread":
var_07[1] = float(var_04);
break;
case "far_spread":
var_07[2] = float(var_04);
break;
case "near_prob":
var_08[0] = float(var_04);
break;
case "medium_prob":
var_08[1] = float(var_04);
break;
case "far_prob":
var_08[2] = float(var_04);
break;
}
}
}
if(var_0A > 0)
{
var_02["radius"] = var_06;
var_02["spread"] = var_07;
var_02["probability"] = var_08;
if(isdefined(var_09))
{
var_02["offset"] = var_09;
}
}
return var_02;
}

View File

@ -0,0 +1,873 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_audio_zone_manager.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 30
* Decompile Time: 529 ms
* Timestamp: 10/27/2023 2:33:19 AM
*******************************************************************/
//Function Number: 1
azm_init()
{
if(!isdefined(level._audio.zone_mgr))
{
level._audio.zone_mgr = spawnstruct();
level._audio.zone_mgr.current_zone = "";
level._audio.zone_mgr.var_112B = [];
level._audio.zone_mgr.overrides = spawnstruct();
level._audio.zone_mgr.overrides.samb = [];
level._audio.zone_mgr.overrides.damb = [];
level._audio.zone_mgr.overrides.mix = [];
level._audio.zone_mgr.overrides.rev = [];
level._audio.zone_mgr.overrides.var_112F = [];
level._audio.zone_mgr.use_string_table_presets = 0;
level._audio.zone_mgr.use_iw_presets = 0;
}
if(!isdefined(level._audio.use_level_audio_zones))
{
level._audio.level_audio_zones_function = undefined;
}
}
//Function Number: 2
azm_use_string_table()
{
level._audio.zone_mgr.use_string_table_presets = 1;
level._audio.zone_mgr.use_iw_presets = 0;
}
//Function Number: 3
azm_use_iw_presets()
{
level._audio.zone_mgr.use_iw_presets = 1;
level._audio.zone_mgr.use_string_table_presets = 0;
}
//Function Number: 4
func_1134(param_00,param_01,param_02)
{
if(level._audio.zone_mgr.current_zone == param_00)
{
return;
}
else if(level._audio.zone_mgr.current_zone != "")
{
func_113F(level._audio.zone_mgr.current_zone,param_01);
}
level._audio.zone_mgr.current_zone = param_00;
if(isdefined(level._audio.zone_mgr.var_112B[param_00]) && isdefined(level._audio.zone_mgr.var_112B[param_00]["state"]) && level._audio.zone_mgr.var_112B[param_00]["state"] != "stopping")
{
maps\_audio::aud_print_warning("ZONEM_start_zone(\" + param_00 + "\") being called even though audio zone, \" + param_00 + "\", is already started.");
return;
}
var_03 = 2;
if(isdefined(param_01))
{
var_03 = param_01;
}
if(!isdefined(level._audio.zone_mgr.var_112B[param_00]))
{
var_04 = azmx_load_zone(param_00);
if(!isdefined(var_04))
{
return;
}
level._audio.zone_mgr.var_112B[param_00] = var_04;
}
var_04 = level._audio.zone_mgr.var_112B[param_00];
maps\_audio::func_1135("ZONE START: " + param_00);
level._audio.zone_mgr.var_112B[param_00]["state"] = "playing";
var_05 = var_04["priority"];
var_06 = var_04["interrupt_fade"];
if(isdefined(var_04["streamed_ambience"]))
{
if(var_04["streamed_ambience"] != "none")
{
maps\_audio_stream_manager::func_1045(var_04["streamed_ambience"],var_03,var_05,var_06);
}
else
{
maps\_audio_stream_manager::sm_stop_ambience(var_03);
}
}
if(isdefined(var_04["dynamic_ambience"]))
{
if(var_04["dynamic_ambience"] != "none")
{
maps\_audio_dynamic_ambi::damb_zone_start_preset(var_04["dynamic_ambience"],1);
}
else
{
maps\_audio_dynamic_ambi::damb_stop_zone(1);
}
}
if(isdefined(var_04["occlusion"]))
{
if(var_04["occlusion"] != "none")
{
maps\_audio::aud_set_occlusion(var_04["occlusion"]);
}
else
{
maps\_audio::func_1137();
}
}
if(isdefined(var_04["filter"]))
{
if(var_04["filter"] != "none")
{
maps\_audio::func_1138(var_04["filter"],0);
level.player seteqlerp(1,0);
}
}
if(isdefined(var_04["reverb"]))
{
if(var_04["reverb"] != "none")
{
maps\_audio_reverb::rvb_start_preset(var_04["reverb"]);
}
else
{
maps\_audio_reverb::rvb_deactive_reverb();
}
}
if(isdefined(var_04["mix"]))
{
if(var_04["mix"] != "none")
{
maps\_audio_mix_manager::mm_start_zone_preset(var_04["mix"]);
return;
}
maps\_audio_mix_manager::func_10DB(1);
}
}
//Function Number: 5
azm_set_zone_streamed_ambience(param_00,param_01,param_02)
{
var_03 = func_114E(param_00,"streamed_ambience",param_01,::azmx_restart_stream,param_02);
if(!var_03)
{
if(!isdefined(param_01))
{
param_01 = "none";
}
level._audio.zone_mgr.overrides.samb[param_00] = param_01;
}
}
//Function Number: 6
azm_set_zone_dynamic_ambience(param_00,param_01,param_02)
{
if(!isdefined(param_01))
{
param_01 = "none";
}
func_114E(param_00,"dynamic_ambience",param_01,::func_114A,param_02);
level._audio.zone_mgr.overrides.damb[param_00] = param_01;
}
//Function Number: 7
func_113B(param_00,param_01,param_02)
{
if(!isdefined(param_01))
{
param_01 = "none";
}
func_114E(param_00,"reverb",param_01,::azmx_restart_reverb,param_02);
level._audio.zone_mgr.overrides.rev[param_00] = param_01;
}
//Function Number: 8
func_113C(param_00,param_01,param_02)
{
if(!isdefined(param_01))
{
param_01 = "none";
}
func_114E(param_00,"occlusion",param_01,::azmx_restart_occlusion,param_02);
level._audio.zone_mgr.overrides.mix[param_01] = param_01;
}
//Function Number: 9
azm_set_zone_mix(param_00,param_01,param_02)
{
if(!isdefined(param_01))
{
param_01 = "none";
}
func_114E(param_00,"mix",param_01,::func_114D,param_02);
level._audio.zone_mgr.overrides.mix[param_01] = param_01;
}
//Function Number: 10
func_113E(param_00)
{
var_01 = 1;
if(isdefined(param_00))
{
var_01 = param_00;
}
maps\_audio::func_1135("ZONE STOP ALL");
foreach(var_03 in level._audio.zone_mgr.var_112B)
{
func_113F(var_03["name"],var_01,0);
}
}
//Function Number: 11
func_113F(param_00,param_01,param_02)
{
if(isdefined(level._audio.zone_mgr.var_112B[param_00]) && isdefined(level._audio.zone_mgr.var_112B[param_00]["state"]) && level._audio.zone_mgr.var_112B[param_00]["state"] != "stopping")
{
var_03 = 1;
if(isdefined(param_01))
{
var_03 = param_01;
}
var_04 = level._audio.zone_mgr.var_112B[param_00];
var_05 = 0;
if(isdefined(param_02))
{
var_05 = param_02;
}
if(var_05)
{
maps\_audio::func_1135("ZONE STOP ZONE: " + param_00);
}
if(isdefined(var_04["streamed_ambience"]))
{
maps\_audio_stream_manager::sm_stop_ambient_alias(var_04["streamed_ambience"],var_03);
}
if(isdefined(var_04["dynamic_ambience"]))
{
maps\_audio_dynamic_ambi::damb_zone_stop_preset(var_04["dynamic_ambience"],var_03);
}
level._audio.zone_mgr.var_112B[param_00]["state"] = "stopping";
thread azmx_wait_till_fade_done_and_remove_zone(param_00,var_03);
}
}
//Function Number: 12
azm_get_current_zone()
{
return level._audio.zone_mgr.current_zone;
}
//Function Number: 13
azm_set_current_zone(param_00)
{
level._audio.zone_mgr.current_zone = param_00;
}
//Function Number: 14
azm_print_enter_blend(param_00,param_01,param_02)
{
}
//Function Number: 15
azm_print_exit_blend(param_00)
{
}
//Function Number: 16
func_1144(param_00)
{
}
//Function Number: 17
azmx_load_zone(param_00)
{
if(isdefined(level._audio.zone_mgr.var_112B[param_00]))
{
return;
}
if(!isdefined(level._audio.zone_mgr.preset_cache))
{
level._audio.zone_mgr.preset_cache = [];
}
var_01 = [];
if(isdefined(level._audio.zone_mgr.preset_cache[param_00]))
{
var_01 = level._audio.zone_mgr.preset_cache[param_00];
}
else
{
var_01 = azmx_get_preset_from_string_table(param_00,1);
}
if(!isdefined(var_01) || var_01.size == 0)
{
return;
}
level._audio.zone_mgr.preset_cache[param_00] = var_01;
var_02 = 0;
if(isdefined(level._audio.zone_mgr.overrides.samb[param_00]))
{
if(level._audio.zone_mgr.overrides.samb[param_00] == "none")
{
var_01["streamed_ambience"] = undefined;
}
else
{
var_01["streamed_ambience"] = level._audio.zone_mgr.overrides.samb[param_00];
}
var_02 = 1;
level._audio.zone_mgr.overrides.samb[param_00] = undefined;
}
if(isdefined(level._audio.zone_mgr.overrides.damb[param_00]))
{
if(level._audio.zone_mgr.overrides.damb[param_00] == "none")
{
var_01["dynamic_ambience"] = undefined;
}
else
{
var_01["dynamic_ambience"] = level._audio.zone_mgr.overrides.damb[param_00];
}
var_02 = 1;
level._audio.zone_mgr.overrides.damb[param_00] = undefined;
}
if(isdefined(level._audio.zone_mgr.overrides.rev[param_00]))
{
if(level._audio.zone_mgr.overrides.rev[param_00] == "none")
{
var_01["reverb"] = undefined;
}
else
{
var_01["reverb"] = level._audio.zone_mgr.overrides.rev[param_00];
}
var_02 = 1;
level._audio.zone_mgr.overrides.rev[param_00] = undefined;
}
if(isdefined(level._audio.zone_mgr.overrides.var_112F[param_00]))
{
if(level._audio.zone_mgr.overrides.var_112F[param_00] == "none")
{
var_01["occlusion"] = undefined;
}
else
{
var_01["occlusion"] = level._audio.zone_mgr.overrides.var_112F[param_00];
}
var_02 = 1;
level._audio.zone_mgr.overrides.var_112F[param_00] = undefined;
}
if(isdefined(level._audio.zone_mgr.overrides.mix[param_00]))
{
if(level._audio.zone_mgr.overrides.mix[param_00] == "none")
{
var_01["mix"] = undefined;
}
else
{
var_01["mix"] = level._audio.zone_mgr.overrides.mix[param_00];
}
var_02 = 1;
level._audio.zone_mgr.overrides.mix[param_00] = undefined;
}
if(var_02)
{
level._audio.zone_mgr.preset_cache[param_00] = var_01;
}
var_01["name"] = param_00;
if(!isdefined(var_01["priority"]))
{
var_01["priority"] = 1;
}
if(!isdefined(var_01["interrupt_fade"]))
{
var_01["interrupt_fade"] = 0.1;
}
return var_01;
}
//Function Number: 18
azmx_get_preset_from_string_table(param_00,param_01)
{
var_02 = "soundtables/common_zone.csv";
var_03 = maps\_audio::get_zone_stringtable();
var_04 = [];
if(param_01)
{
var_04 = azmx_get_zone_preset_from_stringtable_internal(var_03,param_00);
}
if(!isdefined(var_04) || var_04.size == 0)
{
var_04 = azmx_get_zone_preset_from_stringtable_internal(var_02,param_00);
}
if(!isdefined(var_04) || var_04.size == 0)
{
return;
}
return var_04;
}
//Function Number: 19
azmx_get_zone_preset_from_stringtable_internal(param_00,param_01)
{
var_02 = [];
var_03 = "";
var_04 = "";
var_05 = 8;
for(var_06 = 1;var_06 < var_05;var_06++)
{
if(var_03 != "comments" && var_04 != "")
{
var_02[var_03] = var_04;
}
var_03 = tablelookup(param_00,0,"zone_names",var_06);
var_04 = tablelookup(param_00,0,param_01,var_06);
if(var_03 != "comment" && var_03 != "comments" && var_04 != "")
{
switch(var_03)
{
case "streamed_ambience":
var_02["streamed_ambience"] = var_04;
break;
case "dynamic_ambience":
var_02["dynamic_ambience"] = var_04;
break;
case "mix":
var_02["mix"] = var_04;
break;
case "reverb":
var_02["reverb"] = var_04;
break;
case "filter":
var_02["filter"] = var_04;
break;
case "occlusion":
var_02["occlusion"] = var_04;
break;
default:
break;
}
}
}
return var_02;
}
//Function Number: 20
azmx_restart_stream(param_00,param_01)
{
var_02 = level._audio.zone_mgr.var_112B[param_00]["streamed_ambience"];
if(isdefined(var_02))
{
maps\_audio_stream_manager::func_1045(var_02,param_01);
return;
}
maps\_audio_stream_manager::sm_stop_ambience(param_01);
}
//Function Number: 21
func_114A(param_00,param_01)
{
var_02 = 1;
if(isdefined(param_01))
{
var_02 = param_01;
}
var_03 = level._audio.zone_mgr.var_112B[param_00]["dynamic_ambience"];
if(isdefined(var_03))
{
maps\_audio_dynamic_ambi::damb_zone_start_preset(var_03,var_02);
return;
}
maps\_audio_dynamic_ambi::damb_zone_stop_preset(undefined,var_02);
}
//Function Number: 22
azmx_restart_reverb(param_00,param_01)
{
var_02 = level._audio.zone_mgr.var_112B[param_00]["reverb"];
if(isdefined(var_02))
{
maps\_audio_reverb::rvb_start_preset(var_02);
}
}
//Function Number: 23
azmx_restart_occlusion(param_00,param_01)
{
var_02 = level._audio.zone_mgr.var_112B[param_00]["occlusion"];
if(isdefined(var_02))
{
maps\_audio::aud_set_occlusion(var_02);
}
}
//Function Number: 24
func_114D(param_00,param_01)
{
var_02 = level._audio.zone_mgr.var_112B[param_00]["mix"];
if(isdefined(var_02))
{
maps\_audio_mix_manager::mm_start_preset(var_02);
}
}
//Function Number: 25
func_114E(param_00,param_01,param_02,param_03,param_04)
{
if(isdefined(level._audio.zone_mgr.var_112B[param_00]))
{
if((isdefined(level._audio.zone_mgr.var_112B[param_00][param_01]) && level._audio.zone_mgr.var_112B[param_00][param_01] != param_02) || !isdefined(level._audio.zone_mgr.var_112B[param_00][param_01]) && param_02 != "none")
{
if(param_02 == "none")
{
level._audio.zone_mgr.var_112B[param_00][param_01] = undefined;
}
else
{
level._audio.zone_mgr.var_112B[param_00][param_01] = param_02;
}
if(param_00 == azm_get_current_zone())
{
[[ param_03 ]](param_00,param_04);
}
}
return 1;
}
return 0;
}
//Function Number: 26
azmx_wait_till_fade_done_and_remove_zone(param_00,param_01)
{
wait param_01;
wait 0.05;
if(level._audio.zone_mgr.var_112B[param_00]["state"] == "stopping")
{
}
}
//Function Number: 27
func_1150(param_00,param_01)
{
var_02 = spawnstruct();
var_02.var_1151 = param_00;
var_02.var_1152 = param_01;
var_02.samb1_name = undefined;
var_02.samb2_name = undefined;
var_02.damb1_name = undefined;
var_02.damb2_name = undefined;
var_02.occlusion1 = undefined;
var_02.var_1158 = undefined;
var_02.filter1 = undefined;
var_02.filter2 = undefined;
var_02.reverb1 = undefined;
var_02.reverb2 = undefined;
var_02.mix1_name = undefined;
var_02.var_115E = undefined;
if(!isdefined(level._audio.zone_mgr.var_112B[param_00]))
{
var_03 = azmx_load_zone(param_00);
if(!isdefined(var_03))
{
maps\_audio::aud_print_warning("Couldn\'t find zone: " + param_00);
return;
}
level._audio.zone_mgr.var_112B[param_00] = var_03;
}
var_04 = level._audio.zone_mgr.var_112B[param_00];
if(!isdefined(level._audio.zone_mgr.var_112B[param_01]))
{
var_03 = azmx_load_zone(param_01);
if(!isdefined(var_03))
{
maps\_audio::aud_print_warning("Couldn\'t find zone: " + param_01);
return;
}
level._audio.zone_mgr.var_112B[param_01] = var_03;
}
var_05 = level._audio.zone_mgr.var_112B[param_01];
var_02.occlusion1 = var_04["occlusion"];
var_02.var_1158 = var_05["occlusion"];
var_02.filter1 = var_04["filter"];
var_02.filter2 = var_05["filter"];
var_02.reverb1 = var_04["reverb"];
var_02.reverb2 = var_05["reverb"];
var_02.mix1 = var_04["mix"];
var_02.mix2 = var_05["mix"];
var_02.samb1_name = var_04["streamed_ambience"];
var_02.samb2_name = var_05["streamed_ambience"];
var_06 = level._audio.damb.playing["zone"].size;
if(var_06 != 1)
{
maps\_audio_dynamic_ambi::damb_stop(1,"zone");
}
if(var_06 == 1)
{
foreach(var_09, var_08 in level._audio.damb.playing["zone"])
{
var_02.damb1_name = var_09;
break;
}
}
var_02.damb2_name = var_05["dynamic_ambience"];
return var_02;
}
//Function Number: 28
func_1161(param_00,param_01)
{
var_02 = 0;
if(isdefined(param_00) && isdefined(param_01) && param_00 != param_01)
{
var_02 = 1;
}
else if(isdefined(param_01) && !isdefined(param_00))
{
var_02 = 1;
}
else if(isdefined(param_00) && !isdefined(param_01))
{
var_02 = 1;
}
return var_02;
}
//Function Number: 29
func_1162(param_00,param_01)
{
var_02 = 0;
if(isdefined(param_00) && isdefined(param_01) && param_00 != param_01)
{
var_02 = 1;
}
else if(isdefined(param_01) && !isdefined(param_00))
{
var_02 = 1;
}
return var_02;
}
//Function Number: 30
azmx_blend_zones(param_00,param_01,param_02)
{
if(func_1162(param_02.samb1_name,param_02.samb2_name))
{
var_03 = [];
var_04 = 0;
if(isdefined(param_02.samb1_name) && param_02.samb1_name != "")
{
var_05 = level._audio.zone_mgr.var_112B[param_02.var_1151];
var_03[var_04] = spawnstruct();
var_03[var_04].alias = param_02.samb1_name;
var_03[var_04].vol = param_00;
var_03[var_04].fade = var_05["interrupt_fade"];
var_03[var_04].priority = var_05["priority"];
var_04++;
}
if(isdefined(param_02.samb2_name) && param_02.samb2_name != "")
{
var_06 = level._audio.zone_mgr.var_112B[param_02.var_1152];
var_03[var_04] = spawnstruct();
var_03[var_04].alias = param_02.samb2_name;
var_03[var_04].vol = param_01;
var_03[var_04].fade = var_06["interrupt_fade"];
var_03[var_04].priority = var_06["priority"];
}
if(var_03.size > 0)
{
maps\_audio_stream_manager::sm_mix_ambience(var_03);
}
}
if(func_1161(param_02.damb1_name,param_02.damb2_name))
{
maps\_audio_dynamic_ambi::damb_prob_mix_damb_presets(param_02.damb1_name,param_00,param_02.damb2_name,param_01);
}
var_07 = 0;
if(maps\_audio::func_1164())
{
if(isdefined(param_02.filter1))
{
var_07 = 1;
maps\_audio::func_1138(param_02.filter1,0,0);
}
else
{
maps\_audio::func_1138(undefined,0,0);
}
if(isdefined(param_02.filter2))
{
var_07 = 1;
maps\_audio::func_1138(param_02.filter2,1,0);
}
else
{
maps\_audio::func_1138(undefined,1,0);
}
if(!isdefined(level._audio.var_1165) && level._audio.var_1165)
{
if(isdefined(param_02.filter1) || isdefined(param_02.filter2))
{
level.player seteqlerp(param_00,0);
}
}
}
if(param_00 >= 0.75)
{
if(isdefined(param_02.reverb1))
{
if(param_02.reverb1 == "none")
{
maps\_audio_reverb::rvb_start_preset(undefined);
}
else
{
maps\_audio_reverb::rvb_start_preset(param_02.reverb1);
}
}
if(isdefined(param_02.mix1))
{
if(param_02.mix1 == "none")
{
maps\_audio_mix_manager::func_10DB(2);
}
else
{
maps\_audio_mix_manager::mm_start_zone_preset(param_02.mix1);
}
}
if(maps\_audio::func_1164())
{
if(isdefined(param_02.occlusion1))
{
if(param_02.occlusion1 == "none")
{
maps\_audio::func_1137();
return;
}
maps\_audio::aud_set_occlusion(param_02.occlusion1);
return;
}
return;
}
return;
}
if(param_01 >= 0.75)
{
if(isdefined(param_02.reverb2))
{
if(param_02.reverb2 == "none")
{
maps\_audio_reverb::rvb_start_preset(undefined);
}
else
{
maps\_audio_reverb::rvb_start_preset(param_02.reverb2);
}
}
if(isdefined(param_02.mix2))
{
if(param_02.mix2 == "none")
{
maps\_audio_mix_manager::func_10DB(2);
}
else
{
maps\_audio_mix_manager::mm_start_zone_preset(param_02.mix2);
}
}
if(maps\_audio::func_1164())
{
if(isdefined(param_02.var_1158))
{
if(param_02.var_1158 == "none")
{
maps\_audio::func_1137();
return;
}
maps\_audio::aud_set_occlusion(param_02.var_1158);
return;
}
return;
}
}
}

View File

@ -0,0 +1,777 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_autosave.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 28
* Decompile Time: 461 ms
* Timestamp: 10/27/2023 2:34:55 AM
*******************************************************************/
//Function Number: 1
main()
{
level.var_17C9 = 0;
common_scripts\utility::flag_init("game_saving");
common_scripts\utility::flag_init("can_save");
common_scripts\utility::flag_set("can_save");
common_scripts\utility::flag_init("disable_autosaves");
if(!isdefined(level._extra_autosave_checks))
{
level._extra_autosave_checks = [];
}
level.autosave_proximity_threat_func = ::autosave_proximity_threat_func;
}
//Function Number: 2
getdescription()
{
return &"AUTOSAVE_AUTOSAVE";
}
//Function Number: 3
getnames(param_00)
{
if(param_00 == 0)
{
var_01 = &"AUTOSAVE_GAME";
}
else
{
var_01 = &"AUTOSAVE_NOGAME";
}
return var_01;
}
//Function Number: 4
beginningoflevelsave()
{
level waittill("finished final intro screen fadein");
if(level.var_1291)
{
return;
}
if(maps\_arcademode::arcademode_complete())
{
return;
}
if(common_scripts\utility::flag("game_saving"))
{
return;
}
common_scripts\utility::flag_set("game_saving");
var_00 = "levelshots / autosave / autosave_" + level.script + "start";
savegame("levelstart",&"AUTOSAVE_LEVELSTART",var_00,1);
setdvar("ui_grenade_death","0");
common_scripts\utility::flag_clear("game_saving");
}
//Function Number: 5
trigger_autosave_stealth(param_00)
{
param_00 waittill("trigger");
maps\_utility::autosave_stealth();
}
//Function Number: 6
trigger_autosave_tactical(param_00)
{
param_00 waittill("trigger");
maps\_utility::autosave_tactical();
}
//Function Number: 7
func_17D3(param_00)
{
if(!isdefined(param_00.script_autosave))
{
param_00.script_autosave = 0;
}
autosaves_think(param_00);
}
//Function Number: 8
autosaves_think(param_00)
{
var_01 = getnames(param_00.script_autosave);
if(!isdefined(var_01))
{
return;
}
param_00 waittill("trigger");
var_02 = param_00.script_autosave;
var_03 = "levelshots / autosave / autosave_" + level.script + var_02;
tryautosave(var_02,var_01,var_03);
thread maps\_quotes::setdeadquote();
if(isdefined(param_00))
{
param_00 delete();
}
}
//Function Number: 9
autosavenamethink(param_00)
{
if(maps\_utility::func_17D7())
{
return;
}
param_00 waittill("trigger");
if(isdefined(level.customautosavecheck))
{
if(![[ level.customautosavecheck ]]())
{
return;
}
}
var_01 = param_00.script_autosavename;
maps\_utility::autosave_by_name(var_01);
param_00 delete();
}
//Function Number: 10
func_17DA(param_00)
{
param_00 waittill("trigger");
}
//Function Number: 11
func_17DB(param_00,param_01)
{
if(isdefined(param_01))
{
}
}
//Function Number: 12
autosave_timeout(param_00)
{
level endon("trying_new_autosave");
level endon("autosave_complete");
wait param_00;
common_scripts\utility::flag_clear("game_saving");
level notify("autosave_timeout");
}
//Function Number: 13
func_17DD()
{
var_00 = "levelshots / autosave / autosave_" + level.script + "start";
savegame("levelstart",&"AUTOSAVE_LEVELSTART",var_00,1);
func_17F7(0);
}
//Function Number: 14
func_17DE()
{
var_00 = "levelshots / autosave / autosave_" + level.script + "start";
if(getdvarint("g_reloading") == 0)
{
savegame("levelstart",&"AUTOSAVE_LEVELSTART",var_00,1);
func_17F7(0);
}
}
//Function Number: 15
_autosave_game_now(param_00)
{
if(isdefined(level.var_1291) && level.var_1291)
{
return;
}
if(common_scripts\utility::flag("game_saving"))
{
return 0;
}
if(maps\_arcademode::arcademode_complete())
{
return 0;
}
for(var_01 = 0;var_01 < level.players.size;var_01++)
{
var_02 = level.players[var_01];
if(!isalive(var_02))
{
return 0;
}
}
var_03 = "save_now";
var_04 = getdescription();
if(isdefined(param_00))
{
var_05 = savegamenocommit(var_03,var_04,"$default",1);
}
else
{
var_05 = savegamenocommit(var_04,var_05);
}
wait 0.05;
if(issaverecentlyloaded())
{
level.var_17C9 = gettime();
return 0;
}
if(var_05 < 0)
{
return 0;
}
if(!func_17E2())
{
return 0;
}
common_scripts\utility::flag_set("game_saving");
wait 2;
common_scripts\utility::flag_clear("game_saving");
if(!commitwouldbevalid(var_05))
{
return 0;
}
if(func_17E2())
{
if(!isdefined(param_00))
{
thread maps\_arcademode::arcademode_checkpoint_print();
}
func_17F7(var_05);
commitsave(var_05);
setdvar("ui_grenade_death","0");
}
return 1;
}
//Function Number: 16
autosave_now_trigger(param_00)
{
param_00 waittill("trigger");
maps\_utility::autosave_now();
}
//Function Number: 17
func_17E2()
{
if(!issavesuccessful())
{
return 0;
}
for(var_00 = 0;var_00 < level.players.size;var_00++)
{
var_01 = level.players[var_00];
if(!var_01 autosavehealthcheck())
{
return 0;
}
}
if(!common_scripts\utility::flag("can_save"))
{
return 0;
}
return 1;
}
//Function Number: 18
tryautosave(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(common_scripts\utility::flag("disable_autosaves"))
{
return 0;
}
level endon("nextmission");
level.player endon("death");
if(maps\_utility::func_E89())
{
level.player2 endon("death");
}
level notify("trying_new_autosave");
if(common_scripts\utility::flag("game_saving"))
{
return 0;
}
if(isdefined(level.nextmission))
{
return 0;
}
var_06 = 1.25;
var_07 = 1.25;
if(isdefined(param_03) && param_03 < var_06 + var_07)
{
}
if(!isdefined(param_05))
{
param_05 = 0;
}
if(!isdefined(param_02))
{
param_02 = "$default";
}
if(!isdefined(param_04))
{
param_04 = 0;
}
common_scripts\utility::flag_set("game_saving");
var_08 = getdescription();
var_09 = gettime();
for(;;)
{
if(autosavecheck(undefined,param_04))
{
var_0A = savegamenocommit(param_00,var_08,param_02,param_05);
if(var_0A < 0)
{
break;
}
wait 0.05;
if(issaverecentlyloaded())
{
level.var_17C9 = gettime();
break;
}
wait var_06;
if(extra_autosave_checks_failed())
{
continue;
}
if(!autosavecheck(undefined,param_04))
{
continue;
}
wait var_07;
if(!func_17E6())
{
continue;
}
if(isdefined(param_03))
{
if(gettime() > var_09 + param_03 * 1000)
{
break;
}
}
if(!common_scripts\utility::flag("can_save"))
{
break;
}
if(!commitwouldbevalid(var_0A))
{
common_scripts\utility::flag_clear("game_saving");
return 0;
}
thread maps\_arcademode::arcademode_checkpoint_print();
func_17F7(var_0A);
commitsave(var_0A);
level.var_17E4 = gettime();
setdvar("ui_grenade_death","0");
break;
}
wait 0.25;
}
common_scripts\utility::flag_clear("game_saving");
return 1;
}
//Function Number: 19
extra_autosave_checks_failed()
{
foreach(var_01 in level._extra_autosave_checks)
{
if(![[ var_01["func"] ]]())
{
func_17DB("autosave failed: " + var_01["msg"]);
return 1;
}
}
return 0;
}
//Function Number: 20
func_17E6()
{
return autosavecheck(0,0);
}
//Function Number: 21
autosavecheck(param_00,param_01)
{
if(isdefined(level.autosave_check_override))
{
return [[ level.autosave_check_override ]]();
}
if(isdefined(level.special_autosavecondition) && ![[ level.special_autosavecondition ]]())
{
return 0;
}
if(level.var_1291)
{
return 0;
}
if(maps\_arcademode::arcademode_complete())
{
return 0;
}
if(!isdefined(param_00))
{
param_00 = level.dopickyautosavechecks;
}
if(!isdefined(param_01))
{
param_01 = 0;
}
if(param_01)
{
if(![[ level.global_callbacks["_autosave_stealthcheck"] ]]())
{
return 0;
}
}
for(var_02 = 0;var_02 < level.players.size;var_02++)
{
var_03 = level.players[var_02];
if(!var_03 autosavehealthcheck())
{
return 0;
}
if(param_00 && !var_03 autosaveammocheck())
{
return 0;
}
}
if(level.autosave_threat_check_enabled)
{
if(!func_17F4(param_00))
{
return 0;
}
}
for(var_02 = 0;var_02 < level.players.size;var_02++)
{
var_03 = level.players[var_02];
if(!var_03 autosaveplayercheck(param_00))
{
return 0;
}
}
if(isdefined(level.savehere) && !level.savehere)
{
return 0;
}
if(isdefined(level.cansave) && !level.cansave)
{
return 0;
}
if(!issavesuccessful())
{
func_17DB("autosave failed: save call was unsuccessful");
return 0;
}
return 1;
}
//Function Number: 22
autosaveplayercheck(param_00)
{
if(isdefined(level.ac130gunner) && level.ac130gunner == self)
{
return 1;
}
if(self ismeleeing() && param_00)
{
func_17DB("autosave failed:player is meleeing");
return 0;
}
if(self isthrowinggrenade() && param_00)
{
func_17DB("autosave failed:player is throwing a grenade");
return 0;
}
if(self isfiring() && param_00)
{
func_17DB("autosave failed:player is firing");
return 0;
}
if(isdefined(self.shellshocked) && self.shellshocked)
{
func_17DB("autosave failed:player is in shellshock");
return 0;
}
if(common_scripts\utility::isflashed())
{
func_17DB("autosave failed:player is flashbanged");
return 0;
}
return 1;
}
//Function Number: 23
autosaveammocheck()
{
if(isdefined(level.ac130gunner) && level.ac130gunner == self)
{
return 1;
}
var_00 = self getweaponslistprimaries();
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
var_02 = self getfractionmaxammo(var_00[var_01]);
if(var_02 > 0.1)
{
return 1;
}
}
func_17DB("autosave failed: ammo too low");
return 0;
}
//Function Number: 24
autosavehealthcheck()
{
if(isdefined(level.ac130gunner) && level.ac130gunner == self)
{
return 1;
}
if(maps\_utility::ent_flag_exist("laststand_downed") && maps\_utility::ent_flag("laststand_downed"))
{
return 0;
}
var_00 = self.health / self.maxhealth;
if(var_00 < 0.5)
{
return 0;
}
if(common_scripts\utility::flag("_radiation_poisoning"))
{
return 0;
}
if(maps\_utility::ent_flag("player_has_red_flashing_overlay"))
{
return 0;
}
return 1;
}
//Function Number: 25
func_17F4(param_00)
{
if(isdefined(level.ac130gunner) && level.ac130gunner == self)
{
return 1;
}
var_01 = getaispeciesarray("bad_guys","all");
foreach(var_03 in var_01)
{
if(!isdefined(var_03.enemy))
{
continue;
}
if(!isplayer(var_03.enemy))
{
continue;
}
if(var_03.type == "dog")
{
foreach(var_05 in level.players)
{
if(distance(var_03.origin,var_05.origin) < 384)
{
return 0;
}
}
continue;
}
if(isdefined(var_03.melee) && isdefined(var_03.melee.target) && isplayer(var_03.melee.target))
{
return 0;
}
var_07 = [[ level.autosave_proximity_threat_func ]](var_03);
if(var_07 == "return_even_if_low_accuracy")
{
return 0;
}
if(var_03.finalaccuracy < 0.021 && var_03.finalaccuracy > -1)
{
continue;
}
if(var_07 == "return")
{
return 0;
}
if(var_07 == "none")
{
continue;
}
if(var_03.a.lastshoottime > gettime() - 500)
{
if(param_00 || var_03 animscripts/utility::canseeenemy(0) && var_03 canshootenemy(0))
{
return 0;
}
}
if(isdefined(var_03.a.aimidlethread) && var_03 animscripts/utility::canseeenemy(0) && var_03 canshootenemy(0))
{
return 0;
}
}
if(maps\_utility::func_17F5())
{
return 0;
}
var_09 = getentarray("destructible","classname");
foreach(var_0B in var_09)
{
if(!isdefined(var_0B.healthdrain))
{
continue;
}
foreach(var_05 in level.players)
{
if(distance(var_0B.origin,var_05.origin) < 400)
{
return 0;
}
}
}
return 1;
}
//Function Number: 26
enemy_is_a_threat()
{
if(self.finalaccuracy >= 0.021)
{
return 1;
}
foreach(var_01 in level.players)
{
if(distance(self.origin,var_01.origin) < 500)
{
return 1;
}
}
return 0;
}
//Function Number: 27
autosave_proximity_threat_func(param_00)
{
foreach(var_02 in level.players)
{
var_03 = distance(param_00.origin,var_02.origin);
if(var_03 < 200)
{
return "return_even_if_low_accuracy";
}
else if(var_03 < 360)
{
return "return";
}
else if(var_03 < 1000)
{
return "threat_exists";
}
}
return "none";
}
//Function Number: 28
func_17F7(param_00)
{
if(!maps\_utility::is_default_start())
{
return;
}
var_01 = maps\_utility_code::get_leveltime();
var_02 = var_01;
if(isdefined(level.recon_checkpoint_lasttime))
{
var_02 = var_01 - level.recon_checkpoint_lasttime;
}
level.recon_checkpoint_lasttime = var_01;
reconevent("script_checkpoint: id %d, leveltime %d, deltatime %d",param_00,var_01,var_02);
}

View File

@ -0,0 +1,463 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_bcs_location_trigs.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 24
* Decompile Time: 373 ms
* Timestamp: 10/27/2023 2:31:48 AM
*******************************************************************/
//Function Number: 1
bcs_location_trigs_init()
{
level.bcs_location_mappings = [];
bcs_location_trigger_mapping();
bcs_trigs_assign_aliases();
level.bcs_location_mappings = undefined;
}
//Function Number: 2
bcs_trigs_assign_aliases()
{
anim.bcs_locations = [];
var_00 = getentarray();
var_01 = [];
foreach(var_03 in var_00)
{
if(isdefined(var_03.classname) && issubstr(var_03.classname,"trigger_multiple_bcs"))
{
var_01[var_01.size] = var_03;
}
}
foreach(var_03 in var_01)
{
var_06 = parselocationaliases(level.bcs_location_mappings[var_03.classname]);
if(var_06.size > 1)
{
var_06 = maps\_utility::array_randomize(var_06);
}
var_03.locationaliases = var_06;
}
anim.bcs_locations = var_01;
}
//Function Number: 3
parselocationaliases(param_00)
{
var_01 = strtok(param_00," ");
return var_01;
}
//Function Number: 4
add_bcs_location_mapping(param_00,param_01)
{
if(isdefined(level.bcs_location_mappings[param_00]))
{
var_02 = level.bcs_location_mappings[param_00];
var_03 = parselocationaliases(var_02);
var_04 = parselocationaliases(param_01);
foreach(var_06 in var_04)
{
foreach(var_08 in var_03)
{
if(var_06 == var_08)
{
return;
}
}
}
var_02 = var_02 + " " + param_01;
level.bcs_location_mappings[param_00] = var_02;
return;
}
level.bcs_location_mappings[var_09] = var_0A;
}
//Function Number: 5
bcs_location_trigger_mapping()
{
generic_locations();
vehicles();
landmarks();
tibet();
ny_manhattan();
ny_harbor();
hijack();
warlord();
london();
payback();
hamburg();
paris_a();
paris_b();
paris_ac130();
prague();
berlin();
dubai();
}
//Function Number: 6
generic_locations()
{
add_bcs_location_mapping("trigger_multiple_bcs_uk_building_1stfloor","loc_1st_report");
add_bcs_location_mapping("trigger_multiple_bcs_uk_building_2ndfloor","loc_2nd_report");
add_bcs_location_mapping("trigger_multiple_bcs_uk_building_1stfloor_door_left","loc_door_1st_left_report");
add_bcs_location_mapping("trigger_multiple_bcs_uk_building_1stfloor_door","loc_door_1st_report");
add_bcs_location_mapping("trigger_multiple_bcs_uk_building_1stfloor_door_right","loc_door_1st_right_report");
add_bcs_location_mapping("trigger_multiple_bcs_uk_building_2ndfloor_door","loc_door_2nd_report");
add_bcs_location_mapping("trigger_multiple_bcs_uk_building_door","loc_door_report");
add_bcs_location_mapping("trigger_multiple_bcs_uk_building_1stfloor_window_left","loc_wndw_1st_left_report");
add_bcs_location_mapping("trigger_multiple_bcs_uk_building_1stfloor_window","loc_wndw_1st_report");
add_bcs_location_mapping("trigger_multiple_bcs_uk_building_1stfloor_window_right","loc_wndw_1st_right_report");
add_bcs_location_mapping("trigger_multiple_bcs_uk_building_2ndfloor_window_left","loc_wndw_2nd_left_report");
add_bcs_location_mapping("trigger_multiple_bcs_uk_building_2ndfloor_window","loc_wndw_2nd_report");
add_bcs_location_mapping("trigger_multiple_bcs_uk_building_2ndfloor_window_right","loc_wndw_2nd_right_report");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_callout_loc_door","callout_loc_door_report");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_callout_loc_door_1st","callout_loc_door_1st_report");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_callout_loc_door_1st_right","callout_loc_door_1st_right_report");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_callout_loc_door_1st_left","callout_loc_door_1st_left_report");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_callout_loc_door_2nd","callout_loc_door_2nd_report");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_callout_loc_wndw_1st","callout_loc_wndw_1st_report");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_callout_loc_wndw_1st_left","callout_loc_wndw_1st_left_report");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_callout_loc_wndw_1st_right","callout_loc_wndw_1st_right_report");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_callout_loc_1st","callout_loc_1st_report");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_callout_loc_2nd","callout_loc_2nd_report");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_callout_loc_wndw_2nd","callout_loc_wndw_2nd_report");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_callout_loc_wndw_2nd_left","callout_loc_wndw_2nd_left_report");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_callout_loc_wndw_2nd_right","callout_loc_wndw_2nd_right_report");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_callout_loc_wndw_3rd","callout_loc_wndw_3rd_report");
}
//Function Number: 7
landmarks()
{
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_ac_generic","loc_ac_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_airdrop_generic","loc_airdrop_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_alley_generic","loc_alley_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_balcony_2nd","loc_balcony_2nd");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_balcony_3rd","loc_balcony_3rd");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_bank_generic","loc_bank_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_bar_generic","loc_bar_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_barrels_generic","loc_barrels_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_barricade_generic","loc_barricade_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_barrier_hesco","loc_barrier_hesco");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_barrier_orange","loc_barrier_orange");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_bin_recycle","loc_bin_recycle");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_bookcase_generic","loc_bookcase_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_building_red","loc_building_red");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_bulkhead_generic","loc_bulkhead_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_bunk_generic","loc_bunk_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_bus_generic","loc_bus_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_bus_inside","loc_bus_inside");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_car_blue","loc_car_blue");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_car_burning","loc_car_burning");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_car_destroyed","loc_car_destroyed");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_car_generic","loc_car_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_car_green","loc_car_green");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_car_overturned","loc_car_overturned");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_car_parked","loc_car_parked");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_car_police","loc_car_police");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_car_yellow","loc_car_yellow");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_catwalk_generic","loc_catwalk_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_chair_blue","loc_chair_blue");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_column_generic","loc_column_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_console_generic","loc_console_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_container_generic","loc_container_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_container_red","loc_container_red");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_couch_blue","loc_couch_blue");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_couch_generic","loc_couch_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_crates_ammo","loc_crates_ammo");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_crates_generic","loc_crates_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_cubicles_left","loc_cubicles_left");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_cubicles_right","loc_cubicles_right");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_deck_generic","loc_deck_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_door_back","loc_door_back");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_door_front","loc_door_front");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_dumpster_generic","loc_dumpster_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_embassy_1st","loc_embassy_1st");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_embassy_3rd","loc_embassy_3rd");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_engine_generic","loc_engine_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_fan_exhaust","loc_fan_exhaust");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_gate_generic","loc_gate_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_hill_generic","loc_hill_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_machine_copy","loc_machine_copy");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_mg_generic","loc_mg_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_patio_generic","loc_patio_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_pipe_generic","loc_pipe_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_planter_generic","loc_planter_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_rack_bike","loc_rack_bike");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_railing_generic","loc_railing_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_ramp_down","loc_ramp_down");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_rooftop_generic","loc_rooftop_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_room_conf","loc_room_conf");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_room_middle","loc_room_middle");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_rubble_generic","loc_rubble_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_sandbags_generic","loc_sandbags_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_scaffolding_generic","loc_scaffolding_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_car_black","loc_car_black");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_shop_book","loc_shop_book");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_shop_cafe","loc_shop_cafe");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_shop_coffee","loc_shop_coffee");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_shop_restaurant","loc_shop_restaurant");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_shop_souvenir","loc_shop_souvenir");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_staircase_generic","loc_staircase_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_stairs_bottom","loc_stairs_bottom");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_stairs_generic","loc_stairs_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_stairs_top","loc_stairs_top");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_stand_hotdog","loc_stand_hotdog");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_stand_news","loc_stand_news");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_stand_trading","loc_stand_trading");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_statue_generic","loc_statue_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_stryker_destroyed","loc_stryker_destroyed");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_subway_entrance","loc_subway_entrance");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_table_computer","loc_table_computer");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_table_generic","loc_table_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_tanks_generic","loc_tanks_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_taxi_destroyed","loc_taxi_destroyed");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_taxi_generic","loc_taxi_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_tires_large","loc_tires_large");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_tower_jamming","loc_tower_jamming");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_truck_white","loc_truck_white");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_van_blue","loc_van_blue");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_vehicle_btr","loc_vehicle_btr");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_vehicle_dumptruck","loc_vehicle_dumptruck");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_vehicle_gaz","loc_vehicle_gaz");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_vehicle_hind","loc_vehicle_hind");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_vehicle_snowcat","loc_vehicle_snowcat");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_vehicle_snowmobile","loc_vehicle_snowmobile");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_wall_low","loc_wall_low");
add_bcs_location_mapping("trigger_multiple_bcs_df_generic_loc_water_cooler","loc_water_cooler");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_wndw_3rd","callout_loc_wndw_3rd");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_alley_generic","loc_alley_generic");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_arch_generic","loc_arch_generic");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_balcony_2nd","loc_balcony_2nd");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_balcony_3rd","loc_balcony_3rd");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_balcony_generic","loc_balcony_generic");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_barrels_generic","loc_barrels_generic");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_boat_wooden","loc_boat_wooden");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_car_burning","loc_car_burning");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_car_generic","loc_car_generic");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_car_green","loc_car_green");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_car_overturned","loc_car_overturned");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_car_yellow","loc_car_yellow");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_carport_generic","loc_carport_generic");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_cart_generic","loc_cart_generic");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_catwalk_generic","loc_catwalk_generic");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_container_cargo","loc_container_cargo");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_couch_generic","loc_couch_generic");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_counter_generic","loc_counter_generic");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_crates_ammo","loc_crates_ammo");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_crates_generic","loc_crates_generic");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_door_back","loc_door_back");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_door_front","loc_door_front");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_hull_3rd","loc_hull_3rd");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_market_stalls","loc_market_stalls");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_pier_far","loc_pier_far");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_pier_generic","loc_pier_generic");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_rock_big","loc_rock_big");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_rooftop_generic","loc_rooftop_generic");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_stairs_bottom","loc_stairs_bottom");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_stairs_generic","loc_stairs_generic");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_stairs_top","loc_stairs_top");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_tank_welding","loc_tank_welding");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_truck_white","loc_truck_white");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_wall_broken","loc_wall_broken");
add_bcs_location_mapping("trigger_multiple_bcs_pc_generic_wall_generic","loc_wall_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_1st","callout_loc_1st");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_2nd","callout_loc_2nd");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_door_1st_left","callout_loc_door_1st_left");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_door_1st_right","callout_loc_door_1st_right");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_door_1st","callout_loc_door_1st");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_door_2nd","callout_loc_door_2nd");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_door","callout_loc_door");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_wndw_1st_left","callout_loc_wndw_1st_left");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_wndw_1st_right","callout_loc_wndw_1st_right");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_wndw_1st","callout_loc_wndw_1st");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_wndw_2nd_left","callout_loc_wndw_2nd_left");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_wndw_2nd_right","callout_loc_wndw_2nd_right");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_wndw_2nd","callout_loc_wndw_2nd");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_container_cargo","loc_container_cargo");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_balcony_generic","loc_balcony_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_boat_wooden","loc_boat_wooden");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_tanks_welding","loc_tanks_welding");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_carport_generic","loc_carport_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_rock_big","loc_rock_big");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_wall_broken","loc_wall_broken");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_bin_trash","loc_bin_trash");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_fridge_generic","loc_fridge_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_washing_machine","loc_washing_machine");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_tire_stack","loc_tire_stack");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_mattress_generic","loc_mattress_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_generic_umbrella_generic","loc_umbrella_generic");
}
//Function Number: 8
vehicles()
{
}
//Function Number: 9
tibet()
{
}
//Function Number: 10
ny_manhattan()
{
add_bcs_location_mapping("trigger_multiple_bcs_df_ny_manhattan_lm_memorial_building","lm_memorial_building");
add_bcs_location_mapping("trigger_multiple_bcs_df_ny_manhattan_loc_cases_generic","loc_cases_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_ny_manhattan_loc_cases_left","loc_cases_left");
add_bcs_location_mapping("trigger_multiple_bcs_df_ny_manhattan_loc_cases_right","loc_cases_right");
}
//Function Number: 11
ny_harbor()
{
add_bcs_location_mapping("trigger_multiple_bcs_df_ny_harbor_loc_reactor_generic","loc_reactor_generic");
}
//Function Number: 12
hijack()
{
}
//Function Number: 13
warlord()
{
add_bcs_location_mapping("trigger_multiple_bcs_tf_warlord_church_generic","loc_church_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_warlord_shop_butcher","loc_shop_butcher");
add_bcs_location_mapping("trigger_multiple_bcs_tf_warlord_shop_pharmacy","loc_shop_pharmacy");
}
//Function Number: 14
london()
{
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_barrels","loc_barrels_generic");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_barrier","loc_barrier_generic");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_bulldozer","loc_bulldozer_generic");
add_bcs_location_mapping("trigger_multiple_bcs_uk_vehicle_car_black","loc_car_black");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_catwalk","loc_catwalk_generic");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_cinder_blocks","loc_cinder_blocks");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_container","loc_container_generic");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_container_open","loc_container_open");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_container_small","loc_container_small");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_crate_blue","loc_crate_blue");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_crate","loc_crate_generic");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_dumpster_red","loc_dumpster_red");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_flatbed","loc_flatbed_generic");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_loading_bay","loc_loading_bay");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_pipe_cement","loc_pipe_cement");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_platform_left","loc_platform_left");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_porta_john","loc_porta_john");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_scaffolding","loc_scaffolding_generic");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_stairs_down","loc_stairs_down");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_stairs","loc_stairs_generic");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_stairs_top","loc_stairs_top");
add_bcs_location_mapping("trigger_multiple_bcs_uk_vehicle_truck_charity","loc_truck_charity");
add_bcs_location_mapping("trigger_multiple_bcs_uk_vehicle_truck","loc_truck_generic");
add_bcs_location_mapping("trigger_multiple_bcs_uk_vehicle_target","loc_vehicle_target");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_wall_low","loc_wall_low");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_warehouse","loc_warehouse_generic");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_warehouse_south","loc_warehouse_south");
add_bcs_location_mapping("trigger_multiple_bcs_uk_landmark_warehouse_west","loc_warehouse_west");
}
//Function Number: 15
payback()
{
add_bcs_location_mapping("trigger_multiple_bcs_pc_payback_lm_building_tall","lm_building_tall");
add_bcs_location_mapping("trigger_multiple_bcs_pc_payback_lm_building_white","lm_building_white");
add_bcs_location_mapping("trigger_multiple_bcs_pc_payback_ship_cargo","loc_ship_cargo");
add_bcs_location_mapping("trigger_multiple_bcs_pc_payback_shipwreck_generic","loc_shipwreck_generic");
}
//Function Number: 16
hamburg()
{
}
//Function Number: 17
paris_a()
{
}
//Function Number: 18
paris_b()
{
}
//Function Number: 19
paris_ac130()
{
add_bcs_location_mapping("trigger_multiple_bcs_df_parisAC130_lm_embassy","lm_embassy");
add_bcs_location_mapping("trigger_multiple_bcs_df_parisAC130_lm_monument_courtyard","lm_monument_courtyard");
add_bcs_location_mapping("trigger_multiple_bcs_df_parisAC130_loc_monument_top","loc_monument_top");
}
//Function Number: 20
prague()
{
add_bcs_location_mapping("trigger_multiple_bcs_tf_prague_sign_large","loc_sign_large");
add_bcs_location_mapping("trigger_multiple_bcs_tf_prague_car_white","loc_car_white");
add_bcs_location_mapping("trigger_multiple_bcs_tf_prague_shops_east","loc_shops_east");
add_bcs_location_mapping("trigger_multiple_bcs_tf_prague_btr_crashed","loc_btr_crashed");
add_bcs_location_mapping("trigger_multiple_bcs_tf_prague_bldg_west","loc_bldg_west");
add_bcs_location_mapping("trigger_multiple_bcs_tf_prague_cafe_tables","loc_cafe_tables");
add_bcs_location_mapping("trigger_multiple_bcs_tf_prague_bldg_north","loc_bldg_north");
add_bcs_location_mapping("trigger_multiple_bcs_tf_prague_antique_shop","loc_antique_shop");
add_bcs_location_mapping("trigger_multiple_bcs_tf_prague_pillars","loc_pillars");
add_bcs_location_mapping("trigger_multiple_bcs_tf_prague_barricades","loc_barricades");
}
//Function Number: 21
berlin()
{
add_bcs_location_mapping("trigger_multiple_bcs_df_berlin_lm_kitchen_back","lm_kitchen_back");
}
//Function Number: 22
rescue()
{
}
//Function Number: 23
rescue_2()
{
add_bcs_location_mapping("trigger_multiple_bcs_tf_rescue_snowcat_generic","loc_snowcat_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_rescue_dumptruck_generic","loc_dumptruck_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_rescue_building_red","loc_building_red");
add_bcs_location_mapping("trigger_multiple_bcs_tf_rescue_snowmobile_generic","loc_snowmobile_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_rescue_scaffolding_generic","loc_scaffolding_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_rescue_container_red","loc_container_red");
add_bcs_location_mapping("trigger_multiple_bcs_tf_rescue_tires_large","loc_tires_large");
}
//Function Number: 24
dubai()
{
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_arch_generic","loc_arch_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_bar","loc_bar");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_barricades","loc_barricades");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_car_generic","loc_car_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_chair_generic","loc_chair_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_couch_generic","loc_couch_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_counter_generic","loc_counter_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_doorway","loc_doorway");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_escalator_coming_down","loc_escalator_coming_down");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_escalator_near_right","loc_escalator_near_right");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_escalator_near_left","loc_escalator_near_left");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_escalator_top","loc_escalator_top");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_fountain_generic","loc_fountain_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_lamppost_generic","loc_lamppost_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_pillar_generic","loc_pillar_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_pillar_left","loc_pillar_left");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_pillar_right","loc_pillar_right");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_planter_generic","loc_planter_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_sedan_generic","loc_sedan_generic");
add_bcs_location_mapping("trigger_multiple_bcs_tf_dubai_suv_generic","loc_suv_generic");
}

View File

@ -0,0 +1,744 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_breach.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 24
* Decompile Time: 437 ms
* Timestamp: 10/27/2023 2:34:12 AM
*******************************************************************/
//Function Number: 1
main()
{
level._effect["_breach_doorbreach_detpack"] = loadfx("explosions/exp_pack_doorbreach");
level._effect["_breach_doorbreach_kick"] = loadfx("dust/door_kick");
level.scr_sound["breach_wooden_door"] = "detpack_explo_main";
level.scr_sound["breach_wood_door_kick"] = "wood_door_kick";
common_scripts\utility::flag_init("begin_the_breach");
}
//Function Number: 2
func_3B14(param_00,param_01,param_02,param_03,param_04,param_05)
{
self endon("breach_abort");
if(isdefined(param_05) && param_05 == 0)
{
level.fire_notetrack_functions["scripted"] = ::func_3B36;
}
self.var_3B15 = 0;
self.closestai = undefined;
self.var_3B17 = undefined;
self.breached = 0;
self.var_3B19 = 0;
self.var_3B1A = 0;
self.var_3B1B = 0;
self.readytobreach = 0;
self.var_3B1D = 0;
self.var_3B1E = 0;
self.cleared = 0;
self.var_3B20 = 1;
self.var_3B21 = 0;
self.hostilesspawned = 0;
var_06 = getentarray(self.targetname,"targetname");
var_07 = self.targetname;
self.sbadplacename = "badplace_" + var_07;
self.var_3B24 = getent("badplace_" + var_07,"targetname");
if(isdefined(self.var_3B24))
{
}
self.var_3B25 = getent("trigger_" + var_07,"targetname");
if(!isdefined(param_04))
{
param_04 = 1;
}
if(isdefined(self.var_3B25))
{
switch(self.var_3B25.classname)
{
case "trigger_use":
self.triggerhintstring = param_02;
break;
case "trigger_use_touch":
self.triggerhintstring = param_02;
break;
case "trigger_radius":
break;
case "trigger_multiple":
break;
default:
break;
}
}
switch(param_01)
{
case "explosive_breach_left":
break;
case "shotgunhinges_breach_left":
break;
case "flash_breach_no_door_right":
self.var_3B20 = 0;
self.var_3B21 = 1;
break;
default:
break;
}
if(self.var_3B20 == 1)
{
self.edoor = getent(self.script_linkto,"script_linkname");
if(self.edoor.classname == "script_model")
{
self.var_3B17 = spawn("script_origin",self.edoor.origin);
self.var_3B17.angles = self.edoor.angles;
}
else if(self.edoor.classname == "script_brushmodel")
{
self.var_3B17 = getent(self.edoor.target,"targetname");
self.edoor.vector = anglestoforward(self.var_3B17.angles);
}
self.var_3B17.type = "Cover Right";
self.var_3B29 = getent(self.edoor.script_linkto,"script_linkname");
self.iexplodernum = self.var_3B29.script_exploder;
}
else if(self.var_3B20 == 0)
{
self.var_3B17 = getent(self.script_linkto,"script_linkname");
}
if(self.var_3B21 == 1)
{
self.var_3B2B = getent("flashthrow_" + var_07,"targetname");
self.var_3B2C = getent(self.var_3B2B.target,"targetname");
}
thread breach_abort(param_00);
thread func_3B40(param_00);
thread func_3B42(param_01,param_04);
var_08 = 0;
for(var_09 = 0;var_09 < param_00.size;var_09++)
{
if(isdefined(param_00[var_09].firstbreacher))
{
var_08++;
self.closestai = param_00[var_09];
}
}
if(var_08 > 0)
{
}
else
{
self.closestai = maps\_utility::getclosest(self.var_3B17.origin,param_00);
}
if(param_00.size == 1)
{
self.var_3B1B = 1;
}
for(var_09 = 0;var_09 < param_00.size;var_09++)
{
param_00[var_09] thread func_3B30(self,param_01,param_05);
}
while(self.var_3B19 < param_00.size)
{
wait 0.05;
}
self notify("ready_to_breach");
self.readytobreach = 1;
if(isdefined(self.var_3B25))
{
self.var_3B25 thread breach_trigger_think(self);
self waittill("execute_the_breach");
}
else
{
self notify("execute_the_breach");
}
common_scripts\utility::flag_set("begin_the_breach");
self.var_3B1E = 1;
if(isdefined(param_03) && param_03 == 1)
{
var_0A = getentarray("hostiles_" + var_07,"targetname");
self waittill("spawn_hostiles");
spawnbreachhostiles(var_0A);
self.hostilesspawned = 1;
}
if(isdefined(self.var_3B24))
{
badplace_cylinder(self.sbadplacename,-1,self.var_3B24.origin,self.var_3B24.radius,200,"bad_guys");
}
var_0B = getaiarray("bad_guys");
var_0C = [];
var_09 = 0;
while(var_09 < var_0B.size)
{
if(var_0B[var_09] istouching(self))
{
}
var_0B++ = var_41[var_0C.size];
}
if(var_41.size > 0)
{
common_scripts\utility::array_thread(var_41,::func_3B39,self);
}
while(!self.var_3B1D)
{
wait 0.05;
}
self notify("breach_complete",var_0B[var_09]);
if(!var_41.size)
{
return;
}
while(!self.cleared)
{
wait 0.05;
for(var_0B = 0;var_0B < var_41.size;var_0B++)
{
if(!isalive(var_41[var_0B]))
{
var_41 = common_scripts\utility::array_remove(var_41,var_41[var_0B]);
}
if(var_41.size == 0)
{
self.cleared = 1;
}
}
}
}
//Function Number: 3
breach_dont_fire()
{
while(self.var_3B2F == 1)
{
self waittillmatch("fire","single anim");
self.a.lastshoottime = gettime();
}
}
//Function Number: 4
func_3B30(param_00,param_01,param_02)
{
self.var_3B2F = 1;
self.var_3B31 = undefined;
if(!isdefined(param_02))
{
param_02 = 1;
}
self pushplayer(1);
thread func_3B45();
param_00 endon("breach_abort");
self.ender = "stop_idle_" + self getentitynumber();
var_03 = undefined;
var_04 = undefined;
var_05 = undefined;
var_06 = undefined;
var_07 = undefined;
if(self == param_00.closestai)
{
var_03 = "01";
}
else
{
var_03 = "02";
}
if(param_00.var_3B1B == 1 && param_01 == "explosive_breach_left")
{
var_03 = "02";
}
switch(param_01)
{
case "explosive_breach_left":
if(isdefined(self.usebreachapproach) && self.usebreachapproach == 0)
{
var_04 = "detcord_stack_left_start_no_approach_" + var_03;
}
else
{
var_04 = "detcord_stack_left_start_" + var_03;
}
var_05 = "detcord_stack_leftidle_" + var_03;
var_06 = "detcord_stack_leftbreach_" + var_03;
break;
case "shotgunhinges_breach_left":
var_04 = "shotgunhinges_breach_left_stack_start_" + var_03;
var_05 = "shotgunhinges_breach_left_stack_idle_" + var_03;
var_06 = "shotgunhinges_breach_left_stack_breach_" + var_03;
break;
case "flash_breach_no_door_right":
if(param_00.var_3B1B == 1)
{
var_04 = "flash_stack_right_start_single";
var_05 = "flash_stack_right_idle_single";
var_06 = "flash_stack_right_breach_single";
var_07 = "flash_stack_right_flash_single";
}
else
{
var_04 = "flash_stack_right_start_" + var_03;
var_05 = "flash_stack_right_idle_" + var_03;
var_06 = "flash_stack_right_breach_" + var_03;
var_07 = "flash_stack_right_flash_" + var_03;
}
break;
default:
break;
}
breach_set_goaladius(64);
if(!isdefined(self.usebreachapproach) || self.usebreachapproach)
{
param_00.var_3B17 maps\_anim::anim_generic_reach(self,var_04);
}
else
{
self.scriptedarrivalent = param_00.var_3B17;
param_00.var_3B17 maps\_anim::anim_generic_reach_and_arrive(self,var_04);
}
param_00.var_3B17 maps\_anim::anim_generic(self,var_04);
param_00.var_3B17 thread maps\_anim::anim_generic_loop(self,var_05,self.ender);
self.var_3B33 = self.origin;
param_00.var_3B19++;
self.scriptedarrivalent = undefined;
param_00 waittill("execute_the_breach");
if(!param_00.var_3B15 && isdefined(var_07))
{
param_00.var_3B17 notify(self.ender);
param_00.var_3B17 thread maps\_anim::anim_generic(self,var_07);
wait 1;
if(var_03 == "02" || param_00.var_3B1B == 1)
{
var_08 = "J_Mid_LE_1";
self attach("projectile_m84_flashbang_grenade",var_08);
var_09 = self.grenadeweapon;
self.grenadeweapon = "flash_grenade";
self.grenadeammo++;
if(var_03 == "02")
{
self waittillmatch("grenade_throw","single anim");
}
if(param_00.var_3B1B == 1 && var_03 == "01")
{
self waittillmatch("fire","single anim");
}
self magicgrenade(param_00.var_3B2B.origin,param_00.var_3B2C.origin,level.var_3B34);
self detach("projectile_m84_flashbang_grenade",var_08);
self.grenadeweapon = var_09;
self.grenadeammo = 0;
}
self waittillmatch("end","single anim");
param_00.var_3B17 thread maps\_anim::anim_generic_loop(self,var_05,self.ender);
wait 0.1;
}
param_00.var_3B17 notify(self.ender);
if(param_02 == 0)
{
self.var_3B31 = 1;
}
param_00.var_3B17 thread maps\_anim::anim_generic(self,var_06);
if(param_01 == "explosive_breach_left")
{
if(var_03 == "02")
{
thread detcord_logic(param_00);
self waittillmatch("pull fuse","single anim");
wait 1;
param_00 notify("spawn_hostiles");
param_00 notify("detpack_about_to_blow");
self waittillmatch("explosion","single anim");
param_00 notify("detpack_detonated");
param_00.breached = 1;
param_00.edoor thread door_open("explosive",param_00);
param_00 notify("play_breach_fx");
}
}
else if(param_01 == "shotgunhinges_breach_left")
{
if(var_03 == "01")
{
param_00 notify("spawn_hostiles");
self waittillmatch("kick","single anim");
param_00.edoor thread door_open("shotgun",param_00);
param_00 notify("play_breach_fx");
}
}
else if(param_01 == "flash_breach_no_door_right")
{
}
self waittillmatch("end","single anim");
self notify("breach_complete");
if(param_02 == 0)
{
self.var_3B31 = undefined;
}
if(isdefined(level.friendly_breach_thread))
{
self thread [[ level.friendly_breach_thread ]](param_00);
}
param_00.var_3B1D = 1;
self pushplayer(0);
breach_reset_animname();
while(!param_00.cleared)
{
wait 0.05;
}
self.var_3B2F = 0;
}
//Function Number: 5
func_3B36()
{
if(isdefined(self.var_3B31))
{
return;
}
animscripts/notetracks::fire_straight();
}
//Function Number: 6
detcord_logic(param_00)
{
thread sound_effect_play(param_00);
self waittillmatch("attach prop right","single anim");
var_01 = "TAG_INHAND";
self attach("weapon_detcord",var_01);
self waittillmatch("detach prop right","single anim");
var_02 = self gettagorigin(var_01);
var_03 = self gettagangles(var_01);
self detach("weapon_detcord",var_01);
var_04 = spawn("script_model",var_02);
var_04 setmodel("weapon_detcord");
var_04.angles = var_03;
param_00 waittill("detpack_detonated");
radiusdamage(var_04.origin,64,50,25);
var_04 delete();
}
//Function Number: 7
sound_effect_play(param_00)
{
self waittillmatch("sound effect","single anim");
thread common_scripts\utility::play_sound_in_space("detpack_plant_arming",param_00.var_3B17.origin);
}
//Function Number: 8
func_3B39(param_00)
{
self endon("death");
param_00 endon("breach_aborted");
param_00 waittill("detpack_detonated");
if(distance(self.origin,param_00.var_3B17.origin) <= level.detpackstunradius)
{
level.stunnedanimnumber++;
if(level.stunnedanimnumber > 2)
{
level.stunnedanimnumber = 1;
}
var_01 = "exposed_flashbang_v" + level.stunnedanimnumber;
self.allowdeath = 1;
maps\_anim::anim_generic_custom_animmode(self,"gravity",var_01);
breach_reset_animname();
}
}
//Function Number: 9
breach_trigger_think(param_00)
{
param_00 endon("execute_the_breach");
param_00 endon("breach_aborted");
thread func_3B3D(param_00);
self waittill("trigger");
param_00 notify("execute_the_breach");
}
//Function Number: 10
func_3B3D(param_00)
{
param_00 waittill("execute_the_breach");
common_scripts\utility::trigger_off();
if(isdefined(param_00.var_3B3E))
{
param_00.var_3B3E delete();
}
}
//Function Number: 11
breach_abort(param_00)
{
self endon("breach_complete");
self waittill("breach_abort");
self.cleared = 1;
thread func_3B40(param_00);
}
//Function Number: 12
func_3B40(param_00)
{
while(!self.cleared)
{
wait 0.05;
}
if(isdefined(self.var_3B24))
{
badplace_delete(self.sbadplacename);
}
while(!self.cleared)
{
wait 0.05;
}
common_scripts\utility::array_thread(param_00,::func_3B41,self);
}
//Function Number: 13
func_3B41(param_00)
{
self endon("death");
breach_reset_animname();
func_3B4D();
param_00.var_3B17 notify(self.ender);
self notify("stop_infinite_ammo");
self pushplayer(0);
}
//Function Number: 14
func_3B42(param_00,param_01)
{
self endon("breach_aborted");
self endon("breach_complete");
switch(param_00)
{
case "explosive_breach_left":
self waittill("play_breach_fx");
common_scripts\utility::exploder(self.iexplodernum);
thread common_scripts\utility::play_sound_in_space(level.scr_sound["breach_wooden_door"],self.var_3B29.origin);
if(param_01)
{
playfx(level._effect["_breach_doorbreach_detpack"],self.var_3B29.origin,anglestoforward(self.var_3B29.angles));
}
break;
case "shotgunhinges_breach_left":
self waittill("play_breach_fx");
common_scripts\utility::exploder(self.iexplodernum);
if(param_01)
{
playfx(level._effect["_breach_doorbreach_kick"],self.var_3B29.origin,anglestoforward(self.var_3B29.angles));
}
break;
case "flash_breach_no_door_right":
break;
default:
break;
}
}
//Function Number: 15
func_3B43(param_00)
{
var_01 = param_00 dospawn();
maps\_utility::func_F77(var_01);
return var_01;
}
//Function Number: 16
spawnbreachhostiles(param_00)
{
var_01 = [];
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
var_03 = func_3B43(param_00[var_02]);
var_01[var_01.size] = var_03;
}
return var_01;
}
//Function Number: 17
func_3B45()
{
self endon("death");
self endon("stop_infinite_ammo");
while(isdefined(self.weapon))
{
if(isdefined(self.weapon) && self.weapon == "none")
{
break;
}
self.bulletsinclip = weaponclipsize(self.weapon);
wait 0.5;
}
}
//Function Number: 18
door_open(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = 1;
}
if(param_02 == 1)
{
self playsound(level.scr_sound["breach_wood_door_kick"]);
}
switch(param_00)
{
case "explosive":
thread func_3B4A(param_01.var_3B17);
func_3B49();
self playsound(level.scr_sound["breach_wooden_door"]);
earthquake(0.4,1,self.origin,1000);
radiusdamage(self.origin,56,level.maxdetpackdamage,level.var_3B47);
break;
case "shotgun":
thread func_3B4A(param_01.var_3B17);
func_3B49();
self playsound(level.scr_sound["breach_wooden_door"]);
break;
}
}
//Function Number: 19
func_3B49()
{
if(self.classname == "script_brushmodel")
{
self connectpaths();
return;
}
var_00 = getent(self.target,"targetname");
var_00 hide();
var_00 notsolid();
var_00 connectpaths();
}
//Function Number: 20
func_3B4A(param_00)
{
var_01 = undefined;
if(self.classname == "script_model")
{
var_01 = anglestoforward(self.angles);
}
else if(self.classname == "script_brushmodel")
{
var_01 = self.vector;
}
else
{
}
var_02 = (var_01[0] * 20,var_01[1] * 20,var_01[2] * 20);
self moveto(self.origin + var_02,0.5,0,0.5);
var_03 = spawn("script_origin",(0,0,0));
var_03.angles = param_00.angles;
var_03.origin = (self.origin[0],self.origin[1],param_00.origin[2]);
self linkto(var_03);
var_03 rotatepitch(90,0.45,0.4);
wait 0.45;
var_03 rotatepitch(-4,0.2,0,0.2);
wait 0.2;
var_03 rotatepitch(4,0.15,0.15);
wait 0.15;
self unlink();
var_03 delete();
}
//Function Number: 21
breach_set_goaladius(param_00)
{
if(!isdefined(self.var_3B4C))
{
self.var_3B4C = self.goalradius;
}
self.goalradius = param_00;
}
//Function Number: 22
func_3B4D()
{
if(isdefined(self.var_3B4C))
{
self.goalradius = self.var_3B4C;
}
self.var_3B4C = undefined;
}
//Function Number: 23
breach_set_animname(param_00)
{
if(!isdefined(self.old_animname))
{
self.old_animname = self.animname;
}
self.animname = param_00;
}
//Function Number: 24
breach_reset_animname()
{
if(isdefined(self.old_animname))
{
self.animname = self.old_animname;
}
self.old_animname = undefined;
}

View File

@ -0,0 +1,369 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_briefing.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 15
* Decompile Time: 261 ms
* Timestamp: 10/27/2023 2:34:16 AM
*******************************************************************/
//Function Number: 1
main()
{
setsaveddvar("hud_drawhud",0);
level.script = tolower(getdvar("mapname"));
if(!isdefined(level.var_3B51))
{
level.var_3B51 = [];
}
var_00 = getentarray("player","classname")[0];
setsaveddvar("g_speed",0);
var_00 setviewmodel("viewmodel_hands_cloth");
precacheshader("black");
var_01 = 0;
for(var_02 = 0;var_02 < level.slide.size;var_02++)
{
if(isdefined(level.slide[var_02]["movie"]))
{
var_01 = 1;
break;
}
}
if(var_01)
{
wait 0.05;
var_00 func_3B68(0);
return;
}
precachestring(&"SCRIPT_PLATFORM_FIRE_TO_SKIP");
for(var_03 = 0;var_03 < level.slide.size;var_03++)
{
if(isdefined(level.slide[var_03]["image"]))
{
precacheshader(level.slide[var_03]["image"]);
}
}
var_00 thread skipthebriefing();
var_00 dothebriefing();
var_00 func_3B68(0);
}
//Function Number: 2
start(param_00)
{
level.var_3B53 = 1;
level.var_3B54 = 0;
level.var_3B55 = "A";
if(isdefined(level.imagea))
{
level.imagea destroy();
}
if(isdefined(level.var_3B57))
{
level.var_3B57 destroy();
}
if(isdefined(level.var_3B58))
{
level.var_3B58 destroy();
}
if(isdefined(level.var_3B59))
{
level.var_3B59 destroy();
}
if(!isdefined(param_00) || !param_00)
{
level.var_3B5A = 0.5;
level.briefing_fadeouttime = 0.5;
}
else
{
level.var_3B5A = param_00;
level.briefing_fadeouttime = param_00;
}
self endon("briefingskip");
thread func_3B60();
level.var_3B58 = newhudelem();
level.var_3B58.sort = -1;
level.var_3B58.alignx = "left";
level.var_3B58.aligny = "top";
level.var_3B58.x = 0;
level.var_3B58.y = 0;
level.var_3B58.horzalign = "fullscreen";
level.var_3B58.vertalign = "fullscreen";
level.var_3B58.foreground = 1;
level.var_3B58.alpha = 1;
level.var_3B58 setshader("black",640,480);
level.var_3B59 = newhudelem();
level.var_3B59.sort = 1;
level.var_3B59.alignx = "center";
level.var_3B59.aligny = "top";
level.var_3B59.fontscale = 2;
level.var_3B59.x = 0;
level.var_3B59.y = 60;
level.var_3B59.horzalign = "center";
level.var_3B59.vertalign = "fullscreen";
level.var_3B59.foreground = 1;
level.var_3B59 settext(&"SCRIPT_PLATFORM_FIRE_TO_SKIP");
level.var_3B59.alpha = 0;
thread fadeinfiretoskip();
level.imagea = newhudelem();
level.imagea.alignx = "center";
level.imagea.aligny = "middle";
level.imagea.x = 320;
level.imagea.y = 240;
level.imagea.alpha = 0;
level.imagea.horzalign = "fullscreen";
level.imagea.vertalign = "fullscreen";
level.imagea setshader("black",640,360);
level.imagea.foreground = 1;
level.var_3B57 = newhudelem();
level.var_3B57.alignx = "center";
level.var_3B57.aligny = "middle";
level.var_3B57.x = 320;
level.var_3B57.y = 240;
level.var_3B57.horzalign = "fullscreen";
level.var_3B57.vertalign = "fullscreen";
level.var_3B57.alpha = 0;
level.var_3B57 setshader("black",640,360);
level.var_3B57.foreground = 1;
self freezecontrols(1);
wait 0.5;
for(var_01 = 0;var_01 < level.slide.size;var_01++)
{
var_02 = 0;
if(isdefined(level.slide[var_01]["image"]))
{
if(level.script[0] != "m")
{
soundplay("slide_advance");
}
wait 0.5;
thread func_3B61(level.slide[var_01]["image"]);
}
if(isdefined(level.slide[var_01]["dialog_wait"]) && self.var_3B5C[level.slide[var_01]["dialog_wait"]])
{
self waittill(level.slide[var_01]["dialog_wait"] + "sounddone");
}
if(isdefined(level.slide[var_01]["dialog"]))
{
soundplay(level.slide[var_01]["dialog"],level.slide[var_01]["dialog"] + "sounddone");
var_02 = 1;
}
if(isdefined(level.slide[var_01]["delay"]))
{
wait level.slide[var_01]["delay"];
continue;
}
if(var_02)
{
self waittill(level.slide[var_01]["dialog"] + "sounddone");
}
}
}
//Function Number: 3
fadeinfiretoskip()
{
wait 1;
thread fadefiretoskip();
level.var_3B59 fadeovertime(level.briefing_fadeouttime);
level.var_3B59.alpha = 1;
}
//Function Number: 4
fadefiretoskip()
{
wait 7;
level.var_3B59 fadeovertime(level.briefing_fadeouttime);
level.var_3B59.alpha = 0;
}
//Function Number: 5
waittillbriefingdone()
{
self waittill("briefingend");
}
//Function Number: 6
func_3B60()
{
self endon("briefingend");
var_00 = getentarray("player","classname")[0];
wait 0.05;
maps\_utility::set_console_status();
for(;;)
{
if(level.console)
{
if(var_00 buttonpressed("BUTTON_A"))
{
self notify("briefingskip");
func_1001();
return;
}
wait 0.05;
continue;
}
if(var_00 attackbuttonpressed())
{
self notify("briefingskip");
func_1001();
return;
}
wait 0.05;
}
}
//Function Number: 7
func_3B61(param_00)
{
self endon("briefingskip");
if(level.var_3B55 == "A")
{
level.var_3B55 = "B";
level.imagea setshader(param_00,640,360);
thread imagefadeout("B");
level.imagea fadeovertime(level.var_3B5A);
level.imagea.alpha = 1;
return;
}
if(level.var_3B55 == "B")
{
level.var_3B55 = "A";
level.var_3B57 setshader(param_00,640,360);
thread imagefadeout("A");
level.var_3B57 fadeovertime(level.var_3B5A);
level.var_3B57.alpha = 1;
}
}
//Function Number: 8
imagefadeout(param_00)
{
if(param_00 == "A")
{
level.imagea fadeovertime(level.briefing_fadeouttime);
level.imagea.alpha = 0;
return;
}
if(param_00 == "B")
{
level.var_3B57 fadeovertime(level.briefing_fadeouttime);
level.var_3B57.alpha = 0;
}
}
//Function Number: 9
endthread()
{
if(!level.var_3B53)
{
return;
}
if(level.var_3B54)
{
return;
}
self notify("briefingend");
level.var_3B54 = 1;
if(level.script[0] != "m")
{
self playsound("stop_voice");
}
thread imagefadeout("A");
thread imagefadeout("B");
wait 1.5;
level.var_3B54 = 0;
}
//Function Number: 10
func_1001()
{
thread endthread();
}
//Function Number: 11
soundplay(param_00,param_01)
{
if(isdefined(level.var_3B51[param_00]))
{
iprintlnbold(level.var_3B51[param_00]);
}
if(isdefined(param_01))
{
thread soundplay_flag(param_00,param_01);
self playsound(param_00,param_01);
return;
}
self playsound(param_00);
}
//Function Number: 12
soundplay_flag(param_00,param_01)
{
self.var_3B5C[param_00] = 1;
self waittill(param_01);
self.var_3B5C[param_00] = 0;
}
//Function Number: 13
dothebriefing()
{
start(0.5);
if(level.script[0] != "m")
{
soundplay("slide_advance");
}
wait 0.5;
func_1001();
}
//Function Number: 14
skipthebriefing()
{
self waittill("briefingskip");
func_3B68(1);
}
//Function Number: 15
func_3B68(param_00)
{
if(!param_00)
{
for(var_01 = 0;var_01 < level.slide.size;var_01++)
{
if(isdefined(level.slide[var_01]["movie"]))
{
cinematic(level.slide[var_01]["movie"]);
}
}
}
changelevel(level.var_3B69,0);
}

View File

@ -0,0 +1,32 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_cagedchickens.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 2
* Decompile Time: 29 ms
* Timestamp: 10/27/2023 2:34:17 AM
*******************************************************************/
//Function Number: 1
initchickens()
{
waittillframeend;
var_00 = getentarray("caged_chicken","targetname");
common_scripts\utility::array_thread(var_00,::spawnchicken);
}
//Function Number: 2
spawnchicken()
{
var_00 = maps\_utility::func_E4F("chicken");
thread maps\_anim::func_E0E(var_00,"cage_freakout");
var_01 = var_00 maps\_utility::getanim("cage_freakout");
var_02 = randomfloatrange(0,1);
var_00 setanimtime(var_01,var_02);
for(;;)
{
var_00 playsound("animal_chicken_idle","sounddone");
var_00 waittill("sounddone");
}
}

View File

@ -0,0 +1,172 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_carry_ai.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 9
* Decompile Time: 141 ms
* Timestamp: 10/27/2023 2:34:18 AM
*******************************************************************/
//Function Number: 1
initcarry()
{
func_3B6D();
}
//Function Number: 2
func_3B6D()
{
level.scr_anim["generic"]["wounded_idle"][0] = %wounded_carry_closet_idle_wounded;
level.scr_anim["generic"]["pickup_wounded"] = %wounded_carry_pickup_closet_wounded_straight;
level.scr_anim["generic"]["pickup_carrier"] = %wounded_carry_pickup_closet_carrier_straight;
level.scr_anim["generic"]["wounded_walk_loop"][0] = %wounded_carry_fastwalk_wounded_relative;
level.scr_anim["generic"]["carrier_walk_loop"] = %wounded_carry_fastwalk_carrier;
level.scr_anim["generic"]["putdown_wounded"] = %wounded_carry_putdown_closet_wounded;
level.scr_anim["generic"]["putdown_carrier"] = %wounded_carry_putdown_closet_carrier;
}
//Function Number: 3
setwounded(param_00)
{
animscripts/shared::dropaiweapon();
self.var_3B6F = param_00;
self.var_3B6F thread maps\_anim::anim_generic_loop(self,"wounded_idle","stop_wounded_idle");
self.allowdeath = 1;
}
//Function Number: 4
func_3B70(param_00,param_01)
{
level notify("end_carry_ai_logic");
setsaveddvar("ai_friendlyFireBlockDuration",2000);
param_00.allowpain = 1;
param_00.disablebulletwhizbyreaction = 0;
param_00.ignoreall = 0;
param_00.grenadeawareness = 1;
param_00 maps\_utility::setflashbangimmunity(0);
param_00.dontmelee = undefined;
param_00.var_C84 = undefined;
param_00.disablearrivals = undefined;
param_00.disableexits = undefined;
param_00.nododgemove = 0;
param_00 pushplayer(0);
param_01 notify("stop_carried_loop");
param_01 unlink();
param_00 maps\_utility::clear_generic_run_anim();
param_01.var_3B6F notify("stop_wounded_idle");
param_01.var_3B6F = undefined;
}
//Function Number: 5
func_3B71(param_00,param_01)
{
level endon("end_carry_ai_logic");
goto_and_pickup_wounded(param_00,param_01);
carry_to_and_putdown_wounded(param_00,param_01);
}
//Function Number: 6
func_3B72(param_00,param_01)
{
param_00 forceteleport(self.origin,self.angles);
carry_to_and_putdown_wounded(param_00,param_01);
}
//Function Number: 7
goto_and_pickup_wounded(param_00,param_01)
{
level endon("end_carry_ai_logic");
self endon("end_carry_ai");
param_00.var_3B6F maps\_anim::anim_generic_reach(self,"pickup_carrier");
param_00 notify("stop_wounded_idle");
param_00.var_3B6F notify("stop_wounded_idle");
param_00.allowdeath = 1;
param_00.var_3B6F thread maps\_anim::anim_generic(param_00,"pickup_wounded");
param_00.var_3B6F maps\_anim::anim_generic(self,"pickup_carrier");
self.dontmelee = 1;
param_00 invisiblenotsolid();
}
//Function Number: 8
link_wounded(param_00)
{
self endon("death");
param_00 endon("death");
param_00 linkto(self,"tag_origin");
wait 0.05;
param_00 thread maps\_anim::anim_generic_loop(param_00,"wounded_walk_loop","stop_carried_loop");
}
//Function Number: 9
carry_to_and_putdown_wounded(param_00,param_01)
{
level endon("end_carry_ai_logic");
self endon("end_carry_ai");
param_00.var_3B76 = 1;
thread maps\_utility::set_generic_run_anim("carrier_walk_loop",1);
param_00 notify("stop_wounded_idle");
param_00.var_3B6F notify("stop_wounded_idle");
wait 0.05;
setsaveddvar("ai_friendlyFireBlockDuration",0);
self animmode("none");
self.allowpain = 0;
self.disablebulletwhizbyreaction = 1;
self.ignoreall = 1;
self.ignoreme = 1;
self.grenadeawareness = 0;
maps\_utility::setflashbangimmunity(1);
self.var_C84 = 1;
self.disablearrivals = 1;
self.disableexits = 1;
self.nododgemove = 1;
maps\_utility::disable_cqbwalk();
self.var_3B77 = self.goalradius;
thread link_wounded(param_00);
while(isdefined(param_01.target))
{
self.ignoresuppression = 1;
self.disablearrivals = 1;
var_02 = getent(param_01.target,"targetname");
var_02 = common_scripts\utility::ter_op(isdefined(var_02),var_02,getnode(param_01.target,"targetname"));
if(!isdefined(var_02.target))
{
param_01 = var_02;
break;
}
self.goalradius = 64;
self setgoalpos(var_02.origin);
self waittill("goal");
param_01 = var_02;
}
param_01 maps\_anim::anim_generic_reach(self,"putdown_carrier");
param_00.var_3B6F = param_01;
param_00 notify("stop_carried_loop");
param_01 notify("stop_wounded_idle");
param_00 unlink();
self.ignoresuppression = 0;
self.disablearrivals = 0;
self.goalradius = self.var_3B77;
thread maps\_utility::clear_run_anim();
param_00.var_3B6F thread maps\_anim::anim_generic(self,"putdown_carrier");
param_00.var_3B6F maps\_anim::anim_generic(param_00,"putdown_wounded");
setsaveddvar("ai_friendlyFireBlockDuration",2000);
self.allowpain = 1;
self.disablebulletwhizbyreaction = 0;
self.ignoreall = 0;
self.grenadeawareness = 1;
maps\_utility::setflashbangimmunity(0);
self.dontmelee = undefined;
self.var_C84 = undefined;
self.disablearrivals = undefined;
self.disableexits = undefined;
self.nododgemove = 0;
self pushplayer(0);
param_00 visiblesolid();
param_00.var_3B6F thread maps\_anim::anim_generic_loop(param_00,"wounded_idle","stop_wounded_idle");
param_00.allowdeath = 1;
param_00 notify("stop_putdown");
param_00.var_3B76 = undefined;
}

1582
MW3/Xbox/SP/maps/_colors.gsc Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,97 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_compass.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 2
* Decompile Time: 28 ms
* Timestamp: 10/27/2023 2:35:37 AM
*******************************************************************/
//Function Number: 1
setupminimap(param_00,param_01)
{
level.var_1A08 = param_00;
if(!isdefined(level._loadstarted) && !isdefined(param_01))
{
}
if(!isdefined(param_01))
{
param_01 = "minimap_corner";
}
var_02 = getdvarfloat("scr_requiredMapAspectRatio",1);
var_03 = getentarray(param_01,"targetname");
if(var_03.size != 2)
{
return;
}
var_04 = (var_03[0].origin[0],var_03[0].origin[1],0);
var_05 = (var_03[1].origin[0],var_03[1].origin[1],0);
var_06 = var_05 - var_04;
var_07 = (cos(getnorthyaw()),sin(getnorthyaw()),0);
var_08 = (0 - var_07[1],var_07[0],0);
if(vectordot(var_06,var_08) > 0)
{
if(vectordot(var_06,var_07) > 0)
{
var_09 = var_05;
var_0A = var_04;
}
else
{
var_0B = vecscale(var_09,vectordot(var_08,var_09));
var_09 = var_05 - var_0B;
var_0A = var_04 + var_0B;
}
}
else if(vectordot(var_08,var_09) > 0)
{
var_0B = vecscale(var_09,vectordot(var_08,var_09));
var_09 = var_04 + var_0B;
var_0A = var_05 - var_0B;
}
else
{
var_09 = var_06;
var_0A = var_06;
}
if(var_02 > 0)
{
var_0C = vectordot(var_09 - var_0A,var_07);
var_0D = vectordot(var_09 - var_0A,var_08);
var_0E = var_0D / var_0C;
if(var_0E < var_02)
{
var_0F = var_02 / var_0E;
var_10 = vecscale(var_08,var_0D * var_0F - 1 * 0.5);
}
else
{
var_0F = var_10 / var_04;
var_10 = vecscale(var_08,var_0D * var_10 - 1 * 0.5);
}
var_09 = var_09 + var_10;
var_0A = var_0A - var_10;
}
level.var_1A0A = [];
level.var_1A0A["top"] = var_09[1];
level.var_1A0A["left"] = var_0A[0];
level.var_1A0A["bottom"] = var_0A[1];
level.var_1A0A["right"] = var_09[0];
level.map_width = level.var_1A0A["right"] - level.var_1A0A["left"];
level.map_height = level.var_1A0A["top"] - level.var_1A0A["bottom"];
level.mapsize = vectordot(var_09 - var_0A,var_07);
setminimap(param_00,var_09[0],var_09[1],var_0A[0],var_0A[1]);
}
//Function Number: 2
vecscale(param_00,param_01)
{
return (param_00[0] * param_01,param_00[1] * param_01,param_00[2] * param_01);
}

342
MW3/Xbox/SP/maps/_coop.gsc Normal file
View File

@ -0,0 +1,342 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_coop.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 20
* Decompile Time: 322 ms
* Timestamp: 10/27/2023 2:33:52 AM
*******************************************************************/
//Function Number: 1
main()
{
common_scripts\utility::flag_init("coop_game");
if(!maps\_utility::func_E89())
{
return;
}
common_scripts\utility::flag_set("coop_game");
common_scripts\utility::flag_init("coop_show_constant_icon");
setdvarifuninitialized("coop_show_constant_icon",1);
if(getdvarint("coop_show_constant_icon") == 1)
{
common_scripts\utility::flag_set("coop_show_constant_icon");
}
precacheshader("hint_health");
precacheshader("coop_player_location");
precacheshader("coop_player_location_fire");
level.coop_icon_blinktime = 7;
level.coop_icon_blinkcrement = 0.375;
level.coop_revive_nag_hud_refreshtime = 20;
foreach(var_01 in level.players)
{
var_01.var_80D6 = var_01 getlocalplayerprofiledata("colorBlind");
var_01 thread initialize_colors(var_01.var_80D6);
var_01 thread func_15E2();
}
}
//Function Number: 2
initialize_colors(param_00)
{
if(param_00)
{
var_01 = (0.35,1,1);
var_02 = (1,0.65,0.2);
var_03 = (1,1,1);
self.coop_icon_color_normal = var_01;
self.coop_icon_color_downed = var_02;
self.coop_icon_color_shoot = var_01;
self.var_15D6 = var_03;
self.coop_icon_color_dying = var_02;
self.var_15D8 = var_03;
return;
}
var_04 = (0.635,0.929,0.604);
var_05 = (1,1,0.2);
var_02 = (1,0.65,0.2);
var_06 = (1,0.2,0.2);
var_03 = (1,1,1);
self.coop_icon_color_normal = var_04;
self.coop_icon_color_downed = var_05;
self.coop_icon_color_shoot = var_04;
self.var_15D6 = var_02;
self.coop_icon_color_dying = var_06;
self.var_15D8 = var_03;
}
//Function Number: 3
func_15D9(param_00,param_01,param_02)
{
if(isdefined(self.nofriendlyhudicon))
{
return;
}
if(!isdefined(self.var_15DB) || self.var_15DB.material != param_01)
{
create_fresh_friendly_icon(param_01);
}
self.var_15DB.color = param_00;
if(isdefined(param_02) && param_02)
{
self.var_15DB setwaypointedgestyle_rotatingicon();
}
}
//Function Number: 4
create_fresh_friendly_icon(param_00)
{
if(isdefined(self.var_15DB))
{
self.var_15DB destroy();
}
self.var_15DB = newclienthudelem(self);
self.var_15DB setshader(param_00,1,1);
self.var_15DB setwaypoint(1,1,0);
self.var_15DB setwaypointiconoffscreenonly();
self.var_15DB settargetent(maps\_utility::get_other_player(self));
self.var_15DB.material = param_00;
self.var_15DB.hidewheninmenu = 1;
if(common_scripts\utility::flag("coop_show_constant_icon"))
{
self.var_15DB.alpha = 1;
return;
}
self.var_15DB.alpha = 0;
}
//Function Number: 5
friendly_hud_icon_blink_on_fire()
{
self endon("death");
for(;;)
{
self waittill("weapon_fired");
var_00 = maps\_utility::get_other_player(self);
var_00 thread func_15E0(var_00.coop_icon_color_shoot,"coop_player_location_fire",1);
}
}
//Function Number: 6
friendly_hud_icon_blink_on_damage()
{
self endon("death");
for(;;)
{
self waittill("damage");
var_00 = maps\_utility::get_other_player(self);
var_00 thread func_15E0(var_00.var_15D6,"coop_player_location",1);
}
}
//Function Number: 7
func_15E0(param_00,param_01,param_02)
{
if(isdefined(self.nofriendlyhudicon))
{
return;
}
self endon("death");
self notify("flash_color_thread");
self endon("flash_color_thread");
var_03 = maps\_utility::get_other_player(self);
if(maps\_utility::is_player_down(var_03))
{
return;
}
func_15D9(param_00,param_01,param_02);
wait 0.5;
param_01 = friendlyhudicon_currentmaterial();
var_04 = friendlyhudicon_rotating();
func_15D9(self.coop_icon_color_normal,param_01,var_04);
}
//Function Number: 8
func_15E2()
{
level endon("special_op_terminated");
friendlyhudicon_normal();
thread friendly_hud_icon_blink_on_fire();
thread friendly_hud_icon_blink_on_damage();
thread monitor_color_blind_toggle();
thread func_15E3();
if(isdefined(self.nofriendlyhudicon))
{
return;
}
self.var_15DB.alpha = 0;
for(;;)
{
common_scripts\utility::flag_wait("coop_show_constant_icon");
self.var_15DB.alpha = 1;
common_scripts\utility::flag_waitopen("coop_show_constant_icon");
self.var_15DB.alpha = 0;
}
}
//Function Number: 9
func_15E3()
{
level waittill("special_op_terminated");
foreach(var_01 in level.players)
{
var_01 player_friendly_hud_destroy();
}
}
//Function Number: 10
player_friendly_hud_destroy()
{
if(isdefined(self.var_15DB))
{
self.var_15DB destroy();
}
}
//Function Number: 11
func_15E5()
{
common_scripts\utility::flag_clear("coop_show_constant_icon");
}
//Function Number: 12
friendlyhudicon_showall()
{
common_scripts\utility::flag_set("coop_show_constant_icon");
}
//Function Number: 13
friendlyhudicon_disable()
{
self.nofriendlyhudicon = 1;
player_friendly_hud_destroy();
}
//Function Number: 14
friendlyhudicon_enable()
{
self.nofriendlyhudicon = undefined;
if(!isdefined(self.var_15DB))
{
friendlyhudicon_normal();
}
}
//Function Number: 15
friendlyhudicon_normal()
{
if(!common_scripts\utility::flag("coop_game"))
{
return;
}
self.var_15EA = "ICON_STATE_NORMAL";
var_00 = friendlyhudicon_currentmaterial();
var_01 = friendlyhudicon_rotating();
func_15D9(self.coop_icon_color_normal,var_00,var_01);
}
//Function Number: 16
friendlyhudicon_downed()
{
if(!common_scripts\utility::flag("coop_game"))
{
return;
}
self.var_15EA = "ICON_STATE_DOWNED";
var_00 = friendlyhudicon_currentmaterial();
var_01 = friendlyhudicon_rotating();
func_15D9(self.coop_icon_color_downed,var_00,var_01);
}
//Function Number: 17
friendlyhudicon_update(param_00)
{
if(!common_scripts\utility::flag("coop_game"))
{
return;
}
var_01 = friendlyhudicon_currentmaterial();
var_02 = friendlyhudicon_rotating();
func_15D9(param_00,var_01,var_02);
}
//Function Number: 18
friendlyhudicon_currentmaterial()
{
var_00 = "coop_player_location";
switch(self.var_15EA)
{
case "ICON_STATE_NORMAL":
var_00 = "coop_player_location";
break;
case "ICON_STATE_DOWNED":
var_00 = "hint_health";
break;
default:
break;
}
return var_00;
}
//Function Number: 19
friendlyhudicon_rotating()
{
var_00 = 0;
switch(self.var_15EA)
{
case "ICON_STATE_NORMAL":
var_00 = 1;
break;
case "ICON_STATE_DOWNED":
var_00 = 0;
break;
default:
break;
}
return var_00;
}
//Function Number: 20
monitor_color_blind_toggle()
{
for(;;)
{
if(self getlocalplayerprofiledata("colorBlind") != self.var_80D6)
{
self.var_80D6 = self getlocalplayerprofiledata("colorBlind");
initialize_colors(self.var_80D6);
switch(self.var_15EA)
{
case "ICON_STATE_NORMAL":
friendlyhudicon_normal();
break;
case "ICON_STATE_DOWNED":
friendlyhudicon_downed();
break;
}
}
wait 0.05;
}
}

View File

@ -0,0 +1,52 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_createfx.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 3
* Decompile Time: 45 ms
* Timestamp: 10/27/2023 2:34:21 AM
*******************************************************************/
//Function Number: 1
createfx()
{
level.func_position_player = ::func_position_player;
level.func_position_player_get = ::func_position_player_get;
level.func_loopfxthread = ::common_scripts\_fx::loopfxthread;
level.func_oneshotfxthread = ::common_scripts\_fx::oneshotfxthread;
level.func_create_loopsound = ::common_scripts\_fx::create_loopsound;
level.func_updatefx = ::common_scripts\_createfx::restart_fx_looper;
level.func_process_fx_rotater = ::common_scripts\_createfx::process_fx_rotater;
level.mp_createfx = 0;
var_00 = getaiarray();
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
var_00[var_01] delete();
}
thread common_scripts\_createfx::createfxlogic();
thread common_scripts\_createfx::func_get_level_fx();
common_scripts\_createfx::createfx_common();
level waittill("eternity");
}
//Function Number: 2
func_position_player_get(param_00)
{
if(distance(param_00,level.player.origin) > 64)
{
setdvar("createfx_playerpos_x",level.player.origin[0]);
setdvar("createfx_playerpos_y",level.player.origin[1]);
setdvar("createfx_playerpos_z",level.player.origin[2]);
}
return level.player.origin;
}
//Function Number: 3
func_position_player()
{
var_00 = [];
level.player setorigin((var_41[0],var_41[1],var_41[2]));
}

View File

@ -0,0 +1,118 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_damagefeedback.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 6
* Decompile Time: 103 ms
* Timestamp: 10/27/2023 2:33:59 AM
*******************************************************************/
//Function Number: 1
init()
{
precacheshader("damage_feedback");
common_scripts\utility::array_thread(level.players,::init_damage_feedback);
common_scripts\utility::array_thread(level.players,::monitordamage);
}
//Function Number: 2
init_damage_feedback()
{
self.hud_damagefeedback = newclienthudelem(self);
self.hud_damagefeedback.alignx = "center";
self.hud_damagefeedback.aligny = "middle";
self.hud_damagefeedback.horzalign = "center";
self.hud_damagefeedback.vertalign = "middle";
self.hud_damagefeedback.alpha = 0;
self.hud_damagefeedback.archived = 1;
self.hud_damagefeedback setshader("damage_feedback",24,48);
self.hud_damagefeedback.y = 12;
}
//Function Number: 3
monitordamage()
{
maps\_utility::add_damage_function(::damagefeedback_took_damage);
}
//Function Number: 4
func_15C7()
{
maps\_utility::remove_damage_function(::damagefeedback_took_damage);
}
//Function Number: 5
damagefeedback_took_damage(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(!isplayer(param_01))
{
return;
}
if(!maps\_utility::is_damagefeedback_enabled())
{
return;
}
if(isdefined(self.var_15CB))
{
var_07 = [];
if(isdefined(var_41[param_05]))
{
if(param_01 <= self.var_15CB)
{
return;
}
}
}
param_02 updatedamagefeedback(self);
}
//Function Number: 6
updatedamagefeedback(param_00)
{
if(!isplayer(self))
{
return;
}
if(!isdefined(param_00.team))
{
return;
}
if(param_00.team == self.team || param_00.team == "neutral")
{
return;
}
if(isdefined(param_00.magic_bullet_shield) && param_00.magic_bullet_shield)
{
return;
}
if(isdefined(param_00.godmode) && param_00.godmode)
{
return;
}
if(isdefined(param_00.var_2504) && param_00.var_2504)
{
return;
}
self playlocalsound("SP_hit_alert");
var_01 = 1;
if(isdefined(level.slowmo.speed_slow))
{
var_01 = level.slowmo.speed_slow;
}
self.hud_damagefeedback.alpha = 1;
self.hud_damagefeedback fadeovertime(var_01);
self.hud_damagefeedback.alpha = 0;
var_02 = getdvarfloat("cg_crosshairVerticalOffset") * 240;
self.hud_damagefeedback.y = 12 - int(var_02);
}

View File

@ -0,0 +1,110 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_deadbody.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 4
* Decompile Time: 67 ms
* Timestamp: 10/27/2023 2:34:18 AM
*******************************************************************/
//Function Number: 1
main()
{
level.scr_anim["dead_guy"]["death1"] = %exposed_death_nerve;
level.scr_anim["dead_guy"]["death2"] = %exposed_death_falltoknees;
level.scr_anim["dead_guy"]["death3"] = %exposed_death_headtwist;
level.scr_anim["dead_guy"]["death4"] = %exposed_crouch_death_twist;
level.scr_anim["dead_guy"]["death5"] = %exposed_crouch_death_fetal;
level.scr_anim["dead_guy"]["death6"] = %death_sitting_pose_v1;
level.scr_anim["dead_guy"]["death7"] = %death_sitting_pose_v2;
level.scr_anim["dead_guy"]["death8"] = %death_pose_on_desk;
level.scr_anim["dead_guy"]["death9"] = %death_pose_on_window;
level.scr_animtree["ead_guy"] = #animtree;
level.var_3B78 = 1;
var_00 = getdvarint("ragdoll_max_simulating") - 6;
if(var_00 > 0)
{
level.var_3B79 = var_00;
}
else
{
level.var_3B79 = 0;
}
var_01 = spawnstruct();
var_01.var_3B7A = [];
common_scripts\utility::run_thread_on_targetname("trigger_body",::func_3B7B,var_01);
common_scripts\utility::run_thread_on_targetname("dead_body",::func_3B7C,var_01);
}
//Function Number: 2
func_3B7B(param_00)
{
self waittill("trigger");
var_01 = getentarray(self.target,"targetname");
common_scripts\utility::array_thread(var_01,::func_3B7C,param_00);
}
//Function Number: 3
func_3B7C(param_00)
{
if(!getdvarint("ragdoll_enable") && isdefined(self.script_parameters) && self.script_parameters == "require_ragdoll")
{
return;
}
if(level.var_3B79 == 0)
{
return;
}
var_01 = undefined;
if(isdefined(self.script_index))
{
var_01 = self.script_index;
}
else
{
level.var_3B78++;
if(level.var_3B78 > 3)
{
level.var_3B78 = 1;
}
var_01 = level.var_3B78;
}
var_02 = spawn("script_model",(0,0,0));
var_02.origin = self.origin;
var_02.angles = self.angles;
var_02.animname = "dead_guy";
var_02 maps\_utility::func_21AB();
param_00 que_body(var_02);
var_02 [[ level.var_3B7D[var_01] ]]();
if(!isdefined(self.script_trace))
{
var_03 = bullettrace(var_02.origin + (0,0,5),var_02.origin + (0,0,-64),0,undefined);
var_02.origin = var_03["position"];
}
var_02 setflaggedanim("flag",var_02 maps\_utility::getanim(self.script_noteworthy),1,0,1);
var_02 waittillmatch("end","flag");
if(!isdefined(self.script_start))
{
var_02 startragdoll();
}
}
//Function Number: 4
que_body(param_00)
{
self.var_3B7A[self.var_3B7A.size] = param_00;
if(self.var_3B7A.size <= level.var_3B79)
{
return;
}
self.var_3B7A[0] delete();
self.var_3B7A = common_scripts\utility::array_removeundefined(self.var_3B7A);
}

2083
MW3/Xbox/SP/maps/_debug.gsc Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,620 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_detonategrenades.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 30
* Decompile Time: 924 ms
* Timestamp: 10/27/2023 2:34:38 AM
*******************************************************************/
//Function Number: 1
init()
{
level._effect["c4_light_blink"] = loadfx("misc/light_c4_blink");
level._effect["claymore_laser"] = loadfx("misc/claymore_laser");
for(var_00 = 0;var_00 < level.players.size;var_00++)
{
level.players[var_00] thread watchgrenadeusage();
}
}
//Function Number: 2
watchgrenadeusage()
{
level.c4explodethisframe = 0;
self endon("death");
self.c4array = [];
self.throwinggrenade = 0;
thread watchc4();
thread func_17B5();
thread func_17B6();
thread watchclaymores();
thread func_179F();
for(;;)
{
self waittill("grenade_pullback",var_00);
self.throwinggrenade = 1;
if(var_00 == "c4")
{
beginc4tracking();
continue;
}
if(var_00 == "smoke_grenade_american")
{
beginsmokegrenadetracking();
continue;
}
func_17A7();
}
}
//Function Number: 3
beginsmokegrenadetracking()
{
self waittill("grenade_fire",var_00,var_01);
if(!isdefined(level.smokegrenades))
{
level.smokegrenades = 0;
}
var_00 thread smoke_grenade_death();
}
//Function Number: 4
func_179F()
{
for(;;)
{
self waittill("grenade_fire",var_00,var_01);
if(var_01 == "semtex_grenade")
{
thread func_17A0(var_00);
var_00 thread func_17A2(self);
}
}
}
//Function Number: 5
func_17A0(param_00)
{
self.throwinggrenade = 0;
if(!isdefined(level.var_17A1))
{
level.var_17A1 = 1;
}
else
{
level.var_17A1++;
}
param_00 waittill("death");
waittillframeend;
level.var_17A1--;
}
//Function Number: 6
func_17A2(param_00)
{
self waittill("missile_stuck",var_01);
if(!isdefined(var_01))
{
return;
}
if(var_01.code_classname != "script_vehicle")
{
return;
}
var_01.has_semtex_on_it = 1;
self waittill("explode");
if(!isdefined(var_01) || !isalive(var_01))
{
return;
}
if(var_01 maps\_vehicle::func_17A4() || var_01 maps\_vehicle::attacker_isonmyteam(param_00))
{
var_01.has_semtex_on_it = undefined;
return;
}
var_01 kill(var_01.origin,param_00);
}
//Function Number: 7
smoke_grenade_death()
{
level.smokegrenades++;
wait 50;
level.smokegrenades--;
}
//Function Number: 8
func_17A7()
{
self endon("death");
self waittill("grenade_fire",var_00,var_01);
if(var_01 == "fraggrenade")
{
var_00 thread maps\_utility::grenade_earthquake();
}
else if(var_01 == "ninebang_grenade")
{
self.threw_ninebang = 1;
}
self.throwinggrenade = 0;
}
//Function Number: 9
beginc4tracking()
{
self endon("death");
common_scripts\utility::waittill_any("grenade_fire","weapon_change");
self.throwinggrenade = 0;
}
//Function Number: 10
watchc4()
{
for(;;)
{
self waittill("grenade_fire",var_00,var_01);
if(var_01 == "c4")
{
if(!self.c4array.size)
{
thread watchc4altdetonate();
}
self.c4array[self.c4array.size] = var_00;
var_00.owner = self;
var_00 thread func_17B8();
thread c4death(var_00);
var_00 thread playc4effects();
}
}
}
//Function Number: 11
c4death(param_00)
{
param_00 waittill("death");
self.c4array = maps\_utility::array_remove_nokeys(self.c4array,param_00);
}
//Function Number: 12
watchclaymores()
{
self endon("spawned_player");
self endon("disconnect");
for(;;)
{
self waittill("grenade_fire",var_00,var_01);
if(var_01 == "claymore" || var_01 == "claymore_mp")
{
var_00.owner = self;
var_00 thread func_17B8();
var_00 thread claymoredetonation();
var_00 thread playclaymoreeffects();
var_00 thread func_17AF(self.team);
}
}
}
//Function Number: 13
func_17AF(param_00)
{
self endon("death");
wait 1;
if(isdefined(level.claymoresentientfunc))
{
self thread [[ level.claymoresentientfunc ]](param_00);
return;
}
self makeentitysentient(param_00,1);
self.attackeraccuracy = 2;
self.maxvisibledist = 750;
self.threatbias = -1000;
}
//Function Number: 14
claymoredetonation()
{
self endon("death");
self waittill("missile_stuck");
var_00 = 192;
if(isdefined(self.detonateradius))
{
var_00 = self.detonateradius;
}
var_01 = spawn("trigger_radius",self.origin + (0,0,0 - var_00),9,var_00,var_00 * 2);
thread deleteondeath(var_01);
if(!isdefined(level.claymores))
{
level.claymores = [];
}
level.claymores = maps\_utility::array_add(level.claymores,self);
if(!maps\_utility::is_specialop() && level.claymores.size > 15)
{
level.claymores[0] delete();
}
for(;;)
{
var_01 waittill("trigger",var_02);
if(isdefined(self.owner) && var_02 == self.owner)
{
continue;
}
if(isplayer(var_02))
{
continue;
}
if(var_02 damageconetrace(self.origin,self) > 0)
{
self playsound("claymore_activated_SP");
wait 0.4;
if(isdefined(self.owner))
{
self detonate(self.owner);
}
else
{
self detonate(undefined);
}
return;
}
}
}
//Function Number: 15
deleteondeath(param_00)
{
self waittill("death");
level.claymores = maps\_utility::array_remove_nokeys(level.claymores,self);
wait 0.05;
if(isdefined(param_00))
{
param_00 delete();
}
}
//Function Number: 16
func_17B5()
{
self endon("death");
for(;;)
{
self waittill("detonate");
var_00 = self getcurrentweapon();
if(var_00 == "c4")
{
for(var_01 = 0;var_01 < self.c4array.size;var_01++)
{
if(isdefined(self.c4array[var_01]))
{
self.c4array[var_01] thread func_17B7(0.1);
}
}
self.c4array = [];
}
}
}
//Function Number: 17
func_17B6()
{
self endon("death");
self endon("disconnect");
for(;;)
{
self waittill("alt_detonate");
var_00 = self getcurrentweapon();
if(var_00 != "c4")
{
var_01 = [];
for(var_02 = 0;var_02 < self.c4array.size;var_02++)
{
var_03 = self.c4array[var_02];
if(isdefined(self.c4array[var_02]))
{
var_03 thread func_17B7(0.1);
}
}
self.c4array = var_01;
self notify("detonated");
}
}
}
//Function Number: 18
func_17B7(param_00)
{
self endon("death");
wait param_00;
self detonate();
}
//Function Number: 19
func_17B8()
{
self.health = 100;
self setcandamage(1);
self.maxhealth = 100000;
self.health = self.maxhealth;
var_00 = undefined;
for(;;)
{
self waittill("damage",var_01,var_00);
break;
}
self playsound("claymore_activated_SP");
if(level.c4explodethisframe)
{
wait 0.1 + randomfloat(0.4);
}
else
{
wait 0.05;
}
if(!isdefined(self))
{
return;
}
level.c4explodethisframe = 1;
thread resetc4explodethisframe();
if(isplayer(var_00))
{
self detonate(var_00);
return;
}
self detonate();
}
//Function Number: 20
resetc4explodethisframe()
{
wait 0.05;
level.c4explodethisframe = 0;
}
//Function Number: 21
saydamaged(param_00,param_01)
{
for(var_02 = 0;var_02 < 60;var_02++)
{
wait 0.05;
}
}
//Function Number: 22
playc4effects()
{
self endon("death");
self waittill("missile_stuck");
playfxontag(common_scripts\utility::func_539("c4_light_blink"),self,"tag_fx");
}
//Function Number: 23
playclaymoreeffects()
{
self endon("death");
self waittill("missile_stuck");
playfxontag(common_scripts\utility::func_539("claymore_laser"),self,"tag_fx");
}
//Function Number: 24
clearfxondeath(param_00)
{
self waittill("death");
param_00 delete();
}
//Function Number: 25
func_17BE(param_00,param_01,param_02,param_03)
{
var_04 = [];
if(!isdefined(param_02))
{
param_02 = 0;
}
if(!isdefined(param_03))
{
param_03 = 0;
}
for(var_05 = 0;var_05 < level.players.size;var_05++)
{
if(!isalive(level.players[var_05]) || level.players[var_05].sessionstate != "playing")
{
continue;
}
var_06 = level.players[var_05].origin + (0,0,32);
var_07 = distance(param_00,var_06);
if(var_07 < param_01 && !param_02 || weapondamagetracepassed(param_00,var_06,param_03,undefined))
{
var_08 = spawnstruct();
var_08.isplayer = 1;
var_08.isadestructable = 0;
var_08.entity = level.players[var_05];
var_08.damagecenter = var_06;
var_04[var_04.size] = var_08;
}
}
var_09 = getentarray("grenade","classname");
for(var_05 = 0;var_05 < var_09.size;var_05++)
{
var_0A = var_09[var_05].origin;
var_07 = distance(param_00,var_0A);
if(var_07 < param_01 && !param_02 || weapondamagetracepassed(param_00,var_0A,param_03,var_09[var_05]))
{
var_08 = spawnstruct();
var_08.isplayer = 0;
var_08.isadestructable = 0;
var_08.entity = var_09[var_05];
var_08.damagecenter = var_0A;
var_04[var_04.size] = var_08;
}
}
var_0B = getentarray("destructable","targetname");
for(var_05 = 0;var_05 < var_0B.size;var_05++)
{
var_0A = var_0B[var_05].origin;
var_07 = distance(param_00,var_0A);
if(var_07 < param_01 && !param_02 || weapondamagetracepassed(param_00,var_0A,param_03,var_0B[var_05]))
{
var_08 = spawnstruct();
var_08.isplayer = 0;
var_08.isadestructable = 1;
var_08.entity = var_0B[var_05];
var_08.damagecenter = var_0A;
var_04[var_04.size] = var_08;
}
}
return var_04;
}
//Function Number: 26
weapondamagetracepassed(param_00,param_01,param_02,param_03)
{
var_04 = undefined;
var_05 = param_01 - param_00;
if(lengthsquared(var_05) < param_02 * param_02)
{
var_04 = param_01;
}
var_06 = vectornormalize(var_05);
var_04 = param_00 + (var_06[0] * param_02,var_06[1] * param_02,var_06[2] * param_02);
var_07 = bullettrace(var_04,param_01,0,param_03);
if(getdvarint("scr_damage_debug") != 0)
{
if(var_07["fraction"] == 1)
{
thread debugline(var_04,param_01,(1,1,1));
}
else
{
thread debugline(var_04,var_07["position"],(1,0.9,0.8));
thread debugline(var_07["position"],param_01,(1,0.4,0.3));
}
}
return var_07["fraction"] == 1;
}
//Function Number: 27
damageent(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(self.isplayer)
{
self.damageorigin = param_05;
self.entity thread [[ level.callbackplayerdamage ]](param_00,param_01,param_02,0,param_03,param_04,param_05,param_06,"none",0);
return;
}
if(self.isadestructable && param_04 == "artillery_mp" || param_04 == "claymore_mp")
{
return;
}
self.entity notify("damage",param_02,param_01);
}
//Function Number: 28
debugline(param_00,param_01,param_02)
{
for(var_03 = 0;var_03 < 600;var_03++)
{
wait 0.05;
}
}
//Function Number: 29
onweapondamage(param_00,param_01,param_02,param_03)
{
self endon("death");
switch(param_01)
{
case "concussion_grenade_mp":
var_04 = 512;
var_05 = 1 - distance(self.origin,param_00.origin) / var_04;
var_06 = 1 + 4 * var_05;
wait 0.05;
self shellshock("concussion_grenade_mp",var_06);
break;
default:
break;
}
}
//Function Number: 30
watchc4altdetonate()
{
self endon("death");
self endon("disconnect");
self endon("detonated");
level endon("game_ended");
var_00 = 0;
for(;;)
{
if(self usebuttonpressed())
{
var_00 = 0;
while(self usebuttonpressed())
{
var_00 = var_00 + 0.05;
wait 0.05;
}
if(var_00 >= 0.5)
{
continue;
}
var_00 = 0;
while(!self usebuttonpressed() && var_00 < 0.5)
{
var_00 = var_00 + 0.05;
wait 0.05;
}
if(var_00 >= 0.5)
{
continue;
}
if(!self.c4array.size)
{
return;
}
self notify("alt_detonate");
}
wait 0.05;
}
}

1024
MW3/Xbox/SP/maps/_drone.gsc Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,190 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_drone_ai.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 1
* Decompile Time: 36 ms
* Timestamp: 10/27/2023 2:34:19 AM
*******************************************************************/
//Function Number: 1
init()
{
level.var_1BAB["allies"]["stand"]["idle"] = %casual_stand_idle;
level.var_1BAB["allies"]["stand"]["run"] = %run_lowready_f_relative;
level.var_1BAB["allies"]["stand"]["death"] = %exposed_death;
level.var_1BAB["allies"]["covercrouch"]["idle"][0] = %covercrouch_hide_idle;
level.var_1BAB["allies"]["covercrouch"]["idle"][1] = %covercrouch_twitch_1;
level.var_1BAB["allies"]["covercrouch"]["idle"][2] = %covercrouch_twitch_2;
level.var_1BAB["allies"]["covercrouch"]["idle"][3] = %covercrouch_twitch_3;
level.var_1BAB["allies"]["covercrouch"]["idle"][4] = %covercrouch_hide_look;
level.var_1BAB["allies"]["covercrouch"]["hide_2_aim"] = %covercrouch_hide_2_aim;
level.var_1BAB["allies"]["covercrouch"]["aim_2_hide"] = %covercrouch_aim_2_hide;
level.var_1BAB["allies"]["covercrouch"]["reload"] = %covercrouch_reload_hide;
level.var_1BAB["allies"]["covercrouch"]["fire"] = %covercrouch_aim5;
level.var_1BAB["allies"]["covercrouch"]["death"] = %covercrouch_death_1;
level.var_1BAB["allies"]["covercrouch"]["pop_up_chance"] = 1;
level.var_1BAB["allies"]["coverstand"]["idle"][0] = %coverstand_hide_idle;
level.var_1BAB["allies"]["coverstand"]["idle"][1] = %coverstand_look_quick;
level.var_1BAB["allies"]["coverstand"]["idle"][2] = %coverstand_look_quick_v2;
level.var_1BAB["allies"]["coverstand"]["idle"][3] = %coverstand_hide_idle_twitch04;
level.var_1BAB["allies"]["coverstand"]["idle"][4] = %coverstand_hide_idle_twitch05;
level.var_1BAB["allies"]["coverstand"]["hide_2_aim"] = %coverstand_hide_2_aim;
level.var_1BAB["allies"]["coverstand"]["aim_2_hide"] = %coverstand_aim_2_hide;
level.var_1BAB["allies"]["coverstand"]["reload"] = %coverstand_reloada;
level.var_1BAB["allies"]["coverstand"]["fire"] = %exposed_aim_5;
level.var_1BAB["allies"]["coverstand"]["death"] = %coverstand_death_left;
level.var_1BAB["allies"]["coverstand"]["pop_up_chance"] = 1;
level.var_1BAB["allies"]["coverleftstand"]["idle"][0] = %corner_standl_alert_idle;
level.var_1BAB["allies"]["coverleftstand"]["idle"][1] = %corner_standl_alert_twitch01;
level.var_1BAB["allies"]["coverleftstand"]["idle"][2] = %corner_standl_alert_twitch02;
level.var_1BAB["allies"]["coverleftstand"]["idle"][3] = %corner_standl_alert_twitch03;
level.var_1BAB["allies"]["coverleftstand"]["idle"][4] = %corner_standl_alert_twitch04;
level.var_1BAB["allies"]["coverleftstand"]["hide_2_aim"] = %corner_standl_trans_alert_2_b_v2;
level.var_1BAB["allies"]["coverleftstand"]["aim_2_hide"] = %corner_standl_trans_b_2_alert_v2;
level.var_1BAB["allies"]["coverleftstand"]["reload"] = %corner_standl_reload_v1;
level.var_1BAB["allies"]["coverleftstand"]["fire"] = %exposed_aim_5;
level.var_1BAB["allies"]["coverleftstand"]["death"] = %corner_standl_deathb;
level.var_1BAB["allies"]["coverleftstand"]["pop_up_chance"] = 1;
level.var_1BAB["allies"]["coverrightstand"]["idle"][0] = %corner_standr_alert_idle;
level.var_1BAB["allies"]["coverrightstand"]["idle"][1] = %corner_standr_alert_twitch01;
level.var_1BAB["allies"]["coverrightstand"]["idle"][2] = %corner_standr_alert_twitch02;
level.var_1BAB["allies"]["coverrightstand"]["idle"][3] = %corner_standr_alert_twitch04;
level.var_1BAB["allies"]["coverrightstand"]["hide_2_aim"] = %corner_standr_trans_alert_2_b;
level.var_1BAB["allies"]["coverrightstand"]["aim_2_hide"] = %corner_standr_trans_b_2_alert;
level.var_1BAB["allies"]["coverrightstand"]["reload"] = %corner_standr_reload_v1;
level.var_1BAB["allies"]["coverrightstand"]["fire"] = %exposed_aim_5;
level.var_1BAB["allies"]["coverrightstand"]["death"] = %corner_standr_deathb;
level.var_1BAB["allies"]["coverrightstand"]["pop_up_chance"] = 1;
level.var_1BAB["allies"]["coverrightcrouch"]["idle"][0] = %cornercrr_alert_idle;
level.var_1BAB["allies"]["coverrightcrouch"]["idle"][1] = %cornercrr_alert_twitch_v1;
level.var_1BAB["allies"]["coverrightcrouch"]["idle"][2] = %cornercrr_alert_twitch_v2;
level.var_1BAB["allies"]["coverrightcrouch"]["idle"][3] = %cornercrr_alert_twitch_v3;
level.var_1BAB["allies"]["coverrightcrouch"]["hide_2_aim"] = %cornercrr_alert_2_lean;
level.var_1BAB["allies"]["coverrightcrouch"]["aim_2_hide"] = %cornercrr_lean_2_alert;
level.var_1BAB["allies"]["coverrightcrouch"]["reload"] = %cornercrr_reloada;
level.var_1BAB["allies"]["coverrightcrouch"]["death"] = %exposed_crouch_death_fetal;
level.var_1BAB["allies"]["coverrightcrouch"]["pop_up_chance"] = 1;
level.var_1BAB["allies"]["coverguard"]["idle"][0] = %exposed_crouch_idle_twitch_v2;
level.var_1BAB["allies"]["coverguard"]["idle"][1] = %exposed_crouch_idle_twitch_v3;
level.var_1BAB["allies"]["coverguard"]["reload"] = %exposed_crouch_reload;
level.var_1BAB["allies"]["coverguard"]["fire"] = %exposed_crouch_aim_5;
level.var_1BAB["allies"]["coverguard"]["death"] = %exposed_crouch_death_fetal;
level.var_1BAB["allies"]["coverguard"]["pop_up_chance"] = 0;
level.var_1BAB["allies"]["coverprone"]["idle"][0] = %prone_reaction_a;
level.var_1BAB["allies"]["coverprone"]["idle"][1] = %prone_twitch_ammocheck;
level.var_1BAB["allies"]["coverprone"]["idle"][2] = %prone_twitch_scan;
level.var_1BAB["allies"]["coverprone"]["idle"][3] = %prone_twitch_look;
level.var_1BAB["allies"]["coverprone"]["idle"][4] = %prone_twitch_lookup;
level.var_1BAB["allies"]["coverprone"]["hide_2_aim"] = %prone_2_crouch;
level.var_1BAB["allies"]["coverprone"]["aim_2_hide"] = %crouch_2_prone;
level.var_1BAB["allies"]["coverprone"]["reload"] = %prone_reload;
level.var_1BAB["allies"]["coverprone"]["fire"] = %prone_fire_1;
level.var_1BAB["allies"]["coverprone"]["fire_exposed"] = %exposed_crouch_aim_5;
level.var_1BAB["allies"]["coverprone"]["death"] = %saw_gunner_prone_death;
level.var_1BAB["allies"]["coverprone"]["pop_up_chance"] = 0.5;
level.var_1BAB["allies"]["coverprone_no_pop"]["idle"][0] = %prone_reaction_a;
level.var_1BAB["allies"]["coverprone_no_pop"]["idle"][1] = %prone_twitch_ammocheck;
level.var_1BAB["allies"]["coverprone_no_pop"]["idle"][2] = %prone_twitch_scan;
level.var_1BAB["allies"]["coverprone_no_pop"]["idle"][3] = %prone_twitch_look;
level.var_1BAB["allies"]["coverprone_no_pop"]["idle"][4] = %prone_twitch_lookup;
level.var_1BAB["allies"]["coverprone_no_pop"]["hide_2_aim"] = %prone_2_crouch;
level.var_1BAB["allies"]["coverprone_no_pop"]["aim_2_hide"] = %crouch_2_prone;
level.var_1BAB["allies"]["coverprone_no_pop"]["reload"] = %prone_reload;
level.var_1BAB["allies"]["coverprone_no_pop"]["fire"] = %prone_fire_1;
level.var_1BAB["allies"]["coverprone_no_pop"]["fire_exposed"] = %exposed_crouch_aim_5;
level.var_1BAB["allies"]["coverprone_no_pop"]["death"] = %saw_gunner_prone_death;
level.var_1BAB["allies"]["coverprone_no_pop"]["pop_up_chance"] = 0;
level.var_1BAB["axis"]["stand"]["idle"] = %casual_stand_idle;
level.var_1BAB["axis"]["stand"]["run"] = %run_lowready_f_relative;
level.var_1BAB["axis"]["stand"]["death"] = %exposed_death;
level.var_1BAB["axis"]["covercrouch"]["idle"][0] = %covercrouch_hide_idle;
level.var_1BAB["axis"]["covercrouch"]["idle"][1] = %covercrouch_twitch_1;
level.var_1BAB["axis"]["covercrouch"]["idle"][2] = %covercrouch_twitch_2;
level.var_1BAB["axis"]["covercrouch"]["idle"][3] = %covercrouch_twitch_3;
level.var_1BAB["axis"]["covercrouch"]["idle"][4] = %covercrouch_hide_look;
level.var_1BAB["axis"]["covercrouch"]["hide_2_aim"] = %covercrouch_hide_2_aim;
level.var_1BAB["axis"]["covercrouch"]["aim_2_hide"] = %covercrouch_aim_2_hide;
level.var_1BAB["axis"]["covercrouch"]["reload"] = %covercrouch_reload_hide;
level.var_1BAB["axis"]["covercrouch"]["fire"] = %covercrouch_aim5;
level.var_1BAB["axis"]["covercrouch"]["death"] = %covercrouch_death_1;
level.var_1BAB["axis"]["covercrouch"]["pop_up_chance"] = 1;
level.var_1BAB["axis"]["coverstand"]["idle"][0] = %coverstand_hide_idle;
level.var_1BAB["axis"]["coverstand"]["idle"][1] = %coverstand_look_quick;
level.var_1BAB["axis"]["coverstand"]["idle"][2] = %coverstand_look_quick_v2;
level.var_1BAB["axis"]["coverstand"]["idle"][3] = %coverstand_hide_idle_twitch04;
level.var_1BAB["axis"]["coverstand"]["idle"][4] = %coverstand_hide_idle_twitch05;
level.var_1BAB["axis"]["coverstand"]["hide_2_aim"] = %coverstand_hide_2_aim;
level.var_1BAB["axis"]["coverstand"]["aim_2_hide"] = %coverstand_aim_2_hide;
level.var_1BAB["axis"]["coverstand"]["reload"] = %coverstand_reloada;
level.var_1BAB["axis"]["coverstand"]["fire"] = %exposed_aim_5;
level.var_1BAB["axis"]["coverstand"]["death"] = %coverstand_death_left;
level.var_1BAB["axis"]["coverstand"]["pop_up_chance"] = 1;
level.var_1BAB["axis"]["coverleftstand"]["idle"][0] = %corner_standl_alert_idle;
level.var_1BAB["axis"]["coverleftstand"]["idle"][1] = %corner_standl_alert_twitch01;
level.var_1BAB["axis"]["coverleftstand"]["idle"][2] = %corner_standl_alert_twitch02;
level.var_1BAB["axis"]["coverleftstand"]["idle"][3] = %corner_standl_alert_twitch03;
level.var_1BAB["axis"]["coverleftstand"]["idle"][4] = %corner_standl_alert_twitch04;
level.var_1BAB["axis"]["coverleftstand"]["hide_2_aim"] = %corner_standl_trans_alert_2_b_v2;
level.var_1BAB["axis"]["coverleftstand"]["aim_2_hide"] = %corner_standl_trans_b_2_alert_v2;
level.var_1BAB["axis"]["coverleftstand"]["reload"] = %corner_standl_reload_v1;
level.var_1BAB["axis"]["coverleftstand"]["fire"] = %exposed_aim_5;
level.var_1BAB["axis"]["coverleftstand"]["death"] = %corner_standl_deathb;
level.var_1BAB["axis"]["coverleftstand"]["pop_up_chance"] = 1;
level.var_1BAB["axis"]["coverrightstand"]["idle"][0] = %corner_standr_alert_idle;
level.var_1BAB["axis"]["coverrightstand"]["idle"][1] = %corner_standr_alert_twitch01;
level.var_1BAB["axis"]["coverrightstand"]["idle"][2] = %corner_standr_alert_twitch02;
level.var_1BAB["axis"]["coverrightstand"]["idle"][3] = %corner_standr_alert_twitch04;
level.var_1BAB["axis"]["coverrightstand"]["hide_2_aim"] = %corner_standr_trans_alert_2_b;
level.var_1BAB["axis"]["coverrightstand"]["aim_2_hide"] = %corner_standr_trans_b_2_alert;
level.var_1BAB["axis"]["coverrightstand"]["reload"] = %corner_standr_reload_v1;
level.var_1BAB["axis"]["coverrightstand"]["fire"] = %exposed_aim_5;
level.var_1BAB["axis"]["coverrightstand"]["death"] = %corner_standr_deathb;
level.var_1BAB["axis"]["coverrightstand"]["pop_up_chance"] = 1;
level.var_1BAB["axis"]["coverrightcrouch"]["idle"][0] = %cornercrr_alert_idle;
level.var_1BAB["axis"]["coverrightcrouch"]["idle"][1] = %cornercrr_alert_twitch_v1;
level.var_1BAB["axis"]["coverrightcrouch"]["idle"][2] = %cornercrr_alert_twitch_v2;
level.var_1BAB["axis"]["coverrightcrouch"]["idle"][3] = %cornercrr_alert_twitch_v3;
level.var_1BAB["axis"]["coverrightcrouch"]["hide_2_aim"] = %cornercrr_alert_2_lean;
level.var_1BAB["axis"]["coverrightcrouch"]["aim_2_hide"] = %cornercrr_lean_2_alert;
level.var_1BAB["axis"]["coverrightcrouch"]["reload"] = %cornercrr_reloada;
level.var_1BAB["axis"]["coverrightcrouch"]["death"] = %exposed_crouch_death_fetal;
level.var_1BAB["axis"]["coverrightcrouch"]["pop_up_chance"] = 1;
level.var_1BAB["axis"]["coverguard"]["idle"][0] = %exposed_crouch_idle_twitch_v2;
level.var_1BAB["axis"]["coverguard"]["idle"][1] = %exposed_crouch_idle_twitch_v3;
level.var_1BAB["axis"]["coverguard"]["reload"] = %exposed_crouch_reload;
level.var_1BAB["axis"]["coverguard"]["fire"] = %exposed_crouch_aim_5;
level.var_1BAB["axis"]["coverguard"]["death"] = %exposed_crouch_death_fetal;
level.var_1BAB["axis"]["coverguard"]["pop_up_chance"] = 0;
level.var_1BAB["axis"]["coverprone"]["idle"][0] = %prone_reaction_a;
level.var_1BAB["axis"]["coverprone"]["idle"][1] = %prone_twitch_ammocheck;
level.var_1BAB["axis"]["coverprone"]["idle"][2] = %prone_twitch_scan;
level.var_1BAB["axis"]["coverprone"]["idle"][3] = %prone_twitch_look;
level.var_1BAB["axis"]["coverprone"]["idle"][4] = %prone_twitch_lookup;
level.var_1BAB["axis"]["coverprone"]["hide_2_aim"] = %prone_2_crouch;
level.var_1BAB["axis"]["coverprone"]["aim_2_hide"] = %crouch_2_prone;
level.var_1BAB["axis"]["coverprone"]["reload"] = %prone_reload;
level.var_1BAB["axis"]["coverprone"]["fire"] = %prone_fire_1;
level.var_1BAB["axis"]["coverprone"]["fire_exposed"] = %exposed_crouch_aim_5;
level.var_1BAB["axis"]["coverprone"]["death"] = %saw_gunner_prone_death;
level.var_1BAB["axis"]["coverprone"]["pop_up_chance"] = 0.5;
level.var_1BAB["axis"]["coverprone_no_pop"]["idle"][0] = %prone_reaction_a;
level.var_1BAB["axis"]["coverprone_no_pop"]["idle"][1] = %prone_twitch_ammocheck;
level.var_1BAB["axis"]["coverprone_no_pop"]["idle"][2] = %prone_twitch_scan;
level.var_1BAB["axis"]["coverprone_no_pop"]["idle"][3] = %prone_twitch_look;
level.var_1BAB["axis"]["coverprone_no_pop"]["idle"][4] = %prone_twitch_lookup;
level.var_1BAB["axis"]["coverprone_no_pop"]["hide_2_aim"] = %prone_2_crouch;
level.var_1BAB["axis"]["coverprone_no_pop"]["aim_2_hide"] = %crouch_2_prone;
level.var_1BAB["axis"]["coverprone_no_pop"]["reload"] = %prone_reload;
level.var_1BAB["axis"]["coverprone_no_pop"]["fire"] = %prone_fire_1;
level.var_1BAB["axis"]["coverprone_no_pop"]["fire_exposed"] = %exposed_crouch_aim_5;
level.var_1BAB["axis"]["coverprone_no_pop"]["death"] = %saw_gunner_prone_death;
level.var_1BAB["axis"]["coverprone_no_pop"]["pop_up_chance"] = 0;
level.var_1BAB["team3"]["stand"]["idle"] = %casual_stand_idle;
level.var_1BAB["team3"]["stand"]["run"] = %run_lowready_f_relative;
level.var_1BAB["team3"]["stand"]["death"] = %exposed_death;
level._effect["ak47_muzzleflash"] = loadfx("muzzleflashes/ak47_flash_wv");
level._effect["m16_muzzleflash"] = loadfx("muzzleflashes/m16_flash_wv");
maps\_drone::func_1B95();
}

View File

@ -0,0 +1,19 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_drone_civilian.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 1
* Decompile Time: 15 ms
* Timestamp: 10/27/2023 2:34:19 AM
*******************************************************************/
//Function Number: 1
init()
{
level.var_1BAB["neutral"]["stand"]["idle"] = %casual_stand_idle;
level.var_1BAB["neutral"]["stand"]["run"] = %unarmed_scared_run;
level.var_1BAB["neutral"]["stand"]["death"] = %exposed_death;
level.var_3B91 = ::animscripts/civilian/civilian_init::func_3B87;
maps\_drone::func_1B95();
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,99 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_escalator.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 4
* Decompile Time: 60 ms
* Timestamp: 10/27/2023 2:35:24 AM
*******************************************************************/
//Function Number: 1
init()
{
common_scripts\utility::flag_init("_escalator_on");
common_scripts\utility::flag_set("_escalator_on");
level.var_1973 = 0.5;
var_00 = getentarray("escalator","targetname");
common_scripts\utility::array_thread(var_00,::func_1974);
}
//Function Number: 2
func_1974()
{
var_00 = self;
while(isdefined(var_00.target))
{
var_00 startusinglessfrequentlighting();
var_00.var_1975 = var_00.origin;
var_00.var_1976 = getent(var_00.target,"targetname");
var_00 = var_00.var_1976;
}
var_00.var_1975 = var_00.origin;
var_00.var_1977 = 1;
var_00.var_1976 = self;
thread escalator_move(self);
}
//Function Number: 3
escalator_move(param_00)
{
var_01 = param_00;
var_02 = var_01.origin;
while(common_scripts\utility::flag("_escalator_on"))
{
var_03 = level.var_1973;
var_04 = var_01.var_1976;
var_01 show();
if(var_04 != param_00)
{
var_01 moveto(var_04.var_1975,var_03);
}
else
{
var_01.origin = var_02;
}
if(var_04 == param_00)
{
var_01 hide();
var_01.var_1975 = var_02;
param_00 = var_01;
wait var_03;
continue;
}
var_01.var_1975 = var_04.var_1975;
var_01 = var_04;
}
var_01 = param_00;
for(;;)
{
var_03 = 2;
var_04 = var_01.var_1976;
var_01 show();
var_01 thread final_move(var_03,var_04);
if(var_04 == param_00)
{
var_01 hide();
var_01.var_1975 = var_02;
}
var_01.var_1975 = var_04.var_1975;
var_01 = var_04;
if(var_01 == param_00)
{
return;
}
}
}
//Function Number: 4
final_move(param_00,param_01)
{
self moveto(param_01.var_1975,param_00,0,param_00);
wait param_00;
self moveto(self.origin,0.05);
}

230
MW3/Xbox/SP/maps/_flare.gsc Normal file
View File

@ -0,0 +1,230 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_flare.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 13
* Decompile Time: 203 ms
* Timestamp: 10/27/2023 2:34:20 AM
*******************************************************************/
//Function Number: 1
main(param_00,param_01)
{
if(!isdefined(level._effect))
{
level._effect = [];
}
level._effect["flare_runner_intro"] = loadfx("misc/flare_start");
level._effect["flare_runner"] = loadfx("misc/flare");
level._effect["flare_runner_fizzout"] = loadfx("misc/flare_end");
maps\_vehicle::build_template("flare",param_00,param_01,"script_vehicle");
maps\_vehicle::build_localinit(::func_269F);
maps\_vehicle::build_life(9999);
}
//Function Number: 2
func_269F()
{
}
//Function Number: 3
func_3B92(param_00,param_01,param_02,param_03)
{
wait param_00;
param_01 = param_01 * 20;
var_04 = [];
for(var_05 = 0;var_05 < param_01;var_05++)
{
var_06 = var_05 / param_01;
level.var_3B93 = var_06;
var_07 = [];
for(var_08 = 0;var_08 < 3;var_08++)
{
var_07[var_08] = param_03[var_08] * var_06 + param_02[var_08] * 1 - var_06;
}
level.sun_color = (var_07[0],var_07[1],var_07[2]);
wait 0.05;
}
}
//Function Number: 4
merge_sunsingledvar(param_00,param_01,param_02,param_03,param_04)
{
setsaveddvar(param_00,param_03);
wait param_01;
param_02 = param_02 * 20;
var_05 = [];
for(var_06 = 0;var_06 < param_02;var_06++)
{
var_07 = var_06 / param_02;
level.var_3B93 = var_07;
var_08 = param_04 * var_07 + param_03 * 1 - var_07;
setsaveddvar(param_00,var_08);
wait 0.05;
}
setsaveddvar(param_00,param_04);
}
//Function Number: 5
func_3B96(param_00,param_01,param_02,param_03)
{
wait param_00;
param_01 = param_01 * 20;
var_04 = [];
for(var_05 = 0;var_05 < param_01;var_05++)
{
var_06 = var_05 / param_01;
level.var_3B93 = var_06;
var_07 = param_03 * var_06 + param_02 * 1 - var_06;
level.var_3B97 = var_07;
wait 0.05;
}
level.var_3B97 = param_03;
}
//Function Number: 6
func_3B98()
{
level endon("stop_combining_sunlight_and_brightness");
wait 0.05;
for(;;)
{
var_00 = level.var_3B97;
if(var_00 > 1)
{
var_00 = var_00 + randomfloat(0.2);
}
var_01 = level.sun_color * var_00;
setsunlight(var_01[0],var_01[1],var_01[2]);
wait 0.05;
}
}
//Function Number: 7
flare_path()
{
thread maps\_vehicle::func_1B44(self);
common_scripts\utility::flag_wait("flare_stop_setting_sundir");
self delete();
}
//Function Number: 8
flare_initial_fx()
{
var_00 = spawn("script_model",(0,0,0));
var_00 setmodel("tag_origin");
var_00 linkto(self,"tag_origin",(0,0,0),(0,0,0));
playfxontag(level._effect["flare_runner_intro"],var_00,"tag_origin");
self waittillmatch("flare_intro_node","noteworthy");
var_00 delete();
}
//Function Number: 9
flare_explodes()
{
common_scripts\utility::flag_set("flare_start_setting_sundir");
level.var_3B97 = 1;
level.red_suncolor = (0.8,0.4,0.4);
level.original_suncolor = getmapsunlight();
level.sun_color = level.original_suncolor;
thread merge_sunsingledvar("sm_sunSampleSizeNear",0,0.25,0.25,1);
thread func_3B98();
thread func_3B92(0,0.25,level.original_suncolor,level.red_suncolor);
thread func_3B96(0,0.25,1,3);
var_00 = spawn("script_model",(0,0,0));
var_00 setmodel("tag_origin");
var_00 linkto(self,"tag_origin",(0,0,0),(0,0,0));
playfxontag(level._effect["flare_runner"],var_00,"tag_origin");
self waittillmatch("flare_fade_node","noteworthy");
var_00 delete();
}
//Function Number: 10
func_3B9E()
{
var_00 = spawn("script_model",(0,0,0));
var_00 setmodel("tag_origin");
var_00 linkto(self,"tag_origin",(0,0,0),(0,0,0));
playfxontag(level._effect["flare_runner_fizzout"],var_00,"tag_origin");
thread merge_sunsingledvar("sm_sunSampleSizeNear",0,1,1,0.25);
thread func_3B96(0,1,3,0);
thread func_3B92(0,1,level.red_suncolor,level.original_suncolor);
thread func_3B96(1,1,0,1);
var_00 delete();
wait 1;
common_scripts\utility::flag_set("flare_stop_setting_sundir");
resetsundirection();
wait 1;
level notify("stop_combining_sunlight_and_brightness");
waittillframeend;
resetsunlight();
common_scripts\utility::flag_set("flare_complete");
}
//Function Number: 11
func_23DC()
{
flare_initial_fx();
flare_explodes();
func_3B9E();
}
//Function Number: 12
flag_flare(param_00)
{
if(!isdefined(level.flag[param_00]))
{
common_scripts\utility::flag_init(param_00);
}
}
//Function Number: 13
func_3BA0(param_00)
{
var_01 = maps\_vehicle::spawn_vehicle_from_targetname(param_00);
flag_flare("flare_in_use");
flag_flare("flare_complete");
flag_flare("flare_stop_setting_sundir");
flag_flare("flare_start_setting_sundir");
common_scripts\utility::flag_waitopen("flare_in_use");
common_scripts\utility::flag_set("flare_in_use");
resetsunlight();
resetsundirection();
var_01 thread flare_path();
var_01 thread func_23DC();
var_02 = getmapsundirection();
var_03 = var_02;
var_04 = var_03 * -100;
common_scripts\utility::flag_wait("flare_start_setting_sundir");
var_05 = getent(var_01.script_linkto,"script_linkname").origin;
var_03 = vectortoangles(var_01.origin - var_05);
var_06 = anglestoforward(var_03);
for(;;)
{
wait 0.05;
if(common_scripts\utility::flag("flare_stop_setting_sundir"))
{
break;
}
var_03 = vectortoangles(var_01.origin - var_05);
var_07 = anglestoforward(var_03);
lerpsundirection(var_06,var_07,0.05);
var_06 = var_07;
}
common_scripts\utility::flag_wait("flare_complete");
waittillframeend;
common_scripts\utility::flag_clear("flare_complete");
common_scripts\utility::flag_clear("flare_stop_setting_sundir");
common_scripts\utility::flag_clear("flare_start_setting_sundir");
resetsunlight();
resetsundirection();
common_scripts\utility::flag_clear("flare_in_use");
}

120
MW3/Xbox/SP/maps/_float.gsc Normal file
View File

@ -0,0 +1,120 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_float.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 5
* Decompile Time: 78 ms
* Timestamp: 10/27/2023 2:34:20 AM
*******************************************************************/
//Function Number: 1
main(param_00,param_01,param_02,param_03,param_04)
{
var_05 = getentarray("script_floater","targetname");
if(!var_05.size)
{
return;
}
var_06 = 10;
var_07 = 0.5;
var_08 = 50;
var_09 = (0,0,0);
var_0A = 10;
if(isdefined(param_00))
{
var_06 = param_00;
}
if(isdefined(param_01))
{
var_07 = param_01;
}
if(isdefined(param_02))
{
var_08 = param_02;
}
if(isdefined(param_04))
{
var_09 = param_04;
}
if(isdefined(param_03))
{
var_0A = param_03;
}
for(var_0B = 0;var_0B < var_05.size;var_0B++)
{
var_05[var_0B] thread func_3BA1(var_06,var_07,var_08,var_0A,var_09);
}
}
//Function Number: 2
func_3BA1(param_00,param_01,param_02,param_03,param_04)
{
self.range = param_00;
self.time = 1 / param_01;
self.var_3BA2 = self.time * 0.25;
var_05 = self getorigin();
var_06 = 360 / param_02;
var_07 = distance(var_05,param_04);
var_08 = var_07 * var_06;
var_09 = sin(var_08);
if(cos(var_08) < 0)
{
self.range = -1 * self.range;
}
var_0A = spawn("script_origin",var_05);
self linkto(var_0A);
var_0B = vectortoangles(var_05 - param_04);
self.var_3BA3 = var_0A.angles;
var_0A.angles = var_0A.angles + (param_03,param_03 * 0.25,var_0B[2]);
self.var_3BA4 = var_0A.angles;
thread func_3BA6(var_09,var_0A);
thread func_3BA5(var_09,var_0A);
}
//Function Number: 3
func_3BA5(param_00,param_01)
{
self endon("death");
self endon("stop_float_script");
wait func_3BA7(self.time * param_00);
for(;;)
{
self.var_3BA4 = self.var_3BA4 * -1;
param_01 rotateto(self.var_3BA4,self.time,self.var_3BA2,self.var_3BA2);
param_01 waittill("rotatedone");
}
}
//Function Number: 4
func_3BA6(param_00,param_01)
{
self endon("death");
self endon("stop_float_script");
wait func_3BA7(self.time * param_00);
param_01 movez(self.range * 0.5,self.time * 0.5,self.var_3BA2,self.var_3BA2);
for(;;)
{
param_01 waittill("movedone");
self.range = -1 * self.range;
param_01 movez(self.range,self.time,self.var_3BA2,self.var_3BA2);
}
}
//Function Number: 5
func_3BA7(param_00)
{
if(param_00 < 0)
{
return -1 * param_00;
}
return param_00;
}

View File

@ -0,0 +1,444 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_friendlyfire.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 15
* Decompile Time: 251 ms
* Timestamp: 10/27/2023 2:35:26 AM
*******************************************************************/
//Function Number: 1
main()
{
level.friendlyfire["min_participation"] = -200;
level.friendlyfire["max_participation"] = 1000;
level.friendlyfire["enemy_kill_points"] = 250;
level.friendlyfire["friend_kill_points"] = -650;
level.friendlyfire["point_loss_interval"] = 1.25;
level.player.participation = 0;
level.friendlyfiredisabled = 0;
level.friendlyfiredisabledfordestructible = 0;
setdvarifuninitialized("friendlyfire_dev_disabled","0");
common_scripts\utility::flag_init("friendly_fire_warning");
thread debug_friendlyfire();
thread participation_point_flattenovertime();
}
//Function Number: 2
debug_friendlyfire()
{
}
//Function Number: 3
friendly_fire_think(param_00)
{
if(!isdefined(param_00))
{
return;
}
if(!isdefined(param_00.team))
{
param_00.team = "allies";
}
if(isdefined(level.no_friendly_fire_penalty))
{
return;
}
level endon("mission failed");
level thread func_1B91(param_00);
level thread notifydamagenotdone(param_00);
level thread notifydeath(param_00);
for(;;)
{
if(!isdefined(param_00))
{
return;
}
if(param_00.health <= 0)
{
return;
}
var_01 = undefined;
var_02 = undefined;
var_03 = undefined;
var_04 = undefined;
var_05 = undefined;
var_06 = undefined;
var_07 = undefined;
param_00 waittill("friendlyfire_notify",var_01,var_02,var_03,var_04,var_05,var_06);
if(!isdefined(param_00))
{
return;
}
if(!isdefined(var_02))
{
continue;
}
var_08 = 0;
if(!isdefined(var_06))
{
var_06 = param_00.damageweapon;
}
if(isdefined(level.var_80E1))
{
if(isdefined(var_02.damageowner))
{
var_07 = 1;
var_02 = var_02.damageowner;
}
}
if(isplayer(var_02))
{
var_08 = 1;
if(isdefined(var_06) && var_06 == "none")
{
var_08 = 0;
}
if(var_02 isusingturret())
{
var_08 = 1;
}
if(isdefined(var_07))
{
var_08 = 1;
}
}
else if(isdefined(var_02.code_classname) && var_02.code_classname == "script_vehicle")
{
var_09 = var_02 getvehicleowner();
if(isdefined(var_09) && isplayer(var_09))
{
var_08 = 1;
}
}
if(!var_08)
{
continue;
}
if(!isdefined(param_00.team))
{
continue;
}
var_0A = param_00.team == level.player.team;
var_0B = undefined;
if(level.script == "airport")
{
var_0B = 0;
}
else if(isdefined(param_00.type) && param_00.type == "civilian")
{
var_0B = 1;
}
else
{
var_0B = issubstr(param_00.classname,"civilian");
}
var_0C = var_01 == -1;
if(!var_0A && !var_0B)
{
if(var_0C)
{
level.player.participation = level.player.participation + level.friendlyfire["enemy_kill_points"];
participation_point_cap();
return;
}
continue;
}
if(isdefined(param_00.no_friendly_fire_penalty))
{
continue;
}
if(var_05 == "MOD_PROJECTILE_SPLASH" && isdefined(level.no_friendly_fire_splash_damage))
{
continue;
}
if(isdefined(var_06) && var_06 == "claymore")
{
continue;
}
if(var_0C)
{
if(isdefined(param_00.var_1B84))
{
level.player.participation = level.player.participation + param_00.var_1B84;
}
else
{
level.player.participation = level.player.participation + level.friendlyfire["friend_kill_points"];
}
}
else
{
level.player.participation = level.player.participation - var_01;
}
participation_point_cap();
if(func_1B88(param_00,var_05) && func_1B89())
{
if(var_0C)
{
return;
}
else
{
continue;
}
}
if(isdefined(level.var_1B85))
{
[[ level.var_1B85 ]](param_00,var_01,var_02,var_03,var_04,var_05,var_06);
continue;
}
friendly_fire_checkpoints(var_0B);
}
}
//Function Number: 4
friendly_fire_checkpoints(param_00)
{
if(isdefined(level.failonfriendlyfire) && level.failonfriendlyfire)
{
level thread func_1B8E(param_00);
return;
}
var_01 = level.friendlyfiredisabledfordestructible;
if(isdefined(level.var_80E1) && param_00)
{
var_01 = 0;
}
if(var_01)
{
return;
}
if(level.friendlyfiredisabled == 1)
{
return;
}
if(level.player.participation <= level.friendlyfire["min_participation"])
{
level thread func_1B8E(param_00);
}
}
//Function Number: 5
func_1B88(param_00,param_01)
{
if(!isdefined(param_00))
{
return 0;
}
var_02 = 0;
if(isdefined(param_00.damageweapon) && param_00.damageweapon == "none")
{
var_02 = 1;
}
if(isdefined(param_01) && param_01 == "MOD_GRENADE_SPLASH")
{
var_02 = 1;
}
return var_02;
}
//Function Number: 6
func_1B89()
{
var_00 = gettime();
if(var_00 < 4500)
{
return 1;
}
else if(var_00 - level.var_17C9 < 4500)
{
return 1;
}
return 0;
}
//Function Number: 7
participation_point_cap()
{
if(level.player.participation > level.friendlyfire["max_participation"])
{
level.player.participation = level.friendlyfire["max_participation"];
}
if(level.player.participation < level.friendlyfire["min_participation"])
{
level.player.participation = level.friendlyfire["min_participation"];
}
}
//Function Number: 8
participation_point_flattenovertime()
{
level endon("mission failed");
for(;;)
{
if(level.player.participation > 0)
{
level.player.participation--;
}
else if(level.player.participation < 0)
{
level.player.participation++;
}
wait level.friendlyfire["point_loss_interval"];
}
}
//Function Number: 9
turnbackon()
{
level.friendlyfiredisabled = 0;
}
//Function Number: 10
func_1B8D()
{
level.friendlyfiredisabled = 1;
}
//Function Number: 11
func_1B8E(param_00)
{
if(!isdefined(param_00))
{
param_00 = 0;
}
if(level.script == "airport")
{
if(param_00)
{
return;
}
common_scripts\utility::flag_set("friendly_fire_warning");
return;
}
if(getdvar("friendlyfire_dev_disabled") == "1")
{
return;
}
level.player endon("death");
if(!isalive(level.player))
{
return;
}
level endon("mine death");
level notify("mission failed");
level notify("friendlyfire_mission_fail");
waittillframeend;
setsaveddvar("hud_missionFailed",1);
if(isdefined(level.player.var_1A92))
{
return;
}
if(param_00)
{
setdvar("ui_deadquote",&"SCRIPT_MISSIONFAIL_CIVILIAN_KILLED");
}
else if(isdefined(level.custom_friendly_fire_message))
{
setdvar("ui_deadquote",level.custom_friendly_fire_message);
}
else if(level.campaign == "british")
{
setdvar("ui_deadquote",&"SCRIPT_MISSIONFAIL_KILLTEAM_BRITISH");
}
else if(level.campaign == "russian")
{
setdvar("ui_deadquote",&"SCRIPT_MISSIONFAIL_KILLTEAM_RUSSIAN");
}
else
{
setdvar("ui_deadquote",&"SCRIPT_MISSIONFAIL_KILLTEAM_AMERICAN");
}
if(isdefined(level.var_1B90))
{
thread maps\_load::special_death_indicator_hudelement(level.var_1B90,64,64,0);
}
reconspatialevent(level.player.origin,"script_friendlyfire: civilian %d",param_00);
maps\_utility::func_13EE();
}
//Function Number: 12
func_1B91(param_00)
{
level endon("mission failed");
param_00 endon("death");
for(;;)
{
var_01 = undefined;
var_02 = undefined;
var_03 = undefined;
var_04 = undefined;
var_05 = undefined;
var_06 = undefined;
var_07 = undefined;
var_08 = undefined;
var_09 = undefined;
var_0A = undefined;
param_00 waittill("damage",var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,var_0A);
param_00 notify("friendlyfire_notify",var_01,var_02,var_03,var_04,var_05,var_0A);
}
}
//Function Number: 13
notifydamagenotdone(param_00)
{
level endon("mission failed");
param_00 waittill("damage_notdone",var_01,var_02,var_03,var_04,var_05);
param_00 notify("friendlyfire_notify",-1,var_02,undefined,undefined,var_05);
}
//Function Number: 14
notifydeath(param_00)
{
level endon("mission failed");
param_00 waittill("death",var_01,var_02,var_03);
param_00 notify("friendlyfire_notify",-1,var_01,undefined,undefined,var_02,var_03);
}
//Function Number: 15
detectfriendlyfireonentity(param_00)
{
}

223
MW3/Xbox/SP/maps/_fx.gsc Normal file
View File

@ -0,0 +1,223 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_fx.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 10
* Decompile Time: 159 ms
* Timestamp: 10/27/2023 2:35:35 AM
*******************************************************************/
//Function Number: 1
script_print_fx()
{
if(!isdefined(self.script_fxid) || !isdefined(self.script_fxcommand) || !isdefined(self.script_delay))
{
self delete();
return;
}
if(isdefined(self.target))
{
var_00 = getent(self.target).origin;
}
else
{
var_00 = "undefined";
}
if(self.script_fxcommand == "OneShotfx")
{
}
if(self.script_fxcommand == "loopfx")
{
}
if(self.script_fxcommand == "loopsound")
{
}
}
//Function Number: 2
script_playfx(param_00,param_01,param_02)
{
if(!param_00)
{
return;
}
if(isdefined(param_02))
{
playfx(param_00,param_01,param_02);
return;
}
playfx(param_00,param_01);
}
//Function Number: 3
script_playfxontag(param_00,param_01,param_02)
{
if(!param_00)
{
return;
}
playfxontag(param_00,param_01,param_02);
}
//Function Number: 4
grenadeexplosionfx(param_00)
{
playfx(level._effect["mechanical explosion"],param_00);
earthquake(0.15,0.5,param_00,250);
}
//Function Number: 5
soundfx(param_00,param_01,param_02)
{
var_03 = spawn("script_origin",(0,0,0));
var_03.origin = param_01;
var_03 playloopsound(param_00);
if(isdefined(param_02))
{
var_03 thread soundfxdelete(param_02);
}
}
//Function Number: 6
soundfxdelete(param_00)
{
level waittill(param_00);
self delete();
}
//Function Number: 7
rainfx(param_00,param_01,param_02)
{
var_03 = spawn("script_origin",(0,0,0));
var_03.origin = param_02;
var_03 thread rainloop(param_00,param_01);
}
//Function Number: 8
rainloop(param_00,param_01)
{
self endon("death");
var_02 = spawn("sound_blend",(0,0,0));
var_02.origin = self.origin;
thread blenddelete(var_02);
var_03 = spawn("sound_blend",(0,0,0));
var_03.origin = self.origin;
thread blenddelete(var_03);
var_02 setsoundblend(param_01 + "_null",param_01,0);
var_03 setsoundblend(param_00 + "_null",param_00,1);
var_04 = "hard";
var_05 = undefined;
for(;;)
{
level waittill("rain_change",var_06,var_05);
var_05 = var_05 * 20;
if(var_06 == "hard")
{
if(var_04 == "none")
{
var_05 = var_05 * 0.5;
for(var_07 = 0;var_07 < var_05;var_07++)
{
var_02 setsoundblend(param_01 + "_null",param_01,var_07 / var_05);
wait 0.05;
}
var_04 = "light";
}
if(var_04 == "light")
{
for(var_07 = 0;var_07 < var_05;var_07++)
{
var_02 setsoundblend(param_01 + "_null",param_01,1 - var_07 / var_05);
var_03 setsoundblend(param_00 + "_null",param_00,var_07 / var_05);
wait 0.05;
}
}
}
if(var_06 == "none")
{
if(var_04 == "hard")
{
var_05 = var_05 * 0.5;
for(var_07 = 0;var_07 < var_05;var_07++)
{
var_02 setsoundblend(param_01 + "_null",param_01,var_07 / var_05);
var_03 setsoundblend(param_00 + "_null",param_00,1 - var_07 / var_05);
wait 0.05;
}
var_04 = "light";
}
if(var_04 == "light")
{
for(var_07 = 0;var_07 < var_05;var_07++)
{
var_02 setsoundblend(param_01 + "_null",param_01,1 - var_07 / var_05);
wait 0.05;
}
}
}
if(var_06 == "light")
{
if(var_04 == "none")
{
for(var_07 = 0;var_07 < var_05;var_07++)
{
var_02 setsoundblend(param_01 + "_null",param_01,var_07 / var_05);
wait 0.05;
}
}
if(var_04 == "hard")
{
for(var_07 = 0;var_07 < var_05;var_07++)
{
var_02 setsoundblend(param_01 + "_null",param_01,var_07 / var_05);
var_03 setsoundblend(param_00 + "_null",param_00,1 - var_07 / var_05);
wait 0.05;
}
}
}
var_04 = var_06;
}
}
//Function Number: 9
blenddelete(param_00)
{
self waittill("death");
param_00 delete();
}
//Function Number: 10
watersheeting(param_00)
{
var_01 = 3;
if(isdefined(param_00.script_duration))
{
var_01 = param_00.script_duration;
}
for(;;)
{
param_00 waittill("trigger",var_02);
if(isplayer(var_02))
{
var_02 setwatersheeting(1,var_01);
wait var_01 * 0.2;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,119 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_global_fx.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 3
* Decompile Time: 46 ms
* Timestamp: 10/27/2023 2:34:33 AM
*******************************************************************/
//Function Number: 1
main()
{
if(!isdefined(level.global_fx))
{
level.global_fx = [];
}
level._global_fx_ents = [];
var_00 = randomfloatrange(-20,-15);
global_fx("barrel_fireFX_origin","global_barrel_fire","fire/firelp_barrel_pm",var_00,"fire_barrel_small");
global_fx("ch_streetlight_02_FX_origin","ch_streetlight_02_FX","misc/lighthaze",var_00);
global_fx("me_streetlight_01_FX_origin","me_streetlight_01_FX","misc/lighthaze_bog_a",var_00);
global_fx("ch_street_light_01_on","lamp_glow_FX","misc/lighthaze",var_00);
global_fx("com_wall_streetlamp_on","com_wall_streetlamp_on_FX","misc/light_glow_white_dim",var_00);
global_fx("lamp_post_globe_on","lamp_glow_FX","misc/light_glow_white",var_00);
global_fx("highway_lamp_post","ch_streetlight_02_FX","misc/lighthaze_villassault",var_00);
global_fx("cs_cargoship_spotlight_on_FX_origin","cs_cargoship_spotlight_on_FX","misc/lighthaze",var_00);
global_fx("me_dumpster_fire_FX_origin","me_dumpster_fire_FX","fire/firelp_med_pm",var_00,"fire_dumpster_medium");
global_fx("com_tires_burning01_FX_origin","com_tires_burning01_FX","fire/tire_fire_med",var_00);
global_fx("icbm_powerlinetower_FX_origin","icbm_powerlinetower_FX","misc/power_tower_light_red_blink",var_00);
global_fx("icbm_mainframe_FX_origin","icbm_mainframe_FX","props/icbm_mainframe_lightblink",var_00);
global_fx("light_pulse_red_FX_origin","light_pulse_red_FX","misc/light_glow_red_generic_pulse",-2);
global_fx("light_pulse_red_FX_origin","light_pulse_red_FX","misc/light_glow_red_generic_pulse",-2);
global_fx("light_pulse_orange_FX_origin","light_pulse_orange_FX","misc/light_glow_orange_generic_pulse",-2);
global_fx("light_red_blink_FX_origin","light_red_blink","misc/power_tower_light_red_blink",-2);
global_fx("lighthaze_oilrig_FX_origin","lighthaze_oilrig","misc/lighthaze_oilrig",var_00);
global_fx("lighthaze_white_FX_origin","lighthaze_white","misc/lighthaze_white",var_00);
global_fx("light_glow_walllight_white_FX_origin","light_glow_walllight_white","misc/light_glow_walllight_white",var_00);
global_fx("fluorescent_glow_FX_origin","fluorescent_glow","misc/fluorescent_glow",var_00);
global_fx("light_glow_industrial_FX_origin","light_glow_industrial","misc/light_glow_industrial",var_00);
global_fx("light_red_steady_FX_origin","light_red_steady","misc/tower_light_red_steady",-2);
global_fx("light_blue_steady_FX_origin","light_blue_steady","misc/tower_light_blue_steady",-2);
global_fx("light_orange_steady_FX_origin","light_orange_steady","misc/tower_light_orange_steady",-2);
global_fx("glow_stick_pile_FX_origin","glow_stick_pile","misc/glow_stick_glow_pile",-2);
global_fx("highrise_blinky_tower","highrise_blinky_tower_FX","misc/power_tower_light_red_blink_large",var_00,undefined,1.5);
global_fx("flare_ambient_FX_origin","flare_ambient_FX","misc/flare_ambient",var_00,"emt_road_flare_burn",1.5);
global_fx("light_glow_white_bulb_FX_origin","light_glow_white_bulb_FX","misc/light_glow_white_bulb",var_00);
global_fx("light_glow_white_lamp_FX_origin","light_glow_white_lamp_FX","misc/light_glow_white_lamp",var_00);
}
//Function Number: 2
global_fx(param_00,param_01,param_02,param_03,param_04,param_05)
{
level.global_fx[param_00] = param_01;
var_06 = maps\_utility::getstructarray_delete(param_00,"targetname");
if(!isdefined(var_06))
{
return;
}
if(var_06.size <= 0)
{
return;
}
for(var_07 = 0;var_07 < var_06.size;var_07++)
{
var_08 = var_06[var_07] func_1798(param_01,param_02,param_03,param_04,param_05);
if(!isdefined(var_06[var_07].script_noteworthy))
{
continue;
}
var_09 = var_06[var_07].script_noteworthy;
if(!isdefined(level._global_fx_ents[var_09]))
{
level._global_fx_ents[var_09] = [];
}
level._global_fx_ents[var_09][level._global_fx_ents[var_09].size] = var_08;
}
}
//Function Number: 3
func_1798(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(level._effect))
{
level._effect = [];
}
if(!isdefined(level._effect[param_00]))
{
level._effect[param_00] = loadfx(param_01);
}
if(isdefined(param_04))
{
param_02 = param_02 + randomfloat(param_04);
}
if(!isdefined(self.angles))
{
self.angles = (0,0,0);
}
var_05 = common_scripts\utility::createoneshoteffect(param_00);
var_05.v["origin"] = self.origin;
var_05.v["angles"] = self.angles;
var_05.v["fxid"] = param_00;
var_05.v["delay"] = param_02;
if(isdefined(param_03))
{
var_05.v["soundalias"] = param_03;
}
return var_05;
}

View File

@ -0,0 +1,167 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_heli_ride.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 5
* Decompile Time: 73 ms
* Timestamp: 10/27/2023 2:34:21 AM
*******************************************************************/
//Function Number: 1
func_3BA8(param_00,param_01)
{
maps\_vehicle::func_2594();
maps\_vehicle_aianim::getout_rigspawn(maps\_vehicle_aianim::getanimatemodel(),3);
if(!isdefined(param_01))
{
param_01 = level.players;
}
foreach(var_03 in param_01)
{
thread func_3BA9(var_03,3);
}
var_05 = 95;
if(isdefined(param_00.speed))
{
var_05 = param_00.speed;
}
self setairresistance(30);
self vehicle_setspeed(var_05,40,level.var_2475);
maps\_vehicle::vehicle_paths(param_00);
}
//Function Number: 2
func_3BA9(param_00,param_01,param_02)
{
param_00 thread func_3BAB(self);
if(getdvar("fastrope_arms") == "")
{
setdvar("fastrope_arms","0");
}
if(!isdefined(param_02))
{
param_02 = 0;
}
var_03 = undefined;
for(var_04 = 0;var_04 < self.riders.size;var_04++)
{
if(self.riders[var_04].var_1DD4 == param_01)
{
var_03 = self.riders[var_04];
var_03.drone_delete_on_unload = 1;
var_03.playerpiggyback = 1;
break;
}
}
var_05 = maps\_vehicle_aianim::anim_pos(self,param_01);
var_03 notify("newanim");
var_03 detachall();
var_03 setmodel("fastrope_arms");
var_03 useanimtree(var_05.player_animtree);
thread maps\_vehicle_aianim::func_20CB(var_03,param_01);
wait 0.1;
if(isdefined(level.var_3BAA))
{
param_00 playerlinkto(var_03,"tag_player",0.35,120,28,30,30,0);
}
else
{
param_00 playerlinkto(var_03,"tag_player",0.35,60,28,30,30,0);
}
param_00 freezecontrols(0);
var_03 hide();
var_06 = getanimlength(var_05.var_20FE);
var_06 = var_06 - param_02;
self waittill("unloading");
if(getdvar("fastrope_arms") != "0")
{
var_03 show();
}
param_00 disableweapons();
wait var_06;
param_00 unlink();
param_00 enableweapons();
setsaveddvar("hud_drawhud","1");
level notify("stop_draw_hud_on_death");
}
//Function Number: 3
func_3BAB(param_00)
{
setsaveddvar("g_friendlyNameDist",0);
setsaveddvar("g_friendlyfireDist",0);
maps\_utility::hide_player_model();
self allowsprint(0);
self allowprone(0);
self allowstand(0);
self enableinvulnerability();
self.ignoreme = 1;
wait 0.05;
self setplayerangles((0,35,0));
param_00 waittill("unloading");
self notify("stop_quake");
wait 6;
maps\_utility::autosave_by_name("on_the_ground");
self allowprone(0);
self allowstand(1);
self allowcrouch(0);
wait 0.05;
self allowprone(1);
self allowcrouch(1);
self disableinvulnerability();
self.ignoreme = 0;
self allowsprint(1);
wait 4;
maps\_utility::show_player_model();
if(self == level.player)
{
for(var_01 = 0;var_01 < 24;var_01++)
{
self setorigin(self.origin + (2,0,0));
wait 0.05;
}
}
setsaveddvar("g_friendlyNameDist",15000);
setsaveddvar("g_friendlyfireDist",128);
}
//Function Number: 4
player_heli_ropeanimoverride_idle(param_00,param_01,param_02)
{
self endon("unloading");
maps\_vehicle_aianim::func_2120(param_00,param_01,param_02);
}
//Function Number: 5
func_3BAD(param_00,param_01)
{
var_02 = "heli_ride_in";
var_03 = getentarray(var_02,"targetname");
if(!var_03.size)
{
var_03 = common_scripts\utility::getstructarray("heli_ride_in","targetname");
if(!var_03.size)
{
}
}
var_03 = var_03[0];
if(isdefined(param_01))
{
maps\_vehicle::func_2677(level.gag_heliride_spawner.var_208D,param_01);
}
var_04 = maps\_vehicle::vehicle_spawn(level.gag_heliride_spawner);
var_04 thread func_3BA8(var_03,param_00);
return var_04;
}

View File

@ -0,0 +1,287 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_helicopter_ai.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 10
* Decompile Time: 152 ms
* Timestamp: 10/27/2023 2:35:45 AM
*******************************************************************/
//Function Number: 1
func_23C7(param_00)
{
param_00 endon("death");
while(param_00.health > 0)
{
param_00 waittill("missile_lock",var_01);
var_02 = evasive_createmaneuvers(param_00,"random");
func_23C9(param_00,var_02);
wait 0.05;
}
}
//Function Number: 2
evasive_createmaneuvers(param_00,param_01)
{
switch(param_01)
{
case "strafe_left_right":
param_00 evasive_addpoint(3000,-1500,500,"average");
param_00 evasive_addpoint(6000,3000,-700,"average");
param_00 evasive_addpoint(3000,-1500,200,"average");
break;
case "strafe_right_left":
param_00 evasive_addpoint(3000,1500,500,"average");
param_00 evasive_addpoint(6000,-3000,-700,"average");
param_00 evasive_addpoint(3000,1500,200,"average");
break;
case "360_clockwise":
param_00 evasive_addpoint(1500,1500,200,"none");
param_00 evasive_addpoint(0,1500,200,"none");
param_00 evasive_addpoint(-1500,1500,200,"none");
param_00 evasive_addpoint(-1500,0,0,"none");
param_00 evasive_addpoint(-1000,-1000,-200,"none");
param_00 evasive_addpoint(0,-1000,-200,"none");
param_00 evasive_addpoint(1000,-1000,-200,"none");
break;
case "360_counter_clockwise":
param_00 evasive_addpoint(1500,-1500,200,"none");
param_00 evasive_addpoint(0,-1500,200,"none");
param_00 evasive_addpoint(-1500,-1500,200,"none");
param_00 evasive_addpoint(-1500,0,0,"none");
param_00 evasive_addpoint(-1000,1000,-200,"none");
param_00 evasive_addpoint(0,1000,-200,"none");
param_00 evasive_addpoint(1000,1000,-200,"none");
break;
case "random":
var_02 = [];
return evasive_createmaneuvers(param_01,var_41[randomint(var_41.size)]);
var_41[3]
"360_counter_clockwise"
var_41[2]
"360_clockwise"
var_41[1]
"strafe_right_left"
var_41[0]
"strafe_left_right"
break;
}
var_03 = func_23CE(var_02);
return var_03;
}
//Function Number: 3
func_23C9(param_00,param_01)
{
param_00 notify("taking_evasive_actions");
param_00 endon("taking_evasive_actions");
param_00 endon("death");
param_00 notify("evasive_action_done");
thread evasive_endmaneuvers(param_00);
if(getdvar("cobrapilot_debug") == "1")
{
param_00 evasive_drawpoints(param_01);
}
param_00 setneargoalnotifydist(1500);
param_00 vehicle_setspeed(100,30,30);
var_02 = param_00.angles[1];
for(var_03 = 1;var_03 < param_01.size;var_03++)
{
if(isdefined(param_01[var_03 + 1]))
{
var_04 = vectortoangles(param_01[var_03 + 1]["pos"] - param_01[var_03]["pos"]);
}
else
{
var_04 = (0,var_02,0);
}
var_05 = var_04[1];
if(param_01[var_03]["goalYawMethod"] == "average")
{
var_05 = var_04[1] + var_02 / 2;
}
else if(param_01[var_03]["goalYawMethod"] == "forward")
{
var_05 = param_00.angles[1];
}
if(getdvar("cobrapilot_debug") == "1")
{
thread maps\_utility::draw_line_until_notify(param_01[var_03]["pos"],param_01[var_03]["pos"] + anglestoforward((0,var_05,0)) * 250,1,1,0.2,param_00,"evasive_action_done");
}
param_00 settargetyaw(var_05);
param_00 thread maps\_vehicle::func_23CA(param_01[var_03]["pos"],0);
param_00 waittill("near_goal");
}
param_00 notify("evasive_action_done");
param_00 thread maps\_utility::vehicle_resumepath();
}
//Function Number: 4
evasive_endmaneuvers(param_00)
{
param_00 notify("end_maneuvers");
param_00 endon("end_maneuvers");
param_00 endon("evasive_action_done");
param_00 endon("death");
param_00 waittill("missile_lock_ended");
param_00 thread maps\_utility::vehicle_resumepath();
}
//Function Number: 5
evasive_addpoint(param_00,param_01,param_02,param_03)
{
if(!isdefined(self.evasive_points))
{
self.evasive_points = [];
self.evasive_points[0]["pos"] = self.origin;
self.evasive_points[0]["ang"] = (0,self.angles[1],0);
}
var_04 = self.evasive_points.size;
if(!isdefined(param_03))
{
param_03 = "none";
}
if(!isdefined(param_02))
{
param_02 = 0;
}
self.evasive_points[var_04]["forward"] = param_00;
self.evasive_points[var_04]["side"] = param_01;
self.evasive_points[var_04]["up"] = param_02;
var_05 = anglestoforward(self.evasive_points[0]["ang"]);
var_06 = anglestoright(self.evasive_points[0]["ang"]);
self.evasive_points[var_04]["pos"] = self.evasive_points[var_04 - 1]["pos"] + var_05 * self.evasive_points[var_04]["forward"] + var_06 * self.evasive_points[var_04]["side"] + (0,0,param_02);
self.evasive_points[var_04]["goalYawMethod"] = param_03;
}
//Function Number: 6
func_23CE(param_00)
{
var_01 = param_00.evasive_points;
param_00.evasive_points = undefined;
return var_01;
}
//Function Number: 7
evasive_drawpoints(param_00)
{
for(var_01 = 1;var_01 < param_00.size;var_01++)
{
thread maps\_utility::draw_line_until_notify(param_00[var_01 - 1]["pos"],param_00[var_01]["pos"],1,0.2,0.2,self,"evasive_action_done");
}
}
//Function Number: 8
func_23D0(param_00)
{
param_00 endon("death");
level.var_23D1 endon("death");
var_01 = 2200;
var_02 = 1500;
var_03 = 0;
var_04 = 1;
var_05 = 1.2;
var_06 = 50;
var_07 = 60;
var_08 = 2000;
var_09 = getplayerhelispeed();
var_0A = 0;
var_0B = gettime();
var_0C = wingman_getgoalpos(var_01,var_02,var_03);
param_00 vehicle_setspeed(30,20,20);
param_00 settargetyaw(level.var_23D1.angles[1]);
param_00 setvehgoalpos(var_0C,1);
for(;;)
{
var_0C = wingman_getgoalpos(var_01,var_02,var_03);
if(getdvar("cobrapilot_debug") == "1")
{
thread common_scripts\utility::draw_line_for_time(level.var_23D1.origin,var_0C,0,1,0,var_04);
thread common_scripts\utility::draw_line_for_time(level.var_23D1.origin,param_00.origin,0,0,1,var_04);
thread common_scripts\utility::draw_line_for_time(param_00.origin,var_0C,1,1,0,var_04);
}
var_0D = gettime();
if(var_0D >= var_0B + var_08)
{
var_0B = var_0D;
var_0A = var_09;
var_09 = getplayerhelispeed();
}
var_0E = 0;
var_0F = 0;
if(var_0A > 20)
{
var_0F = var_0A;
var_0E = 1;
}
else if(var_0A <= 20 && getplayerhelispeed() > 20)
{
var_0F = getplayerhelispeed();
var_0E = 1;
}
if(var_0E && var_0F > 0)
{
var_0F = var_0F * var_05;
var_10 = var_06;
var_11 = var_07;
if(var_10 >= var_0F / 2)
{
var_10 = var_0F / 2;
}
if(var_11 >= var_0F / 2)
{
var_11 = var_0F / 2;
}
param_00 vehicle_setspeed(var_0F,var_10,var_11);
param_00 settargetyaw(level.var_23D1.angles[1]);
var_12 = 0;
if(getplayerhelispeed() <= 30)
{
var_12 = 1;
}
if(getdvar("cobrapilot_debug") == "1")
{
iprintln("wingman speed: " + var_0F + " : " + var_12);
}
param_00 setvehgoalpos(var_0C,var_12);
}
wait var_04;
}
}
//Function Number: 9
wingman_getgoalpos(param_00,param_01,param_02)
{
var_03 = anglestoforward(common_scripts\utility::flat_angle(level.var_23D1.angles));
var_04 = anglestoright(common_scripts\utility::flat_angle(level.var_23D1.angles));
var_05 = level.var_23D1.origin + var_03 * param_00 + var_04 * param_01 + (0,0,param_02);
return var_05;
}
//Function Number: 10
getplayerhelispeed()
{
return level.var_23D1 vehicle_getspeed();
}

View File

@ -0,0 +1,785 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_helicopter_globals.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 15
* Decompile Time: 252 ms
* Timestamp: 10/27/2023 2:35:46 AM
*******************************************************************/
//Function Number: 1
func_23D4()
{
if(!isdefined(self.vehicletype))
{
return;
}
var_00 = 0;
if(self.vehicletype == "hind" || self.vehicletype == "ny_harbor_hind")
{
var_00 = 1;
}
if(self.vehicletype == "cobra" || self.vehicletype == "cobra_player")
{
thread attachmissiles("chopperpilot_hellfire","cobra_Sidewinder");
if(isdefined(self.fullmodel))
{
self.fullmodel thread attachmissiles("chopperpilot_hellfire","cobra_Sidewinder");
}
var_00 = 1;
}
if(!var_00)
{
return;
}
level thread func_23D8(self);
level thread maps\_helicopter_ai::func_23C7(self);
if(getdvar("cobrapilot_wingman_enabled") == "1")
{
if(isdefined(self.script_wingman))
{
level.wingman = self;
level thread maps\_helicopter_ai::func_23D0(self);
}
}
}
//Function Number: 2
func_23D8(param_00)
{
param_00 endon("death");
notifyoncommand("flare_button","+frag");
notifyoncommand("flare_button","+usereload");
notifyoncommand("flare_button","+activate");
while(param_00.health > 0)
{
if(isdefined(param_00.playercontrolled))
{
param_00.var_23DA waittill("flare_button");
}
else
{
param_00 waittill("incomming_missile",var_01);
if(!isdefined(var_01))
{
continue;
}
if(randomint(3) == 0)
{
continue;
}
wait randomfloatrange(0.5,1);
}
thread flares_fire(param_00);
wait 3;
}
}
//Function Number: 3
func_23DB(param_00,param_01,param_02,param_03)
{
var_04 = 1;
for(var_05 = 0;var_05 < param_01;var_05++)
{
playfx(level.var_23DC[param_00.vehicletype],param_00 gettagorigin("tag_flare"));
if(isdefined(param_00.playercontrolled))
{
level.stats["flares_used"]++;
param_00 notify("dropping_flares");
if(var_04)
{
param_00 playsound("cobra_flare_fire");
}
var_04 = !var_04;
}
if(var_05 <= param_02 - 1)
{
thread func_23E2(param_00,param_03);
}
wait 0.1;
}
}
//Function Number: 4
flares_fire(param_00)
{
param_00 endon("death");
var_01 = 5;
if(isdefined(param_00.var_23DE))
{
var_01 = param_00.var_23DE;
}
func_23DB(param_00,8,1,var_01);
}
//Function Number: 5
func_23DF()
{
if(isdefined(self.var_23E0))
{
missile_deleteattractor(self.var_23E0);
}
self.var_23E0 = missile_createattractorent(self.centeraimpoint,10000,10000);
}
//Function Number: 6
func_23E2(param_00,param_01)
{
param_00 notify("flares_out");
param_00 endon("death");
param_00 endon("flares_out");
if(!isdefined(param_01))
{
param_01 = 5;
}
var_02 = flares_get_vehicle_velocity(param_00);
var_03 = spawn("script_origin",param_00 gettagorigin("tag_flare"));
var_03 movegravity(var_02,param_01);
var_04 = undefined;
if(isdefined(param_00.playercontrolled))
{
if(isdefined(param_00.var_23E0))
{
missile_deleteattractor(param_00.var_23E0);
}
var_04 = missile_createattractorent(var_03,10000,10000);
}
if(isdefined(param_00.var_23E3))
{
for(var_05 = 0;var_05 < param_00.var_23E3.size;var_05++)
{
param_00.var_23E3[var_05] missile_settargetent(var_03);
}
}
wait param_01;
if(isdefined(param_00.playercontrolled))
{
if(isdefined(var_04))
{
missile_deleteattractor(var_04);
}
param_00 thread func_23DF();
}
if(!isdefined(param_00.script_targetoffset_z))
{
param_00.script_targetoffset_z = 0;
}
var_06 = (0,0,param_00.script_targetoffset_z);
if(!isdefined(param_00.var_23E3))
{
return;
}
for(var_05 = 0;var_05 < param_00.var_23E3.size;var_05++)
{
param_00.var_23E3[var_05] missile_settargetent(param_00,var_06);
}
}
//Function Number: 7
flares_get_vehicle_velocity(param_00)
{
var_01 = param_00.origin;
wait 0.05;
var_02 = param_00.origin - var_01;
return var_02 * 20;
}
//Function Number: 8
missile_deathwait(param_00,param_01)
{
param_01 endon("death");
param_00 waittill("death");
if(!isdefined(param_01.var_23E3))
{
return;
}
param_01.var_23E3 = common_scripts\utility::array_remove(param_01.var_23E3,param_00);
}
//Function Number: 9
getenemytarget(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(!isdefined(param_02))
{
param_02 = 0;
}
if(!isdefined(param_03))
{
param_03 = 0;
}
if(!isdefined(param_04))
{
param_04 = 1;
}
if(!isdefined(param_05))
{
param_05 = 0;
}
var_07 = [];
var_08 = undefined;
var_09 = common_scripts\utility::get_enemy_team(self.script_team);
var_0A = [];
if(param_04)
{
for(var_0B = 0;var_0B < level.vehicles[var_09].size;var_0B++)
{
var_0A[var_0A.size] = level.vehicles[var_09][var_0B];
}
}
if(param_02)
{
var_0C = getaiarray(var_09);
for(var_0B = 0;var_0B < var_0C.size;var_0B++)
{
if(isdefined(var_0C[var_0B].ignored_by_attack_heli))
{
continue;
}
var_0A[var_0A.size] = var_0C[var_0B];
}
if(var_09 == "allies")
{
for(var_0B = 0;var_0B < level.players.size;var_0B++)
{
var_0A[var_0A.size] = level.players[var_0B];
}
}
}
if(isdefined(param_06))
{
var_0A = maps\_utility::array_exclude(var_0A,param_06);
}
if(param_05)
{
var_0A = maps\_utility::array_randomize(var_0A);
}
var_0D = anglestoforward(self.angles);
for(var_0B = 0;var_0B < var_0A.size;var_0B++)
{
if(issentient(var_0A[var_0B]) && issentient(self) && self getthreatbiasgroup() != "")
{
var_0E = getthreatbias(var_0A[var_0B] getthreatbiasgroup(),self getthreatbiasgroup());
if(var_0E <= -1000000)
{
continue;
}
}
if(isdefined(param_00) && param_00 > 0)
{
if(distance(self.origin,var_0A[var_0B].origin) > param_00)
{
continue;
}
}
if(isdefined(param_01))
{
var_0F = vectornormalize(var_0A[var_0B].origin - self.origin);
var_10 = vectordot(var_0D,var_0F);
if(var_10 <= param_01)
{
continue;
}
}
if(param_03)
{
var_11 = 0;
if(isai(var_0A[var_0B]))
{
var_12 = 48;
}
else
{
var_12 = 150;
}
var_11 = sighttracepassed(self.origin,var_0A[var_0B].origin + (0,0,var_12),0,self);
if(!var_11)
{
continue;
}
}
var_07[var_07.size] = var_0A[var_0B];
}
self notify("gunner_new_target");
if(var_07.size == 0)
{
return var_08;
}
if(var_07.size == 1)
{
return var_07[0];
}
var_13 = maps\_utility::getclosest(self.origin,var_07);
return var_13;
}
//Function Number: 10
shootenemytarget_bullets(param_00)
{
self endon("death");
self endon("mg_off");
param_00 endon("death");
self endon("gunner_new_target");
if(isdefined(self.playercontrolled))
{
self endon("gunner_stop_firing");
}
var_01 = (0,0,0);
if(isdefined(param_00.script_targetoffset_z))
{
var_01 = var_01 + (0,0,param_00.script_targetoffset_z);
}
else if(issentient(param_00))
{
var_01 = (0,0,32);
}
self setturrettargetent(param_00,var_01);
while(self.health > 0)
{
var_02 = randomintrange(1,25);
if(getdvar("cobrapilot_debug") == "1")
{
iprintln("randomShots = " + var_02);
}
for(var_03 = 0;var_03 < var_02;var_03++)
{
if(isdefined(self.playercontrolled))
{
if(isdefined(level.cobraweapon) && level.cobraweapon.size > 0)
{
self setvehweapon(level.gunnerweapon);
}
}
thread shootenemytarget_bullets_debugline(self,"tag_turret",param_00,var_01,(1,1,0),0.05);
self fireweapon("tag_flash");
if(isdefined(self.playercontrolled))
{
self setvehweapon(level.cobraweapon[self.var_23DA.currentweapon].v["weapon"]);
}
wait 0.05;
}
wait randomfloatrange(0.25,2.5);
}
}
//Function Number: 11
shootenemytarget_bullets_debugline(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(getdvar("cobrapilot_debug") != "1")
{
return;
}
if(!isdefined(param_04))
{
param_04 = (0,0,0);
}
param_02 endon("death");
self endon("gunner_new_target");
if(!isdefined(param_03))
{
param_03 = (0,0,0);
}
if(isdefined(param_05))
{
param_05 = gettime() + param_05 * 1000;
while(gettime() < param_05)
{
wait 0.05;
}
return;
}
wait 0.05;
}
//Function Number: 12
attachmissiles(param_00,param_01,param_02,param_03)
{
self.hasattachedweapons = 1;
var_04 = [];
if(isdefined(param_02))
{
}
if(isdefined(param_03))
{
}
if(isdefined(var_04))
{
}
for(var_05 = 0;var_05 < var_41.size;var_05++ = var_04)
{
for(var_06 = 0;var_06 < level.var_23F0[var_41[var_05]].size;var_06++ = var_41[3])
{
self attach(level.cobra_missile_models[var_41[var_05]],level.var_23F0[var_41[var_05]][var_06]);
}
}
}
//Function Number: 13
func_23F2(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_01))
{
param_01 = 1;
}
var_05 = undefined;
var_06 = undefined;
var_07 = "cobra_20mm";
var_08 = [];
switch(param_00)
{
case "f15_missile":
var_05 = "cobra_Sidewinder";
break;
var_41[1]
"ri_side_wing_jnt"
var_41[0]
"le_side_wing_jnt"
break;
case "mi28_seeker":
var_06 = "cobra_seeker";
break;
var_41[3]
"tag_store_R_2_a"
var_41[2]
"tag_store_L_2_a"
var_41[1]
"tag_store_R_1_a"
var_41[0]
"tag_store_L_1_a"
break;
case "ffar":
var_06 = "cobra_FFAR";
break;
var_41[0]
"tag_store_r_2"
break;
case "seeker":
var_06 = "cobra_seeker";
break;
var_41[0]
"tag_store_r_2"
break;
case "ffar_bog_a_lite":
var_06 = "cobra_FFAR_bog_a_lite";
break;
var_41[0]
"tag_store_r_2"
break;
case "ffar_airlift":
var_06 = "cobra_FFAR_airlift";
break;
var_41[1]
"tag_store_R_wing"
var_41[0]
"tag_store_L_wing"
break;
case "ffar_airlift_nofx":
var_06 = "cobra_FFAR_airlift_nofx";
break;
var_41[1]
"tag_store_R_wing"
var_41[0]
"tag_store_L_wing"
break;
case "cobra_zippy":
var_06 = "zippy_rockets";
break;
var_41[1]
"tag_store_R_wing"
var_41[0]
"tag_store_L_wing"
break;
case "apache_zippy":
var_06 = "zippy_rockets_apache";
break;
var_41[1]
"tag_flash_3"
var_41[0]
"tag_flash_2"
break;
case "apache_zippy_nd":
var_06 = "zippy_rockets_apache_nodamage";
break;
var_41[1]
"tag_flash_3"
var_41[0]
"tag_flash_2"
break;
case "mi28_zippy":
var_06 = "zippy_rockets_apache";
break;
var_41[1]
"tag_store_R_wing"
var_41[0]
"tag_store_L_wing"
break;
case "mi28_zippy_cheap":
var_06 = "zippy_rockets_apache_cheap";
break;
var_41[1]
"tag_store_R_wing"
var_41[0]
"tag_store_L_wing"
break;
case "cobra_turret":
var_06 = "hind_turret_penetration";
break;
var_41[1]
"tag_store_R_wing"
var_41[0]
"tag_store_L_wing"
break;
case "ffar_hind":
var_08 = "hind_turret";
var_06 = "hind_FFAR";
break;
var_41[1]
"tag_missile_right"
var_41[0]
"tag_missile_left"
break;
case "hind_zippy":
var_08 = "hind_turret";
var_06 = "zippy_rockets";
break;
var_41[1]
"tag_missile_right"
var_41[0]
"tag_missile_left"
break;
case "hind_rpg":
var_08 = "hind_turret";
var_06 = "rpg";
break;
var_41[1]
"tag_missile_right"
var_41[0]
"tag_missile_left"
break;
case "hind_rpg_cheap":
var_08 = "hind_turret";
var_06 = "rpg_cheap";
break;
var_41[1]
"tag_missile_right"
var_41[0]
"tag_missile_left"
break;
case "ffar_hind_nodamage":
var_08 = "hind_turret";
var_06 = "hind_FFAR_nodamage";
break;
var_41[1]
"tag_missile_right"
var_41[0]
"tag_missile_left"
break;
case "ffar_mi28_village_assault":
var_08 = "hind_turret";
var_06 = "mi28_ffar_village_assault";
break;
var_41[7]
"tag_store_R_2_d"
var_41[6]
"tag_store_L_2_d"
var_41[5]
"tag_store_R_2_c"
var_41[4]
"tag_store_L_2_c"
var_41[3]
"tag_store_R_2_b"
var_41[2]
"tag_store_L_2_b"
var_41[1]
"tag_store_R_2_a"
var_41[0]
"tag_store_L_2_a"
break;
case "ffar_co_rescue":
var_06 = "cobra_FFAR_bog_a_lite";
break;
var_41[1]
"tag_store_L_2_a"
var_41[0]
"tag_store_R_2_a"
break;
default:
break;
}
var_07 = weaponfiretime(var_06);
if(isdefined(self.var_23F3))
{
var_09 = self.var_23F3;
}
else
{
var_09 = -1;
}
for(var_0A = 0;var_0A < param_02;var_0A++)
{
var_09++;
var_09 = var_09 % var_41.size;
if(param_01 == "ffar_mi28_village_assault")
{
if(isdefined(param_03) && isdefined(param_03.origin))
{
magicbullet(var_06,self gettagorigin(var_41[var_09]),param_03.origin);
if(isdefined(level._effect["ffar_mi28_muzzleflash"]))
{
playfxontag(common_scripts\utility::func_539("ffar_mi28_muzzleflash"),self,var_41[var_09]);
}
thread delayed_earthquake(0.1,0.5,0.2,param_03.origin,1600);
}
}
else
{
self setvehweapon(var_06);
if(isdefined(param_03))
{
var_0B = self fireweapon(var_41[var_09],param_03);
maps\_audio::func_121F("missile_fired",var_0B);
switch(param_01)
{
case "ffar_airlift":
case "ffar_bog_a_lite":
case "ffar":
var_0B thread func_23F5(0.1);
break;
case "apache_zippy_wall":
case "mi28_zippy_cheap":
case "mi28_zippy":
case "apache_zippy_nd":
case "apache_zippy":
if(!isdefined(var_05))
{
var_0B thread func_23F5(0.6);
}
else
{
var_0B thread func_23F5(var_05);
}
break;
default:
break;
}
}
else
{
var_0B = self fireweapon(var_09[var_0A]);
}
self notify("missile_fired",var_0B);
}
self.var_23F3 = var_09;
if(var_0A < param_02 - 1)
{
wait var_07;
}
if(isdefined(param_04))
{
wait param_04;
}
}
self setvehweapon(var_08);
}
//Function Number: 14
delayed_earthquake(param_00,param_01,param_02,param_03,param_04)
{
wait param_00;
earthquake(param_01,param_02,param_03,param_04);
}
//Function Number: 15
func_23F5(param_00)
{
self endon("death");
wait param_00;
if(isdefined(self))
{
self missile_cleartarget();
}
}

View File

@ -0,0 +1,466 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_hiding_door.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 13
* Decompile Time: 239 ms
* Timestamp: 10/27/2023 2:35:38 AM
*******************************************************************/
//Function Number: 1
hiding_door_spawner()
{
var_00 = getentarray("hiding_door_guy_org","targetname");
var_01 = maps\_utility::getclosest(self.origin,var_00);
var_01.targetname = undefined;
var_02 = getentarray(var_01.target,"targetname");
var_03 = undefined;
var_04 = undefined;
var_05 = undefined;
if(isdefined(var_01.script_linkto))
{
var_05 = var_01 common_scripts\utility::get_linked_ent();
}
if(var_02.size == 1)
{
var_03 = var_02[0];
}
else
{
foreach(var_07 in var_02)
{
if(var_07.code_classname == "script_brushmodel")
{
var_04 = var_07;
continue;
}
if(var_07.code_classname == "script_model")
{
var_03 = var_07;
}
}
}
var_09 = getent(var_03.target,"targetname");
var_0A = undefined;
if(isdefined(var_09.target))
{
var_0A = getent(var_09.target,"targetname");
}
if(isdefined(var_0A))
{
var_01 thread hiding_door_guy_pushplayer(var_0A);
if(!isdefined(level._hiding_door_pushplayer_clips))
{
level._hiding_door_pushplayer_clips = [];
}
level._hiding_door_pushplayer_clips[level._hiding_door_pushplayer_clips.size] = var_0A;
}
var_03 delete();
var_0B = maps\_utility::func_E4F("hiding_door");
var_01 thread maps\_anim::anim_first_frame_solo(var_0B,"fire_3");
if(isdefined(var_04))
{
var_04 linkto(var_0B,"door_hinge_jnt");
var_0B hide();
}
if(isdefined(var_09))
{
var_09 linkto(var_0B,"door_hinge_jnt");
var_09 disconnectpaths();
}
var_0C = undefined;
if(isdefined(self.target))
{
var_0C = getent(self.target,"targetname");
if(!issubstr(var_0C.classname,"trigger"))
{
var_0C = undefined;
}
}
if(!isdefined(self.script_flag_wait) && !isdefined(var_0C))
{
var_0D = 200;
if(isdefined(self.radius))
{
var_0D = self.radius;
}
var_0C = spawn("trigger_radius",var_01.origin,0,var_0D,48);
}
if(isdefined(var_05))
{
badplace_brush(var_05 getentitynumber(),0,var_05,"allies");
}
maps\_utility::add_spawn_function(::hiding_door_guy,var_01,var_0C,var_0B,var_09,var_05);
}
//Function Number: 2
hiding_door_guy(param_00,param_01,param_02,param_03,param_04)
{
var_05 = hiding_door_starts_open(param_00);
self.animname = "hiding_door_guy";
self endon("death");
self endon("damage");
self.grenadeammo = 2;
maps\_utility::set_deathanim("death_2");
self.allowdeath = 1;
self.health = -15536;
var_06 = [];
thread func_0E5A(param_01,self,param_03,param_04,var_05);
thread hiding_door_death(param_03,param_01,self,param_04,var_05);
if(var_06)
{
param_01 thread maps\_anim::func_DC1(var_41,"idle");
}
else
{
param_01 thread maps\_anim::anim_first_frame(var_41,"fire_3");
}
if(isdefined(param_02))
{
wait 0.05;
param_02 waittill(param_02,var_41[var_06.size],self,var_41[var_41.size],"trigger");
}
else
{
common_scripts\utility::flag_wait(self.script_flag_wait);
}
if(var_06)
{
param_01 notify("stop_loop");
param_01 maps\_anim::anim_single(var_41,"close");
}
var_07 = 0;
var_08 = 0;
for(;;)
{
var_09 = level.player;
if(isdefined(self.enemy))
{
var_09 = self.enemy;
}
var_0A = func_0E59(param_03.angles,self.origin,var_09.origin);
if(player_entered_backdoor(var_0A))
{
if(quit_door_behavior())
{
return;
}
}
if(var_07 >= 2)
{
if(quit_door_behavior(1))
{
return;
}
}
var_0B = undefined;
if(var_0A == "left" || var_0A == "front")
{
var_0B = "fire_3";
}
else if(var_0A == "right")
{
var_0B = "fire_1";
if(common_scripts\utility::cointoss())
{
var_0B = "fire_2";
}
}
else
{
param_01 maps\_anim::anim_single(var_41,"open");
param_01 maps\_anim::anim_single(var_41,"close");
var_07++;
continue;
}
if(hiding_door_guy_should_charge(var_0A,var_09,var_08))
{
var_0B = "jump";
if(common_scripts\utility::cointoss())
{
if(self maymovetopoint(animscripts/utility::getanimendpos(level.scr_anim[self.animname]["kick"])))
{
var_0B = "kick";
}
}
thread hiding_door_death_door_connections(param_04,var_05);
param_01 notify("push_player");
self notify("charge");
self.allowdeath = 1;
self.health = 100;
maps\_utility::clear_deathanim();
param_01 maps\_anim::anim_single(var_41,var_0B);
quit_door_behavior();
return;
}
if(hiding_door_guy_should_throw_grenade(var_0A,var_08))
{
self.grenadeammo--;
var_0B = "grenade";
}
var_07 = 0;
var_08++;
param_01 thread maps\_anim::anim_single(var_41,var_0B);
maps\_utility::func_614(0.05,::maps\_anim::anim_set_time,var_41,var_0B,0.3);
param_01 waittill(var_0B);
param_01 thread maps\_anim::anim_first_frame(var_41,"open");
wait randomfloatrange(0.2,1);
param_01 notify("stop_loop");
}
}
//Function Number: 3
quit_door_behavior(param_00,param_01)
{
if(!isdefined(param_00))
{
param_00 = 0;
}
if(param_00)
{
if(!sighttracepassed(level.player geteye(),self geteye(),0,self))
{
return 0;
}
}
self.health = 100;
maps\_utility::clear_deathanim();
self.goalradius = 512;
self setgoalpos(self.origin);
self notify("quit_door_behavior");
self stopanimscripted();
self notify("killanimscript");
return 1;
}
//Function Number: 4
player_entered_backdoor(param_00)
{
if(param_00 != "behind")
{
return 0;
}
var_01 = distance(self.origin,level.player.origin);
if(var_01 > 250)
{
return 0;
}
if(!sighttracepassed(level.player geteye(),self geteye(),0,self))
{
return 0;
}
return 1;
}
//Function Number: 5
hiding_door_guy_should_charge(param_00,param_01,param_02)
{
var_03 = 3;
var_04 = 100;
var_05 = 600;
if(param_02 < var_03)
{
return 0;
}
if(param_01 != level.player)
{
return 0;
}
if(param_00 != "front")
{
return 0;
}
var_06 = distance(self.origin,level.player.origin);
if(var_06 < var_04)
{
return 0;
}
if(var_06 > var_05)
{
return 0;
}
return common_scripts\utility::cointoss();
}
//Function Number: 6
hiding_door_guy_should_throw_grenade(param_00,param_01)
{
if(param_01 < 1)
{
return 0;
}
if(param_00 == "behind")
{
return 0;
}
if(randomint(100) < 25 * self.grenadeammo)
{
return 1;
}
return 0;
}
//Function Number: 7
func_0E59(param_00,param_01,param_02)
{
var_03 = anglestoforward(param_00);
var_04 = vectornormalize(var_03);
var_05 = vectortoangles(var_04);
var_06 = vectortoangles(param_02 - param_01);
var_07 = var_05[1] - var_06[1];
var_07 = var_07 + 360;
var_07 = int(var_07) % 360;
var_08 = undefined;
if(var_07 >= 90 && var_07 <= 270)
{
var_08 = "behind";
}
else if(var_07 >= 300 || var_07 <= 45)
{
var_08 = "front";
}
else if(var_07 < 90)
{
var_08 = "right";
}
else if(var_07 > 270)
{
var_08 = "left";
}
return var_08;
}
//Function Number: 8
func_0E5A(param_00,param_01,param_02,param_03,param_04)
{
param_01 endon("charge");
param_01 common_scripts\utility::waittill_either("death","quit_door_behavior");
param_00 notify("stop_loop");
thread hiding_door_death_door_connections(param_03,param_04);
param_00 notify("push_player");
if(!isdefined(param_02.var_E5B))
{
param_02.var_E5B = 1;
param_00 thread maps\_anim::func_E0E(param_02,"death_2");
}
}
//Function Number: 9
hiding_door_guy_pushplayer(param_00)
{
self waittill("push_player");
param_00 moveto(self.origin,1.5);
wait 1.5;
param_00 delete();
}
//Function Number: 10
func_0E5D(param_00)
{
var_01 = param_00 gettagorigin("J_Wrist_RI");
var_02 = distance(level.player.origin,param_00.origin) * 2;
if(var_02 < 300)
{
var_02 = 300;
}
if(var_02 > 1000)
{
var_02 = 1000;
}
var_03 = vectornormalize(level.player.origin - param_00.origin);
var_04 = var_03 * var_02;
param_00 magicgrenademanual(var_01,var_04,randomfloatrange(3,5));
}
//Function Number: 11
hiding_door_death(param_00,param_01,param_02,param_03,param_04)
{
param_02 endon("charge");
param_02 endon("quit_door_behavior");
param_02 waittill("damage",var_05,var_06);
if(!isalive(param_02))
{
return;
}
thread hiding_door_death_door_connections(param_03,param_04);
param_01 notify("push_player");
param_01 thread maps\_anim::func_E0E(param_02,"death_2");
if(!isdefined(param_00.var_E5B))
{
param_00.var_E5B = 1;
param_01 thread maps\_anim::func_E0E(param_00,"death_2");
}
wait 0.5;
if(isalive(param_02))
{
if(isdefined(var_06))
{
param_02 kill((0,0,0),var_06);
return;
}
param_02 kill((0,0,0));
}
}
//Function Number: 12
hiding_door_death_door_connections(param_00,param_01)
{
wait 2;
if(isdefined(param_00))
{
param_00 disconnectpaths();
}
if(isdefined(param_01))
{
badplace_delete(param_01 getentitynumber());
}
}
//Function Number: 13
hiding_door_starts_open(param_00)
{
return isdefined(param_00.script_noteworthy) && param_00.script_noteworthy == "starts_open";
}

View File

@ -0,0 +1,58 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_hiding_door_anims.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 3
* Decompile Time: 47 ms
* Timestamp: 10/27/2023 2:34:22 AM
*******************************************************************/
//Function Number: 1
main()
{
level.scr_animtree["iding_door"] = #animtree;
level.var_1B2E["hiding_door"] = "com_door_01_handleleft";
level.scr_anim["hiding_door"]["close"] = %doorpeek_close_door;
level.scr_anim["hiding_door"]["death_1"] = %doorpeek_deatha_door;
level.scr_anim["hiding_door"]["death_2"] = %doorpeek_deathb_door;
level.scr_anim["hiding_door"]["fire_1"] = %doorpeek_firea_door;
level.scr_anim["hiding_door"]["fire_2"] = %doorpeek_fireb_door;
level.scr_anim["hiding_door"]["fire_3"] = %doorpeek_firec_door;
level.scr_anim["hiding_door"]["peek"] = %doorpeek_idle_door;
level.scr_anim["hiding_door"]["grenade"] = %doorpeek_grenade_door;
level.scr_anim["hiding_door"]["idle"][0] = %doorpeek_idle_door;
level.scr_anim["hiding_door"]["jump"] = %doorpeek_jump_door;
level.scr_anim["hiding_door"]["kick"] = %doorpeek_kick_door;
level.scr_anim["hiding_door"]["open"] = %doorpeek_open_door;
precachemodel(level.var_1B2E["hiding_door"]);
maps\_anim::addnotetrack_sound("hiding_door","sound door death","any","scn_doorpeek_door_open_death");
maps\_anim::addnotetrack_sound("hiding_door","sound door open","any","scn_doorpeek_door_open");
maps\_anim::addnotetrack_sound("hiding_door","sound door slam","any","scn_doorpeek_door_slam");
func_3BAE();
thread notetracks();
}
//Function Number: 2
func_3BAE()
{
level.scr_anim["hiding_door_guy"]["close"] = %doorpeek_close;
level.scr_anim["hiding_door_guy"]["death_1"] = %doorpeek_deatha;
level.scr_anim["hiding_door_guy"]["death_2"] = %doorpeek_deathb;
level.scr_anim["hiding_door_guy"]["fire_1"] = %doorpeek_firea;
level.scr_anim["hiding_door_guy"]["fire_2"] = %doorpeek_fireb;
level.scr_anim["hiding_door_guy"]["fire_3"] = %doorpeek_firec;
level.scr_anim["hiding_door_guy"]["peek"] = %doorpeek_idle;
level.scr_anim["hiding_door_guy"]["grenade"] = %doorpeek_grenade;
level.scr_anim["hiding_door_guy"]["idle"][0] = %doorpeek_idle;
level.scr_anim["hiding_door_guy"]["jump"] = %doorpeek_jump;
level.scr_anim["hiding_door_guy"]["kick"] = %doorpeek_kick;
level.scr_anim["hiding_door_guy"]["open"] = %doorpeek_open;
}
//Function Number: 3
notetracks()
{
wait 0.05;
maps\_anim::addnotetrack_customfunction("hiding_door_guy","grenade_throw",::maps\_hiding_door::func_E5D);
}

View File

@ -0,0 +1,884 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_hud_util.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 36
* Decompile Time: 655 ms
* Timestamp: 10/27/2023 2:32:31 AM
*******************************************************************/
//Function Number: 1
setparent(param_00)
{
if(isdefined(self.parent) && self.parent == param_00)
{
return;
}
if(isdefined(self.parent))
{
self.parent removechild(self);
}
self.parent = param_00;
self.parent addchild(self);
if(isdefined(self.point))
{
setpoint(self.point,self.relativepoint,self.xoffset,self.yoffset);
return;
}
setpoint("TOPLEFT");
}
//Function Number: 2
getparent()
{
return self.parent;
}
//Function Number: 3
addchild(param_00)
{
param_00.index = self.children.size;
self.children[self.children.size] = param_00;
}
//Function Number: 4
removechild(param_00)
{
param_00.parent = undefined;
if(self.children[self.children.size - 1] != param_00)
{
self.children[param_00.index] = self.children[self.children.size - 1];
self.children[param_00.index].index = param_00.index;
}
self.children[self.children.size - 1] = undefined;
param_00.index = undefined;
}
//Function Number: 5
setpoint(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_04))
{
param_04 = 0;
}
var_05 = getparent();
if(param_04)
{
self moveovertime(param_04);
}
if(!isdefined(param_02))
{
param_02 = 0;
}
self.xoffset = param_02;
if(!isdefined(param_03))
{
param_03 = 0;
}
self.yoffset = param_03;
self.point = param_00;
self.alignx = "center";
self.aligny = "middle";
if(issubstr(param_00,"TOP"))
{
self.aligny = "top";
}
if(issubstr(param_00,"BOTTOM"))
{
self.aligny = "bottom";
}
if(issubstr(param_00,"LEFT"))
{
self.alignx = "left";
}
if(issubstr(param_00,"RIGHT"))
{
self.alignx = "right";
}
if(!isdefined(param_01))
{
param_01 = param_00;
}
self.relativepoint = param_01;
var_06 = "center";
var_07 = "middle";
if(issubstr(param_01,"TOP"))
{
var_07 = "top";
}
if(issubstr(param_01,"BOTTOM"))
{
var_07 = "bottom";
}
if(issubstr(param_01,"LEFT"))
{
var_06 = "left";
}
if(issubstr(param_01,"RIGHT"))
{
var_06 = "right";
}
if(var_05 == level.uiparent)
{
self.horzalign = var_06;
self.vertalign = var_07;
}
else
{
self.horzalign = var_05.horzalign;
self.vertalign = var_05.vertalign;
}
if(var_06 == var_05.alignx)
{
var_08 = 0;
var_09 = 0;
}
else if(var_08 == "center" || var_07.alignx == "center")
{
var_08 = int(var_07.width / 2);
if(var_07 == "left" || var_06.alignx == "right")
{
var_09 = -1;
}
else
{
var_09 = 1;
}
}
else
{
var_08 = var_07.width;
if(var_07 == "left")
{
var_09 = -1;
}
else
{
var_09 = 1;
}
}
self.x = var_05.x + var_08 * var_09;
if(var_07 == var_05.aligny)
{
var_0A = 0;
var_0B = 0;
}
else if(var_09 == "middle" || var_07.aligny == "middle")
{
var_0A = int(var_07.height / 2);
if(var_08 == "top" || var_06.aligny == "bottom")
{
var_0B = -1;
}
else
{
var_0B = 1;
}
}
else
{
var_0A = var_07.height;
if(var_08 == "top")
{
var_0B = -1;
}
else
{
var_0B = 1;
}
}
self.y = var_05.y + var_0A * var_0B;
self.x = self.x + self.xoffset;
self.y = self.y + self.yoffset;
switch(self.elemtype)
{
case "bar":
setpointbar(param_00,param_01,param_02,param_03);
break;
}
updatechildren();
}
//Function Number: 6
setpointbar(param_00,param_01,param_02,param_03)
{
self.bar.horzalign = self.horzalign;
self.bar.vertalign = self.vertalign;
self.bar.alignx = "left";
self.bar.aligny = self.aligny;
self.bar.y = self.y;
if(self.alignx == "left")
{
self.bar.x = self.x + self.padding;
}
else if(self.alignx == "right")
{
self.bar.x = self.x - self.width - self.padding;
}
else
{
self.bar.x = self.x - int(self.width - self.padding / 2);
}
updatebar(self.bar.frac);
}
//Function Number: 7
updatebar(param_00)
{
var_01 = int(self.width - self.padding * 2 * param_00);
if(!var_01)
{
var_01 = 1;
}
self.bar.frac = param_00;
self.bar setshader(self.bar.shader,var_01,self.height - self.padding * 2);
}
//Function Number: 8
hidebar(param_00)
{
param_00 = common_scripts\utility::ter_op(isdefined(param_00),param_00,1);
if(param_00 || !isdefined(self.orig_alpha) || !isdefined(self.bar.orig_alpha))
{
self.orig_alpha = self.alpha;
self.bar.orig_alpha = self.bar.alpha;
}
self.alpha = common_scripts\utility::ter_op(param_00,0,self.orig_alpha);
self.bar.alpha = common_scripts\utility::ter_op(param_00,0,self.bar.orig_alpha);
}
//Function Number: 9
createfontstring(param_00,param_01)
{
var_02 = newhudelem();
var_02.elemtype = "font";
var_02.font = param_00;
var_02.fontscale = param_01;
var_02.x = 0;
var_02.y = 0;
var_02.width = 0;
var_02.height = int(level.fontheight * param_01);
var_02.xoffset = 0;
var_02.yoffset = 0;
var_02.children = [];
var_02 setparent(level.uiparent);
return var_02;
}
//Function Number: 10
createclientfontstring(param_00,param_01)
{
var_02 = newclienthudelem(self);
var_02.elemtype = "font";
var_02.font = param_00;
var_02.fontscale = param_01;
var_02.x = 0;
var_02.y = 0;
var_02.width = 0;
var_02.height = int(level.fontheight * param_01);
var_02.xoffset = 0;
var_02.yoffset = 0;
var_02.children = [];
var_02 setparent(level.uiparent);
return var_02;
}
//Function Number: 11
createclienttimer(param_00,param_01)
{
var_02 = newclienthudelem(self);
var_02.elemtype = "timer";
var_02.font = param_00;
var_02.fontscale = param_01;
var_02.x = 0;
var_02.y = 0;
var_02.width = 0;
var_02.height = int(level.fontheight * param_01);
var_02.xoffset = 0;
var_02.yoffset = 0;
var_02.children = [];
var_02 setparent(level.uiparent);
return var_02;
}
//Function Number: 12
createserverfontstring(param_00,param_01)
{
var_02 = newhudelem();
var_02.elemtype = "font";
var_02.font = param_00;
var_02.fontscale = param_01;
var_02.x = 0;
var_02.y = 0;
var_02.width = 0;
var_02.height = int(level.fontheight * param_01);
var_02.xoffset = 0;
var_02.yoffset = 0;
var_02.children = [];
var_02 setparent(level.uiparent);
return var_02;
}
//Function Number: 13
createservertimer(param_00,param_01)
{
var_02 = newhudelem();
var_02.elemtype = "timer";
var_02.font = param_00;
var_02.fontscale = param_01;
var_02.x = 0;
var_02.y = 0;
var_02.width = 0;
var_02.height = int(level.fontheight * param_01);
var_02.xoffset = 0;
var_02.yoffset = 0;
var_02.children = [];
var_02 setparent(level.uiparent);
return var_02;
}
//Function Number: 14
createicon(param_00,param_01,param_02)
{
var_03 = newhudelem();
return createicon_hudelem(var_03,param_00,param_01,param_02);
}
//Function Number: 15
createclienticon(param_00,param_01,param_02)
{
var_03 = newclienthudelem(self);
return createicon_hudelem(var_03,param_00,param_01,param_02);
}
//Function Number: 16
createicon_hudelem(param_00,param_01,param_02,param_03)
{
param_00.elemtype = "icon";
param_00.x = 0;
param_00.y = 0;
param_00.width = param_02;
param_00.height = param_03;
param_00.xoffset = 0;
param_00.yoffset = 0;
param_00.children = [];
param_00 setparent(level.uiparent);
if(isdefined(param_01))
{
param_00 setshader(param_01,param_02,param_03);
}
return param_00;
}
//Function Number: 17
createbar(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_00))
{
param_00 = "white";
}
if(!isdefined(param_01))
{
param_01 = "black";
}
if(!isdefined(param_02))
{
param_02 = 100;
}
if(!isdefined(param_03))
{
param_03 = 9;
}
var_05 = newhudelem();
var_05.x = 2;
var_05.y = 2;
var_05.frac = 0.25;
var_05.shader = param_00;
var_05.sort = -1;
var_05 setshader(param_00,param_02 - 2,param_03 - 2);
if(isdefined(param_04))
{
var_05.flashfrac = param_04;
var_05 thread flashthread();
}
var_06 = newhudelem();
var_06.elemtype = "bar";
var_06.x = 0;
var_06.y = 0;
var_06.width = param_02;
var_06.height = param_03;
var_06.xoffset = 0;
var_06.yoffset = 0;
var_06.bar = var_05;
var_06.children = [];
var_06.padding = 2;
var_06.sort = -2;
var_06.alpha = 0.5;
var_06 setparent(level.uiparent);
var_06 setshader(param_01,param_02,param_03);
return var_06;
}
//Function Number: 18
createclientprogressbar(param_00,param_01,param_02,param_03,param_04,param_05)
{
param_00 = common_scripts\utility::ter_op(isdefined(param_00),param_00,level.player);
param_01 = common_scripts\utility::ter_op(isdefined(param_01),param_01,90);
param_02 = common_scripts\utility::ter_op(isdefined(param_02),param_02,"white");
param_03 = common_scripts\utility::ter_op(isdefined(param_03),param_03,"black");
param_04 = common_scripts\utility::ter_op(isdefined(param_04),param_04,100);
param_05 = common_scripts\utility::ter_op(isdefined(param_05),param_05,9);
var_06 = param_00 createclientbar(param_02,param_03,param_04,param_05);
var_06 setpoint("CENTER",undefined,0,param_01);
return var_06;
}
//Function Number: 19
createclientbar(param_00,param_01,param_02,param_03,param_04)
{
var_05 = newclienthudelem(self);
var_05.x = 2;
var_05.y = 2;
var_05.frac = 0.25;
var_05.shader = param_00;
var_05.sort = -1;
var_05 setshader(param_00,param_02 - 2,param_03 - 2);
if(isdefined(param_04))
{
var_05.flashfrac = param_04;
var_05 thread flashthread();
}
var_06 = newclienthudelem(self);
var_06.elemtype = "bar";
var_06.x = 0;
var_06.y = 0;
var_06.width = param_02;
var_06.height = param_03;
var_06.xoffset = 0;
var_06.yoffset = 0;
var_06.bar = var_05;
var_06.children = [];
var_06.padding = 2;
var_06.sort = -2;
var_06.alpha = 0.5;
var_06 setparent(level.uiparent);
var_06 setshader(param_01,param_02,param_03);
return var_06;
}
//Function Number: 20
setflashfrac(param_00)
{
self.bar.flashfrac = param_00;
}
//Function Number: 21
fade_over_time(param_00,param_01)
{
if(isdefined(param_01) && param_01 > 0)
{
self fadeovertime(param_01);
}
self.alpha = param_00;
if(isdefined(param_01) && param_01 > 0)
{
wait param_01;
}
}
//Function Number: 22
flashthread()
{
self endon("death");
self.alpha = 1;
for(;;)
{
if(self.frac >= self.flashfrac)
{
self fadeovertime(0.3);
self.alpha = 0.2;
wait 0.35;
self fadeovertime(0.3);
self.alpha = 1;
wait 0.7;
continue;
}
self.alpha = 1;
wait 0.05;
}
}
//Function Number: 23
destroyelem()
{
var_00 = [];
for(var_01 = 0;var_01 < self.children.size;var_01++)
{
var_00[var_01] = self.children[var_01];
}
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
var_00[var_01] setparent(getparent());
}
if(self.elemtype == "bar")
{
self.bar destroy();
}
self destroy();
}
//Function Number: 24
seticonshader(param_00)
{
self setshader(param_00,self.width,self.height);
}
//Function Number: 25
func_05B2(param_00)
{
self.width = param_00;
}
//Function Number: 26
setheight(param_00)
{
self.height = param_00;
}
//Function Number: 27
setsize(param_00,param_01)
{
self.width = param_00;
self.height = param_01;
}
//Function Number: 28
updatechildren()
{
for(var_00 = 0;var_00 < self.children.size;var_00++)
{
var_01 = self.children[var_00];
var_01 setpoint(var_01.point,var_01.relativepoint,var_01.xoffset,var_01.yoffset);
}
}
//Function Number: 29
stance_carry_icon_enable(param_00)
{
if(isdefined(param_00) && param_00 == 0)
{
stance_carry_icon_disable();
return;
}
if(isdefined(level.stance_carry))
{
level.stance_carry destroy();
}
setsaveddvar("hud_showStance","0");
level.stance_carry = newhudelem();
level.stance_carry.x = -75;
if(level.console)
{
level.stance_carry.y = -20;
}
else
{
level.stance_carry.y = -10;
}
level.stance_carry setshader("stance_carry",64,64);
level.stance_carry.alignx = "right";
level.stance_carry.aligny = "bottom";
level.stance_carry.horzalign = "right";
level.stance_carry.vertalign = "bottom";
level.stance_carry.foreground = 1;
level.stance_carry.alpha = 0;
level.stance_carry fadeovertime(0.5);
level.stance_carry.alpha = 1;
}
//Function Number: 30
stance_carry_icon_disable()
{
if(isdefined(level.stance_carry))
{
level.stance_carry fadeovertime(0.5);
level.stance_carry.alpha = 0;
level.stance_carry destroy();
}
setsaveddvar("hud_showStance","1");
}
//Function Number: 31
create_mantle()
{
if(level.console)
{
var_00 = createfontstring("default",1.8);
var_00 setpoint("CENTER",undefined,-23,115);
var_00 settext(level.strings["mantle"]);
var_01 = createicon("hint_mantle",40,40);
var_01 setpoint("CENTER",undefined,73,0);
var_01 setparent(var_00);
}
else
{
var_00 = createfontstring("default",1.6);
var_01 setpoint("CENTER",undefined,0,115);
var_01 settext(level.strings["mantle"]);
var_01 = createicon("hint_mantle",40,40);
var_01 setpoint("CENTER",undefined,0,30);
var_01 setparent(var_00);
}
var_01.alpha = 0;
var_00.alpha = 0;
level.hud_mantle = [];
level.hud_mantle["text"] = var_00;
level.hud_mantle["icon"] = var_01;
}
//Function Number: 32
get_countdown_hud(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_03))
{
param_03 = 0;
}
var_04 = undefined;
if(!level.console)
{
var_04 = -250;
}
else if(!isdefined(param_00))
{
var_04 = -225;
}
else
{
var_04 = param_00;
}
if(param_03)
{
var_04 = param_00;
}
if(!isdefined(param_01))
{
var_05 = 100;
}
else
{
var_05 = param_02;
}
if(isdefined(param_02))
{
var_06 = newclienthudelem(param_02);
}
else
{
var_06 = newhudelem();
}
var_06.alignx = "left";
var_06.aligny = "middle";
var_06.horzalign = "right";
var_06.vertalign = "top";
var_06.x = var_04;
var_06.y = var_05;
var_06.fontscale = 1.6;
var_06.color = (0.8,1,0.8);
var_06.font = "objective";
var_06.glowcolor = (0.3,0.6,0.3);
var_06.glowalpha = 1;
var_06.foreground = 1;
var_06.hidewheninmenu = 1;
var_06.hidewhendead = 1;
return var_06;
}
//Function Number: 33
get_download_state_hud(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_03))
{
param_03 = 0;
}
var_04 = undefined;
if(!level.console)
{
var_04 = -250;
}
else if(!isdefined(param_00))
{
var_04 = -170;
}
else
{
var_04 = param_00;
}
if(param_03)
{
var_04 = param_00;
}
if(!isdefined(param_01))
{
var_05 = 100;
}
else
{
var_05 = param_02;
}
if(isdefined(param_02))
{
var_06 = newclienthudelem(param_02);
}
else
{
var_06 = newhudelem();
}
var_06.alignx = "right";
var_06.aligny = "middle";
var_06.horzalign = "right";
var_06.vertalign = "top";
var_06.x = var_04;
var_06.y = var_05;
var_06.fontscale = 1.6;
var_06.color = (0.8,1,0.8);
var_06.font = "objective";
var_06.glowcolor = (0.3,0.6,0.3);
var_06.glowalpha = 1;
var_06.foreground = 1;
var_06.hidewheninmenu = 1;
var_06.hidewhendead = 1;
return var_06;
}
//Function Number: 34
func_05BF(param_00,param_01,param_02)
{
if(isdefined(param_02))
{
var_03 = newclienthudelem(param_02);
}
else
{
var_03 = newhudelem();
}
var_03.x = 0;
var_03.y = 0;
var_03 setshader(param_00,640,480);
var_03.alignx = "left";
var_03.aligny = "top";
var_03.sort = 1;
var_03.horzalign = "fullscreen";
var_03.vertalign = "fullscreen";
var_03.alpha = param_01;
var_03.foreground = 1;
return var_03;
}
//Function Number: 35
create_client_overlay_custom_size(param_00,param_01,param_02,param_03,param_04)
{
var_05 = maps\_utility::get_player_from_self();
var_06 = newclienthudelem(var_05);
if(!isdefined(param_04))
{
param_04 = 1;
}
if(!isdefined(param_02))
{
param_02 = 0;
}
if(!isdefined(param_03))
{
param_03 = 0;
}
var_06.x = param_02;
var_06.y = param_03;
var_06 setshader(param_00,int(640 * param_04),int(480 * param_04));
var_06.alignx = "center";
var_06.aligny = "middle";
var_06.sort = 1;
var_06.horzalign = "center";
var_06.vertalign = "middle";
var_06.alpha = param_01;
var_06.foreground = 1;
return var_06;
}
//Function Number: 36
create_client_overlay_fullscreen(param_00,param_01,param_02,param_03,param_04)
{
var_05 = maps\_utility::get_player_from_self();
var_06 = newclienthudelem(var_05);
if(!isdefined(param_04))
{
param_04 = 1;
}
var_06.x = param_02;
var_06.y = param_03;
var_06 setshader(param_00,int(640 * param_04),int(480 * param_04));
var_06.alignx = "center";
var_06.aligny = "middle";
var_06.sort = 1;
var_06.horzalign = "fullscreen";
var_06.vertalign = "fullscreen";
var_06.alpha = param_01;
var_06.foreground = 1;
return var_06;
}

View File

@ -0,0 +1,342 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_hud_weapons.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 11
* Decompile Time: 195 ms
* Timestamp: 10/27/2023 2:34:23 AM
*******************************************************************/
//Function Number: 1
registerweaponinfo(param_00,param_01,param_02,param_03)
{
level.weaponinfo[param_00]["type"] = param_02;
level.weaponinfo[param_00]["clip"] = param_03;
level.weaponinfo[param_00]["string"] = param_01;
precachestring(param_01);
}
//Function Number: 2
func_3BB0(param_00)
{
if(!isdefined(level.weaponinfo[param_00]))
{
return 0;
}
return 1;
}
//Function Number: 3
func_3BB1(param_00)
{
return level.weaponinfo[param_00]["type"];
}
//Function Number: 4
func_3BB2(param_00)
{
return level.weaponinfo[param_00]["clip"];
}
//Function Number: 5
getweaponinfostring(param_00)
{
return level.weaponinfo[param_00]["string"];
}
//Function Number: 6
init()
{
precacheshader("hud_bullets_rifle");
precacheshader("hud_bullets_pistol");
precacheshader("hud_bullets_sniper");
precacheshader("hud_bullets_spread");
precacheshader("hud_bullets_support_front");
precacheshader("hud_bullets_support_back");
level.bulletalphas = [];
level.bulletalphas[level.bulletalphas.size] = 1;
level.bulletalphas[level.bulletalphas.size] = 0.996;
level.bulletalphas[level.bulletalphas.size] = 0.949;
level.bulletalphas[level.bulletalphas.size] = 0.909;
level.bulletalphas[level.bulletalphas.size] = 0.87;
level.bulletalphas[level.bulletalphas.size] = 0.835;
level.bulletalphas[level.bulletalphas.size] = 0.803;
level.bulletalphas[level.bulletalphas.size] = 0.776;
level.bulletalphas[level.bulletalphas.size] = 0.749;
level.bulletalphas[level.bulletalphas.size] = 0.721;
level.bulletalphas[level.bulletalphas.size] = 0.698;
level.bulletalphas[level.bulletalphas.size] = 0.674;
level.bulletalphas[level.bulletalphas.size] = 0.654;
level.bulletalphas[level.bulletalphas.size] = 0.635;
level.bulletalphas[level.bulletalphas.size] = 0.615;
level.bulletalphas[level.bulletalphas.size] = 0.596;
level.bulletalphas[level.bulletalphas.size] = 0.58;
level.bulletalphas[level.bulletalphas.size] = 0.564;
level.bulletalphas[level.bulletalphas.size] = 0.549;
level.bulletalphas[level.bulletalphas.size] = 0.537;
level.bulletalphas[level.bulletalphas.size] = 0.521;
level.bulletalphas[level.bulletalphas.size] = 0.509;
level.bulletalphas[level.bulletalphas.size] = 0.498;
level.weaponinfo = [];
registerweaponinfo("ak47",&"WEAPON_AK47_FULLAUTO","rifle",30);
registerweaponinfo("ak47_semi",&"WEAPON_AK47_SEMIAUTO","rifle",30);
registerweaponinfo("ak47_grenadier",&"WEAPON_AK47","rifle",30);
registerweaponinfo("ak74u",&"WEAPON_AK74U_FULLAUTO","rifle",30);
registerweaponinfo("ak74u_semi",&"WEAPON_AK74U_SEMIAUTO","rifle",30);
registerweaponinfo("beretta",&"WEAPON_BERETTA","pistol",15);
registerweaponinfo("g36c",&"WEAPON_G36C","rifle",30);
registerweaponinfo("m14_scoped",&"WEAPON_M14","sniper",10);
registerweaponinfo("m16_basic",&"WEAPON_M16A4_FULLAUTO","rifle",30);
registerweaponinfo("m16_basic_semi",&"WEAPON_M16A4_SEMIAUTO","rifle",30);
registerweaponinfo("m16_grenadier",&"WEAPON_M16","rifle",30);
registerweaponinfo("m203",&"WEAPON_M203","grenade",1);
registerweaponinfo("rpg",&"WEAPON_RPG","grenade",5);
registerweaponinfo("saw",&"WEAPON_SAW","support",100);
registerweaponinfo("m4_grunt",&"WEAPON_M4_FULLAUTO","rifle",30);
registerweaponinfo("m4_grunt_semi",&"WEAPON_M4_SEMIAUTO","rifle",30);
registerweaponinfo("m4_grenadier",&"WEAPON_M4","rifle",30);
registerweaponinfo("m40a3",&"WEAPON_M40A3","sniper",10);
registerweaponinfo("mp5",&"WEAPON_MP5","smg",30);
registerweaponinfo("mp5_silencer",&"WEAPON_MP5SD","smg",30);
registerweaponinfo("usp",&"WEAPON_USP","pistol",10);
registerweaponinfo("at4",&"WEAPON_AT4","rocketlauncher",1);
registerweaponinfo("dragunov",&"WEAPON_DRAGUNOV","sniper",10);
registerweaponinfo("g3",&"WEAPON_G3","rifle",30);
registerweaponinfo("winchester1200",&"WEAPON_WINCHESTER1200","shotgun",4);
registerweaponinfo("uzi",&"WEAPON_UZI","smg",32);
level.player func_3BB5();
}
//Function Number: 7
func_3BB5()
{
if(!isdefined(self.var_3BB6))
{
self.var_3BB6 = [];
}
if(!isdefined(self.var_3BB6[0]))
{
self.var_3BB6[0] = maps\_hud_util::createicon(undefined,24,96);
self.var_3BB6[0] maps\_hud_util::setpoint("BOTTOMRIGHT","BOTTOMRIGHT",-6,-47);
self.var_3BB6[0].sort = 10;
}
if(!isdefined(self.var_3BB6[1]))
{
self.var_3BB6[1] = maps\_hud_util::createicon(undefined,24,96);
self.var_3BB6[1] maps\_hud_util::setpoint("BOTTOMRIGHT","BOTTOMRIGHT",-6,-47);
self.var_3BB6[1].color = (0.7,0.7,0.7);
self.var_3BB6[1].sort = 9;
}
if(!isdefined(self.var_3BB6[2]))
{
self.var_3BB6[2] = maps\_hud_util::createicon(undefined,24,96);
self.var_3BB6[2] maps\_hud_util::setpoint("BOTTOMRIGHT","BOTTOMRIGHT",-6,-47);
self.var_3BB6[2].sort = 10;
}
if(!isdefined(self.var_3BB6[3]))
{
self.var_3BB6[3] = maps\_hud_util::createicon(undefined,24,96);
self.var_3BB6[3] maps\_hud_util::setpoint("BOTTOMRIGHT","BOTTOMRIGHT",-6,-47);
self.var_3BB6[3].color = (0.7,0.7,0.7);
self.var_3BB6[3].sort = 9;
}
if(!isdefined(self.var_3BB6[4]))
{
self.var_3BB6[4] = maps\_hud_util::createicon(undefined,24,96);
self.var_3BB6[4] maps\_hud_util::setpoint("BOTTOMRIGHT","BOTTOMRIGHT",-6,-47);
self.var_3BB6[4].sort = 10;
}
thread func_3BB7();
}
//Function Number: 8
func_3BB7()
{
self endon("death");
var_00 = -1;
var_01 = "";
var_02 = "";
for(;;)
{
var_03 = self getcurrentweapon();
if(func_3BB0(var_03))
{
var_04 = func_3BB1(var_03);
var_05 = self getweaponammoclip(self getcurrentweapon());
if(var_03 != var_01 && var_04 != var_02)
{
func_3BB8(var_04);
var_01 = var_03;
var_02 = var_04;
var_00 = -1;
}
if(var_05 != var_00)
{
updatehudweaponammo(var_03,var_05);
var_00 = var_05;
}
}
wait 0.05;
}
}
//Function Number: 9
func_3BB8(param_00)
{
self.pers["weaponType"] = param_00;
if(!isdefined(self.var_3BB6))
{
return;
}
for(var_01 = 0;var_01 < self.var_3BB6.size;var_01++)
{
self.var_3BB6[var_01].alpha = 0;
}
switch(param_00)
{
case "pistol":
self.var_3BB6[0] maps\_hud_util::setpoint("BOTTOMRIGHT","BOTTOMRIGHT",-6,-47);
self.var_3BB6[0] maps\_hud_util::seticonshader("hud_bullets_pistol");
self.var_3BB6[0].alpha = 1;
break;
case "smg":
self.var_3BB6[0] maps\_hud_util::setpoint("BOTTOMRIGHT","BOTTOMRIGHT",-6,-47);
self.var_3BB6[0] maps\_hud_util::seticonshader("hud_bullets_rifle");
self.var_3BB6[1] maps\_hud_util::seticonshader("hud_bullets_rifle");
self.var_3BB6[1] maps\_hud_util::setpoint("BOTTOMRIGHT","BOTTOMRIGHT",-4,-50);
self.var_3BB6[0].alpha = 1;
self.var_3BB6[1].alpha = 1;
break;
case "rifle":
self.var_3BB6[0] maps\_hud_util::setpoint("BOTTOMRIGHT","BOTTOMRIGHT",-6,-47);
self.var_3BB6[0] maps\_hud_util::seticonshader("hud_bullets_rifle");
self.var_3BB6[1] maps\_hud_util::seticonshader("hud_bullets_rifle");
self.var_3BB6[1] maps\_hud_util::setpoint("BOTTOMRIGHT","BOTTOMRIGHT",-4,-50);
self.var_3BB6[0].alpha = 1;
self.var_3BB6[1].alpha = 1;
break;
case "sniper":
self.var_3BB6[0] maps\_hud_util::setpoint("BOTTOMRIGHT","BOTTOMRIGHT",-6,-47);
self.var_3BB6[0] maps\_hud_util::seticonshader("hud_bullets_sniper");
self.var_3BB6[0].alpha = 1;
break;
case "spread":
self.var_3BB6[0] maps\_hud_util::setpoint("BOTTOMRIGHT","BOTTOMRIGHT",-6,-47);
self.var_3BB6[0] maps\_hud_util::seticonshader("hud_bullets_spread");
self.var_3BB6[0].alpha = 1;
break;
case "support":
var_02 = 0;
for(var_01 = 0;var_01 < 5;var_01++)
{
self.var_3BB6[var_01] maps\_hud_util::setpoint("BOTTOMRIGHT","BOTTOMRIGHT",-6 + var_02,-70);
self.var_3BB6[var_01].alpha = 1;
if(var_01 % 2)
{
self.var_3BB6[var_01] maps\_hud_util::seticonshader("hud_bullets_support_back");
}
else
{
self.var_3BB6[var_01] maps\_hud_util::seticonshader("hud_bullets_support_front");
}
var_02 = var_02 - 14;
}
break;
}
}
//Function Number: 10
gethudweapontype()
{
return self.pers["weaponType"];
}
//Function Number: 11
updatehudweaponammo(param_00,param_01)
{
if(!isdefined(self.var_3BB6))
{
return;
}
switch(gethudweapontype())
{
case "pistol":
var_02 = 15 - func_3BB2(param_00);
var_03 = func_3BB2(param_00) - param_01;
self.var_3BB6[0].alpha = level.bulletalphas[var_02 + var_03];
break;
case "rifle":
var_03 = func_3BB2(param_00) - param_01;
var_04 = int(var_03 / 2);
var_04 = var_04 + var_03 % 2;
var_05 = int(var_03 / 2);
self.var_3BB6[0].alpha = level.bulletalphas[var_04];
self.var_3BB6[1].alpha = level.bulletalphas[var_05];
break;
case "smg":
var_03 = func_3BB2(param_00) - param_01;
var_04 = int(var_03 / 2);
var_04 = var_04 + var_03 % 2;
var_05 = int(var_03 / 2);
self.var_3BB6[0].alpha = level.bulletalphas[var_04];
self.var_3BB6[1].alpha = level.bulletalphas[var_05];
break;
case "sniper":
var_02 = 15 - func_3BB2(param_00);
var_03 = func_3BB2(param_00) - param_01;
self.var_3BB6[0].alpha = level.bulletalphas[var_02 + var_03];
break;
case "spread":
var_02 = 15 - func_3BB2(param_00);
var_03 = func_3BB2(param_00) - param_01;
self.var_3BB6[0].alpha = level.bulletalphas[var_02 + var_03];
break;
case "support":
var_02 = 100 - func_3BB2(param_00);
var_03 = func_3BB2(param_00) - param_01;
var_03 = var_02 + var_03;
var_06 = 20;
for(var_07 = 4;var_07 >= 0;var_07--)
{
if(var_03 > var_06)
{
self.var_3BB6[var_07].alpha = 0;
}
else if(var_06 - var_03 <= 20)
{
self.var_3BB6[var_07].alpha = level.bulletalphas[var_03 - var_06 - 20];
}
else
{
self.var_3BB6[var_07].alpha = 1;
}
var_06 = var_06 + 20;
}
break;
}
}

View File

@ -0,0 +1,320 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_intelligence.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 16
* Decompile Time: 324 ms
* Timestamp: 10/27/2023 2:35:29 AM
*******************************************************************/
//Function Number: 1
main()
{
if(maps\_utility::is_iw4_map_sp())
{
return;
}
precachestring(&"SCRIPT_INTELLIGENCE_OF_FOURTYSIX");
precachestring(&"SCRIPT_INTELLIGENCE_PREV_FOUND");
level.intel_items = func_19D0();
setdvar("ui_level_cheatpoints",level.intel_items.size);
level.intel_counter = 0;
setdvar("ui_level_player_cheatpoints",level.intel_counter);
level.table_origins = func_19D2();
func_19CB();
if(maps\_utility::is_specialop())
{
remove_all_intel();
return;
}
intel_think();
wait 0.05;
}
//Function Number: 2
remove_all_intel()
{
foreach(var_01 in level.intel_items)
{
if(!isdefined(var_01.removed))
{
var_01 remove_intel_item();
}
}
}
//Function Number: 3
remove_intel_item()
{
self.removed = 1;
self.item hide();
self.item notsolid();
common_scripts\utility::trigger_off();
level.intel_counter++;
setdvar("ui_level_player_cheatpoints",level.intel_counter);
self notify("end_trigger_thread");
}
//Function Number: 4
func_19CB()
{
foreach(var_01 in level.intel_items)
{
var_02 = var_01.origin;
var_01.var_19CC = func_19DA(var_02);
}
}
//Function Number: 5
intel_think()
{
foreach(var_01 in level.intel_items)
{
if(var_01 func_19CF())
{
var_01 remove_intel_item();
continue;
}
var_01 thread wait_for_pickup();
var_01 thread poll_for_found();
}
}
//Function Number: 6
poll_for_found()
{
self endon("end_loop_thread");
while(!func_19CF())
{
wait 0.1;
}
remove_intel_item();
}
//Function Number: 7
func_19CF()
{
foreach(var_01 in level.players)
{
if(!var_01 getplayerintelisfound(self.var_19CC))
{
return 0;
}
}
return 1;
}
//Function Number: 8
func_19D0()
{
var_00 = getentarray("intelligence_item","targetname");
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
var_00[var_01].item = getent(var_00[var_01].target,"targetname");
var_00[var_01].var_19D1 = 0;
}
return var_00;
}
//Function Number: 9
func_19D2()
{
var_00 = [];
for(var_01 = 1;var_01 <= 64;var_01++)
{
var_02 = tablelookup("maps/_intel_items.csv",0,var_01,4);
if(isdefined(var_02) && var_02 != "undefined")
{
var_03 = strtok(var_02,",");
for(var_04 = 0;var_04 < var_03.size;var_04++)
{
var_03[var_04] = int(var_03[var_04]);
}
var_00[var_01] = (var_03[0],var_03[1],var_03[2]);
continue;
}
var_00[var_01] = undefined;
}
return var_00;
}
//Function Number: 10
wait_for_pickup()
{
self endon("end_trigger_thread");
if(self.classname == "trigger_use")
{
self sethintstring(&"SCRIPT_INTELLIGENCE_PICKUP");
self usetriggerrequirelookat();
}
self waittill("trigger",var_00);
self notify("end_loop_thread");
intel_feedback(var_00);
save_intel_for_all_players();
updategamerprofileall();
waittillframeend;
remove_intel_item();
}
//Function Number: 11
save_intel_for_all_players()
{
foreach(var_01 in level.players)
{
if(var_01 getplayerintelisfound(self.var_19CC))
{
continue;
}
var_01 setplayerintelfound(self.var_19CC);
}
logstring("found intel item " + self.var_19CC);
maps\_endmission::updatesppercent();
}
//Function Number: 12
func_19D5()
{
var_00 = self getlocalplayerprofiledata("cheatPoints");
self setlocalplayerprofiledata("cheatPoints",var_00 + 1);
}
//Function Number: 13
intel_feedback(param_00)
{
self.item hide();
self.item notsolid();
level thread common_scripts\utility::play_sound_in_space("intelligence_pickup",self.item.origin);
var_01 = 3000;
var_02 = 700;
var_03 = var_01 + var_02 / 1000;
foreach(var_05 in level.players)
{
if(param_00 != var_05 && var_05 getplayerintelisfound(self.var_19CC))
{
continue;
}
var_06 = var_05 maps\_hud_util::createclientfontstring("objective",1.5);
var_06.glowcolor = (0.7,0.7,0.3);
var_06.glowalpha = 1;
var_06 setup_hud_elem();
var_06.y = -60;
var_06 setpulsefx(60,var_01,var_02);
var_07 = 0;
if(param_00 == var_05 && var_05 getplayerintelisfound(self.var_19CC))
{
var_06.label = &"SCRIPT_INTELLIGENCE_PREV_FOUND";
}
else
{
var_06.label = &"SCRIPT_INTELLIGENCE_OF_FOURTYSIX";
var_05 func_19D5();
var_07 = var_05 getlocalplayerprofiledata("cheatPoints");
var_06 setvalue(var_07);
}
if(var_07 >= 22)
{
var_05 maps\_utility::player_giveachievement_wrapper("INFORMANT");
}
if(var_07 == 46)
{
var_05 maps\_utility::player_giveachievement_wrapper("SCOUT_LEADER");
}
var_06 common_scripts\utility::delaycall(var_03,::destroy);
}
}
//Function Number: 14
setup_hud_elem()
{
self.color = (1,1,1);
self.alpha = 1;
self.x = 0;
self.alignx = "center";
self.aligny = "middle";
self.horzalign = "center";
self.vertalign = "middle";
self.foreground = 1;
}
//Function Number: 15
assert_if_identical_origins()
{
var_00 = [];
var_01 = 1;
while(var_01 < 65)
{
var_02 = tablelookup("maps/_intel_items.csv",0,var_01,4);
var_03 = strtok(var_02,",");
var_01 = 0;
while(var_01 < var_03.size)
{
var_02++ = var_41[var_01];
}
var_01[var_02] = (var_41[0],var_41[1],var_41[2]);
var_02++ = int(var_03[var_01]);
}
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
if(!isdefined(var_01[var_02]))
{
continue;
}
if(var_01[var_02] == "undefined")
{
continue;
}
for(var_04 = 0;var_04 < var_01.size;var_04++)
{
if(!isdefined(var_01[var_04]))
{
}
else if(var_01[var_04] == "undefined")
{
}
else if(var_02 == var_04)
{
}
else if(var_01[var_02] == var_01[var_04])
{
}
}
}
}
//Function Number: 16
func_19DA(param_00)
{
for(var_01 = 1;var_01 < level.table_origins.size + 1;var_01++)
{
if(!isdefined(level.table_origins[var_01]))
{
continue;
}
if(distancesquared(param_00,level.table_origins[var_01]) < squared(75))
{
return var_01;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,750 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_introscreen.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 31
* Decompile Time: 533 ms
* Timestamp: 10/27/2023 2:35:23 AM
*******************************************************************/
//Function Number: 1
main()
{
common_scripts\utility::flag_init("pullup_weapon");
common_scripts\utility::flag_init("introscreen_complete");
common_scripts\utility::flag_init("safe_for_objectives");
common_scripts\utility::flag_init("introscreen_complete");
maps\_utility::func_614(10,::common_scripts\utility::flag_set,"safe_for_objectives");
level.linefeed_delay = 16;
precacheshader("black");
precacheshader("white");
if(getdvar("introscreen") == "")
{
setdvar("introscreen","1");
}
if(isdefined(level.credits_active))
{
return;
}
main_old_maps();
switch(get_introscreen_levelname())
{
case "london":
precachestring(&"LONDON_INTROSCREEN_LINE_1");
precachestring(&"LONDON_INTROSCREEN_LINE_2");
precachestring(&"LONDON_INTROSCREEN_LINE_3");
precachestring(&"LONDON_INTROSCREEN_LINE_4");
precachestring(&"LONDON_INTROSCREEN_LINE_5");
func_193B();
break;
case "castle":
precachestring(&"CASTLE_INTROSCREEN_LINE_1");
precachestring(&"CASTLE_INTROSCREEN_LINE_2");
precachestring(&"CASTLE_INTROSCREEN_LINE_3");
precachestring(&"CASTLE_INTROSCREEN_LINE_4");
precachestring(&"CASTLE_INTROSCREEN_LINE_5");
func_193B();
break;
case "prague":
precachestring(&"PRAGUE_INTROSCREEN_LINE_1");
precachestring(&"PRAGUE_INTROSCREEN_LINE_2");
precachestring(&"PRAGUE_INTROSCREEN_LINE_3");
precachestring(&"PRAGUE_INTROSCREEN_LINE_4");
precachestring(&"PRAGUE_INTROSCREEN_LINE_5");
func_193B();
break;
case "prague_escape":
precachestring(&"PRAGUE_ESCAPE_INTROSCREEN_LINE_1");
precachestring(&"PRAGUE_ESCAPE_INTROSCREEN_LINE_2");
precachestring(&"PRAGUE_ESCAPE_INTROSCREEN_LINE_3");
precachestring(&"PRAGUE_ESCAPE_INTROSCREEN_LINE_4");
precachestring(&"PRAGUE_ESCAPE_INTROSCREEN_LINE_5");
func_193B();
break;
case "payback":
precachestring(&"PAYBACK_INTROSCREEN_LINE_1");
precachestring(&"PAYBACK_INTROSCREEN_LINE_2");
precachestring(&"PAYBACK_INTROSCREEN_LINE_3");
precachestring(&"PAYBACK_INTROSCREEN_LINE_4");
precachestring(&"PAYBACK_INTROSCREEN_LINE_5");
func_193B();
break;
case "example":
break;
case "hamburg":
precachestring(&"TANKCOMMANDER_INTROSCREEN_LINE_1");
precachestring(&"TANKCOMMANDER_INTROSCREEN_LINE_2");
precachestring(&"TANKCOMMANDER_INTROSCREEN_LINE_3");
precachestring(&"TANKCOMMANDER_INTROSCREEN_LINE_4");
func_193B();
break;
case "rescue_2":
precachestring(&"RESCUE_2_INTROSCREEN_LINE_1");
precachestring(&"RESCUE_2_INTROSCREEN_LINE_2");
precachestring(&"RESCUE_2_INTROSCREEN_LINE_3");
precachestring(&"RESCUE_2_INTROSCREEN_LINE_4");
func_193B();
break;
default:
wait 0.05;
level notify("finished final intro screen fadein");
wait 0.05;
level notify("starting final intro screen fadeout");
wait 0.05;
level notify("controls_active");
wait 0.05;
common_scripts\utility::flag_set("introscreen_complete");
break;
}
}
//Function Number: 2
func_1934(param_00)
{
var_01 = getarraykeys(param_00);
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
var_03 = var_01[var_02];
var_04 = 1;
var_05 = var_02 * var_04 + 1;
maps\_utility::func_614(var_05,::func_1940,param_00[var_03],param_00.size - var_02 - 1,var_04,var_03);
}
}
//Function Number: 3
introscreen_generic_black_fade_in(param_00,param_01,param_02)
{
introscreen_generic_fade_in("black",param_00,param_01,param_02);
}
//Function Number: 4
introscreen_generic_white_fade_in(param_00,param_01,param_02)
{
introscreen_generic_fade_in("white",param_00,param_01,param_02);
}
//Function Number: 5
introscreen_generic_fade_in(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_02))
{
param_02 = 1.5;
}
var_04 = newhudelem();
var_04.x = 0;
var_04.y = 0;
var_04.horzalign = "fullscreen";
var_04.vertalign = "fullscreen";
var_04.foreground = 1;
var_04 setshader(param_00,640,480);
if(isdefined(param_03) && param_03 > 0)
{
var_04.alpha = 0;
var_04 fadeovertime(param_03);
var_04.alpha = 1;
wait param_03;
}
wait param_01;
if(param_02 > 0)
{
var_04 fadeovertime(param_02);
}
var_04.alpha = 0;
wait param_02;
setsaveddvar("com_cinematicEndInWhite",0);
}
//Function Number: 6
introscreen_create_line(param_00)
{
var_01 = level.introstring.size;
var_02 = var_01 * 30;
if(level.console)
{
var_02 = var_02 - 60;
}
level.introstring[var_01] = newhudelem();
level.introstring[var_01].x = 0;
level.introstring[var_01].y = var_02;
level.introstring[var_01].alignx = "center";
level.introstring[var_01].aligny = "middle";
level.introstring[var_01].horzalign = "center";
level.introstring[var_01].vertalign = "middle";
level.introstring[var_01].sort = 1;
level.introstring[var_01].foreground = 1;
level.introstring[var_01].fontscale = 1.75;
level.introstring[var_01] settext(param_00);
level.introstring[var_01].alpha = 0;
level.introstring[var_01] fadeovertime(1.2);
level.introstring[var_01].alpha = 1;
}
//Function Number: 7
func_193A()
{
for(var_00 = 0;var_00 < level.introstring.size;var_00++)
{
level.introstring[var_00] fadeovertime(1.5);
level.introstring[var_00].alpha = 0;
}
wait 1.5;
for(var_00 = 0;var_00 < level.introstring.size;var_00++)
{
level.introstring[var_00] destroy();
}
}
//Function Number: 8
func_193B(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
waittillframeend;
waittillframeend;
if(slamzoom_intro())
{
return;
}
if(func_195E())
{
return;
}
switch(get_introscreen_levelname())
{
case "london":
london_intro();
break;
case "castle":
func_1942();
break;
case "prague":
prague_intro();
break;
case "prague_escape":
prague_escape_intro();
break;
case "payback":
payback_intro();
break;
case "rescue_2":
rescue_2_intro();
break;
case "hamburg":
func_1944();
break;
}
level.var_193C = newhudelem();
level.var_193C.x = 0;
level.var_193C.y = 0;
level.var_193C.horzalign = "fullscreen";
level.var_193C.vertalign = "fullscreen";
level.var_193C.foreground = 1;
level.var_193C setshader("black",640,480);
level.player freezecontrols(1);
wait 0.05;
level.introstring = [];
if(isdefined(param_00))
{
introscreen_create_line(param_00);
}
if(isdefined(param_04))
{
wait param_04;
}
else
{
wait 2;
}
if(isdefined(param_01))
{
introscreen_create_line(param_01);
}
if(isdefined(param_02))
{
introscreen_create_line(param_02);
}
if(isdefined(param_03))
{
if(isdefined(param_05))
{
wait param_05;
}
else
{
wait 2;
}
}
if(isdefined(param_03))
{
introscreen_create_line(param_03);
}
level notify("finished final intro screen fadein");
if(isdefined(param_06))
{
wait param_06;
}
else
{
wait 3;
}
level.var_193C fadeovertime(1.5);
level.var_193C.alpha = 0;
level notify("starting final intro screen fadeout");
level.player freezecontrols(0);
level notify("controls_active");
func_193A();
common_scripts\utility::flag_set("introscreen_complete");
}
//Function Number: 9
_cornerlinethread(param_00,param_01,param_02,param_03)
{
level notify("new_introscreen_element");
if(!isdefined(level.intro_offset))
{
level.intro_offset = 0;
}
else
{
level.intro_offset++;
}
var_04 = func_193F();
var_05 = newhudelem();
var_05.x = 20;
var_05.y = var_04;
var_05.alignx = "left";
var_05.aligny = "bottom";
var_05.horzalign = "left";
var_05.vertalign = "bottom";
var_05.sort = 1;
var_05.foreground = 1;
var_05 settext(param_00);
var_05.alpha = 0;
var_05 fadeovertime(0.2);
var_05.alpha = 1;
var_05.hidewheninmenu = 1;
var_05.fontscale = 2;
var_05.color = (0.8,1,0.8);
var_05.font = "objective";
var_05.glowcolor = (0.3,0.6,0.3);
var_05.glowalpha = 1;
var_06 = int(param_01 * param_02 * 1000 + 4000);
var_05 setpulsefx(30,var_06,700);
thread func_1941(var_05);
if(!isdefined(param_03))
{
return;
}
if(!isstring(param_03))
{
return;
}
if(param_03 != "date")
{
}
}
//Function Number: 10
func_193F()
{
return level.intro_offset * 20 - 82;
}
//Function Number: 11
func_1940(param_00,param_01,param_02,param_03)
{
thread _cornerlinethread(param_00,param_01,param_02,param_03);
}
//Function Number: 12
func_1941(param_00)
{
wait level.linefeed_delay;
param_00 notify("destroying");
level.intro_offset = undefined;
var_01 = 0.5;
param_00 fadeovertime(var_01);
param_00.alpha = 0;
wait var_01;
param_00 notify("destroy");
param_00 destroy();
}
//Function Number: 13
func_1942()
{
level.player freezecontrols(1);
savegame("levelstart",&"AUTOSAVE_LEVELSTART","whatever",1);
thread introscreen_generic_black_fade_in(5);
var_00 = [];
func_1934(var_41);
wait 5;
common_scripts\utility::flag_set("introscreen_complete");
level.player freezecontrols(0);
}
//Function Number: 14
london_intro()
{
level.player freezecontrols(1);
savegame("levelstart",&"AUTOSAVE_LEVELSTART","whatever",1);
thread introscreen_generic_black_fade_in(5);
var_00 = [];
func_1934(var_41);
wait 5;
common_scripts\utility::flag_set("introscreen_complete");
level.player freezecontrols(0);
}
//Function Number: 15
func_1944()
{
savegame("levelstart",&"AUTOSAVE_LEVELSTART","whatever",1);
thread introscreen_generic_black_fade_in(3.5);
var_00 = [];
func_1934(var_41);
wait 3;
common_scripts\utility::flag_set("introscreen_complete");
}
//Function Number: 16
prague_intro()
{
level.player freezecontrols(1);
common_scripts\utility::flag_wait("fade_up");
thread introscreen_generic_black_fade_in(4,5);
var_00 = [];
level.player common_scripts\utility::delaycall(4,::freezecontrols,0);
common_scripts\utility::flag_wait("city_reveal");
maps\_utility::func_614(9.25,::func_1934,var_41);
}
//Function Number: 17
prague_escape_intro()
{
level.player freezecontrols(1);
thread introscreen_generic_black_fade_in(8,0.5);
var_00 = [];
func_1934(var_41);
wait 8;
common_scripts\utility::flag_set("introscreen_complete");
level.player freezecontrols(0);
}
//Function Number: 18
payback_intro()
{
level.player freezecontrols(1);
savegame("levelstart",&"AUTOSAVE_LEVELSTART","whatever",1);
level notify("introscreen_prime_audio");
level notify("introscreen_fade_start");
wait 2;
level.player freezecontrols(0);
var_00 = 9;
var_01 = 30;
var_02 = 10;
level.hudtimestamp = var_00 * 60 * 60 + var_01 * 60 + var_02;
level.var_194A = gettime();
var_03 = [];
func_1934(var_41);
wait 2;
}
//Function Number: 19
feedline_delay()
{
wait 2;
}
//Function Number: 20
slamzoom_intro()
{
var_00 = [];
if(!getdvarint("newintro"))
{
}
var_01 = isdefined(level.customintroangles);
if(!isdefined(var_41[get_introscreen_levelname()]))
{
return 0;
}
if(!isdefined(level.dontrevivehud))
{
thread revive_ammo_counter();
}
thread hide_hud();
thread weapon_pullout();
level.player freezecontrols(1);
var_02 = ::feedline_delay;
var_03 = 16000;
var_04 = 1;
var_05 = 0;
var_06 = 0;
if(var_04)
{
var_07 = [];
switch(get_introscreen_levelname())
{
case "london":
cinematicingamesync("estate_fade");
var_07 = [];
var_03 = 4000;
setsaveddvar("sm_sunSampleSizeNear",0.6);
maps\_utility::func_614(0.5,::ramp_out_sunsample_over_time,0.9);
break;
var_41[var_07.size]
&"LONDON_INTROSCREEN_LINE_4"
var_41[var_07.size]
&"LONDON_INTROSCREEN_LINE_3"
var_41[var_07.size]
&"LONDON_INTROSCREEN_LINE_2"
var_41[var_07.size]
&"LONDON_INTROSCREEN_LINE_1"
break;
}
maps\_utility::add_func(var_02);
maps\_utility::add_func(::func_1934,var_07);
thread maps\_utility::func_1950();
}
var_08 = level.player.origin;
level.player playersetstreamorigin(var_08);
level.player.origin = var_08 + (0,0,var_03);
var_09 = spawn("script_model",(69,69,69));
var_09.origin = level.player.origin;
var_09 setmodel("tag_origin");
if(var_01)
{
var_09.angles = (0,level.customintroangles[1],0);
}
else
{
var_09.angles = level.player.angles;
}
level.player playerlinkto(var_09,undefined,1,0,0,0,0);
var_09.angles = (var_09.angles[0] + 89,var_09.angles[1],0);
wait var_05;
var_09 moveto(var_08 + (0,0,0),2,0,2);
wait 1;
wait 0.5;
if(var_01)
{
var_09 rotateto(level.customintroangles,0.5,0.3,0.2);
}
else
{
var_09 rotateto((var_09.angles[0] - 89,var_09.angles[1],0),0.5,0.3,0.2);
}
if(!var_06)
{
savegame("levelstart",&"AUTOSAVE_LEVELSTART","whatever",1);
}
wait 0.5;
common_scripts\utility::flag_set("pullup_weapon");
wait 0.2;
level.player unlink();
level.player freezecontrols(0);
level.player playerclearstreamorigin();
thread common_scripts\utility::play_sound_in_space("ui_screen_trans_in",level.player.origin);
wait 0.2;
thread common_scripts\utility::play_sound_in_space("ui_screen_trans_out",level.player.origin);
wait 0.2;
common_scripts\utility::flag_set("introscreen_complete");
wait 2;
var_09 delete();
return 1;
}
//Function Number: 21
hide_hud()
{
wait 0.05;
setsaveddvar("compass",0);
setsaveddvar("ammoCounterHide","1");
setsaveddvar("hud_showstance","0");
setsaveddvar("actionSlotsHide","1");
}
//Function Number: 22
weapon_pullout()
{
var_00 = level.player getweaponslistall()[0];
level.player disableweapons();
common_scripts\utility::flag_wait("pullup_weapon");
level.player enableweapons();
}
//Function Number: 23
revive_ammo_counter()
{
common_scripts\utility::flag_wait("safe_for_objectives");
if(!isdefined(level.nocompass))
{
setsaveddvar("compass",1);
}
setsaveddvar("ammoCounterHide","0");
setsaveddvar("actionSlotsHide","0");
setsaveddvar("hud_showstance","1");
}
//Function Number: 24
ramp_out_sunsample_over_time(param_00,param_01)
{
var_02 = getdvarfloat("sm_sunSampleSizeNear");
if(!isdefined(param_01))
{
param_01 = 0.25;
}
var_03 = var_02 - param_01;
var_04 = param_00 * 20;
for(var_05 = 0;var_05 <= var_04;var_05++)
{
var_06 = var_05 / var_04;
var_06 = 1 - var_06;
var_07 = var_06 * var_03;
var_08 = param_01 + var_07;
setsaveddvar("sm_sunSampleSizeNear",var_08);
wait 0.05;
}
}
//Function Number: 25
get_introscreen_levelname()
{
if(isdefined(level.introscreen_levelname))
{
return level.introscreen_levelname;
}
return level.script;
}
//Function Number: 26
main_old_maps()
{
switch(get_introscreen_levelname())
{
case "dcburning":
precachestring(&"DCBURNING_INTROSCREEN_1");
precachestring(&"DCBURNING_INTROSCREEN_2");
precachestring(&"DCBURNING_INTROSCREEN_3");
precachestring(&"DCBURNING_INTROSCREEN_4");
precachestring(&"DCBURNING_INTROSCREEN_5");
func_193B();
break;
}
}
//Function Number: 27
cliffhanger_intro_text()
{
wait 17;
var_00 = [];
func_1934(var_41);
}
//Function Number: 28
func_195A()
{
level.player disableweapons();
thread func_195C();
level.var_195B = 1;
level.player freezecontrols(1);
var_00 = newhudelem();
var_00.x = 0;
var_00.y = 0;
var_00.horzalign = "fullscreen";
var_00.vertalign = "fullscreen";
var_00.foreground = 1;
var_00 setshader("black",640,480);
wait 4.25;
wait 3;
level notify("black_fading");
level.var_195B = undefined;
var_00 fadeovertime(1.5);
var_00.alpha = 0;
wait 1.5;
common_scripts\utility::flag_set("introscreen_complete");
level notify("introscreen_complete");
level.player freezecontrols(0);
level.player enableweapons();
wait 0.5;
setsaveddvar("compass",1);
setsaveddvar("ammoCounterHide","0");
setsaveddvar("hud_showStance",1);
common_scripts\utility::flag_wait("player_exiting_start_trench");
var_01 = [];
func_1934(var_41);
}
//Function Number: 29
func_195C()
{
wait 0.05;
setsaveddvar("compass",0);
setsaveddvar("ammoCounterHide","1");
setsaveddvar("hud_showStance",0);
}
//Function Number: 30
rescue_2_intro()
{
var_00 = [];
thread introscreen_generic_black_fade_in(5.4,8);
func_1934(var_41);
}
//Function Number: 31
func_195E()
{
switch(get_introscreen_levelname())
{
case "dcburning":
func_195A();
return 1;
}
return 0;
}

View File

@ -0,0 +1,132 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_inventory.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 6
* Decompile Time: 92 ms
* Timestamp: 10/27/2023 2:34:23 AM
*******************************************************************/
//Function Number: 1
main()
{
level.inventory = [];
}
//Function Number: 2
func_3BBC(param_00,param_01)
{
if(1)
{
return spawnstruct();
}
if(!isdefined(param_01))
{
param_01 = 0;
}
var_02 = newhudelem();
var_02.alignx = "right";
var_02.aligny = "top";
var_02.horzalign = "right";
var_02.vertalign = "top";
var_02.alpha = 0;
var_02.index = level.inventory.size;
var_02.var_3BBD = param_01;
var_02 setshader(param_00,40,40);
level.inventory[var_02.index] = var_02;
func_3BC0();
return var_02;
}
//Function Number: 3
func_3BBE()
{
if(1)
{
return;
}
self.var_3BBD = 0;
func_3BC0();
}
//Function Number: 4
func_3BBF()
{
if(1)
{
return;
}
self.var_3BBD = 1;
func_3BC0();
}
//Function Number: 5
func_3BC0()
{
if(1)
{
return;
}
var_00 = -18;
var_01 = 8;
var_02 = 42;
var_03 = 0;
for(var_04 = 0;var_04 < level.inventory.size;var_04++)
{
if(level.inventory[var_04].var_3BBD)
{
var_05 = var_01 + var_02 * var_03;
if(var_05 != level.inventory[var_04].y)
{
level.inventory[var_04].x = var_00;
if(level.inventory[var_04].alpha != 0)
{
level.inventory[var_04] moveovertime(0.3);
}
level.inventory[var_04].y = var_05;
}
if(level.inventory[var_04].alpha != 1)
{
level.inventory[var_04] fadeovertime(0.3);
level.inventory[var_04].alpha = 1;
}
var_03++;
continue;
}
level.inventory[var_04] fadeovertime(0.3);
level.inventory[var_04].alpha = 0;
}
}
//Function Number: 6
func_3BC1()
{
if(1)
{
return;
}
self destroy();
var_00 = 0;
var_01 = level.inventory;
level.inventory = [];
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
if(isdefined(var_01[var_02]))
{
level.inventory[level.inventory.size] = var_01[var_02];
}
}
func_3BC0();
}

File diff suppressed because it is too large Load Diff

236
MW3/Xbox/SP/maps/_leak.gsc Normal file
View File

@ -0,0 +1,236 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_leak.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 11
* Decompile Time: 169 ms
* Timestamp: 10/27/2023 2:34:24 AM
*******************************************************************/
//Function Number: 1
main()
{
var_00 = getentarray("leaking","targetname");
if(!var_00.size)
{
return;
}
var_00 thread precachefx();
var_00 thread methodsinit();
common_scripts\utility::array_thread(var_00,::leak_setup);
}
//Function Number: 2
leak_setup()
{
switch(self.script_noteworthy)
{
case "barrel_oil":
leak_barrel_setup();
break;
case "barrel_acid":
leak_barrel_setup();
break;
case "barrel_sludge":
leak_barrel_setup();
break;
case "barrel_water":
leak_barrel_setup();
break;
}
thread func_3BC7();
}
//Function Number: 3
leak_barrel_setup()
{
self.a = self.origin;
self.up = anglestoup(self.angles);
var_00 = anglestoup((0,90,0));
self.var_1AE7 = self.a + self.up * 22;
self.a = self.a + self.up * 1.5;
self.b = self.a + self.up * 41.4;
self.volume = 25861.65;
self.curvol = self.volume;
var_01 = vectordot(self.up,var_00);
var_02 = self.b;
if(var_01 < 0)
{
var_02 = self.a;
}
var_01 = abs(1 - abs(var_01));
self.lowz = physicstrace(self.var_1AE7,self.var_1AE7 + (0,0,-80))[2];
self.highz = var_02[2] + var_01 * 14;
}
//Function Number: 4
func_3BC7()
{
self setcandamage(1);
self endon("drained");
for(;;)
{
self waittill("damage",var_00,var_01,var_02,var_03,var_04);
if(var_04 == "MOD_MELEE" || var_04 == "MOD_IMPACT")
{
continue;
}
var_03 = self [[ level._leak_methods[var_04] ]](var_03,var_04);
if(!isdefined(var_03))
{
continue;
}
thread func_3BC9(var_03);
}
}
//Function Number: 5
func_3BC9(param_00)
{
var_01 = pointonsegmentnearesttopoint(self.a,self.b,param_00);
var_02 = undefined;
if(var_01 == self.a)
{
var_02 = self.up * -1;
}
else if(var_01 == self.b)
{
var_02 = self.up;
}
else
{
var_02 = vectorfromlinetopoint(self.a,self.b,param_00);
}
var_03 = param_00[2] - self.lowz;
if(var_03 < 0.02)
{
var_03 = 0;
}
var_04 = var_03 / self.highz - self.lowz * self.volume;
if(self.curvol > var_04)
{
while(self.curvol > var_04)
{
playfx(level._effect["leak_interactive_leak"][self.script_noteworthy],param_00,var_02);
self.curvol = self.curvol - 100;
wait 0.1;
}
playfx(level._effect["leak_interactive_drain"][self.script_noteworthy],param_00,var_02);
}
if(self.curvol / self.volume <= 0.05)
{
self notify("drained");
}
}
//Function Number: 6
methodsinit()
{
level._leak_methods = [];
level._leak_methods["MOD_UNKNOWN"] = ::leak_calc_splash;
level._leak_methods["MOD_PISTOL_BULLET"] = ::leak_calc_ballistic;
level._leak_methods["MOD_RIFLE_BULLET"] = ::leak_calc_ballistic;
level._leak_methods["MOD_GRENADE"] = ::leak_calc_splash;
level._leak_methods["MOD_GRENADE_SPLASH"] = ::leak_calc_splash;
level._leak_methods["MOD_PROJECTILE"] = ::leak_calc_splash;
level._leak_methods["MOD_PROJECTILE_SPLASH"] = ::leak_calc_splash;
level._leak_methods["MOD_MELEE"] = ::func_3BCC;
level._leak_methods["MOD_HEAD_SHOT"] = ::func_3BCC;
level._leak_methods["MOD_CRUSH"] = ::func_3BCC;
level._leak_methods["MOD_TELEFRAG"] = ::func_3BCC;
level._leak_methods["MOD_FALLING"] = ::func_3BCC;
level._leak_methods["MOD_SUICIDE"] = ::func_3BCC;
level._leak_methods["MOD_TRIGGER_HURT"] = ::leak_calc_splash;
level._leak_methods["MOD_EXPLOSIVE"] = ::leak_calc_splash;
level._leak_methods["MOD_IMPACT"] = ::func_3BCC;
}
//Function Number: 7
leak_calc_ballistic(param_00,param_01)
{
return param_00;
}
//Function Number: 8
leak_calc_splash(param_00,param_01)
{
var_02 = vectornormalize(vectorfromlinetopoint(self.a,self.b,param_00));
param_00 = pointonsegmentnearesttopoint(self.a,self.b,param_00);
return param_00 + var_02 * 4;
}
//Function Number: 9
func_3BCC(param_00,param_01)
{
return undefined;
}
//Function Number: 10
func_3BCD(param_00,param_01)
{
}
//Function Number: 11
precachefx()
{
for(var_00 = 0;var_00 < self.size;var_00++)
{
if(self[var_00].script_noteworthy != "barrel_oil")
{
continue;
}
level._effect["leak_interactive_leak"][self[var_00].script_noteworthy] = loadfx("impacts/barrel_leak");
level._effect["leak_interactive_drain"][self[var_00].script_noteworthy] = loadfx("impacts/barrel_drain");
break;
}
for(var_00 = 0;var_00 < self.size;var_00++)
{
if(self[var_00].script_noteworthy != "barrel_acid")
{
continue;
}
level._effect["leak_interactive_leak"][self[var_00].script_noteworthy] = loadfx("impacts/barrel_leak");
level._effect["leak_interactive_drain"][self[var_00].script_noteworthy] = loadfx("impacts/barrel_drain");
break;
}
for(var_00 = 0;var_00 < self.size;var_00++)
{
if(self[var_00].script_noteworthy != "barrel_water")
{
continue;
}
level._effect["leak_interactive_leak"][self[var_00].script_noteworthy] = loadfx("impacts/barrel_leak");
level._effect["leak_interactive_drain"][self[var_00].script_noteworthy] = loadfx("impacts/barrel_drain");
break;
}
for(var_00 = 0;var_00 < self.size;var_00++)
{
if(self[var_00].script_noteworthy != "barrel_sludge")
{
continue;
}
level._effect["leak_interactive_leak"][self[var_00].script_noteworthy] = loadfx("impacts/barrel_leak");
level._effect["leak_interactive_drain"][self[var_00].script_noteworthy] = loadfx("impacts/barrel_drain");
break;
}
}

View File

@ -0,0 +1,871 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_lights.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 22
* Decompile Time: 455 ms
* Timestamp: 10/27/2023 2:33:17 AM
*******************************************************************/
//Function Number: 1
func_1207(param_00)
{
return param_00.classname == "light_spot" || param_00.classname == "light_omni" || param_00.classname == "light";
}
//Function Number: 2
func_1208(param_00,param_01,param_02,param_03)
{
self endon("kill_flicker");
var_04 = param_00;
var_05 = 0;
maps\_utility::ent_flag_init("stop_flicker");
for(;;)
{
if(maps\_utility::ent_flag("stop_flicker"))
{
wait 0.05;
continue;
}
var_06 = var_04;
var_04 = param_00 + param_01 - param_00 * randomfloat(1);
if(param_02 != param_03)
{
var_05 = var_05 + randomfloatrange(param_02,param_03);
}
else
{
var_05 = var_05 + param_02;
}
if(var_05 == 0)
{
var_05 = var_05 + 1E-07;
}
var_07 = var_06 - var_04 * 1 / var_05;
while(var_05 > 0 && !maps\_utility::ent_flag("stop_flicker"))
{
self setlightcolor(var_04 + var_07 * var_05);
wait 0.05;
var_05 = var_05 - 0.05;
}
}
}
//Function Number: 3
kill_flicker_when_damaged(param_00)
{
var_01 = getentarray(param_00,"script_noteworthy");
var_02 = undefined;
var_03 = 1E+08;
foreach(var_05 in var_01)
{
var_06 = distance(self.origin,var_05.origin);
if(var_06 < var_03)
{
var_02 = var_05;
var_03 = var_06;
}
}
if(isdefined(var_02))
{
var_02 waittill("damage",var_08,var_09,var_0A,var_0B,var_0C,var_0D,var_0E);
self notify("kill_flicker");
wait 0.05;
self setlightcolor((0,0,0));
}
}
//Function Number: 4
generic_pulsing()
{
if(getdvar("r_reflectionProbeGenerate") == "1")
{
self setlightintensity(0);
return;
}
var_00 = self getlightintensity();
var_01 = 0.05;
var_02 = var_00;
var_03 = 0.3;
var_04 = 0.6;
var_05 = var_00 - var_01 / var_03 / 0.05;
var_06 = var_00 - var_01 / var_04 / 0.05;
for(;;)
{
var_07 = 0;
while(var_07 < var_04)
{
var_02 = var_02 - var_06;
var_02 = clamp(var_02,0,100);
self setlightintensity(var_02);
var_07 = var_07 + 0.05;
wait 0.05;
}
wait 1;
var_07 = 0;
while(var_07 < var_03)
{
var_02 = var_02 + var_05;
var_02 = clamp(var_02,0,100);
self setlightintensity(var_02);
var_07 = var_07 + 0.05;
wait 0.05;
}
wait 0.5;
}
}
//Function Number: 5
generic_double_strobe()
{
if(getdvar("r_reflectionProbeGenerate") == "1")
{
self setlightintensity(0);
return;
}
var_00 = self getlightintensity();
var_01 = 0.05;
var_02 = 0;
var_03 = undefined;
var_04 = undefined;
var_05 = 0;
var_06 = [];
if(isdefined(self.script_noteworthy))
{
var_07 = getentarray(self.script_noteworthy,"targetname");
for(var_08 = 0;var_08 < var_07.size;var_08++)
{
if(func_1207(var_07[var_08]))
{
var_05 = 1;
var_06[var_06.size] = var_07[var_08];
}
if(var_07[var_08].classname == "script_model")
{
var_03 = var_07[var_08];
var_04 = getent(var_03.target,"targetname");
var_02 = 1;
}
}
}
for(;;)
{
self setlightintensity(var_01);
if(var_02)
{
var_03 hide();
var_04 show();
}
wait 0.8;
self setlightintensity(var_00);
if(var_02)
{
var_03 show();
var_04 hide();
}
wait 0.1;
self setlightintensity(var_01);
if(var_02)
{
var_03 hide();
var_04 show();
}
wait 0.12;
self setlightintensity(var_00);
if(var_02)
{
var_03 show();
var_04 hide();
}
wait 0.1;
}
}
//Function Number: 6
func_120C(param_00)
{
var_01 = getentarray("light_flicker_model","targetname");
var_02 = [];
var_03 = maps\_utility::getclosest(param_00,var_01);
if(isdefined(var_03))
{
var_02[0] = var_03;
}
return var_02;
}
//Function Number: 7
generic_flickering()
{
if(getdvar("r_reflectionProbeGenerate") == "1")
{
self setlightintensity(0);
return;
}
self endon("stop_dynamic_light_behavior");
self endon("death");
self.linked_models = 0;
self.var_120F = undefined;
self.unlit_models = undefined;
self.linked_lights = 0;
self.linked_light_ents = [];
self.linked_prefab_ents = undefined;
self.linked_things = [];
if(isdefined(self.script_linkto))
{
self.linked_prefab_ents = common_scripts\utility::get_linked_ents();
foreach(var_01 in self.linked_prefab_ents)
{
if(isdefined(var_01.script_noteworthy) && var_01.script_noteworthy == "on")
{
if(!isdefined(self.var_120F))
{
self.var_120F[0] = var_01;
}
else
{
self.var_120F[self.var_120F.size] = var_01;
}
continue;
}
if(isdefined(var_01.script_noteworthy) && var_01.script_noteworthy == "off")
{
if(!isdefined(self.unlit_models))
{
self.unlit_models[0] = var_01;
}
else
{
self.unlit_models[self.unlit_models.size] = var_01;
}
self.unlit_model = var_01;
continue;
}
if(func_1207(var_01))
{
self.linked_lights = 1;
self.linked_light_ents[self.linked_light_ents.size] = var_01;
}
}
self.linked_models = 1;
}
if(isdefined(self.script_noteworthy))
{
self.linked_things = getentarray(self.script_noteworthy,"targetname");
}
if(!self.linked_things.size && !isdefined(self.linked_prefab_ents))
{
self.linked_things = func_120C(self.origin);
}
for(var_03 = 0;var_03 < self.linked_things.size;var_03++)
{
if(func_1207(self.linked_things[var_03]))
{
self.linked_lights = 1;
self.linked_light_ents[self.linked_light_ents.size] = self.linked_things[var_03];
}
if(self.linked_things[var_03].classname == "script_model")
{
var_04 = self.linked_things[var_03];
if(!isdefined(self.var_120F))
{
self.var_120F[0] = var_04;
}
else
{
self.var_120F[self.var_120F.size] = var_04;
}
if(!isdefined(self.unlit_models))
{
self.unlit_models[0] = getent(var_04.target,"targetname");
}
else
{
self.unlit_models[self.unlit_models.size] = getent(var_04.target,"targetname");
}
self.linked_models = 1;
}
}
if(isdefined(self.var_120F))
{
foreach(var_04 in self.var_120F)
{
if(isdefined(var_04) && isdefined(var_04.script_fxid))
{
var_04.effect = common_scripts\utility::createoneshoteffect(var_04.script_fxid);
var_06 = (0,0,0);
var_07 = (0,0,0);
if(isdefined(var_04.script_parameters))
{
var_08 = strtok(var_04.script_parameters,", ");
if(var_08.size < 3)
{
}
else if(var_08.size == 6)
{
var_09 = float(var_08[0]);
var_0A = float(var_08[1]);
var_0B = float(var_08[2]);
var_06 = (var_09,var_0A,var_0B);
var_09 = float(var_08[3]);
var_0A = float(var_08[4]);
var_0B = float(var_08[5]);
var_07 = (var_09,var_0A,var_0B);
}
else
{
var_09 = float(var_0B[0]);
var_0A = float(var_0A[1]);
var_0B = float(var_09[2]);
var_06 = (var_09,var_0A,var_0B);
}
}
var_04.effect.v["origin"] = var_04.origin + var_06;
var_04.effect.v["angles"] = var_04.angles + var_07;
}
}
}
thread generic_flicker_msg_watcher();
thread generic_flicker();
}
//Function Number: 8
generic_flicker_msg_watcher()
{
maps\_utility::ent_flag_init("flicker_on");
if(isdefined(self.script_light_startnotify) && self.script_light_startnotify != "nil")
{
for(;;)
{
level waittill(self.script_light_startnotify);
maps\_utility::func_FA4("flicker_on");
if(isdefined(self.script_light_stopnotify) && self.script_light_stopnotify != "nil")
{
level waittill(self.script_light_stopnotify);
maps\_utility::ent_flag_clear("flicker_on");
}
}
return;
}
maps\_utility::func_FA4("flicker_on");
}
//Function Number: 9
func_121B()
{
var_00 = self getlightintensity();
if(!maps\_utility::ent_flag("flicker_on"))
{
if(self.linked_models)
{
if(isdefined(self.var_120F))
{
foreach(var_02 in self.var_120F)
{
var_02 hide();
if(isdefined(var_02.effect))
{
var_02.effect common_scripts\utility::pauseeffect();
}
}
}
if(isdefined(self.unlit_models))
{
foreach(var_05 in self.unlit_models)
{
var_05 show();
}
}
}
self setlightintensity(0);
if(self.linked_lights)
{
for(var_07 = 0;var_07 < self.linked_light_ents.size;var_07++)
{
self.linked_light_ents[var_07] setlightintensity(0);
}
}
maps\_utility::func_121C("flicker_on");
self setlightintensity(var_00);
if(self.linked_lights)
{
for(var_07 = 0;var_07 < self.linked_light_ents.size;var_07++)
{
self.linked_light_ents[var_07] setlightintensity(var_00);
}
}
if(self.linked_models)
{
if(isdefined(self.var_120F))
{
foreach(var_02 in self.var_120F)
{
var_02 show();
if(isdefined(var_02.effect))
{
var_02.effect maps\_utility::restarteffect();
}
}
}
if(isdefined(self.unlit_models))
{
foreach(var_05 in self.unlit_models)
{
var_05 hide();
}
return;
}
}
}
}
//Function Number: 10
generic_flicker()
{
self endon("stop_dynamic_light_behavior");
self endon("death");
var_00 = 0.2;
var_01 = 1.5;
var_02 = self getlightintensity();
var_03 = 0;
var_04 = var_02;
var_05 = 0;
while(isdefined(self))
{
func_121B();
for(var_05 = randomintrange(1,10);var_05;var_05--)
{
func_121B();
wait randomfloatrange(0.05,0.1);
if(var_04 > 0.2)
{
var_04 = randomfloatrange(0,0.3);
if(self.linked_models)
{
foreach(var_07 in self.var_120F)
{
var_07 hide();
if(isdefined(var_07.effect))
{
var_07.effect common_scripts\utility::pauseeffect();
}
}
}
if(isdefined(self.unlit_models))
{
foreach(var_0A in self.unlit_models)
{
var_0A show();
}
}
}
else
{
var_04 = var_02;
if(self.linked_models)
{
if(isdefined(self.var_120F))
{
foreach(var_07 in self.var_120F)
{
var_07 show();
if(isdefined(var_07.effect))
{
var_07.effect maps\_utility::restarteffect();
}
}
}
if(isdefined(self.unlit_models))
{
foreach(var_0A in self.unlit_models)
{
var_0A hide();
maps\_audio::func_121F("light_flicker_on",var_0A);
}
}
}
}
self setlightintensity(var_04);
if(self.linked_lights)
{
for(var_10 = 0;var_10 < self.linked_light_ents.size;var_10++)
{
self.linked_light_ents[var_10] setlightintensity(var_04);
}
}
}
func_121B();
self setlightintensity(var_02);
if(self.linked_lights)
{
for(var_10 = 0;var_10 < self.linked_light_ents.size;var_10++)
{
self.linked_light_ents[var_10] setlightintensity(var_02);
}
}
if(self.linked_models)
{
if(isdefined(self.var_120F))
{
foreach(var_07 in self.var_120F)
{
var_07 show();
if(isdefined(var_07.effect))
{
var_07.effect maps\_utility::restarteffect();
}
}
}
if(isdefined(self.unlit_models))
{
foreach(var_0A in self.unlit_models)
{
var_0A hide();
}
}
}
wait randomfloatrange(var_00,var_01);
}
}
//Function Number: 11
generic_spot()
{
level common_scripts\utility::waitframe();
}
//Function Number: 12
flickerlightintensity(param_00,param_01)
{
var_02 = self getlightintensity();
var_03 = 0;
var_04 = var_02;
var_05 = 0;
for(;;)
{
for(var_05 = randomintrange(1,10);var_05;var_05--)
{
wait randomfloatrange(0.05,0.1);
if(var_04 > 0.2)
{
var_04 = randomfloatrange(0,0.3);
}
else
{
var_04 = var_02;
}
self setlightintensity(var_04);
}
self setlightintensity(var_02);
wait randomfloatrange(param_00,param_01);
}
}
//Function Number: 13
burning_trash_fire()
{
var_00 = self getlightintensity();
var_01 = var_00;
for(;;)
{
var_02 = randomfloatrange(var_00 * 0.7,var_00 * 1.2);
var_03 = randomfloatrange(0.3,0.6);
var_03 = var_03 * 20;
for(var_04 = 0;var_04 < var_03;var_04++)
{
var_05 = var_02 * var_04 / var_03 + var_01 * var_03 - var_04 / var_03;
self setlightintensity(var_05);
wait 0.05;
}
var_01 = var_02;
}
}
//Function Number: 14
strobelight(param_00,param_01,param_02,param_03)
{
var_04 = 360 / param_02;
var_05 = 0;
for(;;)
{
var_06 = sin(var_05 * var_04) * 0.5 + 0.5;
self setlightintensity(param_00 + param_01 - param_00 * var_06);
wait 0.05;
var_05 = var_05 + 0.05;
if(var_05 > param_02)
{
var_05 = var_05 - param_02;
}
if(isdefined(param_03))
{
if(common_scripts\utility::flag(param_03))
{
return;
}
}
}
}
//Function Number: 15
changelightcolorto(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_02))
{
param_02 = 0;
}
if(!isdefined(param_03))
{
param_03 = 0;
}
thread changelightcolortoworkerthread(param_00,param_01,param_02,param_03);
}
//Function Number: 16
changelightcolortoworkerthread(param_00,param_01,param_02,param_03)
{
var_04 = self getlightcolor();
var_05 = 1 / param_01 * 2 - param_02 + param_03;
var_06 = 0;
if(var_06 < param_02)
{
var_07 = var_05 / param_02;
while(var_06 < param_02)
{
var_08 = var_07 * var_06 * var_06;
self setlightcolor(vectorlerp(var_04,param_00,var_08));
wait 0.05;
var_06 = var_06 + 0.05;
}
}
while(var_06 < param_01 - param_03)
{
var_08 = var_05 * 2 * var_06 - param_02;
self setlightcolor(vectorlerp(var_04,param_00,var_08));
wait 0.05;
var_06 = var_06 + 0.05;
}
var_06 = param_01 - var_06;
if(var_06 > 0)
{
var_07 = var_05 / param_03;
while(var_06 > 0)
{
var_08 = 1 - var_07 * var_06 * var_06;
self setlightcolor(vectorlerp(var_04,param_00,var_08));
wait 0.05;
var_06 = var_06 - 0.05;
}
}
self setlightcolor(param_00);
}
//Function Number: 17
television()
{
thread tv_changes_intensity();
thread tv_changes_color();
}
//Function Number: 18
tv_changes_intensity()
{
self endon("light_off");
var_00 = self getlightintensity();
var_01 = var_00;
for(;;)
{
var_02 = randomfloatrange(var_00 * 0.7,var_00 * 1.2);
var_03 = randomfloatrange(0.3,1.2);
var_03 = var_03 * 20;
for(var_04 = 0;var_04 < var_03;var_04++)
{
var_05 = var_02 * var_04 / var_03 + var_01 * var_03 - var_04 / var_03;
self setlightintensity(var_05);
wait 0.05;
}
var_01 = var_02;
}
}
//Function Number: 19
tv_changes_color()
{
self endon("light_off");
var_00 = 0.5;
var_01 = 0.5;
var_02 = [];
var_03 = [];
for(var_04 = 0;var_04 < 3;var_04++)
{
var_02[var_04] = 0;
var_03[var_04] = 0;
}
for(;;)
{
for(var_04 = 0;var_04 < var_02.size;var_04++)
{
var_03[var_04] = var_02[var_04];
var_02[var_04] = randomfloat(var_00) + var_01;
}
var_05 = randomfloatrange(0.3,1.2);
var_05 = var_05 * 20;
for(var_04 = 0;var_04 < var_05;var_04++)
{
var_06 = [];
for(var_07 = 0;var_07 < var_02.size;var_07++)
{
var_06[var_07] = var_02[var_07] * var_04 / var_05 + var_03[var_07] * var_05 - var_04 / var_05;
}
self setlightcolor((var_06[0],var_06[1],var_06[2]));
wait 0.05;
}
}
}
//Function Number: 20
sun_shadow_trigger(param_00)
{
var_01 = 1;
if(isdefined(param_00.script_duration))
{
var_01 = param_00.script_duration;
}
for(;;)
{
param_00 waittill("trigger",var_02);
param_00 set_sun_shadow_params(var_01);
}
}
//Function Number: 21
set_sun_shadow_params(param_00)
{
var_01 = getdvarint("sm_sunenable",1);
var_02 = getdvarfloat("sm_sunshadowscale",1);
var_03 = getdvarint("sm_spotlimit",4);
var_04 = getdvarfloat("sm_sunsamplesizenear",0.25);
var_05 = getdvarfloat("sm_qualityspotshadow",1);
if(isdefined(self.var_122C))
{
var_01 = self.var_122C;
}
if(isdefined(self.script_sunshadowscale))
{
var_02 = self.script_sunshadowscale;
}
if(isdefined(self.var_122E))
{
var_03 = self.var_122E;
}
if(isdefined(self.script_sunsamplesizenear))
{
var_04 = self.script_sunsamplesizenear;
}
var_04 = min(max(0.016,var_04),32);
if(isdefined(self.script_qualityspotshadow))
{
var_05 = self.script_qualityspotshadow;
}
var_06 = getdvarint("sm_sunenable",1);
var_07 = getdvarfloat("sm_sunshadowscale",1);
var_08 = getdvarint("sm_spotlimit",4);
var_09 = getdvarint("sm_qualityspotshadow",1);
setsaveddvar("sm_sunenable",var_01);
setsaveddvar("sm_sunshadowscale",var_02);
setsaveddvar("sm_spotlimit",var_03);
setsaveddvar("sm_qualityspotshadow",var_05);
lerp_sunsamplesizenear_overtime(var_04,param_00);
}
//Function Number: 22
lerp_sunsamplesizenear_overtime(param_00,param_01)
{
level notify("changing_sunsamplesizenear");
level endon("changing_sunsamplesizenear");
var_02 = getdvarfloat("sm_sunSampleSizeNear",0.25);
if(param_00 == var_02)
{
return;
}
var_03 = param_00 - var_02;
var_04 = param_01 / 0.05;
if(var_04 > 0)
{
var_05 = var_03 / var_04;
var_06 = var_02;
for(var_07 = 0;var_07 < var_04;var_07++)
{
var_06 = var_06 + var_05;
setsaveddvar("sm_sunSampleSizeNear",var_06);
wait 0.05;
}
}
setsaveddvar("sm_sunSampleSizeNear",param_00);
}

5046
MW3/Xbox/SP/maps/_load.gsc Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

952
MW3/Xbox/SP/maps/_menus.gsc Normal file
View File

@ -0,0 +1,952 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_menus.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 41
* Decompile Time: 623 ms
* Timestamp: 10/27/2023 2:34:26 AM
*******************************************************************/
//Function Number: 1
init()
{
precachemenu("uiScript_startMultiplayer");
precacheshader("black");
precacheshader("white");
precacheshader("menu_button");
precacheshader("menu_button_selected");
precacheshader("menu_button_fade");
precacheshader("menu_button_fade_selected");
precacheshader("menu_button_faderight");
precacheshader("menu_button_faderight_selected");
precacheshader("menu_caret_open");
precacheshader("menu_caret_closed");
thread initthumbsticklayout();
thread initbuttonlayout();
thread func_3C03();
thread func_3C04();
thread func_3C05();
thread initvibration();
level.menustack = [];
var_00 = createmenu("levels");
var_01 = setupaction(::func_3BD2,"cqb_1");
var_02 = spawnstruct();
var_02.display = &"MENU_1ST_PASS";
var_02.var_3BD0 = 240;
var_02.ypos = 100;
var_00 func_3BE1(&"MENU_CQB_TEST",var_01,"loadmap",var_02);
var_01 = setupaction(::func_3BD2,"descent");
var_02 = spawnstruct();
var_02.display = &"MENU_1ST_PASS";
var_02.var_3BD0 = 240;
var_02.ypos = 100;
var_00 func_3BE1(&"MENU_BUNKER",var_01,"loadmap",var_02);
var_01 = setupaction(::func_3BD2,"aftermath");
var_02 = spawnstruct();
var_02.display = &"MENU_100_INITIAL_GEO";
var_02.var_3BD0 = 240;
var_02.ypos = 100;
var_00 func_3BE1(&"MENU_AFTERMATH",var_01,"loadmap",var_02);
var_01 = setupaction(::func_3BD2,"chechnya_escape");
var_02 = spawnstruct();
var_02.display = &"MENU_40_INITIAL_GEO";
var_02.var_3BD0 = 240;
var_02.ypos = 100;
var_00 func_3BE1(&"MENU_CHECHNYA_ESCAPE",var_01,"loadmap",var_02);
var_01 = setupaction(::func_3BD2,"marksman");
var_02 = spawnstruct();
var_02.display = &"MENU_25_SCRIPTED";
var_02.var_3BD0 = 240;
var_02.ypos = 100;
var_00 func_3BE1(&"MENU_MARKSMAN",var_01,"loadmap",var_02);
var_01 = setupaction(::func_3BD2,"seaknight_defend");
var_02 = spawnstruct();
var_02.display = &"MENU_PROTOTYPE_LEVEL_30_SCRIPTED";
var_02.var_3BD0 = 240;
var_02.ypos = 100;
var_00 func_3BE1(&"MENU_SEAKNIGHT_DEFEND",var_01,"loadmap",var_02);
var_01 = setupaction(::func_3BD2,"wetwork");
var_02 = spawnstruct();
var_02.display = &"MENU_100_INITIAL_GEO";
var_02.var_3BD0 = 240;
var_02.ypos = 100;
var_00 func_3BE1(&"MENU_WETWORK",var_01,"loadmap",var_02);
var_01 = setupaction(::func_3BD2,"cargoship");
var_02 = spawnstruct();
var_02.display = &"MENU_10_SCRIPTED";
var_02.var_3BD0 = 240;
var_02.ypos = 100;
var_00 func_3BE1(&"MENU_CARGOSHIP",var_01,"loadmap",var_02);
var_01 = setupaction(::func_3BD2,"bog");
var_02 = spawnstruct();
var_02.display = &"MENU_35_INITIAL_GEO";
var_02.var_3BD0 = 240;
var_02.ypos = 100;
var_00 func_3BE1(&"MENU_BOG",var_01,"loadmap",var_02);
var_01 = setupaction(::func_3BD2,"training");
var_02 = spawnstruct();
var_02.display = &"MENU_5_SCRIPTED";
var_02.var_3BD0 = 240;
var_02.ypos = 100;
var_00 func_3BE1(&"MENU_TRAINING1",var_01,"loadmap",var_02);
var_01 = setupaction(::func_3BD2,"ac130");
var_02 = spawnstruct();
var_02.display = &"MENU_30";
var_02.var_3BD0 = 240;
var_02.ypos = 100;
var_00 func_3BE1(&"MENU_AC130",var_01,"loadmap",var_02);
var_01 = setupaction(::func_3BD2,"seaknight_assault");
var_02 = spawnstruct();
var_02.display = &"MENU_INITIAL_GEO_IN_PROGRESS";
var_02.var_3BD0 = 240;
var_02.ypos = 100;
var_00 func_3BE1(&"MENU_SEAKNIGHT_ASSAULT",var_01,"loadmap",var_02);
var_01 = setupaction(::func_3BD2,"pilotcobra");
var_02 = spawnstruct();
var_02.display = &"MENU_INITIAL_GEO_IN_PROGRESS";
var_02.var_3BD0 = 240;
var_02.ypos = 100;
var_00 func_3BE1(&"MENU_PILOT_COBRA",var_01,"loadmap",var_02);
var_03 = func_3BDE("controls");
var_04 = spawnstruct();
var_04.index = 0;
var_04.dvar = "controls_sticksConfig";
var_04.value[0] = "thumbstick_default";
var_04.value[1] = "thumbstick_southpaw";
var_04.value[2] = "thumbstick_legacy";
var_04.value[3] = "thumbstick_legacysouthpaw";
var_04.display[0] = "Default";
var_04.display[1] = "Southpaw";
var_04.display[2] = "Legacy";
var_04.display[3] = "Legacy Southpaw";
var_03 func_3BE7(&"MENU_THUMBSTICK_LAYOUT",undefined,undefined,undefined,var_04);
var_04 = spawnstruct();
var_04.index = 0;
var_04.dvar = "controls_buttonConfig";
var_04.value[0] = "buttons_default";
var_04.value[1] = "buttons_tactical";
var_04.value[2] = "buttons_lefty";
var_04.value[3] = "buttons_finesthour";
var_04.display[0] = "Default";
var_04.display[1] = "Tactical";
var_04.display[2] = "Lefty";
var_04.display[3] = "Finest Hour";
var_03 func_3BE7(&"MENU_BUTTON_LAYOUT",undefined,undefined,undefined,var_04);
var_04 = spawnstruct();
var_04.index = 1;
var_04.dvar = "controls_sensitivityConfig";
var_04.value[0] = "sensitivity_low";
var_04.value[1] = "sensitivity_medium";
var_04.value[2] = "sensitivity_high";
var_04.value[3] = "sensitivity_veryhigh";
var_04.display[0] = "Low";
var_04.display[1] = "Medium";
var_04.display[2] = "High";
var_04.display[3] = "Very High";
var_03 func_3BE7(&"MENU_LOOK_SENSITIVITY",undefined,undefined,undefined,var_04);
var_04 = spawnstruct();
var_04.index = 0;
var_04.dvar = "controls_inversionConfig";
var_04.value[0] = "inversion_disabled";
var_04.value[1] = "inversion_enabled";
var_04.display[0] = "Disabled";
var_04.display[1] = "Enabled";
var_03 func_3BE7(&"MENU_LOOK_INVERSION",undefined,undefined,undefined,var_04);
var_04 = spawnstruct();
var_04.index = 1;
var_04.dvar = "controls_autoaimConfig";
var_04.value[0] = "autoaim_disabled";
var_04.value[1] = "autoaim_enabled";
var_04.display[0] = "Disabled";
var_04.display[1] = "Enabled";
var_03 func_3BE7(&"MENU_AUTOAIM",undefined,undefined,undefined,var_04);
var_04 = spawnstruct();
var_04.index = 1;
var_04.dvar = "controls_vibrationConfig";
var_04.value[0] = "vibration_disabled";
var_04.value[1] = "vibration_enabled";
var_04.display[0] = "Disabled";
var_04.display[1] = "Enabled";
var_03 func_3BE7(&"MENU_CONTROLLER_VIBRATION",undefined,undefined,undefined,var_04);
var_05 = createmenu("main");
var_01 = setupaction(::pushmenu,var_00);
var_05 func_3BE1(&"MENU_SELECT_LEVEL",var_01,"openmenu_levels");
var_06 = var_05 func_3BE9("options",&"MENU_OPTIONS");
var_01 = setupaction(::pushmenu,var_03);
var_06 func_3BE1(&"MENU_CONTROLS",var_01);
var_06 func_3BE1(&"MENU_SUBTITLES");
var_06 func_3BE1(&"MENU_SAVE_DEVICE");
var_05 func_3BE1(&"MENU_CREDITS");
var_01 = setupaction(::loadmultiplayer);
var_05 func_3BE1(&"MENU_MULTIPLAYER",var_01);
pushmenu(var_05);
level.player thread menuresponse();
}
//Function Number: 2
void()
{
}
//Function Number: 3
func_3BD2(param_00)
{
changelevel(param_00);
}
//Function Number: 4
loadmultiplayer()
{
level.player openpopupmenu("uiScript_startMultiplayer");
}
//Function Number: 5
pushmenu(param_00)
{
level.menustack[level.menustack.size] = param_00;
var_01 = level.var_3BD5;
level.var_3BD5 = param_00;
if(param_00.menutype == "fullScreen")
{
if(isdefined(var_01))
{
var_01 thread hidemenu(0.2,1);
}
param_00 thread showmenu(0.2,1);
level notify("open_menu",level.var_3BD5.name);
}
else
{
param_00 thread expandmenu(0.2);
}
level.player playsound("mouse_click");
}
//Function Number: 6
func_3BD7()
{
if(level.menustack.size == 1)
{
return;
}
level.menustack[level.menustack.size - 1] = undefined;
var_00 = level.var_3BD5;
level.var_3BD5 = level.menustack[level.menustack.size - 1];
if(var_00.menutype == "subMenu")
{
var_00 thread collapsemenu(0.2);
level.var_3BD5 func_3BF6(0.2,1);
}
else
{
var_00 thread hidemenu(0.2,0);
level.var_3BD5 thread showmenu(0.2,0);
level notify("close_menu",level.menustack.size);
}
level.player playsound("mouse_click");
}
//Function Number: 7
createmenu(param_00)
{
var_01 = spawnstruct();
var_01.name = param_00;
var_01.menutype = "fullScreen";
var_01.itemdefs = [];
var_01.itemwidth = 120;
var_01.var_3BDB = 20;
var_01.var_3BDC = 0;
var_01.var_3BDD = 0;
var_01.var_3BD0 = 80;
var_01.ypos = 100;
var_01.xoffset = 0;
var_01.yoffset = 0;
return var_01;
}
//Function Number: 8
func_3BDE(param_00)
{
var_01 = spawnstruct();
var_01.name = param_00;
var_01.menutype = "fullScreen";
var_01.itemdefs = [];
var_01.itemwidth = 420;
var_01.var_3BDB = 20;
var_01.var_3BDC = 0;
var_01.var_3BDD = 0;
var_01.var_3BD0 = 80;
var_01.ypos = 100;
var_01.xoffset = 0;
var_01.yoffset = 0;
return var_01;
}
//Function Number: 9
createsubmenu(param_00)
{
var_01 = spawnstruct();
var_01.name = param_00;
var_01.menutype = "subMenu";
var_01.itemdefs = [];
var_01.itemwidth = 120;
var_01.var_3BDB = 20;
var_01.var_3BDC = 0;
var_01.var_3BDD = 0;
var_01.var_3BE0 = 0;
return var_01;
}
//Function Number: 10
func_3BE1(param_00,param_01,param_02,param_03)
{
precachestring(param_00);
var_04 = spawnstruct();
var_04.itemtype = "item";
var_04.var_3BE3 = "menu_button_selected";
var_04.var_3BE4 = param_00;
var_04.var_3BD0 = 0;
var_04.ypos = 0;
var_04.xoffset = 0;
var_04.yoffset = 0;
var_04.action = param_01;
var_04.event = param_02;
var_04.var_16D0 = param_03;
var_04.var_3BE6 = self;
var_04.index = self.itemdefs.size;
self.itemdefs[self.itemdefs.size] = var_04;
}
//Function Number: 11
func_3BE7(param_00,param_01,param_02,param_03,param_04)
{
precachestring(param_00);
var_05 = spawnstruct();
var_05.itemtype = "settingMenu";
var_05.var_3BE3 = "menu_button_selected";
var_05.var_3BE4 = param_00;
var_05.var_3BD0 = 0;
var_05.ypos = 0;
var_05.xoffset = 0;
var_05.yoffset = 0;
var_05.action = param_01;
var_05.event = param_02;
var_05.var_16D0 = param_03;
var_05.setting = param_04;
var_05.var_3BE6 = self;
var_05.index = self.itemdefs.size;
self.itemdefs[self.itemdefs.size] = var_05;
}
//Function Number: 12
func_3BE9(param_00,param_01)
{
var_02 = createsubmenu(param_00);
var_02.itemtype = "subMenu";
var_02.var_3BE3 = "menu_button_selected";
var_02.var_3BE4 = param_01;
var_02.var_3BD0 = 0;
var_02.ypos = 0;
var_02.xoffset = 20;
var_02.yoffset = self.var_3BDB + self.var_3BDC;
var_02.var_3BE6 = self;
var_02.index = self.itemdefs.size;
self.itemdefs[self.itemdefs.size] = var_02;
return var_02;
}
//Function Number: 13
createitemelems()
{
self.bgicon = maps\_hud_util::createicon(self.var_3BE3,self.var_3BE6.itemwidth,self.var_3BE6.var_3BDB);
self.bgicon.alpha = 0;
self.bgicon.sort = 0;
self.var_3BEC = maps\_hud_util::createfontstring("default",1.5);
self.var_3BEC.alpha = 0;
self.var_3BEC.sort = 100;
self.var_3BEC settext(self.var_3BE4);
if(self.itemtype == "settingMenu")
{
self.var_3BED = maps\_hud_util::createfontstring("default",1.5);
self.var_3BED.alpha = 0;
self.var_3BED.sort = 100;
updatedisplayvalue();
}
if(self.itemtype == "subMenu")
{
self.var_3BEE = maps\_hud_util::createicon("menu_caret_closed",self.var_3BE6.var_3BDB,self.var_3BE6.var_3BDB);
self.var_3BEE.alpha = 0;
self.var_3BEE.sort = 100;
}
if(isdefined(self.var_16D0))
{
self.var_3BEF = maps\_hud_util::createfontstring("default",1.5);
self.var_3BEF.alpha = 0;
self.var_3BEF.sort = 100;
self.var_3BEF settext(self.var_16D0.display);
}
}
//Function Number: 14
destroyitemelems()
{
if(self.itemtype == "subMenu")
{
self.var_3BEE maps\_hud_util::destroyelem();
}
if(self.itemtype == "settingMenu")
{
self.var_3BED maps\_hud_util::destroyelem();
}
if(isdefined(self.var_3BEF))
{
self.var_3BEF maps\_hud_util::destroyelem();
}
self.bgicon maps\_hud_util::destroyelem();
self.var_3BEC maps\_hud_util::destroyelem();
}
//Function Number: 15
setelempoints(param_00,param_01,param_02,param_03,param_04)
{
var_05 = 3;
self.bgicon maps\_hud_util::setpoint(param_00,param_01,param_02,param_03,param_04);
if(self.itemtype == "subMenu")
{
self.var_3BEE maps\_hud_util::setpoint(param_00,param_01,param_02,param_03,param_04);
var_05 = var_05 + 16;
}
if(self.itemtype == "settingMenu")
{
self.var_3BED maps\_hud_util::setpoint("TOPRIGHT",param_01,param_02 + var_05 + 400,param_03,param_04);
}
if(isdefined(self.var_3BEF))
{
self.var_3BEF maps\_hud_util::setpoint("TOPLEFT",param_01,self.var_16D0.var_3BD0,self.var_16D0.ypos,param_04);
}
self.var_3BEC maps\_hud_util::setpoint(param_00,param_01,param_02 + var_05,param_03,param_04);
}
//Function Number: 16
showmenu(param_00,param_01)
{
var_02 = 0;
for(var_03 = 0;var_03 < self.itemdefs.size;var_03++)
{
var_04 = self.itemdefs[var_03];
var_04 createitemelems();
if(param_01)
{
var_04 setelempoints("TOPLEFT","TOPRIGHT",self.var_3BD0,self.ypos + var_02);
}
else
{
var_04 setelempoints("TOPRIGHT","TOPLEFT",self.var_3BD0,self.ypos + var_02);
}
var_04.var_3BD0 = self.var_3BD0;
var_04.ypos = self.ypos + var_02;
var_02 = var_02 + self.var_3BDB + self.var_3BDC;
if(var_04.itemtype == "subMenu" && var_04.var_3BE0)
{
var_02 = var_02 + var_04 func_3BFA();
}
}
if(self.menutype == "subMenu")
{
self.var_3BE6 showmenu(param_00,param_01);
}
func_3BF6(param_00,1);
}
//Function Number: 17
hidemenu(param_00,param_01)
{
var_02 = 0;
for(var_03 = 0;var_03 < self.itemdefs.size;var_03++)
{
var_04 = self.itemdefs[var_03];
var_05 = -1 * self.itemwidth;
if(param_01)
{
var_04 setelempoints("TOPRIGHT","TOPLEFT",self.var_3BD0,self.ypos + var_02,param_00);
var_04.bgicon fadeovertime(param_00);
var_04.bgicon.alpha = 0;
var_04.var_3BEC fadeovertime(param_00);
var_04.var_3BEC.alpha = 0;
if(var_04.itemtype == "settingMenu")
{
var_04.var_3BED fadeovertime(param_00);
var_04.var_3BED.alpha = 0;
}
if(var_04.itemtype == "subMenu")
{
var_04.var_3BEE fadeovertime(param_00);
var_04.var_3BEE.alpha = 0;
}
}
else
{
var_04 setelempoints("TOPLEFT","TOPRIGHT",self.var_3BD0,self.ypos + var_02,param_00);
var_04.bgicon fadeovertime(param_00);
var_04.bgicon.alpha = 0;
var_04.var_3BEC fadeovertime(param_00);
var_04.var_3BEC.alpha = 0;
if(var_04.itemtype == "settingMenu")
{
var_04.var_3BED fadeovertime(param_00);
var_04.var_3BED.alpha = 0;
}
if(var_04.itemtype == "subMenu")
{
var_04.var_3BEE fadeovertime(param_00);
var_04.var_3BEE.alpha = 0;
}
}
var_04.var_3BD0 = self.var_3BD0;
var_04.ypos = self.ypos + var_02;
var_02 = var_02 + self.var_3BDB + self.var_3BDC;
if(var_04.itemtype == "subMenu" && var_04.var_3BE0)
{
var_02 = var_02 + var_04 func_3BFA();
}
}
if(self.menutype == "subMenu")
{
self.var_3BE6 thread hidemenu(param_00,param_01);
}
wait param_00;
for(var_03 = 0;var_03 < self.itemdefs.size;var_03++)
{
var_04 = self.itemdefs[var_03];
var_04 destroyitemelems();
}
}
//Function Number: 18
collapsemenu(param_00)
{
self.var_3BE0 = 0;
self.var_3BEE setshader("menu_caret_closed",self.var_3BE6.var_3BDB,self.var_3BE6.var_3BDB);
var_01 = 0;
for(var_02 = 0;var_02 < self.itemdefs.size;var_02++)
{
var_03 = self.itemdefs[var_02];
var_03 setelempoints("TOPLEFT","TOPLEFT",self.var_3BD0,self.ypos,param_00);
var_03.bgicon fadeovertime(param_00);
var_03.bgicon.alpha = 0;
var_03.var_3BEC fadeovertime(param_00);
var_03.var_3BEC.alpha = 0;
if(var_03.itemtype == "subMenu")
{
var_03.var_3BEE fadeovertime(param_00);
var_03.var_3BEE.alpha = 0;
}
var_03.var_3BD0 = self.var_3BD0;
var_03.ypos = self.ypos;
}
wait param_00;
for(var_02 = 0;var_02 < self.itemdefs.size;var_02++)
{
var_03 = self.itemdefs[var_02];
var_03.bgicon maps\_hud_util::destroyelem();
var_03.var_3BEC maps\_hud_util::destroyelem();
if(var_03.itemtype == "subMenu")
{
var_03.var_3BEE maps\_hud_util::destroyelem();
}
}
}
//Function Number: 19
expandmenu(param_00)
{
self.var_3BE0 = 1;
self.var_3BEE setshader("menu_caret_open",self.var_3BE6.var_3BDB,self.var_3BE6.var_3BDB);
for(var_01 = 0;var_01 < self.itemdefs.size;var_01++)
{
var_02 = self.itemdefs[var_01];
var_02 createitemelems();
var_02 setelempoints("TOPLEFT","TOPLEFT",self.var_3BD0 + self.xoffset,self.ypos + self.yoffset);
var_02.var_3BD0 = self.var_3BD0 + self.xoffset;
var_02.ypos = self.ypos + self.yoffset;
}
func_3BF6(param_00,1);
}
//Function Number: 20
func_3BF6(param_00,param_01)
{
var_02 = self.xoffset;
var_03 = self.yoffset;
for(var_04 = 0;var_04 < self.itemdefs.size;var_04++)
{
var_05 = self.itemdefs[var_04];
var_05 setselected(param_00,var_04 == self.var_3BDD);
var_06 = var_05.var_3BD0;
var_07 = var_05.ypos;
if(param_01 || self.var_3BD0 + var_02 != var_06 || self.ypos + var_03 != var_07)
{
var_05 setelempoints("TOPLEFT","TOPLEFT",self.var_3BD0 + var_02,self.ypos + var_03,param_00);
var_05.var_3BD0 = self.var_3BD0 + var_02;
var_05.ypos = self.ypos + var_03;
}
var_03 = var_03 + self.var_3BDB + self.var_3BDC;
if(var_05.itemtype == "subMenu" && var_05.var_3BE0)
{
var_03 = var_03 + var_05 func_3BFA();
}
}
if(isdefined(self.var_3BE6))
{
self.var_3BE6 thread func_3BF6(param_00,param_01);
}
}
//Function Number: 21
setselected(param_00,param_01)
{
self.bgicon fadeovertime(param_00);
self.var_3BEC fadeovertime(param_00);
if(isdefined(self.var_3BED))
{
self.var_3BED fadeovertime(param_00);
}
if(isdefined(self.var_3BEF))
{
self.var_3BEF fadeovertime(param_00);
}
if(param_01)
{
if(self.var_3BE6 == level.var_3BD5)
{
func_3BF8(1);
}
else
{
func_3BF8(0.5);
}
if(isdefined(self.var_3BEF))
{
self.var_3BEF.alpha = 1;
return;
}
return;
}
if(self.var_3BE6 == level.var_3BD5)
{
func_3BF8(0.5);
}
else
{
func_3BF8(0.25);
}
if(isdefined(self.var_3BEF))
{
self.var_3BEF.alpha = 0;
}
}
//Function Number: 22
func_3BF8(param_00)
{
self.bgicon.alpha = param_00;
self.var_3BEC.alpha = param_00;
if(self.itemtype == "settingMenu")
{
self.var_3BED.alpha = param_00;
}
if(self.itemtype == "subMenu")
{
self.var_3BEE.alpha = param_00;
}
}
//Function Number: 23
func_3BF9(param_00)
{
self.var_3BEC.color = param_00;
}
//Function Number: 24
func_3BFA()
{
var_00 = 0;
for(var_01 = 0;var_01 < self.itemdefs.size;var_01++)
{
var_02 = self.itemdefs[var_01];
var_00 = var_00 + self.var_3BDB + self.var_3BDC;
if(var_02.itemtype == "subMenu" && var_02.var_3BE0)
{
var_00 = var_00 + var_02 func_3BFA();
}
}
return var_00;
}
//Function Number: 25
func_3BFB()
{
self.var_3BDD--;
if(self.var_3BDD < 0)
{
self.var_3BDD = self.itemdefs.size - 1;
}
func_3BF6(0.1,0);
level.player playsound("mouse_over");
}
//Function Number: 26
func_3BFC()
{
self.var_3BDD++;
if(self.var_3BDD >= self.itemdefs.size)
{
self.var_3BDD = 0;
}
func_3BF6(0.1,0);
level.player playsound("mouse_over");
}
//Function Number: 27
func_3BFD()
{
func_3BD7();
}
//Function Number: 28
func_3BFE()
{
var_00 = self.itemdefs[self.var_3BDD];
if(var_00.itemtype == "subMenu")
{
pushmenu(var_00);
return;
}
if(var_00.itemtype == "item")
{
var_00 thread runaction();
}
}
//Function Number: 29
func_3BFF()
{
var_00 = self.itemdefs[self.var_3BDD];
if(var_00.itemtype == "settingMenu")
{
var_01 = getdvar(var_00.setting.dvar);
var_02 = var_00.setting.value;
var_03 = 0;
for(var_04 = 0;var_04 < var_02.size;var_04++)
{
var_05 = var_02[var_04];
if(var_05 != var_01)
{
continue;
}
var_03 = var_04 - 1;
if(var_03 >= 0)
{
var_00.setting.index = var_03;
setdvar(var_00.setting.dvar,var_02[var_03]);
var_00 updatedisplayvalue();
level.player playsound("mouse_over");
}
break;
}
}
}
//Function Number: 30
func_3C00()
{
var_00 = self.itemdefs[self.var_3BDD];
if(var_00.itemtype == "settingMenu")
{
var_01 = getdvar(var_00.setting.dvar);
var_02 = var_00.setting.value;
var_03 = 0;
for(var_04 = 0;var_04 < var_02.size;var_04++)
{
var_05 = var_02[var_04];
if(var_05 != var_01)
{
continue;
}
var_03 = var_04 + 1;
if(var_03 <= var_00.setting.value.size - 1)
{
var_00.setting.index = var_03;
setdvar(var_00.setting.dvar,var_02[var_03]);
var_00 updatedisplayvalue();
level.player playsound("mouse_over");
}
break;
}
}
}
//Function Number: 31
initthumbsticklayout()
{
setdvar("controls_sticksConfig","thumbstick_default");
}
//Function Number: 32
initbuttonlayout()
{
setdvar("controls_buttonConfig","buttons_default");
}
//Function Number: 33
func_3C03()
{
setdvar("controls_sensitivityConfig","sensitivity_medium");
}
//Function Number: 34
func_3C04()
{
setdvar("controls_inversionConfig","inversion_disabled");
}
//Function Number: 35
func_3C05()
{
setdvar("controls_autoaimConfig","autoaim_enabled");
}
//Function Number: 36
initvibration()
{
setdvar("controls_vibrationConfig","vibration_enabled");
}
//Function Number: 37
updatedisplayvalue()
{
self.var_3BED settext(self.setting.display[self.setting.index]);
}
//Function Number: 38
setupaction(param_00,param_01,param_02)
{
var_03 = spawnstruct();
var_03.name = param_00;
if(isdefined(param_01))
{
var_03.var_3C09 = param_01;
}
if(isdefined(param_02))
{
var_03.var_3C0A = param_02;
}
return var_03;
}
//Function Number: 39
runaction()
{
if(isdefined(self.action))
{
if(isdefined(self.action.var_3C09))
{
thread [[ self.action.name ]](self.action.var_3C09);
}
else
{
thread [[ self.action.name ]]();
}
}
if(isdefined(self.event))
{
level notify(self.event);
}
}
//Function Number: 40
testaction()
{
level.marine setgoalnode(getnode("node2","targetname"));
level.camera attachpath(getvehiclenode("path2","targetname"));
thread maps\_vehicle::func_1B44(level.camera);
}
//Function Number: 41
menuresponse()
{
for(;;)
{
self waittill("menuresponse",var_00,var_01);
switch(var_01)
{
case "DPAD_UP":
level.var_3BD5 func_3BFB();
break;
case "DPAD_DOWN":
level.var_3BD5 func_3BFC();
break;
case "DPAD_LEFT":
level.var_3BD5 func_3BFF();
break;
case "DPAD_RIGHT":
level.var_3BD5 func_3C00();
break;
case "BUTTON_A":
level.var_3BD5 func_3BFE();
break;
case "BUTTON_B":
level.var_3BD5 func_3BFD();
break;
}
}
}

View File

@ -0,0 +1,356 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_mg_penetration.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 16
* Decompile Time: 324 ms
* Timestamp: 10/27/2023 2:32:27 AM
*******************************************************************/
//Function Number: 1
gunner_think(param_00)
{
self endon("death");
self notify("end_mg_behavior");
self endon("end_mg_behavior");
self.can_fire_turret = 1;
self.wants_to_fire = 0;
if(!maps\_mgturret::use_the_turret(param_00))
{
self notify("continue_cover_script");
return;
}
self.var_663 = undefined;
thread record_enemy_sightings();
var_01 = anglestoforward(param_00.angles);
var_02 = spawn("script_origin",(0,0,0));
thread target_ent_cleanup(var_02);
var_02.origin = param_00.origin + var_01 * 500;
if(isdefined(self.var_663))
{
var_02.origin = self.var_663;
}
param_00 settargetentity(var_02);
var_03 = undefined;
for(;;)
{
if(!isalive(self.current_enemy))
{
stop_firing();
self waittill("new_enemy");
}
start_firing();
shoot_enemy_until_he_hides_then_shoot_wall(var_02);
if(!isalive(self.current_enemy))
{
continue;
}
if(self cansee(self.current_enemy))
{
continue;
}
self waittill("saw_enemy");
}
}
//Function Number: 2
target_ent_cleanup(param_00)
{
common_scripts\utility::waittill_either("death","end_mg_behavior");
param_00 delete();
}
//Function Number: 3
shoot_enemy_until_he_hides_then_shoot_wall(param_00)
{
self endon("death");
self endon("new_enemy");
self.current_enemy endon("death");
var_01 = self.current_enemy;
while(self cansee(var_01))
{
var_02 = vectortoangles(var_01 geteye() - param_00.origin);
var_02 = anglestoforward(var_02);
param_00 moveto(param_00.origin + var_02 * 12,0.1);
wait 0.1;
}
if(isplayer(var_01))
{
self endon("saw_enemy");
var_03 = var_01 geteye();
var_02 = vectortoangles(var_03 - param_00.origin);
var_02 = anglestoforward(var_02);
var_04 = 150;
var_05 = distance(param_00.origin,self.var_663) / var_04;
if(var_05 > 0)
{
param_00 moveto(self.var_663,var_05);
wait var_05;
}
var_06 = param_00.origin + var_02 * 180;
var_07 = get_suppress_point(self geteye(),param_00.origin,var_06);
if(!isdefined(var_07))
{
var_07 = param_00.origin;
}
param_00 moveto(param_00.origin + var_02 * 80 + (0,0,randomfloatrange(15,50) * -1),3,1,1);
wait 3.5;
param_00 moveto(var_07 + var_02 * -20,3,1,1);
}
wait randomfloatrange(2.5,4);
stop_firing();
}
//Function Number: 4
set_firing(param_00)
{
if(param_00)
{
self.can_fire_turret = 1;
if(self.wants_to_fire)
{
self.turret notify("startfiring");
return;
}
return;
}
self.can_fire_turret = 0;
self.turret notify("stopfiring");
}
//Function Number: 5
stop_firing()
{
self.wants_to_fire = 0;
self.turret notify("stopfiring");
}
//Function Number: 6
start_firing()
{
self.wants_to_fire = 1;
if(self.can_fire_turret)
{
self.turret notify("startfiring");
}
}
//Function Number: 7
create_mg_team()
{
if(isdefined(level.mg_gunner_team))
{
level.mg_gunner_team[level.mg_gunner_team.size] = self;
return;
}
level.mg_gunner_team = [];
level.mg_gunner_team[level.mg_gunner_team.size] = self;
waittillframeend;
var_00 = spawnstruct();
common_scripts\utility::array_thread(level.mg_gunner_team,::mg_gunner_death_notify,var_00);
var_01 = level.mg_gunner_team;
level.mg_gunner_team = undefined;
var_00 waittill("gunner_died");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
if(!isalive(var_01[var_02]))
{
continue;
}
var_01[var_02] notify("stop_using_built_in_burst_fire");
var_01[var_02] thread solo_fires();
}
}
//Function Number: 8
mg_gunner_death_notify(param_00)
{
self waittill("death");
param_00 notify("gunner_died");
}
//Function Number: 9
mgteam_take_turns_firing(param_00)
{
wait 1;
level notify("new_mg_firing_team" + param_00[0].script_noteworthy);
level endon("new_mg_firing_team" + param_00[0].script_noteworthy);
for(;;)
{
dual_firing(param_00);
solo_firing(param_00);
}
}
//Function Number: 10
solo_firing(param_00)
{
var_01 = undefined;
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
if(!isalive(param_00[var_02]))
{
continue;
}
var_01 = param_00[var_02];
break;
}
if(!isdefined(var_01))
{
}
}
//Function Number: 11
solo_fires()
{
self endon("death");
for(;;)
{
self.turret startfiring();
wait randomfloatrange(0.3,0.7);
self.turret stopfiring();
wait randomfloatrange(0.1,1.1);
}
}
//Function Number: 12
dual_firing(param_00)
{
for(var_01 = 0;var_01 < param_00.size;var_01++)
{
param_00[var_01] endon("death");
}
var_02 = 0;
var_03 = 1;
for(;;)
{
if(isalive(param_00[var_02]))
{
param_00[var_02] set_firing(1);
}
if(isalive(param_00[var_03]))
{
param_00[var_03] set_firing(0);
}
var_04 = var_02;
var_02 = var_03;
var_03 = var_04;
wait randomfloatrange(2.3,3.5);
}
}
//Function Number: 13
func_0672(param_00,param_01)
{
start_firing();
self endon("death");
self endon("new_enemy");
param_01 endon("death");
while(self cansee(param_01))
{
var_02 = vectortoangles(param_01 geteye() - param_00.origin);
var_02 = anglestoforward(var_02);
param_00 moveto(param_00.origin + var_02 * 10,0.2);
wait 0.2;
}
var_02 = vectortoangles(param_01 geteye() - param_00.origin);
var_02 = anglestoforward(var_02);
var_03 = 150;
var_04 = distance(param_00.origin,self.var_663) / var_03;
param_00 moveto(self.var_663,var_04);
wait var_04;
var_05 = param_00.origin;
param_00 moveto(param_00.origin + var_02 * 80 + (0,0,-25),3,1,1);
wait 3.5;
param_00 moveto(var_05 + var_02 * -20,3,1,1);
wait 1;
stop_firing();
}
//Function Number: 14
get_suppress_point(param_00,param_01,param_02)
{
var_03 = distance(param_01,param_02) * 0.05;
if(var_03 < 5)
{
var_03 = 5;
}
if(var_03 > 20)
{
var_03 = 20;
}
var_04 = param_02 - param_01;
var_04 = (var_04[0] / var_03,var_04[1] / var_03,var_04[2] / var_03);
var_05 = (0,0,0);
var_06 = undefined;
for(var_07 = 0;var_07 < var_03 + 2;var_07++)
{
var_08 = bullettrace(param_00,param_01 + var_05,0,undefined);
if(var_08["fraction"] < 1)
{
var_06 = var_08["position"];
break;
}
var_05 = var_05 + var_04;
}
return var_06;
}
//Function Number: 15
record_enemy_sightings()
{
self endon("death");
self endon("end_mg_behavior");
self.current_enemy = undefined;
for(;;)
{
func_0675();
wait 0.05;
}
}
//Function Number: 16
func_0675()
{
if(!isalive(self.enemy))
{
return;
}
if(!self cansee(self.enemy))
{
return;
}
self.var_663 = self.enemy geteye();
self notify("saw_enemy");
if(!isalive(self.current_enemy) || self.current_enemy != self.enemy)
{
self.current_enemy = self.enemy;
self notify("new_enemy");
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,320 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_missions.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 17
* Decompile Time: 296 ms
* Timestamp: 10/27/2023 2:32:33 AM
*******************************************************************/
//Function Number: 1
init()
{
foreach(var_01 in level.players)
{
var_01 initnotifymessage();
}
}
//Function Number: 2
monitor_challenges()
{
}
//Function Number: 3
challenge_targetval(param_00,param_01,param_02)
{
var_03 = tablelookup(param_00,0,param_01,6 + param_02 - 1 * 2);
return int(var_03);
}
//Function Number: 4
challenge_rewardval(param_00,param_01,param_02)
{
var_03 = tablelookup(param_00,0,param_01,7 + param_02 - 1 * 2);
return int(var_03);
}
//Function Number: 5
getchallengestatus(param_00)
{
if(isdefined(self.challengedata[param_00]))
{
return self.challengedata[param_00];
}
return 0;
}
//Function Number: 6
ch_getprogress(param_00)
{
return self getplayerdata("challengeProgress",param_00);
}
//Function Number: 7
ch_getstate(param_00)
{
return self getplayerdata("challengeState",param_00);
}
//Function Number: 8
ch_setprogress(param_00,param_01)
{
return self setplayerdata("challengeProgress",param_00,param_01);
}
//Function Number: 9
ch_setstate(param_00,param_01)
{
return self setplayerdata("challengeState",param_00,param_01);
}
//Function Number: 10
ch_gettarget(param_00,param_01)
{
return int(tablelookup("sp/allChallengesTable.csv",0,param_00,6 + param_01 - 1 * 2));
}
//Function Number: 11
func_0E7B(param_00,param_01)
{
var_02 = 0;
var_03 = tablelookupbyrow(param_00,0,0);
for(var_04 = 1;var_03 != "";var_04++)
{
level.challengeinfo[var_03] = [];
level.challengeinfo[var_03]["targetval"] = [];
level.challengeinfo[var_03]["reward"] = [];
level.challengeinfo[var_03]["type"] = param_01;
for(var_05 = 1;var_05 < 11;var_05++)
{
var_06 = challenge_targetval(param_00,var_03,var_05);
var_07 = challenge_rewardval(param_00,var_03,var_05);
if(var_06 == 0)
{
break;
}
level.challengeinfo[var_03]["targetval"][var_05] = var_06;
level.challengeinfo[var_03]["reward"][var_05] = var_07;
var_02 = var_02 + var_07;
}
var_03 = tablelookupbyrow(param_00,var_04,0);
}
return int(var_02);
}
//Function Number: 12
buildchallengeinfo()
{
level.challengeinfo = [];
var_00 = 0;
var_00 = var_00 + func_0E7B("sp/allchallengesTable.csv",0);
var_01 = tablelookupbyrow("sp/challengeTable.csv",0,4);
for(var_02 = 1;var_01 != "";var_02++)
{
var_03 = tablelookupbyrow(var_01,0,0);
for(var_04 = 1;var_03 != "";var_04++)
{
var_05 = tablelookup(var_01,0,var_03,1);
if(var_05 != "")
{
level.challengeinfo[var_03]["requirement"] = var_05;
}
var_03 = tablelookupbyrow(var_01,var_04,0);
}
var_01 = tablelookupbyrow("sp/challengeTable.csv",var_02,4);
}
}
//Function Number: 13
challengesplashnotify(param_00)
{
self endon("disconnect");
waittillframeend;
wait 0.05;
var_01 = ch_getstate(param_00) - 1;
var_02 = ch_gettarget(param_00,var_01);
if(var_02 == 0)
{
var_02 = 1;
}
var_03 = spawnstruct();
var_03.type = "challenge";
var_03.optionalnumber = var_02;
var_03.name = param_00;
var_03.sound = tablelookup("sp/splashTable.csv",0,var_03.name,9);
var_03.slot = 0;
thread maps\_rank::actionnotify(var_03);
}
//Function Number: 14
updatechallenges()
{
self.challengedata = [];
wait 0.05;
foreach(var_04, var_01 in level.challengeinfo)
{
self.challengedata[var_04] = 0;
if(!self isitemunlocked(var_04))
{
continue;
}
if(isdefined(var_01["requirement"]) && !self isitemunlocked(var_01["requirement"]))
{
continue;
}
var_02 = 0;
var_03 = var_04;
var_02 = ch_getstate(var_04);
if(var_02 == 0)
{
ch_setstate(var_04,1);
var_02 = 1;
}
self.challengedata[var_04] = var_02;
}
}
//Function Number: 15
giverankxpafterwait(param_00,param_01)
{
self endon("death");
self endon("disconnect");
wait 0.25;
maps\_utility::func_E86("challenge",level.challengeinfo[param_00]["reward"][param_01]);
}
//Function Number: 16
processchallenge(param_00,param_01,param_02)
{
if(!isdefined(param_01))
{
param_01 = 1;
}
var_03 = getchallengestatus(param_00);
if(var_03 == 0)
{
return;
}
if(var_03 > level.challengeinfo[param_00]["targetval"].size)
{
return;
}
var_04 = ch_getprogress(param_00);
if(isdefined(param_02) && param_02)
{
var_05 = param_01;
}
else
{
var_05 = var_05 + param_02;
}
var_06 = level.challengeinfo[param_00]["targetval"][var_03];
if(var_05 >= var_06)
{
var_07 = 1;
var_05 = var_06;
}
else
{
var_07 = 0;
}
if(var_04 < var_05)
{
ch_setprogress(param_00,var_05);
}
if(var_07)
{
thread giverankxpafterwait(param_00,var_03);
var_03++;
ch_setstate(param_00,var_03);
self.challengedata[param_00] = var_03;
thread challengesplashnotify(param_00);
}
}
//Function Number: 17
initnotifymessage()
{
if(maps\_utility::func_E89())
{
var_00 = 2.5;
var_01 = 1.75;
var_02 = 24;
var_03 = "objective";
var_04 = "TOP";
var_05 = "BOTTOM";
var_06 = 30;
var_07 = 0;
}
else
{
var_00 = 2.5;
var_01 = 1.75;
var_02 = 30;
var_03 = "objective";
var_04 = "TOP";
var_05 = "BOTTOM";
var_06 = 30;
var_07 = 0;
}
self.notifytitle = maps\_hud_util::createclientfontstring(var_03,var_00);
self.notifytitle maps\_hud_util::setpoint(var_04,undefined,var_07,var_06);
self.notifytitle.glowcolor = (0.2,0.3,0.7);
self.notifytitle.glowalpha = 1;
self.notifytitle.hidewheninmenu = 1;
self.notifytitle.archived = 0;
self.notifytitle.alpha = 0;
self.notifytext = maps\_hud_util::createclientfontstring(var_03,var_01);
self.notifytext maps\_hud_util::setparent(self.notifytitle);
self.notifytext maps\_hud_util::setpoint(var_04,var_05,0,0);
self.notifytext.glowcolor = (0.2,0.3,0.7);
self.notifytext.glowalpha = 1;
self.notifytext.hidewheninmenu = 1;
self.notifytext.archived = 0;
self.notifytext.alpha = 0;
self.notifytext2 = maps\_hud_util::createclientfontstring(var_03,var_01);
self.notifytext2 maps\_hud_util::setparent(self.notifytitle);
self.notifytext2 maps\_hud_util::setpoint(var_04,var_05,0,0);
self.notifytext2.glowcolor = (0.2,0.3,0.7);
self.notifytext2.glowalpha = 1;
self.notifytext2.hidewheninmenu = 1;
self.notifytext2.archived = 0;
self.notifytext2.alpha = 0;
self.notifyicon = maps\_hud_util::createclienticon("white",var_02,var_02);
self.notifyicon maps\_hud_util::setparent(self.notifytext2);
self.notifyicon maps\_hud_util::setpoint(var_04,var_05,0,0);
self.notifyicon.hidewheninmenu = 1;
self.notifyicon.archived = 0;
self.notifyicon.alpha = 0;
self.doingnotify = 0;
self.var_E8F = [];
self.doingsplash = [];
self.doingsplash[0] = undefined;
self.doingsplash[1] = undefined;
self.doingsplash[2] = undefined;
self.doingsplash[3] = undefined;
self.splashqueue = [];
self.splashqueue[0] = [];
self.splashqueue[1] = [];
self.splashqueue[2] = [];
self.splashqueue[3] = [];
}

1645
MW3/Xbox/SP/maps/_mortar.gsc Normal file

File diff suppressed because it is too large Load Diff

831
MW3/Xbox/SP/maps/_names.gsc Normal file
View File

@ -0,0 +1,831 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_names.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 14
* Decompile Time: 243 ms
* Timestamp: 10/27/2023 2:34:46 AM
*******************************************************************/
//Function Number: 1
main()
{
}
//Function Number: 2
setup_names()
{
if(isdefined(level.names))
{
return;
}
var_00 = [];
var_01 = 0;
while(var_01 < var_41.size)
{
level.names[var_41[var_01]] = [];
var_01++ = var_41[var_41.size];
}
add_name("american","Abbott");
add_name("american","Abeles");
add_name("american","Ackrich");
add_name("american","Alvarez");
add_name("american","Andaya");
add_name("american","Andrew");
add_name("american","Arcovitch");
add_name("american","Arem");
add_name("american","Arya");
add_name("american","Audick");
add_name("american","Aye");
add_name("american","Babichenko");
add_name("american","Baker");
add_name("american","Bartolucci");
add_name("american","Beahm");
add_name("american","Bedi");
add_name("american","Bein");
add_name("american","Bell");
add_name("american","Benitez");
add_name("american","Berry");
add_name("american","Blizard");
add_name("american","Blumel");
add_name("american","Boon");
add_name("american","Bowling");
add_name("american","Boyd");
add_name("american","Bracamontes");
add_name("american","Brooks");
add_name("american","Brown");
add_name("american","Buchanan");
add_name("american","Buckles");
add_name("american","Capen");
add_name("american","Casey");
add_name("american","Cecot");
add_name("american","Centkowski");
add_name("american","Chan");
add_name("american","Chang");
add_name("american","Chen");
add_name("american","Chew");
add_name("american","Chu");
add_name("american","Chyo");
add_name("american","Cinquegrano");
add_name("american","Clark");
add_name("american","Condrey");
add_name("american","Conteras");
add_name("american","Cournoyer");
add_name("american","Curley");
add_name("american","Daley");
add_name("american","David");
add_name("american","Davis");
add_name("american","DeBolt");
add_name("american","DeMartini");
add_name("american","Denny");
add_name("american","Deonarine");
add_name("american","DeRidder");
add_name("american","Desmarais");
add_name("american","DiMeo");
add_name("american","Dobbie");
add_name("american","Dohr");
add_name("american","Dolan");
add_name("american","Drinkward");
add_name("american","Dye");
add_name("american","Eady");
add_name("american","Evans");
add_name("american","Feinberg");
add_name("american","Felker");
add_name("american","Field");
add_name("american","Fong");
add_name("american","Ganus");
add_name("american","Gavazza");
add_name("american","Gavrisheff");
add_name("american","Gevorkian");
add_name("american","Giesler");
add_name("american","Gil");
add_name("american","Glasco");
add_name("american","Goldsworthy");
add_name("american","Griffith");
add_name("american","Gu");
add_name("american","Guaman");
add_name("american","Gunasingam");
add_name("american","Hall");
add_name("american","Halon");
add_name("american","Harmer");
add_name("american","Harries");
add_name("american","Harris");
add_name("american","Haugen");
add_name("american","Haworth");
add_name("american","Hazelroth");
add_name("american","Heath");
add_name("american","Hirsh");
add_name("american","Holmes");
add_name("american","Hook");
add_name("american","Hudson");
add_name("american","Imai");
add_name("american","Jeffries");
add_name("american","Johnson");
add_name("american","Katz");
add_name("american","Keiser");
add_name("american","Kelvin");
add_name("american","Kinney");
add_name("american","Kriegler");
add_name("american","Kuhn");
add_name("american","Kuo");
add_name("american","Kwak");
add_name("american","Lai");
add_name("american","Lam");
add_name("american","Lamperski");
add_name("american","Lane");
add_name("american","Leal");
add_name("american","Lee");
add_name("american","Liang");
add_name("american","Lie");
add_name("american","Lin");
add_name("american","Lodato");
add_name("american","Longland");
add_name("american","Lopez");
add_name("american","Lor");
add_name("american","Louie");
add_name("american","Luo");
add_name("american","Luyties");
add_name("american","Madrid");
add_name("american","Mai");
add_name("american","McDonald");
add_name("american","McEntyre");
add_name("american","McGrath");
add_name("american","McGree");
add_name("american","McLeran");
add_name("american","Mermelstein");
add_name("american","Miller");
add_name("american","Munson");
add_name("american","Myers");
add_name("american","Naas");
add_name("american","Nacu");
add_name("american","Nahashon");
add_name("american","Neel");
add_name("american","O\'Connor");
add_name("american","O\'Hara");
add_name("american","Onur");
add_name("american","Pacheco");
add_name("american","Pavey");
add_name("american","Pavlich");
add_name("american","Peacher");
add_name("american","Peas");
add_name("american","Pelayo");
add_name("american","Pennya");
add_name("american","Pierce");
add_name("american","Pineda");
add_name("american","Pitts");
add_name("american","Porter");
add_name("american","Proudfoot");
add_name("american","Reisdorf");
add_name("american","Robbins");
add_name("american","Rowell");
add_name("american","Rubin");
add_name("american","Ruiz");
add_name("american","Ryu");
add_name("american","Sahas");
add_name("american","Salud");
add_name("american","Sanborn");
add_name("american","Sandler");
add_name("american","Sarkisyan");
add_name("american","Schmill");
add_name("american","Schofield");
add_name("american","Shande");
add_name("american","Sharp");
add_name("american","Shellikeri");
add_name("american","Shepherd");
add_name("american","Sheu");
add_name("american","Sidey");
add_name("american","Silvers");
add_name("american","Simas");
add_name("american","Smith");
add_name("american","Soucy");
add_name("american","Sperry");
add_name("american","Staples");
add_name("american","Stone");
add_name("american","Stoughton");
add_name("american","Strickland");
add_name("american","Suarez");
add_name("american","SullivanLee");
add_name("american","Swenson");
add_name("american","T");
add_name("american","Taehoon");
add_name("american","Tang");
add_name("american","Turner");
add_name("american","Veca");
add_name("american","Vitalone");
add_name("american","Volker");
add_name("american","Vuong");
add_name("american","Wapner");
add_name("american","Wasilczyk");
add_name("american","Webb");
add_name("american","West");
add_name("american","Whelpley");
add_name("american","Whitney");
add_name("american","Whitten");
add_name("american","Wrede");
add_name("american","Wright");
add_name("american","Yang");
add_name("american","Zaiya");
add_name("american","Zaring");
add_name("american","Zipkin");
add_name("seal","Angel");
add_name("seal","Apex");
add_name("seal","Bearcat");
add_name("seal","Bishop");
add_name("seal","Boomer");
add_name("seal","Boxer");
add_name("seal","Canine");
add_name("seal","Chemist");
add_name("seal","Chemo");
add_name("seal","Cherub");
add_name("seal","Chino");
add_name("seal","Coffin");
add_name("seal","Coma");
add_name("seal","Cyclops");
add_name("seal","Cypher");
add_name("seal","Doc");
add_name("seal","Druid");
add_name("seal","Exxon");
add_name("seal","Gator");
add_name("seal","Hannibal");
add_name("seal","Hazard");
add_name("seal","Hitman");
add_name("seal","Jayhawk");
add_name("seal","Jester");
add_name("seal","Justice");
add_name("seal","Klepto");
add_name("seal","Kojak");
add_name("seal","Langley");
add_name("seal","Neptune");
add_name("seal","Mamba");
add_name("seal","Midnight");
add_name("seal","Neon");
add_name("seal","Nomad");
add_name("seal","Ogre");
add_name("seal","Ozone");
add_name("seal","Patron");
add_name("seal","Pharaoh");
add_name("seal","Pieces");
add_name("seal","Poet");
add_name("seal","Preacher");
add_name("seal","Reaper");
add_name("seal","Redcell");
add_name("seal","Roadie");
add_name("seal","Robot");
add_name("seal","Rocket");
add_name("seal","Rooster");
add_name("seal","Sparrow");
add_name("seal","Taco");
add_name("seal","Thumper");
add_name("seal","Trojan");
add_name("seal","Twister");
add_name("seal","Undertone");
add_name("seal","Utah");
add_name("seal","Whiskey");
add_name("seal","Worm");
add_name("seal","Yankee");
add_name("seal","Zero");
copy_names("taskforce","seal");
copy_names("delta","seal");
add_name("secretservice","Smith");
add_name("secretservice","Jones");
add_name("secretservice","Jackson");
add_name("secretservice","Johnson");
add_name("secretservice","Thompson");
add_name("secretservice","Ash");
add_name("secretservice","Bird");
add_name("secretservice","Finn");
add_name("secretservice","Fine");
add_name("secretservice","Brown");
add_name("secretservice","White");
add_name("secretservice","Gray");
add_name("secretservice","Black");
add_name("secretservice","Wylie");
add_name("secretservice","Rosenhaus");
add_name("secretservice","Boras");
add_name("secretservice","McKinnis");
add_name("secretservice","Duffy");
add_name("secretservice","Falk");
add_name("secretservice","Tellem");
add_name("secretservice","Goodwin");
add_name("secretservice","Condon");
add_name("secretservice","Parker");
add_name("secretservice","McGuire");
add_name("secretservice","Steinberg");
add_name("british","Abbot");
add_name("british","Adams");
add_name("british","Bartlett");
add_name("british","Boyd");
add_name("british","Boyle");
add_name("british","Bremner");
add_name("british","Carlyle");
add_name("british","Carver");
add_name("british","Cheek");
add_name("british","Clarke");
add_name("british","Collins");
add_name("british","Compton");
add_name("british","Connolly");
add_name("british","Cook");
add_name("british","Dowd");
add_name("british","Field");
add_name("british","Fleming");
add_name("british","Fletcher");
add_name("british","Flynn");
add_name("british","Grant");
add_name("british","Greaves");
add_name("british","Harris");
add_name("british","Harrison");
add_name("british","Heath");
add_name("british","Henderson");
add_name("british","Hopkins");
add_name("british","Hoyt");
add_name("british","Kent");
add_name("british","Lewis");
add_name("british","Lipton");
add_name("british","Macdonald");
add_name("british","Maxwell");
add_name("british","McQuarrie");
add_name("british","Miller");
add_name("british","Mitchell");
add_name("british","Moore");
add_name("british","Murphy");
add_name("british","Murray");
add_name("british","Pearce");
add_name("british","Plumber");
add_name("british","Pritchard");
add_name("british","Rankin");
add_name("british","Reed");
add_name("british","Ritchie");
add_name("british","Ross");
add_name("british","Roth");
add_name("british","Smith");
add_name("british","Stevenson");
add_name("british","Stuart");
add_name("british","Sullivan");
add_name("british","Thompson");
add_name("british","Veale");
add_name("british","Wallace");
add_name("british","Wells");
add_name("british","Welsh");
add_name("russian","Sasha Ivanov");
add_name("russian","Aleksei Vyshinskiy");
add_name("russian","Boris Ryzhkov");
add_name("russian","Dima Tikhonov");
add_name("russian","Oleg Kosygin");
add_name("russian","Pyotr Bulganin");
add_name("russian","Petya Malenkov");
add_name("russian","Alyosha Tarkovsky");
add_name("russian","Sergei Grombyo");
add_name("russian","Viktor Kuznetsov");
add_name("russian","Misha Podgorniy");
add_name("russian","Borya Mikoyan");
add_name("russian","Anatoly Voroshilov");
add_name("russian","Kolya Shvernik");
add_name("russian","Nikolai Kalinin");
add_name("russian","Vladimir Brezhnev");
add_name("russian","Pavel Chernenko");
add_name("russian","Volodya Andropov");
add_name("russian","Yuri Nikitin");
add_name("russian","Dmitri Petrenko");
add_name("russian","Vanya Gerasimov");
add_name("russian","Mikhail Zhuravlev");
add_name("russian","Ivan Lukin");
add_name("russian","Kostya Golubev");
add_name("russian","Konstantin Lebedev");
add_name("russian","Aleksandr Vasilev");
add_name("russian","Yakov Glushenko");
add_name("russian","Sasha Semenov");
add_name("russian","Aleksei Ulyanov");
add_name("russian","Boris Yefremov");
add_name("russian","Dima Chernyshenko");
add_name("russian","Oleg Stepanoshvili");
add_name("russian","Pyotr Demchenko");
add_name("russian","Petya Avagimov");
add_name("russian","Alyosha Murzaev");
add_name("russian","Sergei Shkuratov");
add_name("russian","Viktor Yakimenko");
add_name("russian","Misha Masijashvili");
add_name("russian","Borya Shapovalov");
add_name("russian","Anatoly Ivashenko");
add_name("russian","Kolya Dovzhenko");
add_name("russian","Nikolai Turdyev");
add_name("russian","Vladimir Sabgaida");
add_name("russian","Pavel Svirin");
add_name("russian","Volodya Sarayev");
add_name("russian","Yuri Kiselev");
add_name("russian","Dmitri Bondarenko");
add_name("russian","Vanya Chernogolov");
add_name("russian","Mikhail Voronov");
add_name("russian","Ivan Afanasyev");
add_name("russian","Kostya Gridin");
add_name("russian","Konstantin Petrov");
add_name("russian","Aleksandr Rykov");
add_name("russian","Yakov Shvedov");
add_name("arab","Abdulaziz");
add_name("arab","Abdullah");
add_name("arab","Ali");
add_name("arab","Amin");
add_name("arab","Bassam");
add_name("arab","Fahd");
add_name("arab","Faris");
add_name("arab","Fouad");
add_name("arab","Habib");
add_name("arab","Hakem");
add_name("arab","Hassan");
add_name("arab","Ibrahim");
add_name("arab","Imad");
add_name("arab","Jabbar");
add_name("arab","Kareem");
add_name("arab","Khalid");
add_name("arab","Malik");
add_name("arab","Muhammad");
add_name("arab","Nasir");
add_name("arab","Omar");
add_name("arab","Rafiq");
add_name("arab","Rami");
add_name("arab","Said");
add_name("arab","Salim");
add_name("arab","Samir");
add_name("arab","Talib");
add_name("arab","Tariq");
add_name("arab","Youssef");
add_name("arab","Ziad");
add_name("portuguese","Carlitos");
add_name("portuguese","Antonio");
add_name("portuguese","Gervasio");
add_name("portuguese","Lois");
add_name("portuguese","Xesus");
add_name("shadowcompany","Lestat");
add_name("shadowcompany","Nosferatu");
add_name("shadowcompany","Lecter");
add_name("multilingual","Kugelschreiber");
add_name("multilingual","Flughafen");
add_name("french","Astor");
add_name("french","Beliveau");
add_name("french","Chaloux");
add_name("french","Leboeuf");
add_name("french","Leblanc");
add_name("french","Navarre");
add_name("french","Perilloux");
add_name("french","Philippe");
add_name("french","Taillon");
add_name("african","Sulaiman");
add_name("african","Camara");
add_name("african","Mustapha");
add_name("african","Abubakarr");
add_name("czech","Andrej");
add_name("czech","Anton");
add_name("czech","Antonín");
add_name("czech","Arnost");
add_name("czech","Augustín");
add_name("czech","Bartolomej");
add_name("czech","Beda");
add_name("czech","Bedrich");
add_name("czech","Benes");
add_name("czech","Blaze");
add_name("czech","Bohdan");
add_name("czech","Bohuslav");
add_name("czech","Bonifác");
add_name("czech","Bozidar");
add_name("czech","Branislav");
add_name("czech","Cenek");
add_name("czech","Ctibor");
add_name("czech","Dalek");
add_name("czech","Dalibor");
add_name("czech","Damek");
add_name("czech","Danek");
add_name("czech","Dávid");
add_name("czech","Dobromil");
add_name("czech","Dominik");
add_name("czech","Drahoslav");
add_name("czech","Dusa");
add_name("czech","Edvard");
add_name("czech","Eliás");
add_name("czech","Evzen");
add_name("czech","Frantisek");
add_name("czech","Gabriel");
add_name("czech","Georg");
add_name("czech","Holic");
add_name("czech","Honza");
add_name("czech","Ignác");
add_name("czech","Imrich");
add_name("czech","Ivan");
add_name("czech","Jakub");
add_name("czech","Jan");
add_name("czech","Jarmil");
add_name("czech","Jaroslav");
add_name("czech","Jindrich");
add_name("czech","Jirí");
add_name("czech","Johan");
add_name("czech","Josef");
add_name("czech","Július");
add_name("czech","Juraj");
add_name("czech","Kamil");
add_name("czech","Konstantin");
add_name("czech","Kopecký");
add_name("czech","Kornel");
add_name("czech","Kristof");
add_name("czech","Ladislav");
add_name("czech","Leos");
add_name("czech","Libor");
add_name("czech","Ludvík");
add_name("czech","Lukás");
add_name("czech","Marek");
add_name("czech","Matej");
add_name("czech","Matous");
add_name("czech","Matus");
add_name("czech","Michal");
add_name("czech","Mikulás");
add_name("czech","Milan");
add_name("czech","Milos");
add_name("czech","Mirek");
add_name("czech","Miroslav");
add_name("czech","Nikola");
add_name("czech","Oldrich");
add_name("czech","Ondrej");
add_name("czech","Otakar");
add_name("czech","Patrik");
add_name("czech","Pavel");
add_name("czech","Petr");
add_name("czech","Premysl");
add_name("czech","Radek");
add_name("czech","Radim");
add_name("czech","Radoslav");
add_name("czech","Rehor");
add_name("czech_surnames","Blumel");
add_name("czech_surnames","Maly");
add_name("czech_surnames","Pospisil");
add_name("czech_surnames","Soukup");
add_name("czech_surnames","Blazek");
add_name("czech_surnames","Dolezal");
add_name("czech_surnames","Fiser");
add_name("czech_surnames","Kadlec");
add_name("czech_surnames","Kolar");
add_name("czech_surnames","Kopecky");
add_name("czech_surnames","Kriz");
add_name("czech_surnames","Mares");
add_name("czech_surnames","Masek");
add_name("czech_surnames","Polak");
add_name("czech_surnames","Sedlacek");
add_name("czech_surnames","Stastny");
add_name("czech_surnames","Tuma");
add_name("czech_surnames","Vanek");
add_name("czech_surnames","Blaha");
add_name("czech_surnames","Dusek");
add_name("czech_surnames","Hruska");
add_name("czech_surnames","Janda");
add_name("czech_surnames","Kohout");
add_name("czech_surnames","Matousek");
add_name("czech_surnames","Moravec");
add_name("czech_surnames","Mueller");
add_name("czech_surnames","Riha");
add_name("czech_surnames","Strnad");
add_name("czech_surnames","Sykora");
add_name("czech_surnames","Simek");
add_name("czech_surnames","Smid");
add_name("czech_surnames","Stepanek");
add_name("czech_surnames","Tichy");
add_name("czech_surnames","Vacek");
add_name("czech_surnames","Vlcek");
copy_names("pmc","czech_surnames");
init_script_friendnames();
for(var_01 = 0;var_01 < var_41.size;var_01++ = "pmc")
{
remove_script_friendnames_from_list(var_41[var_01]);
randomize_name_list(var_41[var_01]);
level.nameindex[var_41[var_01]] = 0;
}
}
//Function Number: 3
copy_names(param_00,param_01)
{
level.names[param_00] = level.names[param_01];
}
//Function Number: 4
add_name(param_00,param_01)
{
level.names[param_00][level.names[param_00].size] = param_01;
}
//Function Number: 5
remove_name(param_00,param_01)
{
level.names[param_00] = common_scripts\utility::array_remove(level.names[param_00],param_01);
}
//Function Number: 6
init_script_friendnames()
{
var_00 = [];
var_01 = getspawnerarray();
var_02 = getaiarray();
foreach(var_04 in var_01)
{
if(isdefined(var_04.script_friendname) && var_04.script_friendname != "none")
{
var_05 = normalize_script_friendname(var_04.script_friendname);
var_00[var_00.size] = var_05;
}
}
foreach(var_08 in var_02)
{
if(isdefined(var_08.script_friendname) && var_08.script_friendname != "none")
{
var_05 = normalize_script_friendname(var_08.script_friendname);
var_00[var_00.size] = var_05;
}
}
level.script_friendnames = var_00;
}
//Function Number: 7
normalize_script_friendname(param_00)
{
var_01 = strtok(param_00," ");
if(var_01.size > 1)
{
param_00 = var_01[1];
}
return param_00;
}
//Function Number: 8
remove_script_friendnames_from_list(param_00)
{
foreach(var_02 in level.script_friendnames)
{
foreach(var_04 in level.names[param_00])
{
if(var_02 == var_04)
{
remove_name(param_00,var_04);
}
}
}
}
//Function Number: 9
randomize_name_list(param_00)
{
var_01 = level.names[param_00].size;
for(var_02 = 0;var_02 < var_01;var_02++)
{
var_03 = randomint(var_01);
var_04 = level.names[param_00][var_02];
level.names[param_00][var_02] = level.names[param_00][var_03];
level.names[param_00][var_03] = var_04;
}
}
//Function Number: 10
get_name(param_00)
{
if(isdefined(self.team) && self.team == "neutral")
{
return;
}
if(!isdefined(param_00) && level.script == "credits")
{
self.airank = "private";
return;
}
if(isdefined(self.script_friendname))
{
if(self.script_friendname == "none")
{
return;
}
self.name = self.script_friendname;
func_0E6E(self.name);
self notify("set name and rank");
return;
}
get_name_for_nationality(self.voice);
self notify("set name and rank");
}
//Function Number: 11
get_name_for_nationality(param_00)
{
level.nameindex[param_00] = level.nameindex[param_00] + 1 % level.names[param_00].size;
var_01 = level.names[param_00][level.nameindex[param_00]];
var_02 = randomint(10);
if(nationalityusessurnames(param_00))
{
var_03 = param_00 + "_surnames";
level.nameindex[var_03] = level.nameindex[var_03] + 1 % level.names[var_03].size;
var_01 = var_01 + " " + level.names[var_03][level.nameindex[var_03]];
}
if(func_0E6F(param_00))
{
var_04 = var_01;
self.airank = "private";
}
else if(var_01 == "secretservice")
{
var_04 = "Agent " + var_02;
self.airank = "private";
}
else if(var_04 > 5)
{
var_04 = "Pvt. " + var_02;
self.airank = "private";
}
else if(var_04 > 2)
{
var_04 = "Cpl. " + var_02;
self.airank = "private";
}
else
{
var_04 = "Sgt. " + var_02;
self.airank = "sergeant";
}
if(isai(self) && self isbadguy())
{
self.ainame = var_04;
return;
}
self.name = var_04;
}
//Function Number: 12
func_0E6E(param_00)
{
if(!isdefined(param_00))
{
self.airank = "private";
}
var_01 = strtok(param_00," ");
var_02 = var_01[0];
switch(var_02)
{
case "Pvt.":
self.airank = "private";
break;
case "Pfc.":
self.airank = "private";
break;
case "Agent":
self.airank = "private";
break;
case "Cpl.":
self.airank = "corporal";
break;
case "Sgt.":
self.airank = "sergeant";
break;
case "Lt.":
self.airank = "lieutenant";
break;
case "Cpt.":
self.airank = "captain";
break;
default:
self.airank = "private";
break;
}
}
//Function Number: 13
func_0E6F(param_00)
{
switch(param_00)
{
case "seal":
case "taskforce":
case "czech":
case "delta":
return 1;
}
return 0;
}
//Function Number: 14
nationalityusessurnames(param_00)
{
return isdefined(level.names[param_00 + "_surnames"]);
}

1486
MW3/Xbox/SP/maps/_noder.gsc Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,230 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_overheat.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 8
* Decompile Time: 132 ms
* Timestamp: 10/27/2023 2:34:30 AM
*******************************************************************/
//Function Number: 1
func_3C6F()
{
precacheshader("hud_temperature_gauge");
}
//Function Number: 2
overheat_enable(param_00)
{
if(isdefined(self.var_37C2))
{
return;
}
self.var_37C2 = spawnstruct();
self.var_37C2.turret_heat_status = 1;
self.var_37C2.overheated = 0;
self.var_37C2.var_3C72 = 114;
self.var_37C2.turret_heat_rate = 1;
self.var_37C2.turret_cool_rate = 1;
self.var_37C2.var_3C75 = 2;
self.var_37C2.var_3C76 = 0.2;
self.var_37C2.overheat_flash_time_increment = 0.1;
self.var_37C2.var_3C78 = 2;
thread create_hud();
thread status_meter_update(param_00);
}
//Function Number: 3
overheat_disable()
{
self notify("disable_overheat");
level.savehere = undefined;
waittillframeend;
if(isdefined(self.var_37C2.var_3C7A))
{
self.var_37C2.var_3C7A destroy();
}
if(isdefined(self.var_37C2.var_3C7B))
{
self.var_37C2.var_3C7B destroy();
}
self.var_37C2 = undefined;
}
//Function Number: 4
status_meter_update(param_00)
{
self endon("disable_overheat");
for(;;)
{
if(self.var_37C2.turret_heat_status >= self.var_37C2.var_3C72)
{
wait 0.05;
continue;
}
if(self attackbuttonpressed() && !self.var_37C2.overheated)
{
self.var_37C2.turret_heat_status = self.var_37C2.turret_heat_status + self.var_37C2.turret_heat_rate;
}
else
{
self.var_37C2.turret_heat_status = self.var_37C2.turret_heat_status - self.var_37C2.turret_cool_rate;
}
self.var_37C2.turret_heat_status = clamp(self.var_37C2.turret_heat_status,1,self.var_37C2.var_3C72);
func_3C7D();
thread overheated(param_00);
wait 0.05;
}
}
//Function Number: 5
func_3C7D()
{
self.var_37C2.var_3C7B scaleovertime(0.05,10,int(self.var_37C2.turret_heat_status));
thread func_3C7F(self.var_37C2.turret_heat_status,0.05);
}
//Function Number: 6
create_hud()
{
self endon("disable_overheat");
var_00 = 0;
if(maps\_utility::func_E89())
{
var_00 = 70;
}
var_01 = -10;
var_02 = -152 + var_00;
if(!isdefined(self.var_37C2.var_3C7A))
{
self.var_37C2.var_3C7A = newclienthudelem(self);
self.var_37C2.var_3C7A.alignx = "right";
self.var_37C2.var_3C7A.aligny = "bottom";
self.var_37C2.var_3C7A.horzalign = "right";
self.var_37C2.var_3C7A.vertalign = "bottom";
self.var_37C2.var_3C7A.x = 2;
self.var_37C2.var_3C7A.y = -120 + var_00;
self.var_37C2.var_3C7A setshader("hud_temperature_gauge",35,150);
self.var_37C2.var_3C7A.sort = 4;
}
if(!isdefined(self.var_37C2.var_3C7B))
{
self.var_37C2.var_3C7B = newclienthudelem(self);
self.var_37C2.var_3C7B.alignx = "right";
self.var_37C2.var_3C7B.aligny = "bottom";
self.var_37C2.var_3C7B.horzalign = "right";
self.var_37C2.var_3C7B.vertalign = "bottom";
self.var_37C2.var_3C7B.x = var_01;
self.var_37C2.var_3C7B.y = var_02;
self.var_37C2.var_3C7B setshader("white",10,1);
self.var_37C2.var_3C7B.color = (1,0.9,0);
self.var_37C2.var_3C7B.alpha = 1;
self.var_37C2.var_3C7B.sort = 1;
}
}
//Function Number: 7
overheated(param_00)
{
self endon("disable_overheat");
if(self.var_37C2.turret_heat_status < self.var_37C2.var_3C72)
{
return;
}
if(self.var_37C2.overheated)
{
return;
}
self.var_37C2.overheated = 1;
level.savehere = 0;
thread maps\_utility::play_sound_on_entity("smokegrenade_explode_default");
self.var_37C2.turret_heat_status = self.var_37C2.var_3C72;
if(isdefined(param_00.mgturret))
{
param_00.mgturret[0] turretfiredisable();
}
var_01 = gettime();
var_02 = self.var_37C2.var_3C76;
for(;;)
{
self.var_37C2.var_3C7B fadeovertime(var_02);
self.var_37C2.var_3C7B.alpha = 0.2;
wait var_02;
self.var_37C2.var_3C7B fadeovertime(var_02);
self.var_37C2.var_3C7B.alpha = 1;
wait var_02;
var_02 = var_02 + self.var_37C2.overheat_flash_time_increment;
if(gettime() - var_01 >= self.var_37C2.var_3C75 * 1000)
{
break;
}
}
self.var_37C2.var_3C7B.alpha = 1;
self.var_37C2.turret_heat_status = self.var_37C2.turret_heat_status - self.var_37C2.turret_cool_rate;
wait self.var_37C2.var_3C78;
if(isdefined(param_00.mgturret))
{
param_00.mgturret[0] turretfireenable();
}
level.savehere = undefined;
self.var_37C2.overheated = 0;
}
//Function Number: 8
func_3C7F(param_00,param_01)
{
self endon("disable_overheat");
var_02 = [];
var_03 = [];
var_04 = [];
var_05 = [];
var_06 = 0;
var_07 = self.var_37C2.var_3C72 / 2;
var_08 = self.var_37C2.var_3C72;
var_09 = undefined;
var_0A = undefined;
var_0B = undefined;
if(param_01 > var_06 && param_01 <= var_07)
{
var_09 = int(param_01 * 100 / var_07);
for(var_0C = 0;var_0C < var_05.size;var_0C++ = var_41[2])
{
var_0A = var_03[var_0C] - var_41[var_0C];
var_0B = var_0A / 100;
var_05[var_0C] = var_41[var_0C] + var_0B * var_09;
}
}
else if(param_01 > var_07 && param_01 <= var_08)
{
var_09 = int(param_01 - var_07 * 100 / var_08 - var_07);
for(var_0C = 0;var_0C < var_05.size;var_0C++ = var_41[2])
{
var_0A = var_04[var_0C] - var_03[var_0C];
var_0B = var_0A / 100;
var_05[var_0C] = var_03[var_0C] + var_0B * var_09;
}
}
if(isdefined(var_02))
{
self.var_37C2.var_3C7B fadeovertime(var_02);
}
if(isdefined(self.var_37C2.var_3C7B.color))
{
self.var_37C2.var_3C7B.color = (var_05[0],var_05[1],var_05[2]);
}
}

View File

@ -0,0 +1,809 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_patrol.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 23
* Decompile Time: 412 ms
* Timestamp: 10/27/2023 2:35:41 AM
*******************************************************************/
//Function Number: 1
patrol(param_00)
{
if(isdefined(self.enemy))
{
return;
}
self endon("enemy");
self endon("death");
self endon("damage");
self endon("end_patrol");
waittillframeend;
if(isdefined(self.var_1BD1))
{
[[ level.global_callbacks["_patrol_endon_spotted_flag"] ]]();
}
thread waittill_combat();
thread func_1BEF();
self.goalradius = 32;
self allowedstances("stand");
self.disablearrivals = 1;
self.disableexits = 1;
self.allowdeath = 1;
self.script_patroller = 1;
maps\_utility::disable_cqbwalk();
func_1BF6();
set_patrol_run_anim_array();
var_01["ent"][1] = ::get_target_ents;
var_29["ent"] = 0;
var_29["node"] = 1;
var_29["node"] = 0;
var_29["struct"] = 1;
var_29["struct"] = 0;
param_00["ent"] = ::maps\_utility::set_goal_ent;
if(isdefined(var_01))
{
self.target = var_01;
}
if(isdefined(self.target))
{
var_03 = 1;
var_04 = get_target_ents();
var_05 = get_target_nodes();
var_06 = func_0FD7();
if(var_04.size)
{
var_07 = common_scripts\utility::random(var_04);
var_08 = "ent";
}
else if(var_07.size)
{
var_07 = common_scripts\utility::random(var_07);
var_08 = "node";
}
else
{
var_07 = common_scripts\utility::random(var_08);
var_08 = "struct";
}
}
else
{
var_03 = 0;
var_04 = common_scripts\utility::get_linked_ents();
var_05 = func_1BF4();
var_06 = maps\_utility::get_linked_structs();
if(var_06.size)
{
var_07 = common_scripts\utility::random(var_06);
var_08 = "ent";
}
else if(var_07.size)
{
var_07 = common_scripts\utility::random(var_07);
var_08 = "node";
}
else
{
var_07 = common_scripts\utility::random(var_08);
var_08 = "struct";
}
}
var_09 = [];
var_0A = var_07;
for(;;)
{
while(isdefined(var_0A.var_1BD7))
{
wait 0.05;
}
var_07.var_1BD7 = undefined;
var_07 = var_0A;
self notify("release_node",var_41["phone"],"patrol_idle_phone",var_41["checkphone"],"patrol_idle_checkphone",var_41["stretch"],"patrol_idle_stretch",var_41["smoke"],"patrol_idle_smoke",var_41["turn180"],common_scripts\utility::ter_op(isdefined(self.var_1BD6),self.var_1BD6,"patrol_turn180"),var_41["pause"],"patrol_idle_",var_41["struct"],::maps\_utility::set_goal_ent,var_41["node"],::maps\_utility::set_goal_node,::maps\_utility::get_linked_structs,::func_0FD7,::func_1BF4,::get_target_nodes,::common_scripts\utility::get_linked_ents);
var_07.var_1BD7 = 1;
self.var_1BD8 = var_07;
[[ var_41[var_08] ]](var_07);
if(isdefined(var_07.radius) && var_07.radius > 0)
{
self.goalradius = var_07.radius;
}
else
{
self.goalradius = 32;
}
self waittill("goal");
var_07 notify("trigger",self);
if(isdefined(var_07.script_flag_set))
{
common_scripts\utility::flag_set(var_07.script_flag_set);
}
if(isdefined(var_07.script_ent_flag_set))
{
maps\_utility::func_FA4(var_07.script_ent_flag_set);
}
if(isdefined(var_07.script_flag_clear))
{
common_scripts\utility::flag_clear(var_07.script_flag_clear);
}
var_0B = var_07 [[ var_29[var_08][var_03] ]]();
if(!var_0B.size)
{
self notify("reached_path_end");
self notify("_patrol_reached_path_end");
if(isalive(self.var_1BDC))
{
self.var_1BDC notify("master_reached_patrol_end");
}
}
if(isdefined(var_07.script_flag_wait))
{
common_scripts\utility::flag_wait(var_07.script_flag_wait);
}
var_07 maps\_utility::script_delay();
var_0C = ::animscripts/reactions::reactionscheckloop;
var_0D = var_07.script_animation;
if(isdefined(var_0D))
{
if(!isdefined(self.patrol_no_stop_transition))
{
patrol_do_stop_transition_anim(var_0D,var_0C,var_07);
}
if(isdefined(var_07.script_faceangles))
{
self orientmode("face angle",var_07.angles[1]);
}
self.var_1BE0 = 1;
var_0E = var_09[var_0D];
if(isdefined(var_0E))
{
if(var_0D == "pause")
{
if(isdefined(self.patrol_scriptedanim) && isdefined(self.patrol_scriptedanim[var_0D]))
{
var_0E = self.patrol_scriptedanim[var_0D][randomint(self.patrol_scriptedanim[var_0D].size)];
}
else
{
var_0E = var_0E + randomintrange(1,6);
}
}
maps\_anim::anim_generic_custom_animmode(self,"gravity",var_0E,undefined,var_0C);
if(var_0B.size && var_0D != "turn180")
{
patrol_do_start_transition_anim(var_0D,var_0C);
}
}
self.var_1BE0 = undefined;
}
if(!var_0B.size)
{
if(isdefined(self.patrol_end_idle) && !isdefined(var_0D))
{
patrol_do_stop_transition_anim("path_end_idle",var_0C,var_07);
for(;;)
{
var_0F = self.patrol_end_idle[randomint(self.patrol_end_idle.size)];
maps\_anim::anim_generic_custom_animmode(self,"gravity",var_0F,undefined,var_0C);
}
}
break;
}
var_0A = common_scripts\utility::random(var_0B);
}
}
//Function Number: 2
patrol_do_stop_transition_anim(param_00,param_01,param_02)
{
var_03 = self;
var_04 = 0;
if(isdefined(param_02.script_faceangles))
{
var_03 = param_02;
self.noteleport = 1;
var_04 = 1;
}
if(isdefined(self.patrol_stop) && isdefined(self.patrol_stop[param_00]))
{
var_03 maps\_anim::anim_generic_custom_animmode(self,"gravity",self.patrol_stop[param_00],undefined,param_01,var_04);
return;
}
var_03 maps\_anim::anim_generic_custom_animmode(self,"gravity","patrol_stop",undefined,param_01,var_04);
}
//Function Number: 3
patrol_do_start_transition_anim(param_00,param_01)
{
if(isdefined(self.var_1BE6) && isdefined(self.var_1BE6[param_00]))
{
maps\_anim::anim_generic_custom_animmode(self,"gravity",self.var_1BE6[param_00],undefined,param_01);
return;
}
maps\_anim::anim_generic_custom_animmode(self,"gravity","patrol_start",undefined,param_01);
}
//Function Number: 4
func_1BE7()
{
if(self.a.var_911 == "crouch" && isdefined(self.a.array))
{
var_00 = self.a.array["stance_change"];
if(isdefined(var_00))
{
self setflaggedanimknoballrestart("stand_up",var_00,%root,1);
animscripts/shared::donotetracks("stand_up");
}
}
}
//Function Number: 5
func_1BE8()
{
self endon("enemy");
self animmode("zonly_physics",0);
self orientmode("face current");
func_1BE7();
var_00 = level.scr_anim["generic"]["patrol_radio_in_clear"];
self setflaggedanimknoballrestart("radio",var_00,%root,1);
animscripts/shared::donotetracks("radio");
turn_180_move_start_func();
}
//Function Number: 6
turn_180_move_start_func()
{
if(!isdefined(self.pathgoalpos))
{
return;
}
var_00 = self.pathgoalpos;
var_01 = var_00 - self.origin;
var_01 = (var_01[0],var_01[1],0);
var_02 = lengthsquared(var_01);
if(var_02 < 1)
{
return;
}
var_01 = var_01 / sqrt(var_02);
var_03 = anglestoforward(self.angles);
if(vectordot(var_03,var_01) < -0.5)
{
self animmode("zonly_physics",0);
self orientmode("face current");
func_1BE7();
var_04 = level.scr_anim["generic"]["patrol_turn180"];
self setflaggedanimknoballrestart("move",var_04,%root,1);
if(animhasnotetrack(var_04,"code_move"))
{
animscripts/shared::donotetracks("move");
self orientmode("face motion");
self animmode("none",0);
}
animscripts/shared::donotetracks("move");
}
}
//Function Number: 7
set_patrol_run_anim_array()
{
var_00 = "patrol_walk";
if(isdefined(self.patrol_walk_anim))
{
var_00 = self.patrol_walk_anim;
}
var_01 = undefined;
if(isdefined(self.patrol_walk_twitch))
{
var_01 = self.patrol_walk_twitch;
}
maps\_utility::set_generic_run_anim_array(var_00,var_01);
}
//Function Number: 8
func_1BED()
{
self endon("end_patrol");
if(isdefined(self.var_1BEE))
{
self.var_1BEE endon("death");
}
self waittill("enemy");
}
//Function Number: 9
func_1BEF()
{
self waittill("death");
if(!isdefined(self))
{
return;
}
self notify("release_node");
if(!isdefined(self.var_1BD8))
{
return;
}
self.var_1BD8.var_1BD7 = undefined;
}
//Function Number: 10
waittill_combat()
{
self endon("death");
func_1BED();
var_00 = maps\_utility::ent_flag_exist("_stealth_enabled") && maps\_utility::ent_flag("_stealth_enabled");
if(!var_00)
{
maps\_utility::clear_run_anim();
self allowedstances("stand","crouch","prone");
self.disablearrivals = 0;
self.disableexits = 0;
self stopanimscripted();
self notify("stop_animmode");
self.script_nobark = undefined;
self.goalradius = level.default_goalradius;
}
if(isdefined(self.var_1BF3))
{
self.interval = self.var_1BF3;
}
self.moveplaybackrate = 1;
if(!isdefined(self))
{
return;
}
self notify("release_node");
if(!isdefined(self.var_1BD8))
{
return;
}
self.var_1BD8.var_1BD7 = undefined;
}
//Function Number: 11
get_target_ents()
{
var_00 = [];
if(isdefined(self.target))
{
var_00 = getentarray(self.target,"targetname");
}
return var_00;
}
//Function Number: 12
get_target_nodes()
{
var_00 = [];
if(isdefined(self.target))
{
var_00 = getnodearray(self.target,"targetname");
}
return var_00;
}
//Function Number: 13
func_0FD7()
{
var_00 = [];
if(isdefined(self.target))
{
var_00 = common_scripts\utility::getstructarray(self.target,"targetname");
}
return var_00;
}
//Function Number: 14
func_1BF4()
{
var_00 = [];
if(isdefined(self.script_linkto))
{
var_01 = strtok(self.script_linkto," ");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
var_03 = getnode(var_01[var_02],"script_linkname");
if(isdefined(var_03))
{
var_00[var_00.size] = var_03;
}
}
}
return var_00;
}
//Function Number: 15
showclaimed(param_00)
{
self endon("release_node");
}
//Function Number: 16
func_1BF6()
{
if(isdefined(self.var_1BDC))
{
self.var_1BDC thread pet_patrol();
return;
}
if(!isdefined(self.script_pet))
{
return;
}
waittillframeend;
var_00 = getaispeciesarray(self.team,"dog");
var_01 = undefined;
for(var_02 = 0;var_02 < var_00.size;var_02++)
{
if(!isdefined(var_00[var_02].script_pet))
{
continue;
}
if(var_00[var_02].script_pet != self.script_pet)
{
continue;
}
var_01 = var_00[var_02];
self.var_1BDC = var_01;
var_01.var_1BEE = self;
break;
}
if(!isdefined(var_01))
{
return;
}
var_01 thread pet_patrol();
}
//Function Number: 17
pet_patrol()
{
maps\_utility::func_F77(self);
if(isdefined(self.enemy))
{
return;
}
self endon("enemy");
self endon("death");
self endon("end_patrol");
if(isdefined(self.var_1BD1))
{
[[ level.global_callbacks["_patrol_endon_spotted_flag"] ]]();
}
self.var_1BEE endon("death");
thread waittill_combat();
self.goalradius = 4;
self.allowdeath = 1;
var_00 = func_1BFA();
var_01 = vectornormalize(self.origin - self.var_1BEE.origin);
var_02 = anglestoright(self.var_1BEE.angles);
var_03 = "left";
if(vectordot(var_01,var_02) > 0)
{
var_03 = "right";
}
wait 1;
thread func_1C01();
thread pet_patrol_handle_movespeed();
self.var_1BF3 = self.interval;
self.interval = 70;
for(;;)
{
if(isdefined(self.var_1BEE) && !isdefined(self.var_1BEE.var_1BE0))
{
var_00 = func_1BFC(var_00);
if(var_03 == "null")
{
var_03 = "back";
}
var_03 = pet_patrol_get_available_origin(var_00,var_03);
self.patrol_goal_pos = var_00[var_03].origin;
}
else
{
self.patrol_goal_pos = self.origin;
}
self setgoalpos(self.patrol_goal_pos);
wait 0.05;
}
}
//Function Number: 18
func_1BFA()
{
var_00 = [];
var_01 = spawnstruct();
var_01.options = [];
var_01.options[var_01.options.size] = "right";
var_01.options[var_01.options.size] = "back_right";
var_02 = spawnstruct();
var_02.options = [];
var_02.options[var_02.options.size] = "right";
var_02.options[var_02.options.size] = "back_right";
var_02.options[var_02.options.size] = "back";
var_03 = spawnstruct();
var_03.options = [];
var_03.options[var_03.options.size] = "back_right";
var_03.options[var_03.options.size] = "back_left";
var_03.options[var_03.options.size] = "back";
var_04 = spawnstruct();
var_04.options = [];
var_04.options[var_04.options.size] = "left";
var_04.options[var_04.options.size] = "back_left";
var_04.options[var_04.options.size] = "back";
var_05 = spawnstruct();
var_05.options = [];
var_05.options[var_05.options.size] = "left";
var_05.options[var_05.options.size] = "back_left";
var_06 = spawnstruct();
var_00["right"] = var_01;
var_00["left"] = var_05;
var_00["back_right"] = var_02;
var_00["back_left"] = var_04;
var_00["back"] = var_03;
var_00["null"] = var_06;
return var_00;
}
//Function Number: 19
func_1BFC(param_00)
{
var_01 = vectortoangles(self.var_1BEE.var_1BD8.origin - self.var_1BEE.origin);
var_02 = self.var_1BEE.origin;
var_03 = anglestoright(var_01);
var_04 = anglestoforward(var_01);
param_00["right"].origin = var_02 + var_03 * 40 + var_04 * 30;
param_00["left"].origin = var_02 + var_03 * -40 + var_04 * 30;
param_00["back_right"].origin = var_02 + var_03 * 32 + var_04 * -16;
param_00["back_left"].origin = var_02 + var_03 * -32 + var_04 * -16;
param_00["back"].origin = var_02 + var_04 * -48;
param_00["null"].origin = self.origin;
var_05 = getarraykeys(param_00);
for(var_06 = 0;var_06 < var_05.size;var_06++)
{
var_07 = var_05[var_06];
param_00[var_07].var_1BFD = 0;
param_00[var_07].recursed = 0;
}
return param_00;
}
//Function Number: 20
pet_debug_positions(param_00)
{
var_01 = getarraykeys(param_00);
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
var_03 = var_01[var_02];
if(var_03 == "null")
{
continue;
}
}
}
//Function Number: 21
pet_patrol_get_available_origin(param_00,param_01)
{
param_00[param_01].recursed = 1;
for(var_02 = 0;var_02 < param_00[param_01].options.size;var_02++)
{
var_03 = param_00[param_01].options[var_02];
if(param_00[var_03].var_1BFD)
{
continue;
}
if(self maymovetopoint(param_00[var_03].origin))
{
return var_03;
}
param_00[var_03].var_1BFD = 1;
}
for(var_02 = 0;var_02 < param_00[param_01].options.size;var_02++)
{
var_03 = param_00[param_01].options[var_02];
if(param_00[var_03].recursed)
{
continue;
}
var_03 = pet_patrol_get_available_origin(param_00,var_03);
return var_03;
}
return "null";
}
//Function Number: 22
func_1C01(param_00)
{
if(isdefined(self.enemy))
{
return;
}
self endon("enemy");
self endon("death");
self endon("end_patrol");
self.var_1BEE endon("death");
if(isdefined(self.var_1BEE.script_noteworthy) && self.var_1BEE.script_noteworthy == "cqb_patrol")
{
maps\_utility::set_dog_walk_anim();
return;
}
if(!isdefined(param_00))
{
param_00 = 200;
}
maps\_utility::set_dog_walk_anim();
for(;;)
{
wait 0.1;
var_01 = self.patrol_goal_pos;
var_02 = distancesquared(self.origin,self.patrol_goal_pos);
if(var_02 > squared(param_00))
{
if(self.a.movement == "run")
{
continue;
}
maps\_anim::anim_generic_custom_animmode(self,"gravity","patrol_dog_start");
maps\_utility::clear_run_anim();
self.script_nobark = 1;
continue;
}
if(self.a.movement != "walk")
{
self notify("stopped_while_patrolling");
maps\_anim::anim_generic_custom_animmode(self,"gravity","patrol_dog_stop");
maps\_utility::set_dog_walk_anim();
}
}
}
//Function Number: 23
pet_patrol_handle_movespeed(param_00,param_01)
{
if(isdefined(self.enemy))
{
return;
}
self endon("enemy");
self endon("death");
self endon("end_patrol");
self.var_1BEE endon("death");
if(isdefined(self.var_1BEE.script_noteworthy) && self.var_1BEE.script_noteworthy == "cqb_patrol")
{
for(;;)
{
wait 0.05;
var_02 = self.patrol_goal_pos;
var_03 = distancesquared(self.origin,self.patrol_goal_pos);
if(var_03 < squared(16))
{
if(self.moveplaybackrate > 0.4)
{
self.moveplaybackrate = self.moveplaybackrate - 0.05;
}
continue;
}
if(var_03 > squared(48))
{
if(self.moveplaybackrate < 1.8)
{
self.moveplaybackrate = self.moveplaybackrate + 0.05;
}
continue;
}
self.moveplaybackrate = 1;
}
}
if(!isdefined(param_00))
{
param_00 = 16;
}
if(!isdefined(param_01))
{
param_01 = 48;
}
var_04 = param_00 * param_00;
var_05 = param_01 * param_01;
for(;;)
{
wait 0.05;
var_02 = self.patrol_goal_pos;
var_03 = distancesquared(self.origin,self.patrol_goal_pos);
if(self.a.movement != "walk")
{
self.moveplaybackrate = 1;
continue;
}
if(var_03 < var_04)
{
if(self.moveplaybackrate > 0.4)
{
self.moveplaybackrate = self.moveplaybackrate - 0.05;
}
continue;
}
if(var_03 > var_05)
{
if(self.moveplaybackrate < 0.75)
{
self.moveplaybackrate = self.moveplaybackrate + 0.05;
}
continue;
}
self.moveplaybackrate = 0.5;
}
}

View File

@ -0,0 +1,341 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_player_stats.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 12
* Decompile Time: 202 ms
* Timestamp: 10/27/2023 2:34:04 AM
*******************************************************************/
//Function Number: 1
init_stats()
{
self.stats["kills"] = 0;
self.stats["kills_melee"] = 0;
self.stats["kills_explosives"] = 0;
self.stats["kills_juggernaut"] = 0;
self.stats["kills_vehicle"] = 0;
self.stats["kills_sentry"] = 0;
self.stats["headshots"] = 0;
self.stats["shots_fired"] = 0;
self.stats["shots_hit"] = 0;
self.stats["weapon"] = [];
thread shots_fired_recorder();
}
//Function Number: 2
was_headshot()
{
if(isdefined(self.died_of_headshot) && self.died_of_headshot)
{
return 1;
}
if(!isdefined(self.damagelocation))
{
return 0;
}
return self.damagelocation == "helmet" || self.damagelocation == "head" || self.damagelocation == "neck";
}
//Function Number: 3
register_kill(param_00,param_01,param_02,param_03)
{
var_04 = self;
if(isdefined(self.owner))
{
var_04 = self.owner;
}
if(!isplayer(var_04))
{
if(isdefined(level.pmc_match) && level.pmc_match)
{
var_04 = level.players[randomint(level.players.size)];
}
}
if(!isplayer(var_04))
{
return;
}
if(isdefined(level.var_80DE) && isdefined(param_00.drivingvehicle) && param_00.drivingvehicle)
{
return;
}
var_04.stats["kills"]++;
var_04 career_stat_increment("kills",1);
if(maps\_utility::is_specialop())
{
level notify("specops_player_kill",var_04,param_00,param_02,param_03);
}
if(isdefined(param_00))
{
if(param_00 was_headshot())
{
var_04.stats["headshots"]++;
var_04 career_stat_increment("headshots",1);
}
if(isdefined(param_00.juggernaut))
{
var_04.stats["kills_juggernaut"]++;
var_04 career_stat_increment("kills_juggernaut",1);
}
if(isdefined(param_00.issentrygun))
{
var_04.stats["kills_sentry"]++;
}
if(param_00.code_classname == "script_vehicle")
{
var_04.stats["kills_vehicle"]++;
if(isdefined(param_00.riders))
{
foreach(var_06 in param_00.riders)
{
if(isdefined(var_06))
{
var_04 register_kill(var_06,param_01,param_02,param_03);
}
}
}
}
}
if(cause_is_explosive(param_01))
{
var_04.stats["kills_explosives"]++;
}
if(!isdefined(param_02))
{
param_02 = var_04 getcurrentweapon();
}
if(issubstr(tolower(param_01),"melee"))
{
var_04.stats["kills_melee"]++;
if(weaponinventorytype(param_02) == "primary")
{
return;
}
}
if(var_04 is_new_weapon(param_02))
{
var_04 func_065B(param_02);
}
var_04.stats["weapon"][param_02].kills++;
}
//Function Number: 4
career_stat_increment(param_00,param_01)
{
if(!maps\_utility::is_specialop())
{
return;
}
var_02 = int(self getplayerdata("career",param_00)) + param_01;
self setplayerdata("career",param_00,var_02);
}
//Function Number: 5
register_shot_hit()
{
if(!isplayer(self))
{
return;
}
if(isdefined(self.registeringshothit))
{
return;
}
self.registeringshothit = 1;
self.stats["shots_hit"]++;
career_stat_increment("bullets_hit",1);
var_00 = self getcurrentweapon();
if(is_new_weapon(var_00))
{
func_065B(var_00);
}
self.stats["weapon"][var_00].shots_hit++;
waittillframeend;
self.registeringshothit = undefined;
}
//Function Number: 6
shots_fired_recorder()
{
self endon("death");
for(;;)
{
self waittill("weapon_fired");
var_00 = self getcurrentweapon();
if(!isdefined(var_00) || !maps\_utility::isprimaryweapon(var_00))
{
continue;
}
self.stats["shots_fired"]++;
career_stat_increment("bullets_fired",1);
if(is_new_weapon(var_00))
{
func_065B(var_00);
}
self.stats["weapon"][var_00].shots_fired++;
}
}
//Function Number: 7
is_new_weapon(param_00)
{
if(isdefined(self.stats["weapon"][param_00]))
{
return 0;
}
return 1;
}
//Function Number: 8
cause_is_explosive(param_00)
{
param_00 = tolower(param_00);
switch(param_00)
{
case "splash":
case "mod_explosive":
case "mod_projectile_splash":
case "mod_projectile":
case "mod_grenade_splash":
case "mod_grenade":
return 1;
default:
return 0;
}
return 0;
}
//Function Number: 9
func_065B(param_00)
{
self.stats["weapon"][param_00] = spawnstruct();
self.stats["weapon"][param_00].name = param_00;
self.stats["weapon"][param_00].shots_fired = 0;
self.stats["weapon"][param_00].shots_hit = 0;
self.stats["weapon"][param_00].kills = 0;
}
//Function Number: 10
func_065C()
{
var_00 = 1;
foreach(var_02 in level.players)
{
setdvar("stats_" + var_00 + "_kills_melee",var_02.stats["kills_melee"]);
setdvar("stats_" + var_00 + "_kills_juggernaut",var_02.stats["kills_juggernaut"]);
setdvar("stats_" + var_00 + "_kills_explosives",var_02.stats["kills_explosives"]);
setdvar("stats_" + var_00 + "_kills_vehicle",var_02.stats["kills_vehicle"]);
setdvar("stats_" + var_00 + "_kills_sentry",var_02.stats["kills_sentry"]);
var_03 = var_02 get_best_weapons(5);
foreach(var_05 in var_03)
{
var_05.accuracy = 0;
if(var_05.shots_fired > 0)
{
var_05.accuracy = int(var_05.shots_hit / var_05.shots_fired * 100);
}
}
for(var_07 = 1;var_07 < 6;var_07++)
{
setdvar("stats_" + var_00 + "_weapon" + var_07 + "_name"," ");
setdvar("stats_" + var_00 + "_weapon" + var_07 + "_kills"," ");
setdvar("stats_" + var_00 + "_weapon" + var_07 + "_shots"," ");
setdvar("stats_" + var_00 + "_weapon" + var_07 + "_accuracy"," ");
}
for(var_07 = 0;var_07 < var_03.size;var_07++)
{
if(!isdefined(var_03[var_07]))
{
break;
}
setdvar("stats_" + var_00 + "_weapon" + var_07 + 1 + "_name",var_03[var_07].name);
setdvar("stats_" + var_00 + "_weapon" + var_07 + 1 + "_kills",var_03[var_07].kills);
setdvar("stats_" + var_00 + "_weapon" + var_07 + 1 + "_shots",var_03[var_07].shots_fired);
setdvar("stats_" + var_00 + "_weapon" + var_07 + 1 + "_accuracy",var_03[var_07].accuracy + "%");
}
var_00++;
}
}
//Function Number: 11
get_best_weapons(param_00)
{
var_01 = [];
for(var_02 = 0;var_02 < param_00;var_02++)
{
var_01[var_02] = get_weapon_with_most_kills(var_01);
}
return var_01;
}
//Function Number: 12
get_weapon_with_most_kills(param_00)
{
if(!isdefined(param_00))
{
param_00 = [];
}
var_01 = undefined;
foreach(var_03 in self.stats["weapon"])
{
var_04 = 0;
foreach(var_06 in param_00)
{
if(var_03.name == var_06.name)
{
var_04 = 1;
break;
}
}
if(var_04)
{
continue;
}
if(!isdefined(var_01))
{
var_01 = var_03;
continue;
}
if(var_03.kills > var_01.kills)
{
var_01 = var_03;
}
}
return var_01;
}

240
MW3/Xbox/SP/maps/_props.gsc Normal file
View File

@ -0,0 +1,240 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_props.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 17
* Decompile Time: 260 ms
* Timestamp: 10/27/2023 2:34:31 AM
*******************************************************************/
//Function Number: 1
prop_notetrack_exist(param_00,param_01)
{
if(!isdefined(level.prop_notetracks))
{
level.prop_notetracks = [];
}
if(!isdefined(level.prop_notetracks[param_00]))
{
level.prop_notetracks[param_00] = [];
}
if(isdefined(level.prop_notetracks[param_00][param_01]))
{
return 1;
}
level.prop_notetracks[param_00][param_01] = 1;
return 0;
}
//Function Number: 2
func_3C82(param_00)
{
if(prop_notetrack_exist(param_00,"add_smoking_notetracks"))
{
return;
}
maps\_anim::addnotetrack_customfunction(param_00,"attach cig",::attach_cig);
maps\_anim::addnotetrack_customfunction(param_00,"detach cig",::detach_cig);
maps\_anim::addnotetrack_customfunction(param_00,"puff",::func_3C92);
maps\_anim::addnotetrack_customfunction(param_00,"exhale",::smoke_exhale);
level._effect["cigar_glow"] = loadfx("fire/cigar_glow_far");
level._effect["cigar_glow_puff"] = loadfx("fire/cigar_glow_puff");
level._effect["cigar_smoke_puff"] = loadfx("smoke/cigarsmoke_puff_far");
level._effect["cigar_exhale"] = loadfx("smoke/cigarsmoke_exhale_far");
level.var_1B2E["cigar"] = "prop_price_cigar";
}
//Function Number: 3
func_3C83(param_00)
{
if(isdefined(param_00.var_3C84))
{
param_00.var_3C84 delete();
}
}
//Function Number: 4
add_sit_load_ak_notetracks(param_00)
{
if(prop_notetrack_exist(param_00,"add_cellphone_notetracks"))
{
return;
}
maps\_anim::addnotetrack_customfunction(param_00,"attach clip left",::func_3C86);
maps\_anim::addnotetrack_customfunction(param_00,"detach clip left",::func_3C83);
level.var_1B2E["clip"] = "weapon_ak47_clip";
}
//Function Number: 5
func_3C86(param_00)
{
param_00 notify("new_prop_rotation");
var_01 = spawn("script_model",(0,0,0));
var_01 linkto(param_00,"tag_inhand",(0,0,0),(0,0,0));
var_01 setmodel(maps\_utility::func_22CC("clip"));
param_00.var_3C84 = var_01;
thread func_3C8E(var_01,param_00);
}
//Function Number: 6
func_3C87(param_00)
{
if(prop_notetrack_exist(param_00,"add_cellphone_notetracks"))
{
return;
}
maps\_anim::addnotetrack_customfunction(param_00,"attach phone",::func_3C88);
maps\_anim::addnotetrack_customfunction(param_00,"detach phone",::detach_phone);
level.var_1B2E["cellphone"] = "com_cellphone_off";
}
//Function Number: 7
func_3C88(param_00)
{
param_00 notify("new_phone_rotation");
var_01 = spawn("script_model",(0,0,0));
var_01 linkto(param_00,"tag_inhand",(0,0,0),(0,0,0));
var_01 setmodel(maps\_utility::func_22CC("cellphone"));
param_00.phone = var_01;
thread func_3C8E(var_01,param_00);
}
//Function Number: 8
detach_phone(param_00)
{
if(isdefined(param_00.phone))
{
param_00.phone delete();
}
}
//Function Number: 9
attach_cig(param_00)
{
param_00 notify("new_cigar_rotation");
var_01 = spawn("script_model",(0,0,0));
var_01 linkto(param_00,"tag_inhand",(0,0,0),(0,0,0));
var_01 setmodel(maps\_utility::func_22CC("cigar"));
playfxontag(common_scripts\utility::func_539("cigar_glow"),var_01,"tag_cigarglow");
param_00.cigar = var_01;
thread prop_delete_cig(var_01,param_00);
}
//Function Number: 10
detach_cig(param_00)
{
if(isdefined(param_00.cigar))
{
param_00.cigar thread func_3C90();
}
}
//Function Number: 11
func_3C8E(param_00,param_01)
{
param_01 notify("new_prop_rotation" + param_00.model);
param_01 endon("new_prop_rotation" + param_00.model);
param_00 endon("death");
param_01 maps\_utility::add_endon("new_prop_rotation" + param_00.model);
param_00 maps\_utility::add_endon("death");
maps\_utility::add_wait(::maps\_utility::waittill_msg,"stop_loop");
param_01 maps\_utility::add_wait(::maps\_utility::waittill_msg,"death");
maps\_utility::do_wait_any();
param_00 delete();
}
//Function Number: 12
prop_delete_cig(param_00,param_01)
{
param_01 notify("new_prop_rotation" + param_00.model);
param_01 endon("new_prop_rotation" + param_00.model);
param_00 endon("death");
param_01 maps\_utility::add_endon("new_prop_rotation" + param_00.model);
param_00 maps\_utility::add_endon("death");
maps\_utility::add_wait(::maps\_utility::waittill_msg,"stop_loop");
param_01 maps\_utility::add_wait(::maps\_utility::waittill_msg,"death");
maps\_utility::do_wait_any();
param_00 thread func_3C90();
}
//Function Number: 13
func_3C90()
{
self endon("death");
if(!isdefined(self))
{
return;
}
if(isdefined(self.cig_throwing) && self.cig_throwing)
{
return;
}
self.cig_throwing = 1;
stopfxontag(common_scripts\utility::func_539("cigar_glow"),self,"tag_cigarglow");
var_00 = 3;
var_01 = anglestoforward(self.angles);
self unlink();
self movegravity(var_01 * 100,var_00);
self rotatevelocity((400,0,0),var_00,0,var_00);
wait var_00;
self delete();
}
//Function Number: 14
func_3C92(param_00)
{
if(!isdefined(param_00.cigar))
{
return;
}
param_00 endon("death");
param_00.cigar endon("death");
playfxontag(common_scripts\utility::func_539("cigar_glow_puff"),param_00.cigar,"tag_cigarglow");
wait 1;
playfxontag(common_scripts\utility::func_539("cigar_smoke_puff"),param_00,"tag_eye");
}
//Function Number: 15
smoke_exhale(param_00)
{
if(!isdefined(param_00.cigar))
{
return;
}
playfxontag(common_scripts\utility::func_539("cigar_exhale"),param_00,"tag_eye");
}
//Function Number: 16
func_3C94()
{
var_00 = [];
self endon("death",var_41[var_41.size],"J_Wrist_RI",var_41[var_41.size],"J_Elbow_LE",var_41[var_41.size],"J_Hip_RI",var_41[var_41.size],"J_SpineLower",var_41[var_41.size],"J_HipTwist_LE",var_41[var_41.size],"J_HipTwist_RI",var_41[var_41.size],"J_Knee_LE",var_41[var_41.size],"J_Knee_RI",var_41[var_41.size],"J_SpineUpper",var_41[var_41.size],"J_Ankle_LE",var_41[var_41.size],"J_Ankle_RI",var_41[var_41.size],"J_Knee_Bulge_LE",var_41[var_41.size],"J_Ball_LE",var_41[var_41.size],"J_Clavicle_RI",var_41[var_41.size],"J_Neck",var_41[var_41.size],"J_ShoulderRaise_LE",var_41[var_41.size],"J_Head",var_41[var_41.size],"J_Shoulder_RI",var_41[var_41.size],"J_Brow_LE",var_41[var_41.size],"J_Cheek_RI",var_41[var_41.size],"J_CoatFront_RI",var_41[var_41.size],"J_CoatRear_LE",var_41[var_41.size],"J_CoatRear_RI",var_41[var_41.size],"J_Hip_LE",var_41[var_41.size],"J_CoatFront_LE",var_41[var_00.size],"J_MainRoot");
for(;;)
{
while(self.movemode != "run")
{
wait 0.2;
continue;
}
playfxontag(level._effect["ghillie_leaves"],self,common_scripts\utility::random(var_41));
wait randomfloatrange(0.1,2.5);
}
}
//Function Number: 17
func_3C95()
{
attach_cig(self);
}

View File

@ -0,0 +1,198 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_quotes.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 7
* Decompile Time: 110 ms
* Timestamp: 10/27/2023 2:33:50 AM
*******************************************************************/
//Function Number: 1
main()
{
thread setdeadquote();
}
//Function Number: 2
setdeadquote()
{
level endon("mine death");
level notify("new_quote_string");
level endon("new_quote_string");
if(isalive(level.player))
{
level.player waittill("death");
}
if(!level.var_1291)
{
var_00 = int(tablelookup("sp/deathQuoteTable.csv",1,"size",0));
var_01 = randomint(var_00);
if(getdvar("cycle_deathquotes") != "")
{
if(getdvar("ui_deadquote_index") == "")
{
setdvar("ui_deadquote_index","0");
}
var_01 = getdvarint("ui_deadquote_index");
setdvar("ui_deadquote",func_1471(var_01));
var_01++;
if(var_01 > var_00 - 1)
{
var_01 = 0;
}
setdvar("ui_deadquote_index",var_01);
return;
}
setdvar("ui_deadquote",func_1471(var_01));
}
}
//Function Number: 3
func_1471(param_00)
{
var_01 = tablelookup("sp/deathQuoteTable.csv",0,param_00,1);
if(tolower(var_01[0]) != tolower("@"))
{
var_01 = "@" + var_01;
}
return var_01;
}
//Function Number: 4
setdeadquote_so()
{
level notify("new_quote_string");
var_00 = [];
var_00 = so_builddeadquote();
var_00 = maps\_utility::array_randomize(var_00);
var_01 = randomint(var_00.size);
if(!maps\_utility::is_coop_online())
{
var_02 = var_00.size > 1;
var_03 = var_01;
while(var_02)
{
if(func_1474(var_00[var_01]))
{
var_01++;
if(var_01 >= var_00.size)
{
var_01 = 0;
}
if(var_01 == var_03)
{
var_02 = 0;
}
continue;
}
var_02 = 0;
}
setdvar("ui_deadquote_v3",getdvar("ui_deadquote_v2"));
setdvar("ui_deadquote_v2",getdvar("ui_deadquote_v1"));
setdvar("ui_deadquote_v1",var_00[var_01]);
}
switch(var_00[var_01])
{
case "@DEADQUOTE_SO_ICON_PARTNER":
maps\_specialops_code::so_special_failure_hint_reset_dvars("ui_icon_partner");
break;
case "@DEADQUOTE_SO_ICON_OBJ":
maps\_specialops_code::so_special_failure_hint_reset_dvars("ui_icon_obj");
break;
case "@DEADQUOTE_SO_ICON_OBJ_OFFSCREEN":
maps\_specialops_code::so_special_failure_hint_reset_dvars("ui_icon_obj_offscreen");
break;
case "@DEADQUOTE_SO_STAR_RANKINGS":
maps\_specialops_code::so_special_failure_hint_reset_dvars("ui_icon_stars");
break;
case "@DEADQUOTE_SO_CLAYMORE_ENEMIES_SHOOT":
case "@DEADQUOTE_SO_CLAYMORE_POINT_ENEMY":
maps\_specialops_code::so_special_failure_hint_reset_dvars("ui_icon_claymore");
break;
case "@DEADQUOTE_SO_STEALTH_STAY_LOW":
maps\_specialops_code::so_special_failure_hint_reset_dvars("ui_icon_stealth_stance");
break;
}
setdvar("ui_deadquote",var_00[var_01]);
}
//Function Number: 5
func_1474(param_00)
{
if(param_00 == getdvar("ui_deadquote_v1"))
{
return 1;
}
if(param_00 == getdvar("ui_deadquote_v2"))
{
return 1;
}
if(param_00 == getdvar("ui_deadquote_v3"))
{
return 1;
}
return 0;
}
//Function Number: 6
so_builddeadquote()
{
if(should_use_custom_deadquotes())
{
return level.var_1408;
}
var_00 = [];
if(!maps\_utility::is_survival())
{
}
else
{
}
if(isdefined(self.so_infohud_toggle_state) && self.so_infohud_toggle_state != "none")
{
}
if(maps\_utility::func_E89())
{
}
return var_41;
}
//Function Number: 7
should_use_custom_deadquotes()
{
if(!isdefined(level.var_1408))
{
return 0;
}
if(level.var_1408.size <= 0)
{
return 0;
}
return level.so_deadquotes_chance >= randomfloat(1);
}

View File

@ -0,0 +1,449 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_radiation.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 17
* Decompile Time: 289 ms
* Timestamp: 10/27/2023 2:34:32 AM
*******************************************************************/
//Function Number: 1
main()
{
precachestring(&"SCOUTSNIPER_MRHR");
precachestring(&"SCRIPT_RADIATION_DEATH");
precacheshellshock("radiation_low");
precacheshellshock("radiation_med");
precacheshellshock("radiation_high");
foreach(var_01 in level.players)
{
var_01.var_2719 = spawnstruct();
var_01.var_2719.super_dose = 0;
var_01.var_2719.inside = 0;
var_01 maps\_utility::ent_flag_init("_radiation_poisoning");
}
common_scripts\utility::run_thread_on_targetname("radiation",::func_3C98);
common_scripts\utility::run_thread_on_targetname("super_radiation",::func_3C9B);
common_scripts\utility::array_thread(level.players,::func_3C9C);
common_scripts\utility::array_thread(level.players,::updateradiationdosimeter);
common_scripts\utility::array_thread(level.players,::func_3C9F);
common_scripts\utility::array_thread(level.players,::func_3CA6);
common_scripts\utility::array_thread(level.players,::func_3CA0);
common_scripts\utility::array_thread(level.players,::func_3CA1);
common_scripts\utility::array_thread(level.players,::func_3CA8);
}
//Function Number: 2
func_3C98()
{
self.members = 0;
for(;;)
{
self waittill("trigger",var_00);
thread updateradiationtrigger_perplayer(var_00);
}
}
//Function Number: 3
updateradiationtrigger_perplayer(param_00)
{
if(param_00.var_2719.inside)
{
return;
}
param_00.var_2719.inside = 1;
param_00.var_2719.var_3C9A[param_00.var_2719.var_3C9A.size] = self;
while(param_00 istouching(self))
{
wait 0.05;
}
param_00.var_2719.inside = 0;
param_00.var_2719.var_3C9A = common_scripts\utility::array_remove(param_00.var_2719.var_3C9A,self);
}
//Function Number: 4
func_3C9B()
{
self waittill("trigger",var_00);
var_00.var_2719.super_dose = 1;
}
//Function Number: 5
func_3C9C()
{
self.var_2719.var_3C9A = [];
self.var_2719.var_19E1 = 0;
self.var_2719.var_3C9D = 0;
self.var_2719.var_1D85 = 0;
self.var_2719.var_3C9E = 0;
var_00 = 1;
var_01 = 0;
var_02 = 1100000 / 60 * var_00;
var_03 = 200000;
var_04 = var_02 - var_01;
for(;;)
{
var_05 = [];
for(var_06 = 0;var_06 < self.var_2719.var_3C9A.size;var_06++)
{
var_07 = self.var_2719.var_3C9A[var_06];
var_08 = distance(self.origin,var_07.origin) - 15;
var_05[var_06] = var_02 - var_02 / var_07.radius * var_08;
}
var_09 = 0;
for(var_06 = 0;var_06 < var_05.size;var_06++)
{
var_09 = var_09 + var_05[var_06];
}
if(var_09 < var_01)
{
var_09 = var_01;
}
if(var_09 > var_02)
{
var_09 = var_02;
}
self.var_2719.var_19E1 = var_09;
self.var_2719.var_3C9D = var_09 - var_01 / var_04 * 100;
if(self.var_2719.super_dose)
{
var_09 = var_02;
self.var_2719.var_3C9D = 100;
}
if(self.var_2719.var_3C9D > 25)
{
self.var_2719.var_1D85 = self.var_2719.var_1D85 + var_09;
self.var_2719.var_3C9E = self.var_2719.var_1D85 / var_03 * 100;
}
else if(self.var_2719.var_3C9D < 1 && self.var_2719.var_1D85 > 0)
{
self.var_2719.var_1D85 = self.var_2719.var_1D85 - 1500;
if(self.var_2719.var_1D85 < 0)
{
self.var_2719.var_1D85 = 0;
}
self.var_2719.var_3C9E = self.var_2719.var_1D85 / var_03 * 100;
}
wait var_00;
}
}
//Function Number: 6
func_3C9F()
{
var_00 = 1;
for(;;)
{
if(self.var_2719.var_3C9D >= 75)
{
self shellshock("radiation_high",5);
}
else if(self.var_2719.var_3C9D >= 50)
{
self shellshock("radiation_med",5);
}
else if(self.var_2719.var_3C9D > 25)
{
self shellshock("radiation_low",5);
}
wait var_00;
}
}
//Function Number: 7
func_3CA0()
{
thread func_3CA2();
for(;;)
{
if(self.var_2719.var_3C9D >= 75)
{
self.var_2719.sound = "item_geigercouner_level4";
}
else if(self.var_2719.var_3C9D >= 50)
{
self.var_2719.sound = "item_geigercouner_level3";
}
else if(self.var_2719.var_3C9D >= 25)
{
self.var_2719.sound = "item_geigercouner_level2";
}
else if(self.var_2719.var_3C9D > 0)
{
self.var_2719.sound = "item_geigercouner_level1";
}
else
{
self.var_2719.sound = "none";
}
wait 0.05;
}
}
//Function Number: 8
func_3CA1()
{
for(;;)
{
if(self.var_2719.var_3C9D > 25)
{
maps\_utility::func_FA4("_radiation_poisoning");
}
else
{
maps\_utility::ent_flag_clear("_radiation_poisoning");
}
wait 0.05;
}
}
//Function Number: 9
func_3CA2()
{
wait 0.05;
var_00 = spawn("script_origin",(0,0,0));
var_00.origin = self.origin;
var_00.angles = self.angles;
var_00 linkto(self);
var_01 = self.var_2719.sound;
for(;;)
{
if(var_01 != self.var_2719.sound)
{
var_00 stoploopsound();
if(isdefined(self.var_2719.sound) && self.var_2719.sound != "none")
{
var_00 playloopsound(self.var_2719.sound);
}
}
var_01 = self.var_2719.sound;
wait 0.05;
}
}
//Function Number: 10
func_3CA3()
{
var_00 = 0.05;
var_01 = newclienthudelem(self);
var_01.fontscale = 1.2;
var_01.x = 670;
var_01.y = 350;
var_01.alignx = "right";
var_01.label = "";
var_01.alpha = 0;
for(;;)
{
var_01.label = self.var_2719.var_3C9D;
wait var_00;
}
}
//Function Number: 11
updateradiationdosimeter()
{
var_00 = 0.028;
var_01 = 100;
var_02 = 1;
var_03 = var_01 - var_00;
var_04 = self.origin;
var_05 = newclienthudelem(self);
var_05.fontscale = 1.2;
var_05.x = 676;
var_05.y = 360;
var_05.alpha = 0;
var_05.alignx = "right";
var_05.label = &"SCOUTSNIPER_MRHR";
var_05 thread updateradiationdosimetercolor(self);
for(;;)
{
if(self.var_2719.var_19E1 <= var_00)
{
var_06 = randomfloatrange(-0.001,0.001);
var_05 setvalue(var_00 + var_06);
}
else if(self.var_2719.var_19E1 > var_01)
{
var_05 setvalue(var_01);
}
else
{
var_05 setvalue(self.var_2719.var_19E1);
}
wait var_02;
}
}
//Function Number: 12
updateradiationdosimetercolor(param_00)
{
var_01 = 0.05;
for(;;)
{
var_02 = 1;
var_03 = 0.13;
while(param_00.var_2719.var_19E1 >= 100)
{
if(var_02 <= 0 || var_02 >= 1)
{
var_03 = var_03 * -1;
}
var_02 = var_02 + var_03;
if(var_02 <= 0)
{
var_02 = 0;
}
if(var_02 >= 1)
{
var_02 = 1;
}
self.color = (1,var_02,var_02);
wait var_01;
}
self.color = (1,1,1);
wait var_01;
}
}
//Function Number: 13
func_3CA6()
{
level endon("special_op_terminated");
self endon("death");
var_00 = newclienthudelem(self);
var_00.x = 0;
var_00.y = 0;
var_00 setshader("black",640,480);
var_00.alignx = "left";
var_00.aligny = "top";
var_00.horzalign = "fullscreen";
var_00.vertalign = "fullscreen";
var_00.alpha = 0;
var_01 = 1;
var_02 = 4;
var_03 = 0.25;
var_04 = 1;
var_05 = 25;
var_06 = 100;
var_07 = 0;
for(;;)
{
while(self.var_2719.var_3C9E > 25 && self.var_2719.var_3C9D > 25)
{
var_08 = var_06 - var_05;
var_07 = self.var_2719.var_3C9E - var_05 / var_08;
if(var_07 < 0)
{
var_07 = 0;
}
else if(var_07 > 1)
{
var_07 = 1;
}
var_09 = var_02 - var_01;
var_0A = var_01 + var_09 * 1 - var_07;
var_0B = var_04 - var_03;
var_0C = var_03 + var_0B * var_07;
var_0D = 7.2 * var_0C;
var_0E = var_07 * 0.5;
var_0F = 7.2 * var_0E;
if(var_07 == 1)
{
break;
}
var_10 = var_0A / 2;
var_00 func_2724(var_10,var_0C,var_0D,self);
var_00 fadeoutblackout(var_10,var_0E,var_0F,self);
wait var_07 * 0.5;
}
if(var_07 == 1)
{
break;
}
if(var_00.alpha != 0)
{
var_00 fadeoutblackout(1,0,0,self);
}
wait 0.05;
}
var_00 func_2724(2,1,6,self);
thread func_3CA7();
}
//Function Number: 14
func_3CA7()
{
self.var_1A89 = 1;
self.specialdeath = 1;
self.radiationdeath = 1;
if(!maps\_utility::kill_wrapper())
{
return;
}
waittillframeend;
var_00 = &"SCRIPT_RADIATION_DEATH";
setdvar("ui_deadquote",var_00);
}
//Function Number: 15
func_2724(param_00,param_01,param_02,param_03)
{
self fadeovertime(param_00);
self.alpha = param_01;
param_03 setblurforplayer(param_02,param_00);
wait param_00;
}
//Function Number: 16
fadeoutblackout(param_00,param_01,param_02,param_03)
{
self fadeovertime(param_00);
self.alpha = param_01;
param_03 setblurforplayer(param_02,param_00);
wait param_00;
}
//Function Number: 17
func_3CA8()
{
self endon("death");
for(;;)
{
maps\_utility::func_121C("_radiation_poisoning");
if(level.script == "scoutsniper" || level.script == "co_scoutsniper")
{
level thread maps\_utility::func_E1D(::maps\_utility::func_DDF,"scoutsniper_mcm_youdaft");
}
level notify("radiation_warning");
maps\_utility::func_FA3("_radiation_poisoning");
wait 10;
}
}

869
MW3/Xbox/SP/maps/_rank.gsc Normal file
View File

@ -0,0 +1,869 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_rank.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 40
* Decompile Time: 716 ms
* Timestamp: 10/27/2023 2:32:29 AM
*******************************************************************/
//Function Number: 1
init()
{
maps\_hud::init();
precachestring(&"RANK_PLAYER_WAS_PROMOTED_N");
precachestring(&"RANK_PLAYER_WAS_PROMOTED");
precachestring(&"RANK_PROMOTED");
precachestring(&"RANK_ROMANI");
precachestring(&"RANK_ROMANII");
precachestring(&"RANK_ROMANIII");
precachestring(&"SCRIPT_PLUS");
precacheshader("line_horizontal");
precacheshader("line_vertical");
precacheshader("gradient_fadein");
precacheshader("white");
level.maxrank = int(tablelookup("sp/rankTable.csv",0,"maxrank",1));
level.var_80DF = int(tablelookup("sp/rankTable.csv",0,level.maxrank,7));
var_00 = 0;
for(var_00 = 0;var_00 <= level.maxrank;var_00++)
{
precacheshader(tablelookup("sp/rankTable.csv",0,var_00,6));
}
var_01 = 0;
var_02 = tablelookup("sp/ranktable.csv",0,var_01,1);
while(isdefined(var_02) && var_02 != "")
{
level.ranktable[var_01][1] = tablelookup("sp/ranktable.csv",0,var_01,1);
level.ranktable[var_01][2] = tablelookup("sp/ranktable.csv",0,var_01,2);
level.ranktable[var_01][3] = tablelookup("sp/ranktable.csv",0,var_01,3);
level.ranktable[var_01][7] = tablelookup("sp/ranktable.csv",0,var_01,7);
precachestring(tablelookupistring("sp/ranktable.csv",0,var_01,10));
var_01++;
var_02 = tablelookup("sp/ranktable.csv",0,var_01,1);
}
maps\_missions::buildchallengeinfo();
}
//Function Number: 2
xp_init()
{
xp_setup();
foreach(var_01 in level.players)
{
var_01 thread xp_player_init();
var_01 thread maps\_missions::updatechallenges();
}
}
//Function Number: 3
xp_player_init()
{
if(!isdefined(self.var_E96))
{
self.var_E96["rankxp"] = self getplayerdata("experience");
self.var_E96["rank"] = getrankforxp(self.var_E96["rankxp"]);
}
self.rankupdatetotal = 0;
self.hud_rankscroreupdate = newclienthudelem(self);
self.hud_rankscroreupdate.horzalign = "center";
self.hud_rankscroreupdate.vertalign = "middle";
self.hud_rankscroreupdate.alignx = "center";
self.hud_rankscroreupdate.aligny = "middle";
self.hud_rankscroreupdate.x = 0;
self.hud_rankscroreupdate.y = -60;
self.hud_rankscroreupdate.font = "hudbig";
self.hud_rankscroreupdate.fontscale = 0.75;
self.hud_rankscroreupdate.archived = 0;
self.hud_rankscroreupdate.color = (0.75,1,0.75);
self.hud_rankscroreupdate fontpulseinit();
}
//Function Number: 4
xp_bar_client_elem(param_00)
{
var_01 = newclienthudelem(param_00);
var_01.x = func_0E9A() / 2 * -1;
var_01.y = 0;
var_01.sort = 5;
var_01.horzalign = "center_adjustable";
var_01.vertalign = "bottom_adjustable";
var_01.alignx = "left";
var_01.aligny = "bottom";
var_01 setshader("gradient_fadein",get_xpbarwidth(),4);
var_01.color = (1,0.8,0.4);
var_01.alpha = 0.65;
var_01.foreground = 1;
return var_01;
}
//Function Number: 5
func_0E9A()
{
if(issplitscreen())
{
return 726;
}
return 540;
}
//Function Number: 6
xpbar_update()
{
if(!get_xpbarwidth())
{
self.hud_xpbar.alpha = 0;
}
else
{
self.hud_xpbar.alpha = 0.65;
}
self.hud_xpbar setshader("gradient_fadein",get_xpbarwidth(),4);
}
//Function Number: 7
get_xpbarwidth()
{
var_00 = int(tablelookup("sp/rankTable.csv",0,self.var_E96["rank"],3));
var_01 = int(self.var_E96["rankxp"] - int(tablelookup("sp/rankTable.csv",0,self.var_E96["rank"],2)));
var_02 = func_0E9A();
var_03 = int(var_02 * var_01 / var_00);
return var_03;
}
//Function Number: 8
xp_setup()
{
if(!isdefined(level.scoreinfo) || !isdefined(level.scoreinfo.size))
{
level.scoreinfo = [];
}
level.xpscale = 1;
if(level.console)
{
level.xpscale = 1;
}
registerscoreinfo("kill",100);
registerscoreinfo("headshot",100);
registerscoreinfo("assist",20);
registerscoreinfo("suicide",0);
registerscoreinfo("teamkill",0);
registerscoreinfo("completion_xp",5000);
level notify("rank_score_info_defaults_set");
}
//Function Number: 9
givexp_think()
{
self waittill("death",var_00,var_01,var_02);
if(isdefined(var_00) && isdefined(var_00.classname) && var_00.classname == "worldspawn" && isdefined(self.last_dmg_player))
{
var_00 = self.last_dmg_player;
}
givexp_helper(var_00);
}
//Function Number: 10
givexp_helper(param_00)
{
if(!isdefined(param_00))
{
return;
}
if(isai(param_00) && param_00 isbadguy())
{
return;
}
if(is_special_targetname_attacker(param_00))
{
if(isdefined(param_00.attacker))
{
thread givexp_helper(param_00.attacker);
return;
}
if(isdefined(param_00.damageowner))
{
thread givexp_helper(param_00.damageowner);
return;
}
}
if(isplayer(param_00))
{
if(isdefined(level.givexp_kill_func))
{
param_00 thread [[ level.givexp_kill_func ]](self);
}
else
{
param_00 thread maps\_utility::func_E86("kill");
}
}
if(maps\_utility::is_survival())
{
if(isai(param_00) && !param_00 isbadguy() && isdefined(param_00.owner) && isplayer(param_00.owner))
{
if(isdefined(level.givexp_kill_func))
{
param_00.owner thread [[ level.givexp_kill_func ]](self);
}
else
{
param_00.owner thread maps\_utility::func_E86("kill");
}
}
}
if(!isplayer(param_00) && !isai(param_00))
{
return;
}
if(!param_00 isbadguy() && isdefined(self.attacker_list) && self.attacker_list.size)
{
for(var_01 = 0;var_01 < self.attacker_list.size;var_01++)
{
if(isplayer(self.attacker_list[var_01]) && self.attacker_list[var_01] != param_00)
{
if(isdefined(self.var_EA6))
{
self.attacker_list[var_01] thread maps\_utility::func_E86("assist",self.var_EA6);
continue;
}
self.attacker_list[var_01] thread maps\_utility::func_E86("assist");
}
}
}
}
//Function Number: 11
is_special_targetname_attacker(param_00)
{
if(!isdefined(param_00.targetname))
{
return 0;
}
if(issubstr(param_00.targetname,"destructible"))
{
return 1;
}
if(common_scripts\utility::string_starts_with(param_00.targetname,"sentry_"))
{
return 1;
}
return 0;
}
//Function Number: 12
ai_xp_init()
{
thread givexp_think();
self.attacker_list = [];
self.last_attacked = 0;
maps\_utility::add_damage_function(::xp_took_damage);
}
//Function Number: 13
xp_took_damage(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(!isdefined(param_01))
{
return;
}
if(!isdefined(self))
{
return;
}
var_07 = gettime();
var_08 = var_07 - self.last_attacked;
if(var_08 <= 10000)
{
self.attacker_list = common_scripts\utility::array_remove(self.attacker_list,param_01);
self.attacker_list[self.attacker_list.size] = param_01;
self.last_attacked = gettime();
return;
}
self.attacker_list = [];
self.attacker_list[0] = param_01;
self.last_attacked = gettime();
}
//Function Number: 14
updateplayerscore(param_00,param_01)
{
if(!isdefined(level.xp_enable) || !level.xp_enable)
{
return;
}
if(!isdefined(param_01))
{
if(isdefined(level.scoreinfo[param_00]))
{
param_01 = getscoreinfovalue(param_00);
}
else
{
param_01 = getscoreinfovalue("kill");
}
}
param_01 = int(param_01 * level.xpscale);
if(param_00 == "assist")
{
if(param_01 > getscoreinfovalue("kill"))
{
param_01 = getscoreinfovalue("kill");
}
}
thread print_score_increment(param_01);
self.var_E96["rankxp"] = self.var_E96["rankxp"] + param_01;
if(func_0EB5())
{
thread updaterankannouncehud();
}
if(self.var_E96["rankxp"] <= level.var_80DF)
{
self setplayerdata("experience",self.var_E96["rankxp"]);
}
if(self.var_E96["rankxp"] > level.var_80DF)
{
self setplayerdata("experience",level.var_80DF);
}
waittillframeend;
self notify("xp_updated",param_00);
}
//Function Number: 15
print_score_increment(param_00)
{
self notify("update_xp");
self endon("update_xp");
self.rankupdatetotal = self.rankupdatetotal + param_00;
self.hud_rankscroreupdate.label = &"SCRIPT_PLUS";
self.hud_rankscroreupdate setvalue(self.rankupdatetotal);
self.hud_rankscroreupdate.alpha = 0.75;
self.hud_rankscroreupdate thread fontpulse(self);
self.hud_rankscroreupdate.x = 0;
self.hud_rankscroreupdate.y = -60;
wait 1;
self.hud_rankscroreupdate fadeovertime(0.2);
self.hud_rankscroreupdate.alpha = 0;
self.hud_rankscroreupdate moveovertime(0.2);
self.hud_rankscroreupdate.x = -240;
self.hud_rankscroreupdate.y = 160;
wait 0.5;
self.hud_rankscroreupdate.x = 0;
self.hud_rankscroreupdate.y = -60;
self.rankupdatetotal = 0;
}
//Function Number: 16
fontpulseinit()
{
self.basefontscale = self.fontscale;
self.maxfontscale = self.fontscale * 2;
self.inframes = 3;
self.outframes = 5;
}
//Function Number: 17
fontpulse(param_00)
{
self notify("fontPulse");
self endon("fontPulse");
var_01 = self.maxfontscale - self.basefontscale;
while(self.fontscale < self.maxfontscale)
{
self.fontscale = min(self.maxfontscale,self.fontscale + var_01 / self.inframes);
wait 0.05;
}
while(self.fontscale > self.basefontscale)
{
self.fontscale = max(self.basefontscale,self.fontscale - var_01 / self.outframes);
wait 0.05;
}
}
//Function Number: 18
func_0EB5()
{
var_00 = getrank();
if(var_00 == self.var_E96["rank"])
{
return 0;
}
var_01 = self.var_E96["rank"];
var_02 = self.var_E96["rank"];
self.var_E96["rank"] = var_00;
while(var_02 <= var_00)
{
self.setpromotion = 1;
var_02++;
}
return 1;
}
//Function Number: 19
updaterankannouncehud()
{
self endon("disconnect");
self notify("update_rank");
self endon("update_rank");
self notify("reset_outcome");
var_00 = getrankinfofull(self.var_E96["rank"]);
var_01 = spawnstruct();
var_01.titletext = &"RANK_PROMOTED";
var_01.iconname = getrankinfoicon(self.var_E96["rank"]);
var_01.sound = "sp_level_up";
var_01.duration = 4;
var_02 = level.ranktable[self.var_E96["rank"]][1];
var_03 = int(var_02[var_02.size - 1]);
var_01.notifytext = var_00;
if(common_scripts\utility::flag_exist("special_op_final_xp_given") && common_scripts\utility::flag("special_op_final_xp_given"))
{
level.eog_summary_delay = int(max(0,var_01.duration - 2));
}
thread func_0EBE(var_01);
if(var_03 > 1)
{
}
}
//Function Number: 20
func_0EBE(param_00)
{
self endon("death");
self endon("disconnect");
var_01 = 4;
while(self.doingnotify && var_01 > 0)
{
var_01 = var_01 - 0.5;
wait 0.5;
}
thread shownotifymessage(param_00);
}
//Function Number: 21
func_0EBF(param_00)
{
var_01 = strtok(param_00,".");
var_02 = int(var_01[0]);
if(isdefined(var_01[1]))
{
var_03 = 1;
for(var_04 = 0;var_04 < var_01[1].size;var_04++)
{
var_03 = var_03 * 0.1;
}
var_02 = var_02 + int(var_01[1]) * var_03;
}
return var_02;
}
//Function Number: 22
actionnotifymessage(param_00)
{
self endon("death");
self endon("disconnect");
var_01 = param_00.slot;
if(tablelookup("sp/splashTable.csv",0,param_00.name,0) != "")
{
if(isdefined(param_00.optionalnumber))
{
self showhudsplash(param_00.name,param_00.slot,param_00.optionalnumber);
}
else
{
self showhudsplash(param_00.name,param_00.slot);
}
self.doingsplash[var_01] = param_00;
var_02 = func_0EBF(tablelookup("sp/splashTable.csv",0,param_00.name,4));
if(isdefined(param_00.sound))
{
self playlocalsound(param_00.sound);
}
self notify("actionNotifyMessage" + var_01);
self endon("actionNotifyMessage" + var_01);
wait var_02 - 0.05;
self.doingsplash[var_01] = undefined;
}
if(self.splashqueue[var_01].size)
{
thread dispatchnotify(var_01);
}
}
//Function Number: 23
removetypefromqueue(param_00,param_01)
{
var_02 = [];
for(var_03 = 0;var_03 < self.splashqueue[param_01].size;var_03++)
{
if(self.splashqueue[param_01][var_03].type != "killstreak")
{
var_02[var_02.size] = self.splashqueue[param_01][var_03];
}
}
self.splashqueue[param_01] = var_02;
}
//Function Number: 24
actionnotify(param_00)
{
self endon("death");
self endon("disconnect");
var_01 = param_00.slot;
if(!isdefined(param_00.type))
{
param_00.type = "";
}
if(!isdefined(self.doingsplash[var_01]))
{
thread actionnotifymessage(param_00);
return;
}
else if(param_00.type == "killstreak" && self.doingsplash[var_01].type != "challenge" && self.doingsplash[var_01].type != "rank")
{
self.notifytext.alpha = 0;
self.notifytext2.alpha = 0;
self.notifyicon.alpha = 0;
thread actionnotifymessage(param_00);
return;
}
else if(param_00.type == "challenge" && self.doingsplash[var_01].type != "killstreak" && self.doingsplash[var_01].type != "challenge" && self.doingsplash[var_01].type != "rank")
{
self.notifytext.alpha = 0;
self.notifytext2.alpha = 0;
self.notifyicon.alpha = 0;
thread actionnotifymessage(param_00);
return;
}
if(param_00.type == "challenge" || param_00.type == "killstreak")
{
if(param_00.type == "killstreak")
{
removetypefromqueue("killstreak",var_01);
}
for(var_02 = self.splashqueue[var_01].size;var_02 > 0;var_02--)
{
self.splashqueue[var_01][var_02] = self.splashqueue[var_01][var_02 - 1];
}
self.splashqueue[var_01][0] = param_00;
return;
}
self.splashqueue[var_01][self.splashqueue[var_01].size] = param_00;
}
//Function Number: 25
shownotifymessage(param_00)
{
self endon("disconnect");
self.doingnotify = 1;
func_0EC7(0);
if(isdefined(param_00.duration))
{
var_01 = param_00.duration;
}
else
{
var_01 = 4;
}
thread func_0EC6();
if(isdefined(param_00.sound))
{
self playlocalsound(param_00.sound);
}
if(isdefined(param_00.glowcolor))
{
var_02 = param_00.glowcolor;
}
else
{
var_02 = (0.3,0.6,0.3);
}
var_03 = self.notifytitle;
if(isdefined(param_00.titletext))
{
if(isdefined(param_00.titlelabel))
{
self.notifytitle.label = param_00.titlelabel;
}
else
{
self.notifytitle.label = &"";
}
if(isdefined(param_00.titlelabel) && !isdefined(param_00.titleisstring))
{
self.notifytitle setvalue(param_00.titletext);
}
else
{
self.notifytitle settext(param_00.titletext);
}
self.notifytitle setpulsefx(100,int(var_01 * 1000),1000);
self.notifytitle.glowcolor = var_02;
self.notifytitle.alpha = 1;
}
if(isdefined(param_00.notifytext))
{
if(isdefined(param_00.textlabel))
{
self.notifytext.label = param_00.textlabel;
}
else
{
self.notifytext.label = &"";
}
if(isdefined(param_00.textlabel) && !isdefined(param_00.textisstring))
{
self.notifytext setvalue(param_00.notifytext);
}
else
{
self.notifytext settext(param_00.notifytext);
}
self.notifytext setpulsefx(100,int(var_01 * 1000),1000);
self.notifytext.glowcolor = var_02;
self.notifytext.alpha = 1;
var_03 = self.notifytext;
}
if(isdefined(param_00.notifytext2))
{
self.notifytext2 maps\_hud_util::setparent(var_03);
if(isdefined(param_00.text2label))
{
self.notifytext2.label = param_00.text2label;
}
else
{
self.notifytext2.label = &"";
}
self.notifytext2 settext(param_00.notifytext2);
self.notifytext2 setpulsefx(100,int(var_01 * 1000),1000);
self.notifytext2.glowcolor = var_02;
self.notifytext2.alpha = 1;
var_03 = self.notifytext2;
}
if(isdefined(param_00.iconname))
{
self.notifyicon maps\_hud_util::setparent(var_03);
self.notifyicon setshader(param_00.iconname,60,60);
self.notifyicon.alpha = 0;
self.notifyicon fadeovertime(1);
self.notifyicon.alpha = 1;
func_0EC7(var_01);
self.notifyicon fadeovertime(0.75);
self.notifyicon.alpha = 0;
}
else
{
func_0EC7(var_01);
}
self notify("notifyMessageDone");
self.doingnotify = 0;
}
//Function Number: 26
func_0EC6()
{
self notify("resetOnCancel");
self endon("resetOnCancel");
self endon("notifyMessageDone");
self endon("disconnect");
level waittill("cancel_notify");
self.notifytitle.alpha = 0;
self.notifytext.alpha = 0;
self.notifyicon.alpha = 0;
self.doingnotify = 0;
}
//Function Number: 27
func_0EC7(param_00)
{
var_01 = 0.05;
while(!canreadtext())
{
wait var_01;
}
while(param_00 > 0)
{
wait var_01;
if(canreadtext())
{
param_00 = param_00 - var_01;
}
}
}
//Function Number: 28
canreadtext()
{
if(isflashbanged())
{
return 0;
}
return 1;
}
//Function Number: 29
isflashbanged()
{
return isdefined(self.flashendtime) && gettime() < self.flashendtime;
}
//Function Number: 30
dispatchnotify(param_00)
{
var_01 = self.splashqueue[param_00][0];
for(var_02 = 1;var_02 < self.splashqueue[param_00].size;var_02++)
{
self.splashqueue[param_00][var_02 - 1] = self.splashqueue[param_00][var_02];
}
self.splashqueue[param_00][var_02 - 1] = undefined;
if(isdefined(var_01.name))
{
actionnotify(var_01);
return;
}
shownotifymessage(var_01);
}
//Function Number: 31
registerscoreinfo(param_00,param_01)
{
level.scoreinfo[param_00]["value"] = param_01;
}
//Function Number: 32
getscoreinfovalue(param_00)
{
return level.scoreinfo[param_00]["value"];
}
//Function Number: 33
getrankinfominxp(param_00)
{
return int(level.ranktable[param_00][2]);
}
//Function Number: 34
func_0ECE(param_00)
{
return int(level.ranktable[param_00][3]);
}
//Function Number: 35
getrankinfomaxxp(param_00)
{
return int(level.ranktable[param_00][7]);
}
//Function Number: 36
getrankinfofull(param_00)
{
return tablelookupistring("sp/ranktable.csv",0,param_00,5);
}
//Function Number: 37
getrankinfoicon(param_00)
{
return tablelookup("sp/rankTable.csv",0,param_00,6);
}
//Function Number: 38
getrank()
{
var_00 = self.var_E96["rankxp"];
var_01 = self.var_E96["rank"];
if(var_00 < getrankinfominxp(var_01) + func_0ECE(var_01))
{
return var_01;
}
return getrankforxp(var_00);
}
//Function Number: 39
getrankforxp(param_00)
{
var_01 = 0;
for(var_02 = level.ranktable[var_01][1];isdefined(var_02) && var_02 != "";var_02 = undefined)
{
if(param_00 < getrankinfominxp(var_01) + func_0ECE(var_01))
{
return var_01;
}
var_01++;
if(isdefined(level.ranktable[var_01]))
{
var_02 = level.ranktable[var_01][1];
continue;
}
}
var_01--;
return var_01;
}
//Function Number: 40
getrankxp()
{
return self getplayerdata("experience");
}

555
MW3/Xbox/SP/maps/_sea.gsc Normal file
View File

@ -0,0 +1,555 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_sea.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 18
* Decompile Time: 375 ms
* Timestamp: 10/27/2023 2:34:34 AM
*******************************************************************/
//Function Number: 1
main()
{
level.var_3CA9 = 1;
level.var_3CAA = getent("sea","targetname");
level._sea_org = spawn("script_origin",level.var_3CAA.origin);
level._sea_org.offset = level.var_3CAA.origin * -1;
level._sea_org.var_3CAC = "sway2";
level.var_3CAD = spawn("script_origin",level.var_3CAA.origin);
level.var_3CAD.offset = level._sea_org.offset;
level.var_3CAA linkto(level.var_3CAD);
level.var_3CAE = getent("sea_foam","targetname");
if(isdefined(level.var_3CAE))
{
level.var_3CAE linkto(level.var_3CAD);
level.var_3CAE hide();
}
level.var_3CAF = getent("sea_black","targetname");
if(isdefined(level.var_3CAF))
{
level.var_3CAF linkto(level.var_3CAD);
}
common_scripts\utility::flag_init("_sea_waves");
common_scripts\utility::flag_init("_sea_viewbob");
common_scripts\utility::flag_init("_sea_bob");
common_scripts\utility::flag_set("_sea_bob");
common_scripts\utility::flag_set("_sea_viewbob");
var_00 = getentarray("boat_sway","script_noteworthy");
if(isdefined(var_00))
{
common_scripts\utility::array_thread(var_00,::sea_objectbob,level._sea_org);
}
thread sea_logic();
}
//Function Number: 2
sea_logic()
{
wait 0.05;
var_00 = getmapsundirection();
setsundirection(var_00);
level.lite_settings = vectortoangles(var_00);
level.var_3CB2 = level.lite_settings;
level._sea_org thread func_3CC1();
level._sea_org thread sea_waves();
level._sea_org thread func_3CCE();
}
//Function Number: 3
func_3CB3(param_00,param_01)
{
self.waittime = randomfloatrange(0.5,1);
if(isdefined(self.var_3CB4))
{
self.scale = self.var_3CB4;
}
else
{
self.scale = randomfloatrange(2,3);
}
var_02 = 0;
var_03 = 0;
switch(param_01)
{
case "sway1":
var_02 = self.var_3CB5;
break;
case "sway2":
var_02 = self.var_3CB6;
break;
}
if(self.var_3CB7)
{
var_04 = param_00.var_3CB8[0] * self.pratio * self.scale + param_00.var_3CB8[2] * self.var_3CBA * self.scale;
if(var_02 < abs(var_04))
{
if(var_04 < 1)
{
var_03 = var_02 * -1;
}
else
{
var_03 = var_02;
}
}
else
{
var_03 = var_04;
}
self.ang = (self.angles[0],self.angles[1],var_03);
return;
}
self.ang = param_00.var_3CB8 * self.scale;
}
//Function Number: 4
sea_objectbob(param_00)
{
if(isdefined(self.targetname))
{
var_01 = getentarray(self.targetname,"target");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
var_01[var_02] linkto(self);
}
}
var_03 = common_scripts\utility::getstructarray(self.target,"targetname");
var_04 = var_03[0].origin;
var_05 = undefined;
var_06 = spawn("script_origin",(0,0,0));
var_06.var_3CB7 = 0;
if(isdefined(var_03[1]))
{
var_05 = var_03[1].origin;
var_06.var_3CB7 = 1;
}
else
{
var_07 = anglestoup(var_03[0].angles);
var_07 = var_07 * 10;
var_05 = var_04 + var_07;
}
var_06.origin = var_04;
var_06.angles = vectortoangles(var_05 - var_04);
var_06.pratio = 1;
var_06.var_3CBA = 1;
var_06.var_3CB5 = 100;
var_06.var_3CB6 = 100;
var_06.var_3CB4 = undefined;
if(isdefined(var_03[0].script_parameters))
{
var_08 = strtok(var_03[0].script_parameters,":;, ");
for(var_02 = 0;var_02 < var_08.size;var_02++)
{
switch(var_08[var_02])
{
case "axial":
var_06.var_3CB7 = 1;
break;
case "sway1":
var_02++;
var_06.var_3CB5 = int(var_08[var_02]);
break;
case "sway2":
var_02++;
var_06.var_3CB6 = int(var_08[var_02]);
break;
case "setscale":
var_02++;
if(var_08[var_02] == "randomrange")
{
var_02++;
var_09 = int(var_08[var_02]);
var_02++;
var_0A = int(var_08[var_02]);
var_06.var_3CB4 = randomfloatrange(var_09,var_0A);
}
else
{
var_06.var_3CB4 = int(var_08[var_02]);
}
break;
}
}
}
if(var_06.var_3CB7)
{
var_0B = undefined;
var_0C = (0,360,0);
if(!isdefined(var_03[1]))
{
var_0B = var_03[0].angles;
}
else
{
var_0B = vectortoangles(var_05 - var_04);
}
var_06.var_3CBA = vectordot(anglestoright(var_0B),anglestoright(var_0C));
var_06.pratio = vectordot(anglestoright(var_0B),anglestoforward(var_0C));
}
self.link = var_06;
self notify("got_link");
for(var_02 = 0;var_02 < var_03.size;var_02++)
{
var_03[var_02] thread sea_objectbob_findparent(var_06,param_00);
}
wait 0.05;
self linkto(var_06);
if(isdefined(self.script_parameters))
{
}
thread func_3CBE(param_00,var_06);
}
//Function Number: 5
func_3CBE(param_00,param_01)
{
for(;;)
{
if(param_00.var_3CAC == "sway2")
{
param_00 waittill("sway1");
}
param_01 func_3CB3(param_00,"sway1");
param_01 notify("precalcdone1");
if(!isdefined(param_01.parent))
{
wait param_01.waittime;
}
param_01 rotateto(param_01.ang,param_00.time,param_00.time * 0.5,param_00.time * 0.5);
if(param_00.var_3CAC == "sway1")
{
param_00 waittill("sway2");
}
param_01 func_3CB3(param_00,"sway2");
param_01 notify("precalcdone2");
if(!isdefined(param_01.parent))
{
wait param_01.waittime;
}
param_01 rotateto(param_01.ang,param_00.time,param_00.time * 0.5,param_00.time * 0.5);
}
}
//Function Number: 6
func_3CBF(param_00)
{
for(;;)
{
self moveto(param_00.origin,0.1);
wait 0.1;
}
}
//Function Number: 7
sea_objectbob_findparent(param_00,param_01)
{
if(!isdefined(self.target))
{
return;
}
param_00.parent = getent(self.target,"targetname");
if(!isdefined(param_00.parent.link))
{
param_00.parent waittill("got_link");
}
var_02 = param_00.parent.link;
var_03 = param_00.origin;
var_04 = spawn("script_origin",var_02.origin);
var_04.angles = var_02.angles;
var_05 = spawn("script_origin",param_00.origin);
var_05.angles = param_00.angles;
var_05 linkto(var_04);
param_00 thread func_3CBF(var_05);
for(;;)
{
var_02 waittill("precalcdone1");
wait var_02.waittime - 0.05;
var_04 rotateto(var_02.ang,param_01.time,param_01.time * 0.5,param_01.time * 0.5);
var_02 waittill("precalcdone2");
wait var_02.waittime - 0.05;
var_04 rotateto(var_02.ang,param_01.time,param_01.time * 0.5,param_01.time * 0.5);
}
}
//Function Number: 8
func_3CC1()
{
self endon("manual_override");
common_scripts\utility::flag_wait("_sea_bob");
thread func_3CC3();
wait 0.05;
for(;;)
{
var_00 = 0;
var_01 = 0;
var_02 = randomfloatrange(2,4) * level.var_3CA9;
self.time = randomfloatrange(3,4);
self.var_3CB8 = (var_01,var_00,var_02);
self.var_3CAC = "sway1";
self notify("sway1");
if(common_scripts\utility::flag("_sea_bob"))
{
level.var_3CAD rotateto(self.var_3CB8,self.time,self.time * 0.5,self.time * 0.5);
}
self rotateto(self.var_3CB8,self.time,self.time * 0.5,self.time * 0.5);
wait self.time;
self.var_3CB8 = self.var_3CB8 * -1;
self.var_3CAC = "sway2";
self notify("sway2");
if(common_scripts\utility::flag("_sea_bob"))
{
level.var_3CAD rotateto(self.var_3CB8,self.time,self.time * 0.5,self.time * 0.5);
}
self rotateto(self.var_3CB8,self.time,self.time * 0.5,self.time * 0.5);
wait self.time;
}
}
//Function Number: 9
sea_bob_reset_loop()
{
self endon("manual_override");
common_scripts\utility::flag_wait("_sea_bob");
thread func_3CC3();
}
//Function Number: 10
func_3CC3()
{
self endon("manual_override");
level waittill("_sea_bob");
thread sea_bob_reset_loop();
level endon("_sea_bob");
var_00 = 1.5;
var_01 = (0,0,0);
level.var_3CAD rotateto(var_01,var_00,var_00 * 0.5,var_00 * 0.5);
wait var_00;
wait 0.05;
level.var_3CB2 = level.lite_settings;
level.var_3CAD.angles = (0,0,0);
}
//Function Number: 11
sea_waves()
{
var_00 = sea_waves_setup();
if(!isdefined(var_00))
{
return;
}
self.var_3CC5 = [];
for(;;)
{
common_scripts\utility::flag_wait("_sea_waves");
self waittill("sway1");
thread sea_waves_fx(var_00,"right");
common_scripts\utility::flag_wait("_sea_waves");
self waittill("sway2");
thread sea_waves_fx(var_00,"left");
}
}
//Function Number: 12
sea_waves_fx(param_00,param_01)
{
wait self.time * 0.5;
var_02 = 2;
var_03 = common_scripts\utility::random(sea_closestwavearray(param_00[param_01],var_02));
if(!isdefined(self.var_3CC5[param_01]))
{
self.var_3CC5[param_01] = var_03;
}
while(self.var_3CC5[param_01] == var_03)
{
wait 0.05;
var_03 = common_scripts\utility::random(sea_closestwavearray(param_00[param_01],var_02));
}
self.var_3CC5[param_01] = var_03;
var_03 thread sea_waves_fx2();
thread common_scripts\utility::play_sound_in_space("elm_wave_crash_ext",var_03.origin);
}
//Function Number: 13
sea_waves_fx2()
{
wait randomfloat(0.15);
common_scripts\utility::exploder(self.exploder.v["exploder"]);
}
//Function Number: 14
sea_closestwavearray(param_00,param_01)
{
var_02 = [];
for(var_03 = 0;var_03 < param_00.size;var_03++)
{
param_00[var_03].var_3CC9 = distancesquared(param_00[var_03].origin,level.player.origin);
}
for(var_03 = 0;var_03 < param_00.size;var_03++)
{
var_02 = func_3CCA(var_02,param_00[var_03]);
}
var_04 = [];
var_03 = 0;
while(var_03 < param_01)
{
var_04++ = var_41[var_03];
}
return var_41;
}
//Function Number: 15
func_3CCA(param_00,param_01)
{
if(!param_00.size)
{
param_00[0] = param_01;
return param_00;
}
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
if(param_00[var_02].var_3CC9 > param_01.var_3CC9)
{
param_00 = maps\_utility::array_insert(param_00,param_01,var_02);
break;
}
}
if(var_02 == param_00.size)
{
param_00 = maps\_utility::array_add(param_00,param_01);
}
return param_00;
}
//Function Number: 16
sea_waves_setup()
{
var_00 = common_scripts\utility::getstructarray("wave_fx","targetname");
var_01 = common_scripts\utility::getstruct("wave_fx_center","targetname");
if(!var_00.size)
{
return undefined;
}
var_02 = anglestoforward(var_01.angles);
var_03 = anglestoright(var_01.angles);
var_04 = [];
for(var_05 = 0;var_05 < var_01.size;var_05++ = var_41["left"])
{
var_01[var_05].forward = anglestoforward(var_01[var_05].angles);
var_01[var_05].up = anglestoup(var_01[var_05].angles);
var_01[var_05].right = anglestoright(var_01[var_05].angles);
}
for(var_05 = 0;var_05 < var_01.size;var_05++ = [])
{
if(vectordot(var_01[var_05].forward,var_04) > 0)
{
var_41["right"][var_41["right"].size] = var_01[var_05];
continue;
}
var_41["left"][var_41["left"].size] = var_01[var_05];
}
var_06 = level.var_3CCC;
for(var_05 = 0;var_05 < var_06.size;var_05++ = var_41["right"])
{
var_06[var_05].origin = var_06[var_05].v["origin"];
}
for(var_05 = 0;var_05 < var_41["right"].size;var_05++ = [])
{
var_07 = maps\_utility::getclosest(var_41["right"][var_05].origin,var_06,64);
var_06 = common_scripts\utility::array_remove(var_06,var_07);
if(isdefined(var_41["right"][var_05].angles))
{
var_07.v["forward"] = anglestoup(var_41["right"][var_05].angles);
}
var_41["right"][var_05].exploder = var_07;
}
for(var_05 = 0;var_05 < var_41["left"].size;var_05++)
{
var_07 = maps\_utility::getclosest(var_41["left"][var_05].origin,var_06,64);
var_06 = common_scripts\utility::array_remove(var_06,var_07);
if(isdefined(var_41["left"][var_05].angles))
{
var_07.v["forward"] = anglestoup(var_41["left"][var_05].angles);
}
var_41["left"][var_05].exploder = var_07;
}
return var_41;
}
//Function Number: 17
sea_litebob()
{
for(;;)
{
wait 0.2;
var_00 = self.angles * 2;
var_00 = (var_00[0],var_00[1],var_00[2]);
var_01 = level.var_3CB2;
level.var_3CB2 = combineangles(var_00,level.lite_settings);
var_02 = level.var_3CB2;
var_03 = anglestoforward(var_01);
var_04 = anglestoforward(var_02);
lerpsundirection(var_03,var_04,0.2);
}
}
//Function Number: 18
func_3CCE()
{
for(;;)
{
common_scripts\utility::flag_wait("_sea_viewbob");
level.player playersetgroundreferenceent(self);
if(common_scripts\utility::flag("_sea_viewbob"))
{
level waittill("_sea_viewbob");
}
level.player playersetgroundreferenceent(undefined);
}
}

View File

@ -0,0 +1,90 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_shellshock.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 3
* Decompile Time: 43 ms
* Timestamp: 10/27/2023 2:34:27 AM
*******************************************************************/
//Function Number: 1
main(param_00,param_01,param_02,param_03,param_04,param_05)
{
level thread func_3C0F(param_00,param_01,param_02,param_03,param_04,param_05);
}
//Function Number: 2
func_3C0F(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!isdefined(param_00))
{
param_00 = 12;
}
else if(param_00 < 7)
{
param_00 = 7;
}
if(!isdefined(param_01))
{
param_01 = 150;
}
if(!isdefined(param_02))
{
param_02 = 100;
}
if(!isdefined(param_03))
{
param_03 = 100;
}
if(!isdefined(param_05))
{
var_06 = "default";
}
else
{
var_06 = var_06;
}
var_07 = level.player getorigin() + (0,8,2);
var_08 = 320;
var_09 = param_01 + randomint(param_02);
var_0A = param_03;
level.player playsound("weapons_rocket_explosion");
wait 0.25;
radiusdamage(var_07,var_08,var_09,var_0A);
earthquake(0.75,2,var_07,2250);
if(isalive(level.player))
{
level.player allowstand(0);
level.player allowcrouch(0);
level.player allowprone(1);
wait 0.15;
level.player viewkick(127,level.player.origin);
level.player shellshock(var_06,param_00);
if(!isdefined(param_04))
{
level.player thread func_3C10(param_00);
}
wait 1.5;
level.player allowstand(1);
level.player allowcrouch(1);
}
}
//Function Number: 3
func_3C10(param_00)
{
self.shellshocked = 1;
self.ignoreme = 1;
self notify("player is shell shocked");
self endon("player is shell shocked");
wait param_00 - 1;
self.shellshocked = 0;
self.ignoreme = 0;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,352 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_shutter.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 12
* Decompile Time: 191 ms
* Timestamp: 10/27/2023 2:35:24 AM
*******************************************************************/
//Function Number: 1
main()
{
if(!isdefined(level.windstrength))
{
level.windstrength = 0.2;
}
level.animrate["awning"] = 1;
level.animrate["palm"] = 1;
level.var_1961 = level.windstrength - 0.5;
level.animweightmax = level.windstrength + 0.2;
if(level.var_1961 < 0.1)
{
level.var_1961 = 0.1;
}
if(level.animweightmax > 1)
{
level.animweightmax = 1;
}
level.inc = 0;
func_196F();
palmtree_anims();
thread new_style_shutters();
common_scripts\utility::array_levelthread(getentarray("wire","targetname"),::wirewander);
common_scripts\utility::array_levelthread(getentarray("awning","targetname"),::awningwander);
common_scripts\utility::array_levelthread(getentarray("palm","targetname"),::func_1972);
var_00 = [];
var_01 = getentarray("shutter_left","targetname");
var_00 = common_scripts\utility::array_combine(var_00,var_01);
var_01 = getentarray("shutter_right_open","targetname");
var_00 = common_scripts\utility::array_combine(var_00,var_01);
var_01 = getentarray("shutter_left_closed","targetname");
var_00 = common_scripts\utility::array_combine(var_00,var_01);
foreach(var_03 in var_00)
{
var_03 addyaw(180);
}
var_05 = [];
var_01 = getentarray("shutter_right","targetname");
var_05 = common_scripts\utility::array_combine(var_05,var_01);
var_01 = getentarray("shutter_left_open","targetname");
var_05 = common_scripts\utility::array_combine(var_05,var_01);
var_01 = getentarray("shutter_right_closed","targetname");
var_05 = common_scripts\utility::array_combine(var_05,var_01);
wait 0.05;
var_01 = common_scripts\utility::array_combine(var_00,var_05);
foreach(var_03 in var_01)
{
var_03 thread shuttersound();
var_03.startyaw = var_03.angles[1];
}
var_01 = undefined;
var_08 = "left";
level endon("stop_shutters");
for(;;)
{
common_scripts\utility::array_levelthread(var_00,::func_196B,var_08);
common_scripts\utility::array_levelthread(var_05,::shutterwanderright,var_08);
level waittill("wind blows",var_08);
}
}
//Function Number: 2
windcontroller()
{
for(;;)
{
var_00 = "left";
if(randomint(100) > 50)
{
var_00 = "right";
}
level notify("wind blows",var_00);
wait 2 + randomfloat(10);
}
}
//Function Number: 3
new_style_shutters()
{
var_00 = getentarray("shutter","targetname");
foreach(var_02 in var_00)
{
var_03 = getent(var_02.target,"targetname");
var_04 = spawn("script_origin",var_02.origin);
var_04.angles = var_03.angles;
var_04.startyaw = var_04.angles[1];
var_02.pivot = var_04;
var_02 linkto(var_04);
var_04 addyaw(randomfloatrange(-90,90));
var_02 thread shuttersound();
}
level endon("stop_shutters");
var_06 = "left";
for(;;)
{
common_scripts\utility::array_levelthread(var_00,::shutterwander,var_06);
level waittill("wind blows",var_06);
}
}
//Function Number: 4
shutterwander(param_00,param_01)
{
level endon("stop_shutters");
level endon("wind blows");
var_02 = param_00.pivot;
var_03 = randomint(3) + 1;
var_04 = 1;
if(common_scripts\utility::cointoss())
{
var_04 = var_04 * -1;
}
var_05 = 80;
var_06 = 80;
if(isdefined(param_00.var_1969))
{
var_06 = param_00.var_1969;
}
if(isdefined(param_00.var_196A))
{
var_05 = param_00.var_196A;
}
for(;;)
{
param_00 notify("shutterSound");
var_07 = randomintrange(50,80);
var_03--;
if(!var_03)
{
var_03 = randomint(3) + 1;
var_04 = var_04 * -1;
}
var_07 = var_07 * var_04;
if(var_04 > 0)
{
if(var_07 > var_05)
{
var_07 = var_05;
}
}
else if(var_07 > var_06)
{
var_07 = var_06;
}
var_08 = var_02.startyaw + var_07;
var_09 = abs(var_02.angles[1] - var_08);
var_0A = var_09 * 0.05 + randomfloat(1) + 0.25;
if(var_0A < 0.25)
{
var_0A = 0.25;
}
var_02 rotateto((0,var_08,0),var_0A,var_0A * 0.5,var_0A * 0.5);
wait var_0A;
}
}
//Function Number: 5
func_196B(param_00,param_01)
{
level endon("stop_shutters");
level.inc++;
level endon("wind blows");
var_02 = param_00.startyaw;
if(param_01 == "left")
{
var_02 = var_02 + 179.9;
}
var_03 = 0.2;
param_00 rotateto((param_00.angles[0],var_02,param_00.angles[2]),var_03);
wait var_03 + 0.1;
for(;;)
{
param_00 notify("shutterSound");
var_04 = randomint(80);
if(common_scripts\utility::cointoss())
{
var_04 = var_04 * -1;
}
var_02 = param_00.angles[1] + var_04;
var_05 = param_00.angles[1] + var_04 * -1;
if(var_02 < param_00.startyaw || var_02 > param_00.startyaw + 179)
{
var_02 = var_05;
}
var_06 = abs(param_00.angles[1] - var_02);
var_03 = var_06 * 0.02 + randomfloat(2);
if(var_03 < 0.3)
{
var_03 = 0.3;
}
param_00 rotateto((param_00.angles[0],var_02,param_00.angles[2]),var_03,var_03 * 0.5,var_03 * 0.5);
wait var_03;
}
}
//Function Number: 6
shutterwanderright(param_00,param_01)
{
level endon("stop_shutters");
level.inc++;
level endon("wind blows");
var_02 = param_00.startyaw;
if(param_01 == "left")
{
var_02 = var_02 + 179.9;
}
var_03 = 0.2;
param_00 rotateto((param_00.angles[0],var_02,param_00.angles[2]),var_03);
wait var_03 + 0.1;
for(;;)
{
param_00 notify("shutterSound");
var_04 = randomint(80);
if(randomint(100) > 50)
{
var_04 = var_04 * -1;
}
var_02 = param_00.angles[1] + var_04;
var_05 = param_00.angles[1] + var_04 * -1;
if(var_02 < param_00.startyaw || var_02 > param_00.startyaw + 179)
{
var_02 = var_05;
}
var_06 = abs(param_00.angles[1] - var_02);
var_03 = var_06 * 0.02 + randomfloat(2);
if(var_03 < 0.3)
{
var_03 = 0.3;
}
param_00 rotateto((param_00.angles[0],var_02,param_00.angles[2]),var_03,var_03 * 0.5,var_03 * 0.5);
wait var_03;
}
}
//Function Number: 7
shuttersound()
{
for(;;)
{
self waittill("shutterSound");
self waittill("sounddone");
wait randomfloat(2);
}
}
//Function Number: 8
wirewander(param_00)
{
var_01 = getentarray(param_00.target,"targetname");
var_02 = var_01[0].origin;
var_03 = var_01[1].origin;
var_04 = vectortoangles(var_02 - var_03);
var_05 = spawn("script_model",(0,0,0));
var_05.origin = var_02 * 0.5 + var_03 * 0.5;
var_05.angles = var_04;
param_00 linkto(var_05);
var_06 = 2;
var_07 = 0.9;
var_08 = 4 + randomfloat(2);
var_05 rotateroll(var_08 * 0.5,0.2);
wait 0.2;
for(;;)
{
var_09 = var_06 + randomfloat(var_07) - var_07 * 0.5;
var_05 rotateroll(var_08,var_09,var_09 * 0.5,var_09 * 0.5);
wait var_09;
var_05 rotateroll(var_08 * -1,var_09,var_09 * 0.5,var_09 * 0.5);
wait var_09;
}
}
//Function Number: 9
func_196F()
{
}
//Function Number: 10
awningwander(param_00)
{
}
//Function Number: 11
palmtree_anims()
{
}
//Function Number: 12
func_1972(param_00)
{
param_00 useanimtree(#animtree);
switch(param_00.model)
{
case "tree_desertpalm01":
param_00.animname = "ree_desertpalm01";
break;
case "tree_desertpalm02":
param_00.animname = "tree_desertpalm02";
break;
case "tree_desertpalm03":
param_00.animname = "tree_desertpalm03";
break;
}
if(!isdefined(param_00.animname))
{
return;
}
wait randomfloat(2);
for(;;)
{
var_01 = level.var_1961 + randomfloat(level.animweightmax - level.var_1961);
var_02 = 4;
param_00 setanim(level.scr_anim[param_00.animname]["wind"][0],var_01,var_02,level.animrate["palm"]);
param_00 setanim(level.scr_anim[param_00.animname]["wind"][1],1 - var_01,var_02,level.animrate["palm"]);
wait 1 + randomfloat(3);
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,627 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_specialops_battlechatter.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 32
* Decompile Time: 627 ms
* Timestamp: 10/27/2023 2:33:32 AM
*******************************************************************/
//Function Number: 1
init()
{
anim.so = spawnstruct();
level.so.eventtypes = [];
level.so.eventtypes["check_fire"] = "threat_friendly_fire";
level.so.eventtypes["reload"] = "inform_reload_generic";
level.so.eventtypes["frag_out"] = "inform_attack_grenade";
level.so.eventtypes["flash_out"] = "inform_attack_flashbang";
level.so.eventtypes["smoke_out"] = "inform_attack_smoke";
level.so.eventtypes["c4_plant"] = "inform_attack_c4";
level.so.eventtypes["claymore_plant"] = "inform_plant_claymore";
level.so.eventtypes["downed"] = "inform_suppressed";
level.so.eventtypes["bleedout"] = "inform_bleedout";
level.so.eventtypes["reviving"] = "inform_reviving";
level.so.eventtypes["revived"] = "inform_revived";
level.so.eventtypes["sentry_out"] = "inform_place_sentry";
level.so.eventtypes["area_secure"] = "inform_area_secure";
level.so.eventtypes["kill_generic"] = "inform_kill_generic";
level.so.eventtypes["kill_infantry"] = "inform_kill_infantry";
level.so.eventtypes["affirmative"] = "inform_roger";
level.so.eventtypes["negative"] = "inform_negative";
level.so.eventtypes["on_comms"] = "inform_comms";
level.so.eventtypes["mark_dropzone"] = "inform_markdz";
level.so.eventtypes["glowstick_out"] = "inform_use_glowstick";
level.so.eventtypeminwait = [];
level.so.eventtypeminwait["check_fire"] = 4;
level.so.eventtypeminwait["reload"] = 8;
level.so.eventtypeminwait["frag_out"] = 3;
level.so.eventtypeminwait["flash_out"] = 3;
level.so.eventtypeminwait["smoke_out"] = 3;
level.so.eventtypeminwait["c4_plant"] = 2;
level.so.eventtypeminwait["claymore_plant"] = 2;
level.so.eventtypeminwait["downed"] = 0.5;
level.so.eventtypeminwait["bleedout"] = 0.5;
level.so.eventtypeminwait["reviving"] = 2;
level.so.eventtypeminwait["revived"] = 2;
level.so.eventtypeminwait["sentry_out"] = 3;
level.so.eventtypeminwait["kill_generic"] = 2;
level.so.eventtypeminwait["kill_infantry"] = 2;
level.so.eventtypeminwait["area_secure"] = 0.5;
level.so.eventtypeminwait["affirmative"] = 2;
level.so.eventtypeminwait["negative"] = 2;
level.so.eventtypeminwait["on_comms"] = 0.5;
level.so.eventtypeminwait["mark_dropzone"] = 0.5;
level.so.eventtypeminwait["glowstick_out"] = 3;
level.so.skipdistancecheck = [];
level.so.skipdistancecheck[level.so.skipdistancecheck.size] = "affirmative";
level.so.skipdistancecheck[level.so.skipdistancecheck.size] = "negative";
level.so.skipdistancecheck[level.so.skipdistancecheck.size] = "area_secure";
level.so.skipdistancecheck[level.so.skipdistancecheck.size] = "on_comms";
level.so.skipdistancecheck[level.so.skipdistancecheck.size] = "mark_dropzone";
level.so.skipdistancecheck[level.so.skipdistancecheck.size] = "downed";
level.so.skipdistancecheck[level.so.skipdistancecheck.size] = "bleedout";
level.so.skipdistancecheck[level.so.skipdistancecheck.size] = "check_fire";
level.so.noreloadcalloutweapons = [];
level.so.noreloadcalloutweapons[level.so.noreloadcalloutweapons.size] = "m79";
level.so.noreloadcalloutweapons[level.so.noreloadcalloutweapons.size] = "ranger";
level.so.noreloadcalloutweapons[level.so.noreloadcalloutweapons.size] = "claymore";
level.so.noreloadcalloutweapons[level.so.noreloadcalloutweapons.size] = "rpg";
level.so.noreloadcalloutweapons[level.so.noreloadcalloutweapons.size] = "rpg_player";
level.so.bcmaxdistsqd = 640000;
level.so.bcprintfailprefix = "^3***** BCS FAILURE: ";
common_scripts\utility::array_thread(level.players,::enable_chatter_on_player);
enable_chatter();
}
//Function Number: 2
enable_chatter()
{
level.so_player_chatter_enabled = 1;
}
//Function Number: 3
disable_chatter()
{
level.so_player_chatter_enabled = 0;
}
//Function Number: 4
enable_chatter_on_player()
{
self.so_isspeaking = 0;
self.bc_eventtypelastusedtime = [];
thread revive_tracking();
thread claymore_tracking();
thread reload_tracking();
thread grenade_tracking();
thread friendlyfire_tracking();
thread friendlyfire_whizby_tracking();
thread sentry_tracking();
thread kill_generic_tracking();
thread kill_infantry_tracking();
thread area_secure_tracking();
thread affirmative_tracking();
thread negative_tracking();
thread on_comms_tracking();
thread mark_dropzone_tracking();
thread glowstick_tracking();
}
//Function Number: 5
revive_tracking()
{
level endon("special_op_terminated");
self endon("death");
for(;;)
{
var_00 = common_scripts\utility::waittill_any_return("so_downed","so_bleedingout","so_reviving","so_revived");
if(var_00 == "so_downed")
{
play_so_chatter("downed");
continue;
}
if(var_00 == "so_bleedingout")
{
play_so_chatter("bleedout");
continue;
}
if(var_00 == "so_reviving")
{
play_so_chatter("reviving");
continue;
}
if(var_00 == "so_revived")
{
play_so_chatter("revived");
}
}
}
//Function Number: 6
claymore_tracking()
{
level endon("special_op_terminated");
self endon("death");
for(;;)
{
self waittill("begin_firing");
var_00 = self getcurrentweapon();
if(var_00 == "claymore")
{
play_so_chatter("claymore_plant");
}
}
}
//Function Number: 7
sentry_tracking()
{
level endon("special_op_terminated");
self endon("death");
for(;;)
{
self waittill("sentry_placement_finished");
play_so_chatter("sentry_out");
}
}
//Function Number: 8
kill_generic_tracking()
{
level endon("special_op_terminated");
self endon("death");
for(;;)
{
self waittill("so_bcs_kill_generic");
play_so_chatter("kill_generic");
}
}
//Function Number: 9
kill_infantry_tracking()
{
level endon("special_op_terminated");
self endon("death");
for(;;)
{
self waittill("so_bcs_kill_infantry");
play_so_chatter("kill_infantry");
}
}
//Function Number: 10
area_secure_tracking()
{
level endon("special_op_terminated");
self endon("death");
for(;;)
{
self waittill("so_bcs_area_secure");
play_so_chatter("area_secure");
}
}
//Function Number: 11
affirmative_tracking()
{
level endon("special_op_terminated");
self endon("death");
for(;;)
{
self waittill("so_bcs_affirmative");
play_so_chatter("area_secure");
}
}
//Function Number: 12
negative_tracking()
{
level endon("special_op_terminated");
self endon("death");
for(;;)
{
self waittill("so_bcs_negative");
play_so_chatter("negative");
}
}
//Function Number: 13
on_comms_tracking()
{
level endon("special_op_terminated");
self endon("death");
for(;;)
{
self waittill("so_bcs_on_comms");
play_so_chatter("on_comms");
}
}
//Function Number: 14
mark_dropzone_tracking()
{
level endon("special_op_terminated");
self endon("death");
for(;;)
{
self waittill("so_bcs_mark_dropzone");
play_so_chatter("mark_dropzone");
}
}
//Function Number: 15
glowstick_tracking()
{
}
//Function Number: 16
reload_tracking()
{
level endon("special_op_terminated");
self endon("death");
for(;;)
{
self waittill("reload_start");
var_00 = self getcurrentweapon();
if(weapon_no_reload_callout(var_00))
{
continue;
}
if(is_downed())
{
continue;
}
play_so_chatter("reload");
}
}
//Function Number: 17
weapon_no_reload_callout(param_00)
{
foreach(var_02 in level.so.noreloadcalloutweapons)
{
if(param_00 == var_02)
{
return 1;
}
}
return 0;
}
//Function Number: 18
grenade_tracking()
{
level endon("special_op_terminated");
self endon("death");
for(;;)
{
self waittill("grenade_fire",var_00,var_01);
var_02 = undefined;
if(var_01 == "fraggrenade")
{
var_02 = "frag_out";
}
else if(var_01 == "semtex_grenade")
{
var_02 = "frag_out";
}
else if(var_01 == "flash_grenade")
{
var_02 = "flash_out";
}
else if(var_01 == "smoke_grenade_american")
{
var_02 = "smoke_out";
}
else if(var_01 == "c4")
{
var_02 = "c4_plant";
}
if(isdefined(var_02))
{
play_so_chatter(var_02);
}
}
}
//Function Number: 19
friendlyfire_tracking()
{
level endon("special_op_terminated");
self endon("death");
for(;;)
{
self waittill("damage",var_00,var_01,var_02,var_03,var_04);
if(!friendlyfire_is_valid(var_00,var_01,var_04))
{
continue;
}
play_so_chatter("check_fire");
}
}
//Function Number: 20
friendlyfire_is_valid(param_00,param_01,param_02)
{
if(param_00 <= 0)
{
return 0;
}
if(!isplayer(param_01))
{
return 0;
}
if(param_01 == self)
{
return 0;
}
if(param_02 == "MOD_MELEE")
{
return 0;
}
if(isdefined(level.friendlyfire_warnings) && !level.friendlyfire_warnings)
{
return 0;
}
return 1;
}
//Function Number: 21
friendlyfire_whizby_tracking()
{
level endon("special_op_terminated");
self endon("death");
self addaieventlistener("bulletwhizby");
for(;;)
{
self waittill("ai_event",var_00,var_01,var_02);
if(var_00 == "bulletwhizby")
{
if(!friendlyfire_whizby_is_valid(var_01,var_02))
{
continue;
}
play_so_chatter("check_fire");
}
}
}
//Function Number: 22
friendlyfire_whizby_is_valid(param_00,param_01)
{
if(!isplayer(param_00))
{
return 0;
}
if(param_00 == self)
{
return 0;
}
if(is_downed())
{
return 0;
}
if(abs(param_01[2] - self.origin[2] > 128))
{
return 0;
}
var_02 = distance2d(self.origin,param_01);
if(!animscripts/battlechatter_ai::friendlyfire_whizby_distances_valid(param_00,var_02))
{
return 0;
}
if(isdefined(level.friendlyfire_warnings) && !level.friendlyfire_warnings)
{
return 0;
}
return 1;
}
//Function Number: 23
func_0EF1()
{
var_00 = func_0EF2();
play_so_chatter(var_00);
}
//Function Number: 24
func_0EF2()
{
var_00 = "downed";
var_01 = self.var_EF3.bleedout_time;
var_02 = self.var_EF3.bleedout_time_default;
if(var_01 < var_02 * level.laststand_stage2_multiplier)
{
var_00 = "bleedout";
}
return var_00;
}
//Function Number: 25
can_say_current_nag_event_type()
{
var_00 = func_0EF2();
return can_say_event_type(var_00);
}
//Function Number: 26
play_so_chatter(param_00)
{
level endon("special_op_terminated");
self endon("death");
if(!can_say_event_type(param_00))
{
return;
}
if(!func_0F01(param_00))
{
return;
}
var_01 = get_player_team_prefix(self) + level.so.eventtypes[param_00];
var_01 = check_overrides(param_00,var_01);
if(!isdefined(var_01))
{
return;
}
if(!soundexists(var_01))
{
return;
}
self.so_isspeaking = 1;
self playsound(var_01,"bc_done",1);
self waittill("bc_done");
self.so_isspeaking = 0;
func_0EFA(param_00);
}
//Function Number: 27
can_say_event_type(param_00)
{
if(!isdefined(level.so_player_chatter_enabled) || !level.so_player_chatter_enabled)
{
return 0;
}
if(self.so_isspeaking)
{
return 0;
}
if(!isdefined(self.bc_eventtypelastusedtime[param_00]))
{
return 1;
}
var_01 = self.bc_eventtypelastusedtime[param_00];
var_02 = level.so.eventtypeminwait[param_00] * 1000;
if(gettime() - var_01 >= var_02)
{
return 1;
}
return 0;
}
//Function Number: 28
func_0EFA(param_00)
{
self.bc_eventtypelastusedtime[param_00] = gettime();
}
//Function Number: 29
check_overrides(param_00,param_01)
{
if(param_00 == "reload")
{
if(isdefined(level.so_override["skip_inform_reloading"]) && level.so_override["skip_inform_reloading"])
{
return undefined;
}
if(isdefined(level.so_override["inform_reloading"]))
{
return level.so_override["inform_reloading"];
}
}
return param_01;
}
//Function Number: 30
get_player_team_prefix(param_00)
{
var_01 = "";
if(isdefined(level.so_stealth) && level.so_stealth)
{
var_01 = "STEALTH_";
}
var_02 = "1";
if(param_00 == level.player2)
{
var_02 = "2";
}
switch(level.so_campaign)
{
case "fso":
case "hijack":
case "delta":
case "ranger":
return "SO_US_" + var_02 + "_" + var_01;
case "seal":
return "SO_NS_" + var_02 + "_" + var_01;
case "sas":
case "ghillie":
case "woodland":
case "desert":
case "arctic":
return "SO_UK_" + var_02 + "_" + var_01;
default:
break;
}
}
//Function Number: 31
func_0F01(param_00)
{
if(isdefined(param_00))
{
foreach(var_02 in level.so.skipdistancecheck)
{
if(var_02 == param_00)
{
return 1;
}
}
}
var_04 = maps\_utility::get_other_player(self);
if(distancesquared(var_04.origin,self.origin) > level.so.bcmaxdistsqd)
{
return 0;
}
return 1;
}
//Function Number: 32
is_downed()
{
if(maps\_utility::ent_flag_exist("laststand_downed") && maps\_utility::ent_flag("laststand_downed"))
{
return 1;
}
return 0;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,409 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_stealth_vehicle.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 24
* Decompile Time: 482 ms
* Timestamp: 10/27/2023 2:34:40 AM
*******************************************************************/
//Function Number: 1
flags_init()
{
level._effect["lighthaze_snow_headlights"] = loadfx("misc/lighthaze_snow_headlights");
level._effect["car_taillight_uaz_l"] = loadfx("misc/car_taillight_uaz_l");
common_scripts\utility::flag_init("truck_guys_alerted");
common_scripts\utility::flag_init("jeep_blown_up");
common_scripts\utility::flag_init("jeep_stopped");
}
//Function Number: 2
func_3E4A()
{
self endon("death");
self endon("enemy");
for(;;)
{
if(func_3E4B())
{
self.fovcosine = 0.01;
return;
}
wait 0.5;
}
}
//Function Number: 3
func_3E4B()
{
foreach(var_01 in level.players)
{
if(distancesquared(self.origin,var_01.origin) < squared(self.footstepdetectdistsprint))
{
return 1;
}
}
return 0;
}
//Function Number: 4
stealth_truck_think()
{
thread func_3E59();
thread truck_headlights();
self waittill("death");
common_scripts\utility::flag_set("jeep_blown_up");
}
//Function Number: 5
func_3E4D()
{
self endon("death");
level endon("_stealth_spotted");
self endon("_stealth_attack");
maps\_utility::ent_flag_init("jumped_out");
thread func_3E51();
var_00 = [];
var_01 = [];
var_02 = [];
maps\_stealth_shared_utilities::ai_create_behavior_function("animation","wrapper",::func_3E53);
maps\_stealth_utility::stealth_threat_behavior_custom(var_01);
maps\_stealth_utility::stealth_corpse_behavior_custom(var_41);
foreach(var_05, var_04 in var_02)
{
maps\_stealth_event_enemy::func_3DC5(var_05,var_04);
}
maps\_utility::func_FA4("_stealth_behavior_reaction_anim");
}
//Function Number: 6
func_3E4E(param_00)
{
self endon("_stealth_enemy_alert_level_change");
level endon("_stealth_spotted");
self endon("_stealth_attack");
self endon("death");
self endon("pain_death");
thread func_3E4F();
self.disablearrivals = 0;
self.disableexits = 0;
var_01 = distance(param_00.origin,self.origin);
self setgoalnode(param_00);
self.goalradius = var_01 * 0.5;
wait 0.05;
maps\_utility::set_generic_run_anim("_stealth_patrol_cqb");
self waittill("goal");
if(!common_scripts\utility::flag("_stealth_spotted") && !isdefined(self.enemy) || !self cansee(self.enemy))
{
func_3E50();
maps\_stealth_shared_utilities::enemy_runto_and_lookaround(param_00);
}
}
//Function Number: 7
func_3E4F()
{
self endon("death");
self endon("_stealth_attack");
level endon("_stealth_spotted");
wait 2;
self waittill("_stealth_bad_event_listener");
maps\_stealth_shared_utilities::func_3CEF();
maps\_utility::func_FA4("not_first_attack");
}
//Function Number: 8
func_3E50()
{
maps\_utility::disable_cqbwalk();
maps\_utility::set_generic_run_anim("patrol_cold_gunup_search",1);
self.disablearrivals = 1;
self.disableexits = 1;
}
//Function Number: 9
func_3E51()
{
self endon("death");
self endon("pain_death");
for(;;)
{
self waittill("jumpedout");
maps\_stealth_shared_utilities::enemy_set_original_goal(self.origin);
self.got_off_truck_origin = self.origin;
maps\_utility::func_FA4("jumped_out");
self waittill("enteredvehicle");
wait 0.15;
maps\_utility::ent_flag_clear("jumped_out");
maps\_utility::func_FA4("_stealth_behavior_reaction_anim");
}
}
//Function Number: 10
func_3E53(param_00)
{
self endon("death");
self endon("pain_death");
common_scripts\utility::flag_set("truck_guys_alerted");
maps\_utility::func_121C("jumped_out");
maps\_stealth_shared_utilities::func_3D04(param_00);
}
//Function Number: 11
func_3E54(param_00)
{
self endon("death");
self endon("pain_death");
level endon("_stealth_spotted");
self endon("_stealth_attack");
common_scripts\utility::flag_set("truck_guys_alerted");
maps\_utility::func_121C("jumped_out");
if(!common_scripts\utility::flag("truck_guys_alerted"))
{
return;
}
if(common_scripts\utility::flag_exist("truck_guys_not_going_back") && common_scripts\utility::flag("truck_guys_not_going_back"))
{
return;
}
if(!common_scripts\utility::flag("_stealth_spotted") && !maps\_utility::ent_flag("_stealth_attack"))
{
var_01 = maps\_utility::func_218A(self.origin);
var_02 = maps\_stealth_shared_utilities::func_3CF7(var_01.origin,1500,128);
if(isdefined(var_02))
{
thread func_3E4E(var_02);
}
}
var_03 = maps\_stealth_shared_utilities::func_3CDF("_stealth_spotted");
if(common_scripts\utility::flag(var_03))
{
common_scripts\utility::flag_waitopen(var_03);
return;
}
self waittill("normal");
}
//Function Number: 12
truck_guys_no_enemy_reaction_behavior(param_00)
{
self endon("death");
self endon("pain_death");
level endon("_stealth_spotted");
self endon("_stealth_attack");
common_scripts\utility::flag_set("truck_guys_alerted");
maps\_utility::func_121C("jumped_out");
if(!common_scripts\utility::flag("truck_guys_alerted"))
{
return;
}
if(common_scripts\utility::flag_exist("truck_guys_not_going_back") && common_scripts\utility::flag("truck_guys_not_going_back"))
{
return;
}
if(!common_scripts\utility::flag("_stealth_spotted") && !maps\_utility::ent_flag("_stealth_attack"))
{
var_01 = self._stealth.var_3CF1.event.awareness_param[param_00];
var_02 = maps\_stealth_shared_utilities::func_3CF7(var_01,300,40);
thread maps\_stealth_shared_utilities::func_3CF8();
if(isdefined(var_02))
{
thread func_3E4E(var_02);
}
}
var_03 = maps\_stealth_shared_utilities::func_3CDF("_stealth_spotted");
if(common_scripts\utility::flag(var_03))
{
common_scripts\utility::flag_waitopen(var_03);
return;
}
self waittill("normal");
}
//Function Number: 13
func_3E56(param_00)
{
self endon("death");
self endon("pain_death");
common_scripts\utility::flag_set("truck_guys_alerted");
maps\_utility::func_121C("jumped_out");
}
//Function Number: 14
set_alert_cold_patrol_anims()
{
self.patrol_walk_anim = "patrol_cold_gunup";
self.patrol_walk_twitch = "patrol_gunup_twitch_weights";
}
//Function Number: 15
func_3E58()
{
var_00 = distance(self.origin,maps\_utility::func_218A(self.origin).origin);
var_01 = var_00 - 200 / 1000;
var_01 = clamp(var_01,0,0.5);
wait var_01;
}
//Function Number: 16
func_3E59()
{
self endon("death");
thread func_3E5E();
thread func_3E62();
thread unload_and_attack_if_stealth_broken_and_close();
common_scripts\utility::flag_wait("truck_guys_alerted");
var_00 = maps\_utility::get_living_ai_array("truck_guys","script_noteworthy");
if(var_00.size == 0)
{
self vehicle_setspeed(0,15);
return;
}
var_01 = common_scripts\utility::random(var_00);
var_01 maps\_stealth_shared_utilities::func_3CF8();
self waittill("safe_to_unload");
self vehicle_setspeed(0,15);
wait 1;
maps\_vehicle::vehicle_unload();
common_scripts\utility::flag_set("jeep_stopped");
}
//Function Number: 17
unload_and_attack_if_stealth_broken_and_close()
{
self endon("truck_guys_alerted");
for(;;)
{
common_scripts\utility::flag_wait("_stealth_spotted");
foreach(var_01 in level.players)
{
thread waittill_player_in_range(var_01);
}
self waittill("player_in_range");
if(!common_scripts\utility::flag("_stealth_spotted"))
{
continue;
}
else
{
break;
}
}
common_scripts\utility::flag_set("truck_guys_alerted");
}
//Function Number: 18
waittill_player_in_range(param_00)
{
self endon("player_in_range");
param_00 maps\_utility::waittill_entity_in_range(self,800);
self notify("player_in_range");
}
//Function Number: 19
truck_headlights()
{
playfxontag(level._effect["lighthaze_snow_headlights"],self,"TAG_LIGHT_RIGHT_FRONT");
playfxontag(level._effect["lighthaze_snow_headlights"],self,"TAG_LIGHT_LEFT_FRONT");
playfxontag(level._effect["car_taillight_uaz_l"],self,"TAG_LIGHT_LEFT_TAIL");
playfxontag(level._effect["car_taillight_uaz_l"],self,"TAG_LIGHT_RIGHT_TAIL");
self waittill("death");
if(isdefined(self))
{
func_3E5D();
}
}
//Function Number: 20
func_3E5D()
{
stopfxontag(level._effect["lighthaze_snow_headlights"],self,"TAG_LIGHT_RIGHT_FRONT");
stopfxontag(level._effect["lighthaze_snow_headlights"],self,"TAG_LIGHT_LEFT_FRONT");
stopfxontag(level._effect["car_taillight_uaz_l"],self,"TAG_LIGHT_LEFT_TAIL");
stopfxontag(level._effect["car_taillight_uaz_l"],self,"TAG_LIGHT_RIGHT_TAIL");
}
//Function Number: 21
func_3E5E()
{
level endon("special_op_terminated");
level endon("jeep_stopped");
level endon("jeep_blown_up");
var_00 = 1;
for(;;)
{
func_3E60();
var_01 = maps\_utility::within_fov(self.origin,self.angles,self.var_3E5F.origin,cos(45));
if(var_01)
{
if(!var_00 && common_scripts\utility::cointoss())
{
maps\_utility::func_DDF("cliff_pri_truckcomingback");
}
else
{
maps\_utility::func_DDF("cliff_pri_truckiscoming");
}
var_00 = 0;
wait 10;
}
wait 1;
}
}
//Function Number: 22
func_3E60()
{
self.var_3E5F = undefined;
foreach(var_01 in level.players)
{
var_01 thread func_3E61(self);
}
level waittill("player_in_truck_range");
}
//Function Number: 23
func_3E61(param_00)
{
level endon("player_in_truck_range");
param_00 maps\_utility::waittill_entity_in_range(self,1200);
param_00.var_3E5F = self;
level notify("player_in_truck_range");
}
//Function Number: 24
func_3E62()
{
level endon("special_op_terminated");
self waittill("unloading");
if(common_scripts\utility::flag("_stealth_spotted"))
{
return;
}
maps\_utility::func_DDF("cliff_pri_headsup");
if(common_scripts\utility::flag("_stealth_spotted"))
{
return;
}
maps\_utility::func_DDF("cliff_pri_lookingaround");
}

View File

@ -0,0 +1,185 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_treadfx.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 3
* Decompile Time: 52 ms
* Timestamp: 10/27/2023 2:35:52 AM
*******************************************************************/
//Function Number: 1
main(param_00)
{
if(!isdefined(param_00))
{
return;
}
level.var_2470[param_00] = 1;
switch(param_00)
{
case "script_vehicle_m1a1_abrams_player_tm":
case "script_vehicle_m1a1_abrams_minigun":
setallvehiclefx(param_00,"treadfx/tread_dust_hamburg_cheap");
setvehiclefx(param_00,"water");
setvehiclefx(param_00,"paintedmetal");
setvehiclefx(param_00,"riotshield");
break;
case "script_vehicle_uk_utility_truck_no_rail_player":
case "script_vehicle_uk_utility_truck_no_rail":
case "script_vehicle_uk_utility_truck":
setallvehiclefx(param_00,"treadfx/tread_dust_default");
setvehiclefx(param_00,"water");
setvehiclefx(param_00,"rock");
setvehiclefx(param_00,"metal");
setvehiclefx(param_00,"brick");
setvehiclefx(param_00,"plaster");
setvehiclefx(param_00,"asphalt");
setvehiclefx(param_00,"paintedmetal");
setvehiclefx(param_00,"riotshield");
setvehiclefx(param_00,"snow","treadfx/tread_snow_default");
setvehiclefx(param_00,"slush","treadfx/tread_snow_default");
setvehiclefx(param_00,"ice","treadfx/tread_ice_default");
break;
case "script_vehicle_b2":
case "script_vehicle_pavelow_noai":
case "script_vehicle_pavelow":
case "script_vehicle_mi28_flying_low":
case "script_vehicle_osprey_fly":
case "script_vehicle_osprey":
case "script_vehicle_mi28_flying":
case "script_vehicle_ch46e_ny_harbor":
case "script_vehicle_ch46e_low":
case "script_vehicle_ch46e_notsolid":
case "script_vehicle_ch46e":
case "script_vehicle_mi17_woodland_landing_noai":
case "script_vehicle_mi17_woodland_fly_cheap_noai":
case "script_vehicle_mi17_woodland_fly_noai":
case "script_vehicle_mi17_woodland_noai":
case "script_vehicle_mi17_woodland_landing_so":
case "script_vehicle_mi17_woodland_landing":
case "script_vehicle_mi17_woodland_fly_cheap":
case "script_vehicle_mi17_woodland_fly":
case "script_vehicle_mi17_woodland":
case "script_vehicle_harrier":
case "script_vehicle_blackhawk_minigun_low":
case "script_vehicle_blackhawk_hero_hamburg":
case "script_vehicle_blackhawk_low_thermal":
case "script_vehicle_blackhawk_low":
case "script_vehicle_blackhawk_hero_sas_night":
case "script_vehicle_blackhawk":
case "script_vehicle_littlebird_player":
case "script_vehicle_littlebird_bench":
case "script_vehicle_cobra_helicopter_fly_player":
case "script_vehicle_cobra_helicopter_player":
case "script_vehicle_cobra_helicopter_low":
case "script_vehicle_cobra_helicopter_fly_low":
case "script_vehicle_cobra_helicopter_fly":
case "script_vehicle_cobra_helicopter":
case "script_vehicle_apache_dark":
case "script_vehicle_apache_mg":
case "script_vehicle_apache":
case "script_vehicle_mi24p_hind_woodland_opened_door":
case "script_vehicle_ny_harbor_hind":
case "script_vehicle_ny_blackhawk":
case "script_vehicle_littlebird_md500":
case "script_vehicle_littlebird_armed":
case "b2":
case "mig29":
case "blackhawk_minigun_so":
case "harrier":
case "pavelow":
case "mi28":
case "littlebird":
case "littlebird_player":
case "cobra_player":
case "cobra":
case "mi17_noai":
case "mi17":
case "ny_harbor_hind":
case "hind":
case "seaknight":
case "apache":
case "blackhawk_minigun":
case "blackhawk":
setallvehiclefx(param_00,"treadfx/heli_dust_default");
setvehiclefx(param_00,"water","treadfx/heli_water");
setvehiclefx(param_00,"snow","treadfx/heli_snow_default");
setvehiclefx(param_00,"slush","treadfx/heli_snow_default");
setvehiclefx(param_00,"ice","treadfx/heli_snow_default");
break;
default:
setallvehiclefx(param_00,"treadfx/tread_dust_default");
setvehiclefx(param_00,"water");
setvehiclefx(param_00,"concrete");
setvehiclefx(param_00,"rock");
setvehiclefx(param_00,"metal");
setvehiclefx(param_00,"brick");
setvehiclefx(param_00,"plaster");
setvehiclefx(param_00,"asphalt");
setvehiclefx(param_00,"paintedmetal");
setvehiclefx(param_00,"riotshield");
setvehiclefx(param_00,"snow","treadfx/tread_snow_default");
setvehiclefx(param_00,"slush","treadfx/tread_snow_default");
setvehiclefx(param_00,"ice","treadfx/tread_ice_default");
break;
}
}
//Function Number: 2
setvehiclefx(param_00,param_01,param_02)
{
if(!isdefined(level.var_2472))
{
level.var_2472 = [];
}
if(!isdefined(param_02))
{
level.var_2472[param_00][param_01] = -1;
return;
}
level.var_2472[param_00][param_01] = loadfx(param_02);
}
//Function Number: 3
setallvehiclefx(param_00,param_01)
{
setvehiclefx(param_00,"brick",param_01);
setvehiclefx(param_00,"bark",param_01);
setvehiclefx(param_00,"carpet",param_01);
setvehiclefx(param_00,"cloth",param_01);
setvehiclefx(param_00,"concrete",param_01);
setvehiclefx(param_00,"dirt",param_01);
setvehiclefx(param_00,"flesh",param_01);
setvehiclefx(param_00,"foliage",param_01);
setvehiclefx(param_00,"glass",param_01);
setvehiclefx(param_00,"grass",param_01);
setvehiclefx(param_00,"gravel",param_01);
setvehiclefx(param_00,"ice",param_01);
setvehiclefx(param_00,"metal",param_01);
setvehiclefx(param_00,"mud",param_01);
setvehiclefx(param_00,"paper",param_01);
setvehiclefx(param_00,"plaster",param_01);
setvehiclefx(param_00,"rock",param_01);
setvehiclefx(param_00,"sand",param_01);
setvehiclefx(param_00,"snow",param_01);
setvehiclefx(param_00,"water",param_01);
setvehiclefx(param_00,"wood",param_01);
setvehiclefx(param_00,"asphalt",param_01);
setvehiclefx(param_00,"ceramic",param_01);
setvehiclefx(param_00,"plastic",param_01);
setvehiclefx(param_00,"rubber",param_01);
setvehiclefx(param_00,"cushion",param_01);
setvehiclefx(param_00,"fruit",param_01);
setvehiclefx(param_00,"paintedmetal",param_01);
setvehiclefx(param_00,"riotshield",param_01);
setvehiclefx(param_00,"slush",param_01);
setvehiclefx(param_00,"default",param_01);
setvehiclefx(param_00,"none");
}

View File

@ -0,0 +1,116 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_treeburst.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 4
* Decompile Time: 73 ms
* Timestamp: 10/27/2023 2:34:40 AM
*******************************************************************/
//Function Number: 1
main()
{
var_00 = getentarray("treeburst","script_noteworthy");
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
var_00[var_01] thread func_3E63();
}
}
//Function Number: 2
func_3E63()
{
self waittill("treeburst");
if(isdefined(self.var_3E64))
{
var_00 = self.var_3E64;
}
else
{
var_00 = randomint(360);
}
var_01 = (self.angles[0],var_00,self.angles[2]);
var_02 = anglestoforward(var_01);
var_02 = var_02 * 100;
var_03 = self.origin + var_02 + (0,0,512);
var_04 = var_03 + (0,0,-1024);
var_05 = bullettrace(var_03,var_04,0,self);
var_06 = self.origin + var_02 - var_05["position"];
var_07 = var_06[2];
var_08 = 0;
var_09 = 0;
var_0A = var_09;
var_0B = 0;
var_0C = var_0B;
while(var_09 < var_07)
{
var_08 = var_08 + 340;
var_0A = var_09;
var_09 = var_09 + var_08;
var_0C = var_0B;
var_0B++;
}
var_0D = var_0A - var_07;
if(var_0D < 0)
{
var_0D = var_0D * -1;
}
var_0E = var_0C + var_0D / var_08;
self movegravity(var_02,var_0E);
self waittill("movedone");
var_0F = vectornormalize(var_02);
var_0F = var_0F * 320;
var_03 = self.origin + var_0F + (0,0,512);
var_04 = var_03 + (0,0,-1024);
var_05 = bullettrace(var_03,var_04,0,self);
var_10 = var_05["position"];
var_11 = anglestoup(self.angles);
var_12 = vectortoangles(var_11);
var_13 = var_10 - self.origin;
var_14 = vectortoangles(var_13);
var_15 = spawn("script_origin",self.origin);
var_15.origin = self.origin;
var_15.angles = (var_12[0],var_14[1],var_14[2]);
self linkto(var_15);
var_15 rotateto(var_14,1.15,0.5,0);
var_15 waittill("rotatedone");
var_15 rotatepitch(-2.5,0.21,0.05,0.15);
var_15 waittill("rotatedone");
var_15 rotatepitch(2.5,0.26,0.15,0.1);
var_15 waittill("rotatedone");
self unlink();
var_15 delete();
}
//Function Number: 3
drawline(param_00,param_01,param_02,param_03)
{
wait 0.05;
}
//Function Number: 4
draworigin(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = 1;
}
if(isdefined(param_01))
{
wait 0.05;
return;
}
for(;;)
{
var_03 = (1,0,0);
var_04 = (0,1,0);
var_05 = (0,0,1);
wait 0.05;
}
}

12313
MW3/Xbox/SP/maps/_utility.gsc Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
Failed to decompile this file, open a ticket if you need this fixed.

View File

@ -0,0 +1 @@
Failed to decompile this file, open a ticket if you need this fixed.

View File

@ -0,0 +1,236 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_vehicle_missile.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 8
* Decompile Time: 133 ms
* Timestamp: 10/27/2023 2:34:41 AM
*******************************************************************/
//Function Number: 1
main()
{
if(getdvar("cobrapilot_surface_to_air_missiles_enabled") == "")
{
setdvar("cobrapilot_surface_to_air_missiles_enabled","1");
}
func_3E6F();
thread firemissile();
thread func_1E1A();
thread func_3E66();
}
//Function Number: 2
func_3E66()
{
self waittill("death");
self detachall();
}
//Function Number: 3
func_1E1A()
{
self endon("death");
if(!isdefined(self.var_252C))
{
return;
}
if(self.var_252C == 0)
{
return;
}
self.attackradius = 30000;
if(isdefined(self.radius))
{
self.attackradius = self.radius;
}
while(!isdefined(level.cobrapilot_difficulty))
{
wait 0.05;
}
var_00 = 1;
if(level.cobrapilot_difficulty == "easy")
{
var_00 = 0.5;
}
else if(level.cobrapilot_difficulty == "medium")
{
var_00 = 1.7;
}
else if(level.cobrapilot_difficulty == "hard")
{
var_00 = 1;
}
else if(level.cobrapilot_difficulty == "insane")
{
var_00 = 1.5;
}
self.attackradius = self.attackradius * var_00;
if(getdvar("cobrapilot_debug") == "1")
{
iprintln("surface-to-air missile range difficultyScaler = " + var_00);
}
for(;;)
{
wait 2 + randomfloat(1);
var_01 = undefined;
var_01 = maps\_helicopter_globals::getenemytarget(self.attackradius,undefined,0,1);
if(!isdefined(var_01))
{
continue;
}
var_02 = var_01.origin;
if(isdefined(var_01.script_targetoffset_z))
{
var_02 = var_02 + (0,0,var_01.script_targetoffset_z);
}
self setturrettargetvec(var_02);
level thread func_3E69(self,5);
self waittill("turret_rotate_stopped");
self clearturrettarget();
if(distance(self.origin,var_01.origin) > self.attackradius)
{
continue;
}
var_03 = 0;
var_03 = sighttracepassed(self.origin,var_01.origin + (0,0,150),0,self);
if(!var_03)
{
continue;
}
if(getdvar("cobrapilot_surface_to_air_missiles_enabled") == "1")
{
self notify("shoot_target",var_01);
self waittill("missile_fired",var_04);
if(isdefined(var_04))
{
if(level.cobrapilot_difficulty == "hard")
{
wait 1 + randomfloat(2);
continue;
}
else if(level.cobrapilot_difficulty == "insane")
{
continue;
}
else
{
var_04 waittill("death");
}
}
continue;
}
}
}
//Function Number: 4
func_3E69(param_00,param_01)
{
param_00 endon("death");
param_00 endon("turret_rotate_stopped");
wait param_01;
param_00 notify("turret_rotate_stopped");
}
//Function Number: 5
func_3E6A(param_00)
{
var_01 = distance((self.origin[0],self.origin[1],0),(param_00.origin[0],param_00.origin[1],0));
var_02 = param_00.origin[2] - self.origin[2];
if(var_02 <= 750)
{
return 0;
}
var_03 = var_02 * 2.5;
if(var_01 <= self.attackradius + var_03)
{
return 1;
}
return 0;
}
//Function Number: 6
firemissile()
{
self endon("death");
for(;;)
{
self waittill("shoot_target",var_00);
var_01 = undefined;
if(!isdefined(var_00.script_targetoffset_z))
{
var_00.script_targetoffset_z = 0;
}
var_02 = (0,0,var_00.script_targetoffset_z);
var_01 = self fireweapon(self.var_3983[self.missilelaunchnexttag],var_00,var_02);
if(getdvar("cobrapilot_debug") == "1")
{
level thread draw_missile_target_line(var_01,var_00,var_02);
}
if(!isdefined(var_00.var_23E3))
{
var_00.var_23E3 = [];
}
var_00.var_23E3 = maps\_utility::array_add(var_00.var_23E3,var_01);
thread maps\_helicopter_globals::missile_deathwait(var_01,var_00);
self detach(self.var_3E6C,self.var_3983[self.missilelaunchnexttag]);
self.missilelaunchnexttag++;
self.var_3E6D--;
var_00 notify("incomming_missile",var_01);
func_3E6F();
wait 0.05;
self notify("missile_fired",var_01);
}
}
//Function Number: 7
draw_missile_target_line(param_00,param_01,param_02)
{
param_00 endon("death");
wait 0.05;
}
//Function Number: 8
func_3E6F()
{
if(!isdefined(self.var_3E6D))
{
self.var_3E6D = 0;
}
if(!isdefined(self.missilelaunchnexttag))
{
self.missilelaunchnexttag = 0;
}
if(self.var_3E6D > 0)
{
return;
}
for(var_00 = 0;var_00 < self.var_3983.size;var_00++)
{
self attach(self.var_3E6C,self.var_3983[var_00]);
}
self.var_3E6D = self.var_3983.size;
self.missilelaunchnexttag = 0;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,403 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_vehicledrive.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 14
* Decompile Time: 240 ms
* Timestamp: 10/27/2023 2:34:47 AM
*******************************************************************/
//Function Number: 1
main()
{
setdvarifuninitialized("debug_vehiclegod","off");
setdvarifuninitialized("debug_vehicleplayerhealth","off");
setdvarifuninitialized("player_vehicle_dismountable","off");
precacheshader("tank_shell");
level.var_3ED7 = 0;
}
//Function Number: 2
func_3ED8(param_00)
{
if(!isdefined(param_00))
{
param_00 = 0;
}
else if(param_00)
{
if(getdvar("player_vehicle_dismountable") == "off")
{
self makeunusable();
}
}
self endon("death");
self endon("stop_vehicle_wait");
while(self.health > 0)
{
if(!param_00)
{
self waittill("trigger");
}
else
{
param_00 = 0;
self useby(level.player);
}
var_01 = self getvehicleowner();
if(isdefined(var_01) && isplayer(var_01))
{
thread vehicle_enter();
}
else
{
thread func_3ED9();
}
if(param_00)
{
break;
}
wait 0.05;
}
}
//Function Number: 3
func_3ED9()
{
level.var_3ED7 = 0;
level.var_23D1 = level.var_25D3;
level notify("player exited vehicle");
if(isdefined(level.player.oldthreatbias))
{
level.player.threatbias = level.player.oldthreatbias;
level.player.oldthreatbias = undefined;
}
if(isdefined(level.var_3EDB))
{
level.var_3EDB destroy();
}
if(isdefined(level.vehiclehud2))
{
level.vehiclehud2 destroy();
}
if(isdefined(level.var_3EDD))
{
level.var_3EDD destroy();
}
}
//Function Number: 4
vehicle_enter()
{
level.var_3ED7 = 1;
level.var_23D1 = self;
thread vehicle_ridehandle();
}
//Function Number: 5
func_3EDF()
{
func_3EE1();
}
//Function Number: 6
setup_vehicle_other()
{
func_3EE1();
}
//Function Number: 7
func_3EE1()
{
var_00 = maps\_utility::getdifficulty();
if(var_00 == "easy")
{
self.health = 3000;
}
else if(var_00 == "medium")
{
self.health = 2500;
}
else if(var_00 == "hard")
{
self.health = 2000;
}
else if(var_00 == "fu")
{
self.health = 1300;
}
else
{
self.health = 2000;
}
if(isdefined(self.var_1203))
{
self.health = self.health + self.var_1203;
self.var_2523 = self.health;
self.maxhealth = self.health;
}
}
//Function Number: 8
func_3EE2()
{
level endon("player exited vehicle");
self endon("death");
var_00 = level.player.health;
while(isalive(level.player))
{
level.player waittill("damage",var_01);
if(self.health <= 0)
{
level.player kill((0,0,0));
}
level.player.health = level.player.health + int(var_01 * 0.2);
}
}
//Function Number: 9
vehicle_ridehandle()
{
level endon("player exited vehicle");
self endon("no_regen_health");
self endon("death");
thread func_3EE6();
self.var_3EE4 = self.health;
switch(maps\_utility::getdifficulty())
{
case "gimp":
var_00 = 100;
var_01 = 2700;
break;
case "easy":
var_00 = 75;
var_01 = 2700;
break;
case "medium":
var_00 = 50;
var_01 = 2700;
break;
case "hard":
var_00 = 30;
var_01 = 3700;
break;
case "fu":
var_00 = 20;
var_01 = 4700;
break;
default:
var_00 = 50;
var_01 = 2700;
break;
}
if(self.vehicletype == "crusader_player")
{
self setmodel("vehicle_crusader2_viewmodel");
}
var_02 = gettime();
if(getdvar("debug_vehiclegod") != "off")
{
for(;;)
{
self waittill("damage");
self.health = self.maxhealth;
}
}
thread func_3EE7();
var_03 = gettime();
for(;;)
{
if(self.var_3EE5)
{
if(getdvar("debug_vehicleplayerhealth") != "off")
{
iprintlnbold("playervehicles health: ",self.health - self.var_1203);
}
self.var_3EE5 = 0;
var_02 = gettime() + var_01;
}
var_04 = gettime();
if(self.health < self.var_3EE4 && var_04 > var_02 && var_04 > var_03)
{
if(self.health + var_00 > self.var_3EE4)
{
self.health = self.var_3EE4;
}
else
{
self.health = self.health + var_00;
}
var_03 = gettime() + 250;
if(getdvar("debug_vehicleplayerhealth") != "off")
{
iprintlnbold("playervehicles health: ",self.health - self.var_1203);
}
}
wait 0.05;
}
}
//Function Number: 10
func_3EE6()
{
level endon("player exited vehicle");
self waittill("death");
level.player enablehealthshield(0);
for(;;)
{
level.player kill();
wait 0.1;
}
wait 0.5;
level.player enablehealthshield(1);
}
//Function Number: 11
func_3EE7()
{
self.var_3EE5 = 0;
self endon("death");
for(;;)
{
self waittill("damage",var_00);
self.var_3EE5 = 1;
}
}
//Function Number: 12
vehicle_reloadsound()
{
for(;;)
{
self waittill("turret_fire");
wait 0.5;
self playsound("tank_reload");
}
}
//Function Number: 13
func_3EE9()
{
if(getdvar("player_vehicle_dismountable") != "off")
{
return;
}
level endon("player exited vehicle");
level.player endon("death");
self endon("death");
if(isdefined(level.var_3EDD))
{
level.var_3EDD destroy();
}
level.var_3EDD = newhudelem();
level.var_3EDD.x = -32;
level.var_3EDD.y = -64;
level.var_3EDD.alignx = "center";
level.var_3EDD.aligny = "middle";
level.var_3EDD.horzalign = "right";
level.var_3EDD.vertalign = "bottom";
level.var_3EDD setshader("tank_shell",64,64);
var_00 = 1;
level.var_3EDD.alpha = var_00;
for(;;)
{
if(var_00)
{
if(!self isturretready())
{
var_00 = 0;
level.var_3EDD.alpha = var_00;
}
}
else if(self isturretready())
{
var_00 = 1;
level.var_3EDD.alpha = var_00;
}
wait 0.05;
}
}
//Function Number: 14
func_1EB6()
{
self endon("death");
var_00 = newhudelem();
var_00.x = 0;
var_00.y = 0;
var_00 setshader("splatter_alt_sp",640,480);
var_00.alignx = "left";
var_00.aligny = "top";
var_00.horzalign = "fullscreen";
var_00.vertalign = "fullscreen";
var_00.alpha = 0;
var_01 = self.health - self.var_1203;
var_02 = 0;
var_03 = 0.3;
for(;;)
{
var_04 = self.health - self.var_1203 / var_01;
var_05 = 0.5 + 0.5 * var_04;
if(var_04 < 0.75 || var_02)
{
if(!var_02)
{
var_02 = 1;
}
var_06 = 1 - var_04 + var_03;
var_00 fadeovertime(0.05);
var_00.alpha = var_06;
wait 0.1;
var_00 fadeovertime(var_05 * 0.2);
var_00.alpha = var_06 * 0.5;
wait var_05 * 0.2;
var_00 fadeovertime(var_05 * 0.3);
var_00.alpha = var_06 * 0.3;
wait var_05 * 0.3;
var_04 = self.health - self.var_1203 / var_01;
var_05 = 0.3 + 0.7 * var_04;
if(var_04 > 0.9)
{
var_02 = 0;
var_00 fadeovertime(0.5);
var_00.alpha = 0;
wait var_05 * 0.5 - 0.1;
}
else
{
wait var_05 * 0.5 - 0.1;
}
continue;
}
wait 0.05;
}
}

View File

@ -0,0 +1,402 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_weather.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 15
* Decompile Time: 261 ms
* Timestamp: 10/27/2023 2:34:48 AM
*******************************************************************/
//Function Number: 1
func_3EEA(param_00)
{
level notify("rain_change","hard",param_00);
level thread func_3EF2(10,param_00);
wait param_00 * 0.5;
level.ambient_modifier["rain"] = "";
wait param_00 * 0.5;
}
//Function Number: 2
rainmedium(param_00)
{
level notify("rain_change","hard",param_00);
level thread func_3EF2(8,param_00);
wait param_00 * 0.5;
level.ambient_modifier["rain"] = "";
wait param_00 * 0.5;
}
//Function Number: 3
rainlight(param_00)
{
level notify("rain_change","light",param_00);
level thread func_3EF2(5,param_00);
wait param_00 * 0.5;
level.ambient_modifier["rain"] = "light";
wait param_00 * 0.5;
}
//Function Number: 4
rainnone(param_00)
{
level notify("rain_change","none",param_00);
level thread func_3EF2(0,param_00);
wait param_00 * 0.5;
level.ambient_modifier["rain"] = "norain";
wait param_00 * 0.5;
}
//Function Number: 5
func_3EEF(param_00)
{
common_scripts\utility::flag_init("_weather_lightning_enabled");
common_scripts\utility::flag_set("_weather_lightning_enabled");
if(param_00 == "none")
{
level.var_3EF0 = 0;
level._effect["rain_drops"] = level._effect["rain_" + level.var_3EF0];
rainnone(0.1);
return;
}
if(param_00 == "light")
{
level.var_3EF0 = 5;
level._effect["rain_drops"] = level._effect["rain_" + level.var_3EF0];
rainlight(0.1);
return;
}
level.var_3EF0 = 10;
level._effect["rain_drops"] = level._effect["rain_" + level.var_3EF0];
func_3EEA(0.1);
}
//Function Number: 6
lightning(param_00,param_01)
{
[[ param_00 ]]();
waittillframeend;
func_3EF9(param_00,param_01);
}
//Function Number: 7
func_3EF2(param_00,param_01)
{
level notify("rain_level_change");
level endon("rain_level_change");
if(level.var_3EF0 > param_00)
{
var_02 = level.var_3EF0 - param_00;
param_01 = param_01 / var_02;
for(var_03 = 0;var_03 < var_02;var_03++)
{
wait param_01;
level.var_3EF0--;
level._effect["rain_drops"] = level._effect["rain_" + level.var_3EF0];
}
}
if(level.var_3EF0 < param_00)
{
var_02 = param_00 - level.var_3EF0;
param_01 = param_01 / var_02;
for(var_03 = 0;var_03 < var_02;var_03++)
{
wait param_01;
level.var_3EF0++;
level._effect["rain_drops"] = level._effect["rain_" + level.var_3EF0];
}
}
}
//Function Number: 8
func_3EF3(param_00)
{
if(!isdefined(level.var_3EF4))
{
level.var_3EF4 = [];
level.lightningexploderindex = 0;
}
level.var_3EF4[level.var_3EF4.size] = param_00;
}
//Function Number: 9
func_3EF6()
{
var_00 = getentarray("player","classname")[0];
for(;;)
{
playfx(level._effect["rain_drops"],var_00.origin + (0,0,650),var_00.origin + (0,0,680));
wait 0.3;
}
}
//Function Number: 10
rainlevelrandomwait()
{
if(level.var_3EF0 == 0)
{
return randomfloat(30);
}
if(level.var_3EF0 == 1)
{
return randomfloat(24);
}
if(level.var_3EF0 == 2)
{
return randomfloat(20);
}
if(level.var_3EF0 == 3)
{
return randomfloat(15);
}
if(level.var_3EF0 == 4)
{
return randomfloat(12);
}
if(level.var_3EF0 == 5)
{
return randomfloat(9);
}
if(level.var_3EF0 == 6)
{
return randomfloat(8);
}
if(level.var_3EF0 == 7)
{
return randomfloat(8);
}
if(level.var_3EF0 == 8)
{
return randomfloat(7);
}
if(level.var_3EF0 == 9)
{
return randomfloat(6);
}
if(level.var_3EF0 == 10)
{
return randomfloat(5);
}
}
//Function Number: 11
func_3EF8()
{
if(level.var_3EF0 == 0)
{
return 20;
}
if(level.var_3EF0 == 1)
{
return 18;
}
if(level.var_3EF0 == 2)
{
return 16;
}
if(level.var_3EF0 == 3)
{
return 14;
}
if(level.var_3EF0 == 4)
{
return 12;
}
if(level.var_3EF0 == 5)
{
return 10;
}
if(level.var_3EF0 == 6)
{
return 9;
}
if(level.var_3EF0 == 7)
{
return 8;
}
if(level.var_3EF0 == 8)
{
return 7;
}
if(level.var_3EF0 == 9)
{
return 6;
}
if(level.var_3EF0 == 10)
{
return 5;
}
}
//Function Number: 12
func_3EF9(param_00,param_01)
{
level endon("rain_change");
var_02 = gettime() + func_3EF8() + rainlevelrandomwait() * 1000;
if(var_02 < level.var_3EFA)
{
level.var_3EFA = var_02;
}
for(;;)
{
common_scripts\utility::flag_wait("_weather_lightning_enabled");
var_03 = level.var_3EFA - gettime() * 0.001;
if(var_03 > 0)
{
wait var_03;
}
if(!common_scripts\utility::flag("_weather_lightning_enabled"))
{
continue;
}
func_3EFC(param_00,param_01);
level.var_3EFA = gettime() + func_3EF8() + rainlevelrandomwait() * 1000;
}
}
//Function Number: 13
func_3EFB(param_00)
{
if(isdefined(level.lightningexploderindex))
{
common_scripts\utility::exploder(level.var_3EF4[level.lightningexploderindex]);
}
[[ param_00 ]]();
}
//Function Number: 14
func_3EFC(param_00,param_01,param_02)
{
var_03[0] = "quick";
thread thunder();
if(!isdefined(var_03))
{
var_03 = randomint(var_41.size);
}
var_04 = 0;
if(isdefined(level.lightningexploderindex))
{
while(var_04 == level.lightningexploderindex)
{
var_04 = randomint(level.var_3EF4.size);
}
level.lightningexploderindex = var_04;
}
switch(var_41[var_03])
{
case "quick":
func_3EFB(param_02);
break;
case "double":
func_3EFB(param_02);
wait 0.05;
func_3EFB(param_02);
break;
case "triple":
func_3EFB(param_02);
wait 0.05;
func_3EFB(param_02);
wait 0.5;
func_3EFB(param_02);
break;
}
}
//Function Number: 15
thunder()
{
if(level.var_3EF0 == 0)
{
wait 6 + randomfloat(2);
}
else if(level.var_3EF0 == 1)
{
wait 5 + randomfloat(1.8);
}
else if(level.var_3EF0 == 2)
{
wait 4.5 + randomfloat(1.6);
}
else if(level.var_3EF0 == 3)
{
wait 4 + randomfloat(1.6);
}
else if(level.var_3EF0 == 4)
{
wait 3.5 + randomfloat(1.5);
}
else if(level.var_3EF0 == 5)
{
wait 3 + randomfloat(1.5);
}
else if(level.var_3EF0 == 6)
{
wait 2.5 + randomfloat(1.2);
}
else if(level.var_3EF0 == 7)
{
wait 2 + randomfloat(1);
}
else if(level.var_3EF0 == 8)
{
wait 1.9 + randomfloat(0.5);
}
else if(level.var_3EF0 == 9)
{
wait 1.5;
}
else if(level.var_3EF0 == 10)
{
wait 1;
}
var_00 = spawn("script_origin",(0,0,0));
var_00.origin = level.player.origin + (0,0,60);
var_00 linkto(level.player);
if(level.var_3EF0 <= 8)
{
var_00 playsound("elm_thunder_distant","sounddone");
}
else
{
var_00 playsound("elm_thunder_distant","sounddone");
var_00 thread maps\_utility::play_sound_on_entity("elm_thunder_strike");
}
var_00 waittill("sounddone");
var_00 delete();
}

197
MW3/Xbox/SP/maps/_wood.gsc Normal file
View File

@ -0,0 +1,197 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_wood.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 5
* Decompile Time: 90 ms
* Timestamp: 10/27/2023 2:34:48 AM
*******************************************************************/
//Function Number: 1
main()
{
maps\_utility::precache("woodgib_medium");
maps\_utility::precache("woodgib_big");
maps\_utility::precache("woodgib_small1");
maps\_utility::precache("woodgib_small2");
maps\_utility::precache("wood_plank2");
maps\_utility::precache("gib_woodplank");
var_00 = getentarray("wood_splinter","targetname");
maps\_utility::array_thread(var_00,::func_3EFE);
}
//Function Number: 2
func_3EFE()
{
if(!isdefined(self.target))
{
return;
}
var_00 = getentarray(self.target,"targetname");
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
if(isdefined(var_00[var_01].script_noteworthy) && var_00[var_01].script_noteworthy == "notsolid")
{
var_00[var_01] notsolid();
}
if(!isdefined(var_00[var_01].target))
{
continue;
}
var_00[var_01].var_3EFF = getentarray(var_00[var_01].target,"targetname");
for(var_02 = 0;var_02 < var_00[var_01].var_3EFF.size;var_02++)
{
if(isdefined(var_00[var_01].var_3EFF[var_02]))
{
var_00[var_01].var_3EFF[var_02] hide();
}
}
}
if(isdefined(self.script_noteworthy))
{
level waittill(self.script_noteworthy);
}
self waittill("trigger",var_03);
if(isplayer(var_03))
{
var_04 = var_03 getorigin();
}
else
{
var_04 = var_04.origin;
}
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
if(!isdefined(var_00[var_01].target))
{
continue;
}
var_00[var_01].var_3EFF = getentarray(var_00[var_01].target,"targetname");
for(var_02 = 0;var_02 < var_00[var_01].var_3EFF.size;var_02++)
{
if(isdefined(var_00[var_01].var_3EFF[var_02]))
{
var_00[var_01].var_3EFF[var_02] show();
}
}
}
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
if(!isdefined(var_00[var_01]))
{
continue;
}
var_00[var_01] playsound("wood_break");
var_00[var_01] thread func_3F00(var_04);
var_00[var_01] delete();
}
}
//Function Number: 3
func_3F00(param_00)
{
var_01 = spawn("script_model",(0,0,0));
if(randomint(100) > 25)
{
if(isdefined(self.script_noteworthy) && self.script_noteworthy == "dark")
{
if(randomint(100) > 50)
{
var_01 setmodel("wood_plank2");
}
else
{
var_01 setmodel("gib_woodplank");
}
}
else if(randomint(100) > 50)
{
var_01 setmodel("woodgib_big");
}
else
{
var_01 setmodel("woodgib_medium");
}
}
var_01.origin = self getorigin();
var_01 thread go(param_00);
if(isdefined(self.script_noteworthy) && self.script_noteworthy == "dark")
{
return;
}
small_gibs(var_01.origin,param_00);
}
//Function Number: 4
go(param_00)
{
var_01 = vectornormalize(self.origin - param_00);
var_01 = var_01 * 250 + randomint(100);
var_02 = var_01[0];
var_03 = var_01[1];
var_04 = 200 + randomint(100);
if(var_02 > 0)
{
self rotateroll(1500 + randomfloat(2500) * -1,5,0,0);
}
else
{
self rotateroll(1500 + randomfloat(2500),5,0,0);
}
self movegravity((var_02,var_03,var_04),12);
wait 6;
self delete();
}
//Function Number: 5
small_gibs(param_00,param_01)
{
var_02 = [];
for(var_03 = 0;var_03 < randomint(6) + 1;var_03++)
{
var_02[var_03] = spawn("script_model",param_00);
var_02[var_03].origin = var_02[var_03].origin + (randomfloat(10) - 5,0,randomfloat(30) - 15);
if(randomint(100) > 50)
{
var_02[var_03] setmodel("woodgib_small1");
}
else
{
var_02[var_03] setmodel("woodgib_small2");
}
param_01 = param_01 + (50 - randomint(100),50 - randomint(100),0);
var_04 = vectornormalize(param_00 - param_01);
var_04 = var_04 * 300 + randomint(150);
var_05 = var_04[0];
var_06 = var_04[1];
var_07 = 120 + randomint(200);
var_02[var_03] movegravity((var_05,var_06,var_07),12);
if(var_05 > 0)
{
var_02[var_03] rotateroll(1500 + randomfloat(2500) * -1,5,0,0);
continue;
}
var_02[var_03] rotateroll(1500 + randomfloat(2500),5,0,0);
}
wait 6;
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
var_02[var_03] delete();
}
}

329
MW3/Xbox/SP/maps/so_aud.gsc Normal file
View File

@ -0,0 +1,329 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\so_aud.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 15
* Decompile Time: 285 ms
* Timestamp: 10/27/2023 2:31:04 AM
*******************************************************************/
//Function Number: 1
main(param_00)
{
maps\_audio::func_1314(::so_msg_handler);
thread func_3F03(param_00);
}
//Function Number: 2
func_3F03(param_00)
{
if(!isdefined(param_00))
{
return;
}
switch(param_00)
{
case "so_nyse_ny_manhattan":
func_3F05();
break;
}
}
//Function Number: 3
so_msg_handler(param_00,param_01)
{
var_02 = 1;
switch(param_00)
{
case "so_berlin_intro_littlebird_spawn":
var_03 = param_01;
var_03 thread common_scripts\utility::play_loop_sound_on_entity("so_littlebird_move");
break;
case "so_ied_littlebird":
var_03 = param_01;
var_03 thread common_scripts\utility::play_loop_sound_on_entity("so_littlebird_move");
var_03 thread func_3F09();
break;
case "so_ied_wave4_littlebird":
var_04 = param_01;
var_04 thread common_scripts\utility::play_loop_sound_on_entity("so_littlebird_move_distant");
var_04 thread func_3F09();
break;
case "so_ied_wave3_tank":
var_05 = param_01;
var_05 thread aud_run_tank_system();
break;
case "so_paris_start_jeep":
var_06 = param_01;
thread maps\_audio_vehicles::vm_start_preset("so_paris_jeep_01","so_paris_jeep",var_06,2);
break;
case "so_nyse_littlebird_spawn":
var_03 = param_01;
var_03 common_scripts\utility::play_loop_sound_on_entity("so_nymn_littlebird_move");
break;
case "so_start_harbor_player_hind":
var_07 = param_01;
var_07 common_scripts\utility::play_loop_sound_on_entity("so_hind_player");
break;
case "so_harbor_ally_helis":
var_08 = param_01;
foreach(var_03 in var_08)
{
var_03 thread common_scripts\utility::play_loop_sound_on_entity("so_hind_allies");
}
break;
case "so_harbor_kill_helis":
var_08 = param_01;
foreach(var_03 in var_08)
{
var_03 common_scripts\utility::stop_loop_sound_on_entity("so_hind_allies");
}
break;
case "so_start_harbor_exit_hind":
var_0D = param_01;
var_0D common_scripts\utility::play_loop_sound_on_entity("so_exit_hind_player");
break;
case "so_harbor_enemy_chopper_flyover":
var_0E = param_01;
var_0E maps\_utility::play_sound_on_entity("so_sub_hind_flyover");
break;
case "so_sub_missile_launch":
var_0F = param_01;
func_3F06(var_0F);
break;
default:
var_02 = 0;
break;
}
return var_02;
}
//Function Number: 4
func_3F05()
{
maps\_audio_dynamic_ambi::func_1067("fire_wood_med",(-945,-2847,262),"steff_01",1000,1);
maps\_audio_dynamic_ambi::func_1067("fire_wood_med",(-1181,-2926,55),"steff_02",1000,1);
maps\_audio_dynamic_ambi::func_1067("fire_wood_med_tight",(-1004,-2927,42),"steff_03",1000,1);
maps\_audio_dynamic_ambi::func_1067("fire_crackle_med_tight",(-902,-2716,66),"steff_04",1000,1);
maps\_audio_dynamic_ambi::func_1067("fire_wood_med_tight",(-909,-2636,36),"steff_05",1000,1);
maps\_audio_dynamic_ambi::func_1067("fire_wood_med",(-686,-2120,91),"steff_car",1000,1);
common_scripts\utility::play_loopsound_in_space("road_flare_lp_tight",(-141,271,2));
common_scripts\utility::play_loopsound_in_space("road_flare_lp_tight",(-259,579,2));
common_scripts\utility::play_loopsound_in_space("road_flare_lp_tight",(-475,980,10));
common_scripts\utility::play_loopsound_in_space("road_flare_lp_tight",(-704,311,-7));
maps\_audio_dynamic_ambi::func_1067("fire_crackle_med_tight",(-471,1856,-22),"pre_stock_01",1000,1);
}
//Function Number: 5
func_3F06(param_00)
{
if(!isdefined(param_00))
{
return;
}
if(!isdefined(level.aud.var_3F07))
{
level.aud.var_3F07 = 0;
}
var_01 = maps\_audio_zone_manager::azm_get_current_zone();
if((var_01 == "nyhb_sub_interior_controlroom" || var_01 == "nyhb_sub_interior_missileroom2") && !level.aud.var_3F07)
{
level.aud.var_3F07 = 1;
maps\_audio::func_12F4();
level.player seteq("grondo3d",0,0,"lowpass",0,400,2);
level.player seteq("norestrict2d",0,0,"lowpass",0,400,2);
level.player seteqlerp(1,0);
thread func_3F08();
}
wait 0.05;
param_00 playsound("russian_sub_missile_launch");
wait 1.25;
param_00 playsound("russian_sub_missile_launch_boom");
}
//Function Number: 6
func_3F08()
{
for(;;)
{
var_00 = maps\_audio_zone_manager::azm_get_current_zone();
if(var_00 != "nyhb_sub_interior_controlroom" && var_00 != "nyhb_sub_interior_missileroom2")
{
maps\_audio::func_12F6();
level.player deactivateeq(0,"grondo3d",0);
level.player deactivateeq(0,"norestrict2d",0);
level.aud.var_3F07 = 0;
return;
}
level.player seteqlerp(1,0);
wait 0.1;
}
}
//Function Number: 7
func_3F09()
{
level.aud.var_3F0A = (0,0,0);
self waittill("deathspin");
thread func_3F0B();
thread common_scripts\utility::play_loop_sound_on_entity("so_littlebird_helicopter_dying_loop");
common_scripts\utility::waittill_either("death","crash_done");
thread common_scripts\utility::play_sound_in_space("so_littlebird_helicopter_crash",level.aud.var_3F0A);
}
//Function Number: 8
func_3F0B()
{
self endon("death");
for(;;)
{
if(isdefined(self))
{
self.origin = level.aud.var_3F0A;
wait 0.05;
}
}
}
//Function Number: 9
aud_run_tank_system()
{
func_3F0D("ied_tank_01","us_tank_treads_lp_02","us_tank_move_low_lp","us_tank_idle_lp");
func_3F12();
}
//Function Number: 10
func_3F0D(param_00,param_01,param_02,param_03)
{
if(isdefined(self))
{
level.aud.instance_name = spawn("script_origin",self.origin);
var_04 = spawn("script_origin",self.origin);
var_05 = spawn("script_origin",self.origin);
var_06 = spawn("script_origin",self.origin);
level.aud.instance_name.fade_in = 1;
var_07 = level.aud.instance_name;
var_08 = level.aud.instance_name.fade_in;
var_04 linkto(self);
var_06 linkto(self);
var_05 linkto(self);
if(isdefined(var_04) || isdefined(param_01))
{
var_04 playloopsound(param_01);
}
if(isdefined(var_05) || isdefined(param_02))
{
var_05 playloopsound(param_02);
}
if(isdefined(var_06) || isdefined(param_03))
{
var_06 playloopsound(param_03);
}
var_04 scalevolume(0);
var_05 scalevolume(0);
var_06 scalevolume(0);
wait 0.3;
func_3F0E(var_07,var_04,var_05,var_06,1,5,var_08);
}
}
//Function Number: 11
func_3F0E(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
param_04 = 1;
param_05 = 5;
thread aud_ground_veh_deathwatch(param_00,param_01,param_02,param_03);
thread aud_create_drive_envs();
param_00 endon("instance_killed");
var_07 = 0;
for(;;)
{
if(isdefined(self))
{
var_08 = self vehicle_getspeed();
var_08 = min(var_08,param_05);
var_08 = maps\_audio::aud_smooth(var_07,var_08,0.1);
var_09 = maps\_audio::aud_map_range(var_08,param_04,param_05,level.aud.envs["veh_drive_vol"]);
var_0A = maps\_audio::aud_map_range(var_08,param_04,param_05,level.aud.envs["veh_idle_vol"]);
param_02 scalevolume(var_09,0.1);
param_01 scalevolume(var_09,0.1);
param_03 scalevolume(var_0A,0.1);
var_07 = var_08;
wait 0.1;
}
}
}
//Function Number: 12
aud_create_drive_envs()
{
level.aud.envs["veh_drive_vol"] = [[0,0],[0.05,0.1],[0.1,0.1],[0.2,0.2],[0.3,0.3],[0.4,0.4],[0.5,0.5],[0.6,0.6],[0.8,0.8],[1,1]];
level.aud.envs["veh_idle_vol"] = [[0,1],[0.05,0.85],[0.1,0.6],[0.2,0.5],[0.3,0.4],[0.4,0.1],[0.5,0],[0.6,0],[0.8,0],[1,0]];
}
//Function Number: 13
aud_ground_veh_deathwatch(param_00,param_01,param_02,param_03)
{
if(isdefined(self))
{
self waittill("death");
param_00 notify("instance_killed");
thread aud_fade_loop_out_and_delete_temp(param_01,5);
thread aud_fade_loop_out_and_delete_temp(param_02,5);
thread aud_fade_loop_out_and_delete_temp(param_03,5);
}
}
//Function Number: 14
func_3F12()
{
self endon("death");
if(isdefined(self))
{
for(;;)
{
self waittill("weapon_fired");
var_00 = randomfloatrange(0.2,0.4);
thread common_scripts\utility::play_sound_in_space("us_tank_big_boom",self.origin);
thread common_scripts\utility::play_sound_in_space("us_tank_fire_dist",self.origin);
thread common_scripts\utility::play_sound_in_space("us_tank_fire_close",self.origin);
thread common_scripts\utility::play_sound_in_space("us_tank_fire_hi_ring",self.origin);
thread common_scripts\utility::play_sound_in_space("us_tank_fire_lfe",self.origin);
wait 0.2;
thread common_scripts\utility::play_sound_in_space("us_tank_dist_verb",self.origin);
wait var_00;
}
}
}
//Function Number: 15
aud_fade_loop_out_and_delete_temp(param_00,param_01)
{
param_00 scalevolume(0,param_01);
wait param_01 + 0.05;
param_00 stoploopsound();
wait 0.05;
param_00 delete();
}