Advertisement
Guest User

Artifact Craft Turrets

a guest
Feb 18th, 2015
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.87 KB | None | 0 0
  1. class ArtifactCraftTurrets extends ArtifactCraftWeapon;
  2.  
  3. var array< class<Weapon> > AvailableTurrets;
  4. var array< class<Weapon> > AllowedWeapons;
  5. var float ALastUseTime;
  6.  
  7.  
  8. function Weapon FindWeaponTypeRPG( class<Weapon> DesiredClass )
  9. {
  10. local Inventory Inv;
  11. local int Count;
  12. local Weapon Wep;
  13.  
  14. for( Inv=Instigator.Inventory; Inv!=None && Count < 1000; Inv=Inv.Inventory )
  15. {
  16. Wep = None;
  17. if (RPGWeapon(Inv)!= None)
  18. {
  19. if(RPGWeapon(Inv).ModifiedWeapon != None)
  20. Wep = RPGWeapon(Inv).ModifiedWeapon;
  21. }
  22. else
  23. Wep = Weapon(Inv);
  24.  
  25. if ( Wep != None && Wep.class == DesiredClass )
  26. return Wep;
  27. Count++;
  28. }
  29.  
  30. // Search for subclasses if exact class wasn't found
  31. Count = 0;
  32. for ( Inv = Instigator.Inventory; Inv != None && Count < 1000; Inv = Inv.Inventory )
  33. {
  34. Wep = None;
  35. if (RPGWeapon(Inv)!= None)
  36. {
  37. if(RPGWeapon(Inv).ModifiedWeapon != None)
  38. Wep = RPGWeapon(Inv).ModifiedWeapon;
  39. }
  40. else
  41. Wep = Weapon(Inv);
  42.  
  43. if ( Wep != None && ClassIsChildOf(Wep.class, DesiredClass) )
  44. return Wep;
  45. Count++;
  46. }
  47.  
  48. return None;
  49. }
  50.  
  51. function Activate()
  52. {
  53. local int i,j;
  54. local bool bDuplicate;
  55. local Weapon W;
  56. local class <Weapon> WClass;
  57. local float TimeDelta;
  58.  
  59.  
  60. TimeDelta = Level.TimeSeconds - ALastUseTime;
  61. if (TimeDelta < UseDelay)
  62. {
  63. Instigator.ReceiveLocalizedMessage(MessageClass, 5000 + UseDelay - TimeDelta, None, None, Class);
  64. bActive = false;
  65. GotoState('');
  66. return;
  67. }
  68. ALastUseTime = Level.TimeSeconds;
  69.  
  70. for( i=0; i < AllowedWeapons.length; i++ )
  71. {
  72. W = FindWeaponTypeRPG(AllowedWeapons[i]);
  73. if (W!=None)
  74. WClass = W.class;
  75. if (WClass != None)
  76. {
  77.  
  78. bDuplicate = false;
  79. for( j=0; j < AvailableTurrets.length; j++ )
  80. {
  81. if (AvailableTurrets[j] == WClass)
  82. {
  83. bDuplicate = true;
  84. j = AvailableTurrets.length;
  85. }
  86. }
  87. if (!bDuplicate)
  88. AvailableTurrets[AvailableTurrets.length] = WClass;
  89. }
  90. }
  91.  
  92. return;
  93. }
  94.  
  95. function AltActivate(optional string Param)
  96. {
  97. local int i;
  98.  
  99.  
  100. if (Param == "")
  101. {
  102. for( i=0; i < AvailableTurrets.length; i++ )
  103. {
  104. Instigator.ClientMessage("[" $ i $ "] = " $ string(AvailableTurrets[i])); //.Default.FriendlyName);
  105. }
  106. }
  107. else if (int(Param) >=0 && int(Param) < AvailableTurrets.length)
  108. {
  109. WeaponClass = AvailableTurrets[int(Param)];
  110. Super.AltActivate();
  111. }
  112. }
  113.  
  114.  
  115. defaultproperties
  116. {
  117. AllowedWeapons(0)=Class'U2Weapons.U2AutoTurretDeploy'
  118. AllowedWeapons(1)=Class'U2Weapons.U2WeaponRocketTurret'
  119. AllowedWeapons(2)=Class'DWU2Weapons.WeaponLaserTurrets'
  120. AbilityLevel=1
  121. UseDelay=2
  122. WeaponClass=None
  123. bIsFree=false
  124. bIsDropped=true
  125. MinActivationTime=0.000001
  126. ActivateSound=Sound'WeaponSounds.BaseGunTech.BReload2'
  127. IconMaterial=Texture'ME_RPGExpansion.Icons.CraftSpiderMines'
  128. ItemName="Craft Turrets"
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement