mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-12 03:07:57 -05:00
Added MW3 Scripts
This commit is contained in:
128
MW3/PC/MP/common_scripts/_artcommon.gsc
Normal file
128
MW3/PC/MP/common_scripts/_artcommon.gsc
Normal file
@ -0,0 +1,128 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: common_scripts\_artcommon.gsc
|
||||
* Game: Call of Duty: Modern Warfare 3
|
||||
* Platform: PC
|
||||
* Function Count: 10
|
||||
* Decompile Time: 147 ms
|
||||
* Timestamp: 10/27/2023 2:15:29 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
artstartvisionfileexport()
|
||||
{
|
||||
common_scripts\utility::fileprint_launcher_start_file();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
artendvisionfileexport()
|
||||
{
|
||||
return common_scripts\utility::fileprint_launcher_end_file("\\share\\raw\\vision\\" + level.script + ".vision",1);
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
artstartfogfileexport()
|
||||
{
|
||||
common_scripts\utility::fileprint_launcher_start_file();
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
artendfogfileexport()
|
||||
{
|
||||
return common_scripts\utility::fileprint_launcher_end_file("\\share\\raw\\maps\\createart\\" + level.script + "_art.gsc",1);
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
artcommonfxprintln(param_00)
|
||||
{
|
||||
common_scripts\utility::fileprint_launcher(param_00);
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
setfogsliders()
|
||||
{
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
translatefogsliderstoscript()
|
||||
{
|
||||
level.fogexphalfplane = getdvarfloat("scr_fog_exp_halfplane");
|
||||
level.fognearplane = getdvarfloat("scr_fog_nearplane");
|
||||
level.fogcolor = getdvarvector("scr_fog_color");
|
||||
level.fogmaxopacity = getdvarfloat("scr_fog_max_opacity");
|
||||
level.sunfogenabled = getdvarint("scr_sunFogEnabled");
|
||||
level.sunfogcolor = getdvarvector("scr_sunFogColor");
|
||||
level.sunfogdir = getdvarvector("scr_sunFogDir");
|
||||
level.sunfogbeginfadeangle = getdvarfloat("scr_sunFogBeginFadeAngle");
|
||||
level.sunfogendfadeangle = getdvarfloat("scr_sunFogEndFadeAngle");
|
||||
level.sunfogscale = getdvarfloat("scr_sunFogScale");
|
||||
level.fogexphalfplane = limit(level.fogexphalfplane);
|
||||
level.fognearplane = limit(level.fognearplane);
|
||||
var_00 = limit(level.fogcolor[0]);
|
||||
var_01 = limit(level.fogcolor[1]);
|
||||
var_02 = limit(level.fogcolor[2]);
|
||||
level.fogcolor = (var_00,var_01,var_02);
|
||||
level.fogmaxopacity = limit(level.fogmaxopacity);
|
||||
level.sunfogenabled = limit(level.sunfogenabled);
|
||||
var_00 = limit(level.sunfogcolor[0]);
|
||||
var_01 = limit(level.sunfogcolor[1]);
|
||||
var_02 = limit(level.sunfogcolor[2]);
|
||||
level.sunfogcolor = (var_00,var_01,var_02);
|
||||
var_03 = limit(level.sunfogdir[0]);
|
||||
var_04 = limit(level.sunfogdir[1]);
|
||||
var_05 = limit(level.sunfogdir[2]);
|
||||
level.sunfogdir = (var_03,var_04,var_05);
|
||||
level.sunfogbeginfadeangle = limit(level.sunfogbeginfadeangle);
|
||||
level.sunfogendfadeangle = limit(level.sunfogendfadeangle);
|
||||
level.sunfogscale = limit(level.sunfogscale);
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
limit(param_00)
|
||||
{
|
||||
var_01 = 0.001;
|
||||
if(param_00 < var_01 && param_00 > var_01 * -1)
|
||||
{
|
||||
param_00 = 0;
|
||||
}
|
||||
|
||||
return param_00;
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
updatefogfromscript()
|
||||
{
|
||||
if(!getdvarint("scr_fog_disable"))
|
||||
{
|
||||
if(level.sunfogenabled)
|
||||
{
|
||||
setexpfog(level.fognearplane,level.fogexphalfplane,level.fogcolor[0],level.fogcolor[1],level.fogcolor[2],level.fogmaxopacity,0,level.sunfogcolor[0],level.sunfogcolor[1],level.sunfogcolor[2],level.sunfogdir,level.sunfogbeginfadeangle,level.sunfogendfadeangle,level.sunfogscale);
|
||||
return;
|
||||
}
|
||||
|
||||
setexpfog(level.fognearplane,level.fogexphalfplane,level.fogcolor[0],level.fogcolor[1],level.fogcolor[2],level.fogmaxopacity,0);
|
||||
return;
|
||||
}
|
||||
|
||||
setexpfog(1215752192,1215752193,0,0,0,0,0);
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
artfxprintlnfog()
|
||||
{
|
||||
common_scripts\utility::fileprint_launcher("");
|
||||
common_scripts\utility::fileprint_launcher("\t//* Fog section * ");
|
||||
common_scripts\utility::fileprint_launcher("");
|
||||
common_scripts\utility::fileprint_launcher("\tsetDevDvar( \"scr_fog_disable\", \" + getdvarint("scr_fog_disable") + "\" + " );");
|
||||
common_scripts\utility::fileprint_launcher("");
|
||||
if(!getdvarint("scr_fog_disable"))
|
||||
{
|
||||
if(level.sunfogenabled)
|
||||
{
|
||||
common_scripts\utility::fileprint_launcher("\tsetExpFog( " + level.fognearplane + ", " + level.fogexphalfplane + ", " + level.fogcolor[0] + ", " + level.fogcolor[1] + ", " + level.fogcolor[2] + ", " + level.fogmaxopacity + ", 0, " + level.sunfogcolor[0] + ", " + level.sunfogcolor[1] + ", " + level.sunfogcolor[2] + ", (" + level.sunfogdir[0] + ", " + level.sunfogdir[1] + ", " + level.sunfogdir[2] + "), " + level.sunfogbeginfadeangle + ", " + level.sunfogendfadeangle + ", " + level.sunfogscale + " );");
|
||||
return;
|
||||
}
|
||||
|
||||
common_scripts\utility::fileprint_launcher("\tsetExpFog( " + level.fognearplane + ", " + level.fogexphalfplane + ", " + level.fogcolor[0] + ", " + level.fogcolor[1] + ", " + level.fogcolor[2] + ", " + level.fogmaxopacity + ", 0 );");
|
||||
}
|
||||
}
|
1939
MW3/PC/MP/common_scripts/_createfx.gsc
Normal file
1939
MW3/PC/MP/common_scripts/_createfx.gsc
Normal file
File diff suppressed because it is too large
Load Diff
634
MW3/PC/MP/common_scripts/_createfxmenu.gsc
Normal file
634
MW3/PC/MP/common_scripts/_createfxmenu.gsc
Normal file
@ -0,0 +1,634 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: common_scripts\_createfxmenu.gsc
|
||||
* Game: Call of Duty: Modern Warfare 3
|
||||
* Platform: PC
|
||||
* Function Count: 25
|
||||
* Decompile Time: 423 ms
|
||||
* Timestamp: 10/27/2023 2:15:42 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
menu(param_00)
|
||||
{
|
||||
return level.create_fx_menu == param_00;
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
setmenu(param_00)
|
||||
{
|
||||
level.create_fx_menu = param_00;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
create_fx_menu()
|
||||
{
|
||||
if(common_scripts\_createfx::button_is_clicked("escape","x"))
|
||||
{
|
||||
_exit_menu();
|
||||
return;
|
||||
}
|
||||
|
||||
if(menu("creation"))
|
||||
{
|
||||
if(common_scripts\_createfx::button_is_clicked("1"))
|
||||
{
|
||||
setmenu("create_oneshot");
|
||||
draw_effects_list();
|
||||
return;
|
||||
}
|
||||
|
||||
if(common_scripts\_createfx::button_is_clicked("2"))
|
||||
{
|
||||
setmenu("create_loopfx");
|
||||
draw_effects_list();
|
||||
return;
|
||||
}
|
||||
|
||||
if(common_scripts\_createfx::button_is_clicked("3"))
|
||||
{
|
||||
setmenu("create_loopsound");
|
||||
var_00 = common_scripts\_createfx::createloopsound();
|
||||
finish_creating_entity(var_00);
|
||||
return;
|
||||
}
|
||||
|
||||
if(common_scripts\_createfx::button_is_clicked("4"))
|
||||
{
|
||||
setmenu("create_exploder");
|
||||
var_00 = common_scripts\_createfx::createnewexploder();
|
||||
finish_creating_entity(var_00);
|
||||
return;
|
||||
}
|
||||
|
||||
if(common_scripts\_createfx::button_is_clicked("5"))
|
||||
{
|
||||
setmenu("create_interval_sound");
|
||||
var_00 = common_scripts\_createfx::createintervalsound();
|
||||
finish_creating_entity(var_00);
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(menu("create_oneshot") || menu("create_loopfx") || menu("change_fxid"))
|
||||
{
|
||||
if(common_scripts\_createfx::button_is_clicked("m"))
|
||||
{
|
||||
increment_list_offset();
|
||||
draw_effects_list();
|
||||
}
|
||||
|
||||
menu_fx_creation();
|
||||
return;
|
||||
}
|
||||
|
||||
if(menu("none"))
|
||||
{
|
||||
if(common_scripts\_createfx::button_is_clicked("m"))
|
||||
{
|
||||
increment_list_offset();
|
||||
}
|
||||
|
||||
menu_change_selected_fx();
|
||||
if(entities_are_selected())
|
||||
{
|
||||
var_01 = get_last_selected_entity();
|
||||
if(!isdefined(level.var_818) || var_01 != level.var_818)
|
||||
{
|
||||
display_fx_info(var_01);
|
||||
level.var_818 = var_01;
|
||||
}
|
||||
|
||||
if(common_scripts\_createfx::button_is_clicked("a"))
|
||||
{
|
||||
common_scripts\_createfx::reset_fx_hud_colors();
|
||||
setmenu("add_options");
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(menu("add_options"))
|
||||
{
|
||||
if(!entities_are_selected())
|
||||
{
|
||||
common_scripts\_createfx::clear_fx_hudelements();
|
||||
setmenu("none");
|
||||
return;
|
||||
}
|
||||
|
||||
display_fx_add_options(get_last_selected_entity());
|
||||
if(common_scripts\_createfx::button_is_clicked("m"))
|
||||
{
|
||||
increment_list_offset();
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
_exit_menu()
|
||||
{
|
||||
common_scripts\_createfx::clear_fx_hudelements();
|
||||
common_scripts\_createfx::clear_entity_selection();
|
||||
common_scripts\_createfx::update_selected_entities();
|
||||
setmenu("none");
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
get_last_selected_entity()
|
||||
{
|
||||
return level.var_81F[level.var_81F.size - 1];
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
menu_fx_creation()
|
||||
{
|
||||
var_00 = 0;
|
||||
var_01 = undefined;
|
||||
var_02 = common_scripts\_createfx::func_get_level_fx();
|
||||
for(var_03 = level.var_822;var_03 < var_02.size;var_03++)
|
||||
{
|
||||
var_00 = var_00 + 1;
|
||||
var_04 = var_00;
|
||||
if(var_04 == 10)
|
||||
{
|
||||
var_04 = 0;
|
||||
}
|
||||
|
||||
if(common_scripts\_createfx::button_is_clicked(var_04 + ""))
|
||||
{
|
||||
var_01 = var_02[var_03];
|
||||
break;
|
||||
}
|
||||
|
||||
if(var_00 > level.var_823)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!isdefined(var_01))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(menu("change_fxid"))
|
||||
{
|
||||
apply_option_to_selected_fx(get_option("fxid"),var_01);
|
||||
level.var_822 = 0;
|
||||
common_scripts\_createfx::clear_fx_hudelements();
|
||||
setmenu("none");
|
||||
return;
|
||||
}
|
||||
|
||||
var_05 = undefined;
|
||||
if(menu("create_loopfx"))
|
||||
{
|
||||
var_05 = common_scripts\utility::createloopeffect(var_01);
|
||||
}
|
||||
|
||||
if(menu("create_oneshot"))
|
||||
{
|
||||
var_05 = common_scripts\utility::createoneshoteffect(var_01);
|
||||
}
|
||||
|
||||
finish_creating_entity(var_05);
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
finish_creating_entity(param_00)
|
||||
{
|
||||
param_00.v["angles"] = vectortoangles(param_00.v["origin"] + (0,0,100) - param_00.v["origin"]);
|
||||
param_00 common_scripts\_createfx::post_entity_creation_function();
|
||||
common_scripts\_createfx::clear_entity_selection();
|
||||
common_scripts\_createfx::select_last_entity();
|
||||
common_scripts\_createfx::move_selection_to_cursor();
|
||||
common_scripts\_createfx::update_selected_entities();
|
||||
setmenu("none");
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
menu_init()
|
||||
{
|
||||
level.var_82A = [];
|
||||
addoption("string","fxid","The FX","nil","fx");
|
||||
addoption("float","delay","Repeat rate/start delay",0.5,"fx");
|
||||
addoption("float","fire_range","Fire damage range",0,"fx");
|
||||
addoption("string","flag","Flag","nil","exploder");
|
||||
addoption("string","firefx","2nd FX id","nil","exploder");
|
||||
addoption("float","firefxdelay","2nd FX id repeat rate",0.5,"exploder");
|
||||
addoption("float","firefxtimeout","2nd FX timeout",5,"exploder");
|
||||
addoption("string","firefxsound","2nd FX soundalias","nil","exploder");
|
||||
addoption("float","damage","Radius damage",150,"exploder");
|
||||
addoption("float","damage_radius","Radius of radius damage",250,"exploder");
|
||||
addoption("float","delay_min","Minimimum time between repeats",1,"soundfx_interval");
|
||||
addoption("float","delay_max","Maximum time between repeats",2,"soundfx_interval");
|
||||
addoption("int","repeat","Number of times to repeat",5,"exploder");
|
||||
addoption("string","exploder","Exploder","1","exploder");
|
||||
addoption("string","earthquake","Earthquake","nil","exploder");
|
||||
if(!level.mp_createfx)
|
||||
{
|
||||
addoption("string","rumble","Rumble","nil","exploder");
|
||||
}
|
||||
|
||||
addoption("string","ender","Level notify for ending 2nd FX","nil","exploder");
|
||||
addoption("string","soundalias","Soundalias","nil","all");
|
||||
addoption("string","loopsound","Loopsound","nil","exploder");
|
||||
if(!level.mp_createfx)
|
||||
{
|
||||
addoption("int","stoppable","Can be stopped from script","1","all");
|
||||
}
|
||||
|
||||
level.var_822 = 0;
|
||||
level.var_823 = 10;
|
||||
level.var_82C = [];
|
||||
level.var_82C["all"] = [];
|
||||
level.var_82C["all"]["exploder"] = 1;
|
||||
level.var_82C["all"]["oneshotfx"] = 1;
|
||||
level.var_82C["all"]["loopfx"] = 1;
|
||||
level.var_82C["all"]["soundfx"] = 1;
|
||||
level.var_82C["all"]["soundfx_interval"] = 1;
|
||||
level.var_82C["fx"] = [];
|
||||
level.var_82C["fx"]["exploder"] = 1;
|
||||
level.var_82C["fx"]["oneshotfx"] = 1;
|
||||
level.var_82C["fx"]["loopfx"] = 1;
|
||||
level.var_82C["exploder"] = [];
|
||||
level.var_82C["exploder"]["exploder"] = 1;
|
||||
level.var_82C["loopfx"] = [];
|
||||
level.var_82C["loopfx"]["loopfx"] = 1;
|
||||
level.var_82C["oneshotfx"] = [];
|
||||
level.var_82C["oneshotfx"]["oneshotfx"] = 1;
|
||||
level.var_82C["soundfx"] = [];
|
||||
level.var_82C["soundfx"]["soundalias"] = 1;
|
||||
level.var_82C["soundfx_interval"] = [];
|
||||
level.var_82C["soundfx_interval"]["soundfx_interval"] = 1;
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
get_last_selected_ent()
|
||||
{
|
||||
return level.var_81F[level.var_81F.size - 1];
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
entities_are_selected()
|
||||
{
|
||||
return level.var_81F.size > 0;
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
menu_change_selected_fx()
|
||||
{
|
||||
if(!level.var_81F.size)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var_00 = 0;
|
||||
var_01 = 0;
|
||||
var_02 = get_last_selected_ent();
|
||||
for(var_03 = 0;var_03 < level.var_82A.size;var_03++)
|
||||
{
|
||||
var_04 = level.var_82A[var_03];
|
||||
if(!isdefined(var_02.v[var_04["name"]]))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var_00++;
|
||||
if(var_00 < level.var_822)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var_01++;
|
||||
var_05 = var_01;
|
||||
if(var_05 == 10)
|
||||
{
|
||||
var_05 = 0;
|
||||
}
|
||||
|
||||
if(common_scripts\_createfx::button_is_clicked(var_05 + ""))
|
||||
{
|
||||
prepare_option_for_change(var_04,var_01);
|
||||
break;
|
||||
}
|
||||
|
||||
if(var_01 > level.var_823)
|
||||
{
|
||||
var_06 = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
prepare_option_for_change(param_00,param_01)
|
||||
{
|
||||
if(param_00["name"] == "fxid")
|
||||
{
|
||||
setmenu("change_fxid");
|
||||
draw_effects_list();
|
||||
return;
|
||||
}
|
||||
|
||||
common_scripts\_createfx::createfx_centerprint("To change " + param_00["description"] + " on selected entities, type /fx newvalue");
|
||||
level.var_832 = 1;
|
||||
set_option_index(param_00["name"]);
|
||||
setdvar("fx","nil");
|
||||
level.var_833[param_01 + 3][0].color = (1,1,0);
|
||||
}
|
||||
|
||||
//Function Number: 13
|
||||
menu_fx_option_set()
|
||||
{
|
||||
if(getdvar("fx") == "nil")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var_00 = get_selected_option();
|
||||
var_01 = undefined;
|
||||
if(var_00["type"] == "string")
|
||||
{
|
||||
var_01 = getdvar("fx");
|
||||
}
|
||||
|
||||
if(var_00["type"] == "int")
|
||||
{
|
||||
var_01 = getdvarint("fx");
|
||||
}
|
||||
|
||||
if(var_00["type"] == "float")
|
||||
{
|
||||
var_01 = getdvarfloat("fx");
|
||||
}
|
||||
|
||||
apply_option_to_selected_fx(var_00,var_01);
|
||||
}
|
||||
|
||||
//Function Number: 14
|
||||
apply_option_to_selected_fx(param_00,param_01)
|
||||
{
|
||||
for(var_02 = 0;var_02 < level.var_81F.size;var_02++)
|
||||
{
|
||||
var_03 = level.var_81F[var_02];
|
||||
if(mask(param_00["mask"],var_03.v["type"]))
|
||||
{
|
||||
var_03.v[param_00["name"]] = param_01;
|
||||
}
|
||||
}
|
||||
|
||||
level.var_818 = undefined;
|
||||
common_scripts\_createfx::update_selected_entities();
|
||||
common_scripts\_createfx::reset_fx_hud_colors();
|
||||
}
|
||||
|
||||
//Function Number: 15
|
||||
set_option_index(param_00)
|
||||
{
|
||||
for(var_01 = 0;var_01 < level.var_82A.size;var_01++)
|
||||
{
|
||||
if(level.var_82A[var_01]["name"] != param_00)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
level.var_837 = var_01;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 16
|
||||
get_selected_option()
|
||||
{
|
||||
return level.var_82A[level.var_837];
|
||||
}
|
||||
|
||||
//Function Number: 17
|
||||
mask(param_00,param_01)
|
||||
{
|
||||
return isdefined(level.var_82C[param_00][param_01]);
|
||||
}
|
||||
|
||||
//Function Number: 18
|
||||
addoption(param_00,param_01,param_02,param_03,param_04)
|
||||
{
|
||||
var_05 = [];
|
||||
level.var_82A[level.var_82A.size] = var_7B;
|
||||
}
|
||||
|
||||
//Function Number: 19
|
||||
get_option(param_00)
|
||||
{
|
||||
for(var_01 = 0;var_01 < level.var_82A.size;var_01++)
|
||||
{
|
||||
if(level.var_82A[var_01]["name"] == param_00)
|
||||
{
|
||||
return level.var_82A[var_01];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 20
|
||||
display_fx_info(param_00)
|
||||
{
|
||||
if(!menu("none"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
common_scripts\_createfx::clear_fx_hudelements();
|
||||
common_scripts\_createfx::set_fx_hudelement("Name: " + param_00.v["fxid"]);
|
||||
common_scripts\_createfx::set_fx_hudelement("Type: " + param_00.v["type"]);
|
||||
common_scripts\_createfx::set_fx_hudelement("Origin: " + param_00.v["origin"]);
|
||||
common_scripts\_createfx::set_fx_hudelement("Angles: " + param_00.v["angles"]);
|
||||
if(entities_are_selected())
|
||||
{
|
||||
var_01 = 0;
|
||||
var_02 = 0;
|
||||
var_03 = 0;
|
||||
for(var_04 = 0;var_04 < level.var_82A.size;var_04++)
|
||||
{
|
||||
var_05 = level.var_82A[var_04];
|
||||
if(!isdefined(param_00.v[var_05["name"]]))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var_01++;
|
||||
if(var_01 < level.var_822)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var_02++;
|
||||
common_scripts\_createfx::set_fx_hudelement(var_02 + ". " + var_05["description"] + ": " + param_00.v[var_05["name"]]);
|
||||
if(var_02 > level.var_823)
|
||||
{
|
||||
var_03 = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(var_01 > level.var_823)
|
||||
{
|
||||
common_scripts\_createfx::set_fx_hudelement("(m) More >");
|
||||
}
|
||||
|
||||
common_scripts\_createfx::set_fx_hudelement("(a) Add >");
|
||||
common_scripts\_createfx::set_fx_hudelement("(x) Exit >");
|
||||
return;
|
||||
}
|
||||
|
||||
var_01 = 0;
|
||||
var_03 = 0;
|
||||
for(var_04 = 0;var_04 < level.var_82A.size;var_04++)
|
||||
{
|
||||
var_05 = level.var_82A[var_04];
|
||||
if(!isdefined(param_00.v[var_05["name"]]))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var_01++;
|
||||
common_scripts\_createfx::set_fx_hudelement(var_05["description"] + ": " + param_00.v[var_05["name"]]);
|
||||
if(var_01 > level.var_83E)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 21
|
||||
display_fx_add_options(param_00)
|
||||
{
|
||||
common_scripts\_createfx::clear_fx_hudelements();
|
||||
common_scripts\_createfx::set_fx_hudelement("Name: " + param_00.v["fxid"]);
|
||||
common_scripts\_createfx::set_fx_hudelement("Type: " + param_00.v["type"]);
|
||||
common_scripts\_createfx::set_fx_hudelement("Origin: " + param_00.v["origin"]);
|
||||
common_scripts\_createfx::set_fx_hudelement("Angles: " + param_00.v["angles"]);
|
||||
var_01 = 0;
|
||||
var_02 = 0;
|
||||
var_03 = 0;
|
||||
if(level.var_822 >= level.var_82A.size)
|
||||
{
|
||||
level.var_822 = 0;
|
||||
}
|
||||
|
||||
for(var_04 = 0;var_04 < level.var_82A.size;var_04++)
|
||||
{
|
||||
var_05 = level.var_82A[var_04];
|
||||
if(isdefined(param_00.v[var_05["name"]]))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!mask(var_05["mask"],param_00.v["type"]))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var_01++;
|
||||
if(var_01 < level.var_822)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var_02 >= level.var_823)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var_02++;
|
||||
var_06 = var_02;
|
||||
if(var_06 == 10)
|
||||
{
|
||||
var_06 = 0;
|
||||
}
|
||||
|
||||
if(common_scripts\_createfx::button_is_clicked(var_06 + ""))
|
||||
{
|
||||
add_option_to_selected_entities(var_05);
|
||||
menunone();
|
||||
level.var_818 = undefined;
|
||||
return;
|
||||
}
|
||||
|
||||
common_scripts\_createfx::set_fx_hudelement(var_06 + ". " + var_05["description"]);
|
||||
}
|
||||
|
||||
if(var_01 > level.var_823)
|
||||
{
|
||||
common_scripts\_createfx::set_fx_hudelement("(m) More >");
|
||||
}
|
||||
|
||||
common_scripts\_createfx::set_fx_hudelement("(x) Exit >");
|
||||
}
|
||||
|
||||
//Function Number: 22
|
||||
add_option_to_selected_entities(param_00)
|
||||
{
|
||||
var_01 = undefined;
|
||||
for(var_02 = 0;var_02 < level.var_81F.size;var_02++)
|
||||
{
|
||||
var_03 = level.var_81F[var_02];
|
||||
if(mask(param_00["mask"],var_03.v["type"]))
|
||||
{
|
||||
var_03.v[param_00["name"]] = param_00["default"];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 23
|
||||
menunone()
|
||||
{
|
||||
level.var_822 = 0;
|
||||
common_scripts\_createfx::clear_fx_hudelements();
|
||||
setmenu("none");
|
||||
}
|
||||
|
||||
//Function Number: 24
|
||||
draw_effects_list()
|
||||
{
|
||||
common_scripts\_createfx::clear_fx_hudelements();
|
||||
common_scripts\_createfx::set_fx_hudelement("Pick an effect:");
|
||||
var_00 = 0;
|
||||
var_01 = 0;
|
||||
var_02 = common_scripts\_createfx::func_get_level_fx();
|
||||
if(level.var_822 >= var_02.size)
|
||||
{
|
||||
level.var_822 = 0;
|
||||
}
|
||||
|
||||
for(var_03 = level.var_822;var_03 < var_02.size;var_03++)
|
||||
{
|
||||
var_00 = var_00 + 1;
|
||||
common_scripts\_createfx::set_fx_hudelement(var_00 + ". " + var_02[var_03]);
|
||||
if(var_00 >= level.var_823)
|
||||
{
|
||||
var_01 = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(var_02.size > level.var_823)
|
||||
{
|
||||
common_scripts\_createfx::set_fx_hudelement("(m) More >");
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 25
|
||||
increment_list_offset()
|
||||
{
|
||||
level.var_822 = level.var_822 + level.var_823;
|
||||
}
|
3187
MW3/PC/MP/common_scripts/_destructible.gsc
Normal file
3187
MW3/PC/MP/common_scripts/_destructible.gsc
Normal file
File diff suppressed because it is too large
Load Diff
6201
MW3/PC/MP/common_scripts/_destructible_types.gsc
Normal file
6201
MW3/PC/MP/common_scripts/_destructible_types.gsc
Normal file
File diff suppressed because it is too large
Load Diff
1488
MW3/PC/MP/common_scripts/_dynamic_world.gsc
Normal file
1488
MW3/PC/MP/common_scripts/_dynamic_world.gsc
Normal file
File diff suppressed because it is too large
Load Diff
1107
MW3/PC/MP/common_scripts/_elevator.gsc
Normal file
1107
MW3/PC/MP/common_scripts/_elevator.gsc
Normal file
File diff suppressed because it is too large
Load Diff
595
MW3/PC/MP/common_scripts/_fx.gsc
Normal file
595
MW3/PC/MP/common_scripts/_fx.gsc
Normal file
@ -0,0 +1,595 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: common_scripts\_fx.gsc
|
||||
* Game: Call of Duty: Modern Warfare 3
|
||||
* Platform: PC
|
||||
* Function Count: 28
|
||||
* Decompile Time: 449 ms
|
||||
* Timestamp: 10/27/2023 2:15:48 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
initfx()
|
||||
{
|
||||
if(!isdefined(level.func))
|
||||
{
|
||||
level.func = [];
|
||||
}
|
||||
|
||||
if(!isdefined(level.func["create_triggerfx"]))
|
||||
{
|
||||
level.func["create_triggerfx"] = ::create_triggerfx;
|
||||
}
|
||||
|
||||
common_scripts\utility::create_lock("createfx_looper",20);
|
||||
level.var_7CD = ::common_scripts\utility::exploder_before_load;
|
||||
waittillframeend;
|
||||
waittillframeend;
|
||||
level.var_7CD = ::common_scripts\utility::exploder_after_load;
|
||||
level.var_7CF = 0;
|
||||
if(getdvarint("serverCulledSounds") == 1)
|
||||
{
|
||||
level.var_7CF = 1;
|
||||
}
|
||||
|
||||
if(level.createfx_enabled)
|
||||
{
|
||||
level.var_7CF = 0;
|
||||
}
|
||||
|
||||
if(level.createfx_enabled)
|
||||
{
|
||||
level waittill("createfx_common_done");
|
||||
}
|
||||
|
||||
if(isdefined(level.var_3FF))
|
||||
{
|
||||
wait level.var_3FF;
|
||||
}
|
||||
|
||||
for(var_00 = 0;var_00 < level.createfxent.size;var_00++)
|
||||
{
|
||||
var_01 = level.createfxent[var_00];
|
||||
var_01 common_scripts\_createfx::set_forward_and_up_vectors();
|
||||
if(var_01.v["type"] == "loopfx")
|
||||
{
|
||||
var_01 thread loopfxthread();
|
||||
}
|
||||
|
||||
if(var_01.v["type"] == "oneshotfx")
|
||||
{
|
||||
var_01 thread oneshotfxthread();
|
||||
}
|
||||
|
||||
if(var_01.v["type"] == "soundfx")
|
||||
{
|
||||
var_01 thread create_loopsound();
|
||||
}
|
||||
|
||||
if(var_01.v["type"] == "soundfx_interval")
|
||||
{
|
||||
var_01 thread create_interval_sound();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
print_org(param_00,param_01,param_02,param_03)
|
||||
{
|
||||
if(getdvar("debug") == "1")
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
oneshotfx(param_00,param_01,param_02,param_03)
|
||||
{
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
exploderfx(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B,param_0C,param_0D,param_0E,param_0F,param_10,param_11)
|
||||
{
|
||||
if(1)
|
||||
{
|
||||
var_12 = common_scripts\utility::createexploder(param_01);
|
||||
var_12.v["origin"] = param_02;
|
||||
var_12.v["angles"] = (0,0,0);
|
||||
if(isdefined(param_04))
|
||||
{
|
||||
var_12.v["angles"] = vectortoangles(param_04 - param_02);
|
||||
}
|
||||
|
||||
var_12.v["delay"] = param_03;
|
||||
var_12.v["exploder"] = param_00;
|
||||
if(isdefined(level.createfxexploders))
|
||||
{
|
||||
var_13 = level.createfxexploders[var_12.v["exploder"]];
|
||||
if(!isdefined(var_13))
|
||||
{
|
||||
var_13 = [];
|
||||
}
|
||||
|
||||
level.createfxexploders[var_13.v["exploder"]] = var_7B;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var_14 = spawn("script_origin",(0,0,0));
|
||||
var_14.origin = param_04;
|
||||
var_14.angles = vectortoangles(param_06 - param_04);
|
||||
var_14.script_exploder = param_02;
|
||||
var_14.script_fxid = param_03;
|
||||
var_14.script_delay = param_05;
|
||||
var_14.script_firefx = param_07;
|
||||
var_14.script_firefxdelay = param_08;
|
||||
var_14.script_firefxsound = param_09;
|
||||
var_14.script_sound = param_0A;
|
||||
var_14.script_earthquake = param_0B;
|
||||
var_14.script_damage = param_0C;
|
||||
var_14.script_radius = param_11;
|
||||
var_14.script_soundalias = param_0D;
|
||||
var_14.script_firefxtimeout = var_12;
|
||||
var_14.script_repeat = param_0E;
|
||||
var_14.script_delay_min = param_0F;
|
||||
var_14.var_7E6 = param_10;
|
||||
var_14.var_7E7 = var_13;
|
||||
var_15 = anglestoforward(var_14.angles);
|
||||
var_15 = var_15 * 150;
|
||||
var_14.targetpos = param_04 + var_15;
|
||||
if(!isdefined(level.var_7E9))
|
||||
{
|
||||
level.var_7E9 = [];
|
||||
}
|
||||
|
||||
level.var_7E9[level.var_7E9.size] = var_14;
|
||||
common_scripts\_createfx::createfx_showorigin(param_03,param_04,param_05,param_06,"exploderfx",var_14,undefined,param_07,param_08,param_09,param_0A,param_0B,param_0C,param_0D,param_0E,param_0F,param_10,param_11,var_12);
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
loopfx(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
|
||||
{
|
||||
var_07 = common_scripts\utility::createloopeffect(param_00);
|
||||
var_07.v["origin"] = param_01;
|
||||
var_07.v["angles"] = (0,0,0);
|
||||
if(isdefined(param_03))
|
||||
{
|
||||
var_07.v["angles"] = vectortoangles(param_03 - param_01);
|
||||
}
|
||||
|
||||
var_07.v["delay"] = param_02;
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
create_looper()
|
||||
{
|
||||
self.looper = playloopedfx(level._effect[self.v["fxid"]],self.v["delay"],self.v["origin"],0,self.v["forward"],self.v["up"]);
|
||||
create_loopsound();
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
create_loopsound()
|
||||
{
|
||||
self notify("stop_loop");
|
||||
if(isdefined(self.v["soundalias"]) && self.v["soundalias"] != "nil")
|
||||
{
|
||||
if(isdefined(self.v["stopable"]) && self.v["stopable"])
|
||||
{
|
||||
if(isdefined(self.looper))
|
||||
{
|
||||
self.looper thread common_scripts\utility::loop_fx_sound(self.v["soundalias"],self.v["origin"],0,"death");
|
||||
return;
|
||||
}
|
||||
|
||||
thread common_scripts\utility::loop_fx_sound(self.v["soundalias"],self.v["origin"],0,"stop_loop");
|
||||
return;
|
||||
}
|
||||
|
||||
if(isdefined(self.looper))
|
||||
{
|
||||
self.looper thread common_scripts\utility::loop_fx_sound(self.v["soundalias"],self.v["origin"],0);
|
||||
return;
|
||||
}
|
||||
|
||||
var_00 = 0;
|
||||
if(level.var_7CF == 1 && isdefined(self.v["server_culled"]))
|
||||
{
|
||||
var_00 = self.v["server_culled"];
|
||||
}
|
||||
|
||||
thread common_scripts\utility::loop_fx_sound(self.v["soundalias"],self.v["origin"],var_00);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
create_interval_sound()
|
||||
{
|
||||
self notify("stop_loop");
|
||||
if(!isdefined(self.v["soundalias"]))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(self.v["soundalias"] == "nil")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var_00 = undefined;
|
||||
var_01 = self;
|
||||
if((isdefined(self.v["stopable"]) && self.v["stopable"]) || level.createfx_enabled)
|
||||
{
|
||||
if(isdefined(self.looper))
|
||||
{
|
||||
var_01 = self.looper;
|
||||
var_00 = "death";
|
||||
}
|
||||
else
|
||||
{
|
||||
var_00 = "stop_loop";
|
||||
}
|
||||
}
|
||||
|
||||
var_01 thread common_scripts\utility::loop_fx_sound_interval(self.v["soundalias"],self.v["origin"],var_00,undefined,self.v["delay_min"],self.v["delay_max"]);
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
loopfxthread()
|
||||
{
|
||||
common_scripts\utility::waitframe();
|
||||
if(isdefined(self.var_7F6))
|
||||
{
|
||||
level waittill("start fx" + self.var_7F6);
|
||||
}
|
||||
|
||||
for(;;)
|
||||
{
|
||||
create_looper();
|
||||
if(isdefined(self.timeout))
|
||||
{
|
||||
thread loopfxstop(self.timeout);
|
||||
}
|
||||
|
||||
if(isdefined(self.var_7F8))
|
||||
{
|
||||
level waittill("stop fx" + self.var_7F8);
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(isdefined(self.looper))
|
||||
{
|
||||
self.looper delete();
|
||||
}
|
||||
|
||||
if(isdefined(self.var_7F6))
|
||||
{
|
||||
level waittill("start fx" + self.var_7F6);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
loopfxchangeid(param_00)
|
||||
{
|
||||
self endon("death");
|
||||
param_00 waittill("effect id changed",var_01);
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
loopfxchangeorg(param_00)
|
||||
{
|
||||
self endon("death");
|
||||
for(;;)
|
||||
{
|
||||
param_00 waittill("effect org changed",var_01);
|
||||
self.origin = var_01;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
loopfxchangedelay(param_00)
|
||||
{
|
||||
self endon("death");
|
||||
param_00 waittill("effect delay changed",var_01);
|
||||
}
|
||||
|
||||
//Function Number: 13
|
||||
loopfxdeletion(param_00)
|
||||
{
|
||||
self endon("death");
|
||||
param_00 waittill("effect deleted");
|
||||
self delete();
|
||||
}
|
||||
|
||||
//Function Number: 14
|
||||
loopfxstop(param_00)
|
||||
{
|
||||
self endon("death");
|
||||
wait param_00;
|
||||
self.looper delete();
|
||||
}
|
||||
|
||||
//Function Number: 15
|
||||
loopsound(param_00,param_01,param_02)
|
||||
{
|
||||
level thread loopsoundthread(param_00,param_01,param_02);
|
||||
}
|
||||
|
||||
//Function Number: 16
|
||||
loopsoundthread(param_00,param_01,param_02)
|
||||
{
|
||||
var_03 = spawn("script_origin",param_01);
|
||||
var_03.origin = param_01;
|
||||
var_03 playloopsound(param_00);
|
||||
}
|
||||
|
||||
//Function Number: 17
|
||||
gunfireloopfx(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
||||
{
|
||||
thread gunfireloopfxthread(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07);
|
||||
}
|
||||
|
||||
//Function Number: 18
|
||||
gunfireloopfxthread(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
||||
{
|
||||
level endon("stop all gunfireloopfx");
|
||||
common_scripts\utility::waitframe();
|
||||
if(param_07 < param_06)
|
||||
{
|
||||
var_08 = param_07;
|
||||
param_07 = param_06;
|
||||
param_06 = var_08;
|
||||
}
|
||||
|
||||
var_09 = param_06;
|
||||
var_0A = param_07 - param_06;
|
||||
if(param_05 < param_04)
|
||||
{
|
||||
var_08 = param_05;
|
||||
param_05 = param_04;
|
||||
param_04 = var_08;
|
||||
}
|
||||
|
||||
var_0B = param_04;
|
||||
var_0C = param_05 - param_04;
|
||||
if(param_03 < param_02)
|
||||
{
|
||||
var_08 = param_03;
|
||||
param_03 = param_02;
|
||||
param_02 = var_08;
|
||||
}
|
||||
|
||||
var_0D = param_02;
|
||||
var_0E = param_03 - param_02;
|
||||
var_0F = spawnfx(level._effect[param_00],param_01);
|
||||
if(!level.createfx_enabled)
|
||||
{
|
||||
var_0F willneverchange();
|
||||
}
|
||||
|
||||
for(;;)
|
||||
{
|
||||
var_10 = var_0D + randomint(var_0E);
|
||||
for(var_11 = 0;var_11 < var_10;var_11++)
|
||||
{
|
||||
triggerfx(var_0F);
|
||||
wait var_0B + randomfloat(var_0C);
|
||||
}
|
||||
|
||||
wait var_09 + randomfloat(var_0A);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 19
|
||||
gunfireloopfxvec(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
thread gunfireloopfxvecthread(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
||||
|
||||
//Function Number: 20
|
||||
gunfireloopfxvecthread(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
level endon("stop all gunfireloopfx");
|
||||
common_scripts\utility::waitframe();
|
||||
if(param_08 < param_07)
|
||||
{
|
||||
var_09 = param_08;
|
||||
param_08 = param_07;
|
||||
param_07 = var_09;
|
||||
}
|
||||
|
||||
var_0A = param_07;
|
||||
var_0B = param_08 - param_07;
|
||||
if(param_06 < param_05)
|
||||
{
|
||||
var_09 = param_06;
|
||||
param_06 = param_05;
|
||||
param_05 = var_09;
|
||||
}
|
||||
|
||||
var_0C = param_05;
|
||||
var_0D = param_06 - param_05;
|
||||
if(param_04 < param_03)
|
||||
{
|
||||
var_09 = param_04;
|
||||
param_04 = param_03;
|
||||
param_03 = var_09;
|
||||
}
|
||||
|
||||
var_0E = param_03;
|
||||
var_0F = param_04 - param_03;
|
||||
param_02 = vectornormalize(param_02 - param_01);
|
||||
var_10 = spawnfx(level._effect[param_00],param_01,param_02);
|
||||
if(!level.createfx_enabled)
|
||||
{
|
||||
var_10 willneverchange();
|
||||
}
|
||||
|
||||
for(;;)
|
||||
{
|
||||
var_11 = var_0E + randomint(var_0F);
|
||||
for(var_12 = 0;var_12 < int(var_11 / level.fxfireloopmod);var_12++)
|
||||
{
|
||||
triggerfx(var_10);
|
||||
var_13 = var_0C + randomfloat(var_0D) * level.fxfireloopmod;
|
||||
if(var_13 < 0.05)
|
||||
{
|
||||
var_13 = 0.05;
|
||||
}
|
||||
|
||||
wait var_13;
|
||||
}
|
||||
|
||||
wait var_0C + randomfloat(var_0D);
|
||||
wait var_0A + randomfloat(var_0B);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 21
|
||||
setfireloopmod(param_00)
|
||||
{
|
||||
level.fxfireloopmod = 1 / param_00;
|
||||
}
|
||||
|
||||
//Function Number: 22
|
||||
setup_fx()
|
||||
{
|
||||
if(!isdefined(self.script_fxid) || !isdefined(self.script_fxcommand) || !isdefined(self.script_delay))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(isdefined(self.model))
|
||||
{
|
||||
if(self.model == "toilet")
|
||||
{
|
||||
thread burnville_paratrooper_hack();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var_00 = undefined;
|
||||
if(isdefined(self.target))
|
||||
{
|
||||
var_01 = getent(self.target,"targetname");
|
||||
if(isdefined(var_01))
|
||||
{
|
||||
var_00 = var_01.origin;
|
||||
}
|
||||
}
|
||||
|
||||
var_02 = undefined;
|
||||
if(isdefined(self.var_808))
|
||||
{
|
||||
var_02 = self.var_808;
|
||||
}
|
||||
|
||||
var_03 = undefined;
|
||||
if(isdefined(self.var_809))
|
||||
{
|
||||
var_03 = self.var_809;
|
||||
}
|
||||
|
||||
if(self.script_fxcommand == "OneShotfx")
|
||||
{
|
||||
oneshotfx(self.script_fxid,self.origin,self.script_delay,var_00);
|
||||
}
|
||||
|
||||
if(self.script_fxcommand == "loopfx")
|
||||
{
|
||||
loopfx(self.script_fxid,self.origin,self.script_delay,var_00,var_02,var_03);
|
||||
}
|
||||
|
||||
if(self.script_fxcommand == "loopsound")
|
||||
{
|
||||
loopsound(self.script_fxid,self.origin,self.script_delay);
|
||||
}
|
||||
|
||||
self delete();
|
||||
}
|
||||
|
||||
//Function Number: 23
|
||||
burnville_paratrooper_hack()
|
||||
{
|
||||
var_00 = (0,0,self.angles[1]);
|
||||
var_01 = level._effect[self.script_fxid];
|
||||
var_02 = self.origin;
|
||||
wait 1;
|
||||
level thread burnville_paratrooper_hack_loop(var_00,var_02,var_01);
|
||||
self delete();
|
||||
}
|
||||
|
||||
//Function Number: 24
|
||||
burnville_paratrooper_hack_loop(param_00,param_01,param_02)
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
playfx(param_02,param_01);
|
||||
wait 30 + randomfloat(40);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 25
|
||||
create_triggerfx()
|
||||
{
|
||||
if(!verify_effects_assignment(self.v["fxid"]))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
self.looper = spawnfx(level._effect[self.v["fxid"]],self.v["origin"],self.v["forward"],self.v["up"]);
|
||||
triggerfx(self.looper,self.v["delay"]);
|
||||
if(!level.createfx_enabled)
|
||||
{
|
||||
self.looper willneverchange();
|
||||
}
|
||||
|
||||
create_loopsound();
|
||||
}
|
||||
|
||||
//Function Number: 26
|
||||
verify_effects_assignment(param_00)
|
||||
{
|
||||
if(isdefined(level._effect[param_00]))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(!isdefined(level.var_80E))
|
||||
{
|
||||
level.var_80E = [];
|
||||
}
|
||||
|
||||
level.var_80E[self.v["fxid"]] = param_00;
|
||||
verify_effects_assignment_print(param_00);
|
||||
return 0;
|
||||
}
|
||||
|
||||
//Function Number: 27
|
||||
verify_effects_assignment_print(param_00)
|
||||
{
|
||||
level notify("verify_effects_assignment_print");
|
||||
level endon("verify_effects_assignment_print");
|
||||
wait 0.05;
|
||||
var_01 = getarraykeys(level.var_80E);
|
||||
foreach(var_03 in var_01)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 28
|
||||
oneshotfxthread()
|
||||
{
|
||||
common_scripts\utility::waitframe();
|
||||
if(self.v["delay"] > 0)
|
||||
{
|
||||
wait self.v["delay"];
|
||||
}
|
||||
|
||||
[[ level.func["create_triggerfx"] ]]();
|
||||
}
|
290
MW3/PC/MP/common_scripts/_pipes.gsc
Normal file
290
MW3/PC/MP/common_scripts/_pipes.gsc
Normal file
@ -0,0 +1,290 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: common_scripts\_pipes.gsc
|
||||
* Game: Call of Duty: Modern Warfare 3
|
||||
* Platform: PC
|
||||
* Function Count: 12
|
||||
* Decompile Time: 198 ms
|
||||
* Timestamp: 10/27/2023 2:15:43 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
level.var_1D03 = 25;
|
||||
var_00 = getentarray("pipe_shootable","targetname");
|
||||
if(!var_00.size)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
level.var_1D04 = spawnstruct();
|
||||
level.var_1D04.var_1D05 = 0;
|
||||
var_00 thread precachefx();
|
||||
var_00 thread methodsinit();
|
||||
waittillframeend;
|
||||
common_scripts\utility::array_thread(var_00,::pipesetup);
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
pipesetup()
|
||||
{
|
||||
self setcandamage(1);
|
||||
self setcanradiusdamage(0);
|
||||
self.var_1D07 = [];
|
||||
var_00 = undefined;
|
||||
if(isdefined(self.target))
|
||||
{
|
||||
var_00 = common_scripts\utility::getstruct(self.target,"targetname");
|
||||
self.a = var_00.origin;
|
||||
var_01 = anglestoforward(var_00.angles);
|
||||
var_01 = var_01 * 128;
|
||||
self.b = self.a + var_01;
|
||||
}
|
||||
else
|
||||
{
|
||||
var_01 = anglestoforward(self.angles);
|
||||
var_02 = var_01 * 64;
|
||||
self.a = self.origin + var_02;
|
||||
var_02 = var_01 * -64;
|
||||
self.b = self.origin + var_02;
|
||||
}
|
||||
|
||||
thread pipe_wait_loop();
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
pipe_wait_loop()
|
||||
{
|
||||
var_00 = (0,0,0);
|
||||
var_01 = 0;
|
||||
var_02 = 4;
|
||||
for(;;)
|
||||
{
|
||||
self waittill("damage",var_03,var_04,var_05,var_00,var_06);
|
||||
if(var_01)
|
||||
{
|
||||
if(randomint(100) <= 33)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
var_01 = 1;
|
||||
var_07 = pipe_logic(var_05,var_00,var_06,var_04);
|
||||
if(var_07)
|
||||
{
|
||||
var_02--;
|
||||
}
|
||||
|
||||
if(var_02 <= 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
self setcandamage(0);
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
pipe_logic(param_00,param_01,param_02,param_03)
|
||||
{
|
||||
if(level.var_1D04.var_1D05 > 8)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(!isdefined(level.var_1D04.var_1D0B[param_02]))
|
||||
{
|
||||
param_01 = pipe_calc_nofx(param_01,param_02);
|
||||
}
|
||||
else
|
||||
{
|
||||
param_01 = self [[ level.var_1D04.var_1D0B[param_02] ]](param_01,param_02);
|
||||
}
|
||||
|
||||
if(!isdefined(param_01))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(isdefined(param_03.classname) && param_03.classname == "worldspawn")
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
foreach(var_05 in self.var_1D07)
|
||||
{
|
||||
if(distancesquared(param_01,var_05.origin) < 25)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
var_07 = vectorfromlinetopoint(self.a,self.b,param_01);
|
||||
thread pipefx(param_01,var_07,param_03);
|
||||
return 1;
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
pipefx(param_00,param_01,param_02)
|
||||
{
|
||||
var_03 = level.var_1D04.var_1D0D[self.script_noteworthy];
|
||||
var_04 = int(level.var_1D03 / var_03);
|
||||
var_05 = level.var_1D04.var_1D0E[self.script_noteworthy + "_hit"];
|
||||
var_06 = level.var_1D04.var_1D0E[self.script_noteworthy + "_loop"];
|
||||
var_07 = level.var_1D04.var_1D0E[self.script_noteworthy + "_end"];
|
||||
var_08 = spawn("script_origin",param_00);
|
||||
var_08 hide();
|
||||
var_08 playsound(var_05);
|
||||
var_08 playloopsound(var_06);
|
||||
self.var_1D07[self.var_1D07.size] = var_08;
|
||||
level.var_1D04.var_1D05++;
|
||||
if(common_scripts\utility::issp() || self.script_noteworthy != "steam")
|
||||
{
|
||||
thread pipe_damage(param_00,param_01,param_02,var_08);
|
||||
}
|
||||
|
||||
playfx(level.var_1D04._effect[self.script_noteworthy],param_00,param_01);
|
||||
wait var_03;
|
||||
var_04--;
|
||||
while(level.var_1D04.var_1D05 <= 8 && var_04 > 0)
|
||||
{
|
||||
playfx(level.var_1D04._effect[self.script_noteworthy],param_00,param_01);
|
||||
wait var_03;
|
||||
var_04--;
|
||||
}
|
||||
|
||||
var_08 playsound(var_07);
|
||||
wait 0.5;
|
||||
var_08 stoploopsound(var_06);
|
||||
var_08 delete();
|
||||
self.var_1D07 = common_scripts\utility::array_removeundefined(self.var_1D07);
|
||||
level.var_1D04.var_1D05--;
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
pipe_damage(param_00,param_01,param_02,param_03)
|
||||
{
|
||||
if(!allow_pipe_damage())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
param_03 endon("death");
|
||||
var_04 = param_03.origin + vectornormalize(param_01) * 40;
|
||||
var_05 = level.var_1D04.var_1D10[self.script_noteworthy];
|
||||
for(;;)
|
||||
{
|
||||
if(!isdefined(self.damageowner))
|
||||
{
|
||||
self radiusdamage(var_04,36,var_05,var_05 * 0.75,undefined,"MOD_TRIGGER_HURT");
|
||||
}
|
||||
else
|
||||
{
|
||||
self radiusdamage(var_04,36,var_05,var_05 * 0.75,param_02,"MOD_TRIGGER_HURT");
|
||||
}
|
||||
|
||||
wait 0.4;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
allow_pipe_damage()
|
||||
{
|
||||
if(!common_scripts\utility::issp())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(!isdefined(level.var_1D12))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return level.var_1D12;
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
methodsinit()
|
||||
{
|
||||
level.var_1D04.var_1D0B = [];
|
||||
level.var_1D04.var_1D0B["MOD_UNKNOWN"] = ::pipe_calc_splash;
|
||||
level.var_1D04.var_1D0B["MOD_PISTOL_BULLET"] = ::pipe_calc_ballistic;
|
||||
level.var_1D04.var_1D0B["MOD_RIFLE_BULLET"] = ::pipe_calc_ballistic;
|
||||
level.var_1D04.var_1D0B["MOD_GRENADE"] = ::pipe_calc_splash;
|
||||
level.var_1D04.var_1D0B["MOD_GRENADE_SPLASH"] = ::pipe_calc_splash;
|
||||
level.var_1D04.var_1D0B["MOD_PROJECTILE"] = ::pipe_calc_splash;
|
||||
level.var_1D04.var_1D0B["MOD_PROJECTILE_SPLASH"] = ::pipe_calc_splash;
|
||||
level.var_1D04.var_1D0B["MOD_TRIGGER_HURT"] = ::pipe_calc_splash;
|
||||
level.var_1D04.var_1D0B["MOD_EXPLOSIVE"] = ::pipe_calc_splash;
|
||||
level.var_1D04.var_1D0B["MOD_EXPLOSIVE_BULLET"] = ::pipe_calc_splash;
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
pipe_calc_ballistic(param_00,param_01)
|
||||
{
|
||||
return param_00;
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
pipe_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: 11
|
||||
pipe_calc_nofx(param_00,param_01)
|
||||
{
|
||||
return undefined;
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
precachefx()
|
||||
{
|
||||
var_00 = 0;
|
||||
var_01 = 0;
|
||||
foreach(var_03 in self)
|
||||
{
|
||||
if(var_03.script_noteworthy == "water")
|
||||
{
|
||||
var_03.script_noteworthy = "steam";
|
||||
}
|
||||
|
||||
if(var_03.script_noteworthy == "steam")
|
||||
{
|
||||
var_03 willneverchange();
|
||||
var_00 = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var_03.script_noteworthy == "fire")
|
||||
{
|
||||
var_03 willneverchange();
|
||||
var_01 = 1;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if(var_00)
|
||||
{
|
||||
level.var_1D04._effect["steam"] = loadfx("impacts/pipe_steam");
|
||||
level.var_1D04.var_1D0E["steam_hit"] = "mtl_steam_pipe_hit";
|
||||
level.var_1D04.var_1D0E["steam_loop"] = "mtl_steam_pipe_hiss_loop";
|
||||
level.var_1D04.var_1D0E["steam_end"] = "mtl_steam_pipe_hiss_loop_end";
|
||||
level.var_1D04.var_1D0D["steam"] = 3;
|
||||
level.var_1D04.var_1D10["steam"] = 5;
|
||||
}
|
||||
|
||||
if(var_01)
|
||||
{
|
||||
level.var_1D04._effect["fire"] = loadfx("impacts/pipe_fire");
|
||||
level.var_1D04.var_1D0E["fire_hit"] = "mtl_gas_pipe_hit";
|
||||
level.var_1D04.var_1D0E["fire_loop"] = "mtl_gas_pipe_flame_loop";
|
||||
level.var_1D04.var_1D0E["fire_end"] = "mtl_gas_pipe_flame_end";
|
||||
level.var_1D04.var_1D0D["fire"] = 3;
|
||||
level.var_1D04.var_1D10["fire"] = 5;
|
||||
}
|
||||
}
|
3053
MW3/PC/MP/common_scripts/utility.gsc
Normal file
3053
MW3/PC/MP/common_scripts/utility.gsc
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user