mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
220 lines
5.2 KiB
Plaintext
220 lines
5.2 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: maps\mp\_grappling_hook.gsc
|
|
* Game: Call of Duty: Advanced Warfare
|
|
* Platform: PC
|
|
* Function Count: 12
|
|
* Decompile Time: 211 ms
|
|
* Timestamp: 10/27/2023 1:45:42 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
init()
|
|
{
|
|
if(maps\mp\_utility::isgrapplinghookgamemode())
|
|
{
|
|
level thread grappling_hook_on_player_connect();
|
|
}
|
|
}
|
|
|
|
//Function Number: 2
|
|
grappling_hook_on_player_connect()
|
|
{
|
|
level endon("game_ended");
|
|
for(;;)
|
|
{
|
|
level waittill("connected",var_00);
|
|
var_00 thread grappling_hook_on_loadout_given();
|
|
}
|
|
}
|
|
|
|
//Function Number: 3
|
|
grappling_hook_on_loadout_given()
|
|
{
|
|
level endon("game_ended");
|
|
for(;;)
|
|
{
|
|
self waittill("applyLoadout");
|
|
if(!maps\mp\_utility::isjuggernaut())
|
|
{
|
|
give_grappling_hook();
|
|
thread grappling_hook_wait_for_death();
|
|
thread grappling_hook_wait_for_game_end();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 4
|
|
grappling_hook_wait_for_death()
|
|
{
|
|
level endon("game_ended");
|
|
self endon("disconnect");
|
|
common_scripts\utility::waittill_any("death","joined_team","faux_spawn","grappling_hook_reset","entering_juggernaut");
|
|
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(level.grapplinghookweapon,"ui_exo_battery_toggle",0);
|
|
}
|
|
|
|
//Function Number: 5
|
|
grappling_hook_wait_for_game_end()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("joined_team");
|
|
self endon("faux_spawn");
|
|
self endon("grappling_hook_reset");
|
|
self endon("grappling_hook_battery_hud_reset");
|
|
level waittill("game_ended");
|
|
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(level.grapplinghookweapon,"ui_exo_battery_toggle",0);
|
|
}
|
|
|
|
//Function Number: 6
|
|
give_grappling_hook()
|
|
{
|
|
var_00 = get_grappling_hook_weapon();
|
|
if(self hasweapon(var_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self settacticalweapon(var_00);
|
|
self giveweapon(var_00);
|
|
self notify("grappling_hook_reset");
|
|
var_01 = spawn("script_model",(0,0,0));
|
|
var_01 setentityowner(self);
|
|
var_01 setotherent(self);
|
|
self setgrapplinghooktarget(var_01);
|
|
thread common_scripts\utility::delete_on_death(var_01);
|
|
thread delete_on_reset(var_01);
|
|
var_02 = self batterygetsize(level.grapplinghookweapon);
|
|
self setclientomnvar("ui_exo_battery_level0",var_02);
|
|
self setclientomnvar("exo_ability_nrg_req0",batteryreqtouse(level.grapplinghookweapon));
|
|
self setclientomnvar("exo_ability_nrg_total0",var_02);
|
|
self setclientomnvar("ui_invalid_grapple",0);
|
|
thread wait_for_grappling_hook_pressed();
|
|
}
|
|
|
|
//Function Number: 7
|
|
wait_for_full_battery()
|
|
{
|
|
level endon("game_ended");
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("faux_spawn");
|
|
self endon("joined_team");
|
|
self endon("grappling_hook_reset");
|
|
self endon("grappling_hook_battery_hud_reset");
|
|
var_00 = self batterygetsize(level.grapplinghookweapon);
|
|
for(;;)
|
|
{
|
|
var_01 = self batterygetcharge(level.grapplinghookweapon);
|
|
if(var_01 >= var_00)
|
|
{
|
|
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(level.grapplinghookweapon,"ui_exo_battery_toggle",0);
|
|
return;
|
|
}
|
|
|
|
wait(0.1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 8
|
|
wait_for_grappling_hook_pressed()
|
|
{
|
|
level endon("game_ended");
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("faux_spawn");
|
|
self endon("joined_team");
|
|
self endon("grappling_hook_reset");
|
|
for(;;)
|
|
{
|
|
self waittill("exo_ability_activate",var_00,var_01);
|
|
if(var_00 == level.grapplinghookweapon && isdefined(var_01))
|
|
{
|
|
if(var_01 == 1)
|
|
{
|
|
self notify("grappling_hook_battery_hud_reset");
|
|
if(isdefined(self.last_grapple_time))
|
|
{
|
|
self.last_grapple_time_prev = self.last_grapple_time;
|
|
}
|
|
|
|
self.last_grapple_time = gettime();
|
|
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(level.grapplinghookweapon,"ui_exo_battery_toggle",1);
|
|
thread maps\mp\_exo_battery::update_exo_battery_hud(level.grapplinghookweapon);
|
|
thread wait_for_full_battery();
|
|
maps\mp\gametypes\_missions::processchallenge("ch_tier2_2_iw5_dlcgun12");
|
|
if(isdefined(self.lastdamagedtime) && isdefined(self.last_grapple_time))
|
|
{
|
|
if(self.last_grapple_time - self.lastdamagedtime < 1500)
|
|
{
|
|
maps\mp\gametypes\_missions::processchallenge("ch_tier2_5_iw5_dlcgun12");
|
|
}
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
if(var_01 == 0)
|
|
{
|
|
thread pulse_grapple_hud_message(2);
|
|
continue;
|
|
}
|
|
|
|
if(var_01 == -1)
|
|
{
|
|
thread pulse_grapple_hud_message(1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
pulse_grapple_hud_message(param_00)
|
|
{
|
|
level endon("game_ended");
|
|
self endon("disconnect");
|
|
self setclientomnvar("ui_invalid_grapple",param_00);
|
|
if(param_00 == 1)
|
|
{
|
|
self setclientomnvar("ui_border_warning_toggle",0);
|
|
wait(0.6);
|
|
}
|
|
else if(param_00 == 2)
|
|
{
|
|
wait(1);
|
|
}
|
|
|
|
self setclientomnvar("ui_invalid_grapple",0);
|
|
}
|
|
|
|
//Function Number: 10
|
|
take_grappling_hook()
|
|
{
|
|
var_00 = get_grappling_hook_weapon();
|
|
self settacticalweapon("none");
|
|
self takeweapon(var_00);
|
|
self notify("grappling_hook_reset");
|
|
}
|
|
|
|
//Function Number: 11
|
|
get_grappling_hook_weapon()
|
|
{
|
|
if(isdefined(level.grapplinghookweapon))
|
|
{
|
|
return level.grapplinghookweapon;
|
|
}
|
|
|
|
level.grapplinghookweapon = "iw5_dlcgun12loot7_mp";
|
|
return level.grapplinghookweapon;
|
|
}
|
|
|
|
//Function Number: 12
|
|
delete_on_reset(param_00)
|
|
{
|
|
param_00 endon("death");
|
|
self waittill("grappling_hook_reset");
|
|
if(isdefined(param_00))
|
|
{
|
|
param_00 delete();
|
|
}
|
|
} |