mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-27 01:47:54 -05:00
403 lines
6.9 KiB
Plaintext
403 lines
6.9 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: maps\_vehicledrive.gsc
|
|
* Game: Call of Duty: Modern Warfare 3
|
|
* Platform: PC
|
|
* Function Count: 14
|
|
* Decompile Time: 194 ms
|
|
* Timestamp: 10/27/2023 2:20:30 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
main()
|
|
{
|
|
setdvarifuninitialized("debug_vehiclegod","off");
|
|
setdvarifuninitialized("debug_vehicleplayerhealth","off");
|
|
setdvarifuninitialized("player_vehicle_dismountable","off");
|
|
precacheshader("tank_shell");
|
|
level.playeronvehicle = 0;
|
|
}
|
|
|
|
//Function Number: 2
|
|
vehicle_wait(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 vehicle_exit();
|
|
}
|
|
|
|
if(param_00)
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 3
|
|
vehicle_exit()
|
|
{
|
|
level.playeronvehicle = 0;
|
|
level.playervehicle = level.playervehiclenone;
|
|
level notify("player exited vehicle");
|
|
if(isdefined(level.player.oldthreatbias))
|
|
{
|
|
level.player.threatbias = level.player.oldthreatbias;
|
|
level.player.oldthreatbias = undefined;
|
|
}
|
|
|
|
if(isdefined(level.vehiclehud))
|
|
{
|
|
level.vehiclehud destroy();
|
|
}
|
|
|
|
if(isdefined(level.vehiclehud2))
|
|
{
|
|
level.vehiclehud2 destroy();
|
|
}
|
|
|
|
if(isdefined(level.vehiclefireicon))
|
|
{
|
|
level.vehiclefireicon destroy();
|
|
}
|
|
}
|
|
|
|
//Function Number: 4
|
|
vehicle_enter()
|
|
{
|
|
level.playeronvehicle = 1;
|
|
level.playervehicle = self;
|
|
thread vehicle_ridehandle();
|
|
}
|
|
|
|
//Function Number: 5
|
|
setup_vehicle_tank()
|
|
{
|
|
vehicle_givehealth();
|
|
}
|
|
|
|
//Function Number: 6
|
|
setup_vehicle_other()
|
|
{
|
|
vehicle_givehealth();
|
|
}
|
|
|
|
//Function Number: 7
|
|
vehicle_givehealth()
|
|
{
|
|
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.healthbuffer))
|
|
{
|
|
self.health = self.health + self.healthbuffer;
|
|
self.currenthealth = self.health;
|
|
self.maxhealth = self.health;
|
|
}
|
|
}
|
|
|
|
//Function Number: 8
|
|
protect_player()
|
|
{
|
|
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 vehicle_kill_player_ondeath();
|
|
self.maximumhealth = 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 vehicle_damageset();
|
|
var_03 = gettime();
|
|
for(;;)
|
|
{
|
|
if(self.damaged)
|
|
{
|
|
if(getdvar("debug_vehicleplayerhealth") != "off")
|
|
{
|
|
iprintlnbold("playervehicles health: ",self.health - self.healthbuffer);
|
|
}
|
|
|
|
self.damaged = 0;
|
|
var_02 = gettime() + var_01;
|
|
}
|
|
|
|
var_04 = gettime();
|
|
if(self.health < self.maximumhealth && var_04 > var_02 && var_04 > var_03)
|
|
{
|
|
if(self.health + var_00 > self.maximumhealth)
|
|
{
|
|
self.health = self.maximumhealth;
|
|
}
|
|
else
|
|
{
|
|
self.health = self.health + var_00;
|
|
}
|
|
|
|
var_03 = gettime() + 250;
|
|
if(getdvar("debug_vehicleplayerhealth") != "off")
|
|
{
|
|
iprintlnbold("playervehicles health: ",self.health - self.healthbuffer);
|
|
}
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
vehicle_kill_player_ondeath()
|
|
{
|
|
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
|
|
vehicle_damageset()
|
|
{
|
|
self.damaged = 0;
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
self waittill("damage",var_00);
|
|
self.damaged = 1;
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
vehicle_reloadsound()
|
|
{
|
|
for(;;)
|
|
{
|
|
self waittill("turret_fire");
|
|
wait 0.5;
|
|
self playsound("tank_reload");
|
|
}
|
|
}
|
|
|
|
//Function Number: 13
|
|
vehicle_hud_tank_fireicon()
|
|
{
|
|
if(getdvar("player_vehicle_dismountable") != "off")
|
|
{
|
|
return;
|
|
}
|
|
|
|
level endon("player exited vehicle");
|
|
level.player endon("death");
|
|
self endon("death");
|
|
if(isdefined(level.vehiclefireicon))
|
|
{
|
|
level.vehiclefireicon destroy();
|
|
}
|
|
|
|
level.vehiclefireicon = newhudelem();
|
|
level.vehiclefireicon.x = -32;
|
|
level.vehiclefireicon.y = -64;
|
|
level.vehiclefireicon.alignx = "center";
|
|
level.vehiclefireicon.aligny = "middle";
|
|
level.vehiclefireicon.horzalign = "right";
|
|
level.vehiclefireicon.vertalign = "bottom";
|
|
level.vehiclefireicon setshader("tank_shell",64,64);
|
|
var_00 = 1;
|
|
level.vehiclefireicon.alpha = var_00;
|
|
for(;;)
|
|
{
|
|
if(var_00)
|
|
{
|
|
if(!self isturretready())
|
|
{
|
|
var_00 = 0;
|
|
level.vehiclefireicon.alpha = var_00;
|
|
}
|
|
}
|
|
else if(self isturretready())
|
|
{
|
|
var_00 = 1;
|
|
level.vehiclefireicon.alpha = var_00;
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 14
|
|
healthoverlay()
|
|
{
|
|
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.healthbuffer;
|
|
var_02 = 0;
|
|
var_03 = 0.3;
|
|
for(;;)
|
|
{
|
|
var_04 = self.health - self.healthbuffer / 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.healthbuffer / 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;
|
|
}
|
|
} |