Guest User

17.08.2012 23:03

a guest
Aug 17th, 2012
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 10.03 KB | None | 0 0
  1. /*  Dieses Filterscript wurde am 17.08.2012 19:12 erstellt.
  2.  *  Eigentlich geht es an D.Fence, doch wenn ich ein Filerscript
  3.  *  mache, dann auch für das gesamte Forum.
  4.  *
  5.  *  Es ist ziemlich "basisch" angelegt, generell arbeite ich
  6.  *  nicht auf diesem Neavau, doch es ging
  7.  *  hier nur darum, um D.Fence eine kleine Hilfe zu gewähren.
  8.  *  Forbidden (c) 2012/13
  9.  */
  10.  
  11.  
  12.  
  13.  
  14. #include < a_samp >
  15.  
  16. new Text: Textdraw1; // Definierung aller Textdraws
  17. new Text: Textdraw2; // Textdraw2
  18. new Text: Textdraw3; // Textdraw3
  19. new Text: Textdraw4; // Textdraw4
  20. new Text: Textdraw5; // Textdraw5
  21. new Text: Textdraw6; // Textdraw6
  22.  
  23. #define DIALOG_FCONF    2   //ACHTUNG falls dieser Wert an einem anderen Dialog gegeben ist ÄNDERN!!!
  24. #define DIALOG_FCONT    3   //ACHTUNG falls dieser Wert an einem anderen Dialog gegeben ist ÄNDERN!!!
  25. #define LEBENUPDATE     1000 //1000MS sind 1 Sekunde, kann variiert werden
  26. #define DIALOG:DEBUG    1   //ACHTUNG falls dieser Wert an einem anderen Dialog gegeben ist ÄNDERN!!!
  27. //new bool: fControl;
  28.  
  29. //Dieser Array beinhaltet alle Autos in 2 Cells/Buffer
  30. //Das fraß mir am meißten Zeit die Autos einzureihen, sonst gibt es zu viele überschpssige Zeilen
  31.  
  32. new Vehicles[][] ={
  33. "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster",
  34. "Stretch","Manana","Infernus","Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto",
  35. "Taxi","Washington","Bobcat","Mr Whoopee","BF Injection","Hunter","Premier","Enforcer","Securicar","Banshee",
  36. "Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie","Stallion","Rumpo",
  37. "RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer",
  38. "Turismo","Speeder","Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer",
  39. "PCJ-600","Faggio","Freeway","RC Baron","RC Raider","Glendale","Oceanic","Sanchez","Sparrow","Patriot",
  40. "Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina","Comet","BMX",
  41. "Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo",
  42. "Greenwood","Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa",
  43. "RC Goblin","Hotring Racer A","Hotring Racer B","Bloodring Banger","Rancher","Super GT","Elegant",
  44. "Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain","Nebula","Majestic",
  45. "Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona",
  46. "FBI Truck","Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight",
  47. "Streak","Vortex","Vincent","Bullet","Clover","Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob",
  48. "Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A","Monster B","Uranus",
  49. "Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight",
  50. "Trailer","Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford",
  51. "BF-400","Newsvan","Tug","Trailer A","Emperor","Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C",
  52. "Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)","Police Car (LVPD)","Police Ranger",
  53. "Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
  54. "Stair Trailer","Boxville","Farm Plow","Utility Trailer" };
  55.  
  56. public OnFilterScriptInit ( )
  57. {
  58.     // Erstellung aller Textdraws
  59.     Textdraw1 = TextDrawCreate(155.000000, 354.000000, "Fahrzeug");
  60.     TextDrawBackgroundColor(Textdraw1, 255);
  61.     TextDrawFont(Textdraw1, 1);
  62.     TextDrawLetterSize(Textdraw1, 0.300000, 1.000000);
  63.     TextDrawColor(Textdraw1, -1778384696);
  64.     TextDrawSetOutline(Textdraw1, 1);
  65.     TextDrawSetProportional(Textdraw1, 1);
  66.  
  67.     Textdraw2 = TextDrawCreate(140.000000, 384.000000, "_");
  68.     TextDrawBackgroundColor(Textdraw2, 255);
  69.     TextDrawFont(Textdraw2, 1);
  70.     TextDrawLetterSize(Textdraw2, 0.300000, -3.599999);
  71.     TextDrawColor(Textdraw2, -1);
  72.     TextDrawSetOutline(Textdraw2, 1);
  73.     TextDrawSetProportional(Textdraw2, 1);
  74.     TextDrawUseBox(Textdraw2, 1);
  75.     TextDrawBoxColor(Textdraw2, 155);
  76.     TextDrawTextSize(Textdraw2, 221.000000, 1.000000);
  77.  
  78.     Textdraw3 = TextDrawCreate(158.000000, 382.000000, "Zustand");
  79.     TextDrawBackgroundColor(Textdraw3, 255);
  80.     TextDrawFont(Textdraw3, 1);
  81.     TextDrawLetterSize(Textdraw3, 0.300000, 1.000000);
  82.     TextDrawColor(Textdraw3, -1778384696);
  83.     TextDrawSetOutline(Textdraw3, 1);
  84.     TextDrawSetProportional(Textdraw3, 1);
  85.  
  86.     Textdraw4 = TextDrawCreate(140.000000, 412.000000, "_");
  87.     TextDrawBackgroundColor(Textdraw4, 255);
  88.     TextDrawFont(Textdraw4, 1);
  89.     TextDrawLetterSize(Textdraw4, 0.300000, -3.599999);
  90.     TextDrawColor(Textdraw4, -1);
  91.     TextDrawSetOutline(Textdraw4, 1);
  92.     TextDrawSetProportional(Textdraw4, 1);
  93.     TextDrawUseBox(Textdraw4, 1);
  94.     TextDrawBoxColor(Textdraw4, 155);
  95.     TextDrawTextSize(Textdraw4, 221.000000, 1.000000);
  96.  
  97.     Textdraw5 = TextDrawCreate(164.000000, 367.000000, "Infernus");
  98.     TextDrawBackgroundColor(Textdraw5, 255);
  99.     TextDrawFont(Textdraw5, 1);
  100.     TextDrawLetterSize(Textdraw5, 0.190000, 1.000000);
  101.     TextDrawColor(Textdraw5, -1);
  102.     TextDrawSetOutline(Textdraw5, 1);
  103.     TextDrawSetProportional(Textdraw5, 1);
  104.  
  105.     Textdraw6 = TextDrawCreate(169.000000, 394.000000, "1000");
  106.     TextDrawBackgroundColor(Textdraw6, 255);
  107.     TextDrawFont(Textdraw6, 1);
  108.     TextDrawLetterSize(Textdraw6, 0.150000, 1.000000);
  109.     TextDrawColor(Textdraw6, -1);
  110.     TextDrawSetOutline(Textdraw6, 1);
  111.     TextDrawSetProportional(Textdraw6, 1);
  112. }
  113.  
  114. public OnFilterScriptExit ( )
  115. {
  116.     //Zerstören der Textdraws
  117.     //Wobei es sinnlos ist, da sie sowieso zerstört werden
  118.     //Falls der Server ausgeht
  119.     TextDrawDestroy( Textdraw1 );
  120.     TextDrawDestroy( Textdraw2 );
  121.     TextDrawDestroy( Textdraw3 );
  122.     TextDrawDestroy( Textdraw4 );
  123.     TextDrawDestroy( Textdraw5 );
  124.     TextDrawDestroy( Textdraw6 );
  125.  
  126. }
  127.  
  128. public OnPlayerStateChange(playerid, newstate, oldstate)
  129. {
  130.     if ( (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) )
  131.     {
  132.         TextDrawShowForPlayer( playerid, Textdraw1 );//Alle Textdraws werden gezeigt, wenn der Spieler einsteigt, und automatisch zerstört beim aussteigen
  133.         TextDrawShowForPlayer( playerid, Textdraw2 );
  134.         TextDrawShowForPlayer( playerid, Textdraw3 );
  135.         TextDrawShowForPlayer( playerid, Textdraw4 );
  136.         TextDrawShowForPlayer( playerid, Textdraw5 );
  137.         TextDrawShowForPlayer( playerid, Textdraw6 );
  138.         SetTimer("HandleLeben", LEBENUPDATE, true); //hier wird die Definierung der einzelnen MS als Interval "umgewandelt" in dem Fall LEBENUPDATE = 1 Sekunde = 1000MS
  139.         HandleFahrzeug ( playerid );//Fahrzeug werden aufgeruft
  140.         HandleLeben    ( playerid );//Leben des Fahrzeug wird aufgerufen
  141.     }
  142.     return 1;
  143. }
  144. /*
  145. Warum?
  146. Es bewirkt folgendes:
  147. Falls eine Person das Fahrzeug während des Brennens verlässt
  148. Werden die Textdraws weggehen NICHT zerstört.
  149. Damit umgehen wir Fehler.
  150.  
  151. Da OnPlayerStateChange zusammen mit OnPlayerExitVehicle arbeitet, sehe ich mich noch gezwungen die Funktion einzubinden
  152. */
  153. public OnPlayerExitVehicle(playerid, vehicleid)
  154. {
  155.     TextDrawHide ( playerid );
  156.     return 1;
  157. }
  158. /*
  159. OnPlayerStateChange verlangt auch dass wenn ein Spieler sich außerhalb oder tot außerhalb des Fahrzeuges aufhälft, eine funktion zum abbrechen der Textdraws
  160. Da das quatsch ist, werden die Textdraws einfach nach der Callback OnPlayerDeath zerstört, was mehr Sinn macht.
  161. */
  162. public OnPlayerDeath(playerid, killerid, reason)
  163. {
  164.     TextDrawHide ( playerid );
  165.     return 1;
  166. }
  167.  
  168. stock HandleFahrzeug ( playerid )
  169. {
  170.     new str[50],
  171.         vid;
  172.  
  173.     vid = GetPlayerVehicleID(playerid);
  174.     format(str, sizeof(str), "%s", Vehicles[GetVehicleModel(vid)-400]);
  175.     TextDrawSetString(Textdraw5, str);
  176.  
  177. }
  178. forward HandleLeben ( playerid );
  179. public HandleLeben ( playerid )
  180. {
  181.     new
  182.         szStr[ 28 ],
  183.         Fahrzeug,
  184.         Float: Leben,
  185.         h;
  186.  
  187.  
  188.     Fahrzeug = GetPlayerVehicleID( playerid );
  189.     GetVehicleHealth( Fahrzeug, Leben );
  190.     h = floatround( Leben ) / 10;
  191.     format(szStr, sizeof( szStr ), "%d \%",  h);
  192.     TextDrawSetString(Textdraw6, szStr);
  193. }
  194.  
  195. public OnPlayerCommandText(playerid, cmdtext[])
  196. {
  197.     if(strcmp(cmdtext, "/infernus", true) == 0)
  198.     {
  199.         new Float: x,
  200.             Float: y,
  201.             Float: z;
  202.  
  203.         GetPlayerPos(playerid, x, y, z),
  204.         AddStaticVehicleEx(411, x + 3, y, z, 1, 0 ,0, 15);
  205.         return 1;
  206.     }
  207.  
  208.     if(strcmp(cmdtext, "/fcontrolaus", true) == 0)
  209.     {
  210.         TextDrawHide ( playerid );
  211.         ShowPlayerDialog(playerid, DIALOG_FCONF, DIALOG_STYLE_MSGBOX, "{FF8487}fControl", "{858487}fControl {FF0000}aktiviert", "Ok", "");
  212.         return 1;
  213.     }
  214.  
  215.     if(strcmp(cmdtext, "/debug", true) == 0)
  216.     {
  217.         new szStr[400]; //angepasst und passt
  218.         format(szStr, sizeof( szStr ), "{858487}Funtkion: LEBENUPDATE =         {90FF00}%d\n{858487}Funtkion: /infernus =           {90FF00}Erstellung eines Infernus\n{858487}Funtkion: TextDrawHide ( playerid ) =     {90FF00}Textdraw weg\n{858487}Funtkion: HandleFahrzeug ( playerid ) = {90FF00}FahrzeugLeben abrufen\n{858487}Funtkion: /fcontrolaus = {90FF00}Controlmodus aus", LEBENUPDATE);
  219.         ShowPlayerDialog(playerid, DIALOG:DEBUG, DIALOG_STYLE_MSGBOX, "{FF8487}Debuginfo", szStr, "Ok", "");
  220.         return 1;
  221.     }
  222.     return 0;
  223. }
  224. /*
  225. Warum wurden zu den Funktionen keine anderen Parameter miteinbezogen?
  226. Der Grund dafür ist, dass man nicht direckt ein Textdraw mit deren Len(s) benutzt.
  227. Man benutzt nur die Namen der Textdraws, wobei es quatsch wäre, auch die
  228. Parameter für die Namen zu machen, dazu würden auch errors kommen...
  229. */
  230.  
  231. stock TextDrawShow ( playerid )
  232. {
  233.     TextDrawShowForPlayer(playerid, Textdraw1);
  234.     TextDrawShowForPlayer(playerid, Textdraw2);
  235.     TextDrawShowForPlayer(playerid, Textdraw3);
  236.     TextDrawShowForPlayer(playerid, Textdraw4);
  237.     TextDrawShowForPlayer(playerid, Textdraw5);
  238.     TextDrawShowForPlayer(playerid, Textdraw6);
  239.     return 1;
  240. }
  241.  
  242. stock TextDrawHide ( playerid )
  243. {
  244.     TextDrawHideForPlayer(playerid, Textdraw1);
  245.     TextDrawHideForPlayer(playerid, Textdraw2);
  246.     TextDrawHideForPlayer(playerid, Textdraw3);
  247.     TextDrawHideForPlayer(playerid, Textdraw4);
  248.     TextDrawHideForPlayer(playerid, Textdraw5);
  249.     TextDrawHideForPlayer(playerid, Textdraw6);
  250.     return 1;
  251. }
Advertisement
Add Comment
Please, Sign In to add comment