Advertisement
Guest User

RPG Weapon Base Silly

a guest
Oct 9th, 2014
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.92 KB | None | 0 0
  1. class RPGWeaponBaseSilly extends xWeaponBaseSilly;
  2.  
  3. // TD: overlay, respawn stay.
  4.  
  5. var class<RPGWeapon> DestRPGWeaponClass;
  6. var() string DestRPGWeaponStrClass;
  7. var() int DestModifier;
  8. var bool bModifierOk;
  9. var int ProperModifier;
  10. var PickUp Changeling;
  11. var() class<PickUp> ChangelingClass;
  12. //var xPickUpBase HaxBase;
  13.  
  14. var() bool bNormalWep;
  15. var() bool bIsDropped;
  16. var() bool bIsRealWeaponStay;
  17. var() float PickUpRespawnTime;
  18. var() bool bIsWeaponStay;
  19. var() bool bIsThrown;
  20. var() bool bRealDelayedSpawn;
  21. var() bool bUnHook;
  22. //var() bool bHax;
  23.  
  24.  
  25. function SpawnPickup()
  26. {
  27. if (Changeling == None && bHidden != true)
  28. {
  29. bHidden = true;
  30. Changeling = spawn(ChangelingClass,,, Location, Rotation);
  31. }
  32.  
  33. if (!bNormalWep)
  34. {
  35. if (DestRPGWeaponStrClass != "")
  36. DestRPGWeaponClass = class<RPGWeapon>(DynamicLoadObject(DestRPGWeaponStrClass, class'Class'));
  37.  
  38. if (DestRPGWeaponClass == None)
  39. return;
  40. }
  41.  
  42. Super(xPickUpBase).SpawnPickup();
  43.  
  44. SetTimer(1,false);
  45. }
  46.  
  47. function Timer()
  48. {
  49. local WeaponPickup WeaponPickUp;
  50.  
  51.  
  52. if (myPickUp != None)
  53. WeaponPickUp = WeaponPickup(myPickUp);
  54.  
  55.  
  56. if (WeaponPickUp != None)
  57. ModifyPickUp (WeaponPickUp);
  58. }
  59.  
  60. function int GetOkModifier(int Mod, class<RPGWeapon> RPGWepClass)
  61. {
  62. local int MaxMod;
  63. local int MinMod;
  64.  
  65.  
  66. if (RPGWepClass == None)
  67. {
  68. log(self$" None RPGWeapon class ");
  69. return 0;
  70. }
  71.  
  72. MaxMod = RPGWepClass.default.MaxModifier;
  73. MinMod = RPGWepClass.default.MinModifier;
  74.  
  75. if (MaxMod == 0 && MinMod == 0)
  76. return 0;
  77.  
  78. if (Mod == 0)
  79. {
  80. if (RPGWepClass.default.bCanHaveZeroModifier || (MaxMod == 0 && MinMod == 0) )
  81. return 0;
  82.  
  83. if (1 <= MaxMod)
  84. return 1;
  85.  
  86. if (MaxMod != 0)
  87. return MaxMod;
  88.  
  89. return -1;
  90. }
  91. if (MaxMod > 0) // For OverMax
  92. {
  93. if (Mod <= (MaxMod + 1) && Mod >= MinMod)
  94. return Mod;
  95.  
  96. if (Mod > (MaxMod + 1) )
  97. return MaxMod;
  98.  
  99. if (Mod < MinMod && (MinMod != 0 || RPGWepClass.default.bCanHaveZeroModifier) )
  100. return MinMod;
  101.  
  102. return 1;
  103. }
  104. if (Mod <= MaxMod && Mod >= MinMod)
  105. return Mod;
  106.  
  107. if (Mod > MaxMod)
  108. {
  109. if (MaxMod != 0 || RPGWepClass.default.bCanHaveZeroModifier)
  110. return MaxMod;
  111.  
  112. return -1;
  113. }
  114. if (Mod < MinMod)
  115. return MinMod;
  116.  
  117. log(self$" Fail ");
  118. return 0;
  119. }
  120.  
  121. function ModifyPickup (WeaponPickup TMWeaponPickUp)
  122. {
  123. local RPGWeapon DestWeapon;
  124. //local vector OldLocation;
  125.  
  126.  
  127. if (!bNormalWep)
  128. {
  129. if (DestRPGWeaponClass == None)
  130. return;
  131.  
  132. if (!bModifierOk)
  133. {
  134. ProperModifier = GetOkModifier(DestModifier, DestRPGWeaponClass);
  135. bModifierOk = true;
  136. }
  137. }
  138.  
  139. if (bUnHook) //|| bHax)
  140. {
  141. //OldLocation = Location;
  142. TMWeaponPickUp.PickupBase = None;
  143. SetLocation(vect(0,0,0) );
  144. bHidden = true;
  145. }
  146.  
  147. /*if (bHax)
  148. {
  149. HaxBase = spawn(class'SillyRPG.ShieldChargerSilly',,,OldLocation,rot(0,0,0));
  150. HaxBase.myPickUp.destroy();
  151. TMWeaponPickUp.PickupBase = HaxBase;
  152. HaxBase.myPickUp = TMWeaponPickUp;
  153. //log(TMWeaponPickUp.PickupBase$"");
  154. //log(HaxBase.myPickUp$"");
  155. //log(HaxBase$"");
  156. }*/
  157.  
  158. if (!bNormalWep)
  159. {
  160. DestWeapon = spawn(DestRPGWeaponClass,,,,rot(0,0,0));
  161. if(DestWeapon == None)
  162. return;
  163.  
  164. DestWeapon.Modifier = ProperModifier;
  165. DestWeapon.SetModifiedWeapon((spawn(WeaponType,,,,rot(0,0,0))), true);
  166.  
  167. RPGWeaponPickup(TMWeaponPickUp).DroppedWeapon = DestWeapon;
  168.  
  169. if(RPGWeaponPickup(TMWeaponPickUp).DroppedWeapon == None)
  170. return;
  171.  
  172. //DestWeapon.Identify();
  173.  
  174.  
  175. //if (!bHax)
  176. RPGWeaponPickup(TMWeaponPickUp).bRealWeaponStay = bIsRealWeaponStay;
  177. }
  178. if (!bRealDelayedSpawn)
  179. {
  180. if ( TMWeaponPickUp.myMarker != None )
  181. TMWeaponPickUp.myMarker.bSuperPickup = false;
  182. bDelayedSpawn = false;
  183. }
  184. TMWeaponPickUp.GotoState( 'Pickup' );
  185.  
  186. //if (!bHax)
  187. //{
  188. TMWeaponPickUp.bWeaponStay = bIsWeaponStay;
  189. TMWeaponPickUp.bThrown = bIsThrown;
  190. TMWeaponPickUp.RespawnTime = PickUpRespawnTime;
  191. TMWeaponPickUp.bDropped = bIsDropped;
  192. //TMWeaponPickUp.RespawnEffect();
  193. //TMWeaponPickUp.AmmoAmount = GetAmmo();
  194. //TMWeaponPickUp.SetTimer(120, false);
  195. //}
  196.  
  197. TMWeaponPickUp.bHidden = false;
  198.  
  199.  
  200. // Overlay set, from 'RPGWeaponPickup'
  201. /*if (DestWeapon.ModifierOverlay != None)// && DestWeapon.ThirdPersonActor != None)
  202. {
  203. //TMWeaponPickUp.LinkMesh(DestWeapon.ThirdPersonActor.Mesh);
  204. //TMWeaponPickUp.SetDrawType(DestWeapon.ThirdPersonActor.DrawType);
  205. TMWeaponPickUp.SetRotation(TMWeaponPickUp.Rotation + rot(0,0,32768)); //because attachments are always imported upside down
  206. TMWeaponPickUp.bOrientOnSlope = false;
  207. TMWeaponPickUp.SetOverlayMaterial(DestWeapon.ModifierOverlay, 0, true); //1000000
  208. }*/
  209. }
  210.  
  211.  
  212. defaultproperties
  213. {
  214. bIsRealWeaponStay = false;
  215. bIsDropped = false;
  216. PickUpRespawnTime = 0;
  217. bIsWeaponStay = false;
  218. bIsThrown = false;
  219. bUnHook = false;
  220. bDelayedSpawn = true;
  221. bModifierOk = false;
  222. ChangelingClass=Class'SillyRPG.XIsAChangeling'
  223. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement