Advertisement
Guest User

Badger

a guest
Jan 14th, 2010
552
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.62 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. //KEYS
  4. #define HOLDING(%0) \
  5.     ((newkeys & (%0)) == (%0))// HOLDING(keys)
  6. #define PRESSED(%0) \
  7.     (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))// PRESSED(keys)
  8. #define RELEASED(%0) \
  9.     (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))// RELEASED(keys)
  10.  
  11. new PDBTRUE[MAX_PLAYERS];
  12. new Text:Txt;
  13. new timer[MAX_PLAYERS];
  14.  
  15. forward Quad(playerid);
  16. //NON DDB Vehicles
  17. //Air vehicles
  18. IsAirVehicle(vehicleid)
  19. {
  20.     switch(GetVehicleModel(vehicleid)) {
  21.         case 592,577,511,512,593,520,553,476,519,460,513,548,425,417,487,488,497,563,447,469: return 1;
  22.     }
  23.     return 0;
  24. }
  25. //Trailers
  26. IsTrailer(vehicleid)
  27. {
  28.     switch(GetVehicleModel(vehicleid)) {
  29.         case 435,450,591,606,607,610,584,608,611: return 1;
  30.     }
  31.     return 0;
  32. }
  33. //Trains
  34. IsTrain(vehicleid)
  35. {
  36.     switch(GetVehicleModel(vehicleid)) {
  37.         case 590,569,537,538,570,449: return 1;
  38.     }
  39.     return 0;
  40. }
  41. //DDB Vehicles
  42. //Bikes
  43. IsBike(vehicleid)
  44. {
  45.     switch(GetVehicleModel(vehicleid)) {
  46.         case 581,523,462,521,463,522,461,448,468,586,509,510,481: return 1;
  47.     }
  48.     return 0;
  49. }
  50. //Bmx, mountain
  51. IsBicy(vehicleid)
  52. {
  53.     switch(GetVehicleModel(vehicleid)){
  54.         case 509, 510, 481: return 1;
  55.     }
  56.     return 0;
  57. }
  58. //DDB-enabled vehicle checker
  59. IsDDBVehicle(vehicleid)
  60. {
  61.     if(IsAirVehicle(vehicleid)==1)return 0;
  62.     if(IsTrailer(vehicleid)==1)return 0;
  63.     if(IsTrain(vehicleid)==1)return 0;
  64.     if(GetVehicleModel(vehicleid)==471)return 1;
  65.     return 1;
  66. }
  67. //DB (Passenger) enabled vehicles
  68. IsPDBVehicle(vehicleid)
  69. {
  70.     new m=GetVehicleModel(vehicleid);
  71.     if(IsTrailer(vehicleid))return 0;
  72.     if(IsTrain(vehicleid))return 0;
  73.     if(IsAirVehicle(vehicleid))
  74.     {
  75.         if((m==593||m==511))return 1;
  76.         return 0;
  77.     }
  78.     if((m==437||m==431))return 0;
  79.     return 1;
  80. }
  81. //Sends a message to the driver
  82. SendDriverMessage(vehicleID)
  83. {
  84.     for(new i; i<MAX_PLAYERS; i++)
  85.     {
  86.         if(GetPlayerState(i)==2&&GetPlayerVehicleID(i)==vehicleID)
  87.         {
  88.             TextDrawShowForPlayer(i,Txt);
  89.             timer[i]=GetTickCount();
  90.         }
  91.     }
  92.     return 1;
  93. }
  94. public Quad(playerid)
  95. {
  96.     new keys,u,d;
  97.     GetPlayerKeys(playerid,keys,u,d);
  98.     new Float:x, Float:y, Float:z;
  99.     GetPlayerPos(playerid,x,y,z);
  100.     new vehicleid=GetPlayerVehicleID(playerid);
  101.     if(keys&KEY_FIRE){SetPlayerPos(playerid,x,y,z);SetVehiclePos(vehicleid,x,y,z);}
  102.     if(keys&KEY_ACTION){SetPlayerPos(playerid,x,y,z);SetVehiclePos(vehicleid,x,y,z);}
  103.     return 1;
  104. }
  105. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  106. {
  107.     new vehicleid=GetPlayerVehicleID(playerid);
  108.     if(GetPlayerState(playerid)==2&&IsDDBVehicle(vehicleid))
  109.     {
  110.                 new Weapon=GetPlayerWeapon(playerid);
  111.         if(Weapon==0)return 1;
  112.         if(Weapon!=28&&Weapon!=29&&Weapon!=32)return 1;
  113.         new Float:x, Float:y, Float:z;
  114.         GetPlayerPos(playerid,x,y,z);
  115.         if(GetVehicleModel(vehicleid)==471)
  116.         {
  117.             if(HOLDING(KEY_FIRE)){SetTimerEx("Quad",600,0,"d",playerid);}
  118.             if(HOLDING(KEY_ACTION)){SetTimerEx("Quad",600,0,"d",playerid);}
  119.             if(PRESSED(KEY_FIRE)&HOLDING(KEY_LOOK_RIGHT)){SetPlayerPos(playerid,x,y,z);SetVehiclePos(vehicleid,x,y,z);}
  120.             if(PRESSED(KEY_ACTION)&HOLDING(KEY_LOOK_RIGHT)){SetPlayerPos(playerid,x,y,z);SetVehiclePos(vehicleid,x,y,z);}
  121.             if(PRESSED(KEY_FIRE)&HOLDING(KEY_LOOK_LEFT)){SetPlayerPos(playerid,x,y,z);SetVehiclePos(vehicleid,x,y,z);}
  122.             if(PRESSED(KEY_ACTION)&HOLDING(KEY_LOOK_LEFT)){SetPlayerPos(playerid,x,y,z);SetVehiclePos(vehicleid,x,y,z);}
  123.         }
  124.         if(PRESSED(KEY_FIRE)&&IsBike(vehicleid)){SetPlayerPos(playerid,x,y,z);SetVehiclePos(vehicleid,x,y,z);}
  125.         if(PRESSED(KEY_ACTION)&&IsBike(vehicleid)&&IsBicy(vehicleid)==0){SetPlayerPos(playerid,x,y,z);SetVehiclePos(vehicleid,x,y,z);}
  126.         if((PRESSED(KEY_FIRE)&HOLDING(KEY_LOOK_RIGHT))&&IsDDBVehicle(vehicleid)){SetPlayerPos(playerid,x,y,z);SetVehiclePos(vehicleid,x,y,z);}
  127.         if((PRESSED(KEY_ACTION)&HOLDING(KEY_LOOK_RIGHT))&&IsDDBVehicle(vehicleid)){SetPlayerPos(playerid,x,y,z);SetVehiclePos(vehicleid,x,y,z);}
  128.         if((PRESSED(KEY_FIRE)&HOLDING(KEY_LOOK_LEFT))&&IsDDBVehicle(vehicleid)){SetPlayerPos(playerid,x,y,z);SetVehiclePos(vehicleid,x,y,z);}
  129.         if((PRESSED(KEY_ACTION)&HOLDING(KEY_LOOK_LEFT))&&IsDDBVehicle(vehicleid)){SetPlayerPos(playerid,x,y,z);SetVehiclePos(vehicleid,x,y,z);}
  130.     }
  131.     if(GetPlayerState(playerid)==PLAYER_STATE_PASSENGER&&IsPDBVehicle(vehicleid))
  132.     {
  133.                 new Weapon=GetPlayerWeapon(playerid);
  134.         if(Weapon==0)return 1;
  135.         if(Weapon!=28&&Weapon!=29&&Weapon!=32)return 1;
  136.         new Float:x, Float:y, Float:z;
  137.         GetPlayerPos(playerid,x,y,z);
  138.         if(PRESSED(2)&&PDBTRUE[playerid]==0){PDBTRUE[playerid]=1;return 1;}
  139.         if(PRESSED(KEY_FIRE)&&PDBTRUE[playerid]==1){PDBTRUE[playerid]=0;SetPlayerPos(playerid,x,y,z);SendDriverMessage(vehicleid);}
  140.         if(PRESSED(KEY_ACTION)&&PDBTRUE[playerid]==1){SetPlayerPos(playerid,x,y,z);SendDriverMessage(vehicleid);}
  141.     }
  142.     return 1;
  143. }
  144. public OnPlayerConnect(playerid){PDBTRUE[playerid]=0;timer[playerid]=0;return 1;}
  145. public OnPlayerStateChange(playerid,newstate,oldstate){
  146.     if(oldstate==PLAYER_STATE_PASSENGER)return PDBTRUE[playerid]=0;
  147.     return 1;
  148. }
  149. public OnFilterScriptInit()return Ini_Text();
  150. Ini_Text()
  151. {
  152.     Txt = TextDrawCreate(313.000000,11.000000,"Your passenger has been EJECTED for Drive-By!");
  153.     TextDrawUseBox(Txt,1);
  154.     TextDrawBoxColor(Txt,0xff0000ff);
  155.     TextDrawTextSize(Txt,558.000000,0.000000);
  156.     TextDrawAlignment(Txt,0);
  157.     TextDrawBackgroundColor(Txt,0x000000ff);
  158.     TextDrawFont(Txt,1);
  159.     TextDrawLetterSize(Txt,0.299999,0.899999);
  160.     TextDrawColor(Txt,0xffffffff);
  161.     TextDrawSetOutline(Txt,1);
  162.     TextDrawSetProportional(Txt,1);
  163.     TextDrawSetShadow(Txt,1);
  164.     return 1;
  165. }
  166. public OnPlayerUpdate(playerid)
  167. {
  168.     if(timer[playerid]!=0&&GetTickCount()-timer[playerid]>5000){timer[playerid]=0; TextDrawHideForPlayer(playerid,Txt);}
  169.     return 1;
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement