jumpHandler.sqf 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. //Params["personToApply"];
  2. personToApply=_this select 0;
  3. personToApply addEventHandler ["HandleDamage",
  4. {
  5. _returnDmg=_this select 2;
  6. _namUnit=_this select 0;
  7. _namThisJumpData=_namUnit getVariable["jumpArray",[]];
  8. comment "is Jumping-0
  9. last jump time-1
  10. jump counter-2
  11. cooldown-3
  12. max consecutive jumps-4
  13. C || (!A and B)";
  14. _namIsJumping=_namThisJumpData select 0;
  15. _namLastJumpTime=_namThisJumpData select 1;
  16. _namJumpCounter=_namThisJumpData select 2;
  17. _namJumpCooldownTime=_namThisJumpData select 3;
  18. _namMaxJump=_namThisJumpData select 4;
  19. if(((count _namThisJumpData)!=0) && {_namIsJumping}) then
  20. {
  21. _returnDmg=0;
  22. if(isTouchingGround _namUnit) then
  23. {
  24. _null = _this spawn
  25. {
  26. _namUnitSpawn=(_this select 0);
  27. _namThisJumpDataSpawn= _namUnitSpawn getVariable["jumpArray",[]];
  28. for [{_i=0}, {_i<10}, {_i=_i+1}] do
  29. {
  30. sleep 0.01;
  31. if((abs speed _namUnitSpawn)<1) then
  32. {
  33. _namIsJumpingSpawn=false;
  34. [west, "HQ"] sideChat format["%1 speed is %2",time,(_namThisJumpDataSpawn select 2)];
  35. _namUnitSpawn setVariable ["jumpArray", [_namIsJumpingSpawn,(_namThisJumpDataSpawn select 1),(_namThisJumpDataSpawn select 2),(_namThisJumpDataSpawn select 3),(_namThisJumpDataSpawn select 4)],true];
  36. _i=11;
  37. };
  38. };
  39. };
  40. };
  41. _returnDmg
  42. };
  43. _returnDmg
  44. }];