Advertisement
Guest User

Badger

a guest
Jan 14th, 2010
584
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.02 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. //Air vehicles
  15. IsAirVehicle(vehicleid)
  16. {
  17.     switch(GetVehicleModel(vehicleid)) {
  18.         case 592,577,511,512,593,520,553,476,519,460,513,548,425,417,487,488,497,563,447,469: return 1;
  19.     }
  20.     return 0;
  21. }
  22. //Trailers
  23. IsTrailer(vehicleid)
  24. {
  25.     switch(GetVehicleModel(vehicleid)) {
  26.         case 435,450,591,606,607,610,584,608,611: return 1;
  27.     }
  28.     return 0;
  29. }
  30. //Trains
  31. IsTrain(vehicleid)
  32. {
  33.     switch(GetVehicleModel(vehicleid)) {
  34.         case 590,569,537,538,570,449: return 1;
  35.     }
  36.     return 0;
  37. }
  38. //DB (Passenger) enabled vehicles
  39. IsPDBVehicle(vehicleid)
  40. {
  41.     new m=GetVehicleModel(vehicleid);
  42.     if(IsTrailer(vehicleid))return 0;
  43.     if(IsTrain(vehicleid))return 0;
  44.     if(IsAirVehicle(vehicleid))
  45.     {
  46.         if((m==593||m==511))return 1;
  47.         return 0;
  48.     }
  49.     if((m==437||m==431))return 0;
  50.     return 1;
  51. }
  52. //Sends a message to the driver
  53. SendDriverMessage(vehicleID)
  54. {
  55.     for(new i; i<MAX_PLAYERS; i++)
  56.     {
  57.         if(GetPlayerState(i)==2&&GetPlayerVehicleID(i)==vehicleID)
  58.         {
  59.             TextDrawShowForPlayer(i,Txt);
  60.             timer[i]=GetTickCount();
  61.         }
  62.     }
  63.     return 1;
  64. }
  65. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  66. {
  67.     new vehicleid=GetPlayerVehicleID(playerid);
  68.     if(GetPlayerState(playerid)==PLAYER_STATE_PASSENGER&&IsPDBVehicle(vehicleid))
  69.     {
  70.                 new Weapon=GetPlayerWeapon(playerid);
  71.         if(Weapon==0)return 1;
  72.         if(Weapon!=28&&Weapon!=29&&Weapon!=32)return 1;
  73.         new Float:x, Float:y, Float:z;
  74.         GetPlayerPos(playerid,x,y,z);
  75.         if(PRESSED(2)&&PDBTRUE[playerid]==0){PDBTRUE[playerid]=1;return 1;}
  76.         if(PRESSED(KEY_FIRE)&&PDBTRUE[playerid]==1){PDBTRUE[playerid]=0;SetPlayerPos(playerid,x,y,z);SendDriverMessage(vehicleid);}
  77.         if(PRESSED(KEY_ACTION)&&PDBTRUE[playerid]==1){SetPlayerPos(playerid,x,y,z);SendDriverMessage(vehicleid);}
  78.     }
  79.     return 1;
  80. }
  81. public OnPlayerConnect(playerid){PDBTRUE[playerid]=0;timer[playerid]=0;return 1;}
  82. public OnPlayerStateChange(playerid,newstate,oldstate){
  83.     if(oldstate==PLAYER_STATE_PASSENGER)return PDBTRUE[playerid]=0;
  84.     return 1;
  85. }
  86. public OnFilterScriptInit()return Ini_Text();
  87. Ini_Text()
  88. {
  89.     Txt = TextDrawCreate(313.000000,11.000000,"Your passenger has been EJECTED for Drive-By!");
  90.     TextDrawUseBox(Txt,1);
  91.     TextDrawBoxColor(Txt,0xff0000ff);
  92.     TextDrawTextSize(Txt,558.000000,0.000000);
  93.     TextDrawAlignment(Txt,0);
  94.     TextDrawBackgroundColor(Txt,0x000000ff);
  95.     TextDrawFont(Txt,1);
  96.     TextDrawLetterSize(Txt,0.299999,0.899999);
  97.     TextDrawColor(Txt,0xffffffff);
  98.     TextDrawSetOutline(Txt,1);
  99.     TextDrawSetProportional(Txt,1);
  100.     TextDrawSetShadow(Txt,1);
  101.     return 1;
  102. }
  103. public OnPlayerUpdate(playerid)
  104. {
  105.     if(timer[playerid]!=0&&GetTickCount()-timer[playerid]>5000){timer[playerid]=0; TextDrawHideForPlayer(playerid,Txt);}
  106.     return 1;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement