Advertisement
Logan_Adams

Tutorial Gamemode by Logan Adams aka. McBastard112

May 23rd, 2012
1,005
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 45.33 KB | None | 0 0
  1. // created by Logan Adams 2012
  2. // © by Logan Adams 2012
  3. // Info: Es ist verboten die Credits zu löschen
  4. // Wer die Credits löscht wird mit einem schlechten Gewissen bestraft!
  5.  
  6. //Includes
  7. #include <a_samp>
  8. #include <MD5>
  9. #include <Ocmd>
  10. #include <opa_objects>
  11. #include <a_mysql>
  12. #include <sscanf2>
  13. #include <rft_mysql>
  14.  
  15. //Farben
  16. #define ROT 0xF50000FF
  17. #define BLAU 0x1400FFFF
  18. #define GELB 0xFFFF00FF
  19. #define GRÜN 0x19FF00FF
  20. #define TÜRKIS 0x00FFFFFF
  21. #define SCHWARZ 0x000000FF
  22. #define WEISS 0xFEFEFEFF
  23. #define GOLD 0xFFC800FF
  24. #define PINK 0xFF0055FF
  25. #define LILA 0xC800FFFF
  26. #define GRAU 0xAAAAAAFF
  27. #define gJob "Fahrer"
  28.  
  29. #define BLAU_HTML "{0037FF}"
  30. #define ROT_HTML "{FF000F}"
  31. #define GRUEN_HTML "{008900}"
  32. #define GELB_HTML "{FFC300}"
  33. #define LILA_HTML "{653AFF}"
  34. #define HELLBLAU_HTML "{0091FF}"
  35. #define WEISS_HTML "{FFFFFF}"
  36.  
  37. //Dialoge und andere Defines
  38. #define DIALOG_REGISTER 1
  39. #define DIALOG_LOGIN 2
  40. #define TACHOTIMER 1000
  41. #define MAX_SERVER_NAMEN 3
  42. #define DIALOG_RADIO 4
  43. #define DIALOG_FIGHT 5
  44. #define VERLUST 20000
  45. #define BENZINPREIS 3
  46.  
  47. //Variablen
  48. new Float:X1[MAX_PLAYERS],Float:Y1[MAX_PLAYERS],Float:Z1[MAX_PLAYERS];
  49. new Float:X2[MAX_PLAYERS],Float:Y2[MAX_PLAYERS],Float:Z2[MAX_PLAYERS];
  50. new SN[MAX_SERVER_NAMEN][64] = {{"~g~Mein Tutorial~r~ Server"},{"~y~Server noch im~b~ Scriptaufbau..."},{"~w~Besucht McBastard112's~r~ YouTube Kanal!"}};
  51. new Text:ServerNamen;
  52. new bool:Tazer = false;
  53. new Tank[MAX_VEHICLES],bool:TanktGerade[MAX_VEHICLES] = false,tanktimer[MAX_PLAYERS];
  54. forward BenzinVerlust();
  55. new Text:KlickText;
  56. forward Auftanken(playerid);
  57. new engine,lights,alarm,doors,bonnet,boot,objective;
  58. new bool:Motor[MAX_VEHICLES] = false;
  59. new zaehler;
  60. forward ServerNamenTimer();
  61. new pdgate;
  62. new PingWarns[MAX_PLAYERS];
  63. forward Tazertimer(issuerid);
  64. forward pdtortimer();
  65. forward CheckPing();
  66. new Text:Anzeige[MAX_PLAYERS];
  67. forward Motortimer();
  68. new Text:Uhr;
  69. forward UpdateUhr();
  70. forward Banntimer();
  71. new Text:Tacho[MAX_PLAYERS];
  72. forward UpdateTacho();
  73. new Aond[MAX_PLAYERS] = 0;
  74. new spawnskins[30]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30};
  75. new Frakcar[1];
  76. new Fahrzeugname[][] =
  77. {
  78.    "Landstalker",
  79.    "Bravura",
  80.    "Buffalo",
  81.    "Linerunner",
  82.    "Pereniel",
  83.    "Sentinel",
  84.    "Dumper",
  85.    "Firetruck",
  86.    "Trashmaster",
  87.    "Stretch",
  88.    "Manana",
  89.    "Infernus",
  90.    "Voodoo",
  91.    "Pony",
  92.    "Mule",
  93.    "Cheetah",
  94.    "Ambulance",
  95.    "Leviathan",
  96.    "Moonbeam",
  97.    "Esperanto",
  98.    "Taxi",
  99.    "Washington",
  100.    "Bobcat",
  101.    "Mr Whoopee",
  102.    "BF Injection",
  103.    "Hunter",
  104.    "Premier",
  105.    "Enforcer",
  106.    "Securicar",
  107.    "Banshee",
  108.    "Predator",
  109.    "Bus",
  110.    "Rhino",
  111.    "Barracks",
  112.    "Hotknife",
  113.    "Trailer",
  114.    "Previon",
  115.    "Coach",
  116.    "Cabbie",
  117.    "Stallion",
  118.    "Rumpo",
  119.    "RC Bandit",
  120.    "Romero",
  121.    "Packer",
  122.    "Monster Truck",
  123.    "Admiral",
  124.    "Squalo",
  125.    "Seasparrow",
  126.    "Pizzaboy",
  127.    "Tram",
  128.    "Trailer",
  129.    "Turismo",
  130.    "Speeder",
  131.    "Reefer",
  132.    "Tropic",
  133.    "Flatbed",
  134.    "Yankee",
  135.    "Caddy",
  136.    "Solair",
  137.    "RC Van",
  138.    "Skimmer",
  139.    "PCJ-600",
  140.    "Roller",
  141.    "Freeway",
  142.    "RC Baron",
  143.    "RC Raider",
  144.    "Glendale",
  145.    "Oceanic",
  146.    "Sanchez",
  147.    "Sparrow",
  148.    "Patriot",
  149.    "Quad",
  150.    "Coastguard",
  151.    "Dinghy",
  152.    "Hermes",
  153.    "Sabre",
  154.    "Rustler",
  155.    "ZR-350",
  156.    "Walton",
  157.    "Regina",
  158.    "Comet",
  159.    "Fahrrad",
  160.    "Burrito",
  161.    "Camper",
  162.    "Marquis",
  163.    "Baggage",
  164.    "Dozer",
  165.    "Maverick",
  166.    "News Chopper",
  167.    "Rancher",
  168.    "FBI Rancher",
  169.    "Virgo",
  170.    "Greenwood",
  171.    "Jetmax",
  172.    "Hotring",
  173.    "Sandking",
  174.    "Blista Compact",
  175.    "Police Maverick",
  176.    "Boxville",
  177.    "Benson",
  178.    "Mesa",
  179.    "RC Goblin",
  180.    "Hotring Racer",
  181.    "Hotring Racer",
  182.    "Bloodring Banger",
  183.    "Rancher",
  184.    "Super GT",
  185.    "Elegant",
  186.    "Journey",
  187.    "Bike",
  188.    "Bike",
  189.    "Beagle",
  190.    "Cropdust",
  191.    "Stunt",
  192.    "Tanker",
  193.    "RoadTrain",
  194.    "Nebula",
  195.    "Majestic",
  196.    "Buccaneer",
  197.    "Shamal",
  198.    "Hydra",
  199.    "FCR-900",
  200.    "NRG-500",
  201.    "HPV1000",
  202.    "Cement Truck",
  203.    "Tow Truck",
  204.    "Fortune",
  205.    "Cadrona",
  206.    "FBI Truck",
  207.    "Willard",
  208.    "Forklift",
  209.    "Traktor",
  210.    "Combine",
  211.    "Feltzer",
  212.    "Remington",
  213.    "Slamvan",
  214.    "Blade",
  215.    "Freight",
  216.    "Streak",
  217.    "Vortex",
  218.    "Vincent",
  219.    "Bullet",
  220.    "Clover",
  221.    "Sadler",
  222.    "Firetruck",
  223.    "Hustler",
  224.    "Intruder",
  225.    "Primo",
  226.    "Cargobob",
  227.    "Tampa",
  228.    "Sunrise",
  229.    "Merit",
  230.    "Utility",
  231.    "Nevada",
  232.    "Yosemite",
  233.    "Windsor",
  234.    "Monster Truck",
  235.    "Monster Truck",
  236.    "Uranus",
  237.    "Jester",
  238.    "Sultan",
  239.    "Stratum",
  240.    "Elegy",
  241.    "Raindance",
  242.    "RC Tiger",
  243.    "Flash",
  244.    "Tahoma",
  245.    "Savanna",
  246.    "Bandito",
  247.    "Freight",
  248.    "Trailer",
  249.    "Kart",
  250.    "Mower",
  251.    "Duneride",
  252.    "Sweeper",
  253.    "Broadway",
  254.    "Tornado",
  255.    "AT-400",
  256.    "DFT-30",
  257.    "Huntley",
  258.    "Stafford",
  259.    "BF-400",
  260.    "Newsvan",
  261.    "Tug",
  262.    "Trailer",
  263.    "Emperor",
  264.    "Wayfarer",
  265.    "Euros",
  266.    "Hotdog",
  267.    "Club",
  268.    "Trailer",
  269.    "Trailer",
  270.    "Andromada",
  271.    "Dodo",
  272.    "RC Cam",
  273.    "Launch",
  274.    "Polizeiwagen",
  275.    "Polizeiwagen",
  276.    "Polizeiwagen",
  277.    "Cop Ranger",
  278.    "Picador",
  279.    "SWAT Van",
  280.    "Alpha",
  281.    "Phoenix",
  282.    "Glendale",
  283.    "Sadler",
  284.    "Luggage Trailer",
  285.    "Luggage Trailer",
  286.    "Stair Trailer",
  287.    "Boxville",
  288.    "Farm Plow",
  289.    "Utility Trailer"
  290. };
  291.  
  292. enum SpielerDaten
  293. {
  294.     pName[MAX_PLAYER_NAME],
  295.     pLevel,
  296.     pGeld,
  297.     Float:pHealth,
  298.     pBanned,
  299.     pFraktion,
  300.     pAdminlevel
  301. }
  302.  
  303. //Enum Define
  304. new SpielerInfo[MAX_PLAYERS][SpielerDaten];
  305.  
  306.  
  307. main()
  308. {
  309.         print("\n----------------------------------");
  310.         print(" Tutorial Gamemode");
  311.         print("----------------------------------\n");
  312. }
  313.  
  314.  
  315. public OnGameModeInit()
  316. {
  317.         /**** MySQL Connection ****/
  318.         r_mysql_Connect_To_Database("localhost","root","","gta");
  319.         /**** *********************/
  320.        
  321.         /**** Motor, Licht & Tank Sachen ****/
  322.         ManualVehicleEngineAndLights();
  323.         for(new i= 0;i<MAX_VEHICLES;i++)
  324.         {
  325.             GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
  326.             SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,VEHICLE_PARAMS_ON,bonnet,boot,objective);
  327.             Motor[i] = false;
  328.             Tank[i] = 100;
  329.         }
  330.         /***** *****************************/
  331.        
  332.         /* Tach Schleife mit Textdraw... */
  333.         for( new x = 0;x<GetMaxPlayers();x++)
  334.         {
  335.                 Tacho[x] = TextDrawCreate(228.0000, 338.0000,"Blub");
  336.                 TextDrawLetterSize(Tacho[x],0.4,1.1);
  337.                 TextDrawFont(Tacho[x],1);
  338.                 TextDrawSetShadow(Tacho[x],2);
  339.                 TextDrawSetOutline(Tacho[x],1); //27
  340.                 TextDrawUseBox(Tacho[x],1);
  341.                 TextDrawTextSize(Tacho[x],441.0000,750.0000);
  342.         }
  343.         /********** ******/
  344.        
  345.         /**** Timer ****/
  346.         SetTimer("BenzinVerlust",VERLUST,true);
  347.         SetTimer("ServerNamenTimer",10000,1);
  348.         SetTimer("UpdateTacho",TACHOTIMER,1);
  349.         SetTimer("CheckPing",4000,true);
  350.         SetTimer("UpdateUhr",500,1);
  351.         SetTimer("ServerNamenTimer",15000,1);
  352.         /*********** ***/
  353.        
  354.         /**** Textdraws ****/
  355.         Uhr = TextDrawCreate(545.000000,21.000000,"Hier steht nichts");
  356.         TextDrawBackgroundColor(Uhr,255);
  357.         TextDrawFont(Uhr,3);
  358.         TextDrawLetterSize(Uhr,0.52,2.29999);
  359.         TextDrawColor(Uhr,-1);
  360.         TextDrawSetOutline(Uhr,0);
  361.         TextDrawSetProportional(Uhr,1);
  362.         TextDrawSetShadow(Uhr,1);
  363.        
  364.         ServerNamen = TextDrawCreate(251.0000,6.0000,"Testserver");
  365.         TextDrawBackgroundColor(ServerNamen,WEISS);
  366.         TextDrawSetShadow(ServerNamen,1);
  367.         TextDrawLetterSize(ServerNamen,0.5,1.2);
  368.         /**** *************/
  369.        
  370.         /**** Pickups & 3D-TextLabel ****/
  371.         CreatePickup(1239,1,1481.1127,-1772.1567,18.7958,-1);
  372.         Create3DTextLabel("Stadthalle\nEingang",ROT,1481.1127,-1772.1567,18.7958,20.0,-1,0);
  373.         CreatePickup(1239,1,388.8416,173.7418,1008.3828,-1);
  374.         Create3DTextLabel("Stadthalle\nAusgang",ROT,388.8416,173.7418,1008.3828,-1,0);
  375.         Create3DTextLabel("Willkommen am Noobspawn",GELB,1249.5454,-906.6514,46.6016,10.0,0);
  376.         /********************* *********/
  377.        
  378.         /**** Fahrzeuge ****/
  379.         Frakcar[0] = AddStaticVehicle(596,1238.2861,-890.9871,42.6031,96.0572,0,1);
  380.         AddStaticVehicleEx(4,1958.3783, 1343.1572, 15.3746,0,1,1,1);
  381.         AddStaticVehicleEx(500,1395.2147,-1808.0579,13.5469,57.3615,1,1,4);
  382.         /**** **************/
  383.        
  384.         /**** Objekte, Maps & Co. ****/
  385.         pdgate = CreateObject(975, 1548.900024, -1622.400024, 14.100000, 0.000000, 0.000000, 265.250000);
  386.         /***** ***********************/
  387.        
  388.         /**** Sonstiges ****/
  389.         DisableInteriorEnterExits();
  390.         UsePlayerPedAnims();
  391.         SetGameModeText("Tutorial Gamemode");
  392.         AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  393.         /**** ************/
  394.         return 1;
  395. }
  396.  
  397. public OnGameModeExit()
  398. {
  399.     SaveAllCurrentOnlinePlayers();
  400.     SendClientMessageToAll(GELB,"Der Server wurde gerade restartet.\r\nBitte geduldet euch!");
  401.     return 1;
  402. }
  403.  
  404. public OnPlayerRequestClass(playerid, classid)
  405. {
  406.         SetSpawnInfo(playerid,0,spawnskins[random(sizeof(spawnskins))],1958.3783, 1343.1572, 15.3746,0,0,0,0,0,0,0);
  407.         SpawnPlayer(playerid);
  408.         return 1;
  409. }
  410.  
  411. ocmd:killmyself(playerid,params[])
  412. {
  413.         #pragma unused params
  414.         SetPlayerHealth(playerid,0);
  415.         return 1;
  416. }
  417.  
  418. public OnPlayerConnect(playerid)
  419. {
  420.         TextDrawShowForAll(ServerNamen);
  421.         TextDrawShowForAll(Uhr);
  422.         Anzeige[playerid] = TextDrawCreate(630.0,410.0," "); // Erstellt das TextDraw an X|Y-Position 630|410 (unten rechts)
  423.         TextDrawSetOutline(Anzeige[playerid], 1); // Setzt dem TextDraw Outlines
  424.         TextDrawAlignment(Anzeige[playerid], 3); // Macht das TextDraw rechtsbündig
  425.         TextDrawSetShadow(Anzeige[playerid], 0); // Schaltet den Schatten des TextDraws aus
  426.         TextDrawShowForPlayer(playerid,Anzeige[playerid]); // Zeigt das TextDraw dem Spieler4
  427.         SetPlayerVirtualWorld(playerid,0);
  428.         if(IsPlayerNPC(playerid))return 1;
  429.         if(mysql_CheckAccount(playerid) == 1)
  430.         {
  431.             SpielerLaden(playerid);
  432.             new str[128];
  433.             format(str,sizeof str,"{FFFFFF}Herzlich Willkommen zurück auf meinem Server {FFC300}%s{FFFFFF}!\nGib bitte unten dein Passwort ein",SpielerName(playerid));
  434.             ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login Vorgang",str,"Login","");
  435.         }
  436.         else if(mysql_CheckAccount(playerid) == 0)
  437.         {
  438.             new str2[128];
  439.             format(str2,sizeof str2,"{FFFFFF}Herzlich Willkommen {FFC300}%s {FFFFFF}!\nBevor du loslegen kannst musst du dich zuerst registrieren.\nGib unten dein gewünschtes Passwort an!",SpielerName(playerid));
  440.             ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrierungsvorgang",str2,"Register","");
  441.         }
  442.         return 1;
  443. }
  444.  
  445. public OnPlayerDisconnect(playerid, reason)
  446. {
  447.         TextDrawHideForAll(ServerNamen);
  448.         TextDrawHideForAll(Uhr);
  449.         TextDrawHideForAll(KlickText);
  450.         if(GetPVarInt(playerid,"eingeloggt") == 1)
  451.         {
  452.             SpielerSpeichern(playerid);
  453.             DeletePVar(playerid,"eingeloggt");
  454.         }
  455.         return 1;
  456. }
  457.  
  458. public OnPlayerSpawn(playerid)
  459. {
  460.         SetPlayerPos(playerid,1249.5454,-906.6514,46.6016);
  461.         SetPlayerFacingAngle(playerid,187.7627);
  462.         return 1;
  463. }
  464.  
  465. public OnPlayerDeath(playerid, killerid, reason)
  466. {
  467.         StopAudioStreamForPlayer(playerid);
  468.         return 1;
  469. }
  470.  
  471. public OnVehicleSpawn(vehicleid)
  472. {
  473.         GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
  474.         SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,VEHICLE_PARAMS_ON,bonnet,boot,objective);
  475.         Motor[vehicleid] = false;
  476.         return 1;
  477. }
  478.  
  479. public OnVehicleDeath(vehicleid, killerid)
  480. {
  481.         SetVehicleToRespawn(vehicleid);
  482.         return 1;
  483. }
  484.  
  485. public OnPlayerText(playerid, text[])
  486. {
  487.         new string[128];
  488.         format(string,128,"%s sagt: %s",SpielerName(playerid),text);
  489.         for(new i = 0;i<GetMaxPlayers();i ++)
  490.         {
  491.                 new Float:X,Float:Y,Float:Z;
  492.                 GetPlayerPos(playerid,X,Y,Z);
  493.                 if(IsPlayerInRangeOfPoint(i,7.0,X,Y,Z))
  494.                 {
  495.                         SendClientMessage(i,WEISS,string);
  496.                         return 0;
  497.                 }
  498.         }
  499.         return 1;
  500. }
  501.  
  502. public OnPlayerCommandText(playerid, cmdtext[])
  503. {
  504.         return 0;
  505. }
  506.  
  507. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  508. {
  509.         SendClientMessage(playerid,GRÜN,"Info: Mit /radio kannst du das Radio anschalten");
  510.         SendClientMessage(playerid,GRÜN,"Info: Tippe die Taste 'Z' um den Motor ein/auszuschalten.");
  511.         if(GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 510)
  512.         {
  513.             GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
  514.             SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
  515.         }
  516.         return 1;
  517. }
  518.  
  519. public OnPlayerExitVehicle(playerid, vehicleid)
  520. {
  521.         StopAudioStreamForPlayer(playerid);
  522.         return 1;
  523. }
  524.  
  525. public OnPlayerStateChange(playerid, newstate, oldstate)
  526. {
  527.         if(newstate == PLAYER_STATE_DRIVER)
  528.         {
  529.                 for(new i = 0;i< sizeof(Frakcar);i++)
  530.                 {
  531.                         if(GetPlayerVehicleID(playerid) == Frakcar[i])
  532.                         {
  533.                                 if(SpielerInfo[playerid][pFraktion] != 1)
  534.                                 {
  535.                                         RemovePlayerFromVehicle(playerid);
  536.                                         SendClientMessage(playerid,ROT,"Du bist nicht in der richtigen Fraktion");
  537.                                 }
  538.                         }
  539.                 }
  540.         }
  541.         return 1;
  542. }
  543.  
  544. public OnPlayerEnterCheckpoint(playerid)
  545. {
  546.         DisablePlayerCheckpoint(playerid);
  547.         DisablePlayerRaceCheckpoint(playerid);
  548.         return 1;
  549. }
  550.  
  551. public OnPlayerLeaveCheckpoint(playerid)
  552. {
  553.         return 1;
  554. }
  555.  
  556. public OnPlayerEnterRaceCheckpoint(playerid)
  557. {
  558.         return 1;
  559. }
  560.  
  561. public OnPlayerLeaveRaceCheckpoint(playerid)
  562. {
  563.         return 1;
  564. }
  565.  
  566. public OnRconCommand(cmd[])
  567. {
  568.     return 1;
  569. }
  570.  
  571. public OnPlayerRequestSpawn(playerid)
  572. {
  573.         return 1;
  574. }
  575.  
  576. public OnObjectMoved(objectid)
  577. {
  578.         return 1;
  579. }
  580.  
  581. public OnPlayerObjectMoved(playerid, objectid)
  582. {
  583.         return 1;
  584. }
  585.  
  586. public OnPlayerPickUpPickup(playerid, pickupid)
  587. {
  588.         return 1;
  589. }
  590.  
  591. public OnVehicleMod(playerid, vehicleid, componentid)
  592. {
  593.         return 1;
  594. }
  595.  
  596. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  597. {
  598.     if(weaponid == 23 && Tazer == true && IsPlayerMember(playerid,1)&& issuerid != INVALID_PLAYER_ID)
  599.     {
  600.         new stri[128],stri2[128];
  601.         TogglePlayerControllable(playerid,0);
  602.         SetTimerEx("Tazertimer",5000,false,"d",playerid);
  603.         format(stri,sizeof stri,"%s hat dich mit dem Tazer getroffen",SpielerName(issuerid));
  604.         format(stri2,sizeof stri2,"Du hast %s mit dem Tazer getroffen",SpielerName(playerid));
  605.         SendClientMessage(playerid,ROT,stri);
  606.         SendClientMessage(issuerid,GRÜN,stri2);
  607.         SetPlayerSpecialAction(issuerid,SPECIAL_ACTION_DUCK);
  608.     }
  609.     return 1;
  610. }
  611.  
  612. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  613. {
  614.         return 1;
  615. }
  616.  
  617. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  618. {
  619.         return 1;
  620. }
  621.  
  622. public OnPlayerSelectedMenuRow(playerid, row)
  623. {
  624.         return 1;
  625. }
  626.  
  627. public OnPlayerExitedMenu(playerid)
  628. {
  629.         return 1;
  630. }
  631.  
  632. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  633. {
  634.         return 1;
  635. }
  636.  
  637. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  638. {
  639.         if(newkeys == KEY_SECONDARY_ATTACK)
  640.         {              
  641.                 if(IsPlayerInRangeOfPoint(playerid,5,1481.1127,-1772.1567,18.7958)) // Stadthallen Eingang in LS
  642.                 {
  643.                         SetPlayerInterior(playerid,3);
  644.                         SetPlayerPos(playerid,381.5300,173.8850,1008.3828);
  645.                         SetPlayerFacingAngle(playerid,88.6742);
  646.                         SetCameraBehindPlayer(playerid);
  647.                 }
  648.                 if(IsPlayerInRangeOfPoint(playerid,5,388.8416,173.7418,1008.3828))
  649.                 {
  650.                         SetPlayerInterior(playerid,0);
  651.                         SetPlayerPos(playerid,1481.4847,-1767.7715,18.7958);
  652.                         SetPlayerFacingAngle(playerid,0.3344);
  653.                         SetCameraBehindPlayer(playerid);
  654.                 }
  655.         }
  656.         if(newkeys == KEY_YES)
  657.         {
  658.             if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && IsPlayerInAnyVehicle(playerid) && !IsPlayerNPC(playerid))
  659.             {          
  660.                 new vehicleid = GetPlayerVehicleID(playerid);
  661.                 if(GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 510)
  662.                 {
  663.                     SendClientMessage(playerid,ROT,"In einem Fahrrad gibt es keinen Motor!");
  664.                     Motor[vehicleid] = false;
  665.                 }
  666.                 else if(Motor[vehicleid] == false)
  667.                 {
  668.                     SetTimer("Motortimer",3000,false);
  669.                     SendClientMessage(playerid,BLAU,"Der Motor wird gestartet .... bitte warten.");
  670.                 }
  671.                 else if(Tank[vehicleid] < 1)
  672.                 {
  673.                     SendClientMessage(playerid,ROT,"Tank leer. Nutze davor /tanken");
  674.                 }
  675.                 else
  676.                 {
  677.                     GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
  678.                     SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  679.                     SendClientMessage(playerid,ROT,"Motor erfolgreich ausgeschaltet.");
  680.                     Motor[vehicleid] = false;
  681.                 }
  682.             }
  683.         }  
  684.         return 1;
  685. }
  686.  
  687. public OnRconLoginAttempt(ip[], password[], success)
  688. {
  689.         return 1;
  690. }
  691.  
  692. public OnPlayerUpdate(playerid)
  693. {
  694.         new car = GetPlayerVehicleID(playerid);
  695.         if(GetVehicleModel(car) != 509 && GetVehicleModel(car) != 481 && GetVehicleModel(car) != 510 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  696.         {
  697.             new str[128];
  698.             if(Tank[car] <= 10) format(str,sizeof str,"~w~Tank: ~r~%i%",Tank[car]);
  699.             else if(Tank[car] <= 50) format(str,sizeof str,"~w~Tank: ~o~%i%",Tank[car]);
  700.             else if(Tank[car] <= 75) format(str,sizeof str,"~w~Tank: ~y~%i%",Tank[car]);
  701.             else if(Tank[car] <= 100) format(str,sizeof str,"~w~ Tank: ~g~%i%",Tank[car]);
  702.             TextDrawSetString(Anzeige[playerid],str);
  703.         }
  704.         else
  705.         {
  706.             TextDrawSetString(Anzeige[playerid],"");
  707.         }
  708.         return 1;
  709. }
  710.  
  711. public OnPlayerStreamIn(playerid, forplayerid)
  712. {
  713.         return 1;
  714. }
  715.  
  716. public OnPlayerStreamOut(playerid, forplayerid)
  717. {
  718.         return 1;
  719. }
  720.  
  721. public OnVehicleStreamIn(vehicleid, forplayerid)
  722. {
  723.         return 1;
  724. }
  725.  
  726. public OnVehicleStreamOut(vehicleid, forplayerid)
  727. {
  728.         return 1;
  729. }
  730.  
  731. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  732. {
  733.         if(dialogid == DIALOG_LOGIN)
  734.         {
  735.             if(response == 0)
  736.             {
  737.                 SendClientMessage(playerid,ROT,"Du hast den Login Vorgang abgebrochen und wirst deshalb nun gekickt!");
  738.                 Kick(playerid);
  739.             }
  740.             if(response == 1)
  741.             {
  742.                 if(!strlen(inputtext))
  743.                 {
  744.                     SendClientMessage(playerid,ROT,"Du musst auch ein Passwort angeben!");
  745.                     ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gib unten dein korrektes Passwort ein!","Login","Abbrechen");
  746.                     return 1;
  747.                 }
  748.                 else if(!strcmp(inputtext,mysql_ReturnPasswort(SpielerName(playerid)),true))
  749.                 {
  750.                         SpielerLaden(playerid);
  751.                         SetPVarInt(playerid,"eingeloggt",1);
  752.                 }
  753.                 else
  754.                 {
  755.                     ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Das Passwort war leider falsch!\nGib unten dein korrektes Passwort ein!","Login","Abbrechen");
  756.                 }
  757.             }
  758.         }
  759.         if(dialogid == DIALOG_REGISTER)
  760.         {
  761.             if(response == 0)
  762.             {
  763.                 SendClientMessage(playerid,ROT,"Du hast den Vorgang abgebrochen und wirst gekickt!");
  764.                 Kick(playerid);
  765.                 return 1;
  766.             }
  767.             if(response == 1)
  768.             {
  769.                 if(!strlen(inputtext))
  770.                 {
  771.                     SendClientMessage(playerid,ROT,"Dein Passwort war nicht lang genug!\nBitte versuche es erneut!");
  772.                     ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Register","Herzlich Willkommen.\n Da dies dein 1.Besuch bei uns ist, musst du dich zuerst registrieren.\nGib bitte unten dein gewünschtes Passwort ein!","Register","Abbrechen");
  773.                     return 1;
  774.                 }
  775.                 else
  776.                 {
  777.                     CreateAccount(playerid,inputtext); // Erstellen eines Accounts
  778.                     SetPVarInt(playerid,"eingeloggt",1);
  779.                     return 1;
  780.                 }
  781.             }
  782.         }
  783.         switch(dialogid)
  784.         {
  785.             case DIALOG_RADIO:
  786.             {
  787.                 if(!response)
  788.                 {
  789.                     SendClientMessage(playerid,ROT,"Du hast das Radio ausgeschaltet");
  790.                     StopAudioStreamForPlayer(playerid);
  791.                 }
  792.                 switch(listitem)
  793.                 {
  794.                     case 0:
  795.                     {
  796.                         PlayAudioStreamForPlayer(playerid,"http://listen.technobase.fm/dsl.asx");
  797.                         SendClientMessage(playerid,GRÜN,"Du hörst Technobase.FM");                                  
  798.                     }
  799.                     case 1:
  800.                     {
  801.                         PlayAudioStreamForPlayer(playerid,"http://listen.HardBase.FM/aacplus.pls");
  802.                         SendClientMessage(playerid,GRÜN,"Du hörst Hardbase.FM");
  803.                     }
  804.                     case 2:
  805.                     {
  806.                         PlayAudioStreamForPlayer(playerid,"http://listen.ClubTime.FM/aacplus.pls");
  807.                         SendClientMessage(playerid,GRÜN,"Du hörst Clubtime.FM");
  808.                     }
  809.                 }
  810.             }
  811.             case DIALOG_FIGHT:
  812.             {
  813.                 switch(listitem)
  814.                 {
  815.                     case 0:
  816.                     {
  817.                         SetPlayerFightingStyle(playerid,FIGHT_STYLE_NORMAL);
  818.                         GivePlayerMoney(playerid,-50);
  819.                         SendClientMessage(playerid,GRÜN,"Erfolg: Du hast den Fightstyle 'Normal' erlernt");
  820.                     }
  821.                     case 1:
  822.                     {
  823.                         SetPlayerFightingStyle(playerid,FIGHT_STYLE_BOXING);
  824.                         GivePlayerMoney(playerid,-200);
  825.                         SendClientMessage(playerid,GRÜN,"Erfolg: Du hast den Fightstyle 'Boxing' erlernt");
  826.                     }
  827.                     case 2:
  828.                     {
  829.                         SetPlayerFightingStyle(playerid,FIGHT_STYLE_KUNGFU);
  830.                         GivePlayerMoney(playerid,-250);
  831.                         SendClientMessage(playerid,GRÜN,"Erfolg: Du hast den Fightstyle 'Kungfu' erlernt");
  832.                     }
  833.                     case 3:
  834.                     {
  835.                         SetPlayerFightingStyle(playerid,FIGHT_STYLE_KNEEHEAD);
  836.                         GivePlayerMoney(playerid,-300);
  837.                         SendClientMessage(playerid,GRÜN,"Erfolg: Du hast den Fightstyle 'Kneehead' erlernt");
  838.                     }
  839.                     case 4:
  840.                     {
  841.                         SetPlayerFightingStyle(playerid,FIGHT_STYLE_GRABKICK);
  842.                         GivePlayerMoney(playerid,-400);
  843.                         SendClientMessage(playerid,GRÜN,"Erfolg: Du hast den Fightstyle 'Grabkick' erlernt");
  844.                     }
  845.                     case 5:
  846.                     {
  847.                         SetPlayerFightingStyle(playerid,FIGHT_STYLE_ELBOW);
  848.                         GivePlayerMoney(playerid,-500);
  849.                         SendClientMessage(playerid,GRÜN,"Erfolg: Du hast den Fightstyle 'Elbow' erlernt");
  850.                     }
  851.                 }
  852.             }
  853.     }  
  854.         return 1;
  855. }
  856.  
  857. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  858. {
  859.     return 1;
  860. }
  861.  
  862. //SpielerName-Stock
  863. stock SpielerName(playerid)
  864. {
  865.         new GetName[MAX_PLAYER_NAME];
  866.         GetPlayerName(playerid,GetName,sizeof(GetName));
  867.         return GetName;
  868. }
  869.  
  870. //SpielerLaden-Stock
  871. stock SpielerLaden(playerid)
  872. {
  873.     if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
  874.     {
  875.         GetPlayerName(playerid,SpielerInfo[playerid][pName],MAX_PLAYER_NAME);
  876.         if(r_LoadSQLEntrance("accounts","Name",SpielerInfo[playerid][pName]))
  877.         {
  878.            
  879.             SpielerInfo[playerid][pLevel] = r_mysql_GetInt("Level");
  880.             SpielerInfo[playerid][pHealth] = r_mysql_GetFloat("Health");
  881.             SpielerInfo[playerid][pAdminlevel] = r_mysql_GetInt("Adminlevel");
  882.             SpielerInfo[playerid][pFraktion] = r_mysql_GetInt("Fraktion");
  883.             SpielerInfo[playerid][pGeld] = r_mysql_GetInt("Geld");
  884.             SpielerInfo[playerid][pBanned] = r_mysql_GetInt("Banned");
  885.             GivePlayerMoney(playerid,SpielerInfo[playerid][pGeld]);
  886.             SetPlayerScore(playerid,SpielerInfo[playerid][pLevel]);
  887.             printf("[MySQL]Spielerdaten vom Spieler %s erfolgreich aus der Datenbank geladen[MySQL]",SpielerName(playerid));
  888.             if(SpielerInfo[playerid][pBanned] == 1)
  889.             {
  890.                 SendClientMessage(playerid,ROT,"Dieser Spieleraccount wurde von einem Administrator gebannt.");
  891.                 SendClientMessage(playerid,ROT,"Du kannst nicht mehr mit diesem Account spielen.");
  892.                 SendClientMessage(playerid,ROT,"Du darfst dir auch nicht unerlaubt einen neuen Account erstellen, das ist Multiaccounting und führt zu einem Range-Bann.");
  893.                 SendClientMessage(playerid,ROT,"Bei Fragen oder Einwänden melde dich im Forum oder im TS³ bei einem Admin.");
  894.                 SendClientMessage(playerid,ROT,"Du wirst jetzt nach 3 Sekunden gekickt.");
  895.                 SetTimer("Banntimer",3000,false);
  896.             }
  897.             r_UnloadSQLEntrance();
  898.         }
  899.        
  900.     }
  901.     return 1;
  902. }
  903.  
  904. //SpielerSPeichern-Stock
  905. stock SpielerSpeichern(playerid)
  906. {
  907.         if(GetPVarInt(playerid,"eingeloggt") == 1)
  908.         {
  909.             GetPlayerName(playerid,SpielerInfo[playerid][pName],MAX_PLAYER_NAME);
  910.             if(r_LoadSQLEntrance("accounts","Name",SpielerInfo[playerid][pName]))
  911.             {
  912.                 SpielerInfo[playerid][pLevel] = r_mysql_SetInt("Level",GetPlayerScore(playerid));              
  913.                 SpielerInfo[playerid][pGeld] = r_mysql_SetInt("Geld",GetPlayerMoney(playerid));
  914.                 r_mysql_SetInt("Fraktion",SpielerInfo[playerid][pFraktion]);
  915.                 r_mysql_SetFloat("Health",SpielerInfo[playerid][pHealth]);
  916.                 r_mysql_SetInt("Banned",SpielerInfo[playerid][pBanned]);
  917.                 r_mysql_SetInt("Adminlevel",SpielerInfo[playerid][pAdminlevel]);
  918.                 printf("[MySQL]Spielerdaten vom Spieler %s erfolgreich in der Datenbank gespeichert.[MySQL]",SpielerName(playerid));
  919.                 r_UnloadSQLEntrance();
  920.             }
  921.         }
  922.         return 1;
  923. }
  924.  
  925. //Admin-Stock
  926. stock IstSpielerAdmin(playerid,level)
  927. {
  928.         if(SpielerInfo[playerid][pAdminlevel] >=level)return 1;
  929.         return 0;
  930. }
  931.  
  932. //OCMD-Befehle
  933. ocmd:su(playerid,params[])
  934. {
  935.         new pID,anzahl,grund[20],string[128],string2[128];
  936.         if(!IsPlayerMember(playerid,1)) return SendClientMessage(playerid,ROT,"Nur Cops dürfen das.");
  937.         if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist nicht connected");
  938.         if(sscanf(params,"uis",pID,anzahl,grund))return SendClientMessage(playerid,ROT,"Benutzung: /su [Name/ID] [Anzahl] [Grund]");
  939.         if(IsPlayerMember(playerid,1))
  940.         {
  941.                 SetPlayerWantedLevel(pID,GetPlayerWantedLevel(pID)+anzahl);
  942.                 format(string,sizeof(string),"Du hast %s %i Wanteds gegeben. Grund: %s",SpielerName(pID),anzahl,grund);
  943.                 format(string2,sizeof(string2),"Officer %s hat dir %i Wanteds gegeben. Grund: %s",SpielerName(playerid),anzahl,grund);
  944.                 SendClientMessage(playerid,GRÜN,string);
  945.                 SendClientMessage(pID,ROT,string2);
  946.                 SpielerSpeichern(playerid);
  947.                 SpielerSpeichern(pID);
  948.                 return 1;
  949.         }
  950.         return 1;
  951. }
  952.  
  953. ocmd:switchtazer(playerid,params[])
  954. {
  955.     #pragma unused params
  956.     if(!IsPlayerMember(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Polizist.");
  957.     if(Tazer == false)
  958.     {
  959.         Tazer = true;
  960.         SendClientMessage(playerid,GRÜN,"Du hast nun den Tazer bei deiner Silenced Pistol aktiviert.");
  961.     }
  962.     else
  963.     {
  964.         Tazer = false;
  965.         SendClientMessage(playerid,GRÜN,"Du hast den Tazer nun wieder ausgeschaltet.");
  966.     }
  967.     return 1;
  968. }
  969.  
  970. ocmd:setmember(playerid,params[])
  971. {
  972.         new pID,frakid,string[128];
  973.         if(!IstSpielerAdmin(playerid,5))return SendClientMessage(playerid,ROT,"Zugriff verweigert. Benötigter Rang: Fulladmin");
  974.         if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist nicht connected");
  975.         if(sscanf(params,"ui",pID,frakid))return SendClientMessage(playerid,ROT,"Benutzung: /setmember [Name/Playerid] [Fraktionsid]");
  976.         if(IstSpielerAdmin(playerid,5))
  977.         {
  978.                 SpielerInfo[pID][pFraktion] = frakid;
  979.                 format(string,128,"[AdmCmd] Fulladmin %s hat %s in die Fraktion %i gesetzt",SpielerName(playerid),SpielerName(pID),frakid);
  980.                 SendClientMessageToAll(ROT,string);
  981.                 SpielerSpeichern(playerid);
  982.                 SpielerSpeichern(pID);
  983.         }
  984.         return 1;
  985. }
  986.  
  987. ocmd:tor(playerid,params[])
  988. {
  989.         #pragma unused params
  990.         if(IsPlayerInRangeOfPoint(playerid,5,1548.900024, -1622.400024, 14.100000))
  991.         {
  992.                 MoveObject(pdgate,1548.900024, -1622.400024-10, 14.100000,2);
  993.                 SetTimer("pdtortimer",10000,0);
  994.                 SendClientMessage(playerid,ROT,"Das Tor wird sich nach 10 Sekunden automatisch schließen!");
  995.                 return 1;
  996.         }
  997.         else
  998.         {
  999.             SendClientMessage(playerid,ROT,"Du bist nicht nahe genung am Tor!");
  1000.             return 1;
  1001.         }
  1002. }
  1003.  
  1004. public pdtortimer()
  1005. {
  1006.         MoveObject(pdgate,1548.900024, -1622.400024, 14.100000,2);
  1007.         return 1;
  1008. }
  1009.  
  1010. ocmd:ban(playerid,params[])
  1011. {
  1012.     new pID,string[128],grund[128];
  1013.     if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist nicht connected!");
  1014.     if(sscanf(params,"us",pID))return SendClientMessage(playerid,ROT,"Benutzung: /ban [ID] [Grund]");
  1015.     if(IstSpielerAdmin(playerid,2))
  1016.     {
  1017.         SpielerInfo[pID][pBanned] = 1;
  1018.         format(string,sizeof(string),"[AdmCmd] %s hat %s permanent vom Server gebannt. Grund: %s",SpielerName(playerid),SpielerName(pID),grund);
  1019.         SendClientMessageToAll(ROT,string);
  1020.         FreezePlayer(pID);
  1021.         Kick(pID);
  1022.         SpielerSpeichern(playerid);
  1023.         SpielerSpeichern(pID);
  1024.     }
  1025.     else
  1026.         {
  1027.             SendClientMessage(playerid,ROT,"Dein Adminlevel ist zu niedrig");
  1028.             return 1;
  1029.         }
  1030.     return 1;
  1031. }
  1032.  
  1033. ocmd:changefightstyle(playerid,parmas[])
  1034. {
  1035.     ShowPlayerDialog(playerid,DIALOG_FIGHT,DIALOG_STYLE_LIST,"Fightstyle auswählen","Normal\r\nBoxing\r\nKungfu\r\nKneehead\r\nGrabkick\r\nElbow","OK","Quit");
  1036.     return 1;
  1037. }
  1038.  
  1039. ocmd:kick(playerid,params[])
  1040. {
  1041.         new pID,string[128],grund[128];
  1042.         if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist nicht connected!");
  1043.         if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid,ROT,"Benutzung: /kick [ID] [Grund]");
  1044.         if(IstSpielerAdmin(playerid,1))
  1045.         {
  1046.                 format(string,sizeof(string),"[AdmCmd] %s hat %s vom Server gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),grund);
  1047.                 SendClientMessageToAll(ROT,string);
  1048.                 Kick(pID);
  1049.                 FreezePlayer(pID);
  1050.                 SpielerSpeichern(playerid);
  1051.                 SpielerSpeichern(pID);
  1052.         }
  1053.         else
  1054.         {
  1055.             SendClientMessage(playerid,ROT,"Dein Adminlevel ist zu niedrig");
  1056.             return 1;
  1057.         }
  1058.         return 1;
  1059. }
  1060.  
  1061. ocmd:goto(playerid,params[])
  1062. {
  1063.         new pID,string[128],string2[128];
  1064.         if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist nicht connected!");
  1065.         if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"Benutzung: /goto [ID]");
  1066.         if(IstSpielerAdmin(playerid,1))
  1067.         {
  1068.             new Float:x,Float:y,Float:z,Float:angle;
  1069.             GetPlayerPos(pID,x,y,z);
  1070.             GetPlayerFacingAngle(pID,angle);
  1071.             SetPlayerPos(playerid,x+1,y,z);
  1072.             SetPlayerFacingAngle(playerid,angle);
  1073.             format(string,sizeof(string),"[AdmCmd] %s hat sich zu dir teleportiert",SpielerName(playerid));
  1074.             format(string2,sizeof(string2),"[AdmCmd] Du hast dich erfolgreich zum Spieler %s teleportiert",SpielerName(pID));
  1075.             SendClientMessage(pID,ROT,string);
  1076.             SendClientMessage(playerid,ROT,string2);
  1077.             return 1;
  1078.         }
  1079.         return 1;
  1080. }
  1081.  
  1082. ocmd:setadmin(playerid,params[])
  1083. {
  1084.         new pID,rang,string[128];
  1085.         if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist nicht connected!");
  1086.         if(sscanf(params,"ui",pID,rang))return SendClientMessage(playerid,ROT,"Benutzung: /setadmin [ID] [Adminlevel]");
  1087.         if( rang <0 || rang > 3)return SendClientMessage(playerid,ROT,"Das Adminlevel muss zwischen 1 und 3 sein");
  1088.         if(IstSpielerAdmin(playerid,3))
  1089.         {
  1090.             SpielerInfo[pID][pAdminlevel] = rang;
  1091.             format(string,sizeof(string),"[AdmCmd] %s wurde von %s ins Adminteam mit dem Adminlevel %i gesetzt",SpielerName(pID),SpielerName(playerid),rang);
  1092.             SendClientMessageToAll(ROT,string);
  1093.             SpielerSpeichern(playerid);
  1094.             return 1;
  1095.         }
  1096.         else
  1097.         {
  1098.             SendClientMessage(playerid,ROT,"Zugriff verweigert. Benötigter Rang : Head Admin");
  1099.             return 1;
  1100.         }
  1101. }
  1102.  
  1103. //Freeze-Stock
  1104. stock FreezePlayer(playerid)
  1105. {
  1106.         TogglePlayerControllable(playerid,0);
  1107.         return 1;
  1108. }
  1109.  
  1110. //Unfreeze Stock
  1111. stock UnFreezePlayer(playerid)
  1112. {
  1113.         TogglePlayerControllable(playerid,1);
  1114.         return 1;
  1115. }
  1116.  
  1117. ocmd:heal(playerid,params[])
  1118. {
  1119.         new pID,string[128],string2[128];
  1120.         if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist nicht connected!");
  1121.         if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"Benutzung: /heal [ID]");
  1122.         SetPlayerHealth(playerid,100.0);
  1123.         format(string,sizeof(string),"Du hast den Spieler %s erfolgreich geheilt",SpielerName(pID));
  1124.         format(string2,sizeof(string2),"Du wurdest vom Spieler %s geheilt",SpielerName(playerid));
  1125.         SendClientMessage(playerid,GRÜN,string);
  1126.         SendClientMessage(pID,GRÜN,string2);
  1127.         return 1;
  1128. }
  1129.  
  1130.  
  1131. //Fraktionsabfrage
  1132. stock IsPlayerMember(playerid,frakid)
  1133. {
  1134.         if(SpielerInfo[playerid][pFraktion] == frakid)return 1;
  1135.         return 0;
  1136. }
  1137.  
  1138. public CheckPing()
  1139. {
  1140.         for(new i = 0;i<GetMaxPlayers();i++)
  1141.         {
  1142.                 if(GetPlayerPing(i) > 250)
  1143.                 {
  1144.                         PingWarns[i] ++;
  1145.                         SendClientMessage(i,ROT,"Warnung erhalten. Grund: Zu hoher Ping. Info: Nach 5 Ping-Warnungen folgt ein Kick.");
  1146.                 }
  1147.                 if(PingWarns[i] > 5)
  1148.                 {
  1149.                         SendClientMessage(i,ROT,"[AdmCmd] %s wurde vom Serversystem automatisch gekicket. Grund: Zu hoher Ping (über 250)");
  1150.                         Kick(i);
  1151.                 }
  1152.         }
  1153.         return 1;
  1154. }
  1155.  
  1156.  
  1157. ocmd:veh(playerid,params[])
  1158. {
  1159.         new Float:vehx,Float:vehy,Float:vehz;
  1160.         new vehid,cc1,cc2,string[128];
  1161.         if(sscanf(params,"iii",vehid,cc1,cc2))return SendClientMessage(playerid, ROT,"Benutzung: /veh [Vehicle ID] [Farbe 1] [Farbe 2]");
  1162.         if(IstSpielerAdmin(playerid,5))
  1163.         {
  1164.                 GetPlayerPos(playerid,vehx,vehy,vehz);
  1165.                 new carid = CreateVehicle(vehid,vehx,vehy,vehz,3,cc1,cc2,-1);
  1166.                 SetVehicleNumberPlate(carid,"~>Admin<~");
  1167.                 PutPlayerInVehicle(playerid, carid, 0);
  1168.                 format(string,sizeof(string),"[AdmCmd] Du hast ein Admincar gespawnt! (FahrzeugID :%d)",GetVehicleModel(GetPlayerVehicleID(playerid)));
  1169.                 SendClientMessage(playerid,ROT,string);
  1170.         }
  1171.         else
  1172.         {
  1173.                 SendClientMessage(playerid,ROT,"Zugriff verweigert.Benötigter Rang: {FF0023}FullAdmin");
  1174.         }
  1175.         return 1;
  1176. }
  1177.  
  1178. public UpdateUhr()
  1179. {
  1180.         new stunde,minute,sekunde,uhrstring[9];
  1181.         gettime(stunde,minute,sekunde);
  1182.         format(uhrstring,9,"%02d:%02d:%02d",stunde,minute,sekunde);
  1183.         TextDrawSetString(Uhr,uhrstring);
  1184. }
  1185.  
  1186. public UpdateTacho()
  1187. {
  1188.         for(new x = 0;x<GetMaxPlayers();x++)
  1189.         {
  1190.                 if(IsPlayerConnected(x) && GetPlayerState(x) == PLAYER_STATE_DRIVER && !IsPlayerNPC(x))
  1191.                 {
  1192.                         new Float:Strecke,Float:Geschwindigkeit;
  1193.                         GetVehiclePos(GetPlayerVehicleID(x),X1[x],Y1[x],Z1[x]);
  1194.                         Strecke = floatsqroot(floatpower(floatabs(floatsub(X1[x],X2[x])),2)+floatpower(floatabs(floatsub(Y1[x],Y2[x])),2)+floatpower(floatabs(floatsub(Z1[x],Z2[x])),2));
  1195.                         Geschwindigkeit = (Strecke / (TACHOTIMER/1000)) * 3.6;
  1196.                         new String[80];
  1197.                         format(String,80,"Geschwindigkeit: ~b~%d km/h ~n~Fahrzeugtyp: ~r~%s",floatround(Geschwindigkeit),Fahrzeugname[GetVehicleModel(GetPlayerVehicleID(x))-400]);
  1198.                         TextDrawSetString(Tacho[x],String);
  1199.                         GetVehiclePos(GetPlayerVehicleID(x),X2[x],Y2[x],Z2[x]);
  1200.                         TextDrawShowForPlayer(x,Tacho[x]);
  1201.                 }
  1202.                 else
  1203.                 {
  1204.                         TextDrawHideForPlayer(x,Tacho[x]);
  1205.                 }
  1206.         }      
  1207.         return 1;
  1208. }
  1209.  
  1210. public ServerNamenTimer()
  1211. {
  1212.     for(new i=0;i<MAX_SERVER_NAMEN;i++)
  1213.     {
  1214.         new string[128];
  1215.         format(string,128,"%s",SN[zaehler]);
  1216.         zaehler += 1;
  1217.         TextDrawSetString(ServerNamen,string);
  1218.         if(zaehler >= MAX_SERVER_NAMEN)
  1219.         {
  1220.                 zaehler = 0;
  1221.         }
  1222.     }
  1223.     return 1;  
  1224. }
  1225.  
  1226. ocmd:aduty(playerid,params[])
  1227. {
  1228.         new Text3D:ADuty[MAX_PLAYERS],nachricht[128];
  1229.         new Float:X,Float:Y,Float:Z;
  1230.         if(!IstSpielerAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Admin");
  1231.         if(IstSpielerAdmin(playerid,1))
  1232.         {
  1233.                 if(Aond[playerid] == 0)
  1234.                 {
  1235.                         GetPlayerPos(playerid,X,Y,Z);
  1236.                         ADuty[playerid] = Create3DTextLabel("Admin im Dienst. DM verboten!",ROT,X,Y,Z,50.0,0,0);
  1237.                         format(nachricht,128,"%s hat sich als Admin angemeldet",SpielerName(playerid));
  1238.                         SendClientMessageToAll(GRÜN,nachricht);
  1239.                         Attach3DTextLabelToPlayer(ADuty[playerid],playerid,0.0,0.0,0.75);
  1240.                         Aond[playerid] = 1;
  1241.                         return 1;
  1242.                 }
  1243.         }
  1244.         else
  1245.         {
  1246.                 Delete3DTextLabel(ADuty[playerid]);
  1247.                 format(nachricht,128,"%s hat sich als Admin abgemeldet",SpielerName(playerid));
  1248.                 Aond[playerid] = 0;
  1249.                 SendClientMessageToAll(GRÜN,nachricht);
  1250.                 return 1;
  1251.         }
  1252.         return 1;
  1253. }
  1254.  
  1255. ocmd:radio(playerid,params[])
  1256. {
  1257.         #pragma unused params
  1258.         if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1259.         {
  1260.                 ShowPlayerDialog(playerid,DIALOG_RADIO,DIALOG_STYLE_LIST,"Radio - Sender","Technobase.FM\nHardbase.FM\nClubtime.FM","OK","Quit");
  1261.         }
  1262.         else if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
  1263.         {
  1264.                 SendClientMessage(playerid,ROT,"Du bist kein Fahrer");
  1265.         }
  1266.         else
  1267.         {
  1268.                 SendClientMessage(playerid,ROT,"Du bist in keinem Auto");
  1269.         }
  1270.         return 1;
  1271. }
  1272.  
  1273. ocmd:stadthalle(playerid,params[])
  1274. {
  1275.         #pragma unused params
  1276.         if(!IstSpielerAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Adminlevel zu niedrig");
  1277.         if(IstSpielerAdmin(playerid,1))
  1278.         {
  1279.                 SetPlayerPos(playerid,1481.1127,-1772.1567,18.7958);
  1280.                 SendClientMessage(playerid,ROT,"Erfolgreich zur Stadthalle teleportiert");
  1281.         }
  1282.         return 1;
  1283.  }
  1284.  
  1285. stock mysql_CheckAccount(playerid)
  1286. {
  1287.     new Query[128],Name[MAX_PLAYER_NAME],count;
  1288.     GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  1289.     mysql_real_escape_string(Name, Name);
  1290.     format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", Name);
  1291.     mysql_query(Query);
  1292.     mysql_store_result();
  1293.     count = mysql_num_rows();
  1294.     mysql_free_result();
  1295.     return count;
  1296. }
  1297.  
  1298. stock CreateAccount(playerid, pass[])
  1299. {
  1300.     new query[256],Name[MAX_PLAYER_NAME];
  1301.     GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  1302.     mysql_real_escape_string(Name,Name);
  1303.     mysql_real_escape_string(pass,pass);
  1304.     format(query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, pass);
  1305.     mysql_query(query);
  1306.     return true;
  1307. }
  1308.  
  1309. stock mysql_ReturnPasswort(Name[])
  1310. {
  1311.     new query[130], Get[130];
  1312.     mysql_real_escape_string(Name, Name);
  1313.     format(query, 128, "SELECT `passwort` FROM `accounts` WHERE `Name` = '%s'", Name);
  1314.     mysql_query(query);
  1315.     mysql_store_result();
  1316.     mysql_fetch_row(Get);
  1317.     mysql_free_result();
  1318.     return Get;
  1319. }
  1320.  
  1321. stock CountDownForPlayer(playerid, seconds, freeze, style=1) //By Gabriel "Larcius" Cordes
  1322. {
  1323.     if(IsPlayerConnected(playerid))
  1324.     {
  1325.         if(!Counters[playerid][Down][Style])
  1326.         {
  1327.             Counters[playerid][Down][TextID]=0;
  1328.         }
  1329.         else if(Counters[playerid][Down][Style]!=style)
  1330.         {
  1331.             TextDrawDestroy(Text:Counters[playerid][Down][TextID]);
  1332.         }
  1333.         if(freeze==0 || style==0)
  1334.         {
  1335.             TogglePlayerControllable2(playerid, 1, FREEZE_COUNTDOWN);
  1336.         }
  1337.         else if(freeze)
  1338.         {
  1339.             TogglePlayerControllable2(playerid, 0, FREEZE_COUNTDOWN);
  1340.             SetCameraBehindPlayer(playerid);
  1341.         }
  1342.         Counters[playerid][Down][Style]=style;
  1343.         Counters[playerid][Down][Time]=seconds;
  1344.         return 1;
  1345.     }
  1346.     return 0;
  1347. }
  1348.  
  1349. stock CountDownForAll(seconds, freeze, style=1)
  1350. {
  1351.     new ret=0;
  1352.     for(new i=0; i<GetMaxPlayers(); i++)
  1353.     {
  1354.         if(CountDownForPlayer(i, seconds, freeze, style))
  1355.         {
  1356.             ret++;
  1357.         }
  1358.     }
  1359.     return ret;
  1360. }
  1361.  
  1362. stock IsNumeric(const string[])
  1363. {
  1364.     new length=strlen(string);
  1365.     if(length==0)
  1366.     {
  1367.         return 0;
  1368.     }
  1369.     for (new i=0; i<length; i++)
  1370.     {
  1371.         if (!((string[i] <= '9' && string[i] >= '0') || (i==0 && (string[i]=='-' || string[i]=='+'))))
  1372.         {
  1373.             return false;
  1374.         }
  1375.     }
  1376.     return 0;
  1377. }
  1378.  
  1379. public Banntimer()
  1380. {
  1381.     for(new x=0;x<GetMaxPlayers();x++)
  1382.     {
  1383.         Kick(x);
  1384.     }
  1385. }
  1386.  
  1387. stock SaveAllCurrentOnlinePlayers()
  1388. {
  1389.     for(new x = 0;x<GetMaxPlayers();x++)
  1390.     {
  1391.         if(GetPVarInt(x,"eingeloggt") == 1 && IsPlayerConnected(x) && !IsPlayerNPC(x))
  1392.         {
  1393.             GetPlayerName(x,SpielerInfo[x][pName],MAX_PLAYER_NAME);
  1394.             if(r_LoadSQLEntrance("accounts","Name",SpielerInfo[x][pName]))
  1395.             {
  1396.                 r_mysql_SetInt("Level",SpielerInfo[x][pLevel]);
  1397.                 r_mysql_SetInt("Geld",SpielerInfo[x][pGeld]);
  1398.                 r_mysql_SetInt("Fraktion",SpielerInfo[x][pFraktion]);
  1399.                 r_mysql_SetFloat("Health",SpielerInfo[x][pHealth]);
  1400.                 r_mysql_SetInt("Banned",SpielerInfo[x][pBanned]);
  1401.                 r_mysql_SetInt("Adminlevel",SpielerInfo[x][pAdminlevel]);
  1402.                 printf("[MySQL]Spielerdaten von allen Spielern erfolgreich in der Datenbank gespeichert.[MySQL]",SpielerName(x));
  1403.                 r_UnloadSQLEntrance();
  1404.             }
  1405.         }
  1406.     }
  1407.     return 1;
  1408. }
  1409.  
  1410. public Motortimer()
  1411. {
  1412.     for(new i=0;i<GetMaxPlayers();i++)
  1413.     {
  1414.         new veh;
  1415.         veh = GetPlayerVehicleID(i);
  1416.         if(Tank[veh] < 1)
  1417.         {
  1418.             SendClientMessage(i,ROT,"Tank leer. Nutze davor /tanken");
  1419.         }
  1420.         else
  1421.         {
  1422.             GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
  1423.             SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
  1424.             SendClientMessage(i,GRÜN,"Motor erfolgreich eingeschaltet.");
  1425.             Motor[veh] = true;
  1426.         }
  1427.     }
  1428.     return 1;
  1429. }
  1430.  
  1431. stock IsPlayerInRangeOfVehicle(playerid, vehicleid, Float:range)
  1432. {
  1433.     new Float:x, Float:y, Float:z;
  1434.     GetVehiclePos(vehicleid, x,y,z);
  1435.     if(IsPlayerInRangeOfPoint(playerid, range, x,y,z))
  1436.     {
  1437.         return true;
  1438.     }  
  1439.     else
  1440.     {
  1441.         return false;
  1442.     }
  1443. }
  1444.  
  1445. ocmd:tanken(playerid,params[])
  1446. {
  1447.     #pragma unused params
  1448.     if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid,ROT,"Du musst Autofahrer sein.");
  1449.     new vehid = GetPlayerVehicleID(playerid);
  1450.     if(TanktGerade[vehid])return SendClientMessage(playerid,ROT,"Du tankst doch gerade schon.");
  1451.     if(Motor[vehid] == true)return SendClientMessage(playerid,ROT,"Es wäre klug vor dem Tanken den Motor auszuschalten.");
  1452.     new ZuTanken = 100-Tank[vehid];
  1453.     new preis = ZuTanken * BENZINPREIS;
  1454.     if(GetPlayerMoney(playerid) -preis < 0)return SendClientMessage(playerid,ROT,"Du hast nicht genügend Geld dabei.");
  1455.     GivePlayerMoney(playerid,-preis);
  1456.     SendClientMessage(playerid,GRÜN,"Tankvorgang wurde gestartet. Bitte warten ...");
  1457.     SetCameraBehindPlayer(playerid);
  1458.     TogglePlayerControllable(playerid,0);
  1459.     TanktGerade[vehid] = true;
  1460.     tanktimer[playerid] = SetTimerEx("Auftanken",500,true,"i",playerid);
  1461.     return 1;
  1462. }
  1463.  
  1464. public BenzinVerlust()
  1465. {
  1466.     for(new i = 0;i<MAX_VEHICLES;i++)
  1467.     {
  1468.         if(Motor[i] == true)
  1469.         {
  1470.             Tank[i] = Tank[i] -1;
  1471.             if(Tank[i] <1)
  1472.             {
  1473.                 Tank[i] = 0;
  1474.                 GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
  1475.                 SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  1476.                 Motor[i] = false;
  1477.             }
  1478.         }
  1479.     }
  1480.     return 1;
  1481. }
  1482.  
  1483. public Auftanken(playerid)
  1484. {
  1485.     new veh = GetPlayerVehicleID(playerid);
  1486.     Tank[veh] = Tank[veh] + 1;
  1487.     if(Tank[veh]>= 100)
  1488.     {
  1489.         TanktGerade[veh] = false;
  1490.         Tank[veh] = 100;
  1491.         SendClientMessage(playerid,GRÜN,"Dein Fahrzeug wurde erfolgreich aufgetankt.");
  1492.         TogglePlayerControllable(playerid,1);
  1493.         KillTimer(tanktimer[playerid]);
  1494.     }
  1495.     return 1;
  1496. }
  1497.  
  1498. public Tazertimer(issuerid)
  1499. {
  1500.     TogglePlayerControllable(issuerid,1);
  1501.     SendClientMessage(issuerid,GRÜN,"Der Schmerz hat nachgelassen ... Du kannst dich wieder bewegen.");
  1502.     SetPlayerSpecialAction(issuerid,SPECIAL_ACTION_NONE);
  1503. }
  1504.  
  1505. ocmd:sd(playerid,params[])
  1506. {
  1507.     #pragma unused params
  1508.     GivePlayerWeapon(playerid,23,1000);
  1509.     return 1;
  1510. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement