Advertisement
Guest User

Tornado

a guest
Oct 22nd, 2008
721
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.13 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #undef KEY_UP
  4. #undef KEY_DOWN
  5. #undef KEY_LEFT
  6. #undef KEY_RIGHT
  7. #define KEY_UP 65408
  8. #define KEY_DOWN 128
  9. #define KEY_LEFT 65408
  10. #define KEY_RIGHT 128
  11.  
  12. #define green 0x0AFF0AAA
  13. #define red 0xFF0000FF
  14.  
  15. new fly[MAX_PLAYERS] = {0, 1};
  16. new Float:x, Float:y, Float:z, Float:angle;
  17.  
  18. forward Float:GetXYInFrontOfPlayer(playerid, &Float:q, &Float:w, Float:distance);
  19. forward Float:GetXYBehindPlayer(playerid, &Float:q, &Float:w, Float:distance);
  20. forward FlyTimer();
  21.  
  22. public OnFilterScriptInit()
  23. {
  24.     print("\n--------------------------------------");
  25.     print("    Flying filterscript");
  26.     print("    By Tornado");
  27.     print("--------------------------------------\n");
  28.     SetTimer("FlyTimer",100,1);
  29.     return 1;
  30. }
  31.  
  32. public OnPlayerConnect(playerid)
  33. {
  34.     fly[playerid] = 0;
  35.     return 1;
  36. }
  37.  
  38. public OnPlayerSpawn(playerid)
  39. {
  40.     fly[playerid] = 0;
  41.     return 1;
  42. }
  43.  
  44. public OnPlayerDeath(playerid, killerid, reason)
  45. {
  46.     fly[playerid] = 0;
  47.     return 1;
  48. }
  49.  
  50. public OnPlayerCommandText(playerid, cmdtext[])
  51. {
  52.     new cmd[256];
  53.     new idx;
  54.     cmd = strtok(cmdtext, idx);
  55.    
  56.     if(strcmp(cmd, "/fly", true) == 0 && IsPlayerAdmin(playerid)) {
  57.         new tmp[256];
  58.         tmp = strtok(cmdtext, idx);
  59.         if(!strlen(tmp)) { if(fly[playerid] == 1) { fly[playerid] = 0; SendClientMessage(playerid,red,"Fly mode offline."); TogglePlayerControllable(playerid,true); return 1; } else if(fly[playerid] == 0) { fly[playerid] = 1; SendClientMessage(playerid,green,"Fly mode online."); TogglePlayerControllable(playerid,false); return 1; } }
  60.         if(strcmp(tmp, "on", true) == 0) { fly[playerid] = 1; SendClientMessage(playerid,green,"Fly mode online."); TogglePlayerControllable(playerid,false); return 1; }
  61.         else if(strcmp(tmp, "off", true) == 0) { fly[playerid] = 0; SendClientMessage(playerid,red,"Fly mode offline."); TogglePlayerControllable(playerid,true); return 1; }
  62.     }
  63.     return 0;
  64. }
  65.  
  66. Float:GetXYInFrontOfPlayer(playerid, &Float:q, &Float:w, Float:distance)
  67. {
  68.     new Float:a;
  69.     GetPlayerPos(playerid, q, w, a);
  70.     if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER) GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
  71.     else GetPlayerFacingAngle(playerid, a);
  72.     q += (distance * floatsin(-a, degrees));
  73.     w += (distance * floatcos(-a, degrees));
  74.     return a;
  75. }
  76.  
  77. Float:GetXYBehindPlayer(playerid, &Float:q, &Float:w, Float:distance)
  78. {
  79.     new Float:a;
  80.     GetPlayerPos(playerid, q, w, a);
  81.     if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER) GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
  82.     else GetPlayerFacingAngle(playerid, a);
  83.     q += (distance * -floatsin(-a, degrees));
  84.     w += (distance * -floatcos(-a, degrees));
  85.     return a;
  86. }
  87.  
  88. strtok(const string[], &index)
  89. {
  90.     new length = strlen(string);
  91.     while ((index < length) && (string[index] <= ' '))
  92.     {
  93.         index++;
  94.     }
  95.  
  96.     new offset = index;
  97.     new result[20];
  98.     while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  99.     {
  100.         result[index - offset] = string[index];
  101.         index++;
  102.     }
  103.     result[index - offset] = EOS;
  104.     return result;
  105. }
  106.  
  107. public FlyTimer()
  108. {
  109.     new keys, updown, leftright;
  110.     for(new playerid=0;playerid<MAX_PLAYERS;playerid++) {
  111.         if(IsPlayerConnected(playerid)) {
  112.             if(fly[playerid] == 1) {
  113.                 GetPlayerKeys(playerid,keys,updown,leftright);
  114.                 if(updown == KEY_UP) {
  115.                     if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) {
  116.                         GetPlayerPos(playerid, x, y, z);
  117.                         GetXYInFrontOfPlayer(playerid, x, y, 5.0);
  118.                         SetPlayerPos(playerid, x, y, z);
  119.                         SetCameraBehindPlayer(playerid);
  120.                     }
  121.                     else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
  122.                         new playercar = GetPlayerVehicleID(playerid);
  123.                         GetVehiclePos(playercar, x, y, z);
  124.                         GetXYInFrontOfPlayer(playerid, x, y, 5.0);
  125.                         SetVehiclePos(playercar, x, y, z);
  126.                     }
  127.                 }
  128.                 else if(updown == KEY_DOWN) {
  129.                     if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) {
  130.                         GetPlayerPos(playerid, x, y, z);
  131.                         GetXYBehindPlayer(playerid, x, y, 5.0);
  132.                         SetPlayerPos(playerid, x, y, z);
  133.                         SetCameraBehindPlayer(playerid);
  134.                     }
  135.                     else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
  136.                         new playercar = GetPlayerVehicleID(playerid);
  137.                         GetVehiclePos(playercar, x, y, z);
  138.                         GetXYBehindPlayer(playerid, x, y, 5.0);
  139.                         SetVehiclePos(playercar, x, y, z);
  140.                     }
  141.                 }
  142.                 if(leftright == KEY_LEFT) {
  143.                     if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) {
  144.                         GetPlayerFacingAngle(playerid, angle);
  145.                         SetPlayerFacingAngle(playerid, angle+10);
  146.                         SetCameraBehindPlayer(playerid);
  147.                     }
  148.                     else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
  149.                         new playercar = GetPlayerVehicleID(playerid);
  150.                         GetVehicleZAngle(playercar, angle);
  151.                         SetVehicleZAngle(playercar, angle+10);
  152.                     }
  153.                 }
  154.                 else if(leftright == KEY_RIGHT) {
  155.                     if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) {
  156.                         GetPlayerFacingAngle(playerid, angle);
  157.                         SetPlayerFacingAngle(playerid, angle-10);
  158.                         SetCameraBehindPlayer(playerid);
  159.                     }
  160.                     else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
  161.                         new playercar = GetPlayerVehicleID(playerid);
  162.                         GetVehicleZAngle(playercar, angle);
  163.                         SetVehicleZAngle(playercar, angle-10);
  164.                     }
  165.                 }
  166.                 if(keys == KEY_JUMP) {
  167.                     if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) {
  168.                         GetPlayerPos(playerid, x, y, z);
  169.                         SetPlayerPos(playerid, x, y, z+5);
  170.                         SetCameraBehindPlayer(playerid);
  171.                     }
  172.                     else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
  173.                         new playercar = GetPlayerVehicleID(playerid);
  174.                         GetVehiclePos(playercar, x, y, z);
  175.                         SetVehiclePos(playercar, x, y, z+5);
  176.                     }
  177.                 }
  178.                 else if(keys == KEY_SPRINT) {
  179.                     if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) {
  180.                         GetPlayerPos(playerid, x, y, z);
  181.                         SetPlayerPos(playerid, x, y, z-5);
  182.                         SetCameraBehindPlayer(playerid);
  183.                     }
  184.                     else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
  185.                         new playercar = GetPlayerVehicleID(playerid);
  186.                         GetVehiclePos(playercar, x, y, z);
  187.                         SetVehiclePos(playercar, x, y, z-5);
  188.                     }
  189.                 }
  190.             }
  191.         }
  192.     }
  193. }
  194.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement