HolyDogelord

E2 MonoWheel Script v2

Aug 25th, 2019
701
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. @name Monowheel Controller
  2. @inputs W A S D Space Shift Alt R Active
  3. @inputs BASE:entity BRAKEPLATE:entity WHEEL:entity DRIVERSEAT:entity PASSENGERSEAT:entity
  4. @outputs Lock Eject HydraulicLength HydraulicStrength HydraulicDamping
  5. @persist FuncDefined Direction Parked RollSpeed ROLL_FORCE SELF:entity OWNER:entity
  6. @trigger
  7. if (first()|dupefinished()){
  8. #define variables here
  9. if (!FuncDefined){
  10. function void park(Val:number){
  11. if (Val){
  12. Parked = 1
  13. HydraulicLength = 40
  14. HydraulicStrength = 100000
  15. HydraulicDamping = 2000
  16. BRAKEPLATE:setMass(500)
  17. #BRAKEPLATE:propNotSolid(0)#
  18. }
  19. else{
  20. Parked = 0
  21. HydraulicLength = 0
  22. HydraulicStrength = 1000
  23. HydraulicDamping = 100
  24. BRAKEPLATE:setMass(0.1)
  25. #BRAKEPLATE:propNotSolid(0)#
  26. }
  27. }
  28. FuncDefined = 1
  29. }
  30. SELF = entity()
  31. OWNER = owner()
  32. Direction = 0
  33. WheelAngle = ang(0, 0, 0)
  34. ROLL_FORCE = 1000
  35. RollSpeed = 1
  36. WHEEL:propSetFriction(1000)
  37. park(1)
  38. runOnTick(1)
  39. }
  40. elseif (tickClk()){
  41. if (!Parked){
  42. Angle = ang(0,Direction,0)
  43. AppForce = (BASE:toLocal(Angle)*ang(250,250,250) - BASE:angVel()*25)*shiftL(ang(BASE:inertia()))
  44. BASE:applyAngForce(AppForce)
  45. if (W|S) {
  46. WHEEL:applyTorque((S - W) * vec(ROLL_FORCE * RollSpeed * WHEEL:mass(), 0, 0))
  47. }
  48. if (A|D) {
  49. Direction += (A - D) * 1.5
  50. }
  51. }
  52. }
  53. elseif (~Alt & Alt){
  54. if (Lock) { Lock = 0
  55. DRIVERSEAT:hintDriver("Unlocked passenger seat", 2)
  56. PASSENGERSEAT:setColor(255, 255, 255) }
  57. else { Lock = 1
  58. DRIVERSEAT:hintDriver("Locked passenger seat", 2)
  59. PASSENGERSEAT:setColor(255, 0, 0)}
  60. }
  61. elseif (~R & R){
  62. Eject = R
  63. DRIVERSEAT:hintDriver("Ejected passenger", 2)
  64. }
  65. elseif (~Active){
  66. park(!Active)
  67. }
Advertisement
Add Comment
Please, Sign In to add comment