Guest User

Holy Freaking Shit

a guest
Jun 8th, 2010
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 15.30 KB | None | 0 0
  1. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5. //////OOOOOOO
  6. ////OO       OO                 XXX     XXX
  7. ///OO         OO                 XXX   XXX
  8. //OO           OO                 XXX XXX
  9. //OO           OO                 XXXXXXX
  10. ///OO         OO                  XXX XXX
  11. ////OO       OO                  XXX   XXX
  12. //////OOOOOOO   ______________  XXX     XXX
  13.  
  14. //Suggestions/Bug report dialogs:
  15. #define BUG_R 1
  16. #define SUGGE_S 2
  17. //Some Colors:
  18. #define COLOR_WHEAT 0xF5DEB3FF
  19. #define COLOR_RED 0xFF0000FF
  20. #define COLOR_LIGHTRED 0xC06343FF
  21. #define COLOR_PURPLE 0x400080FF
  22. #define COLOR_ORANGE 0xFF8040FF
  23. #define COLOR_GREEN 0x008000FF
  24. #define COLOR_YELLOW 0xFFFF00FF
  25. #define COLOR_LIGHTYELLOW 0xFFFF80FF
  26. //Define key holding function
  27. #define HOLDING(%0) \
  28.     ((newkeys & (%0)) == (%0))
  29. //Carname color
  30. #define CARNAMES_COLOR 5
  31. //Jump height... *********** Change to whatever you'd like:
  32. #define JUMP_HEIGHT 0.4
  33. //Other stuff
  34. #include <a_samp>
  35. #include <gl_common>
  36. #if defined FILTERSCRIPT
  37.  
  38. public OnFilterScriptInit()
  39. {
  40.     print("\n--------------------------------------");
  41.     print(" Basic useful stuff for stunt servers filterscript by O_x has been loaded.");
  42.     print("--------------------------------------\n");
  43.     return 1;
  44. }
  45.  
  46. public OnFilterScriptExit()
  47. {
  48.     print("\n--------------------------------------");
  49.     print(" Basic useful stuff for stunt servers filterscript by O_x has been unloaded.");
  50.     print("--------------------------------------\n");
  51.     return 1;
  52. }
  53.  
  54. #else
  55. //That is a global varaible for toggling /cjon/cjoff
  56. new Jump[MAX_PLAYERS];
  57. //Those are random colors for car spawning
  58. new colors[14] =
  59. {0,1,2,3,4,5,6,7,126,86,36,85,410,400};
  60. //Those are vehicle names+vehicle timers
  61. new CarM[MAX_PLAYERS];
  62. forward Check(playerid);
  63. forward Nameoff(playerid);
  64. new NamesCars[212][] = {
  65. {"Landstalker"},{"Bravura"},{"Buffalo"},{"Linerunner"},{"Perrenial"},{"Sentinel"},{"Dumper"},
  66. {"Firetruck"},{"Trashmaster"},{"Stretch"},{"Manana"},{"Infernus"},{"Voodoo"},{"Pony"},{"Mule"},
  67. {"Cheetah"},{"Ambulance"},{"Leviathan"},{"Moonbeam"},{"Esperanto"},{"Taxi"},{"Washington"},
  68. {"Bobcat"},{"Mr Whoopee"},{"BF Injection"},{"Hunter"},{"Premier"},{"Enforcer"},{"Securicar"},
  69. {"Banshee"},{"Predator"},{"Bus"},{"Rhino"},{"Barracks"},{"Hotknife"},{"Trailer 1"},{"Previon"},
  70. {"Coach"},{"Cabbie"},{"Stallion"},{"Rumpo"},{"RC Bandit"},{"Romero"},{"Packer"},{"Monster"},
  71. {"Admiral"},{"Squalo"},{"Seasparrow"},{"Pizzaboy"},{"Tram"},{"Trailer 2"},{"Turismo"},
  72. {"Speeder"},{"Reefer"},{"Tropic"},{"Flatbed"},{"Yankee"},{"Caddy"},{"Solair"},{"Berkley's RC Van"},
  73. {"Skimmer"},{"PCJ-600"},{"Faggio"},{"Freeway"},{"RC Baron"},{"RC Raider"},{"Glendale"},{"Oceanic"},
  74. {"Sanchez"},{"Sparrow"},{"Patriot"},{"Quad"},{"Coastguard"},{"Dinghy"},{"Hermes"},{"Sabre"},
  75. {"Rustler"},{"ZR-350"},{"Walton"},{"Regina"},{"Comet"},{"BMX"},{"Burrito"},{"Camper"},{"Marquis"},
  76. {"Baggage"},{"Dozer"},{"Maverick"},{"News Chopper"},{"Rancher"},{"FBI Rancher"},{"Virgo"},{"Greenwood"},
  77. {"Jetmax"},{"Hotring"},{"Sandking"},{"Blista Compact"},{"Police Maverick"},{"Boxville"},{"Benson"},
  78. {"Mesa"},{"RC Goblin"},{"Hotring Racer A"},{"Hotring Racer B"},{"Bloodring Banger"},{"Rancher"},
  79. {"Super GT"},{"Elegant"},{"Journey"},{"Bike"},{"Mountain Bike"},{"Beagle"},{"Cropdust"},{"Stunt"},
  80. {"Tanker"}, {"Roadtrain"},{"Nebula"},{"Majestic"},{"Buccaneer"},{"Shamal"},{"Hydra"},{"FCR-900"},
  81. {"NRG-500"},{"HPV1000"},{"Cement Truck"},{"Tow Truck"},{"Fortune"},{"Cadrona"},{"FBI Truck"},
  82. {"Willard"},{"Forklift"},{"Tractor"},{"Combine"},{"Feltzer"},{"Remington"},{"Slamvan"},
  83. {"Blade"},{"Freight"},{"Streak"},{"Vortex"},{"Vincent"},{"Bullet"},{"Clover"},{"Sadler"},
  84. {"Firetruck LA"},{"Hustler"},{"Intruder"},{"Primo"},{"Cargobob"},{"Tampa"},{"Sunrise"},{"Merit"},
  85. {"Utility"},{"Nevada"},{"Yosemite"},{"Windsor"},{"Monster A"},{"Monster B"},{"Uranus"},{"Jester"},
  86. {"Sultan"},{"Stratum"},{"Elegy"},{"Raindance"},{"RC Tiger"},{"Flash"},{"Tahoma"},{"Savanna"},
  87. {"Bandito"},{"Freight Flat"},{"Streak Carriage"},{"Kart"},{"Mower"},{"Duneride"},{"Sweeper"},
  88. {"Broadway"},{"Tornado"},{"AT-400"},{"DFT-30"},{"Huntley"},{"Stafford"},{"BF-400"},{"Newsvan"},
  89. {"Tug"},{"Trailer 3"},{"Emperor"},{"Wayfarer"},{"Euros"},{"Hotdog"},{"Club"},{"Freight Carriage"},
  90. {"Trailer 3"},{"Andromada"},{"Dodo"},{"RC Cam"},{"Launch"},{"Police Car (LSPD)"},{"Police Car (SFPD)"},
  91. {"Police Car (LVPD)"},{"Police Ranger"},{"Picador"},{"S.W.A.T. Van"},{"Alpha"},{"Phoenix"},{"Glendale"},
  92. {"Sadler"},{"Luggage Trailer A"},{"Luggage Trailer B"},{"Stair Trailer"},{"Boxville"},{"Farm Plow"},
  93. {"Utility Trailer"}
  94. };
  95. #endif
  96.  
  97.  
  98. public OnPlayerCommandText(playerid, cmdtext[])
  99. {
  100.     new cmd[256];
  101.     new idx;
  102.     cmd = strtok(cmdtext, idx);
  103.     if (strcmp("/cjon", cmdtext, true, 10) == 0)
  104.     {
  105.         SendClientMessage(playerid,COLOR_WHEAT,"Car jump mode is now on,press key H to jump with your vehicle.");
  106.         Jump[playerid] = 1;
  107.         return 1;
  108.     }
  109.     if (strcmp("/cjoff", cmdtext, true, 10) == 0)
  110.     {
  111.         SendClientMessage(playerid,COLOR_WHEAT,"Car jump mode is now off");
  112.         Jump[playerid] = 0;
  113.         return 1;
  114.     }
  115.     if (strcmp("/vgod on", cmdtext, true, 9) == 0)
  116.     {
  117.         new Float:health;
  118.         new veh;
  119.         veh = GetPlayerVehicleID(playerid);
  120.         GetVehicleHealth(veh, health);
  121.         if(health <1000) RepairVehicle(veh);
  122.         GameTextForPlayer(playerid,"~w~vgod ~g~On!",2000,5);
  123.         SetTimer("autofixtimer",1,1);
  124.         return 1;
  125.     }
  126.     if (strcmp("/vgod off", cmdtext, true, 10) == 0)
  127.     {
  128.         KillTimer(autofixtimer(playerid));
  129.         GameTextForPlayer(playerid,"~w~vgod ~r~Off!",2000,5);
  130.         return 1;
  131.     }
  132.     if(strcmp( cmd, "/spawn", true ) == 0 )
  133.     {
  134.         if(IsPlayerInAnyVehicle(playerid))
  135.         {
  136.             SendClientMessage(playerid,COLOR_RED,"You are already inside a vehicle.");
  137.             return 1;
  138.         }
  139.         else
  140.         {
  141.             if(!cmdtext[6])return SendClientMessage(playerid, COLOR_PURPLE, "USAGE: /Spawn [MODELID]");
  142.             new
  143.             tmp[128],
  144.             msg[56],
  145.             Float:a,
  146.             Float:X,
  147.             Float:Y,
  148.             Float:Z;
  149.             random(sizeof(colors));
  150.             new CarThatHaveSpawned;
  151.             tmp = strtok( cmdtext, idx );
  152.             strval( strtok( cmdtext, idx ) );
  153.             if(strval(tmp) > 611)
  154.             {
  155.                 SendClientMessage(playerid,COLOR_PURPLE,"ERROR:Vaild models are 400-611.");
  156.             }
  157.             else if (strval(tmp) < 400)
  158.             {
  159.                 SendClientMessage(playerid,COLOR_PURPLE,"ERROR:Vaild models are 400-611.");
  160.             }
  161.             else
  162.             {
  163.                 GetPlayerPos( playerid, X, Y, Z );
  164.                 GetPlayerFacingAngle(playerid,a);
  165.                 CarThatHaveSpawned = CreateVehicle( strval(tmp), X, Y, Z, a, colors[random(14)],colors[random(14)],-1 );
  166.                 PutPlayerInVehicle(playerid,CarThatHaveSpawned,0);
  167.                 SetPlayerFacingAngle(playerid,a);
  168.                 format(msg,56,"Created vehicle model: %d", strval(tmp));
  169.                 SendClientMessage(playerid,COLOR_PURPLE,msg);
  170.             }
  171.             return 1;
  172.         }
  173.     }
  174.     if (strcmp("/f", cmdtext, true, 10) == 0)
  175.     {
  176.         if(IsPlayerInAnyVehicle(playerid))
  177.         {
  178.             new Float:a,Car;
  179.             Car = GetPlayerVehicleID(playerid);
  180.             SendClientMessage(playerid,COLOR_ORANGE,"Your vehicle has been flipped.");
  181.             GetVehicleZAngle(Car,a);
  182.             SetVehicleZAngle(Car, a+0.5);
  183.         }
  184.         else
  185.         {
  186.             SendClientMessage(playerid,COLOR_LIGHTRED,"You are not inside a vehicle.");
  187.         }
  188.         return 1;
  189.      }
  190.     if(strcmp( cmd, "/setskin", true ) == 0 )
  191.     {
  192.         if(!cmdtext[8])return SendClientMessage(playerid, COLOR_PURPLE, "USAGE: /Setskin [SKINID]");
  193.         else if(!cmdtext[9])return SendClientMessage(playerid, COLOR_PURPLE, "USAGE: /Setskin [SKINID]");
  194.         new tmp[128];
  195.         tmp = strtok( cmdtext, idx );
  196.         strval( strtok( cmdtext, idx ) );
  197.         if(IsInvalidSkin(strval(tmp)))
  198.         {
  199.             SendClientMessage(playerid,COLOR_LIGHTRED,"This is an invailed skin ID.");
  200.         }
  201.         else if(strval(tmp) < 0 || strval(tmp) > 299)
  202.         {
  203.                 SendClientMessage(playerid,COLOR_LIGHTRED,"This is an invailed skin ID.");
  204.         }
  205.         else
  206.         {
  207.             SetPlayerSkin(playerid,strval(tmp));
  208.             new string[58];
  209.             format(string,sizeof(string),"You have set your skin to %d",strval(tmp));
  210.             SendClientMessage(playerid,COLOR_PURPLE,string);
  211.         }
  212.         return 1;
  213.      }
  214.     if(strcmp( cmd, "/givememoney", true ) == 0 )
  215.     {
  216.         if(!cmdtext[12])return SendClientMessage(playerid, COLOR_PURPLE, "USAGE: /GiveMeMoney [1-100000]");
  217.         new tmp[128];
  218.         new str[41];
  219.         tmp = strtok( cmdtext, idx );
  220.         strval( strtok( cmdtext, idx ) );
  221.         if(strval(tmp) < 1 || strval(tmp) >100000) SendClientMessage(playerid, COLOR_PURPLE, "USAGE: /GiveMeMoney [1-100000]");
  222.         else
  223.         {
  224.             GivePlayerMoney(playerid,strval(tmp));
  225.             format(str,sizeof(str),"You have given yourself %d$!",strval(tmp));
  226.             SendClientMessage(playerid,COLOR_RED,str);
  227.         }
  228.         return 1;
  229.     }
  230.     if(strcmp( cmd, "/heal", true ) == 0 )
  231.     {
  232.         new Float:h;
  233.         GetPlayerHealth(playerid,h);
  234.         if(h >= 100) return SendClientMessage(playerid,COLOR_WHEAT,"You don't need to be healed.");
  235.         else
  236.         {
  237.             SetPlayerHealth(playerid,100);
  238.             SendClientMessage(playerid,COLOR_ORANGE,"You have healed yourself.");
  239.         }
  240.         return 1;
  241.     }
  242.     if(strcmp( cmd, "/kill", true ) == 0 )
  243.     {
  244.         SendClientMessage(playerid,COLOR_RED,"You have killed yourself.");
  245.         SetPlayerHealth(playerid,0);
  246.         return 1;
  247.     }
  248.     if(strcmp( cmd, "/switch", true ) == 0 )
  249.     {
  250.         if(!cmdtext[7])return SendClientMessage(playerid, COLOR_PURPLE, "USAGE: /Switch [MODELID]");
  251.         else
  252.         {
  253.             if(IsPlayerInAnyVehicle(playerid))
  254.             {
  255.                 new tmp[128],msg[129],Float:a,Float:X,Float:Y,Float:Z,V,M,C,Float:vx,Float:vy,Float:vz;
  256.                 V = GetPlayerVehicleID(playerid);
  257.                 M = GetVehicleModel(V);
  258.                 random(sizeof(colors));
  259.                 GetPlayerPos(playerid,X,Y,Z);
  260.                 tmp = strtok( cmdtext, idx );
  261.                 strval( strtok( cmdtext, idx ) );
  262.                 GetVehicleVelocity(V,vx,vy,vz);
  263.                 if(strval(tmp) > 611)
  264.                 {
  265.                     SendClientMessage(playerid,COLOR_PURPLE,"ERROR:Vaild models are 400-611.");
  266.                 }
  267.                 else if (strval(tmp) < 400)
  268.                 {
  269.                     SendClientMessage(playerid,COLOR_PURPLE,"ERROR:Vaild models are 400-611.");
  270.                 }
  271.                 else
  272.                 {
  273.                     DestroyVehicle(V);
  274.                     format(msg,sizeof(msg),"Switched to vehicle %d from vehicle %d.",strval(tmp),M);
  275.                     GetPlayerFacingAngle(playerid,a);
  276.                     SendClientMessage(playerid,COLOR_PURPLE,msg);
  277.                     C = CreateVehicle(strval(tmp),X,Y,Z,a,colors[random(14)],colors[random(14)],-1);
  278.                     PutPlayerInVehicle(playerid,C,0);
  279.                     SetVehicleVelocity(C,vx,vy,vz);
  280.                 }
  281.                 return 1;
  282.             }
  283.             else
  284.             {
  285.                 SendClientMessage(playerid,COLOR_WHEAT,"You're not inside a vehicle.");
  286.                 return 1;
  287.             }
  288.         }
  289.     }
  290.     if(strcmp( cmd, "/fix", true ) == 0 )
  291.     {
  292.         if(IsPlayerInAnyVehicle(playerid))
  293.         {
  294.             new v,string[48],m;
  295.             v = GetPlayerVehicleID(playerid);
  296.             RepairVehicle(v);
  297.             m = GetVehicleModel(v);
  298.             format(string,sizeof(string),"You have fixed your vehicle.(Model id : %d)",m);
  299.             SendClientMessage(playerid,COLOR_PURPLE,string);
  300.         }
  301.         else
  302.         {
  303.             SendClientMessage(playerid,COLOR_RED,"You are not inside a vehicle.");
  304.         }
  305.         return 1;
  306.     }
  307.     if(strcmp(cmdtext, "/bugreport", true) == 0)
  308.     {
  309.         SendClientMessage(playerid,COLOR_GREEN,"Please report your bug discovery.");
  310.         ShowPlayerDialog(playerid,BUG_R,DIALOG_STYLE_INPUT,"Bug report","Please write down the bug that you'd like to report on:","Report","Cancel");
  311.         return 1;
  312.     }
  313.     if(strcmp(cmdtext, "/suggest", true) == 0)
  314.     {
  315.         SendClientMessage(playerid,COLOR_LIGHTYELLOW,"Please suggest what you've thought of for upcomming server versions/updates.");
  316.         ShowPlayerDialog(playerid,SUGGE_S,DIALOG_STYLE_INPUT,"Suggestion","Please suggest here what ever you'd like to see on our server:","Suggest","Cance;");
  317.         return 1;
  318.     }
  319.     return 0;
  320. }
  321.  
  322. public OnPlayerSpawn(playerid)
  323. {
  324.     return 1;
  325. }
  326. public OnPlayerStateChange(playerid, newstate, oldstate)
  327. {
  328.     if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
  329.     {
  330.         CarM[playerid] = GetVehicleModel(GetPlayerVehicleID(playerid));
  331.         Nameoff(playerid);
  332.         return 1;
  333.     }
  334.     return 1;
  335. }
  336.  
  337.  
  338. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  339. {
  340.     if ((newkeys & KEY_CROUCH) && !(oldkeys & KEY_CROUCH)) //CarJump
  341.     {
  342.         if(Jump[playerid] == 1)
  343.         {
  344.             if(IsPlayerInAnyVehicle(playerid))
  345.             {
  346.                 new veh;
  347.                 new Float:x,Float:y,Float:z;
  348.                 veh = GetPlayerVehicleID(playerid);
  349.                 GetVehicleVelocity(veh,x,y,z);
  350.                 SetVehicleVelocity(veh,x,y,z+JUMP_HEIGHT);
  351.             }
  352.         }
  353.     }
  354.     else if (HOLDING( KEY_FIRE ))//Unlimited Nitrous
  355.     {
  356.         if(IsPlayerInAnyVehicle(playerid))
  357.         {
  358.             new Pcar;
  359.             Pcar = GetPlayerVehicleID(playerid);
  360.             AddVehicleComponent(Pcar,1010);
  361.             SetTimer("Unos",10000,0);
  362.         }
  363.     }
  364.     return 1;
  365. }
  366. public OnPlayerStreamOut(playerid, forplayerid)
  367. {
  368.     return 1;
  369. }
  370. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  371. {
  372.     if(dialogid == BUG_R)
  373.     {
  374.         new File:Bugs = fopen("Bugs.txt",io_append);
  375.         new str[365],n[365],year,month,day,hour,minute,second;
  376.         getdate(year, month, day);
  377.         gettime(hour, minute, second);
  378.         GetPlayerName(playerid,n,sizeof(n));
  379.         format(str,365,"(At %d.%d.%d in %02d:%02d:%02d)%s has reported: %s\r\n",day,month,year,hour,minute,second,n,inputtext);
  380.         fwrite(Bugs,str);
  381.         fclose(Bugs);
  382.         SendClientMessage(playerid,COLOR_YELLOW,"Thanks for reporting that bug! We will fix it as soon as we can if possible.");
  383.         return 1;
  384.     }
  385.     else if(dialogid == SUGGE_S)
  386.     {
  387.         new File:Suggestions = fopen("Suggestions.txt",io_append);
  388.         new str[365],n[365],year,month,day,hour,minute,second;
  389.         getdate(year, month, day);
  390.         gettime(hour, minute, second);
  391.         GetPlayerName(playerid,n,sizeof(n));
  392.         format(str,365,"(At %d.%d.%d in %02d:%02d:%02d)%s has suggested: %s\r\n",day,month,year,hour,minute,second,n,inputtext);
  393.         fwrite(Suggestions,str);
  394.         fclose(Suggestions);
  395.         SendClientMessage(playerid,COLOR_YELLOW,"Thank you for suggesting us,we will consider making what you've asked!");
  396.         return 1;
  397.     }
  398.     return 0;
  399. }
  400. forward Unos(vehicleid,componentid,playerid);// Unlimited nitrous stuff :P
  401. public Unos(vehicleid,componentid,playerid)
  402. {
  403.     new Pcar2;
  404.     Pcar2 = GetPlayerVehicleID(playerid);
  405.     AddVehicleComponent(Pcar2,1010);
  406. }
  407. forward autofixtimer(playerid);//Auto vehicle fix
  408. public autofixtimer(playerid)
  409. {
  410.     new Float:health;
  411.     new veh;
  412.     veh = GetPlayerVehicleID(playerid);
  413.     GetVehicleHealth(veh, health);
  414.     if(health <1000) RepairVehicle(veh);
  415.     return 1;
  416. }
  417. public Check(playerid)
  418. {
  419.     if(GetVehicleModel(GetPlayerVehicleID(playerid)) != CarM[playerid])
  420.     {
  421.         CarM[playerid] = GetVehicleModel(GetPlayerVehicleID(playerid));
  422.         Nameoff(playerid);
  423.     }
  424.     return 1;
  425. }
  426. public Nameoff(playerid)
  427. {
  428.     new string[32];
  429.     format(string,sizeof(string),"~b~%s",NamesCars[CarM[playerid]-400]);
  430.     GameTextForPlayer(playerid,string,2000,1);
  431.     SetTimerEx("Check",1,true,"i",playerid);
  432. }
  433. IsInvalidSkin(skinid)
  434. {  
  435.     #define MAX_BAD_SKINS   14
  436.  
  437.     new badSkins[MAX_BAD_SKINS] = {
  438.         3, 4, 5, 6, 8, 42, 65, 74, 86,
  439.         119, 149, 208, 273, 289
  440.     };
  441.  
  442.     for (new i = 0; i < MAX_BAD_SKINS; i++) {
  443.         if (skinid == badSkins[i]) return true;
  444.     }
  445.  
  446.     return false;
  447. }
Advertisement
Add Comment
Please, Sign In to add comment