Guest User

Untitled

a guest
Jun 5th, 2012
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 56.25 KB | None | 0 0
  1. /*
  2. GameMode von
  3. */
  4.  
  5. #include <a_samp>
  6. #include <dini>
  7. #include <md5>
  8.  
  9. //Farben
  10. #define GELB 0xFFE600FF
  11. #define ROT 0xFF000FFF
  12. #define ORANGE 0xFFDC00FF
  13. #define BLAU 0x00C3FFFF
  14. #define GRAU 0xDCDCDCFF
  15.  
  16. //Define
  17.  
  18. //Dialog
  19. #define REGISTER 1
  20. #define LOGIN 2
  21.  
  22. //DCMD
  23. #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  24.  
  25. //Enums
  26. enum SpielerDaten
  27. {
  28.         Adminlevel,
  29.         Level,
  30.         Fraktion,
  31.         Team,
  32.         sLogin,
  33.         Skin,
  34.         SkinSave,
  35.         AutoID,
  36.         Geld,
  37.         Tode
  38. };
  39.  
  40. enum e_TeamData {
  41.     TD_iSpieler,
  42.     TD_iKills
  43. }
  44.  
  45. //Variablen
  46. new MachtArbeit[MAX_PLAYERS]; // Ganz nach oben
  47. new CheckpointStatus[MAX_PLAYERS];
  48. new Text:uhr;
  49. forward uhrzeitladen();
  50. forward Timer1();
  51. new Text:ModeName;
  52. new Text:Copyright;
  53. new HealPickUp;
  54. new ArmourPickUp;
  55. new ClothesPickUp;
  56. new BSNein, BSNaus;
  57. new Casinoein, Casinoaus;
  58. new timecount;
  59. new timestop;
  60. new g_TeamData[2][e_TeamData];
  61. new Gruppe1;
  62. new Gruppe1Tod;
  63. new Gruppe1Kills;
  64. new Gruppe2;
  65. new Gruppe2Tod;
  66. new Gruppe2Kills;
  67. new Gruppe[MAX_PLAYERS];
  68. new sSpieler[MAX_PLAYERS][SpielerDaten];
  69. //Fahrzeuge
  70. new Startcars[89];
  71. new admincars[8];
  72. new car_Fluglehrer1;
  73. //Tore
  74. new dm1Tor1;
  75. new dm1Tor2;
  76.  
  77. new Text:Textdraw0;
  78. new Text:Textdraw1;
  79. new Text:Textdraw2;
  80.  
  81.  
  82. #define MAX_RACE_POINTS 19 // Wird gezählt von Null. Also 0, 1, 2, 3, 4. // Kommt ganz nach oben
  83.  
  84. new Float:racecheckpoints[MAX_RACE_POINTS][3] = { // Die Defineirung von : racecheckpoints. Die [3] Bedeutet: X, Y, Z. // Das kommt ganz noach oben.
  85. {-1300.5082, 507.5905, 18.6922}, // 1
  86. {-616.6699, 625.7159, 5.1252}, // 2
  87. {-484.9468, 1041.0067, 40.3758}, // 3
  88. {-508.0792, 1210.8715, 10.9440}, //
  89. {-658.1453, 1368.0789, 15.2718}, // 5
  90. {-822.7628, 1373.1404, 3.0119},
  91. {-961.8967, 1394.6373, 49.8732},
  92. {-1265.6177, 968.0782, 10.1152},
  93. {-1259.2505, 754.7646, 14.1245},//{-1258.2546, 747.9398, 13.0707},
  94. {-1467.6715, 612.3452, 17.5327},
  95. {-1334.9869, 982.6189, 23.8937},
  96. {-1005.0470, 952.1529, 9.5377},
  97. {-905.7942, 918.8593, 3.8657},
  98. {-840.8519, 925.9949, 12.0171},
  99. {-712.7712, 705.2552, 36.8039},//{-965.6655,561.8730,33.1528},
  100. {-1024.5563, 542.4359, 42.4096},
  101. {-988.5370, 529.7103, 36.0531},
  102. {-1248.3779, 507.3955, 19.7906},
  103. {-1388.5653, 507.5883, 18.6856} // 21. Bedeutet Checkpoint Status: 17. Die Maximal Anzahl der Checkpoints beträgt also: 17.
  104. };
  105.  
  106.  
  107. main()
  108. {
  109.         print("\n----------------------------------");
  110.         print(" GameMode by ");
  111.         print("----------------------------------\n");
  112. }
  113.  
  114.  
  115. public OnGameModeInit()
  116. {
  117.         SetGameModeText("GameMode by ");
  118.         DisableInteriorEnterExits();
  119.         ShowPlayerMarkers(0);
  120.         Copyright = TextDrawCreate(10.000000, 428.000000, "www..de");
  121.         TextDrawBackgroundColor(Copyright, 255);
  122.         TextDrawFont(Copyright, 1);
  123.         TextDrawLetterSize(Copyright, 0.480000, 1.400000);
  124.         TextDrawColor(Copyright, -1934990337);
  125.         TextDrawSetOutline(Copyright, 1);
  126.         TextDrawSetProportional(Copyright, 1);
  127.        
  128.         uhr = TextDrawCreate(547.0, 24.0, "loading");
  129.     TextDrawLetterSize(uhr, 0.6, 1.7);
  130.     TextDrawFont(uhr, 3);
  131.     TextDrawSetOutline(uhr, 2);
  132.     SetTimer("uhrzeitladen",1000,1);
  133.  
  134.         ModeName = TextDrawCreate(203.000000, 432.000000, "Version 0.6 Beta");
  135.         TextDrawBackgroundColor(ModeName, 255);
  136.         TextDrawFont(ModeName, 1);
  137.         TextDrawLetterSize(ModeName, 0.220000, 0.799999);
  138.         TextDrawColor(ModeName, -1448302081);
  139.         TextDrawSetOutline(ModeName, 1);
  140.         TextDrawSetProportional(ModeName, 1);
  141.        
  142.         Textdraw0 = TextDrawCreate(43.000000, 109.000000, "j");
  143.         TextDrawAlignment(Textdraw0, 2);
  144.         TextDrawBackgroundColor(Textdraw0, 255);
  145.         TextDrawFont(Textdraw0, 1);
  146.         TextDrawLetterSize(Textdraw0, 0.500000, 2.699999);
  147.         TextDrawColor(Textdraw0, 255);
  148.         TextDrawSetOutline(Textdraw0, 1);
  149.         TextDrawSetProportional(Textdraw0, 1);
  150.         TextDrawUseBox(Textdraw0, 1);
  151.         TextDrawBoxColor(Textdraw0, 255);
  152.         TextDrawTextSize(Textdraw0, -6.000000, 44.000000);
  153.  
  154.         Textdraw1 = TextDrawCreate(25.000000, 122.000000, "Kills:");
  155.         TextDrawBackgroundColor(Textdraw1, 255);
  156.         TextDrawFont(Textdraw1, 1);
  157.         TextDrawLetterSize(Textdraw1, 0.500000, 1.000000);
  158.         TextDrawColor(Textdraw1, -1);
  159.         TextDrawSetOutline(Textdraw1, 1);
  160.         TextDrawSetProportional(Textdraw1, 1);
  161.  
  162.         Textdraw2 = TextDrawCreate(43.000000, 109.000000, "Titel");
  163.         TextDrawAlignment(Textdraw2, 2);
  164.         TextDrawBackgroundColor(Textdraw2, 255);
  165.         TextDrawFont(Textdraw2, 1);
  166.         TextDrawLetterSize(Textdraw2, 0.500000, 1.000000);
  167.         TextDrawColor(Textdraw2, -1);
  168.         TextDrawSetOutline(Textdraw2, 1);
  169.         TextDrawSetProportional(Textdraw2, 1);
  170.         TextDrawUseBox(Textdraw2, 1);
  171.         TextDrawBoxColor(Textdraw2, -1446204929);
  172.         TextDrawTextSize(Textdraw2, 0.000000, 38.000000);
  173.        
  174.         AddPlayerClass(1, 1107.5632,-1796.4484,16.5938,90.8776, 0, 0, 0, 0, 0, 0);
  175.         AddPlayerClass(2, 1107.5632,-1796.4484,16.5938,90.8776, 0, 0, 0, 0, 0, 0);
  176.         AddPlayerClass(3, 1107.5632,-1796.4484,16.5938,90.8776, 0, 0, 0, 0, 0, 0);
  177.        
  178.         //Pickup
  179.         HealPickUp = CreatePickup(1240,2,1085.5991210938, -1797.1000976563, 13.510542869568, -1);
  180.         ArmourPickUp = CreatePickup(1242,2,1085.5991210938, -1798.5799560547, 13.522847175598, -1);
  181.         ClothesPickUp = CreatePickup(1275,2,1085.5991210938, -1800.1099853516, 13.537351608276, -1);
  182.         BSNein = CreatePickup(1318, 2, 1199.2554, -918.7460, 43.1187, -1);
  183.         BSNaus = CreatePickup(1318, 2, 362.8821, -75.1783, 1001.5078, -1);
  184.         Casinoein = CreatePickup(1318, 2, 2019.6999511719, 1007.799987793, 10.4, -1);
  185.         Casinoaus = CreatePickup(1318, 2, 2018.9000244141, 1017.799987793, 996.4, -1);
  186.        
  187.         //Autos
  188.         Startcars[0]= CreateVehicle(522,1097.5135,-1801.9965,13.2040,31.6678,14,14,60); // StartMotorad1
  189.         Startcars[1]= CreateVehicle(522,1095.8069,-1801.9304,13.2024,30.9567,14,14,60); // StartMotorad2
  190.         Startcars[2]= CreateVehicle(522,1093.9762,-1801.9186,13.2034,29.9680,14,14,60); // StartMotorad3
  191.         Startcars[3]= CreateVehicle(522,1092.1227,-1802.0144,13.2024,32.1975,14,14,60); // StartMotorad4
  192.         Startcars[4]= CreateVehicle(522,1090.3390,-1802.0005,13.2022,30.7935,14,14,60); // StartMotorad5
  193.         Startcars[5]= CreateVehicle(522,1088.6786,-1801.9656,13.2011,27.2675,14,14,60); // StartMotorad6
  194.         Startcars[6]= CreateVehicle(522,1087.1080,-1801.9980,13.2018,23.6764,14,14,60); // StartMotorad7
  195.         Startcars[7]= CreateVehicle(411,1062.2170,-1775.6060,13.0714,269.6063,75,70,60); // Infernus1
  196.         Startcars[8]= CreateVehicle(411,1062.1777,-1772.6246,13.0766,269.2618,75,70,60); // infernus2
  197.         Startcars[9]= CreateVehicle(411,1062.1907,-1769.6768,13.0958,270.2711,13,58,60); // Infernus3
  198.         Startcars[10]= CreateVehicle(411,1062.1637,-1766.7209,13.1078,269.8724,13,58,60); // Infernus4
  199.         Startcars[11]= CreateVehicle(411,1062.1805,-1763.8320,13.1194,270.2007,75,70,60); // Infernus5
  200.         Startcars[12]= CreateVehicle(411,1062.1718,-1760.8706,13.1313,269.9723,75,70,60); // Infernus6
  201.         Startcars[13]= CreateVehicle(411,1062.1970,-1757.9362,13.1447,270.1307,13,58,60); // Infernus7
  202.         Startcars[14]= CreateVehicle(411,1062.1984,-1754.9659,13.1590,269.9601,13,58,60); // Infernus8
  203.         Startcars[15]= CreateVehicle(411,1062.1470,-1752.0389,13.1720,269.8795,75,70,60); // Infernus9
  204.         Startcars[16]= CreateVehicle(411,1062.1866,-1749.0906,13.1775,270.0244,75,70,60); // Infernus10
  205.         CreateVehicle(411,1062.1859,-1746.1196,13.1836,269.9839,13,58,60); // Infernus11
  206.         CreateVehicle(411,1062.1721,-1743.1956,13.1910,269.6198,13,58,60); // Infernus12
  207.         CreateVehicle(411,1062.2007,-1740.2592,13.1974,270.2091,75,70,60); // Infernus13
  208.         admincars[0]= CreateVehicle(601,1098.4039,-1751.6149,13.1117,89.8445,28,1,60); // Swat-Tank
  209.         admincars[1]= CreateVehicle(432,1199.6410,-1765.8672,13.5939,346.1971,89,83,60); // Panzer
  210.         admincars[2]= CreateVehicle(520,1092.2142,-1811.9606,30.6542,45.8048,31,66,60); // Hydra
  211.         admincars[3]= CreateVehicle(425,1156.1693,-1801.5488,34.1790,48.0771,109,18,60); // Hunter
  212.        
  213.         //3DTexte
  214.         Create3DTextLabel("Willkommen am Spawnpunkt:\n{FFFFFF}Ziwi-Spawn",ORANGE,1107.7627,-1796.2532,16.5938+0.5,10.0,0);
  215.         Create3DTextLabel("Waffe kaufen",ORANGE,1085.3842,-1827.1844,16.5992+0.5,5.0,0);
  216.        
  217.         //Objecte zum Bewegen
  218.         dm1Tor1 = CreateObject(8673, 958.77801513672, 2171.1000976563, 1003.1799926758, 0, 90, 0); //Gate1 bei DM-Zone1
  219.         dm1Tor2 = CreateObject(2930, 958.16998291016, 2103.2299804688, 1012.5200195313, 0, 0, 90); //Gate2 bei DM-Zone1
  220.         return 1;
  221. }
  222.  
  223. public OnGameModeExit()
  224. {
  225.         return 1;
  226. }
  227.  
  228. public OnPlayerRequestClass(playerid, classid)
  229. {
  230.     if(HatSpielerEinenSkin(playerid,0))
  231.                 {
  232.                     SetPlayerPos(playerid, 1363.5691,-767.7192,98.1803);
  233.                         SetPlayerCameraPos(playerid, 1364.8843,-765.0801,98.9823);
  234.                         SetPlayerCameraLookAt(playerid, 1260.5632,-952.5563,41.3731);
  235.                         SetPlayerFacingAngle(playerid,336.3693);
  236.                         return 1;
  237.                 }
  238.                 else
  239.                 {
  240.                         SetSpawnInfo(playerid,0,sSpieler[playerid][Skin],1107.5632,-1796.4484,16.5938,90.8776,0,0,0,0,0,0);
  241.             SpawnPlayer(playerid);
  242.                         return 1;
  243.                 }
  244. }
  245.  
  246. public OnPlayerConnect(playerid)
  247. {
  248.         new Spieler[64];
  249.         new Sname[MAX_PLAYER_NAME];
  250.         GetPlayerName(playerid,Sname,sizeof(Sname));
  251.         format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
  252.         TextDrawShowForPlayer(playerid,Copyright);
  253.         TextDrawShowForPlayer(playerid,ModeName);
  254.         TextDrawShowForPlayer(playerid, uhr);
  255.         SetPlayerColor(playerid, 0xDCDCDC00);
  256.         if(IsPlayerNPC(playerid))
  257.         {
  258.                 new botname[MAX_PLAYER_NAME];
  259.                 GetPlayerName(playerid, botname, sizeof(botname));
  260.                 if(!strcmp(botname, "BulletLS", true))
  261.                 {
  262.                         SpawnPlayer(playerid);
  263.                         return 1;
  264.                 }
  265.         }
  266.         if(dini_Exists(Spieler))
  267.         {
  268.             SendClientMessage(playerid,GELB,"{FFFFFF}Willkommen zurück {EE5555}auf Termis Bratwas Übungs-Server!");
  269.             ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden, bitte gebe dein Passwort ein und logge dich ein","Login","Abbrechen");
  270.                 return 1;
  271.         }
  272.         else
  273.         {
  274.                 SendClientMessage(playerid,GELB,"{FFFFFF}Willkommen {EE5555}auf Termis Bratwas Übungs-Server!");
  275.                 ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte registriere dich mit einem Passwort","Registrieren","Abbrechen");
  276.                 return 1;
  277.         }
  278. }
  279.  
  280. public OnPlayerDisconnect(playerid, reason)
  281. {
  282.     if(IstSpielerInTeam(playerid, 0))
  283.     {
  284.         sSpieler[playerid][SkinSave] = 0;
  285.     }
  286.     else
  287.     {
  288.         sSpieler[playerid][SkinSave] = 1;
  289.     }
  290.     if(Gruppe[playerid] == 1)
  291.         {
  292.                 Gruppe[playerid] = 0;
  293.                 Gruppe1--;
  294.         }
  295.         else if(Gruppe[playerid] == 2)
  296.         {
  297.                 Gruppe[playerid] = 0;
  298.                 Gruppe2--;
  299.         }
  300.     sSpieler[playerid][sLogin] = 0;
  301.     sSpieler[playerid][Fraktion] = 0;
  302.     sSpieler[playerid][AutoID] = 0;
  303.     sSpieler[playerid][Team] = 0;
  304.         SpielerSpeichern(playerid);
  305.     DestroyVehicle(sSpieler[playerid][AutoID]);
  306.         return 1;
  307. }
  308.  
  309. public OnPlayerSpawn(playerid)
  310. {
  311.     if(IsPlayerNPC(playerid))
  312.         {
  313.                 new botname[MAX_PLAYER_NAME];
  314.                 GetPlayerName(playerid, botname, sizeof(botname));
  315.                 if(!strcmp(botname, "Fluglehrer1", true))
  316.                 {
  317.                         PutPlayerInVehicle(playerid, car_Fluglehrer1, 0);
  318.                 }
  319.         }
  320.         if(IstSpielerInTeam(playerid,0)) //Spawn Zivi
  321.         {
  322.                 SetPlayerPos(playerid,1107.5632,-1796.4484,16.5938);
  323.                 SetPlayerFacingAngle(playerid,90.8776);
  324.                 SetPlayerInterior(playerid,0);
  325.                 if(HatSpielerEinenSkin(playerid,0))
  326.                 {
  327.                         return 1;
  328.                 }
  329.                 else
  330.                 {
  331.                         SetPlayerSkin(playerid,sSpieler[playerid][Skin]);
  332.                 }
  333.                 return 1;
  334.         }
  335.         if(IstSpielerInTeam(playerid,1)) //Spawn TeamA1
  336.         {
  337.                 SetPlayerPos(playerid,961.2678,2100.2549,1011.0256);
  338.                 SetPlayerFacingAngle(playerid,7.5695);
  339.                 SetPlayerInterior(playerid,1);
  340.                 SetPlayerColor(playerid, 0x0073FF00);
  341.                 SetPlayerTeam(playerid, 1);
  342.                 return 1;
  343.         }
  344.         if(IstSpielerInTeam(playerid,2)) //Spawn TeamA2
  345.         {
  346.                 SetPlayerPos(playerid,959.1449,2167.9775,1011.0234);
  347.                 SetPlayerFacingAngle(playerid,358.7257);
  348.                 SetPlayerInterior(playerid,1);
  349.                 SetPlayerColor(playerid, 0xFFE60000);
  350.                 SetPlayerTeam(playerid, 2);
  351.                 return 1;
  352.         }
  353.         return 1;
  354. }
  355.  
  356. public OnPlayerDeath(playerid, killerid, reason)
  357. {
  358.     if(GetPlayerTeam(playerid) == 1 || GetPlayerTeam(playerid) == 2)
  359.         {
  360.             if(Gruppe1 == 0 || Gruppe2 == 0)
  361.                 {
  362.                     SendClientMessage(playerid,GELB,"Warte auf Gegner...");
  363.                     return 1;
  364.                 }
  365.                 if(Gruppe1 >= 1 && Gruppe2 >= 1)
  366.                 {
  367.                         if(Gruppe1 == Gruppe1Tod || Gruppe2 == Gruppe2Tod)
  368.                         {
  369.                                 if(IstSpielerInTeam(killerid,1))
  370.                                 {
  371.                                     SetPlayerPos(killerid,961.2678,2100.2549,1011.0256);
  372.                                         SetPlayerFacingAngle(killerid,7.5695);
  373.                                         SetPlayerHealth(killerid,100.0);
  374.                                         ResetPlayerWeapons(killerid);
  375.                                         GivePlayerWeapon(killerid, 24, 250);
  376.                                         GivePlayerWeapon(killerid, 31, 500);
  377.                                 }
  378.                                 if(IstSpielerInTeam(killerid,2))
  379.                                 {
  380.                             SetPlayerPos(killerid,959.1449,2167.9775,1011.0234);
  381.                                         SetPlayerFacingAngle(killerid,358.7257);
  382.                                         SetPlayerHealth(killerid,100.0);
  383.                                         ResetPlayerWeapons(killerid);
  384.                                         GivePlayerWeapon(killerid, 24, 250);
  385.                                         GivePlayerWeapon(killerid, 31, 500);
  386.                                 }
  387.                             Gruppe1Tod = 0;
  388.                             Gruppe2Tod = 0;
  389.                         for(new i=0;i<MAX_PLAYERS;i++)
  390.                                 {
  391.                                         if(sSpieler[i][Team] == 1 || sSpieler[i][Team] == 2)
  392.                                         {
  393.                                                 SendClientMessage(i,GELB,"Neue Runde wird gestartet in...");
  394.                                         }
  395.                                 }
  396.                                 timecount = 7; // anpassen.
  397.                         timestop = SetTimer("Timer1",1000,true);
  398.                         return 1;
  399.                         }
  400.                 }
  401.         }
  402.  
  403.  
  404.         return 1;
  405. }
  406.  
  407. public OnVehicleSpawn(vehicleid)
  408. {
  409.         return 1;
  410. }
  411.  
  412. public OnVehicleDeath(vehicleid, killerid)
  413. {
  414.         return 1;
  415. }
  416.  
  417. public OnPlayerText(playerid, text[])
  418. {
  419.         return 1;
  420. }
  421.  
  422. public OnPlayerCommandText(playerid, cmdtext[])
  423. {
  424.     new cmd[256], index;
  425.         new idx;
  426.         cmd = strtok(cmdtext, idx);
  427.         cmd = strtok(cmdtext, index);
  428.    
  429.     if (strcmp("/help", cmdtext, true, 10) == 0) // User-HelpBefehl
  430.         {
  431.                 SendClientMessage(playerid,GELB,"Dir stehen folgende Befehle zur Verfügung:");
  432.                 return 1;
  433.         }
  434.    
  435.     if (strcmp("/mission", cmdtext, true, 10) == 0)
  436.         {
  437.             MachtArbeit[playerid]= 0; // Hier wird die Mission beendet.
  438.                 CheckpointStatus[playerid] = 0; // Hier wird definiert, dass, der Checkpoint Status bei Null liegt.
  439.                 DisablePlayerRaceCheckpoint(playerid); // Damit wird der Race Checkpoint beendet.
  440.                 if(IsPlayerInAnyVehicle(playerid))
  441.                 { // Der CMD funkt nur dann, wenn man in einem Fahrzeug drinne sitzt.
  442.                         if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 593) // Der CMD funkt. nur dann, wenn man in einem Fahrzug drinne sitzt und es ein bestimmes Model ist.
  443.                         {
  444.                                 MachtArbeit[playerid] = 1; // Bedeutet, dass die Arbeit ab jetzt los geht. 1 = Arbeit geht Los.
  445.                                 SetPlayerRaceCheckpoint(playerid,3,racecheckpoints[0][0],racecheckpoints[0][1],racecheckpoints[0][2],racecheckpoints[1][0],racecheckpoints[1][1],racecheckpoints[1][2],10.0);
  446.                         }
  447.                 }
  448.                 return 1;
  449.         }
  450.    
  451.     if (strcmp("/team", cmdtext, true, 10) == 0) // Team-Einstieg
  452.         {
  453.             if(IstSpielerInTeam(playerid, 0))
  454.             {
  455.                 SetPlayerScore(playerid, 0);
  456.                         Verteilen1(playerid);
  457.                         return 1;
  458.                 }
  459.                 else
  460.                 {
  461.                     SendClientMessage(playerid,ROT,"Du spielst bereits! Verlasse die Runde mit /exit");
  462.                     return 1;
  463.                 }
  464.         }
  465.  
  466.         if (strcmp("/exit", cmdtext, true, 10) == 0) // Team-Ausstieg
  467.         {
  468.             if(IstSpielerInTeam(playerid, 0))
  469.             {
  470.                         SendClientMessage(playerid,ROT,"Du befindest dich in keiner DM-Umgebung!");
  471.             return 1;
  472.                 }
  473.                 else
  474.                 {
  475.                     if(Gruppe[playerid] == 1)
  476.                         {
  477.                             Gruppe[playerid] = 0;
  478.                             Gruppe1--;
  479.                         }
  480.                         else if(Gruppe[playerid] == 2)
  481.                         {
  482.                                 Gruppe[playerid] = 0;
  483.                                 Gruppe2--;
  484.                         }
  485.                         SetPlayerTeam(playerid, 0);
  486.                         sSpieler[playerid][Team] = 0;
  487.                         SetSpawnInfo(playerid,0,sSpieler[playerid][Skin],1107.5632,-1796.4484,16.5938,90.8776,0,0,0,0,0,0);
  488.                         SetPlayerColor(playerid, 0xDCDCDC00);
  489.                         SetPlayerHealth(playerid,0.0);
  490.                         return 1;
  491.                 }
  492.         }
  493.        
  494.         if (strcmp("/test", cmdtext, true, 10) == 0) // User-HelpBefehl
  495.         {
  496.                 ConnectNPC("Fluglehrer1","Fluglehrer1");//Das erste BulletLS steht für den Namen hier im Script, das 2te für den Namen der .rec Datei
  497.                 car_Fluglehrer1 = CreateVehicle(593, 1000.0,1000.0, 1000.0, 0.0, 10, 1, -1);
  498.                 return 1;
  499.         }
  500.        
  501.         if (strcmp("/gruppe2", cmdtext, true, 10) == 0) // User-HelpBefehl
  502.         {
  503.                 Gruppe2 = 1;
  504.                 Gruppe2Tod = 1;
  505.                 Gruppe1 = 0;
  506.                 Gruppe1Tod = 0;
  507.                 return 1;
  508.         }
  509.        
  510.         if (strcmp("/textan", cmdtext, true, 10) == 0) // User-HelpBefehl
  511.         {
  512.                 TextDrawShowForPlayer(playerid,Textdraw0);
  513.                 TextDrawShowForPlayer(playerid,Textdraw1);
  514.                 TextDrawShowForPlayer(playerid,Textdraw2);
  515.                 return 1;
  516.         }
  517.        
  518.         if (strcmp("/textakt", cmdtext, true, 10) == 0) // User-HelpBefehl
  519.         {
  520.             new string[128];
  521.             new Vehicleid;
  522.                 TextDrawHideForPlayer(playerid,Textdraw1);
  523.                 Vehicleid = GetPlayerVehicleID(playerid);
  524.                 format(string, sizeof(string), "Kills: %d", Vehicleid);
  525.                 TextDrawSetString(Textdraw1, string);
  526.                 TextDrawShowForPlayer(playerid,Textdraw1);
  527.                 return 1;
  528.         }
  529.        
  530.        
  531.         if (strcmp("/respawn", cmdtext, true, 10) == 0) // Admin-CarBefehl
  532.         {
  533.             if(IstSpielerAdmin(playerid, 5))
  534.                 {
  535.                         for(new i=0;i<MAX_VEHICLES;i++)
  536.             {
  537.                 SetVehicleToRespawn(i);
  538.             }
  539.             new s[128];
  540.             new name[MAX_PLAYER_NAME];
  541.                 GetPlayerName(playerid, name, sizeof(name));
  542.             format(s,sizeof s,"Admin %s hat alle Fahrzeuge respawnt!",name);
  543.             SendClientMessageToAll(GELB,s);
  544.             return 1;
  545.                 }
  546.                 else
  547.                 {
  548.                     SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  549.                         return 1;
  550.                 }
  551.         }
  552.        
  553.        
  554.         if (strcmp("/jetpack", cmdtext, true, 10) == 0) // Admin-CarBefehl
  555.         {
  556.             if(IstSpielerAdmin(playerid, 5))
  557.                 {
  558.                         SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USEJETPACK);
  559.                         return 1;
  560.                 }
  561.                 else
  562.                 {
  563.                     SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  564.                         return 1;
  565.                 }
  566.         }
  567.        
  568.         if (strcmp("/repair", cmdtext, true, 10) == 0) // Admin-CarBefehl
  569.         {
  570.             if(IstSpielerAdmin(playerid, 5))
  571.                 {
  572.                         if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, ROT, "Du befindest dich in keinem Fahrzeug!");
  573.                 RepairVehicle(GetPlayerVehicleID(playerid));
  574.                         return 1;
  575.                 }
  576.                 else
  577.                 {
  578.                     SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  579.                         return 1;
  580.                 }
  581.         }
  582.        
  583.         if (strcmp("/tvoff", cmdtext, true, 10) == 0) // Admin-CarBefehl
  584.         {
  585.             if(IstSpielerAdmin(playerid, 5))
  586.                 {
  587.                         TogglePlayerSpectating(playerid, 0);
  588.                         return 1;
  589.                 }
  590.                 else
  591.                 {
  592.                     SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  593.                         return 1;
  594.                 }
  595.         }
  596.        
  597.         if(!strcmp(cmd, "/wetter", true)) // Wetterändern
  598.         {
  599.         if(IstSpielerAdmin(playerid, 5))
  600.         {
  601.                         new wetter_ID=strval(strtok(cmdtext, index));
  602.                         if(wetter_ID<0 || wetter_ID>45) return SendClientMessage(playerid, ROT, "Diese Wetter-ID gibt es nicht.");
  603.                         else
  604.                         {
  605.                                 SetWeather(wetter_ID);
  606.                         }
  607.                         return 1;
  608.                 }
  609.                 else
  610.         {
  611.                 SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  612.                 return 1;
  613.                 }
  614.         }
  615.        
  616.        
  617.         if (strcmp("/platz1", cmdtext, true, 10) == 0)
  618.         {
  619.                 if(IstSpielerAdmin(playerid, 5))
  620.                 {
  621.                                 SetPlayerPos(playerid,963.418762,2108.292480,1011.030273);
  622.                                 //SetPlayerFacingAngle(playerid,178.2748);
  623.                                 SetPlayerInterior(playerid,1);
  624.                                 return 1;
  625.             }
  626.                         else
  627.                 {
  628.                         SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  629.                         return 1;
  630.                 }
  631.         }
  632.        
  633.         if (strcmp("/platz2", cmdtext, true, 10) == 0)
  634.         {
  635.                 if(IstSpielerAdmin(playerid, 5))
  636.                 {
  637.                                 SetPlayerPos(playerid,1267.663208,-781.323242,1091.906250);
  638.                                 //SetPlayerFacingAngle(playerid,178.2748);
  639.                                 SetPlayerInterior(playerid,5);
  640.                                 return 1;
  641.             }
  642.                         else
  643.                 {
  644.                         SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  645.                         return 1;
  646.                 }
  647.         }
  648.        
  649.         if (strcmp("/platz3", cmdtext, true, 10) == 0)
  650.         {
  651.                 if(IstSpielerAdmin(playerid, 5))
  652.                 {
  653.                                 SetPlayerPos(playerid,2169.461181,1618.798339,999.976562);
  654.                                 //SetPlayerFacingAngle(playerid,178.2748);
  655.                                 SetPlayerInterior(playerid,1);
  656.                                 return 1;
  657.             }
  658.                         else
  659.                 {
  660.                         SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  661.                         return 1;
  662.                 }
  663.         }
  664.        
  665.         if (strcmp("/platz4", cmdtext, true, 10) == 0)
  666.         {
  667.                 if(IstSpielerAdmin(playerid, 5))
  668.                 {
  669.                                 SetPlayerPos(playerid,2543.462646,-1308.379882,1026.728393);
  670.                                 //SetPlayerFacingAngle(playerid,178.2748);
  671.                                 SetPlayerInterior(playerid,2);
  672.                                 return 1;
  673.             }
  674.                         else
  675.                 {
  676.                         SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  677.                         return 1;
  678.                 }
  679.         }
  680.        
  681.         if (strcmp("/platz5", cmdtext, true, 10) == 0)
  682.         {
  683.                 if(IstSpielerAdmin(playerid, 5))
  684.                 {
  685.                                 SetPlayerPos(playerid,1412.639892,-1.787510,1000.924377);
  686.                                 //SetPlayerFacingAngle(playerid,178.2748);
  687.                                 SetPlayerInterior(playerid,1);
  688.                                 return 1;
  689.             }
  690.                         else
  691.                 {
  692.                         SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  693.                         return 1;
  694.                 }
  695.         }
  696.        
  697.         if (strcmp("/platz6", cmdtext, true, 10) == 0)
  698.         {
  699.                 if(IstSpielerAdmin(playerid, 5))
  700.                 {
  701.                                 SetPlayerPos(playerid,1302.519897,-1.787510,1001.028259);
  702.                                 //SetPlayerFacingAngle(playerid,178.2748);
  703.                                 SetPlayerInterior(playerid,18);
  704.                                 return 1;
  705.             }
  706.                         else
  707.                 {
  708.                         SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  709.                         return 1;
  710.                 }
  711.         }
  712.        
  713.         if (strcmp("/platz7", cmdtext, true, 10) == 0)
  714.         {
  715.                 if(IstSpielerAdmin(playerid, 5))
  716.                 {
  717.                                 SetPlayerPos(playerid,-221.059051,1408.984008,27.773437);
  718.                                 //SetPlayerFacingAngle(playerid,178.2748);
  719.                                 SetPlayerInterior(playerid,18);
  720.                                 return 1;
  721.             }
  722.                         else
  723.                 {
  724.                         SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  725.                         return 1;
  726.                 }
  727.         }
  728.        
  729.  
  730. //Admin-Befehle
  731.  
  732.         if (strcmp("/opengate", cmdtext, true, 10) == 0)
  733.         {
  734.         if(sSpieler[playerid][Adminlevel] >=1)
  735.         {
  736.             SendClientMessage(playerid,GELB,"Tore wurden geöffnet!");
  737.             MoveObject(dm1Tor1,958.77801513672, 2171.1000976563, 999.1799926758,2.0);
  738.             MoveObject(dm1Tor2,959.56998291016, 2103.2299804688, 1012.5200195313,2.0);
  739.             SetTimer("dm1Tore",10125,0);
  740.             return 1;
  741.     }
  742.     else
  743.     {
  744.         SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  745.         return 1;
  746.     }
  747.     }
  748.  
  749.  
  750.         if (strcmp("/gmx", cmdtext, true, 10) == 0)
  751.         {
  752.             if(IstSpielerAdmin(playerid, 3))
  753.             {
  754.                 SendRconCommand("gmx");
  755.             }
  756.             else
  757.             {
  758.                 SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
  759.                 return 1;
  760.             }
  761.             return 1;
  762.         }
  763.         return 0;
  764. }
  765.                                
  766. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  767. {
  768.         return 1;
  769. }
  770.  
  771. public OnPlayerExitVehicle(playerid, vehicleid)
  772. {
  773.     MachtArbeit[playerid]= 0; // Hier wird die Mission beendet.
  774.         CheckpointStatus[playerid] = 0; // Hier wird definiert, dass, der Checkpoint Status bei Null liegt.
  775.         DisablePlayerRaceCheckpoint(playerid); // Damit wird der Race Checkpoint beendet.
  776.         return 1;
  777. }
  778.  
  779. public OnPlayerStateChange(playerid, newstate, oldstate)
  780. {
  781.         if(newstate == PLAYER_STATE_DRIVER)
  782.         {
  783.             for(new i = 0; i<sizeof(admincars); i++)
  784.             {
  785.                 if(GetPlayerVehicleID(playerid) == admincars[i])
  786.                 {
  787.                     if(IstSpielerFahradmin(playerid,5))
  788.                                 {
  789.                                 }
  790.                                 else
  791.                                 {
  792.                                     RemovePlayerFromVehicle(playerid);
  793.                                     SendClientMessage(playerid,ROT,"Du bist nicht berechtigt dieses Fahrzeug zu nutzen!");
  794.                                 }
  795.                         }
  796.                 }
  797.         }
  798.         return 1;
  799. }
  800.  
  801. public OnPlayerEnterCheckpoint(playerid)
  802. {
  803.         return 1;
  804. }
  805.  
  806. public OnPlayerLeaveCheckpoint(playerid)
  807. {
  808.         return 1;
  809. }
  810.  
  811. public OnPlayerEnterRaceCheckpoint(playerid)
  812. {
  813.         if (IsPlayerInAnyVehicle(playerid)) // Bedeutet, dass die Fukntion nur dann funk. ,wennn man in einem fahrzeug sitzt.
  814.         {
  815.                 if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 593) // Model ID 408, bedeutet, dass das ganze,was unten geschicet nur dann geht, wenn man im Model 408 drinne sitzt.
  816.                 {
  817.                         if(MachtArbeit[playerid] == 1) // Dies passiert nur dann, wenn man /mission geschieben hat.
  818.                         {
  819.                                 CheckpointStatus[playerid]++; // Hier werden die Checkpoints aufgezählt.
  820.                                 new letzerpunkt = MAX_RACE_POINTS; // Wichtig. Hier wird der letze Checkpoint definiert.
  821.                                 if(CheckpointStatus[playerid] < letzerpunkt) // Ist der checkpoint Status kleiner als die maximale Anzahl der Checkpoints, bedeutet dieser Code.
  822.                                 {
  823.                                         DisablePlayerRaceCheckpoint(playerid); // Beendet den Checkpoint
  824.                                         SetPlayerRaceCheckpoint(playerid,3,racecheckpoints[CheckpointStatus[playerid]][0],racecheckpoints[CheckpointStatus[playerid]][1],racecheckpoints[CheckpointStatus[playerid]][2],racecheckpoints[CheckpointStatus[playerid]+1][0],racecheckpoints[CheckpointStatus[playerid]+1][1],racecheckpoints[CheckpointStatus[playerid]+1][2],10.0);
  825.                                 }
  826.                                 if(CheckpointStatus[playerid] == letzerpunkt)
  827.                                 { // Wenn der Checkpoint STatus die maximale Anzahl erreich hat. Passiert folgendes:
  828.                                         MachtArbeit[playerid]= 0; // Hier wird die Mission beendet.
  829.                                         CheckpointStatus[playerid] = 0; // Hier wird definiert, dass, der Checkpoint Status bei Null liegt.
  830.                                         DisablePlayerRaceCheckpoint(playerid); // Damit wird der Race Checkpoint beendet.
  831.                                 }
  832.                         }
  833.                 }
  834.         }
  835.         return 1;
  836. }
  837.  
  838. public OnPlayerLeaveRaceCheckpoint(playerid)
  839. {
  840.         return 1;
  841. }
  842.  
  843. public OnRconCommand(cmd[])
  844. {
  845.         return 1;
  846. }
  847.  
  848. public OnPlayerRequestSpawn(playerid)
  849. {
  850.         return 1;
  851. }
  852.  
  853. public OnObjectMoved(objectid)
  854. {
  855.         return 1;
  856. }
  857.  
  858. public OnPlayerObjectMoved(playerid, objectid)
  859. {
  860.         return 1;
  861. }
  862.  
  863. public OnPlayerPickUpPickup(playerid, pickupid)
  864. {
  865.         if(pickupid == HealPickUp)
  866.         {
  867.         SetPlayerHealth(playerid,100.0);
  868.                 return 1;
  869.         }
  870.         if(pickupid == ArmourPickUp)
  871.         {
  872.         SetPlayerArmour(playerid,100.0);
  873.                 return 1;
  874.         }
  875.         if(pickupid == ClothesPickUp)
  876.         {
  877.             sSpieler[playerid][Skin] = 0;
  878.                 ForceClassSelection(playerid);
  879.         SetPlayerHealth(playerid, 0.0);
  880.                 return 1;
  881.         }
  882.         if(pickupid == BSNein)
  883.         {
  884.                 SetPlayerPos(playerid,364.4981,-74.0998,1001.5078);
  885.                 SetPlayerFacingAngle(playerid,295.7292);
  886.                 SetPlayerInterior(playerid,10);
  887.                 return 1;
  888.         }
  889.         if(pickupid == BSNaus)
  890.         {
  891.                 SetPlayerPos(playerid,1199.1846,-920.5878,43.1081);
  892.                 SetPlayerFacingAngle(playerid,178.2748);
  893.                 SetPlayerInterior(playerid,0);
  894.                 return 1;
  895.         }
  896.         if(pickupid == Casinoein)
  897.         {
  898.                 SetPlayerPos(playerid,2016.2109,1017.2014,996.8750);
  899.                 SetPlayerFacingAngle(playerid,86.9311);
  900.                 SetPlayerInterior(playerid,10);
  901.                 return 1;
  902.         }
  903.         if(pickupid == Casinoaus)
  904.         {
  905.                 SetPlayerPos(playerid,2022.6354,1007.1879,10.8203);
  906.                 SetPlayerFacingAngle(playerid,265.1161);
  907.                 SetPlayerInterior(playerid,0);
  908.                 return 1;
  909.         }
  910.         return 1;
  911. }
  912.  
  913. public OnVehicleMod(playerid, vehicleid, componentid)
  914. {
  915.         return 1;
  916. }
  917.  
  918. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  919. {
  920.         return 1;
  921. }
  922.  
  923. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  924. {
  925.         return 1;
  926. }
  927.  
  928. public OnPlayerSelectedMenuRow(playerid, row)
  929. {
  930.         return 1;
  931. }
  932.  
  933. public OnPlayerExitedMenu(playerid)
  934. {
  935.         return 1;
  936. }
  937.  
  938. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  939. {
  940.         return 1;
  941. }
  942.  
  943. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  944. {
  945.         return 1;
  946. }
  947.  
  948. public OnRconLoginAttempt(ip[], password[], success)
  949. {
  950.         return 1;
  951. }
  952.  
  953. public OnPlayerUpdate(playerid)
  954. {
  955.         return 1;
  956. }
  957.  
  958. public OnPlayerStreamIn(playerid, forplayerid)
  959. {
  960.         return 1;
  961. }
  962.  
  963. public OnPlayerStreamOut(playerid, forplayerid)
  964. {
  965.         return 1;
  966. }
  967.  
  968. public OnVehicleStreamIn(vehicleid, forplayerid)
  969. {
  970.         return 1;
  971. }
  972.  
  973. public OnVehicleStreamOut(vehicleid, forplayerid)
  974. {
  975.         return 1;
  976. }
  977.  
  978. //DIALOG-BOXEN
  979. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  980. {
  981.         if(dialogid == LOGIN) //Login Passworteingabe
  982.         {
  983.             if(response == 0)
  984.                 {
  985.                     SendClientMessage(playerid,BLAU,"Du hast den Loginvorgang abgebrochen");
  986.                         return 1;
  987.                 }
  988.                 if(response == 1)
  989.                 {
  990.                     Login(playerid,MD5_Hash(inputtext));
  991.                     return 1;
  992.                 }
  993.         }
  994.         if(dialogid == REGISTER) // Register Passworteingabe
  995.         {
  996.             if(response == 0)
  997.             {
  998.                 SendClientMessage(playerid,ROT,"Du hast den Registriervorgang abgebrochen");
  999.                 return 1;
  1000.             }
  1001.             if(response == 1)
  1002.             {
  1003.                 if(!strlen(inputtext))
  1004.                 {
  1005.                     SendClientMessage(playerid,ORANGE,"Bitte gebe ein Passwort ein.");
  1006.                     ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte registriere dich mit einem Passwort","Registrieren","Abbrechen");
  1007.                     return 1;
  1008.                         }
  1009.                 Register(playerid,MD5_Hash(inputtext));
  1010.                 return 1;
  1011.             }
  1012.         }
  1013.  
  1014. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1015. {
  1016.         return 1;
  1017. }
  1018.  
  1019. stock Register(playerid,key[])
  1020. {
  1021.         new Spieler[64];
  1022.         new Sname[MAX_PLAYER_NAME];
  1023.         GetPlayerName(playerid,Sname,sizeof(Sname));
  1024.         format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
  1025.         dini_Create(Spieler);
  1026.         dini_Set(Spieler,"Passwort",key);
  1027.         dini_IntSet(Spieler,"Adminlevel",0);
  1028.         dini_IntSet(Spieler,"Fraktion",1);
  1029.         dini_IntSet(Spieler,"Team",0);
  1030.         dini_IntSet(Spieler,"Skin",0);
  1031.         dini_IntSet(Spieler,"AutoID",0);
  1032.         dini_IntSet(Spieler,"Geld",0);
  1033.         dini_IntSet(Spieler,"Tode",0);
  1034.         SendClientMessage(playerid,BLAU,"Du hast dich erfolgreich registriert");
  1035.         SpielerReset(playerid);
  1036.         return 1;
  1037. }
  1038.  
  1039. stock Login(playerid,key[])
  1040. {
  1041.         new Spieler[64];
  1042.         new Sname[MAX_PLAYER_NAME];
  1043.         GetPlayerName(playerid,Sname,sizeof(Sname));
  1044.         format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
  1045.         if(!strcmp(key,dini_Get(Spieler,"Passwort"),true))
  1046.         {
  1047.                 SendClientMessage(playerid,BLAU,"Du hast dich erfolgreich eingeloggt.");
  1048.         SpielerLaden(playerid);
  1049.         }
  1050.         else
  1051.         {
  1052.             SendClientMessage(playerid,BLAU,"Du hast ein falsches Passwort eingegeben");
  1053.             ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login","Falsches Passwort. Versuch es noch einmal.","Login","Abbrechen");
  1054.         }
  1055.         return 1;
  1056. }
  1057.  
  1058. stock SpielerSpeichern(playerid)
  1059. {
  1060.         new Spieler[64];
  1061.         new Sname[MAX_PLAYER_NAME];
  1062.         GetPlayerName(playerid,Sname,sizeof(Sname));
  1063.         format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
  1064.         if(dini_Exists(Spieler))
  1065.         {
  1066.             dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
  1067.             dini_IntSet(Spieler,"Level",sSpieler[playerid][Level]);
  1068.             dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
  1069.             dini_IntSet(Spieler,"Team",sSpieler[playerid][Team]);
  1070.             dini_IntSet(Spieler,"Geld",GetPlayerMoney(playerid));
  1071.         if(SollSkinSpeichern(playerid, 0))
  1072.         {
  1073.                 dini_IntSet(Spieler,"Skin",GetPlayerSkin(playerid));
  1074.             }
  1075.                 dini_IntSet(Spieler,"AutoID",sSpieler[playerid][AutoID]);
  1076.         }
  1077.         return 1;
  1078. }
  1079.  
  1080. stock SpielerLaden(playerid)
  1081. {
  1082.         new Spieler[64];
  1083.         new Sname[MAX_PLAYER_NAME];
  1084.         GetPlayerName(playerid,Sname,sizeof(Sname));
  1085.         format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
  1086.         if(dini_Exists(Spieler))
  1087.         {
  1088.             SetPlayerScore(playerid,dini_Int(Spieler,"Level"));
  1089.                 sSpieler[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
  1090.                 sSpieler[playerid][Level] = dini_Int(Spieler,"Level");
  1091.                 sSpieler[playerid][Fraktion] = dini_Int(Spieler,"Fraktion");
  1092.                 sSpieler[playerid][Team] = dini_Int(Spieler,"Team");
  1093.                 sSpieler[playerid][Skin] = dini_Int(Spieler,"Skin");
  1094.                 sSpieler[playerid][AutoID] = dini_Int(Spieler,"AutoID");
  1095.                 sSpieler[playerid][Geld] = dini_Int(Spieler,"Geld");
  1096.                 sSpieler[playerid][Tode] = dini_Int(Spieler,"Tode");
  1097.                 GivePlayerMoney(playerid, sSpieler[playerid][Geld]);
  1098.                 //SetPlayerSkin(playerid,dini_Int(Spieler,"Skin"));
  1099.                 sSpieler[playerid][sLogin] = 1;
  1100.                 if(HatSpielerEinenSkin(playerid,0))
  1101.                 {
  1102.                         return 1;
  1103.                 }
  1104.                 else
  1105.                 {
  1106.                         SpawnPlayer(playerid);
  1107.                         return 1;
  1108.                 }
  1109.         }
  1110.         return 1;
  1111. }
  1112.  
  1113. stock SpielerReset(playerid)
  1114. {
  1115.         sSpieler[playerid][Adminlevel] = 0;
  1116.         sSpieler[playerid][Level] = 0;
  1117.         sSpieler[playerid][Fraktion] = 1;
  1118.         sSpieler[playerid][Team] = 0;
  1119.         sSpieler[playerid][AutoID] = 0;
  1120.         sSpieler[playerid][Geld] = 0;
  1121.         return 1;
  1122. }
  1123.  
  1124. //Adminsystem
  1125. stock IstSpielerAdmin(playerid,level)
  1126. {
  1127.         if(sSpieler[playerid][Adminlevel] >= level) return 1;
  1128.         return 0;
  1129. }
  1130.  
  1131. //Fraktionen
  1132. stock IstSpielerInFraktion(playerid, fraktionsid)
  1133. {
  1134.         if(sSpieler[playerid][Fraktion] == fraktionsid) return 1;
  1135.         return 0;
  1136. }
  1137.  
  1138. stock SollSkinSpeichern(playerid, saveskin)
  1139. {
  1140.         if(sSpieler[playerid][SkinSave] == saveskin) return 1;
  1141.         return 0;
  1142. }
  1143.  
  1144. //Team
  1145. stock IstSpielerInTeam(playerid, teamid)
  1146. {
  1147.         if(sSpieler[playerid][Team] == teamid) return 1;
  1148.         return 0;
  1149. }
  1150.  
  1151. //AdminCheck
  1152. stock IstSpielerFahradmin(playerid, adminfahrid)
  1153. {
  1154.         if(sSpieler[playerid][Adminlevel] == adminfahrid) return 1;
  1155.         return 0;
  1156. }
  1157.  
  1158. //Skin
  1159. stock HatSpielerEinenSkin(playerid, idskin)
  1160. {
  1161.         if(sSpieler[playerid][Skin] == idskin) return 1;
  1162.         return 0;
  1163. }
  1164.  
  1165. //Login
  1166. stock IstSpielerLogged(playerid)
  1167. {
  1168.         if(sSpieler[playerid][sLogin] == 1) return1;
  1169.         return 0;
  1170. }
  1171.  
  1172. stock sscanf(string[], format[], {Float,_}:...)
  1173. {
  1174.         #if defined isnull
  1175.                 if (isnull(string))
  1176.         #else
  1177.                 if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  1178.         #endif
  1179.                 {
  1180.                         return format[0];
  1181.                 }
  1182.         #pragma tabsize 4
  1183.         new
  1184.                 formatPos = 0,
  1185.                 stringPos = 0,
  1186.                 paramPos = 2,
  1187.                 paramCount = numargs(),
  1188.                 delim = ' ';
  1189.         while (string[stringPos] && string[stringPos] <= ' ')
  1190.         {
  1191.                 stringPos++;
  1192.         }
  1193.         while (paramPos < paramCount && string[stringPos])
  1194.         {
  1195.                 switch (format[formatPos++])
  1196.                 {
  1197.                         case '\0':
  1198.                         {
  1199.                                 return 0;
  1200.                         }
  1201.                         case 'i', 'd':
  1202.                         {
  1203.                                 new
  1204.                                         neg = 1,
  1205.                                         num = 0,
  1206.                                         ch = string[stringPos];
  1207.                                 if (ch == '-')
  1208.                                 {
  1209.                                         neg = -1;
  1210.                                         ch = string[++stringPos];
  1211.                                 }
  1212.                                 do
  1213.                                 {
  1214.                                         stringPos++;
  1215.                                         if ('0' <= ch <= '9')
  1216.                                         {
  1217.                                                 num = (num * 10) + (ch - '0');
  1218.                                         }
  1219.                                         else
  1220.                                         {
  1221.                                                 return -1;
  1222.                                         }
  1223.                                 }
  1224.                                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  1225.                                 setarg(paramPos, 0, num * neg);
  1226.                         }
  1227.                         case 'h', 'x':
  1228.                         {
  1229.                                 new
  1230.                                         num = 0,
  1231.                                         ch = string[stringPos];
  1232.                                 do
  1233.                                 {
  1234.                                         stringPos++;
  1235.                                         switch (ch)
  1236.                                         {
  1237.                                                 case 'x', 'X':
  1238.                                                 {
  1239.                                                         num = 0;
  1240.                                                         continue;
  1241.                                                 }
  1242.                                                 case '0' .. '9':
  1243.                                                 {
  1244.                                                         num = (num << 4) | (ch - '0');
  1245.                                                 }
  1246.                                                 case 'a' .. 'f':
  1247.                                                 {
  1248.                                                         num = (num << 4) | (ch - ('a' - 10));
  1249.                                                 }
  1250.                                                 case 'A' .. 'F':
  1251.                                                 {
  1252.                                                         num = (num << 4) | (ch - ('A' - 10));
  1253.                                                 }
  1254.                                                 default:
  1255.                                                 {
  1256.                                                         return -1;
  1257.                                                 }
  1258.                                         }
  1259.                                 }
  1260.                                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  1261.                                 setarg(paramPos, 0, num);
  1262.                         }
  1263.                         case 'c':
  1264.                         {
  1265.                                 setarg(paramPos, 0, string[stringPos++]);
  1266.                         }
  1267.                         case 'f':
  1268.                         {
  1269.  
  1270.                                 new changestr[16], changepos = 0, strpos = stringPos;
  1271.                                 while(changepos < 16 && string[strpos] && string[strpos] != delim)
  1272.                                 {
  1273.                                         changestr[changepos++] = string[strpos++];
  1274.                                 }
  1275.                                 changestr[changepos] = '\0';
  1276.                                 setarg(paramPos,0,_:floatstr(changestr));
  1277.                         }
  1278.                         case 'p':
  1279.                         {
  1280.                                 delim = format[formatPos++];
  1281.                                 continue;
  1282.                         }
  1283.                         case '\'':
  1284.                         {
  1285.                                 new
  1286.                                         end = formatPos - 1,
  1287.                                         ch;
  1288.                                 while ((ch = format[++end]) && ch != '\'') {}
  1289.                                 if (!ch)
  1290.                                 {
  1291.                                         return -1;
  1292.                                 }
  1293.                                 format[end] = '\0';
  1294.                                 if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  1295.                                 {
  1296.                                         if (format[end + 1])
  1297.                                         {
  1298.                                                 return -1;
  1299.                                         }
  1300.                                         return 0;
  1301.                                 }
  1302.                                 format[end] = '\'';
  1303.                                 stringPos = ch + (end - formatPos);
  1304.                                 formatPos = end + 1;
  1305.                         }
  1306.                         case 'u':
  1307.                         {
  1308.                                 new
  1309.                                         end = stringPos - 1,
  1310.                                         id = 0,
  1311.                                         bool:num = true,
  1312.                                         ch;
  1313.                                 while ((ch = string[++end]) && ch != delim)
  1314.                                 {
  1315.                                         if (num)
  1316.                                         {
  1317.                                                 if ('0' <= ch <= '9')
  1318.                                                 {
  1319.                                                         id = (id * 10) + (ch - '0');
  1320.                                                 }
  1321.                                                 else
  1322.                                                 {
  1323.                                                         num = false;
  1324.                                                 }
  1325.                                         }
  1326.                                 }
  1327.                                 if (num && IsPlayerConnected(id))
  1328.                                 {
  1329.                                         setarg(paramPos, 0, id);
  1330.                                 }
  1331.                                 else
  1332.                                 {
  1333.                                         #if !defined foreach
  1334.                                                 #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  1335.                                                 #define __SSCANF_FOREACH__
  1336.                                         #endif
  1337.                                         string[end] = '\0';
  1338.                                         num = false;
  1339.                                         new
  1340.                                                 name[MAX_PLAYER_NAME];
  1341.                                         id = end - stringPos;
  1342.                                         foreach (Player, playerid)
  1343.                                         {
  1344.                                                 GetPlayerName(playerid, name, sizeof (name));
  1345.                                                 if (!strcmp(name, string[stringPos], true, id))
  1346.                                                 {
  1347.                                                         setarg(paramPos, 0, playerid);
  1348.                                                         num = true;
  1349.                                                         break;
  1350.                                                 }
  1351.                                         }
  1352.                                         if (!num)
  1353.                                         {
  1354.                                                 setarg(paramPos, 0, INVALID_PLAYER_ID);
  1355.                                         }
  1356.                                         string[end] = ch;
  1357.                                         #if defined __SSCANF_FOREACH__
  1358.                                                 #undef foreach
  1359.                                                 #undef __SSCANF_FOREACH__
  1360.                                         #endif
  1361.                                 }
  1362.                                 stringPos = end;
  1363.                         }
  1364.                         case 's', 'z':
  1365.                         {
  1366.                                 new
  1367.                                         i = 0,
  1368.                                         ch;
  1369.                                 if (format[formatPos])
  1370.                                 {
  1371.                                         while ((ch = string[stringPos++]) && ch != delim)
  1372.                                         {
  1373.                                                 setarg(paramPos, i++, ch);
  1374.                                         }
  1375.                                         if (!i)
  1376.                                         {
  1377.                                                 return -1;
  1378.                                         }
  1379.                                 }
  1380.                                 else
  1381.                                 {
  1382.                                         while ((ch = string[stringPos++]))
  1383.                                         {
  1384.                                                 setarg(paramPos, i++, ch);
  1385.                                         }
  1386.                                 }
  1387.                                 stringPos--;
  1388.                                 setarg(paramPos, i, '\0');
  1389.                         }
  1390.                         default:
  1391.                         {
  1392.                                 continue;
  1393.                         }
  1394.                 }
  1395.                 while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  1396.                 {
  1397.                         stringPos++;
  1398.                 }
  1399.                 while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  1400.                 {
  1401.                         stringPos++;
  1402.                 }
  1403.                 paramPos++;
  1404.         }
  1405.         do
  1406.         {
  1407.                 if ((delim = format[formatPos++]) > ' ')
  1408.                 {
  1409.                         if (delim == '\'')
  1410.                         {
  1411.                                 while ((delim = format[formatPos++]) && delim != '\'') {}
  1412.                         }
  1413.                         else if (delim != 'z')
  1414.                         {
  1415.                                 return delim;
  1416.                         }
  1417.                 }
  1418.         }
  1419.         while (delim > ' ');
  1420.         return 0;
  1421. }
  1422.  
  1423. public uhrzeitladen()
  1424. {
  1425.    new stunde,minute,sekunde,opunkto[32];
  1426.    gettime(stunde,minute,sekunde);
  1427.    if (minute <= 9){format(opunkto,25,"%d:0%d",stunde,minute);}
  1428.    else {format(opunkto,25,"%d:%d",stunde,minute);}
  1429.    TextDrawSetString(uhr,opunkto);
  1430.    return 1;
  1431. }
  1432.  
  1433.  
  1434. stock Verteilen1(playerid)
  1435. {
  1436.         // Aufpassen!
  1437.         // die Teamid fängt hier bei 0 an,nicht bei 1
  1438.         // Ist der Spieler in keinem Team,gibt es die konstante: NO_TEAM
  1439.         // SetPlayerTeam(playerid, NO_TEAM );
  1440.         new
  1441.                 teamid;
  1442.         if(g_TeamData[0] > g_TeamData[1]) {
  1443.                 teamid = 1;
  1444.         }
  1445.         else if( g_TeamData[0] < g_TeamData[1] ) {
  1446.                 teamid = 0;
  1447.         }
  1448.         else {
  1449.                 new
  1450.                         r = random(2);
  1451.                 if( r == 0 ) {
  1452.                         teamid = 0;
  1453.                 }
  1454.                 else {
  1455.                         teamid = 1;
  1456.                 }
  1457.         }
  1458.         g_TeamData[teamid][TD_iSpieler]++;
  1459.         SetPlayerTeam(playerid, teamid);
  1460.         SetPlayerHealth(playerid,0.0);
  1461.         // Man könnte jetzt alles Teamabhängig hier machen
  1462.         if(teamid == 0 ) {
  1463.                 SetSpawnInfo(playerid,teamid,174,961.2678,2100.2549,1011.0256,7.5695,24,250,31,500,0,1);
  1464.                 SetPlayerColor(playerid, 0x0073FF00);
  1465.         }
  1466.         else {
  1467.                 SetSpawnInfo(playerid,teamid,185,959.1449,2167.9775,1011.0234,358.7257,24,250,31,500,0,1);
  1468.                 SetPlayerColor(playerid, 0xFFE60000);
  1469.         }
  1470.         return 1;
  1471. }
  1472.  
  1473.  
  1474. forward dm1Tore();
  1475. public dm1Tore()
  1476. {
  1477.         MoveObject(dm1Tor1,958.77801513672, 2171.1000976563, 1003.1799926758,2.0);
  1478.         MoveObject(dm1Tor2,958.16998291016, 2103.2299804688, 1012.5200195313,2.0);
  1479.         return 1;
  1480. }
  1481.  
  1482.  
  1483.  
  1484. public Timer1()
  1485. {
  1486.         if(timecount > 1)
  1487.         {
  1488.                 timecount --;
  1489.                 new str[20];
  1490.                 format(str,20,"~r~--~w~ %d ~r~--",timecount-1);
  1491.                 for(new i=0;i<MAX_PLAYERS;i++)
  1492.                 {
  1493.                         if(GetPlayerTeam(i) == 0 || GetPlayerTeam(i) == 1)
  1494.                         {
  1495.                                 GameTextForPlayer(i, str, 1000, 5);
  1496.                         }
  1497.                 }
  1498.         }
  1499.         if(timecount == 1)
  1500.         {
  1501.                 timecount = 0;
  1502.                 for(new i=0;i<MAX_PLAYERS;i++)
  1503.                 {
  1504.                         if(GetPlayerTeam(i) == 0 || GetPlayerTeam(i) == 1)
  1505.                         {
  1506.                                 SendClientMessage(i,GELB,"{F1B103}+---+---+--- {FFFFFF}START {F1B103}---+---+---+");
  1507.                                 SendClientMessage(i,GELB,"{F1B103}|  {FFFF00}Die Tore wurden geöffnet!  {F1B103}|");
  1508.                         }
  1509.                 }
  1510.                 MoveObject(dm1Tor1,958.77801513672, 2171.1000976563, 999.1799926758,2.0);
  1511.                 MoveObject(dm1Tor2,959.56998291016, 2103.2299804688, 1012.5200195313,2.0);
  1512.                 SetTimer("dm1Tore",10125,0);
  1513.                 KillTimer(timestop);
  1514.                 return 1;
  1515.         }
  1516.         return 1;
  1517. }
Advertisement
Add Comment
Please, Sign In to add comment