Advertisement
Guest User

Artifact Craft RPG Weapon Cp

a guest
Oct 9th, 2014
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.19 KB | None | 0 0
  1. class ArtifactCraftRPGWeaponCp extends ArtifactCraftWeapon;
  2.  
  3. var class<RPGWeapon> CRPGWeaponClass;
  4. var int DestModifier;
  5.  
  6. var class<RPGWeapon> AltRPGWeaponClass;
  7. var int AltModifier;
  8. var bool bAltModify;
  9.  
  10.  
  11. function Activate()
  12. {
  13. local class<Weapon> CWeaponClass;
  14. local Weapon CurrentWeapon;
  15. local float TimeDelta;
  16.  
  17.  
  18. //Check to see if we are allowed to use this again by time.
  19. TimeDelta = Level.TimeSeconds - LastUseTime;
  20. if (Level.TimeSeconds - LastUseTime < UseDelay)
  21. {
  22. Instigator.ReceiveLocalizedMessage(MessageClass, 5000 + UseDelay - TimeDelta, None, None, Class);
  23. bActive = false;
  24. GotoState('');
  25. return;
  26. }
  27.  
  28.  
  29. CurrentWeapon = Instigator.Weapon;
  30. if(RPGWeapon(CurrentWeapon) != None)
  31. {
  32. if(RPGWeapon(CurrentWeapon).ModifiedWeapon == None)
  33. {
  34. bActive = false;
  35. GotoState('');
  36. return;
  37. }
  38.  
  39. CWeaponClass = RPGWeapon(CurrentWeapon).ModifiedWeapon.class;
  40. CRPGWeaponClass = RPGWeapon(CurrentWeapon).class;
  41. DestModifier = RPGWeapon(CurrentWeapon).Modifier;
  42. }
  43. else
  44. {
  45. bActive = false;
  46. GotoState('');
  47. return;
  48. }
  49.  
  50. if(CWeaponClass == None || CRPGWeaponClass == None)
  51. {
  52. bActive = false;
  53. GotoState('');
  54. return;
  55. }
  56. WeaponClass = CWeaponClass;
  57.  
  58. bAltModify = false;
  59. Super.AltActivate();
  60. }
  61.  
  62. function bool IsModifierOk(int Mod, class<RPGWeapon> RPGWepClass)
  63. {
  64. local int MaxMod;
  65. local int MinMod;
  66.  
  67.  
  68. if (RPGWepClass == None)
  69. return false;
  70.  
  71. MaxMod = RPGWepClass.default.MaxModifier;
  72. MinMod = RPGWepClass.default.MinModifier;
  73.  
  74. if (Mod == 0)
  75. {
  76. if (RPGWepClass.default.bCanHaveZeroModifier || (MaxMod == 0 && MinMod == 0) )
  77. return true;
  78.  
  79. return false;
  80. }
  81. if (MaxMod > 0) // For OverMax
  82. {
  83. if (Mod <= (MaxMod + 1) && Mod >= MinMod)
  84. return true;
  85.  
  86. return false;
  87. }
  88. if (Mod <= MaxMod && Mod >= MinMod)
  89. return true;
  90.  
  91. return false;
  92. }
  93.  
  94. function AltActivate(optional string Param)
  95. {
  96. local class<RPGWeapon> InRPGWeaponClass;
  97. local int InModifier;
  98. //local bool bModifierOk;
  99.  
  100. local Weapon CurrentWeapon;
  101. local class<Weapon> CWeaponClass;
  102.  
  103. local float TimeDelta;
  104.  
  105.  
  106. //Check to see if we are allowed to use this again by time.
  107. TimeDelta = Level.TimeSeconds - LastUseTime;
  108. if (Level.TimeSeconds - LastUseTime < UseDelay)
  109. {
  110. Instigator.ReceiveLocalizedMessage(MessageClass, 5000 + UseDelay - TimeDelta, None, None, Class);
  111. bActive = false;
  112. GotoState('');
  113. return;
  114. }
  115.  
  116.  
  117. if (Param != "")
  118. {
  119. InRPGWeaponClass = class<RPGWeapon>(DynamicLoadObject(Param, class'Class'));
  120.  
  121. if (InRPGWeaponClass != None)
  122. {
  123. AltRPGWeaponClass = InRPGWeaponClass;
  124. bActive = false;
  125. GotoState('');
  126. return;
  127. }
  128.  
  129. if (AltRPGWeaponClass != None)
  130. {
  131. InModifier = int(Param);
  132. if (IsModifierOk(InModifier, AltRPGWeaponClass) )
  133. {
  134. AltModifier = InModifier;
  135. }
  136. }
  137.  
  138. bActive = false;
  139. GotoState('');
  140. return;
  141. }
  142.  
  143.  
  144. if (AltRPGWeaponClass == None)
  145. {
  146. bActive = false;
  147. GotoState('');
  148. return;
  149. }
  150.  
  151. if (!IsModifierOk(AltModifier, AltRPGWeaponClass) )
  152. {
  153. bActive = false;
  154. GotoState('');
  155. return;
  156. }
  157.  
  158.  
  159. // CT
  160. CurrentWeapon = Instigator.Weapon;
  161. if(RPGWeapon(CurrentWeapon) != None)
  162. {
  163. if(RPGWeapon(CurrentWeapon).ModifiedWeapon == None)
  164. {
  165. bActive = false;
  166. GotoState('');
  167. return;
  168. }
  169.  
  170. CWeaponClass = RPGWeapon(CurrentWeapon).ModifiedWeapon.class;
  171. }
  172. else
  173. CWeaponClass = CurrentWeapon.class;
  174.  
  175. if(CWeaponClass == None)
  176. {
  177. bActive = false;
  178. GotoState('');
  179. return;
  180. }
  181. WeaponClass = CWeaponClass;
  182.  
  183. bAltModify = true;
  184. Super.AltActivate();
  185. }
  186.  
  187. function ModifyPickup (PickUp TMWeaponPickUp)
  188. {
  189. local RPGWeapon DestWeapon;
  190. //local class<RPGWeapon> CRPGWeaponClass;
  191.  
  192.  
  193. if (bAltModify)
  194. {
  195. CRPGWeaponClass = AltRPGWeaponClass;
  196. DestModifier = AltModifier;
  197. }
  198.  
  199. //CRPGWeaponClass = RPGWeapon(CurrentWeapon).class;
  200. DestWeapon = spawn(CRPGWeaponClass,Instigator,,,rot(0,0,0));
  201. if(DestWeapon == None)
  202. {
  203. bActive = false;
  204. GotoState('');
  205. return;
  206. }
  207. DestWeapon.Modifier = DestModifier;
  208. DestWeapon.SetModifiedWeapon((spawn(WeaponClass,Instigator,,,rot(0,0,0))), true);
  209.  
  210. RPGWeaponPickup(TMWeaponPickUp).DroppedWeapon = DestWeapon;
  211. if(RPGWeaponPickup(TMWeaponPickUp).DroppedWeapon == None)
  212. {
  213. bActive = false;
  214. GotoState('');
  215. return;
  216. }
  217.  
  218. TMWeaponPickUp.GotoState( 'Pickup' );
  219.  
  220. TMWeaponPickUp.RespawnTime = 0;
  221. //TMWeaponPickUp.bDropped = bIsDropped;
  222. TMWeaponPickUp.RespawnEffect();
  223. ////TMWeaponPickUp.AmmoAmount = GetAmmo();
  224. if (!TMWeaponPickUp.bDropped)
  225. TMWeaponPickUp.Lifespan = 120;
  226. TMWeaponPickUp.SetTimer(120, false);
  227.  
  228. TMWeaponPickUp.NetUpdateTime = Level.TimeSeconds - 1;
  229. TMWeaponPickUp.bHidden = false;
  230. }
  231.  
  232.  
  233. defaultproperties
  234. {
  235. AbilityLevel=1
  236. UseDelay=2
  237. WeaponClass=Class'DWU2Weapons.AutoTurretDeploy'
  238. bIsFree=true
  239. bIsDropped=true
  240. MinActivationTime=0.000001
  241. ActivateSound=Sound'WeaponSounds.BaseGunTech.BReload2'
  242. IconMaterial=Texture'ME_RPGExpansion.Icons.CraftSpiderMines'
  243. ItemName="Craft RPG Weapon Cp"
  244. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement