Advertisement
Maarethyu

Mirador Lamp

Aug 10th, 2015
3,070
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
E 2.63 KB | None | 0 0
  1. @name Mirador Lamp
  2. @persist [Me HoverTarget BaseProp]:entity TargetPos:vector HeightOffset AngularDeltaSmoother AngularDeltaMultiplier DeltaSmoother DeltaMultiplier
  3.  
  4. if (first()) {
  5.     runOnTick(1)
  6.    
  7.     Follow = 1  # 0=Mode statique, 1=Mode Dynamique au dessus de la tete
  8.     HeightOffset = 100  # Hauteur au dessus de votre tete
  9.     Mass = 100  # Masse de la lampe
  10.     Alpha = 255  # Transparence de la lampe 0-255 0=invisible
  11.     TargetPos = vec(0,0,0)  # Initialisation de la variable a 0
  12.    
  13.     # NE PAS MODIFIER #
  14.     AngularDeltaSmoother = 10
  15.     AngularDeltaMultiplier = 90
  16.     DeltaSmoother = 5
  17.     DeltaMultiplier = 50
  18.     #-----------------#
  19.    
  20.     Me = owner()  # Raccourci, parceque les codeurs, c'est des feignants
  21.    
  22.     BaseProp = entity():isWeldedTo()  # Trouve la lampe sur laquelle l'Expression 2 est colle
  23.    
  24.     BaseProp:setMass(Mass)  # Fixe la masse de la lampe
  25.     BaseProp:setAlpha(Alpha)  # Fixe la transparence de la lampe
  26.    
  27.     if(Follow == 1) {  # Quelque variable pour le mode de la lampe
  28.         HoverTarget = Me
  29.     }
  30.     else {
  31.         TargetPos = BaseProp:pos()
  32.     }
  33. }
  34.  
  35. if(Me:team() != 4) {  # Les vrais comprendrons
  36.     print(_HUD_PRINTCENTER, "Vous n'avez pas le bon metier.")
  37.     selfDestructAll()
  38. }
  39.  
  40. #----------------------------------#
  41. # Calcul et application de l'angle #
  42. #----------------------------------#
  43. VectorToTarget = Me:aimPos() - BaseProp:pos()
  44. AngleToTarget = VectorToTarget:toAngle()
  45. BaseAngles = BaseProp:angles()
  46.  
  47. TargetYaw = AngleToTarget:yaw()
  48. BaseYaw = BaseProp:angles():yaw()
  49. if (TargetYaw - BaseYaw > 180) {
  50.     TargetYaw -= 360
  51. }
  52. TargetPitch = AngleToTarget:pitch()
  53. BasePitch = BaseProp:angles():pitch()
  54. if (TargetPitch - BasePitch > 180) {
  55.     TargetPitch -= 360
  56. }
  57.  
  58. AngularForce = ang(TargetPitch, TargetYaw, AngleToTarget:roll()) - BaseProp:angles()
  59.  
  60. AngularDelta = BaseProp:angVel() / AngularDeltaSmoother
  61. AngularForce = (AngularForce - AngularDelta) * AngularDeltaMultiplier
  62.  
  63. BaseProp:applyAngForce(AngularForce)
  64.  
  65. #----------#
  66. # Hovering #
  67. #----------#
  68. if(TargetPos == vec(0,0,0)) {  # Mode dynamique au dessus de la tete
  69.     Thrust = (HoverTarget:pos() - BaseProp:pos()) + BaseProp:massCenterL() + vec(0, 0, HeightOffset)
  70.    
  71.     Delta = BaseProp:vel() / DeltaSmoother
  72.     Thrust = (Thrust - Delta) * DeltaMultiplier
  73.    
  74.     Multiplier = BaseProp:mass()/10
  75.     if (Multiplier < 1) {
  76.         Multiplier = 1
  77.     }
  78.     Thrust = Thrust * Multiplier
  79.    
  80.     BaseProp:applyForce(Thrust)
  81. }
  82. else {  # Mode statique
  83.     Force = (TargetPos - BaseProp:pos()) * 5 - BaseProp:vel()
  84.     Force *= BaseProp:mass()
  85.     BaseProp:applyForce(Force)
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement