mirror of
https://github.com/PhantomGamesDevelopment/TWM2.git
synced 2026-07-15 16:34:37 +00:00
Fixed the UAMS Error
Re-Added the file that deleted the UAMS on accident, I will relocate functioning at a later point.
This commit is contained in:
parent
949148fb4e
commit
74582a675c
4 changed files with 216 additions and 12 deletions
|
|
@ -79,7 +79,6 @@ PLEASE NOTE: For the Legacy (Pre-GitHub Versions) Changelogs, please see LEGACY
|
||||||
* Addressed the bug that would allow Vardison 2.0 to summon infinite minions
|
* Addressed the bug that would allow Vardison 2.0 to summon infinite minions
|
||||||
* Addressed the bug with Vardison 2.0 that made his Shadow Rift invincible
|
* Addressed the bug with Vardison 2.0 that made his Shadow Rift invincible
|
||||||
* Removed two un-used game objects that were never completed, the Medal Seal and the UAV Control Panel
|
* Removed two un-used game objects that were never completed, the Medal Seal and the UAV Control Panel
|
||||||
* Note: This has inadvertently introduced a new bug causing the UAMS streak to no longer correctly function, this will be addressed before the official release of 3.91
|
|
||||||
* Removed a few erraneous exec calls to non-existent files in the mod load script
|
* Removed a few erraneous exec calls to non-existent files in the mod load script
|
||||||
* Depricated the F2 Inventory Screen (Nobody ever used this)
|
* Depricated the F2 Inventory Screen (Nobody ever used this)
|
||||||
* Fixed a few bugs in the F2 Menu
|
* Fixed a few bugs in the F2 Menu
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
// TWM 2, Mod Load Script, Place any Scripts To Be Executed In Here
|
// TWM 2, Mod Load Script, Place any Scripts To Be Executed In Here
|
||||||
|
|
||||||
Error("********************************************");
|
echo("********************************************");
|
||||||
Error("********************************************");
|
echo("********************************************");
|
||||||
Error("******** EXECUTING TWM2 MOD SCRIPTS ********");
|
echo("******** EXECUTING TWM2 MOD SCRIPTS ********");
|
||||||
Error("********************************************");
|
echo("********************************************");
|
||||||
Error("********************************************");
|
echo("********************************************");
|
||||||
//Mod Systems
|
//Mod Systems
|
||||||
exec("serverControl.cs"); //Server Settings
|
exec("serverControl.cs"); //Server Settings
|
||||||
|
|
||||||
|
|
@ -35,6 +35,9 @@ exec("scripts/TWM2/Systems/weaponModes.cs"); //Global Defines for Weapon
|
||||||
exec("scripts/TWM2/AI/DroneAI.cs"); //Drones
|
exec("scripts/TWM2/AI/DroneAI.cs"); //Drones
|
||||||
exec("scripts/TWM2/Systems/HarbingersWrath.cs"); //Harbinger's Wrath
|
exec("scripts/TWM2/Systems/HarbingersWrath.cs"); //Harbinger's Wrath
|
||||||
|
|
||||||
|
//Mod Objects
|
||||||
|
exec("scripts/TWM2/ModObjects/UAMS.cs"); //UAMS Missile Satellite
|
||||||
|
|
||||||
//Mod Dependancies
|
//Mod Dependancies
|
||||||
|
|
||||||
exec("scripts/TWM2/loadmenu.cs"); //loadscreen
|
exec("scripts/TWM2/loadmenu.cs"); //loadscreen
|
||||||
|
|
@ -134,7 +137,7 @@ BuildDeconList(); //build decon. list (con tool)
|
||||||
|
|
||||||
exec("scripts/TWM2/Bosses/LordVardison.cs"); //load him last
|
exec("scripts/TWM2/Bosses/LordVardison.cs"); //load him last
|
||||||
|
|
||||||
error("Loading custom scripts");
|
echo("Loading custom scripts");
|
||||||
exec("scripts/Customize/CustomScripts.cs");
|
exec("scripts/Customize/CustomScripts.cs");
|
||||||
|
|
||||||
schedule(5500, 0, "establishPGDConnection");
|
schedule(5500, 0, "establishPGDConnection");
|
||||||
|
|
@ -143,11 +146,11 @@ cleanChallenges();
|
||||||
$ChallengeIndex = 0;
|
$ChallengeIndex = 0;
|
||||||
schedule(7000, 0, "downloadChallenges");
|
schedule(7000, 0, "downloadChallenges");
|
||||||
|
|
||||||
Error("********************************************");
|
echo("********************************************");
|
||||||
Error("********************************************");
|
echo("********************************************");
|
||||||
Error("************* EXECUTE COMPLETE *************");
|
echo("************* EXECUTE COMPLETE *************");
|
||||||
Error("********************************************");
|
echo("********************************************");
|
||||||
Error("********************************************");
|
echo("********************************************");
|
||||||
|
|
||||||
//POST LOAD TASKS.....
|
//POST LOAD TASKS.....
|
||||||
//OrderStreaks();
|
//OrderStreaks();
|
||||||
|
|
|
||||||
188
scripts/TWM2/ModObjects/UAMS.cs
Normal file
188
scripts/TWM2/ModObjects/UAMS.cs
Normal file
|
|
@ -0,0 +1,188 @@
|
||||||
|
datablock StaticShapeData(MissileShape) : StaticShapeDamageProfile {
|
||||||
|
shapeFile = "weapon_missile_projectile.dts";
|
||||||
|
mass = 1.0;
|
||||||
|
repairRate = 0;
|
||||||
|
dynamicType = $TypeMasks::StaticShapeObjectType;
|
||||||
|
heatSignature = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
function CruiseMissileVehicle::onAdd(%this, %obj) {
|
||||||
|
Parent::onAdd(%this, %obj);
|
||||||
|
setTargetSensorGroup(%obj.getTarget(), %obj.team);
|
||||||
|
|
||||||
|
%body = new StaticShape() {
|
||||||
|
scale = "20 20 20";
|
||||||
|
datablock = MissileShape;
|
||||||
|
};
|
||||||
|
MissionCleanup.add(%body);
|
||||||
|
%obj.mountObject(%body, 1);
|
||||||
|
%body.vehicleMounted = %obj;
|
||||||
|
|
||||||
|
%obj.startFade(0,100,1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function CruiseMissileVehicle::deleteAllMounted(%data, %obj) {
|
||||||
|
|
||||||
|
%body = %obj.getMountNodeObject(1);
|
||||||
|
if(!%body) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
%body.delete();
|
||||||
|
}
|
||||||
|
//
|
||||||
|
function CreateMissileSat(%client, %unlim, %rem) {
|
||||||
|
if(%unlim $= "" || !%unlim) {
|
||||||
|
%unlim = 0;
|
||||||
|
%rem = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($Killstreak::GunshipSpawnLocation[$CurrentMission] $= "") {
|
||||||
|
%spawn = "0 -1000 400";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
%spawn = $Killstreak::GunshipSpawnLocation[$CurrentMission];
|
||||||
|
}
|
||||||
|
%sat = new FlyingVehicle() {
|
||||||
|
dataBlock = UAVVehicle;
|
||||||
|
position = %spawn;
|
||||||
|
rotation = "0 0 0 1";
|
||||||
|
team = %client.team;
|
||||||
|
};
|
||||||
|
MissionCleanUp.add(%sat);
|
||||||
|
setTargetSensorGroup(%sat.getTarget(), %client.team);
|
||||||
|
|
||||||
|
%sat.GoPoint = 1;
|
||||||
|
GunshipForwardImpulse(%sat);
|
||||||
|
%sat.ScanLoop = schedule(500, 0, "GetNextGunshipPoint", %sat);
|
||||||
|
%client.player.lastTransformStuff = %client.player.getTransform();
|
||||||
|
|
||||||
|
%sat.team = %client.Team;
|
||||||
|
%sat.setOwner(%client.player);
|
||||||
|
|
||||||
|
%sat.canLaucnhStrike = 1;
|
||||||
|
%sat.isUnlimitedSat = %unlim;
|
||||||
|
|
||||||
|
MessageClient(%client, 'msgSatcom', "\c3UAMS: Satellite Moving to Position, Standby....");
|
||||||
|
|
||||||
|
if(!%unlim) {
|
||||||
|
%client.player.setPosition(VectorAdd(%x SPC %y SPC 0,$Prison::JailPos));
|
||||||
|
|
||||||
|
%client.setControlObject(%sat.turretObject);
|
||||||
|
%client.schedule(499, setControlObject, %sat.turretObject);
|
||||||
|
MissileSatControlLoop(%client, %sat);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
%client.setControlObject(%sat.turretObject);
|
||||||
|
commandToClient(%client, 'ControlObjectResponse', true, getControlObjectType(%sat.turretObject,%client.player));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(%rem) {
|
||||||
|
%sat.turretObject.setAutoFire(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function FireSatHornet(%sat, %slot, %source) {
|
||||||
|
%muzzlePos = %sat.getMuzzlePoint(%slot);
|
||||||
|
%muzzleVec = %sat.getMuzzleVector(%slot);
|
||||||
|
//Fiah
|
||||||
|
spawnprojectileSourceMod(HornetStrikeMissile, SeekerProjectile, %muzzlePos, %muzzleVec, %source);
|
||||||
|
ServerPlay3d(EscapePodLaunchSound, %sat.getPosition());
|
||||||
|
ServerPlay3d(EscapePodLaunchSound2, %sat.getPosition());
|
||||||
|
}
|
||||||
|
|
||||||
|
function MissileSatelliteBarrel::onFire(%data, %obj, %slot) {
|
||||||
|
//echo(%obj);
|
||||||
|
if(%obj.mountobj.canLaucnhStrike) {
|
||||||
|
%client = %obj.getControllingClient();
|
||||||
|
%source = %client.player; //muhaha
|
||||||
|
|
||||||
|
%obj.mountobj.canLaucnhStrike = 0;
|
||||||
|
|
||||||
|
FireSatHornet(%obj, %slot, %source);
|
||||||
|
schedule(1500, 0, "FireSatHornet", %obj, %slot, %source);
|
||||||
|
schedule(3000, 0, "FireSatHornet", %obj, %slot, %source);
|
||||||
|
|
||||||
|
if(!%obj.mountobj.isUnlimitedSat) {
|
||||||
|
schedule(4000, 0, "MakeCruiseMissile", %client, %obj);
|
||||||
|
schedule(4000, 0, "ServerPlay3d", EscapePodLaunchSound2, %obj.getPosition());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
schedule(30000, 0, "ResetSat", %obj.mountobj);
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(!%obj.mountobj.isUnlimitedSat) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
%client = %obj.getControllingClient();
|
||||||
|
bottomPrint(%client, "Missiles are still reloading... standby.", 2, 2);
|
||||||
|
if(isObject(%client.player) && %client.player.getState() !$= "dead") {
|
||||||
|
%client.setControlObject(%client.player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ResetSat(%sat) {
|
||||||
|
if(isObject(%sat)) {
|
||||||
|
%sat.canLaucnhStrike = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function MakeCruiseMissile(%client, %sat) {
|
||||||
|
if(%client.getControlObject() != %sat) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
%Missile = new FlyingVehicle() {
|
||||||
|
dataBlock = "CruiseMissileVehicle";
|
||||||
|
scale = "1 1 1";
|
||||||
|
team = %client.team;
|
||||||
|
mountable = "0"; //drive only
|
||||||
|
};
|
||||||
|
|
||||||
|
setTargetSensorGroup(%Missile.getTarget(), %Missile.team);
|
||||||
|
%Missile.setTransform(vectorAdd(%sat.getPosition(), "0 0 -5") SPC rotFromTransform(%sat.getTransform()));
|
||||||
|
|
||||||
|
%Missile.controller = %client;
|
||||||
|
%sat.GuidedMissile = %Missile;
|
||||||
|
MissionCleanup.add(%Missile);
|
||||||
|
%client.setControlObject(%Missile);
|
||||||
|
|
||||||
|
MissileSatGuidedLoop(%client, %Missile);
|
||||||
|
}
|
||||||
|
|
||||||
|
//just a good function to delete the satelite if the client reliquishes control
|
||||||
|
function MissileSatControlLoop(%client, %sat) {
|
||||||
|
if(!isObject(%sat)) {
|
||||||
|
if(isObject(%client.player)) {
|
||||||
|
ReMoveClientSW(%client);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if((%client.getControlObject() != %sat.turretObject) && !%sat.isUnlimitedSat) {
|
||||||
|
//lets check if they are in the missile now...
|
||||||
|
if(%client.getControlObject() == %sat.turretObject.GuidedMissile) {
|
||||||
|
//MissileSatGuidedLoop(%client, %sat.turretObject.GuidedMissile);
|
||||||
|
}
|
||||||
|
//No, they reliquished all control before the guided fired...
|
||||||
|
else {
|
||||||
|
if(isObject(%client.player)) {
|
||||||
|
ReMoveClientSW(%client);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%sat.schedule(1000, "Delete");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//%client.setControlObject(%sat.turretObject);
|
||||||
|
schedule(100, 0, "MissileSatControlLoop", %client, %sat);
|
||||||
|
}
|
||||||
|
|
||||||
|
function MissileSatGuidedLoop(%client, %missile) {
|
||||||
|
if(%client.getControlObject() != %missile) {
|
||||||
|
if(isObject(%client.player)) {
|
||||||
|
ReMoveClientSW(%client);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
schedule(100, 0, "MissileSatGuidedLoop", %client, %missile);
|
||||||
|
}
|
||||||
|
|
@ -228,6 +228,20 @@ function TWM2Lib_MainControl(%functionName, %arguments) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function ReMoveClientSW(%client) {
|
||||||
|
if(!isObject(%client.player) || %client.player.getState() $= "dead") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
%sp = Game.pickPlayerSpawn(%client, false);
|
||||||
|
//2 sec Invincibility please?
|
||||||
|
%client.player.setInvinc(1);
|
||||||
|
%client.player.schedule(2000, "setInvinc", 0);
|
||||||
|
%client.player.setTransform(%client.player.lastTransformStuff); //%sp for new spawn
|
||||||
|
%client.setControlObject(%client.player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function ListGUIDS() {
|
function ListGUIDS() {
|
||||||
for(%i = 0; %i < ClientGroup.getCount(); %i++) {
|
for(%i = 0; %i < ClientGroup.getCount(); %i++) {
|
||||||
%cl = ClientGroup.getObject(%i);
|
%cl = ClientGroup.getObject(%i);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue