jumpHandler.sqf 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. };
  42. _returnDmg
  43. }];