Guest User

Next Generation Deathmatch v1.3

a guest
Nov 13th, 2010
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 31.32 KB | None | 0 0
  1. /*
  2.     ***Generelle Informationen und Einverständnisserklärung***
  3.    
  4.             Dieser Deathmatch Gamemode wurde von
  5.             OilMast3r gescriptet. Sie besitzen
  6.             hiermit die Rechte des Gebrauchs,
  7.             jedoch nicht das Recht, den Script
  8.             zu re-releasen!
  9.             Sollten sie mit diesen Bedingungen
  10.             nicht einverstanden sein, löschen
  11.             sie diesen Script sofort!
  12.             Wenn sie einverstanden sind,
  13.             viel Spass mit diesem DM Gamemode!
  14.            
  15.  
  16.                ***Scriptinformation***
  17.                
  18.                Version: 1.3 Released
  19.                
  20.                Autor:  OilMast3r
  21.                
  22.                Support:  ICQ: 478806116 & MSN: [email protected]
  23.                
  24.                   © 2010 by OilMast3r
  25.            
  26. */
  27.  
  28.  
  29. #include <a_samp>
  30. #include <dini>
  31. #include <dudb>
  32.  
  33. #define ADMIN_RED       0xFB0000FF
  34. #define COLOR_ORANGE 0xFF9900AA
  35. #define COLOR_GREEN 0x00FF00FF
  36. #define COLOR_BLACK 0x242424
  37. #define COLOR_LIGHTRED 0xFF6347AA
  38. #define COLOR_GREY 0x33CCFFAA
  39. #define COLOR_RED 0xFF000000
  40. #define COLOR_YELLOW 0xFFFF00AA
  41. #define wahlmenu 0
  42. #define registrieren 1
  43. #define einloggen 2
  44. #define ranglist 3
  45. #define MAX_MUTE_WARNUNGEN 3
  46.  
  47. new Text:txtTimeDisp;
  48. new hour, minute;
  49. new timestr[32];
  50.  
  51. forward UpdateTime();
  52.  
  53.  
  54. new started[MAX_PLAYERS]=0;
  55.  
  56. new InDm1[MAX_PLAYERS]=0;
  57. new InDm2[MAX_PLAYERS]=0;
  58. new InDm3[MAX_PLAYERS]=0;
  59. new InDm4[MAX_PLAYERS]=0;
  60. new InDm5[MAX_PLAYERS]=0;
  61. new InDm6[MAX_PLAYERS]=0;
  62.  
  63. //Loginsystem
  64. enum Info
  65. {
  66.     passwort[128],
  67.     geld,
  68.     kills,
  69.     tode,
  70.     rang,
  71. };
  72.  
  73. forward login(playerid);
  74. forward logout(playerid);
  75. new muted[MAX_PLAYERS];
  76. new mutewarns[MAX_PLAYERS] = 1;
  77.  
  78.  
  79. new loggedin[MAX_PLAYERS];
  80. new pInfo[MAX_PLAYERS][Info];
  81.  
  82. forward killcheck(playerid);
  83. new Text:Textdraw0;
  84. forward DeathMatchUpDate();
  85.  
  86.  
  87. new Float:RandomPlayerSpawns[3][3] = {
  88.     {2218.1511,1614.1666,999.9827},
  89.     {2173.0547,1618.6345,999.9766},
  90.     {2230.5974,1574.3224,999.9692}
  91.     };
  92.    
  93. new Float:RandomPlayerSpawns2[3][3] = {
  94.     {-9.7556,2342.2785,23.1750},
  95.     {-46.1810,2360.2963,23.1750},
  96.     {-28.4475,2317.9409,23.1750}
  97.     };
  98.  
  99.  
  100. main()
  101. {
  102.     print("\n---------------------------------------");
  103.     print(" Next Generation Deathmatch by OilMast3r");
  104.     print("---------------------------------------\n");
  105. }
  106.  
  107.  
  108. public OnGameModeInit()
  109. {
  110.     SetGameModeText("NGD GM 1.3");
  111.     UsePlayerPedAnims();
  112.     AddPlayerClass(7, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  113.     AddPlayerClass(9, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  114.     AddPlayerClass(10, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  115.     AddPlayerClass(11, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  116.     AddPlayerClass(12, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  117.     AddPlayerClass(13, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  118.     AddPlayerClass(14, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  119.     AddPlayerClass(15, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  120.     AddPlayerClass(16, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  121.     AddPlayerClass(17, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  122.     AddPlayerClass(18, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  123.     AddPlayerClass(19, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  124.     AddPlayerClass(20, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  125.    
  126.     //CAGEFIGHT
  127.     CreateObject(987, 2567.2292480469, -1475.7828369141, 46.9375, 0, 0, 0);
  128.     CreateObject(987, 2579.1264648438, -1475.8179931641, 46.932609558105, 0, 0, 90);
  129.     CreateObject(987, 2567.3771972656, -1463.8310546875, 46.932609558105, 0, 0, 269.75);
  130.     CreateObject(987, 2579.2360839844, -1463.8614501953, 46.932609558105, 0, 0, 180);
  131.     CreateObject(987, 2567.4345703125, -1475.8109130859, 52.907939910889, 271.50012207031, 0, 0);
  132.     CreateObject(987, 2579.2944335938, -1464.0357666016, 52.857696533203, 271.49963378906, 0, 180);
  133.     //CAGEFIGTHEND
  134.    
  135.     //SNIPERDESERT
  136.     CreateObject(987,-42.31648636,2315.98510742,22.98474312,0.00000000,0.00000000,0.00000000); //object(elecfence_bar) (1)
  137.     CreateObject(987,-30.44242477,2316.14941406,22.75974655,0.00000000,0.00000000,0.00000000); //object(elecfence_bar) (2)
  138.     CreateObject(987,-18.52386665,2316.34130859,22.63474846,0.00000000,0.00000000,0.00000000); //object(elecfence_bar) (3)
  139.     CreateObject(987,-6.86956072,2316.32177734,22.58474922,0.00000000,0.00000000,90.00000000); //object(elecfence_bar) (4)
  140.     CreateObject(987,-6.84154224,2328.27050781,22.58474922,0.00000000,0.00000000,90.00000000); //object(elecfence_bar) (5)
  141.     CreateObject(987,-6.87142801,2340.25097656,22.53474998,0.00000000,0.00000000,90.00000000); //object(elecfence_bar) (6)
  142.     CreateObject(987,-6.89176464,2352.18115234,22.53474998,0.00000000,0.00000000,90.00000000); //object(elecfence_bar) (7)
  143.     CreateObject(987,-6.81065178,2363.98291016,22.45975113,0.00000000,0.00000000,181.00000000); //object(elecfence_bar) (8)
  144.     CreateObject(987,-18.75958633,2363.81445312,22.50975037,0.00000000,0.00000000,180.99975586); //object(elecfence_bar) (9)
  145.     CreateObject(987,-30.75802994,2363.67041016,22.50975037,0.00000000,0.00000000,180.99975586); //object(elecfence_bar) (10)
  146.     CreateObject(987,-42.48225784,2363.55346680,22.50975037,0.00000000,0.00000000,180.99975586); //object(elecfence_bar) (11)
  147.     CreateObject(987,-54.31004333,2363.45410156,22.45975113,0.00000000,0.00000000,269.74975586); //object(elecfence_bar) (12)
  148.     CreateObject(987,-54.54659271,2351.43408203,22.45975113,0.00000000,0.00000000,269.74731445); //object(elecfence_bar) (13)
  149.     CreateObject(987,-54.65544510,2339.48266602,22.45975113,0.00000000,0.00000000,269.74731445); //object(elecfence_bar) (14)
  150.     CreateObject(987,-54.65530396,2327.80810547,22.45975113,0.00000000,0.00000000,269.74731445); //object(elecfence_bar) (15)
  151.     CreateObject(987,-54.41237640,2316.14111328,22.45975113,0.00000000,0.00000000,359.24731445); //object(elecfence_bar) (16)
  152.     CreateObject(11290,-49.09564209,2333.38720703,28.14385033,0.00000000,0.00000000,0.00000000); //object(facttanks_sfse04) (1)
  153.     CreateObject(987,-6.87109375,2340.25097656,27.48475838,0.00000000,0.00000000,90.00000000); //object(elecfence_bar) (17)
  154.     CreateObject(987,-6.90214252,2328.24462891,27.48475838,0.00000000,0.00000000,90.00000000); //object(elecfence_bar) (18)
  155.     CreateObject(987,-6.88851738,2352.15673828,27.55975723,0.00000000,0.00000000,90.00000000); //object(elecfence_bar) (19)
  156.     CreateObject(987,-6.86914062,2316.32128906,27.45974731,0.00000000,0.00000000,90.00000000); //object(elecfence_bar) (20)
  157.     CreateObject(987,-18.52343750,2316.34082031,27.43474007,0.00000000,0.00000000,0.00000000); //object(elecfence_bar) (21)
  158.     CreateObject(987,-30.42071915,2316.29736328,27.50973892,0.00000000,0.00000000,0.00000000); //object(elecfence_bar) (22)
  159.     CreateObject(987,-18.75878906,2363.81445312,27.50976562,0.00000000,0.00000000,180.99975586); //object(elecfence_bar) (23)
  160.     CreateObject(987,-42.48144531,2363.55273438,27.35975647,0.00000000,0.00000000,180.99975586); //object(elecfence_bar) (24)
  161.     CreateObject(987,-30.75802994,2363.67041016,22.50975037,0.00000000,0.00000000,180.99975586); //object(elecfence_bar) (25)
  162.    
  163.    
  164.    
  165.     txtTimeDisp = TextDrawCreate(605.0,25.0,"00:00");
  166.     TextDrawUseBox(txtTimeDisp, 0);
  167.     TextDrawFont(txtTimeDisp, 3);
  168.     TextDrawSetShadow(txtTimeDisp,0); // no shadow
  169.     TextDrawSetOutline(txtTimeDisp,2); // thickness 1
  170.     TextDrawBackgroundColor(txtTimeDisp,0x000000FF);
  171.     TextDrawColor(txtTimeDisp,0xFFFFFFFF);
  172.     TextDrawAlignment(txtTimeDisp,3);
  173.     TextDrawLetterSize(txtTimeDisp,0.5,1.5);
  174.  
  175.     UpdateTime();
  176.     SetTimer("UpdateTime",1000 * 60,1);
  177.    
  178.     Textdraw0 = TextDrawCreate(0.000000,425.000000, "Text");
  179.     TextDrawUseBox(Textdraw0, true);
  180.     TextDrawBoxColor(Textdraw0, COLOR_BLACK);
  181.     TextDrawAlignment(Textdraw0,0);
  182.     TextDrawBackgroundColor(Textdraw0,0x000000ff);
  183.     TextDrawFont(Textdraw0,1);
  184.     TextDrawLetterSize(Textdraw0,0.499999,1.200000);
  185.     TextDrawColor(Textdraw0,0xffffffff);
  186.     TextDrawSetOutline(Textdraw0,1);
  187.     TextDrawSetProportional(Textdraw0,1);
  188.     TextDrawSetShadow(Textdraw0,2);
  189.  
  190.     DeathMatchUpDate();
  191.     SetTimer("DeathMatchUpDate",1000,1);
  192.    
  193.     return 1;
  194. }
  195.  
  196. public OnGameModeExit()
  197. {
  198.     return 1;
  199. }
  200.  
  201. public OnPlayerRequestClass(playerid, classid)
  202. {
  203.     SetPlayerInterior(playerid,0);
  204.     SetPlayerPos(playerid,2080.5840,1682.7871,10.8203);
  205.     SetPlayerFacingAngle(playerid, 55.0);
  206.     SetPlayerCameraPos(playerid, 2077.9380,1684.2322,10.8203);
  207.     SetPlayerCameraLookAt(playerid, 2080.5840,1682.7871,10.8203);
  208.     return 1;
  209. }
  210.  
  211. public OnPlayerConnect(playerid)
  212. {
  213.     new pName[MAX_PLAYER_NAME];
  214.     new string[48];
  215.     GetPlayerName(playerid, pName, sizeof(pName));
  216.     format(string, sizeof(string), "%s hat den Server betreten.", pName);
  217.     SendClientMessageToAll(COLOR_GREEN, string);
  218.  
  219.     gettime(hour, minute);
  220.     SetPlayerTime(playerid,hour,minute);
  221.     started[playerid]=0;
  222.     InDm1[playerid]=0;
  223.     InDm2[playerid]=0;
  224.     InDm3[playerid]=0;
  225.     InDm4[playerid]=0;
  226.     InDm5[playerid]=0;
  227.     InDm6[playerid]=0;
  228.    
  229.    
  230.     if(loggedin[playerid] == 0)
  231.     {
  232.     new save[40];
  233.     new name[40];
  234.     GetPlayerName(playerid,name,sizeof(name));
  235.     format(save,sizeof(save),"/OilSave/Spieler/%s.ini",name);
  236.     if(!dini_Exists(save))
  237.     {
  238.         new msg[200];
  239.         new pname[40];
  240.         GetPlayerName(playerid,pname,sizeof(pname));
  241.         format(msg,sizeof(msg),"Willkommen %s.\n\nDu kannst dich jetzt registrieren.\nGib bitte dein gewünschtes Passwort\nein.",pname);
  242.         ShowPlayerDialog(playerid, registrieren,DIALOG_STYLE_INPUT, "Registrierung:", msg, "Bestätigen", "Abbrechen");
  243.         return 1;
  244.     }
  245.     else if(dini_Exists(save) && !loggedin[playerid])
  246.     {
  247.         new msg[200];
  248.         format(msg,sizeof(msg),"Willkommen zurück %s.\n\nDu kannst dich jetzt einloggen.\nGib bitte dein Passwort ein.",name);
  249.         ShowPlayerDialog(playerid, einloggen,DIALOG_STYLE_INPUT, "Einloggen:", msg, "Bestätigen", "Abbrechen");
  250.         return 1;
  251.     }
  252.     }
  253.    
  254.     return 1;
  255. }
  256.  
  257. public OnPlayerDisconnect(playerid, reason)
  258. {
  259.     new pName[MAX_PLAYER_NAME], string[56];
  260.     GetPlayerName(playerid, pName, sizeof(pName));
  261.     switch(reason)
  262.     {
  263.     case 0: format(string, sizeof(string), "%s hat den Server verlassen. (Timeout)", pName);
  264.     case 1: format(string, sizeof(string), "%s hat den Server verlassen. (Verlassen)", pName);
  265.     case 2: format(string, sizeof(string), "%s hat den Server verlassen. (Kick/Bann)", pName);
  266.     }
  267.     SendClientMessageToAll(COLOR_GREEN, string);
  268.    
  269.     started[playerid]=0;
  270.     InDm1[playerid]=0;
  271.     InDm2[playerid]=0;
  272.     InDm3[playerid]=0;
  273.     InDm4[playerid]=0;
  274.     InDm5[playerid]=0;
  275.     InDm6[playerid]=0;
  276.    
  277.     logout(playerid);
  278.     return 1;
  279. }
  280.  
  281. public OnPlayerSpawn(playerid)
  282. {
  283.     TextDrawShowForPlayer(playerid,txtTimeDisp);
  284.     TextDrawShowForPlayer(playerid,Textdraw0);
  285.  
  286.     gettime(hour, minute);
  287.     SetPlayerTime(playerid,hour,minute);
  288.  
  289.     if(started[playerid] == 0)
  290.     {
  291.         TogglePlayerControllable(playerid,false);
  292.         ShowPlayerDialog(playerid,wahlmenu,DIALOG_STYLE_LIST,"Wähle das DeathMatch in das du möchtest.","Normales DM (Sawn+Uzi)\nIndustry DM (Shotgun+Deagle)\nLastManStanding DM (Faust)\nMinigun DM (Minigun)\nCageFight DM (Basebat)\nSniperDesert (Sniper)","Auswählen","Abbrechen");
  293.     }
  294.    
  295.     if(InDm1[playerid] == 1)
  296.     {
  297.         SetPlayerPos(playerid,1391.3610,2192.9001,11.0234);
  298.         GivePlayerWeapon(playerid,26,99999);
  299.         GivePlayerWeapon(playerid,32,99999);
  300.     }
  301.     if(InDm2[playerid] == 1)
  302.     {
  303.         SetPlayerPos(playerid,2560.2925,2838.8464,10.8203);
  304.         GivePlayerWeapon(playerid,24,99999);
  305.         GivePlayerWeapon(playerid,25,99999);
  306.     }
  307.     if(InDm3[playerid] == 1)
  308.     {
  309.         SetPlayerPos(playerid,1176.4991,-1177.5375,91.4141);
  310.     }
  311.     if(InDm4[playerid] == 1)
  312.     {
  313.         new rand = random(sizeof(RandomPlayerSpawns));
  314.         SetPlayerPos(playerid, RandomPlayerSpawns[rand][0], RandomPlayerSpawns[rand][1], RandomPlayerSpawns[rand] [2]);
  315.         GivePlayerWeapon(playerid,38,99999);
  316.     }
  317.     if(InDm5[playerid] == 1)
  318.     {
  319.         SetPlayerPos(playerid,2568.8730, -1474.3739, 49.3662);
  320.         GivePlayerWeapon(playerid,5,1);
  321.     }
  322.     if(InDm6[playerid] == 1)
  323.     {
  324.         new rand = random(sizeof(RandomPlayerSpawns));
  325.         SetPlayerPos(playerid, RandomPlayerSpawns2[rand][0], RandomPlayerSpawns2[rand][1], RandomPlayerSpawns2[rand][2]);
  326.         GivePlayerWeapon(playerid,34,9999);
  327.     }
  328.  
  329.     return 1;
  330. }
  331.  
  332. public OnPlayerDeath(playerid, killerid, reason)
  333. {
  334.     TextDrawHideForPlayer(playerid,txtTimeDisp);
  335.     pInfo[playerid][tode]++;
  336.     pInfo[killerid][kills]++;
  337.    
  338.     SendDeathMessage(killerid, playerid, reason);
  339.    
  340.     return 1;
  341. }
  342.  
  343. public OnPlayerText(playerid, text[])
  344. {
  345.     if(muted[playerid] == 1)
  346.     {
  347.         if(mutewarns[playerid] > MAX_MUTE_WARNUNGEN)
  348.         {
  349.             new msg2[200];
  350.             new NamE[MAX_PLAYER_NAME];
  351.             GetPlayerName(playerid,NamE,sizeof(NamE));
  352.             format(msg2,sizeof(msg2),"%s wurde gekickt. Grund: 3 Missachtete Mutewarnings!",NamE);
  353.             SendClientMessage(playerid,ADMIN_RED,"Du wurdest gekickt wegen 3 missachteten Mutewarnungen.");
  354.             SendClientMessageToAll(ADMIN_RED,msg2);
  355.             Kick(playerid);
  356.         }
  357.         new msg[200];
  358.         format(msg,sizeof(msg),"Du bist gemutet und kannst nicht reden! (Verwarnung: %d/%d)",mutewarns[playerid],MAX_MUTE_WARNUNGEN);
  359.         mutewarns[playerid] += 1;
  360.         SendClientMessage(playerid,COLOR_RED,msg);
  361.         return 0;
  362.     }
  363.  
  364.     return 1;
  365. }
  366.  
  367. public OnPlayerCommandText(playerid, cmdtext[])
  368. {
  369.     new ziel = strval(strget(cmdtext,1));
  370.     new opfer[MAX_PLAYER_NAME];
  371.     new spieler[MAX_PLAYER_NAME];
  372.     GetPlayerName(playerid,spieler,sizeof(spieler));
  373.     GetPlayerName(ziel,opfer,sizeof(opfer));
  374.  
  375.     if (strcmp("/stats", cmdtext, true, 10) == 0)
  376.     {
  377.         new msg1[200];
  378.         new msg2[200];
  379.         new msg3[200];
  380.         new aus[60];
  381.         if(pInfo[playerid][rang] == 1)
  382.         {
  383.             aus[10] = format(aus,sizeof(aus),"Bauer");
  384.         }
  385.         if(pInfo[playerid][rang] == 2)
  386.         {
  387.             aus[20] = format(aus,sizeof(aus),"Rekrut");
  388.         }
  389.         if(pInfo[playerid][rang] == 3)
  390.         {
  391.             aus[30] = format(aus,sizeof(aus),"Soldat");
  392.         }
  393.         if(pInfo[playerid][rang] == 4)
  394.         {
  395.             aus[40] = format(aus,sizeof(aus),"Unteroffizier");
  396.         }
  397.         if(pInfo[playerid][rang] == 5)
  398.         {
  399.             aus[50] = format(aus,sizeof(aus),"Offizier");
  400.         }
  401.         if(pInfo[playerid][rang] == 6)
  402.         {
  403.             aus[6] = format(aus,sizeof(aus),"General");
  404.         }
  405.         format(msg1,sizeof(msg1),"Wie oft Gestorben: %d mal",pInfo[playerid][tode]);
  406.         format(msg2,sizeof(msg2),"Wie viele Personen Getötet: %d Personen",pInfo[playerid][kills]);
  407.         format(msg3,sizeof(msg3),"Erreichter Rang: %s",aus);
  408.         SendClientMessage(playerid,ADMIN_RED,msg1);
  409.         SendClientMessage(playerid,ADMIN_RED,msg2);
  410.         SendClientMessage(playerid,ADMIN_RED,msg3);
  411.         return 1;
  412.     }
  413.    
  414.     if (strcmp("/change", cmdtext, true, 10) == 0)
  415.     {
  416.         TogglePlayerControllable(playerid,false);
  417.         ShowPlayerDialog(playerid,wahlmenu,DIALOG_STYLE_LIST,"Wähle das DeathMatch in das du möchtest.","Normales DM (Sawn+Uzi)\nIndustry DM (Shotgun+Deagle)\nLastManStanding DM (Faust)\nMinigun DM (Minigun)\nCageFight DM (Basebat)","Auswählen","Abbrechen");
  418.         return 1;
  419.     }
  420.    
  421.     if (strcmp("/ranglist", cmdtext, true, 10) == 0)
  422.     {
  423.         ShowPlayerDialog(playerid,ranglist,DIALOG_STYLE_LIST,"Folgende Ränge bei angegebenen Kills","Bauer  50 Kills\nRekrut  100 Kills\nSoldat  200 Kills\nUnteroffizier  350 Kills\nOffizier  500 Kills\nGeneral  1000 Kills","Schließen","Schließen");
  424.         return 1;
  425.     }
  426.    
  427.     //-----------Kicken--------------------
  428.     if(strcmp(strget(cmdtext,0),"/kick",true) == 0)
  429.     {
  430.         if(!IsPlayerConnected(ziel))
  431.         {
  432.             SendClientMessage(playerid,COLOR_GREY,"Diesen Spieler gibt es nicht.");
  433.             return 1;
  434.         }
  435.         if(IsPlayerAdmin(playerid))
  436.         {
  437.             if(!strlen(strget(cmdtext,1)) || !strlen(strget(cmdtext,2)))
  438.             {
  439.                 SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /kick [spielerid][Grund]");
  440.                 return 1;
  441.             }
  442.             new msg1[200];
  443.             new msg2[200];
  444.             GetPlayerName(playerid,spieler,sizeof(spieler));
  445.             GetPlayerName(ziel,opfer,sizeof(opfer));
  446.             format(msg1,sizeof(msg1),"** %s wurde von Admin %s gekickt. (Grund: %s)",opfer,spieler,cmdtext[8]);
  447.             format(msg2,sizeof(msg2),"** Du wurdest von Admin %s gekickt. (Grund: %s)",spieler,cmdtext[8]);
  448.             SendClientMessage(ziel,COLOR_LIGHTRED,msg2);
  449.             Kick(ziel);
  450.             SendClientMessageToAll(COLOR_LIGHTRED,msg1);
  451.             return 1;
  452.         }
  453.         else
  454.         {
  455.             SendClientMessage(playerid,ADMIN_RED,"Du musst Admin sein um diesen Command zu verwenden!");
  456.         }
  457.         return 1;
  458.     }
  459.    
  460.     //----------------Bannen------------------
  461.     if(strcmp(strget(cmdtext,0),"/ban",true) == 0)
  462.     {
  463.         if(!IsPlayerConnected(ziel))
  464.         {
  465.             SendClientMessage(playerid,COLOR_GREY,"Diesen Spieler gibt es nicht.");
  466.             return 1;
  467.         }
  468.         if(IsPlayerAdmin(playerid))
  469.         {
  470.             if(!strlen(strget(cmdtext,1)) || !strlen(strget(cmdtext,2)))
  471.             {
  472.                 SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /ban [spielerid][Grund]");
  473.                 return 1;
  474.             }
  475.             new msg1[200];
  476.             new msg2[200];
  477.             GetPlayerName(playerid,spieler,sizeof(spieler));
  478.             GetPlayerName(ziel,opfer,sizeof(opfer));
  479.             format(msg1,sizeof(msg1),"** %s wurde von Admin %s gebannt. (Grund: %s)",opfer,spieler,cmdtext[8]);
  480.             format(msg2,sizeof(msg2),"** Du wurdest von Admin %s gebannt. (Grund: %s)",spieler,cmdtext[8]);
  481.             SendClientMessage(ziel,COLOR_LIGHTRED,msg2);
  482.             Ban(ziel);
  483.             SendClientMessageToAll(COLOR_LIGHTRED,msg1);
  484.             return 1;
  485.         }
  486.         else
  487.         {
  488.             SendClientMessage(playerid,ADMIN_RED,"Du musst Admin sein um diesen Command zu verwenden!");
  489.         }
  490.         return 1;
  491.     }
  492.    
  493.     if(strcmp(strget(cmdtext,0),"/mute",true) == 0)
  494.     {
  495.         if(IsPlayerAdmin(playerid))
  496.         {
  497.             if(!strlen(strget(cmdtext,1)) || !strlen(strget(cmdtext,2)))
  498.             {
  499.                 SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /mute [spielerid][Grund]");
  500.                 return 1;
  501.             }
  502.             new msg1[200];
  503.             new msg2[200];
  504.             format(msg1,sizeof(msg1),"* Du wurdest von Admin %s gemutet. (Grund: %s)",spieler,cmdtext[8]);
  505.             format(msg2,sizeof(msg2),"* Du hast %s gemutet. (Grund: %s)",opfer,cmdtext[8]);
  506.             SendClientMessage(playerid,COLOR_GREEN,msg2);
  507.             SendClientMessage(ziel,ADMIN_RED,msg1);
  508.             muted[ziel] = 1;
  509.             mutewarns[ziel] = 0;
  510.             PlayerPlaySound(ziel,1057,0.0,0.0,0.0);
  511.             return 1;
  512.         }
  513.         else
  514.         {
  515.             SendClientMessage(playerid,ADMIN_RED,"Du musst Admin sein um diesen Command zu verwenden!");
  516.         }
  517.         return 1;
  518.     }
  519.    
  520.     //---------------UNMUTE----------------------
  521.     if(strcmp(strget(cmdtext,0),"/unmute",true) == 0)
  522.     {
  523.         if(IsPlayerAdmin(playerid))
  524.         {
  525.             if(!strlen(strget(cmdtext,1)))
  526.             {
  527.                 SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /unmute [spielerid]");
  528.                 return 1;
  529.             }
  530.             new msg1[200];
  531.             format(msg1,sizeof(msg1),"* Du hast %s unmuted.",opfer);
  532.             SendClientMessage(playerid,COLOR_GREEN,msg1);
  533.             SendClientMessage(ziel,COLOR_YELLOW,"Du bist unmuted und kannst wieder reden.");
  534.             muted[ziel] = 0;
  535.             PlayerPlaySound(ziel,1057,0.0,0.0,0.0);
  536.             return 1;
  537.         }
  538.         else
  539.         {
  540.             SendClientMessage(playerid,ADMIN_RED,"Du musst Admin sein um diesen Command zu verwenden!");
  541.         }
  542.         return 1;
  543.     }
  544.    
  545.     return 0;
  546. }
  547.  
  548. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  549. {
  550.     if(dialogid == wahlmenu)
  551.     {
  552.         if(!response)
  553.         {
  554.             if(started[playerid] == 1)
  555.             {
  556.                 TogglePlayerControllable(playerid,true);
  557.                 return 1;
  558.             }
  559.             SendClientMessage(playerid,ADMIN_RED,"Du musst ein DM wählen.Komm wieder und versuche es erneut!");
  560.             Kick(playerid);
  561.         }
  562.         if(response)
  563.         {
  564.             if(listitem == 0) // Normales DM
  565.             {
  566.                 new NamE[MAX_PLAYER_NAME];
  567.                 new string[200];
  568.                 GetPlayerName(playerid, NamE, sizeof(NamE));
  569.                 format(string, sizeof(string), "%s hat das Normale DM betreten.", NamE);
  570.                 SendClientMessageToAll(COLOR_ORANGE, string);
  571.                 SendClientMessage(playerid,COLOR_GREEN,"Benutze /change um das DM zu wechseln!");
  572.                
  573.                 SetPlayerPos(playerid,1391.3610,2192.9001,11.0234);
  574.                 ResetPlayerWeapons(playerid);
  575.                 SetPlayerHealth(playerid,100);
  576.                 GivePlayerWeapon(playerid,28,9999);
  577.                 GivePlayerWeapon(playerid,26,9999);
  578.                 started[playerid]=1;
  579.                 SetPlayerInterior(playerid,0);
  580.                 TogglePlayerControllable(playerid,true);
  581.                 InDm1[playerid]=1;
  582.                 InDm2[playerid]=0;
  583.                 InDm3[playerid]=0;
  584.                 InDm4[playerid]=0;
  585.                 InDm5[playerid]=0;
  586.                 InDm6[playerid]=0;
  587.             }
  588.             if(listitem == 1) // Industry DM
  589.             {
  590.                 new NamE[MAX_PLAYER_NAME];
  591.                 new string[200];
  592.                 GetPlayerName(playerid, NamE, sizeof(NamE));
  593.                 format(string, sizeof(string), "%s hat das Industry DM betreten.", NamE);
  594.                 SendClientMessageToAll(COLOR_ORANGE, string);
  595.                 SendClientMessage(playerid,COLOR_GREEN,"Benutze /change um das DM zu wechseln!");
  596.    
  597.                 SetPlayerPos(playerid,2560.2925,2838.8464,10.8203);
  598.                 ResetPlayerWeapons(playerid);
  599.                 SetPlayerInterior(playerid,0);
  600.                 SetPlayerHealth(playerid,100);
  601.                 GivePlayerWeapon(playerid,24,9999);
  602.                 GivePlayerWeapon(playerid,25,9999);
  603.                 started[playerid]=1;
  604.                 TogglePlayerControllable(playerid,true);
  605.                 InDm1[playerid]=0;
  606.                 InDm2[playerid]=1;
  607.                 InDm3[playerid]=0;
  608.                 InDm4[playerid]=0;
  609.                 InDm5[playerid]=0;
  610.                 InDm6[playerid]=0;
  611.             }
  612.             if(listitem == 2) // LMS DM
  613.             {
  614.                 new NamE[MAX_PLAYER_NAME];
  615.                 new string[200];
  616.                 GetPlayerName(playerid, NamE, sizeof(NamE));
  617.                 format(string, sizeof(string), "%s hat das LastManStanding DM betreten.", NamE);
  618.                 SendClientMessageToAll(COLOR_ORANGE, string);
  619.                 SendClientMessage(playerid,COLOR_GREEN,"Benutze /change um das DM zu wechseln!");
  620.  
  621.                 SetPlayerPos(playerid,1176.4991,-1177.5375,91.4141);
  622.                 ResetPlayerWeapons(playerid);
  623.                 SetPlayerInterior(playerid,0);
  624.                 SetPlayerHealth(playerid,100);
  625.                 GivePlayerWeapon(playerid,0,1);
  626.                 started[playerid]=1;
  627.                 TogglePlayerControllable(playerid,true);
  628.                 InDm1[playerid]=0;
  629.                 InDm2[playerid]=0;
  630.                 InDm3[playerid]=1;
  631.                 InDm4[playerid]=0;
  632.                 InDm5[playerid]=0;
  633.                 InDm6[playerid]=0;
  634.             }
  635.            
  636.             if(listitem == 3) // Minigun DM
  637.             {
  638.                 new NamE[MAX_PLAYER_NAME];
  639.                 new string[200];
  640.                 GetPlayerName(playerid, NamE, sizeof(NamE));
  641.                 format(string, sizeof(string), "%s hat das Minigun DM betreten.", NamE);
  642.                 SendClientMessageToAll(COLOR_ORANGE, string);
  643.                 SendClientMessage(playerid,COLOR_GREEN,"Benutze /change um das DM zu wechseln!");
  644.  
  645.                 SetPlayerPos(playerid,2218.1511,1614.1666,999.9827);
  646.                 SetPlayerInterior(playerid,1);
  647.                 ResetPlayerWeapons(playerid);
  648.                 SetPlayerHealth(playerid,100);
  649.                 GivePlayerWeapon(playerid,38,99999);
  650.                 started[playerid]=1;
  651.                 TogglePlayerControllable(playerid,true);
  652.                 InDm1[playerid]=0;
  653.                 InDm2[playerid]=0;
  654.                 InDm3[playerid]=0;
  655.                 InDm4[playerid]=1;
  656.                 InDm5[playerid]=0;
  657.                 InDm6[playerid]=0;
  658.             }
  659.            
  660.             if(listitem == 4) // CageFight DM
  661.             {
  662.                 new NamE[MAX_PLAYER_NAME];
  663.                 new string[200];
  664.                 GetPlayerName(playerid, NamE, sizeof(NamE));
  665.                 format(string, sizeof(string), "%s hat das CageFight DM betreten.", NamE);
  666.                 SendClientMessageToAll(COLOR_ORANGE, string);
  667.                 SendClientMessage(playerid,COLOR_GREEN,"Benutze /change um das DM zu wechseln!");
  668.  
  669.                 SetPlayerPos(playerid,2568.8730, -1474.3739, 49.3662);
  670.                 SetPlayerInterior(playerid,0);
  671.                 ResetPlayerWeapons(playerid);
  672.                 SetPlayerHealth(playerid,100);
  673.                 GivePlayerWeapon(playerid,1,1);
  674.                 GivePlayerWeapon(playerid,5,1);
  675.                 started[playerid]=1;
  676.                 TogglePlayerControllable(playerid,true);
  677.                 InDm1[playerid]=0;
  678.                 InDm2[playerid]=0;
  679.                 InDm3[playerid]=0;
  680.                 InDm4[playerid]=0;
  681.                 InDm5[playerid]=1;
  682.                 InDm6[playerid]=0;
  683.             }
  684.            
  685.             if(listitem == 5) // SniperDesert DM
  686.             {
  687.                 new NamE[MAX_PLAYER_NAME];
  688.                 new string[200];
  689.                 GetPlayerName(playerid, NamE, sizeof(NamE));
  690.                 format(string, sizeof(string), "%s hat den SniperDesert betreten.", NamE);
  691.                 SendClientMessageToAll(COLOR_ORANGE, string);
  692.                 SendClientMessage(playerid,COLOR_GREEN,"Benutze /change um das DM zu wechseln!");
  693.  
  694.                 SetPlayerPos(playerid,-46.1810,2360.2963,23.1750);
  695.                 SetPlayerInterior(playerid,0);
  696.                 ResetPlayerWeapons(playerid);
  697.                 SetPlayerHealth(playerid,100);
  698.                 GivePlayerWeapon(playerid,34,99999);
  699.                 started[playerid]=1;
  700.                 TogglePlayerControllable(playerid,true);
  701.                 InDm1[playerid]=0;
  702.                 InDm2[playerid]=0;
  703.                 InDm3[playerid]=0;
  704.                 InDm4[playerid]=0;
  705.                 InDm5[playerid]=0;
  706.                 InDm6[playerid]=1;
  707.             }
  708.         }
  709.     }
  710.    
  711.    
  712.     if(dialogid == registrieren)
  713.     {
  714.         if(!response)
  715.         {
  716.             SendClientMessage(playerid,ADMIN_RED,"Du musst dich Registrieren um hier zu spielen.");
  717.             Kick(playerid);
  718.             return 1;
  719.         }
  720.         new name[MAX_PLAYER_NAME];
  721.         new save[128];
  722.         GetPlayerName(playerid,name,sizeof(name));
  723.         format(save,sizeof(save),"/OilSave/Spieler/%s.ini",name);
  724.         if(!dini_Exists(save))
  725.         {
  726.             dini_Create(save);
  727.             dini_IntSet(save,"passwort",udb_hash(inputtext));
  728.             SendClientMessage(playerid, COLOR_GREEN, "*** Erfolgreich registriert! ***");
  729.             SendClientMessage(playerid, COLOR_GREEN, "*** Du wurdest automatisch eingeloggt. ***");
  730.             loggedin[playerid] = true;
  731.             login(playerid);
  732.         }
  733.         return 1;
  734.     }
  735.         else if(dialogid == einloggen)
  736.     {
  737.         if(!response)
  738.         {
  739.             SendClientMessage(playerid,ADMIN_RED,"Du musst dich Einloggen um hier zu spielen.");
  740.             Kick(playerid);
  741.             return 1;
  742.         }
  743.         new name[128];
  744.         new save[128];
  745.         new s2[256];
  746.         GetPlayerName(playerid,name,sizeof(name));
  747.         format(save,sizeof(save),"/OilSave/Spieler/%s.ini",name);
  748.         if(dini_Exists(save))
  749.         {
  750.             s2=dini_Get(save,"passwort");
  751.             if(strval(s2)==udb_hash(inputtext))
  752.             {
  753.                 loggedin[playerid] = true;
  754.                 SendClientMessage(playerid,COLOR_GREEN,"*** Erfolgreich eingeloggt. ***");
  755.                 login(playerid);
  756.             }
  757.             else
  758.             {
  759.                 SendClientMessage(playerid,ADMIN_RED,"Falsches Passwort! Du musst dich jedoch einloggen!!");
  760.                 Kick(playerid);
  761.                 return 1;
  762.             }
  763.         }
  764.         return 1;
  765.     }
  766.     return 1;
  767. }
  768.  
  769. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  770. {
  771.     return 1;
  772. }
  773.  
  774. public UpdateTime()
  775. {
  776.     gettime(hour, minute);
  777.     format(timestr,32,"%02d:%02d",hour,minute);
  778.     TextDrawSetString(txtTimeDisp,timestr);
  779.  
  780.     SetWorldTime(hour);
  781.  
  782.     new x=0;
  783.     while(x!=MAX_PLAYERS) {
  784.         if(IsPlayerConnected(x) && GetPlayerState(x) != PLAYER_STATE_NONE)
  785.         {
  786.             SetPlayerTime(x,hour,minute);
  787.         }
  788.         x++;
  789.     }
  790.     return 1;
  791. }
  792.  
  793. public DeathMatchUpDate()
  794. {
  795.     new counter1;
  796.     new counter2;
  797.     new counter3;
  798.     new counter4;
  799.     new counter5;
  800.     new counter6;
  801.  
  802.  
  803.     for(new i; i < MAX_PLAYERS; i++)
  804.     {
  805.     if(InDm1[i] == 1)
  806.     {
  807.         counter1++;
  808.     }
  809.     if(InDm2[i] == 1)
  810.     {
  811.         counter2++;
  812.     }
  813.     if(InDm3[i] == 1)
  814.     {
  815.         counter3++;
  816.     }
  817.     if(InDm4[i] == 1)
  818.     {
  819.         counter4++;
  820.     }
  821.     if(InDm5[i] == 1)
  822.     {
  823.         counter5++;
  824.     }
  825.     if(InDm6[i] == 1)
  826.     {
  827.        counter6++;
  828.     }
  829.     }
  830.  
  831.     new strang[128];
  832.     format(strang, sizeof(strang), "     Normal: %d Industry: %d LMS: %d Minigun: %d Cage: %d Sniper: %d", counter1, counter2, counter3, counter4, counter5, counter6);
  833.     TextDrawSetString(Textdraw0,strang);
  834.     return 1;
  835. }
  836.  
  837. public login(playerid)
  838. {
  839.     new name[MAX_PLAYER_NAME];
  840.     new save[40];
  841.     GetPlayerName(playerid,name,sizeof(name));
  842.     format(save,sizeof(save),"/OilSave/Spieler/%s.ini",name);
  843.     SetPlayerMoney(playerid, dini_Int(save,"Geld"));
  844.     pInfo[playerid][kills] = dini_Int(save,"Kills");
  845.     pInfo[playerid][tode] = dini_Int(save,"Tode");
  846.     pInfo[playerid][rang] = dini_Int(save,"Rang");
  847.     return 1;
  848. }
  849.  
  850. public logout(playerid)
  851. {
  852.     new name[MAX_PLAYER_NAME];
  853.     new save[40];
  854.     GetPlayerName(playerid,name,sizeof(name));
  855.     format(save,sizeof(save),"/OilSave/Spieler/%s.ini",name);
  856.  
  857.     //Speicherung
  858.     dini_IntSet(save,"Geld",GetPlayerMoney(playerid));
  859.     dini_IntSet(save,"Kills",pInfo[playerid][kills]);
  860.     dini_IntSet(save,"Tode",pInfo[playerid][tode]);
  861.     dini_IntSet(save,"Rang",pInfo[playerid][rang]);
  862.  
  863.     return 1;
  864. }
  865.  
  866.  
  867. public killcheck(playerid)
  868. {
  869.     if(pInfo[playerid][kills] <= 49)
  870.     {
  871.         pInfo[playerid][rang] = 0;
  872.     }
  873.  
  874.     if(pInfo[playerid][kills] == 50)
  875.     {
  876.         new pName[MAX_PLAYER_NAME];
  877.         new string[48];
  878.         GetPlayerName(playerid, pName, sizeof(pName));
  879.         format(string,sizeof(string),"%s hat den Rang 'Bauer' erreicht!",pName);
  880.         pInfo[playerid][rang] = 1;
  881.         SendClientMessageToAll(ADMIN_RED,string);
  882.         SendClientMessage(playerid,ADMIN_RED,"Für den Rang 'Bauer' erhälst du $2500!");
  883.         GivePlayerMoney(playerid,GetPlayerMoney(playerid)+2500);
  884.     }
  885.    
  886.     if(pInfo[playerid][kills] == 100)
  887.     {
  888.         new pName[MAX_PLAYER_NAME];
  889.         new string[48];
  890.         GetPlayerName(playerid, pName, sizeof(pName));
  891.         format(string,sizeof(string),"%s hat den Rang 'Rekrut' erreicht!",pName);
  892.         pInfo[playerid][rang] = 2;
  893.         SendClientMessageToAll(ADMIN_RED,string);
  894.         SendClientMessage(playerid,ADMIN_RED,"Für den Rang 'Rekrut' erhälst du $5000!");
  895.         GivePlayerMoney(playerid,GetPlayerMoney(playerid)+5000);
  896.     }
  897.    
  898.     if(pInfo[playerid][kills] == 200)
  899.     {
  900.         new pName[MAX_PLAYER_NAME];
  901.         new string[48];
  902.         GetPlayerName(playerid, pName, sizeof(pName));
  903.         format(string,sizeof(string),"%s hat den Rang 'Soldat' erreicht!",pName);
  904.         pInfo[playerid][rang] = 3;
  905.         SendClientMessageToAll(ADMIN_RED,string);
  906.         SendClientMessage(playerid,ADMIN_RED,"Für den Rang 'Soldat' erhälst du $10000!");
  907.         GivePlayerMoney(playerid,GetPlayerMoney(playerid)+10000);
  908.     }
  909.    
  910.     if(pInfo[playerid][kills] == 350)
  911.     {
  912.         new pName[MAX_PLAYER_NAME];
  913.         new string[48];
  914.         GetPlayerName(playerid, pName, sizeof(pName));
  915.         format(string,sizeof(string),"%s hat den Rang 'Unteroffizier' erreicht!",pName);
  916.         pInfo[playerid][rang] = 4;
  917.         SendClientMessageToAll(ADMIN_RED,string);
  918.         SendClientMessage(playerid,ADMIN_RED,"Für den Rang 'Unteroffizier' erhälst du $25000!");
  919.         GivePlayerMoney(playerid,GetPlayerMoney(playerid)+25000);
  920.     }
  921.    
  922.     if(pInfo[playerid][kills] == 500)
  923.     {
  924.         new pName[MAX_PLAYER_NAME];
  925.         new string[48];
  926.         GetPlayerName(playerid, pName, sizeof(pName));
  927.         format(string,sizeof(string),"%s hat den Rang 'Offizier' erreicht!",pName);
  928.         pInfo[playerid][rang] = 5;
  929.         SendClientMessageToAll(ADMIN_RED,string);
  930.         SendClientMessage(playerid,ADMIN_RED,"Für den Rang 'Offizier' erhälst du $50000!");
  931.         GivePlayerMoney(playerid,GetPlayerMoney(playerid)+50000);
  932.     }
  933.    
  934.     if(pInfo[playerid][kills] == 1000)
  935.     {
  936.         new pName[MAX_PLAYER_NAME];
  937.         new string[48];
  938.         GetPlayerName(playerid, pName, sizeof(pName));
  939.         format(string,sizeof(string),"%s hat den Rang 'General' erreicht!",pName);
  940.         pInfo[playerid][rang] = 6;
  941.         SendClientMessageToAll(ADMIN_RED,string);
  942.         SendClientMessage(playerid,ADMIN_RED,"Für den Rang 'General' erhälst du $100000!");
  943.         GivePlayerMoney(playerid,GetPlayerMoney(playerid)+100000);
  944.     }
  945.     return 1;
  946. }
  947.  
  948.  
  949. stock strget(strx[], pos, search = ' ') {
  950.     new arg, ret[128], idxx;
  951.     for (new i = 0; i < strlen(strx); i++) {
  952.         if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
  953.             arg++;
  954.             if (arg == pos + 1){
  955.                 ret[i-idxx] = EOS;
  956.                 return ret;
  957.             } else if (arg == pos)
  958.                 idxx= i+1;
  959.         }
  960.         else if (arg == pos)
  961.                 ret[i - idxx] = strx[i];
  962.     }
  963.     return ret;
  964.     }
Advertisement
Add Comment
Please, Sign In to add comment