Advertisement
EvanAbagail

Drivable Pumpkin

Oct 31st, 2014
423
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.29 KB | None | 0 0
  1. #include a_samp
  2. #include zcmd
  3. new bool: DrivingPumpkin[MAX_PLAYERS];
  4. new Pumpkin[MAX_PLAYERS] = INVALID_OBJECT_ID;
  5. #define PUMPKIN_SPEED 5.0
  6. CMD:createpumpkin(playerid, params[])
  7. {
  8.         if(DrivingPumpkin[playerid])
  9.         {
  10.             return SendClientMessage(playerid, -1, "You're already driving a pumpkin. Use /destroypumpkin to stop driving.");
  11.         }
  12.         ApplyAnimation(playerid, "FOOD", "FF_Sit_Eat2", 4.0, 1, 0, 0, 1, 0, 1);
  13.         new Float: X, Float: Y, Float: Z;
  14.         GetPlayerPos(playerid, X, Y, Z);
  15.         Pumpkin[playerid] = CreateObject(19320, X, Y, Z, 0.0, 0.0, 0.0);
  16.         DrivingPumpkin[playerid] = true;
  17.         TogglePlayerControllable(playerid, false); // - Manually controlled movements.
  18.         return 1;
  19. }
  20.  
  21. CMD:destroypumpkin(playerid, params[])
  22. {
  23.         if(DrivingPumpkin[playerid] == true)
  24.         {
  25.                 DestroyObject(Pumpkin[playerid]);
  26.                 DrivingPumpkin[playerid] = false;
  27.                 Pumpkin[playerid] = INVALID_OBJECT_ID;
  28.                 TogglePlayerControllable(playerid, true);
  29.                 SetCameraBehindPlayer(playerid);
  30.         }
  31. }
  32.  
  33. CMD:pumpkin(playerid, params[])
  34. {
  35.         if(isnull(params)) return true;
  36.         if(DrivingPumpkin[playerid] == false) return SendClientMessage(playerid, -1, "You're not driving a pumpkin.");
  37.         if(strcmp(params, "up", true) == 0)
  38.         {
  39.             new Float: pos[3];
  40.             GetObjectPos(Pumpkin[playerid], pos[0], pos[1], pos[2]);
  41.                 SetObjectPos(Pumpkin[playerid], pos[0], pos[1], pos[2]+1.0);
  42.         }
  43.         if(strcmp(params, "down", true) == 0)
  44.         {
  45.             new Float: pos[3];
  46.             GetObjectPos(Pumpkin[playerid], pos[0], pos[1], pos[2]);
  47.                 SetObjectPos(Pumpkin[playerid], pos[0], pos[1], pos[2]-1.0);
  48.         }
  49.         return 1;
  50. }
  51.  
  52. public OnFilterScriptExit()
  53. {
  54.         for (new i = 0; i != MAX_PLAYERS; ++i)
  55.         {
  56.                  if (IsPlayerConnected(i))
  57.              {
  58.                 if(DrivingPumpkin[i] == true)
  59.                 {
  60.                         DrivingPumpkin[i] = false;
  61.                         DestroyObject(Pumpkin[i]);
  62.                         Pumpkin[i] = -1;
  63.                         }
  64.                 }
  65.         }
  66. }
  67.  
  68. public OnPlayerDisconnect(playerid)
  69. {
  70.         if(DrivingPumpkin[playerid] == true)
  71.         {
  72.             DrivingPumpkin[playerid] = false;
  73.                 DestroyObject(Pumpkin[playerid]);
  74.                 Pumpkin[playerid] = -1;
  75.         }
  76.         return true;
  77. }
  78. public OnPlayerUpdate(playerid)
  79. {
  80.         if(DrivingPumpkin[playerid] == true)
  81.         {
  82.         new Keys,ud,lr;
  83.         GetPlayerKeys(playerid,Keys,ud,lr);
  84.         new objectid = Pumpkin[playerid];
  85.  
  86.                 new Float: pos[3];
  87.                 GetObjectPos(objectid, pos[0], pos[1], pos[2]);
  88.                 SetPlayerPos(playerid, pos[0], pos[1], pos[2]+0.5);
  89.             if(ud == KEY_UP)
  90.             {
  91.                 new Float: X, Float: Y, Float: Z;
  92.                 GetObjectPos(objectid, X, Y, Z);
  93.                         MoveObject(objectid, X, Y+2.0, Z, PUMPKIN_SPEED, 0.0, 0.0, 0.0);
  94.                         return true;
  95.                 }
  96.  
  97.             else if(ud == KEY_DOWN)
  98.             {
  99.                 new Float: X, Float: Y, Float: Z;
  100.                 GetObjectPos(objectid, X, Y, Z);
  101.                         MoveObject(objectid, X, Y-2.0, Z, PUMPKIN_SPEED, 0.0, 0.0, 0.0);
  102.                         return true;
  103.                 }
  104.  
  105.             if(lr == KEY_LEFT)
  106.             {
  107.                 new Float: X, Float: Y, Float: Z;
  108.                 GetObjectPos(objectid, X, Y, Z);
  109.                         MoveObject(objectid, X-2.0, Y, Z, PUMPKIN_SPEED, 0.0, 0.0, 0.0);
  110.                         return true;
  111.                 }
  112.             else if(lr == KEY_RIGHT)
  113.             {
  114.             new Float: X, Float: Y, Float: Z;
  115.                 GetObjectPos(objectid, X, Y, Z);
  116.                         MoveObject(objectid, X+2.0, Y, Z, PUMPKIN_SPEED, 0.0, 0.0, 0.0);
  117.                         return true;
  118.                 }
  119.         }
  120.     return 1;
  121. }
  122.  
  123. public OnPlayerDeath(playerid, killerid, reason)
  124. {
  125.     if(DrivingPumpkin[playerid] == true)
  126.     {
  127.         DestroyObject(Pumpkin[playerid]);
  128.         Pumpkin[playerid] = -1;
  129.         DrivingPumpkin[playerid] = false;
  130.         return 1;
  131.     }
  132.     return true;
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement