mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
340 lines
8.1 KiB
Plaintext
340 lines
8.1 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: _stealth_visibility_friendly.gsc
|
|
* Game: Call of Duty: Advanced Warfare
|
|
* Platform: PC
|
|
* Function Count: 17
|
|
* Decompile Time: 263 ms
|
|
* Timestamp: 4/22/2024 2:23:19 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
stealth_visibility_friendly_main()
|
|
{
|
|
friendly_init();
|
|
thread friendly_visibility_logic();
|
|
}
|
|
|
|
//Function Number: 2
|
|
friendly_visibility_logic()
|
|
{
|
|
self endon("death");
|
|
self endon("pain_death");
|
|
var_00 = self._stealth.logic.current_stance_func;
|
|
if(isplayer(self))
|
|
{
|
|
thread player_movespeed_calc_loop();
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
maps\_utility::ent_flag_wait("_stealth_enabled");
|
|
self [[ var_00 ]]();
|
|
self.maxvisibledist = friendly_compute_score();
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 3
|
|
friendly_getvelocity()
|
|
{
|
|
return length(self getvelocity());
|
|
}
|
|
|
|
//Function Number: 4
|
|
friendly_getinshadow()
|
|
{
|
|
return maps\_utility::ent_flag_exist("_stealth_in_shadow") && maps\_utility::ent_flag("_stealth_in_shadow");
|
|
}
|
|
|
|
//Function Number: 5
|
|
player_getvelocity_pc()
|
|
{
|
|
var_00 = length(self getvelocity());
|
|
var_01 = self._stealth.logic.stance;
|
|
var_02 = [];
|
|
var_02["stand"] = 30;
|
|
var_02["crouch"] = 15;
|
|
var_02["prone"] = 4;
|
|
var_03 = [];
|
|
var_03["stand"] = 40;
|
|
var_03["crouch"] = 25;
|
|
var_03["prone"] = 10;
|
|
if(!var_00)
|
|
{
|
|
self._stealth.logic.player_pc_velocity = 0;
|
|
}
|
|
else if(var_00 > self._stealth.logic.player_pc_velocity)
|
|
{
|
|
self._stealth.logic.player_pc_velocity = self._stealth.logic.player_pc_velocity + var_02[var_01];
|
|
if(self._stealth.logic.player_pc_velocity > var_00)
|
|
{
|
|
self._stealth.logic.player_pc_velocity = var_00;
|
|
}
|
|
}
|
|
else if(var_00 < self._stealth.logic.player_pc_velocity)
|
|
{
|
|
self._stealth.logic.player_pc_velocity = self._stealth.logic.player_pc_velocity - var_03[var_01];
|
|
if(self._stealth.logic.player_pc_velocity < 0)
|
|
{
|
|
self._stealth.logic.player_pc_velocity = 0;
|
|
}
|
|
}
|
|
|
|
return self._stealth.logic.player_pc_velocity;
|
|
}
|
|
|
|
//Function Number: 6
|
|
friendly_get_stance(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
if(isdefined(self._stealth))
|
|
{
|
|
param_00 = self._stealth.logic.stance;
|
|
}
|
|
else
|
|
{
|
|
param_00 = self.a.stance;
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_00) && param_00 == "back")
|
|
{
|
|
param_00 = "prone";
|
|
}
|
|
|
|
if(isdefined(self.type) && self.type == "dog")
|
|
{
|
|
if(isdefined(self.sprint) && self.sprint)
|
|
{
|
|
param_00 = "crouch";
|
|
}
|
|
else
|
|
{
|
|
param_00 = "prone";
|
|
}
|
|
}
|
|
|
|
return param_00;
|
|
}
|
|
|
|
//Function Number: 7
|
|
friendly_compute_score(param_00)
|
|
{
|
|
if(!isdefined(self._stealth))
|
|
{
|
|
return;
|
|
}
|
|
|
|
param_00 = friendly_get_stance(param_00);
|
|
var_01 = level._stealth.logic.detection_level;
|
|
var_02 = level._stealth.logic.detect_range[var_01][param_00];
|
|
if(self [[ self._stealth.logic.getinshadow_func ]]())
|
|
{
|
|
var_02 = var_02 * 0.5;
|
|
if(var_02 < level._stealth.logic.detect_range["hidden"]["prone"])
|
|
{
|
|
var_02 = level._stealth.logic.detect_range["hidden"]["prone"];
|
|
}
|
|
}
|
|
|
|
var_03 = self._stealth.logic.movespeed_multiplier[var_01][param_00];
|
|
if(isdefined(self._stealth_move_detection_cap) && var_03 > self._stealth_move_detection_cap)
|
|
{
|
|
var_03 = self._stealth_move_detection_cap;
|
|
}
|
|
|
|
return var_02 + var_03;
|
|
}
|
|
|
|
//Function Number: 8
|
|
friendly_getstance_ai()
|
|
{
|
|
return self.a.pose;
|
|
}
|
|
|
|
//Function Number: 9
|
|
friendly_getangles_ai()
|
|
{
|
|
return self.angles;
|
|
}
|
|
|
|
//Function Number: 10
|
|
friendly_compute_stances_ai()
|
|
{
|
|
self._stealth.logic.stance = self [[ self._stealth.logic.getstance_func ]]();
|
|
self._stealth.logic.oldstance = self._stealth.logic.stance;
|
|
}
|
|
|
|
//Function Number: 11
|
|
player_movespeed_calc_loop()
|
|
{
|
|
self endon("death");
|
|
self endon("pain_death");
|
|
var_00 = self._stealth.logic.getangles_func;
|
|
var_01 = self._stealth.logic.getvelocity_func;
|
|
var_02 = self [[ var_00 ]]();
|
|
for(;;)
|
|
{
|
|
maps\_utility::ent_flag_wait("_stealth_enabled");
|
|
var_03 = undefined;
|
|
if(self [[ self._stealth.logic.getinshadow_func ]]())
|
|
{
|
|
var_03 = 0;
|
|
}
|
|
else
|
|
{
|
|
var_03 = self [[ var_01 ]]();
|
|
}
|
|
|
|
foreach(var_09, var_05 in self._stealth.logic.movespeed_multiplier)
|
|
{
|
|
foreach(var_08, var_07 in var_05)
|
|
{
|
|
var_07 = var_03 * self._stealth.logic.movespeed_scale[var_09][var_08];
|
|
}
|
|
}
|
|
|
|
var_02 = self [[ var_00 ]]();
|
|
wait(0.1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
friendly_getstance_player()
|
|
{
|
|
return self getstance();
|
|
}
|
|
|
|
//Function Number: 13
|
|
friendly_getangles_player()
|
|
{
|
|
return self getplayerangles();
|
|
}
|
|
|
|
//Function Number: 14
|
|
friendly_compute_stances_player()
|
|
{
|
|
var_00 = self [[ self._stealth.logic.getstance_func ]]();
|
|
if(!self._stealth.logic.stance_change)
|
|
{
|
|
switch(var_00)
|
|
{
|
|
case "prone":
|
|
if(self._stealth.logic.oldstance != "prone")
|
|
{
|
|
self._stealth.logic.stance_change = self._stealth.logic.stance_change_time;
|
|
}
|
|
break;
|
|
|
|
case "crouch":
|
|
if(self._stealth.logic.oldstance == "stand")
|
|
{
|
|
self._stealth.logic.stance_change = self._stealth.logic.stance_change_time;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(self._stealth.logic.stance_change)
|
|
{
|
|
self._stealth.logic.stance = self._stealth.logic.oldstance;
|
|
if(self._stealth.logic.stance_change > 0.05)
|
|
{
|
|
self._stealth.logic.stance_change = self._stealth.logic.stance_change - 0.05;
|
|
return;
|
|
}
|
|
|
|
self._stealth.logic.stance_change = 0;
|
|
self._stealth.logic.stance = var_00;
|
|
self._stealth.logic.oldstance = var_00;
|
|
return;
|
|
}
|
|
|
|
self._stealth.logic.stance = var_00;
|
|
self._stealth.logic.oldstance = var_00;
|
|
}
|
|
|
|
//Function Number: 15
|
|
friendly_init()
|
|
{
|
|
maps\_utility::ent_flag_init("_stealth_in_shadow");
|
|
maps\_utility::ent_flag_init("_stealth_enabled");
|
|
maps\_utility::ent_flag_set("_stealth_enabled");
|
|
self._stealth = spawnstruct();
|
|
self._stealth.logic = spawnstruct();
|
|
if(isplayer(self))
|
|
{
|
|
self._stealth.logic.getstance_func = ::friendly_getstance_player;
|
|
self._stealth.logic.getangles_func = ::friendly_getangles_player;
|
|
if(level.console)
|
|
{
|
|
self._stealth.logic.getvelocity_func = ::friendly_getvelocity;
|
|
}
|
|
else
|
|
{
|
|
self._stealth.logic.getvelocity_func = ::player_getvelocity_pc;
|
|
self._stealth.logic.player_pc_velocity = 0;
|
|
}
|
|
|
|
self._stealth.logic.current_stance_func = ::friendly_compute_stances_player;
|
|
}
|
|
else
|
|
{
|
|
self._stealth.logic.getstance_func = ::friendly_getstance_ai;
|
|
self._stealth.logic.getangles_func = ::friendly_getangles_ai;
|
|
self._stealth.logic.getvelocity_func = ::friendly_getvelocity;
|
|
self._stealth.logic.current_stance_func = ::friendly_compute_stances_ai;
|
|
}
|
|
|
|
self._stealth.logic.getinshadow_func = ::friendly_getinshadow;
|
|
self._stealth.logic.stance_change_time = 0.2;
|
|
self._stealth.logic.stance_change = 0;
|
|
self._stealth.logic.oldstance = self [[ self._stealth.logic.getstance_func ]]();
|
|
self._stealth.logic.stance = self [[ self._stealth.logic.getstance_func ]]();
|
|
self._stealth.logic.spotted_list = [];
|
|
self._stealth.logic.movespeed_multiplier = [];
|
|
self._stealth.logic.movespeed_scale = [];
|
|
self._stealth.logic.movespeed_multiplier["hidden"] = [];
|
|
self._stealth.logic.movespeed_multiplier["hidden"]["prone"] = 0;
|
|
self._stealth.logic.movespeed_multiplier["hidden"]["crouch"] = 0;
|
|
self._stealth.logic.movespeed_multiplier["hidden"]["stand"] = 0;
|
|
self._stealth.logic.movespeed_multiplier["spotted"] = [];
|
|
self._stealth.logic.movespeed_multiplier["spotted"]["prone"] = 0;
|
|
self._stealth.logic.movespeed_multiplier["spotted"]["crouch"] = 0;
|
|
self._stealth.logic.movespeed_multiplier["spotted"]["stand"] = 0;
|
|
friendly_default_movespeed_scale();
|
|
}
|
|
|
|
//Function Number: 16
|
|
friendly_default_movespeed_scale()
|
|
{
|
|
var_00 = [];
|
|
var_00["prone"] = 3;
|
|
var_00["crouch"] = 2;
|
|
var_00["stand"] = 2;
|
|
var_01 = [];
|
|
var_01["prone"] = 2;
|
|
var_01["crouch"] = 2;
|
|
var_01["stand"] = 2;
|
|
friendly_set_movespeed_scale(var_00,var_01);
|
|
}
|
|
|
|
//Function Number: 17
|
|
friendly_set_movespeed_scale(param_00,param_01)
|
|
{
|
|
if(isdefined(param_00))
|
|
{
|
|
self._stealth.logic.movespeed_scale["hidden"]["prone"] = param_00["prone"];
|
|
self._stealth.logic.movespeed_scale["hidden"]["crouch"] = param_00["crouch"];
|
|
self._stealth.logic.movespeed_scale["hidden"]["stand"] = param_00["stand"];
|
|
}
|
|
|
|
if(isdefined(param_01))
|
|
{
|
|
self._stealth.logic.movespeed_scale["spotted"]["prone"] = param_01["prone"];
|
|
self._stealth.logic.movespeed_scale["spotted"]["crouch"] = param_01["crouch"];
|
|
self._stealth.logic.movespeed_scale["spotted"]["stand"] = param_01["stand"];
|
|
}
|
|
} |