Guest User

xadminx2 [BETA]

a guest
Oct 14th, 2012
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 42.03 KB | None | 0 0
  1. /*==============================================================================
  2. |                                   xXxCrashxXx                                |
  3. |                             Adminscript v2.0 [BETA]                          |
  4. |                                                                              |
  5. |                                      xAdminx                                 |
  6. |                                                                              |
  7. |Lösche nicht diese Credits oder sonstige in dem Script vorhandene!            |
  8. |                                                                              |
  9. |                \  /       /\    |---) |\      /| | |\   |    \  /            |
  10. |                 \/       /__\   |   ) | \    / | | | \  |     \/             |
  11. |             \/  /\  \/  /    \  |   ) |  \  /  | | |  \ | \/  /\  \/         |
  12. |             /\ /  \ /\ /      \ |___) |   \/   | | |   \| /\ /  \ /\         |
  13. ===============================================================================*/
  14.  
  15. /*============================================================================\\
  16. //===========================Includes und pragmas=============================\\
  17. //============================================================================*/
  18. #pragma tabsize 0
  19.  
  20. #include <a_samp>
  21. #include <zcmd>
  22. #include <sscanf2>
  23. #include <YSI\y_ini>
  24.  
  25. /*============================================================================\\
  26. //=================================Other======================================\\
  27. //============================================================================*/
  28. native WP_Hash(buffer[],len,const str[]);
  29.  
  30. enum Accountfiles
  31. {
  32.     Pass[129],
  33.     Adminlevel,
  34.     Viplevel,
  35.     Muted,
  36.     Money,
  37.     Score,
  38.     Kills,
  39.     Deaths,
  40.     Onlinetimes,
  41.     BannedTimes
  42. }
  43.  
  44. enum Bannedfiles
  45. {
  46.     Banned
  47. }
  48.  
  49. new pInfo[MAX_PLAYERS][Accountfiles];
  50. new pWarns[MAX_PLAYERS];
  51. new bInfo[MAX_PLAYERS][Bannedfiles];
  52.  
  53. forward loadaccount_user(playerid, name[], value[]);
  54. forward OnPlayerCommandPerformed(playerid, cmdtext[], success);
  55. forward Server_Restart_Warnung_2();
  56. forward Server_Restart_Kick();
  57. forward Server_Restart();
  58.  
  59. //AFKsystem
  60.  
  61. enum AFK_PLAYERS
  62. {
  63. AFK
  64. }
  65. new AFKPLAYERS[MAX_PLAYERS][AFK_PLAYERS];
  66.  
  67. //Statistrelated!!!!!!!!!
  68.  
  69. new Showing[MAX_PLAYERS];
  70.  
  71. new Text:Admin;
  72. new Text:Vip;
  73. new Text:Box;
  74. new Text:scriptname;
  75. new Text:AdminLevel;
  76. new Text:VipLevel;
  77. new Text:Scores;
  78. new Text:Moneys;
  79. new Text:Scoreammount;
  80. new Text:Moneyammount;
  81.  
  82. //Killstatistik immer sichtbar!!!!!!!!!
  83.  
  84. new Text:Deathss;
  85. new Text:Killss;
  86. new Text:Deathammount;
  87. new Text:Killammount;
  88.  
  89. /*============================================================================\\
  90. //=================================Defines====================================\\
  91. //============================================================================*/
  92. #define FILTERSCRIPT
  93.  
  94. //Colors
  95.  
  96. #define rot 0xFF0000FF
  97. #define gruen 0x00FF00FF
  98. #define blau 0x0000FFFF
  99. #define gelb 0xFFFF00FF
  100. #define gold 0xFFDC00FF
  101. #define grau 0xE6E6E6FF
  102. #define orange 0xFFB400FF
  103. #define light_blue 0x00FFFFFF
  104. #define light_green 0x00FF98FF
  105.  
  106. //Path
  107.  
  108. #define UserPath "xadminx/Accounts/%s.ini"
  109. #define BanPath "xadminx/Bans/%s.ini"
  110.  
  111. //Dialoge
  112.  
  113. #define CMDS 2000
  114. #define LOGIN 2001
  115. #define REGISTER 2002
  116.  
  117. //Servername, Text für CMDS Dialog und mehr.
  118.  
  119. #define Servername "Dein_Servername_hier"
  120. #define Serverclose "password Dein_Passwort_für_das_schliessen_des_Servers_hier"         //wird für den command /serverclose benötigt!
  121. #define Forumname "Dein_Forum_Domain_hier"                                      //hier kannst du deine Forumdomain angeben, solltest du keine haben lösche einfach den Text heraus!
  122.  
  123. #define mutesystem 0 //setze dies auf 0 um in nur zu muten, auf 1 um zu kicken und auf 2 um ihn zu bannen!
  124.  
  125. #define cmds "/cmds\n/credits\n/afk\n/back\n/stats"
  126. #define cmds1 "/cmds\n/credits\n/afk\n/back\n/stats\n{FF0000}Vip Level 1:{FFFFF}\n! = Vipchat\n/vcolor\n/heal\n{FF0000}Admin Level 1:{FFFFFF}\n# = Admin Chat\n/acolor\n/kick\n/mute\n/unmute\n/cchat\n/warn\n/get\n/port\n/tele\n/veh\n/pheal"
  127. #define cmds2 "/cmds\n/credits\n/afk\n/back\n/stats\n{FF0000}Vip Level 1:{FFFFF}\n! = Vipchat\n/vcolor\n/heal\n{FF0000}Admin Level 1:{FFFFFF}\n# = Admin Chat\n/acolor\n/kick\n/mute\n/unmute\n/cchat\n/warn\n/get\n/port\n/tele\n/veh\n/pheal{FF0000}Admin Level 2:{FFFFFF}\n/slap\n/explode\n/ban\n/getveh\n/aheal\n/pkill"
  128. #define cmds3 "/cmds\n/credits\n/afk\n/back\n/stats\n{FF0000}Vip Level 1:{FFFFF}\n! = Vipchat\n/vcolor\n/heal\n{FF0000}Admin Level 1:{FFFFFF}\n# = Admin Chat\n/acolor\n/kick\n/mute\n/unmute\n/cchat\n/warn\n/get\n/port\n/tele\n/veh\n/pheal{FF0000}Admin Level 2:{FFFFFF}\n/slap\n/explode\n/ban\n/getveh\n/aheal\n/pkill\n{FF0000}Admin Level 3:{FFFFFF}\n/setadmin\n/setvip\n/restart\n/serverclose\n/serveropen\n/ipban\n/akill\n/setscore\n/setcash"
  129. #define cmds4 "/cmds\n/credits\n/afk\n/back\n/stats\n{FF0000}RCON ADMIN:\n{FFFFFF}/maxadmin"
  130. #define cmds5 "/cmds\n/credits\n/afk\n/back\n/stats\n{FF0000}Admin Level 1:{FFFFFF}\n# = Admin Chat\n/acolor\n/kick\n/mute\n/unmute\n/cchat\n/warn\n/get\n/port\n/tele\n/veh\n/pheal\n{FF0000}Admin Level 2:{FFFFFF}\n/slap\n/explode\n/ban\n/getveh\n/aheal\n/pkill\n{FF0000}Admin Level 3:{FFFFFF}\n/setadmin\n/setvip\n/restart\n/serverclose\n/serveropen\n/ipban\n/akill\n/setscore\n/setcash\n{FF0000}RCON ADMIN:{FFFFFF}\n/maxadmin"
  131. #define cmds6 "/cmds\n/credits\n/afk\n/back\n/stats\n{FF0000}Vip Level 1:{FFFFF}\n! = Vipchat\n/vcolor\n/heal"
  132. #define cmds7 "/cmds\n/credits\n/afk\n/back\n/stats\n{FF0000}Vip Level 1:{FFFFF}\n! = Vipchat\n/vcolor\n/heal"
  133. #define cmds8 "/cmds\n/credits\n/afk\n/back\n/stats\n{FF0000}Vip Level 1:{FFFFF}\n! = Vipchat\n/vcolor\n/heal"
  134.  
  135. #define error SendClientMessage(playerid,rot,"Du kannst diesen Command nicht nutzen!"); //Fals der Spieler nicht das benötigte Level besitzt!
  136. #define invalid SendClientMessage(playerid,rot,"Dieser Spieler existiert nicht!!"); //Fals der ausgewählte Spieler nicht online ist oder die ID nicht existiert!
  137.  
  138. /*============================================================================\\
  139. //============================================================================*/
  140.  
  141. public OnFilterScriptInit()
  142. {
  143.     print("=====================================");
  144.     print("    Adminsystem by xXxCrashxXx       ");
  145.     print("           v2.0 [BETA]               ");
  146.     print("=====================================");
  147.     print("Credits dürfen nicht entfernt werden!");
  148.     print("=====================================\n");
  149.  
  150. //Kreieren der Textdraws für Statistik!!!!!
  151.  
  152.     Admin = TextDrawCreate(173.000000, 180.000000, "Adminlevel:");
  153.     TextDrawBackgroundColor(Admin, 255);
  154.     TextDrawFont(Admin, 1);
  155.     TextDrawLetterSize(Admin, 0.500000, 1.000000);
  156.     TextDrawColor(Admin, 16711935);
  157.     TextDrawSetOutline(Admin, 0);
  158.     TextDrawSetProportional(Admin, 1);
  159.     TextDrawSetShadow(Admin, 1);
  160.  
  161.     Vip = TextDrawCreate(197.000000, 196.000000, "Viplevel:");
  162.     TextDrawBackgroundColor(Vip, 255);
  163.     TextDrawFont(Vip, 1);
  164.     TextDrawLetterSize(Vip, 0.500000, 1.000000);
  165.     TextDrawColor(Vip, 16711935);
  166.     TextDrawSetOutline(Vip, 0);
  167.     TextDrawSetProportional(Vip, 1);
  168.     TextDrawSetShadow(Vip, 1);
  169.  
  170.     Box = TextDrawCreate(470.000000, 165.000000, "_");
  171.     TextDrawBackgroundColor(Box, 255);
  172.     TextDrawFont(Box, 1);
  173.     TextDrawLetterSize(Box, 2.379999, 8.499994);
  174.     TextDrawColor(Box, -1);
  175.     TextDrawSetOutline(Box, 0);
  176.     TextDrawSetProportional(Box, 1);
  177.     TextDrawSetShadow(Box, 1);
  178.     TextDrawUseBox(Box, 1);
  179.     TextDrawBoxColor(Box, -105);
  180.     TextDrawTextSize(Box, 147.000000, 0.000000);
  181.  
  182.     scriptname = TextDrawCreate(235.000000, 164.000000, "xadminx v2.0");
  183.     TextDrawBackgroundColor(scriptname, 255);
  184.     TextDrawFont(scriptname, 1);
  185.     TextDrawLetterSize(scriptname, 0.500000, 1.000000);
  186.     TextDrawColor(scriptname, -16776961);
  187.     TextDrawSetOutline(scriptname, 0);
  188.     TextDrawSetProportional(scriptname, 1);
  189.     TextDrawSetShadow(scriptname, 1);
  190.  
  191.     AdminLevel = TextDrawCreate(317.000000, 181.000000, "1");
  192.     TextDrawBackgroundColor(AdminLevel, 255);
  193.     TextDrawFont(AdminLevel, 1);
  194.     TextDrawLetterSize(AdminLevel, 0.500000, 1.000000);
  195.     TextDrawColor(AdminLevel, 65535);
  196.     TextDrawSetOutline(AdminLevel, 0);
  197.     TextDrawSetProportional(AdminLevel, 1);
  198.     TextDrawSetShadow(AdminLevel, 1);
  199.  
  200.     VipLevel = TextDrawCreate(317.000000, 196.000000, "2");
  201.     TextDrawBackgroundColor(VipLevel, 255);
  202.     TextDrawFont(VipLevel, 1);
  203.     TextDrawLetterSize(VipLevel, 0.500000, 1.000000);
  204.     TextDrawColor(VipLevel, 65535);
  205.     TextDrawSetOutline(VipLevel, 0);
  206.     TextDrawSetProportional(VipLevel, 1);
  207.     TextDrawSetShadow(VipLevel, 1);
  208.  
  209.     Scores = TextDrawCreate(216.000000, 212.000000, "Score:");
  210.     TextDrawBackgroundColor(Scores, 255);
  211.     TextDrawFont(Scores, 1);
  212.     TextDrawLetterSize(Scores, 0.500000, 1.000000);
  213.     TextDrawColor(Scores, 16711935);
  214.     TextDrawSetOutline(Scores, 0);
  215.     TextDrawSetProportional(Scores, 1);
  216.     TextDrawSetShadow(Scores, 1);
  217.  
  218.     Moneys = TextDrawCreate(207.000000, 227.000000, "Money:");
  219.     TextDrawBackgroundColor(Moneys, 255);
  220.     TextDrawFont(Moneys, 1);
  221.     TextDrawLetterSize(Moneys, 0.500000, 1.000000);
  222.     TextDrawColor(Moneys, 16711935);
  223.     TextDrawSetOutline(Moneys, 0);
  224.     TextDrawSetProportional(Moneys, 1);
  225.     TextDrawSetShadow(Moneys, 1);
  226.  
  227.     Scoreammount = TextDrawCreate(317.000000, 213.000000, "1234");
  228.     TextDrawBackgroundColor(Scoreammount, 255);
  229.     TextDrawFont(Scoreammount, 1);
  230.     TextDrawLetterSize(Scoreammount, 0.500000, 1.000000);
  231.     TextDrawColor(Scoreammount, 65535);
  232.     TextDrawSetOutline(Scoreammount, 0);
  233.     TextDrawSetProportional(Scoreammount, 1);
  234.     TextDrawSetShadow(Scoreammount, 1);
  235.  
  236.     Moneyammount = TextDrawCreate(297.000000, 228.000000, "$123456789");
  237.     TextDrawBackgroundColor(Moneyammount, 255);
  238.     TextDrawFont(Moneyammount, 1);
  239.     TextDrawLetterSize(Moneyammount, 0.500000, 1.000000);
  240.     TextDrawColor(Moneyammount, 65535);
  241.     TextDrawSetOutline(Moneyammount, 0);
  242.     TextDrawSetProportional(Moneyammount, 1);
  243.     TextDrawSetShadow(Moneyammount, 1);
  244.  
  245.     Deathss = TextDrawCreate(502.000000, 119.000000, "Deaths:");
  246.     TextDrawBackgroundColor(Deathss, 255);
  247.     TextDrawFont(Deathss, 1);
  248.     TextDrawLetterSize(Deathss, 0.500000, 1.000000);
  249.     TextDrawColor(Deathss, 16777215);
  250.     TextDrawSetOutline(Deathss, 0);
  251.     TextDrawSetProportional(Deathss, 1);
  252.     TextDrawSetShadow(Deathss, 1);
  253.  
  254.     Killss = TextDrawCreate(526.000000, 131.000000, "Kills:");
  255.     TextDrawBackgroundColor(Killss, 255);
  256.     TextDrawFont(Killss, 1);
  257.     TextDrawLetterSize(Killss, 0.500000, 1.000000);
  258.     TextDrawColor(Killss, 16777215);
  259.     TextDrawSetOutline(Killss, 0);
  260.     TextDrawSetProportional(Killss, 1);
  261.     TextDrawSetShadow(Killss, 1);
  262.  
  263.     Deathammount = TextDrawCreate(567.000000, 131.000000, "1234");
  264.     TextDrawBackgroundColor(Deathammount, 255);
  265.     TextDrawFont(Deathammount, 1);
  266.     TextDrawLetterSize(Deathammount, 0.500000, 1.000000);
  267.     TextDrawColor(Deathammount, -65281);
  268.     TextDrawSetOutline(Deathammount, 0);
  269.     TextDrawSetProportional(Deathammount, 1);
  270.     TextDrawSetShadow(Deathammount, 1);
  271.  
  272.     Killammount = TextDrawCreate(565.000000, 119.000000, "9999");
  273.     TextDrawBackgroundColor(Killammount, 255);
  274.     TextDrawFont(Killammount, 1);
  275.     TextDrawLetterSize(Killammount, 0.500000, 1.000000);
  276.     TextDrawColor(Killammount, -65281);
  277.     TextDrawSetOutline(Killammount, 0);
  278.     TextDrawSetProportional(Killammount, 1);
  279.     TextDrawSetShadow(Killammount, 1);
  280.  
  281.  
  282.     return 1;
  283. }
  284.  
  285. public OnFilterScriptExit()
  286. {
  287.     TextDrawHideForAll(Admin);
  288.     TextDrawDestroy(Admin);
  289.     TextDrawHideForAll(Vip);
  290.     TextDrawDestroy(Vip);
  291.     TextDrawHideForAll(Box);
  292.     TextDrawDestroy(Box);
  293.     TextDrawHideForAll(scriptname);
  294.     TextDrawDestroy(scriptname);
  295.     TextDrawHideForAll(AdminLevel);
  296.     TextDrawDestroy(AdminLevel);
  297.     TextDrawHideForAll(VipLevel);
  298.     TextDrawDestroy(VipLevel);
  299.     TextDrawHideForAll(Scores);
  300.     TextDrawDestroy(Scores);
  301.     TextDrawHideForAll(Moneys);
  302.     TextDrawDestroy(Moneys);
  303.     TextDrawHideForAll(Scoreammount);
  304.     TextDrawDestroy(Scoreammount);
  305.     TextDrawHideForAll(Moneyammount);
  306.     TextDrawDestroy(Moneyammount);
  307.     TextDrawHideForAll(Killss);
  308.     TextDrawDestroy(Killss);
  309.     TextDrawHideForAll(Deathss);
  310.     TextDrawDestroy(Deathss);
  311.     TextDrawHideForAll(Killammount);
  312.     TextDrawDestroy(Killammount);
  313.     TextDrawHideForAll(Deathammount);
  314.     TextDrawDestroy(Deathammount);
  315.     SendRconCommand("unloadfs xadminx");
  316.     return 1;
  317. }
  318.  
  319. /*============================================================================\\
  320. //================================Stocks======================================\\
  321. //============================================================================*/
  322.  
  323. stock Path(playerid)
  324. {
  325.     new str[128],name[MAX_PLAYER_NAME];
  326.     GetPlayerName(playerid,name,sizeof(name));
  327.     format(str,sizeof(str),UserPath,name);
  328.     return str;
  329. }
  330.  
  331. stock bPath(playerid)
  332. {
  333.     new str[128],name[MAX_PLAYER_NAME];
  334.     GetPlayerName(playerid,name,sizeof(name));
  335.     format(str,sizeof(str),BanPath,name);
  336.     return str;
  337. }
  338.  
  339. stock SendMessageToAdmins(const string[])
  340. {
  341.     for(new i = 0; i < MAX_PLAYERS; i++)
  342.     if(pInfo[i][Adminlevel] > 0)
  343.     SendClientMessage(i,blau,string);
  344.     return 0;
  345. }
  346.  
  347. stock SendCommandToAdmins(const string[])
  348. {
  349.     for(new i = 0; i < MAX_PLAYERS; i++)
  350.     if(pInfo[i][Adminlevel] > 0)
  351.     SendClientMessage(i,grau,string);
  352.     return 0;
  353. }
  354.  
  355. stock SendMessageToVips(const string[])
  356. {
  357.     for(new i = 0; i < MAX_PLAYERS; i++)
  358.     if(pInfo[i][Viplevel] > 0)
  359.     SendClientMessage(i,blau,string);
  360.     return 1;
  361. }
  362.  
  363. stock GetName(playerid)
  364.  
  365. {
  366.     new pName[MAX_PLAYER_NAME];
  367.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  368.     return pName;
  369. }
  370.  
  371. /*============================================================================\\
  372. //===============================Commands=====================================\\
  373. //============================================================================*/
  374.  
  375. CMD:cmds(playerid,params[])
  376. {
  377.     if(pInfo[playerid][Adminlevel]==0 && pInfo[playerid][Viplevel]==0)
  378.     {
  379.         ShowPlayerDialog(playerid,2000,DIALOG_STYLE_LIST,"CMDS",""cmds"","Okay","");
  380.     }
  381.     if(pInfo[playerid][Adminlevel]==1)
  382.     {
  383.         ShowPlayerDialog(playerid,2000,DIALOG_STYLE_LIST,"CMDS",""cmds1"","Okay","");
  384.     }
  385.     if(pInfo[playerid][Adminlevel]==2)
  386.     {
  387.         ShowPlayerDialog(playerid,2000,DIALOG_STYLE_LIST,"CMDS",""cmds2"","Okay","");
  388.     }
  389.     if(pInfo[playerid][Adminlevel]==3)
  390.     {
  391.         ShowPlayerDialog(playerid,2000,DIALOG_STYLE_LIST,"CMDS",""cmds3"","Okay","");
  392.     }
  393.     if(IsPlayerAdmin(playerid))
  394.     {
  395.         ShowPlayerDialog(playerid,2000,DIALOG_STYLE_LIST,"CMDS",""cmds4"","Okay","");
  396.     }
  397.     if(IsPlayerAdmin(playerid) && pInfo[playerid][Adminlevel]==3)
  398.     {
  399.         ShowPlayerDialog(playerid,2000,DIALOG_STYLE_LIST,"CMDS",""cmds5"","Okay","");
  400.     }
  401.     if(pInfo[playerid][Viplevel]==1)
  402.     {
  403.         ShowPlayerDialog(playerid,2000,DIALOG_STYLE_LIST,"CMDS",""cmds6"","Okay","");
  404.     }
  405.     if(pInfo[playerid][Viplevel]==2)
  406.     {
  407.         ShowPlayerDialog(playerid,2000,DIALOG_STYLE_LIST,"CMDS",""cmds7"","Okay","");
  408.     }
  409.     if(pInfo[playerid][Viplevel]==3)
  410.     {
  411.         ShowPlayerDialog(playerid,2000,DIALOG_STYLE_LIST,"CMDS",""cmds8"","Okay","");
  412.     }
  413.     return 1;
  414. }
  415.  
  416. CMD:credits(playerid,params[])
  417. {
  418. SendClientMessage(playerid,light_blue,"Script by: xXxCrashxXx");
  419. SendClientMessage(playerid,light_blue,"Y_Less: Sscanf2 und Y_Ini");
  420. SendClientMessage(playerid,light_blue,"Zeex: zcmd");
  421. SendClientMessage(playerid,light_blue,"SA:MP Team: a_samp");
  422. SendClientMessage(playerid,light_blue,"Zamaroht: FS Textdraw Creator");
  423. return 1;
  424. }
  425.  
  426. CMD:afk(playerid,params[])
  427. {
  428.     if(AFKPLAYERS[playerid][AFK]==1)
  429.     {
  430.         SendClientMessage(playerid,-1,"Du bist schon im AFK!");
  431.         GameTextForPlayer(playerid,"Nutze /back!",3000,6);
  432.         return 1;
  433.     }
  434.     else
  435.     {
  436.         new afk[128], pname[MAX_PLAYER_NAME];
  437.         GetPlayerName(playerid, pname, sizeof(pname));
  438.         format(afk, sizeof(afk), "%s ging AFK!", pname);
  439.         GameTextForPlayer(playerid,"Nutze /back wenn du nicht mehr AFK bist!",5000,6);
  440.         SendClientMessageToAll(orange, afk);
  441.         TogglePlayerControllable(playerid, 0);
  442.         AFKPLAYERS[playerid][AFK] = 1;
  443.     }
  444.     return 1;
  445. }
  446.  
  447. CMD:back(playerid,params[])
  448. {
  449. if(AFKPLAYERS[playerid][AFK]==0)
  450. {
  451. SendClientMessage(playerid,-1,"Du bist nicht AFK!");
  452. return 1;
  453. }
  454. else
  455. {
  456. new afk[128], pname[MAX_PLAYER_NAME];
  457. GetPlayerName(playerid, pname, sizeof(pname));
  458. format(afk, sizeof(afk), "%s ist zurück!", pname);
  459. GameTextForPlayer(playerid,"Wilkommen zurück!",5000,6);
  460. SendClientMessageToAll(orange, afk);
  461. TogglePlayerControllable(playerid, 1);
  462. AFKPLAYERS[playerid][AFK] = 0;
  463. }
  464. return 1;
  465. }
  466.  
  467. CMD:stats(playerid,params[])
  468. {
  469.     if(Showing[playerid] == 1)
  470.     {
  471.         Showing[playerid] = 0;
  472.         TextDrawHideForPlayer(playerid, Admin);
  473.         TextDrawHideForPlayer(playerid, Vip);
  474.         TextDrawHideForPlayer(playerid, Box);
  475.         TextDrawHideForPlayer(playerid, scriptname);
  476.         TextDrawHideForPlayer(playerid, AdminLevel);
  477.         TextDrawHideForPlayer(playerid, VipLevel);
  478.         TextDrawHideForPlayer(playerid, Moneys);
  479.         TextDrawHideForPlayer(playerid, Scores);
  480.         TextDrawHideForPlayer(playerid, Moneyammount);
  481.         TextDrawHideForPlayer(playerid, Scoreammount);
  482.     }
  483.     else
  484.     {
  485.         Showing[playerid] = 1;
  486.         new alevel[128],vlevel[128],sscore[128],mmoney[128];
  487.         format(alevel,sizeof(alevel),"%d",pInfo[playerid][Adminlevel]);
  488.         TextDrawSetString(AdminLevel, alevel);
  489.         format(vlevel,sizeof(vlevel),"%d",pInfo[playerid][Viplevel]);
  490.         TextDrawSetString(VipLevel, vlevel);
  491.         format(sscore,sizeof(sscore),"%d",pInfo[playerid][Score]);
  492.         TextDrawSetString(Scoreammount, sscore);
  493.         format(mmoney,sizeof(mmoney),"$ %d",pInfo[playerid][Money]);
  494.         TextDrawSetString(Moneyammount, mmoney);
  495.         TextDrawShowForPlayer(playerid, Admin);
  496.         TextDrawShowForPlayer(playerid, Vip);
  497.         TextDrawShowForPlayer(playerid, Box);
  498.         TextDrawShowForPlayer(playerid, scriptname);
  499.         TextDrawShowForPlayer(playerid, AdminLevel);
  500.         TextDrawShowForPlayer(playerid, VipLevel);
  501.         TextDrawShowForPlayer(playerid, Moneys);
  502.         TextDrawShowForPlayer(playerid, Scores);
  503.         TextDrawShowForPlayer(playerid, Moneyammount);
  504.         TextDrawShowForPlayer(playerid, Scoreammount);
  505.     }
  506.     return 1;
  507. }
  508.  
  509. CMD:setadmin(playerid,params[])
  510. {
  511.     if(pInfo[playerid][Adminlevel] < 3) return error
  512.     new user,string[124],lvl;
  513.     if(sscanf(params,"ud",user,lvl)) return SendClientMessage(playerid,rot,"[CMD]:/setadmin [playerid] [Adminlevel]");
  514.     if(user == INVALID_PLAYER_ID) return invalid
  515.     format(string,sizeof(string),"%s wurde zu Adminlevel %d promoted.",GetName(user),lvl);
  516.     SendClientMessageToAll(gruen,string);
  517.     print(string);
  518.     pInfo[user][Adminlevel] = lvl;
  519.     //pInfo[user][Viplevel]=3; //setzt den promoteden Spieler automatisch zu Vip Level 3!
  520.     return 1;
  521. }
  522.  
  523. CMD:setvip(playerid,params[])
  524. {
  525.     if(pInfo[playerid][Adminlevel] < 3) return error
  526.     new user,string[124],lvl;
  527.     if(sscanf(params,"ud",user,lvl)) return SendClientMessage(playerid,rot,"[CMD]:/setvip [playerid] [Viplevel]");
  528.     if(user == INVALID_PLAYER_ID) return invalid
  529.     format(string,sizeof(string),"%s wurde zu Viplevel %d promoted.",GetName(user),lvl);
  530.     SendClientMessageToAll(gruen,string);
  531.     print(string);
  532.     pInfo[user][Viplevel] = lvl;
  533.     return 1;
  534. }
  535.  
  536. CMD:mute(playerid,params[])
  537. {
  538.     if(pInfo[playerid][Adminlevel]<1) return error
  539.     new user,string[124];
  540.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,rot,"[CMD]:/mute [playerid]");
  541.     if(user == INVALID_PLAYER_ID) return invalid
  542.     format(string,sizeof(string),"%s wurde gemuted!.",GetName(user));
  543.     SendClientMessageToAll(gruen,string);
  544.     print(string);
  545.     pInfo[user][Muted] = 1;
  546.     return 1;
  547. }
  548.  
  549. CMD:unmute(playerid,params[])
  550. {
  551.     if(pInfo[playerid][Adminlevel]<1) return error
  552.     new user,string[124];
  553.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,rot,"[CMD]:/unmute [playerid]");
  554.     if(user == INVALID_PLAYER_ID) return invalid
  555.     format(string,sizeof(string),"%s wurde entmuted!.",GetName(user));
  556.     SendClientMessageToAll(gruen,string);
  557.     print(string);
  558.     pInfo[user][Muted] = 0;
  559.     return 1;
  560. }
  561.  
  562. CMD:ban(playerid,params[])
  563. {
  564.     if(pInfo[playerid][Adminlevel]<2) return error
  565.     new user,string[124];
  566.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,rot,"[CMD]:/ban [playerid]");
  567.     if(user == INVALID_PLAYER_ID) return invalid
  568.     if(user == playerid) return SendClientMessage(playerid,rot,"Du kannst dich nicht selber bannen!");
  569.     format(string,sizeof(string),"%s wurde gebannt!.",GetName(user));
  570.     SendClientMessage(user,rot,"Mache ein Screenshot mit F8 von diesem Ban!");
  571.     SendClientMessage(user,rot,"Sollte dieser Ban unfair gewesen sein deiner Meinung, mache ein Ban Appeal auf unserem Forum!");
  572.     SendClientMessageToAll(rot,string);
  573.     print(string);
  574.     new INI:bfile = INI_Open(bPath(playerid));
  575.     INI_SetTag(bfile,"Banned Status");
  576.     INI_WriteInt(bfile,"Banned",1);
  577.     INI_Close(bfile);
  578.     pInfo[user][BannedTimes]++;
  579.     return 1;
  580. }
  581.  
  582. CMD:unban(playerid,params[])
  583. {
  584.     if(pInfo[playerid][Adminlevel]<3) return error
  585.     new user[24];
  586.     if(sscanf(params,"s[24]",user)) return SendClientMessage(playerid,rot,"[CMD]: /unban [PlayerName]");
  587.     new string[128],banfile[64];
  588.     format(banfile,64,BanPath,user);
  589.     if(!fexist(banfile)) return invalid
  590.     format(string,sizeof(string),"%s wurde soeben entbannt, solltet ihr ihn sehen sagt es ihm bitte!",user);
  591.     SendClientMessageToAll(gruen,string);
  592.     fremove(banfile);
  593.     return 1;
  594. }
  595.  
  596. CMD:cchat(playerid,params[])
  597. {
  598.     if (pInfo[playerid][Adminlevel] < 1) return error
  599.     {
  600.         new string[124];
  601.         for(new i = 0; i < 200; i++) SendClientMessageToAll(0xFFFFFFFF,"");
  602.         format(string,sizeof(string),"Admin %s hat den Chat gereinigt.",GetName(playerid));
  603.         SendClientMessageToAll(0xFFB400FF,string);
  604.         print(string);
  605.     }
  606.     return 1;
  607. }
  608.  
  609. CMD:kick(playerid,params[])
  610. {
  611.     if(pInfo[playerid][Adminlevel] < 1) return error
  612.     new user,reason,string[124];
  613.     if(sscanf(params,"us[64]",user,reason)) return SendClientMessage(playerid,rot,"[CMD]:/kick [playerid] [Grund]");
  614.     if(user == INVALID_PLAYER_ID) return invalid
  615.     if(user == playerid) return SendClientMessage(playerid,rot,"Du kannst dich nicht selber kicken!");
  616.     format(string,sizeof(string),"%s wurde von einem Admin gekickt.[Grund] %s",GetName(user),reason);
  617.     SendClientMessageToAll(blau,string);
  618.     print(string);
  619.     Kick(user);
  620.     return 1;
  621. }
  622.  
  623. CMD:slap(playerid,params[])
  624. {
  625.     if(pInfo[playerid][Adminlevel] < 2) return error
  626.     new user,string[124],Float:x, Float:y, Float:z,Float:healthy;
  627.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,rot,"[CMD]:/slap [playerid]");
  628.     if(user == INVALID_PLAYER_ID) return invalid
  629.     GetPlayerPos(user,x,y,z);
  630.     SetPlayerPos(user,x,y,z+15);
  631.     GetPlayerHealth(user,healthy);
  632.     SetPlayerHealth(user,healthy-5);
  633.     format(string,sizeof(string),"%s wurde von einem Admin geslapt.",GetName(user));
  634.     SendClientMessageToAll(blau,string);
  635.     print(string);
  636.     return 1;
  637. }
  638.  
  639. CMD:explode(playerid,params[])
  640. {
  641.     if(pInfo[playerid][Adminlevel] < 2) return error
  642.     new user,string[124],Float:x, Float:y, Float:z;
  643.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,rot,"[CMD]:/explode [playerid]");
  644.     if(user == INVALID_PLAYER_ID) return invalid
  645.     GetPlayerPos(user,x,y,z);
  646.     CreateExplosion(x,y,z,12,1);
  647.     format(string,sizeof(string),"%s ist durch einen Admin explodiert.",GetName(user));
  648.     SendClientMessageToAll(blau,string);
  649.     print(string);
  650.     return 1;
  651. }
  652.  
  653. CMD:warn(playerid,params[])
  654. {
  655.     if(pInfo[playerid][Adminlevel] < 1) return error
  656.     new target,reason[124],tName[MAX_PLAYER_NAME],string[124];
  657.     if(sscanf(params,"us[124]",target,reason)) return SendClientMessage(playerid,rot,"[CMD]:/warn [playerid] [Grund]");
  658.     if(target == INVALID_PLAYER_ID) return invalid
  659.     pWarns[target] ++;
  660.     GetPlayerName(target,tName,MAX_PLAYER_NAME);
  661.     format(string,sizeof(string),"%s wurde von einem Admin verwarnt.[Grund]: %s",tName,reason);
  662.     SendClientMessageToAll(-1,string);
  663.     if(pWarns[target] == 3)
  664.     {
  665.         //bei neuer funktionsänderung bitte "//" vor pInfo[playerid][Muted}=1; setzen
  666.         //wenn ihr wollt das der Spieler gebannt wird die zwei // vor pInfo[playerid][Banned]=1; und Kick(palyerid); wegmachen
  667.         //wenn ihr wollt das der Spieler gekickt wird die zwei // vor Kick(palyerid); wegmachen
  668.         //happen ist in den definition mit Erklärung ganz oben im Script!
  669.         switch(mutesystem)
  670.         {
  671.             case 0:
  672.             {
  673.                 SendClientMessage(target,-1,"Du wurdest durch 3/3 Warnungen gemuted.");
  674.                 pInfo[playerid][Muted]=1;
  675.             }
  676.             case 1:
  677.             {
  678.                 SendClientMessage(target,-1,"Du wurdest durch 3/3 Warnungen gekickt.");
  679.                 Kick(target);
  680.             }
  681.             case 2:
  682.             {
  683.                 SendClientMessage(target,rot,"Du wurdest durch 3/3 Warnungen nun gebannt!");
  684.                 SendClientMessage(target,rot,"Mache nun ein Screenshot mit F8!");
  685.                 SendClientMessage(target,blau,"Solltest du denken dass die Warnungen oder der Ban unfair waren gehe auf unser Forum: "Forumname" und mache einen Ban Appeal!");
  686.                 bInfo[target][Banned]=1;
  687.                 Kick(target);
  688.             }
  689.         }
  690.     }
  691.     print(string);
  692.     return 1;
  693. }
  694.  
  695. CMD:restart(playerid,params[])
  696. {
  697.     if(pInfo[playerid][Adminlevel]<3) return error
  698.     GameTextForAll("Serverrestart in 2 Minuten!!!",4000,3);             //Zeigt ein GameText für alle an das der Server in 2 Minuten restartet wird!
  699.     SendClientMessageToAll(rot,"Der Server restartet in 2 Minuten!");   //Sended eine Message an alle im Chat das der Server in 2 Minuten restartet wird!
  700.     SetTimer("Server_Restart_Warnung_2",1000*60,false);                 //Startet den 2ten Timer für die zweite Warnung nach einer Minute.
  701.     SendRconCommand("hostname Serverrestart!!!");                       //setzt den Hostnamen zu "Serverrestart!!!"
  702.     SendRconCommand(Serverclose);               //setzt ein Passwort damit niemand mehr connecten kann.
  703.     print("Serverrestart wurde durch /restart gestartet!");
  704.     return 1;
  705. }
  706.  
  707. CMD:acolor(playerid,params[])
  708. {
  709.     if(pInfo[playerid][Adminlevel]<1) return error
  710.     SetPlayerColor(playerid,gold);
  711.     new string[128];
  712.     format(string,sizeof(string),"%s hat /acolor genutzt!",GetName(playerid));
  713.     print(string);
  714.     return 1;
  715. }
  716.  
  717. CMD:vcolor(playerid,params[])
  718. {
  719.     if(pInfo[playerid][Viplevel]<1) return error
  720.     SetPlayerColor(playerid,light_green);
  721.     new string[128];
  722.     format(string,sizeof(string),"%s hat /vcolor genutzt!",GetName(playerid));
  723.     print(string);
  724.     return 1;
  725. }
  726.  
  727. CMD:serverclose(playerid,params[])
  728. {
  729.     if(pInfo[playerid][Adminlevel]<3) return error
  730.     new string[124],string1[124];
  731.     format(string,sizeof(string),"Der Server wurde von Admin %s auf geschlossen gesetzt!",GetName(playerid));
  732.     SendClientMessageToAll(rot,string);
  733.     SendRconCommand(Serverclose);
  734.     format(string1,sizeof(string1),"%s hat den Server geschlossen.",GetName(playerid));
  735.     print(string1);
  736.     return 1;
  737. }
  738.  
  739. CMD:serveropen(playerid,params[])
  740. {
  741.     if(pInfo[playerid][Adminlevel]<3) return error
  742.     new string[124],string1[124];
  743.     format(string,sizeof(string),"Der Server wurde von Admin %s auf geöffnet!",GetName(playerid));
  744.     SendClientMessageToAll(rot,string);
  745.     SendRconCommand("password 0");
  746.     format(string1,sizeof(string1),"%s hat den Server geöffnet.",GetName(playerid));
  747.     print(string1);
  748.     return 1;
  749. }
  750.  
  751. CMD:ipban(playerid,params[])        //dies wird in der samp.ban gespeichert!!!!!!
  752. {
  753.     if(pInfo[playerid][Adminlevel]<3) return error
  754.     new user,string[124];
  755.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,rot,"[CMD]:/ipban [playerid]");
  756.     if(user == INVALID_PLAYER_ID) return invalid
  757.     if(user == playerid) return SendClientMessage(playerid,rot,"Du kannst dich nicht selber bannen!");
  758.     format(string,sizeof(string),"%s wurde Ip-Banned!.",GetName(user));
  759.     SendClientMessage(user,rot,"Mache ein Screenshot mit F8 von diesem Ban!");
  760.     SendClientMessage(user,rot,"Sollte dieser Ban unfair gewesen sein deiner Meinung, mache ein Ban Appeal auf unserem Forum!");
  761.     SendClientMessageToAll(rot,string);
  762.     print(string);
  763.     Ban(user);
  764.     return 1;
  765. }
  766.  
  767. CMD:get(playerid,params[])
  768. {
  769.     if(pInfo[playerid][Adminlevel] < 1) return error
  770.     new user,string[124],msg[124],Float:x,Float:y,Float:z;
  771.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,rot,"[CMD]:/get [playerid]");
  772.     if(user == INVALID_PLAYER_ID) return invalid
  773.     GetPlayerPos(playerid,x,y,z);
  774.     SetPlayerPos(user,x,y,z+2);
  775.     format(string,sizeof(string),"Admin %s hat dich zu sich teleportiert!",GetName(playerid));
  776.     SendClientMessage(user,blau,string);
  777.     format(msg,sizeof(msg),"Admin %s hat %s zu sich telepotiert",GetName(playerid),GetName(user));
  778.     SendClientMessageToAll(orange,msg);
  779.     print(msg);
  780.     return 1;
  781. }
  782.  
  783. CMD:port(playerid,params[])
  784. {
  785.     if(pInfo[playerid][Adminlevel] < 1) return error
  786.     new user,string[128],msg[128],Float:x,Float:y,Float:z;
  787.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,rot,"[CMD]:/port [playerid]");
  788.     if(user == INVALID_PLAYER_ID) return invalid
  789.     GetPlayerPos(user,x,y,z);
  790.     SetPlayerPos(playerid,x,y,z+2);
  791.     format(string,sizeof(string),"Admin %s hat sich zu dir teleportiert!",GetName(playerid));
  792.     SendClientMessage(user,blau,string);
  793.     format(msg,sizeof(msg),"Admin %s hat sich zu %s telepotiert.",GetName(playerid),GetName(user));
  794.     SendClientMessageToAll(orange,msg);
  795.     print(msg);
  796.     return 1;
  797. }
  798.  
  799. CMD:tele(playerid,params[])
  800. {
  801.     if(pInfo[playerid][Adminlevel]<1)return error
  802.     new user,user1,string[128],string1[128],msg[128],Float:x,Float:y,Float:z;
  803.     if(sscanf(params,"uu",user)) return SendClientMessage(playerid,rot,"[CMD]:/tele [SpielerDerZuPortenIst] [ZielSpieler]");
  804.     if(user == INVALID_PLAYER_ID) return invalid
  805.     GetPlayerPos(user,x,y,z);
  806.     SetPlayerPos(user1,x,y,z+2);
  807.     format(string,sizeof(string),"Admin %s hat %s zu dir telepotiert!",GetName(playerid),GetName(user1));
  808.     SendClientMessage(user,blau,string);
  809.     format(string1,sizeof(string1),"Admin %s hat dich zu %s telepotiert!",GetName(playerid),GetName(user));
  810.     SendClientMessage(user1,blau,string);
  811.     format(msg,sizeof(msg),"Admin %s hat %s zu %s telepotiert.",GetName(playerid),GetName(user1),GetName(user));
  812.     SendClientMessageToAll(orange,msg);
  813.     print(msg);
  814.     return 1;
  815. }
  816.  
  817. CMD:pheal(playerid,params[])
  818. {
  819.     if(pInfo[playerid][Adminlevel]<1) return error
  820.     new user,string[128],msg[128];
  821.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,rot,"[CMD]:/pheal [playerid]");
  822.     if(user==INVALID_PLAYER_ID) return invalid
  823.     SetPlayerHealth(user,100);
  824.     format(string,sizeof(string),"Admin %s hat dich geheilt!",GetName(playerid));
  825.     SendClientMessage(user,gruen,string);
  826.     format(msg,sizeof(msg),"Admin %s hat %s geheilt!",GetName(playerid),GetName(user));
  827.     SendClientMessageToAll(blau,msg);
  828.     return 1;
  829. }
  830.  
  831. CMD:aheal(playerid,params[])
  832. {
  833.     if(pInfo[playerid][Adminlevel]<2) return error
  834.     new string[128];
  835.     for(new i; i < MAX_PLAYERS; i++)
  836.     SetPlayerHealth(i,100);
  837.     format(string,sizeof(string),"Admin %s hat alle geheilt!",GetName(playerid));
  838.     SendClientMessageToAll(gruen,string);
  839.     return 1;
  840. }
  841.  
  842. CMD:pkill(playerid,params[])
  843. {
  844.     if(pInfo[playerid][Adminlevel]<2) return error
  845.     new user, string[128],msg[128],reason[128];
  846.     if(sscanf(params,"us",user,reason)) return SendClientMessage(playerid,rot,"[CMD]:/pkill [playerid][Grund]");
  847.     if(user==INVALID_PLAYER_ID) return invalid
  848.     SetPlayerHealth(user,0);
  849.     format(string,sizeof(string),"Admin %s hat dich getötet! [Grund: %s]",GetName(playerid),reason);
  850.     SendClientMessage(user,rot,string);
  851.     format(msg,sizeof(msg),"Admin %s hat %s etötet! [GRUND:%s]",GetName(playerid),GetName(user),reason);
  852.     SendClientMessageToAll(rot,msg);
  853.     return 1;
  854. }
  855.  
  856. CMD:akill(playerid,params[])
  857. {
  858.     if(pInfo[playerid][Adminlevel]<3) return error
  859.     new string[128],reason[128];
  860.     if (sscanf(params,"s",reason)) return SendClientMessage(playerid,rot,"[CMD]:/akill [Grund]");
  861.     for(new i; i < MAX_PLAYERS; i++)
  862.     SetPlayerHealth(i,0);
  863.     format(string,sizeof(string),"Admin %s hat alle getötet![Grund: %s]",GetName(playerid),reason);
  864.     SendClientMessageToAll(rot,string);
  865.     return 1;
  866. }
  867.  
  868. CMD:heal(playerid,params[])
  869. {
  870.     if(pInfo[playerid][Viplevel]<1) return error
  871.     new string[128];
  872.     SetPlayerHealth(playerid,100);
  873.     format(string,sizeof(string),"Vip %s hat sich geheilt",GetName(playerid));
  874.     SendClientMessageToAll(blau,string);
  875.     return 1;
  876. }
  877.  
  878. CMD:setscore(playerid,params[])
  879. {
  880.     if(pInfo[playerid][Adminlevel]<3) return error
  881.     new user,string[128],msg[128],ammount,sammount[3];
  882.     if(sscanf(params,"un",user,ammount)) return SendClientMessage(playerid,rot,"[CMD]:/setscore [playerid][score]");
  883.     if(user==INVALID_PLAYER_ID) return invalid
  884.     format(sammount,sizeof(sammount),"%d",ammount);
  885.     pInfo[playerid][Score] = ammount;
  886.     format(string,sizeof(string),"Admin %s hat deinen Score auf %d gesetzt!",GetName(playerid),ammount);
  887.     SendClientMessage(user,gruen,string);
  888.     format(msg,sizeof(msg),"Admin %s hat %s's Score auf %d gesetzt!",GetName(playerid),GetName(user),ammount);
  889.     SendClientMessageToAll(blau,msg);
  890.     return 1;
  891. }
  892.  
  893. CMD:setcash(playerid,params[])
  894. {
  895.     if(pInfo[playerid][Adminlevel]<3) return error
  896.     new user,string[128],msg[128],ammount,sammount[3];
  897.     if(sscanf(params,"un",user,ammount)) return SendClientMessage(playerid,rot,"[CMD]:/setscore [playerid][score]");
  898.     if(user==INVALID_PLAYER_ID) return invalid
  899.     format(sammount,sizeof(sammount),"%d",ammount);
  900.     pInfo[playerid][Money]=ammount;
  901.     format(string,sizeof(string),"Admin %s hat dein Money auf %d gesetzt!",GetName(playerid),ammount);
  902.     SendClientMessage(user,gruen,string);
  903.     format(msg,sizeof(msg),"Admin %s hat %s's Money auf %d gesetzt!",GetName(playerid),GetName(user),ammount);
  904.     SendClientMessageToAll(blau,msg);
  905.     return 1;
  906. }
  907.  
  908. CMD:getveh(playerid,params[])
  909. {
  910.     if(pInfo[playerid][Adminlevel]<2) return error
  911.     {
  912.         new carid;
  913.         if(sscanf(params, "i", carid)) return SendClientMessage(playerid, rot, "[CMD]: /getcar [carid]");
  914.         if(carid > MAX_VEHICLES) return SendClientMessage(playerid, rot, "Dieses Fahrzeug existiert nicht!");
  915.         new Float: gPos[3];
  916.         GetPlayerPos(playerid, gPos[0], gPos[1], gPos[2]);
  917.         SetVehiclePos(carid, gPos[0] + 2, gPos[1], gPos[2]+0.3);
  918.     }
  919.     return 1;
  920. }
  921.  
  922. CMD:veh(playerid,params[])
  923. {
  924.     if(pInfo[playerid][Adminlevel]<1) return error
  925.     new modelid, Float:zPos[3];
  926.     if(sscanf(params,"i",modelid))SendClientMessage(playerid,rot,"[CMD]: /veh [id]" );
  927.     else
  928.     {
  929.         GetPlayerPos(playerid,zPos[0],zPos[1],zPos[2]);
  930.         CreateVehicle(modelid,zPos[0],zPos[1],zPos[2],0,1,1,80000);
  931.     }
  932.     return 1;
  933. }
  934.  
  935. //RCON CMDS!!!!!!
  936.  
  937. CMD:maxadmin(playerid,params[])
  938. {
  939.     new string[128];
  940.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,rot,"Du kannst diesen CMD nicht nutzen!");
  941.     pInfo[playerid][Adminlevel]=3;
  942.     pInfo[playerid][Viplevel]=3;
  943.     SendClientMessage(playerid,gruen,"Du hast dich zum Adminlevel und Viplevel 3 gemacht.");
  944.     format(string,sizeof(string),"%s hat sich zu Adminlevel und Viplevel 3 gemacht!",GetName(playerid));
  945.     SendClientMessageToAll(gruen,string);
  946.     return 1;
  947. }
  948.  
  949. /*============================================================================\\
  950. //===============================Callbacks====================================\\
  951. //============================================================================*/
  952.  
  953. public loadaccount_user(playerid, name[], value[])
  954. {
  955.     INI_String("Password", pInfo[playerid][Pass],129);
  956.     INI_Int("Adminlevel",pInfo[playerid][Adminlevel]);
  957.     INI_Int("Muted",pInfo[playerid][Muted]);
  958.     INI_Int("Money",pInfo[playerid][Money]);
  959.     INI_Int("Score",pInfo[playerid][Score]);
  960.     INI_Int("Kills",pInfo[playerid][Kills]);
  961.     INI_Int("Deaths",pInfo[playerid][Deaths]);
  962.     INI_Int("Onlinetimes",pInfo[playerid][Onlinetimes]);
  963.     INI_Int("Banned",bInfo[playerid][Banned]);
  964.     return 1;
  965. }
  966.  
  967. public OnPlayerConnect(playerid)
  968. {
  969.     SendDeathMessage(INVALID_PLAYER_ID,playerid,200);
  970.     AFKPLAYERS[playerid][AFK] = 0;
  971.     new pName[MAX_PLAYER_NAME], string[128+MAX_PLAYER_NAME];
  972.     GetPlayerName(playerid, pName, sizeof(pName));
  973.     format(string, sizeof(string), "SERVER: %s hat den Server betreten.", pName);
  974.     SendClientMessageToAll(gruen, string);
  975.     new name[MAX_PLAYER_NAME];
  976.     GetPlayerName(playerid,name,sizeof(name));
  977.     if(fexist(Path(playerid)))
  978.     {
  979.         INI_ParseFile(Path(playerid),"loadaccount_user", .bExtra = true, .extra = playerid);
  980.         ShowPlayerDialog(playerid,2001,DIALOG_STYLE_PASSWORD,"Login","Wilkommen zurück auf "#ServerName"\nBitte gebe nun dein Passwort ein.","Login","Kick");
  981.     }
  982.     else
  983.     {
  984.         ShowPlayerDialog(playerid,2002,DIALOG_STYLE_PASSWORD,"Register","Wilkommen auf "#ServerName"\nBitte gebe nun ein Passwort ein.\nDein Passwort wird Whirlpool hashed!","Register","Kick");
  985.     }
  986.     new killed[128],gkilled[128];
  987.     format(killed,sizeof(killed),"%d",pInfo[playerid][Kills]);
  988.     TextDrawSetString(Killammount, killed);
  989.     format(gkilled,sizeof(gkilled),"%d",pInfo[playerid][Deaths]);
  990.     TextDrawSetString(Deathammount, gkilled);
  991.     TextDrawShowForPlayer(playerid, Killss);
  992.     TextDrawShowForPlayer(playerid, Deathss);
  993.     TextDrawShowForPlayer(playerid, Killammount);
  994.     TextDrawShowForPlayer(playerid, Deathammount);
  995.     return 1;
  996. }
  997.  
  998. public OnPlayerDisconnect(playerid,reason)
  999. {
  1000.     SendDeathMessage(INVALID_PLAYER_ID,playerid,201);
  1001.     AFKPLAYERS[playerid][AFK] = 0;
  1002.     new pName[MAX_PLAYER_NAME], string[128+MAX_PLAYER_NAME];
  1003.     GetPlayerName(playerid, pName, sizeof(pName));
  1004.     format(string, sizeof(string), "SERVER: %s hat den Server verlassen", pName);
  1005.     SendClientMessageToAll(gelb, string);
  1006.     pInfo[playerid][Onlinetimes]++;
  1007.     //Accountsystem
  1008.  
  1009.     if(fexist(Path(playerid)))
  1010.     {
  1011.         new INI:file = INI_Open(Path(playerid));
  1012.         INI_SetTag(file,"Spieler Statistik");
  1013.         INI_WriteInt(file,"Adminlevel",pInfo[playerid][Adminlevel]);
  1014.         INI_WriteInt(file,"Viplevel",pInfo[playerid][Viplevel]);
  1015.         INI_WriteInt(file,"Muted",pInfo[playerid][Muted]);
  1016.         INI_WriteInt(file,"Money",GetPlayerMoney(playerid));
  1017.         INI_WriteInt(file,"Score",GetPlayerScore(playerid));
  1018.         INI_WriteInt(file,"Kills",pInfo[playerid][Kills]);
  1019.         INI_WriteInt(file,"Deaths",pInfo[playerid][Deaths]);
  1020.         INI_WriteInt(file,"Onlinetimes",pInfo[playerid][Onlinetimes]);
  1021.         INI_WriteInt(file,"BannedTimes",pInfo[playerid][BannedTimes]);
  1022.         INI_Close(file);
  1023.         return 1;
  1024.     }
  1025.     if(fexist(bPath(playerid)))
  1026.     {
  1027.         new INI:bfile = INI_Open(bPath(playerid));
  1028.         INI_SetTag(bfile,"Banned Status");
  1029.         INI_WriteInt(bfile,"Banned",bInfo[playerid][Banned]);
  1030.         return 1;
  1031.     }
  1032.     return 1;
  1033. }
  1034.  
  1035. public OnPlayerDeath(playerid,killerid,reason)
  1036. {
  1037.     SendDeathMessage(killerid,playerid,reason);
  1038.     pInfo[killerid][Kills]++;
  1039.     pInfo[playerid][Deaths]++;
  1040.     return 1;
  1041. }
  1042.  
  1043. public OnPlayerText(playerid, text[])
  1044. {
  1045.     if(pInfo[playerid][Muted]==1)
  1046.     {
  1047.         SendClientMessage(playerid,rot,"Du bist noch gemuted!");
  1048.         return 0;
  1049.     }
  1050.     if(text[0] == '#' && pInfo[playerid][Adminlevel]>=1)
  1051.     {
  1052.          new msg[128], pName[MAX_PLAYER_NAME];
  1053.          GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  1054.          format(msg, sizeof(msg), "[Admin Chat] %s: %s", pName, text[1]);
  1055.          SendMessageToAdmins(msg);
  1056.          return 0;
  1057.     }
  1058.     if(text[0] == '!' && pInfo[playerid][Viplevel]>=1)
  1059.     {
  1060.          new msg[128], pName[MAX_PLAYER_NAME];
  1061.          GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  1062.          format(msg, sizeof(msg), "[Vip Chat] %s: %s", pName, text[1]);
  1063.          SendMessageToVips(msg);
  1064.          return 0;
  1065.     }
  1066.     return 1;
  1067. }
  1068.  
  1069. public OnPlayerCommandText(playerid, cmdtext[])
  1070. {
  1071.     new name[MAX_PLAYER_NAME],string[128];
  1072.     GetPlayerName(playerid,name,sizeof(name));
  1073.     format(string, sizeof(string),name,playerid,cmdtext);
  1074.     SendCommandToAdmins(string);
  1075.     print(string);
  1076.     return 1;
  1077. }
  1078.  
  1079. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  1080. {
  1081.     if(dialogid == 2002)
  1082.     {
  1083.         if(!response) return Kick(playerid);
  1084.         if(response)
  1085.         {
  1086.             if(!strlen(inputtext))
  1087.             {
  1088.                         ShowPlayerDialog(playerid,2002,DIALOG_STYLE_INPUT,"Register","Wilkommen auf"#ServerName".\nBitte gebe nun ein Passwort ein um dich zu registrieren.","Register","Kick");
  1089.                         return 1;
  1090.             }
  1091.             new hashpass[129];
  1092.             WP_Hash(hashpass,sizeof(hashpass),inputtext);
  1093.             new INI:file = INI_Open(Path(playerid));
  1094.             INI_SetTag(file,"Spieler Statistik");
  1095.             INI_WriteString(file,"Password",hashpass);
  1096.             INI_WriteInt(file,"Adminlevel",0);
  1097.             INI_WriteInt(file,"Viplevel",0);
  1098.             INI_WriteInt(file,"Muted",0);
  1099.             INI_WriteInt(file,"Money",0);
  1100.             INI_WriteInt(file,"Score",0);
  1101.             INI_WriteInt(file,"Kills",0);
  1102.             INI_WriteInt(file,"Deaths",0);
  1103.             INI_WriteInt(file,"Onlinetimes",0);
  1104.             INI_WriteInt(file,"BannedTimes",0);
  1105.             INI_Close(file);
  1106.             SendClientMessage(playerid,gruen,"Du hast dich erfolgreich angemeldet.");
  1107.             return 1;
  1108.         }
  1109.     }
  1110.     if(dialogid == 2001)
  1111.     {
  1112.         if(fexist(bPath(playerid)))
  1113.         {
  1114.             if(bInfo[playerid][Banned]==1)
  1115.             SendClientMessage(playerid,rot,"Du bist auf diesem Server gebannt!");
  1116.             SendClientMessage(playerid,rot,"Mache einen Unbann Appeal auf unserem Forum!");
  1117.             SendClientMessage(playerid,-1,""Forumname"");
  1118.             Kick(playerid);
  1119.         }
  1120.         if(!response) return Kick(playerid);
  1121.         if(response)
  1122.         {
  1123.             {
  1124.                 new hashpass[129];
  1125.                 WP_Hash(hashpass,sizeof(hashpass),inputtext);
  1126.                 if(!strcmp(hashpass,pInfo[playerid][Pass]))
  1127.                 {
  1128.                     INI_ParseFile(Path(playerid),"loadaccount_%s",.bExtra = true, .extra = playerid);
  1129.                     SetPlayerScore(playerid,pInfo[playerid][Score]);
  1130.                     GivePlayerMoney(playerid,pInfo[playerid][Money]);
  1131.                     SendClientMessage(playerid,gruen,"Wilkommen zurück! Du hast dich erfolgreich eingelogt.");
  1132.                 }
  1133.                 else
  1134.                 {
  1135.                     ShowPlayerDialog(playerid,2001,DIALOG_STYLE_PASSWORD,"Login","Wilkommen zurück zu "#ServerName".\nBitte gebe nun dein Passwort ein.","Login","Kick");
  1136.                     return 1;
  1137.                 }
  1138.             }
  1139.         }
  1140.     }
  1141.     return 1;
  1142. }
  1143.  
  1144. public Server_Restart_Warnung_2()
  1145. {
  1146.     GameTextForAll("Serverrestart in 1 Minute!!!",5000,3);
  1147.     SendClientMessageToAll(rot,"Server restartet in einer Minute!!!");
  1148.     SetTimer("Server_Restart_Kick",1000*60,false);
  1149.     return 1;
  1150. }
  1151.  
  1152. public Server_Restart_Kick()
  1153. {
  1154.     GameTextForAll("Es werden nun alle Spieler gekickt!!!",4000,3);
  1155.     SendClientMessageToAll(rot,"Alle Spieler werden nun gekickt!!!");
  1156.     for(new i; i < MAX_PLAYERS; i++)
  1157.         Kick(i);
  1158.     SetTimer("Server_Restart",1000,false);
  1159.     return 1;
  1160. }
  1161.  
  1162. public Server_Restart()
  1163. {
  1164.     new Host[128];
  1165.     SendRconCommand("gmx");
  1166.     format(Host, 128, "hostname %s", Servername);
  1167.     SendRconCommand(Host);
  1168.     SendRconCommand("password 0");
  1169.     return 1;
  1170. }
  1171.  
  1172. public OnPlayerRequestSpawn(playerid)
  1173. {
  1174.     return 1;
  1175. }
  1176.  
  1177. //Das wird jetzt anstelle von "Server:Unknown Command" angezeigt.
  1178. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  1179. {
  1180.     if(!success) SendClientMessage(playerid, 0xFF0000FF, "Dieser Command existiert nicht. Nutze /cmds für alle Commands die es gibt!");
  1181.     return 1;
  1182. }
Advertisement
Add Comment
Please, Sign In to add comment