Replaced some incorrect instances of clip with magazine.
Add SMP 7243 from Oldskool to the BFG pool (toggleable). Random fixarounds. Spent mag models for the pistols, will be used (and backported to DT) soon.
This commit is contained in:
parent
912cad96c5
commit
bac59b45c1
31 changed files with 672 additions and 31 deletions
|
|
@ -708,6 +708,13 @@ Class BetaFlare : UnrealInventory
|
|||
if ( !sting_flares ) return false; // not allowed
|
||||
return Super.TryPickup(toucher);
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
Super.Tick();
|
||||
if ( sting_flares ) return;
|
||||
if ( Owner ) Owner.RemoveInventory(self);
|
||||
Destroy();
|
||||
}
|
||||
Default
|
||||
{
|
||||
Inventory.MaxAmount 1;
|
||||
|
|
|
|||
393
zscript/olsmp.zsc
Normal file
393
zscript/olsmp.zsc
Normal file
|
|
@ -0,0 +1,393 @@
|
|||
/*
|
||||
usaar33 is a wiener
|
||||
|
||||
now watch as I turn this trash fire into a better weapon
|
||||
*/
|
||||
Class OLSMPAmmo : Ammo
|
||||
{
|
||||
override bool TryPickup( in out Actor toucher )
|
||||
{
|
||||
if ( !sting_olsmp ) return false; // not allowed
|
||||
return Super.TryPickup(toucher);
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
Super.Tick();
|
||||
if ( sting_olsmp ) return;
|
||||
if ( !Owner )
|
||||
{
|
||||
let r = Spawn("CellPack",pos,ALLOW_REPLACE);
|
||||
r.spawnangle = spawnangle;
|
||||
r.spawnpoint = spawnpoint;
|
||||
r.angle = angle;
|
||||
r.pitch = pitch;
|
||||
r.roll = roll;
|
||||
r.special = special;
|
||||
r.args[0] = args[0];
|
||||
r.args[1] = args[1];
|
||||
r.args[2] = args[2];
|
||||
r.args[3] = args[3];
|
||||
r.args[4] = args[4];
|
||||
r.ChangeTid(tid);
|
||||
r.SpawnFlags = SpawnFlags&~MTF_SECRET;
|
||||
r.HandleSpawnFlags();
|
||||
r.SpawnFlags = SpawnFlags;
|
||||
r.bCountSecret = SpawnFlags&MTF_SECRET;
|
||||
r.vel = vel;
|
||||
r.master = master;
|
||||
r.target = target;
|
||||
r.tracer = tracer;
|
||||
r.bDropped = bDropped;
|
||||
Destroy();
|
||||
}
|
||||
else
|
||||
{
|
||||
Owner.RemoveInventory(self);
|
||||
Destroy();
|
||||
}
|
||||
}
|
||||
Default
|
||||
{
|
||||
Tag "$T_OLSMPAMMO";
|
||||
Inventory.Icon "I_OLSMP";
|
||||
Inventory.PickupMessage "$I_OLSMPAMMO";
|
||||
Inventory.Amount 100;
|
||||
Inventory.MaxAmount 300;
|
||||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 900;
|
||||
Ammo.DropAmount 100;
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
UCLP A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class OLSMP : UnrealWeapon
|
||||
{
|
||||
int ClipCount;
|
||||
double AltAccuracy;
|
||||
|
||||
property ClipCount : ClipCount;
|
||||
|
||||
override void PlayUpSound( Actor origin )
|
||||
{
|
||||
origin.A_PlaySound(upsound,CHAN_WEAPON,Dampener.Active(origin)?.1:1.,pitch:0.8);
|
||||
}
|
||||
override bool TryPickup( in out Actor toucher )
|
||||
{
|
||||
if ( !sting_olsmp ) return false; // not allowed
|
||||
return Super.TryPickup(toucher);
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
Super.Tick();
|
||||
if ( sting_olsmp ) return;
|
||||
if ( !Owner )
|
||||
{
|
||||
let r = Spawn("BFG9000",pos,ALLOW_REPLACE);
|
||||
r.spawnangle = spawnangle;
|
||||
r.spawnpoint = spawnpoint;
|
||||
r.angle = angle;
|
||||
r.pitch = pitch;
|
||||
r.roll = roll;
|
||||
r.special = special;
|
||||
r.args[0] = args[0];
|
||||
r.args[1] = args[1];
|
||||
r.args[2] = args[2];
|
||||
r.args[3] = args[3];
|
||||
r.args[4] = args[4];
|
||||
r.ChangeTid(tid);
|
||||
r.SpawnFlags = SpawnFlags&~MTF_SECRET;
|
||||
r.HandleSpawnFlags();
|
||||
r.SpawnFlags = SpawnFlags;
|
||||
r.bCountSecret = SpawnFlags&MTF_SECRET;
|
||||
r.vel = vel;
|
||||
r.master = master;
|
||||
r.target = target;
|
||||
r.tracer = tracer;
|
||||
r.bDropped = bDropped;
|
||||
Destroy();
|
||||
}
|
||||
else
|
||||
{
|
||||
Owner.RemoveInventory(self);
|
||||
Destroy();
|
||||
}
|
||||
}
|
||||
action void A_OLSMPRefire( statelabel flash = null, bool slave = false )
|
||||
{
|
||||
Weapon weap = Weapon(invoker);
|
||||
if ( !weap || !player ) return;
|
||||
if ( invoker.altaccuracy < 0.2 ) invoker.altaccuracy += 0.01;
|
||||
if ( invoker.clipcount < 35 ) A_PlaySound("automag/click",CHAN_ITEM,!Dampener.Active(self)?1.:.35,pitch:1.6);
|
||||
if ( (invoker.clipcount <= 0) || (weap.Ammo1.Amount <= 0) )
|
||||
{
|
||||
A_ClearRefire();
|
||||
return;
|
||||
}
|
||||
A_Refire(flash);
|
||||
}
|
||||
action void A_OLSMPFire( bool alt = false )
|
||||
{
|
||||
Weapon weap = Weapon(invoker);
|
||||
if ( !weap ) return;
|
||||
if ( weap.Ammo1.Amount <= 0 ) return;
|
||||
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||
invoker.clipcount--;
|
||||
invoker.FireEffect();
|
||||
UTMainHandler.DoFlash(self,Color(32,255,128,0),1);
|
||||
A_PlaySound("automag/fire",CHAN_WEAPON,!Dampener.Active(self)?1.:.2,pitch:FRandom[Automag](1.2,1.8)*(alt?2.5:1.));
|
||||
if ( !Dampener.Active(self) ) A_AlertMonsters();
|
||||
A_QuakeEx(1,1,1,8,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.15);
|
||||
A_Overlay(-2,"MuzzleFlash");
|
||||
A_OverlayFlags(-2,PSPF_RENDERSTYLE|PSPF_FORCESTYLE,true);
|
||||
A_OverlayRenderstyle(-2,STYLE_Add);
|
||||
UTMainHandler.DoSwing(self,(FRandom[Automag](-2.,-5.)*invoker.altaccuracy,FRandom[Automag](-3.,2.)*invoker.altaccuracy),3,1,2,SWING_Spring,1,2);
|
||||
Vector3 x, y, z, x2, y2, z2;
|
||||
[x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
|
||||
if ( alt )
|
||||
{
|
||||
vel -= x*(player.onground?2.:0.8);
|
||||
vel.z += (player.onground?.3:.08);
|
||||
}
|
||||
else
|
||||
{
|
||||
vel -= x*(player.onground?4.:1.5);
|
||||
vel.z += (player.onground?.5:.15);
|
||||
}
|
||||
Vector3 origin = Vec2OffsetZ(0,0,player.viewz)+10.0*x;
|
||||
origin = origin-z*1.0+y*4.0;
|
||||
double a = FRandom[Automag](0,360), s = FRandom[Automag](0,alt?(0.05+invoker.altaccuracy):0.05);
|
||||
[x2, y2, z2] = dt_CoordUtil.GetAxes(BulletSlope(),angle,roll);
|
||||
Vector3 dir = (x2+y2*cos(a)*s+z2*sin(a)*s).unit();
|
||||
FLineTraceData d;
|
||||
LineTrace(atan2(dir.y,dir.x),10000,asin(-dir.z),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
||||
if ( d.HitType == TRACE_HitActor )
|
||||
{
|
||||
int dmg = 17;
|
||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'shot',DMG_USEANGLE|DMG_THRUSTLESS,atan2(d.HitDir.y,d.HitDir.x));
|
||||
double mm = 3000;
|
||||
if ( FRandom[Automag](0,1) < 0.2 ) mm *= 5;
|
||||
UTMainHandler.DoKnockback(d.HitActor,d.HitDir,mm);
|
||||
if ( d.HitActor.bNOBLOOD )
|
||||
{
|
||||
let p = Spawn("BulletImpact",d.HitLocation);
|
||||
p.angle = atan2(d.HitDir.y,d.HitDir.x)+180;
|
||||
p.pitch = asin(d.HitDir.z);
|
||||
}
|
||||
else
|
||||
{
|
||||
d.HitActor.TraceBleed(dmg,self);
|
||||
d.HitActor.SpawnBlood(d.HitLocation,atan2(d.HitDir.y,d.HitDir.x)+180,dmg);
|
||||
}
|
||||
}
|
||||
else if ( d.HitType != TRACE_HitNone )
|
||||
{
|
||||
Vector3 hitnormal = -d.HitDir;
|
||||
if ( d.HitType == TRACE_HitFloor ) hitnormal = d.HitSector.floorplane.Normal;
|
||||
else if ( d.HitType == TRACE_HitCeiling ) hitnormal = d.HitSector.ceilingplane.Normal;
|
||||
else if ( d.HitType == TRACE_HitWall )
|
||||
{
|
||||
hitnormal = (-d.HitLine.delta.y,d.HitLine.delta.x,0).unit();
|
||||
if ( !d.LineSide ) hitnormal *= -1;
|
||||
}
|
||||
let p = Spawn("BulletImpact",d.HitLocation+hitnormal*0.01);
|
||||
p.angle = atan2(hitnormal.y,hitnormal.x);
|
||||
p.pitch = asin(-hitnormal.z);
|
||||
if ( d.HitLine ) d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation);
|
||||
}
|
||||
for ( int i=0; i<3; i++ )
|
||||
{
|
||||
let s = Spawn("UTViewSmoke",origin);
|
||||
UTViewSmoke(s).ofs = (10,4,-1);
|
||||
s.target = self;
|
||||
s.alpha *= 0.5;
|
||||
}
|
||||
origin += x*8.0+y*6.0-z*2.0;
|
||||
let c = Spawn("UCasing",origin);
|
||||
c.vel = x*FRandom[Junk](-1.5,1.5)+y*FRandom[Junk](2,4)+z*FRandom[Junk](2,3);
|
||||
}
|
||||
Default
|
||||
{
|
||||
Tag "$T_OLSMP";
|
||||
Inventory.PickupMessage "$I_OLSMP";
|
||||
Weapon.UpSound "automag/select";
|
||||
Weapon.SlotNumber 0;
|
||||
Weapon.SelectionOrder 9;
|
||||
Weapon.AmmoType "OLSMPAmmo";
|
||||
Weapon.AmmoUse 1;
|
||||
Weapon.AmmoType2 "OLSMPAmmo";
|
||||
Weapon.AmmoUse2 1;
|
||||
Weapon.AmmoGive 100;
|
||||
Weapon.Kickback 320;
|
||||
UTWeapon.DropAmmo 50;
|
||||
OLSMP.ClipCount 100;
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AUTP A -1;
|
||||
Stop;
|
||||
AUTP B -1;
|
||||
Stop;
|
||||
Select:
|
||||
AUTS A 1 A_Raise(int.max);
|
||||
Ready:
|
||||
AUTS ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 A_WeaponReady(WRF_NOFIRE);
|
||||
AUS2 ABCD 1 A_WeaponReady(WRF_NOFIRE);
|
||||
Idle:
|
||||
AUTI A 0 A_Overlay(-9999,"Dummy");
|
||||
AUTI AB 30;
|
||||
AUTI A 0 A_Jump(50,"Twiddle");
|
||||
Goto Idle+1;
|
||||
Twiddle:
|
||||
AUTT ABCDEFGHIJKLMNOPQRSTUVWXY 2;
|
||||
Goto Idle+1;
|
||||
Dummy:
|
||||
TNT1 A 1
|
||||
{
|
||||
if ( (invoker.clipcount <= 0) && (invoker.Ammo1.Amount > 0) ) A_Overlay(PSP_WEAPON,"Reload");
|
||||
else if ( invoker.clipcount < min(invoker.default.clipcount,invoker.Ammo1.Amount) ) A_WeaponReady(WRF_ALLOWRELOAD);
|
||||
else A_WeaponReady();
|
||||
}
|
||||
Wait;
|
||||
Fire:
|
||||
AUTF A 1 A_Overlay(-9999,null);
|
||||
AUTF BCD 1;
|
||||
Hold:
|
||||
AUTF E 1 A_OLSMPFire();
|
||||
AUTF F 1;
|
||||
AUTF G 0 A_OLSMPRefire(1);
|
||||
Goto Release1;
|
||||
AUTF G 1;
|
||||
AUTF H 1 A_OLSMPFire();
|
||||
AUTF I 1;
|
||||
AUTF J 0 A_OLSMPRefire(1);
|
||||
Goto Release2;
|
||||
AUTF J 1;
|
||||
AUTF K 1 A_OLSMPFire();
|
||||
AUTF L 1;
|
||||
AUTF M 0 A_OLSMPRefire(1);
|
||||
Goto Release3;
|
||||
AUTF M 1;
|
||||
Goto Hold;
|
||||
Release1:
|
||||
AUTF G 1;
|
||||
Goto Release;
|
||||
Release2:
|
||||
AUTF J 1;
|
||||
Goto Release;
|
||||
Release3:
|
||||
AUTF M 1;
|
||||
Goto Release;
|
||||
Release:
|
||||
AUTF NOPQRST 1;
|
||||
AUTI A 0;
|
||||
Goto Idle;
|
||||
AltFire:
|
||||
AUTF A 1 A_Overlay(-9999,null);
|
||||
AUTF BCD 1;
|
||||
AltHold:
|
||||
AUTF E 1 A_OLSMPFire(true);
|
||||
AUTF H 0 A_OLSMPRefire(1);
|
||||
Goto AltRelease1;
|
||||
AUTF H 1 A_OLSMPFire(true);
|
||||
AUTF K 0 A_OLSMPRefire(1);
|
||||
Goto AltRelease2;
|
||||
AUTF K 1 A_OLSMPFire(true);
|
||||
AUTF E 0 A_OLSMPRefire("AltHold");
|
||||
Goto AltRelease3;
|
||||
AltRelease1:
|
||||
AUTF FG 1;
|
||||
Goto Release;
|
||||
AltRelease2:
|
||||
AUTF IJ 1;
|
||||
Goto Release;
|
||||
AltRelease3:
|
||||
AUTF LM 1;
|
||||
Goto Release;
|
||||
Reload:
|
||||
AUTR A 0 A_JumpIf(invoker.clipcount>=min(invoker.default.clipcount,invoker.Ammo1.Amount),"Idle");
|
||||
AUTR A 0
|
||||
{
|
||||
invoker.clipcount = Min(invoker.default.clipcount,invoker.Ammo1.Amount);
|
||||
A_Overlay(-9999,null);
|
||||
A_WeaponOffset(0,32); // fix sudden psprite lowering
|
||||
A_PlaySound("automag/click",CHAN_WEAPON,!Dampener.Active(self)?1.:.1,pitch:0.8);
|
||||
}
|
||||
AUTR ABCDEFGHIJKLMNOPQRSTUVWXY 1;
|
||||
AUTD ABCD 1;
|
||||
AUTD E 30
|
||||
{
|
||||
A_PlaySound("automag/reload",CHAN_WEAPON,!Dampener.Active(self)?1.:.1,pitch:0.8);
|
||||
if ( self is 'UTPlayer' )
|
||||
UTPlayer(self).PlayReloading();
|
||||
}
|
||||
AUTS A 0 A_PlaySound("automag/select",CHAN_WEAPON,!Dampener.Active(self)?1.:.1,pitch:0.8);
|
||||
Goto Ready;
|
||||
Deselect:
|
||||
AUTD A 1 A_Overlay(-9999,null);
|
||||
AUTD BCD 1;
|
||||
AUTD E 1 A_Lower(int.max);
|
||||
Wait;
|
||||
MuzzleFlash:
|
||||
TNT1 A 0 A_Jump(256,1,2,3,4,5,6,7,8,9);
|
||||
AMUZ A 2 Bright
|
||||
{
|
||||
let l = Spawn("EnforcerLight",pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
AMUZ B 2 Bright
|
||||
{
|
||||
let l = Spawn("EnforcerLight",pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
AMUZ C 2 Bright
|
||||
{
|
||||
let l = Spawn("EnforcerLight",pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
AMUZ D 2 Bright
|
||||
{
|
||||
let l = Spawn("EnforcerLight",pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
AMUZ E 2 Bright
|
||||
{
|
||||
let l = Spawn("EnforcerLight",pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
AMUZ F 2 Bright
|
||||
{
|
||||
let l = Spawn("EnforcerLight",pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
AMUZ G 2 Bright
|
||||
{
|
||||
let l = Spawn("EnforcerLight",pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
AMUZ H 2 Bright
|
||||
{
|
||||
let l = Spawn("EnforcerLight",pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
AMUZ I 2 Bright
|
||||
{
|
||||
let l = Spawn("EnforcerLight",pos);
|
||||
l.target = self;
|
||||
}
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
|
@ -793,7 +793,8 @@ Class UnrealMainHandler : EventHandler
|
|||
}
|
||||
else if ( (e.Replacee == 'BFG9000') || (e.Replacee == 'Mace') )
|
||||
{
|
||||
if ( Random[Replacements](0,1) ) e.Replacement = 'SMiniGun';
|
||||
if ( sting_olsmp && Random[Replacements](0,1) ) e.Replacement = 'OLSMP';
|
||||
else if ( Random[Replacements](0,1) ) e.Replacement = 'SMiniGun';
|
||||
else e.Replacement = 'BigGun';
|
||||
}
|
||||
else if ( (e.Replacee == 'Clip') || (e.Replacee == 'GoldWandAmmo') || (e.Replacee == 'GoldWandHefty') ) e.Replacement = 'UClip';
|
||||
|
|
@ -890,6 +891,7 @@ Class UnrealMainHandler : EventHandler
|
|||
else e.Replacement = 'BigAmmo2';
|
||||
}
|
||||
else if ( !Random[Replacements](0,3) ) e.Replacement = 'ImpalerAmmo';
|
||||
else if ( sting_olsmp && !Random[Replacements](0,2) ) e.Replacement = 'OLSMPAmmo';
|
||||
else if ( Random[Replacements](0,1) ) e.Replacement = 'UBioAmmo';
|
||||
else e.Replacement = 'URifleAmmo';
|
||||
}
|
||||
|
|
@ -1004,15 +1006,7 @@ Class UnrealMainHandler : EventHandler
|
|||
}
|
||||
override void PlayerRespawned( PlayerEvent e )
|
||||
{
|
||||
if ( flak_translocator )
|
||||
players[e.playernumber].mo.TakeInventory("Translocator",1);
|
||||
if ( sting_telegun )
|
||||
players[e.playernumber].mo.GiveInventory("UTranslocator",1);
|
||||
if ( sting_flares )
|
||||
{
|
||||
players[e.playernumber].mo.GiveInventory("LightFlare",1);
|
||||
players[e.playernumber].mo.GiveInventory("DarkFlare",1);
|
||||
}
|
||||
PlayerEntered(e);
|
||||
}
|
||||
override void NetworkProcess( ConsoleEvent e )
|
||||
{
|
||||
|
|
@ -1032,13 +1026,6 @@ Class UnrealMainHandler : EventHandler
|
|||
players[i].mo.GiveInventory("UTranslocator",1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( int i=0; i<MAXPLAYERS; i++ ) if ( playeringame[i] )
|
||||
{
|
||||
players[i].mo.TakeInventory("UTranslocator",1);
|
||||
}
|
||||
}
|
||||
if ( sting_flares )
|
||||
{
|
||||
for ( int i=0; i<MAXPLAYERS; i++ ) if ( playeringame[i] )
|
||||
|
|
@ -1047,14 +1034,6 @@ Class UnrealMainHandler : EventHandler
|
|||
players[i].mo.GiveInventory("DarkFlare",1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( int i=0; i<MAXPLAYERS; i++ ) if ( playeringame[i] )
|
||||
{
|
||||
players[i].mo.TakeInventory("LightFlare",1);
|
||||
players[i].mo.TakeInventory("DarkFlare",1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
override void WorldLoaded( WorldEvent e )
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@ Class UnrealHUD : BaseStatusBar
|
|||
bool MidPrintLarge;
|
||||
|
||||
// 0.83 HUD stuff
|
||||
String OldAmmo[18];
|
||||
Class<Inventory> OldAmmoType[18];
|
||||
String OldAmmo[19];
|
||||
Class<Inventory> OldAmmoType[19];
|
||||
String OldArmor[6];
|
||||
Class<Inventory> OldArmorType[6];
|
||||
String OldKeys[7];
|
||||
|
|
@ -106,6 +106,7 @@ Class UnrealHUD : BaseStatusBar
|
|||
OldAmmo[15] = "Big083";
|
||||
OldAmmo[16] = "Smini083";
|
||||
OldAmmo[17] = "Peace083";
|
||||
OldAmmo[18] = "OLSMP083";
|
||||
OldAmmoType[0] = "DefaultAmmo";
|
||||
OldAmmoType[1] = "UMiniAmmo";
|
||||
OldAmmoType[2] = "StingerAmmo";
|
||||
|
|
@ -124,6 +125,7 @@ Class UnrealHUD : BaseStatusBar
|
|||
OldAmmoType[15] = "BigAmmo";
|
||||
OldAmmoType[16] = "SMiniAmmo";
|
||||
OldAmmoType[17] = "PeaceAmmo";
|
||||
OldAmmoType[18] = "OLSMPAmmo";
|
||||
OldArmor[0] = "Armor083";
|
||||
OldArmor[1] = "Kev083";
|
||||
OldArmor[2] = "Asb083";
|
||||
|
|
@ -646,7 +648,7 @@ Class UnrealHUD : BaseStatusBar
|
|||
if ( Ammo1 )
|
||||
{
|
||||
if ( Ammo1.Amount ) DrawString(mOldDigits,FormatNumber(Ammo1.Amount,3),(549,366),DI_TEXT_ALIGN_RIGHT);
|
||||
for ( int i=0; i<18; i++ )
|
||||
for ( int i=0; i<19; i++ )
|
||||
{
|
||||
// match by ammo
|
||||
if ( (OldAmmoType[i] is 'Ammo') && !(Ammo1 is OldAmmoType[i]) ) continue;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,13 @@ Class UTranslocatorAmmo : Ammo
|
|||
Ammo.BackpackMaxAmount 2;
|
||||
+INVENTORY.IGNORESKILL;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
Super.Tick();
|
||||
if ( sting_telegun ) return;
|
||||
if ( Owner ) Owner.RemoveInventory(self);
|
||||
Destroy();
|
||||
}
|
||||
}
|
||||
|
||||
Class UTranslocator : UnrealWeapon
|
||||
|
|
@ -18,6 +25,13 @@ Class UTranslocator : UnrealWeapon
|
|||
if ( !sting_telegun ) return false; // not allowed
|
||||
return Super.TryPickup(toucher);
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
Super.Tick();
|
||||
if ( sting_telegun ) return;
|
||||
if ( Owner ) Owner.RemoveInventory(self);
|
||||
Destroy();
|
||||
}
|
||||
Default
|
||||
{
|
||||
Tag "$T_TELEGUN";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue