Guest User

xadminx

a guest
Oct 13th, 2012
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 21.14 KB | None | 0 0
  1. /*==============================================================================
  2. |                                   xXxCrashxXx                                |
  3. |                                 Adminscript v1.0                             |
  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.     Banned,
  36.     Muted,
  37.     Money,
  38.     Score,
  39.     Kills,
  40.     Deaths,
  41.     Onlinetimes
  42. }
  43.  
  44. new pInfo[MAX_PLAYERS][Accountfiles];
  45. forward loadaccount_user(playerid, name[], value[]);
  46. new pWarns[MAX_PLAYERS];
  47.  
  48. //AFKsystem
  49.  
  50. enum AFK_PLAYERS
  51. {
  52. AFK
  53. }
  54. new AFKPLAYERS[MAX_PLAYERS][AFK_PLAYERS];
  55.  
  56. /*============================================================================\\
  57. //=================================Defines====================================\\
  58. //============================================================================*/
  59. #define FILTERSCRIPT
  60.  
  61. //Colors
  62.  
  63. #define rot 0xFF0000FF
  64. #define gruen 0x00FF00FF
  65. #define blau 0x0000FFFF
  66. #define gelb 0xFFFF00FF
  67. #define gold 0xFFDC00FF
  68. #define grau 0xE6E6E6FF
  69. #define orange 0xFFB400FF
  70. #define light_blue 0x00FFFFFF
  71. #define light_green 0x00FF98FF
  72.  
  73. //Path
  74.  
  75. #define UserPath "Accounts/%s.ini"
  76.  
  77. //Dialoge
  78.  
  79. #define CMDS 2000
  80. #define LOGIN 2001
  81. #define REGISTER 2002
  82.  
  83. //Servername, Text für CMDS Dialog und mehr.
  84.  
  85. #define Servername "dein Servername hier"
  86.  
  87. #define cmds "/cmds\n/credits\n/afk\n/back"
  88. #define cmds1 "/cmds\n/credits\n/afk\n/back\n{FF0000}Admin Level 1:{FFFFFF}\n/kick\n/mute\n/unmute\n/cchat\n/warn"
  89. #define cmds2 "/cmds\n/credits\n/afk\n/back\n{FF0000}Admin Level 1:{FFFFFF}\n/kick\n/mute\n/unmute\n/cchat\n/warn\n{FF0000}Admin Level 2:{FFFFFF}\n/slap\n/explode\n/ban"
  90. #define cmds3 "/cmds\n/credits\n/afk\n/back\n{FF0000}Admin Level 1:{FFFFFF}\n/kick\n/mute\n/unmute\n/cchat\n/warn\n{FF0000}Admin Level 2:{FFFFFF}\n/slap\n/explode\n/ban\n{FF0000}Admin Level 3:{FFFFFF}\n/setadmin\n/setvip"
  91. #define cmds4 "/cmds\n/credits\n/afk\n/back\n{FF0000}RCON ADMIN:\n{FFFFFF}/maxadmin"
  92. #define cmds5 "/cmds\n/credits\n/afk\n/back\n{FF0000}Admin Level 1:{FFFFFF}\n/kick\n/mute\n/unmute\n/cchat\n/warn\n{FF0000}Admin Level 2:{FFFFFF}\n/slap\n/explode\n/ban\n{FF0000}Admin Level 3:{FFFFFF}\n/setadmin\n/setvip\n{FF0000}RCON ADMIN:{FFFFFF}\n/maxadmin"
  93.  
  94. #define happen "gemuted/*gebannt   gekickt*/" //einfach jenachdem was ihr wollt die Wörter tauschen (Warnsystem!!!)
  95.  
  96. /*============================================================================\\
  97. //============================================================================*/
  98.  
  99. public OnFilterScriptInit()
  100. {
  101.     print("\n--------------------------------------");
  102.     print("==========================");
  103.     print("Adminsystem by xXxCrashxXx");
  104.     print("           v1.0");
  105.     print("==========================");
  106.     print("Credits dürfen nicht entfernt werden!");
  107.     print("--------------------------------------\n");
  108.     return 1;
  109. }
  110.  
  111. public OnFilterScriptExit()
  112. {
  113.     SendRconCommand("unloadfs xadminx");
  114.     return 1;
  115. }
  116.  
  117. /*============================================================================\\
  118. //================================Stocks======================================\\
  119. //============================================================================*/
  120.  
  121. stock Path(playerid)
  122. {
  123.     new str[128],name[MAX_PLAYER_NAME];
  124.     GetPlayerName(playerid,name,sizeof(name));
  125.     format(str,sizeof(str),UserPath,name);
  126.     return str;
  127. }
  128.  
  129. stock SendMessageToAdmins(const string[])
  130. {
  131.     for(new i = 0; i < MAX_PLAYERS; i++)
  132.     if(pInfo[i][Adminlevel] > 0)
  133.     SendClientMessage(i,blau,string);
  134.     return 0;
  135. }
  136.  
  137. stock SendCommandToAdmins(const string[])
  138. {
  139.     for(new i = 0; i < MAX_PLAYERS; i++)
  140.     if(pInfo[i][Adminlevel] > 0)
  141.     SendClientMessage(i,grau,string);
  142.     return 0;
  143. }
  144.  
  145. stock SendMessageToVips(const string[])
  146. {
  147.     for(new i = 0; i < MAX_PLAYERS; i++)
  148.     if(pInfo[i][Viplevel] > 0)
  149.     SendClientMessage(i,blau,string);
  150.     return 1;
  151. }
  152.  
  153. stock GetName(playerid)
  154.  
  155. {
  156.     new pName[MAX_PLAYER_NAME];
  157.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  158.     return pName;
  159. }
  160.  
  161. /*============================================================================\\
  162. //===============================Commands=====================================\\
  163. //============================================================================*/
  164.  
  165. CMD:cmds(playerid,params[])
  166. {
  167.     if(pInfo[playerid][Adminlevel]==0 && pInfo[playerid][Viplevel]==0)
  168.     {
  169.         ShowPlayerDialog(playerid,2000,DIALOG_STYLE_LIST,"CMDS",""cmds"","Okay","");
  170.     }
  171.     if(pInfo[playerid][Adminlevel]==1)
  172.     {
  173.         ShowPlayerDialog(playerid,2000,DIALOG_STYLE_LIST,"CMDS",""cmds1"","Okay","");
  174.     }
  175.     if(pInfo[playerid][Adminlevel]==2)
  176.     {
  177.         ShowPlayerDialog(playerid,2000,DIALOG_STYLE_LIST,"CMDS",""cmds2"","Okay","");
  178.     }
  179.     if(pInfo[playerid][Adminlevel]==3)
  180.     {
  181.         ShowPlayerDialog(playerid,2000,DIALOG_STYLE_LIST,"CMDS",""cmds3"","Okay","");
  182.     }
  183.     if(IsPlayerAdmin(playerid))
  184.     {
  185.         ShowPlayerDialog(playerid,2000,DIALOG_STYLE_LIST,"CMDS",""cmds4"","Okay","");
  186.     }
  187.     if(IsPlayerAdmin(playerid) && pInfo[playerid][Adminlevel]==3)
  188.     {
  189.         ShowPlayerDialog(playerid,2000,DIALOG_STYLE_LIST,"CMDS",""cmds5"","Okay","");
  190.     }
  191.     return 1;
  192. }
  193.  
  194. CMD:credits(playerid,params[])
  195. {
  196. SendClientMessage(playerid,light_blue,"Script by: xXxCrashxXx");
  197. SendClientMessage(playerid,light_blue,"Y_Less: Sscanf2 und Y_Ini");
  198. SendClientMessage(playerid,light_blue,"Zeex: zcmd");
  199. SendClientMessage(playerid,light_blue,"SA:MP Team: a_samp");
  200. return 1;
  201. }
  202.  
  203. CMD:afk(playerid,params[])
  204. {
  205.     if(AFKPLAYERS[playerid][AFK]==1)
  206.     {
  207.         SendClientMessage(playerid,-1,"Du bist schon im AFK!");
  208.         GameTextForPlayer(playerid,"Nutze /back!",3000,6);
  209.         return 1;
  210.     }
  211.     else
  212.     {
  213.         new afk[128], pname[MAX_PLAYER_NAME];
  214.         GetPlayerName(playerid, pname, sizeof(pname));
  215.         format(afk, sizeof(afk), "%s ging AFK!", pname);
  216.         GameTextForPlayer(playerid,"Nutze /back wenn du nicht mehr AFK bist!",5000,6);
  217.         SendClientMessageToAll(orange, afk);
  218.         TogglePlayerControllable(playerid, 0);
  219.         AFKPLAYERS[playerid][AFK] = 1;
  220.     }
  221.     return 1;
  222. }
  223.  
  224. CMD:back(playerid,params[])
  225. {
  226. if(AFKPLAYERS[playerid][AFK]==0)
  227. {
  228. SendClientMessage(playerid,-1,"Du bist nicht AFK!");
  229. return 1;
  230. }
  231. else
  232. {
  233. new afk[128], pname[MAX_PLAYER_NAME];
  234. GetPlayerName(playerid, pname, sizeof(pname));
  235. format(afk, sizeof(afk), "%s ist zurück!", pname);
  236. GameTextForPlayer(playerid,"Wilkommen zurück!",5000,6);
  237. SendClientMessageToAll(orange, afk);
  238. TogglePlayerControllable(playerid, 1);
  239. AFKPLAYERS[playerid][AFK] = 0;
  240. }
  241. return 1;
  242. }
  243.  
  244. CMD:setadmin(playerid,params[])
  245. {
  246.     if(pInfo[playerid][Adminlevel] < 3) return SendClientMessage(playerid,rot,"Du kannst diesen CMD nicht nutzen!");
  247.     new user,string[124],lvl;
  248.     if(sscanf(params,"ud",user,lvl)) return SendClientMessage(playerid,rot,"[CMD]:/setadmin [playerid] [Adminlevel]");
  249.     if(user == INVALID_PLAYER_ID) return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht online!");
  250.     format(string,sizeof(string),"%s wurde zu Adminlevel %d promoted.",GetName(user),lvl);
  251.     SendClientMessageToAll(gruen,string);
  252.     print(string);
  253.     pInfo[user][Adminlevel] = lvl;
  254.     return 1;
  255. }
  256.  
  257. CMD:setvip(playerid,params[])
  258. {
  259.     if(pInfo[playerid][Adminlevel] < 3) return SendClientMessage(playerid,rot,"Du kannst diesen CMD nicht nutzen!");
  260.     new user,string[124],lvl;
  261.     if(sscanf(params,"ud",user,lvl)) return SendClientMessage(playerid,rot,"[CMD]:/setvip [playerid] [Viplevel]");
  262.     if(user == INVALID_PLAYER_ID) return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht online!");
  263.     format(string,sizeof(string),"%s wurde zu Viplevel %d promoted.",GetName(user),lvl);
  264.     SendClientMessageToAll(gruen,string);
  265.     print(string);
  266.     pInfo[user][Viplevel] = lvl;
  267.     return 1;
  268. }
  269.  
  270. CMD:mute(playerid,params[])
  271. {
  272.     if(pInfo[playerid][Adminlevel]<1) return SendClientMessage(playerid,rot,"Du kannst diesen CMD nicht nutzen!");
  273.     new user,string[124];
  274.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,rot,"[CMD]:/mute [playerid]");
  275.     if(user == INVALID_PLAYER_ID) return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht online!");
  276.     format(string,sizeof(string),"%s wurde gemuted!.",GetName(user));
  277.     SendClientMessageToAll(gruen,string);
  278.     print(string);
  279.     pInfo[user][Muted] = 1;
  280.     return 1;
  281. }
  282.  
  283. CMD:unmute(playerid,params[])
  284. {
  285.     if(pInfo[playerid][Adminlevel]<1) return SendClientMessage(playerid,rot,"Du kannst diesen CMD nicht nutzen!");
  286.     new user,string[124];
  287.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,rot,"[CMD]:/unmute [playerid]");
  288.     if(user == INVALID_PLAYER_ID) return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht online!");
  289.     format(string,sizeof(string),"%s wurde entmuted!.",GetName(user));
  290.     SendClientMessageToAll(gruen,string);
  291.     print(string);
  292.     pInfo[user][Muted] = 0;
  293.     return 1;
  294. }
  295.  
  296. CMD:ban(playerid,params[])
  297. {
  298.     if(pInfo[playerid][Adminlevel]<2) return SendClientMessage(playerid,rot,"Du kannst diesen CMD nicht nutzen!");
  299.     new user,string[124];
  300.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,rot,"[CMD]:/ban [playerid]");
  301.     if(user == INVALID_PLAYER_ID) return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht online!");
  302.     if(user == playerid) return SendClientMessage(playerid,rot,"Du kannst dich nicht selber bannen!");
  303.     format(string,sizeof(string),"%s wurde gebannt!.",GetName(user));
  304.     SendClientMessage(user,rot,"Mache ein Screenshot mit F8 von diesem Ban!");
  305.     SendClientMessage(user,rot,"Sollte dieser Ban unfair gewesen sein deiner Meinung, mache ein Ban Appeal auf unserem Forum!");
  306.     SendClientMessageToAll(rot,string);
  307.     print(string);
  308.     pInfo[playerid][Banned]=1;
  309.     return 1;
  310. }
  311.  
  312. CMD:cchat(playerid,params[])
  313. {
  314.     if (pInfo[playerid][Adminlevel] < 1) return SendClientMessage(playerid,rot,"Du kannst diesen CMD nicht nutzen!");
  315.     {
  316.         new string[124];
  317.         for(new i = 0; i < 200; i++) SendClientMessageToAll(0xFFFFFFFF,"");
  318.         format(string,sizeof(string),"Admin %s hat den Chat gereinigt.",GetName(playerid));
  319.         SendClientMessageToAll(0xFFB400FF,string);
  320.         print(string);
  321.     }
  322.     return 1;
  323. }
  324.  
  325. CMD:kick(playerid,params[])
  326. {
  327.     if(pInfo[playerid][Adminlevel] < 1) return SendClientMessage(playerid,rot,"Du kannst diesen CMD nicht nutzen!");
  328.     new user,reason,string[124];
  329.     if(sscanf(params,"us[64]",user,reason)) return SendClientMessage(playerid,rot,"[CMD]:/kick [playerid] [Grund]");
  330.     if(user == INVALID_PLAYER_ID) return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht online!");
  331.     if(user == playerid) return SendClientMessage(playerid,rot,"Du kannst dich nicht selber kicken!");
  332.     format(string,sizeof(string),"%s wurde von einem Admin gekickt.[Grund] %s",GetName(user),reason);
  333.     SendClientMessageToAll(blau,string);
  334.     print(string);
  335.     Kick(user);
  336.     return 1;
  337. }
  338.  
  339. CMD:slap(playerid,params[])
  340. {
  341.     if(pInfo[playerid][Adminlevel] < 2) return SendClientMessage(playerid,rot,"Du kannst diesen CMD nicht nutzen!");
  342.     new user,string[124],Float:x, Float:y, Float:z,Float:healthy;
  343.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,rot,"[CMD]:/slap [playerid]");
  344.     if(user == INVALID_PLAYER_ID) return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht online!");
  345.     GetPlayerPos(user,x,y,z);
  346.     SetPlayerPos(user,x,y,z+15);
  347.     GetPlayerHealth(user,healthy);
  348.     SetPlayerHealth(user,healthy-5);
  349.     format(string,sizeof(string),"%s wurde von einem Admin geslapt.",GetName(user));
  350.     SendClientMessageToAll(blau,string);
  351.     print(string);
  352.     return 1;
  353. }
  354.  
  355. CMD:explode(playerid,params[])
  356. {
  357.     if(pInfo[playerid][Adminlevel] < 2) return SendClientMessage(playerid,rot,"Du kannst diesen CMD nicht nutzen!");
  358.     new user,string[124],Float:x, Float:y, Float:z;
  359.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,rot,"[CMD]:/explode [playerid]");
  360.     if(user == INVALID_PLAYER_ID) return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht online!");
  361.     GetPlayerPos(user,x,y,z);
  362.     CreateExplosion(x,y,z,12,1);
  363.     format(string,sizeof(string),"%s ist durch einen Admin explodiert.",GetName(user));
  364.     SendClientMessageToAll(blau,string);
  365.     print(string);
  366.     return 1;
  367. }
  368.  
  369. CMD:warn(playerid,params[])
  370. {
  371.     new target,reason[124],tName[MAX_PLAYER_NAME],string[124];
  372.     if(sscanf(params,"us[124]",target,reason)) return SendClientMessage(playerid,-1,"/warn [playerid] [Grund]");
  373.     if(pInfo[playerid][Adminlevel] < 1) return SendClientMessage(playerid,rot,"Du kannst diesen CMD nicht nutzen!");
  374.     if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht online!");
  375.     pWarns[target] ++;
  376.     GetPlayerName(target,tName,MAX_PLAYER_NAME);
  377.     format(string,sizeof(string),"%s wurde von einem Admin verwarnt.[Grund]: %s",tName,reason);
  378.     SendClientMessageToAll(-1,string);
  379.     if(pWarns[target] == 3)
  380.     {
  381.         //bei neuer funktionsänderung bitte "//" vor pInfo[playerid][Muted}=1; setzen
  382.         //wenn ihr wollt das der Spieler gebannt wird die zwei // vor pInfo[playerid][Banned]=1; und Kick(palyerid); wegmachen
  383.         //wenn ihr wollt das der Spieler gekickt wird die zwei // vor Kick(palyerid); wegmachen
  384.         //happen ist in den definition mit Erklärung ganz oben im Script!
  385.         SendClientMessage(target,-1,"Du wurdest durch 3/3 Warnungen "happen".");
  386.         pInfo[playerid][Muted]=1;
  387.         //pInfo[playerid][Banned]=1;
  388.         //Kick(playerid);
  389.     }
  390.     print(string);
  391.     return 1;
  392. }
  393.  
  394. CMD:maxadmin(playerid,params[])
  395. {
  396.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,rot,"Du kannst diesen CMD nicht nutzen!");
  397.     pInfo[playerid][Adminlevel]=3;
  398.     SendClientMessage(playerid,gruen,"Du hast dich zum Admin Level 3 gemacht.");
  399.     return 1;
  400. }
  401.  
  402. /*============================================================================\\
  403. //===============================Callbacks====================================\\
  404. //============================================================================*/
  405.  
  406. public loadaccount_user(playerid, name[], value[])
  407. {
  408.     INI_String("Password", pInfo[playerid][Pass],129);
  409.     INI_Int("Adminlevel",pInfo[playerid][Adminlevel]);
  410.     INI_Int("Banned",pInfo[playerid][Banned]);
  411.     INI_Int("Muted",pInfo[playerid][Muted]);
  412.     INI_Int("Money",pInfo[playerid][Money]);
  413.     INI_Int("Score",pInfo[playerid][Score]);
  414.     INI_Int("Kills",pInfo[playerid][Kills]);
  415.     INI_Int("Deaths",pInfo[playerid][Deaths]);
  416.     INI_Int("Onlinetimes",pInfo[playerid][Onlinetimes]);
  417.     return 1;
  418. }
  419.  
  420. public OnPlayerConnect(playerid)
  421. {
  422.     SendDeathMessage(INVALID_PLAYER_ID,playerid,200);
  423.     AFKPLAYERS[playerid][AFK] = 0;
  424.     new pName[MAX_PLAYER_NAME], string[128+MAX_PLAYER_NAME];
  425.     GetPlayerName(playerid, pName, sizeof(pName));
  426.     format(string, sizeof(string), "SERVER: %s hat den Server betreten.", pName);
  427.     SendClientMessageToAll(gruen, string);
  428.     new name[MAX_PLAYER_NAME];
  429.     GetPlayerName(playerid,name,sizeof(name));
  430.     if(fexist(Path(playerid)))
  431.     {
  432.         if(pInfo[playerid][Banned]==1)
  433.         {
  434.             Kick(playerid);
  435.         }
  436.         else if(pInfo[playerid][Banned]==0)
  437.         {
  438.             INI_ParseFile(Path(playerid),"loadaccount_user", .bExtra = true, .extra = playerid);
  439.             ShowPlayerDialog(playerid,2001,DIALOG_STYLE_PASSWORD,"Login","Wilkommen zurück auf "#ServerName"\nBitte gebe nun dein Passwort ein.","Login","Kick");
  440.         }
  441.     }
  442.     else
  443.     {
  444.         ShowPlayerDialog(playerid,2002,DIALOG_STYLE_PASSWORD,"Register","Wilkommen auf "#ServerName"\nBitte gebe nun ein Passwort ein.\nDein Passwort wird Whirlpool hashed!","Register","Kick");
  445.     }
  446.     return 1;
  447. }
  448.  
  449. public OnPlayerDisconnect(playerid,reason)
  450. {
  451.     SendDeathMessage(INVALID_PLAYER_ID,playerid,201);
  452.     AFKPLAYERS[playerid][AFK] = 0;
  453.     new pName[MAX_PLAYER_NAME], string[128+MAX_PLAYER_NAME];
  454.     GetPlayerName(playerid, pName, sizeof(pName));
  455.     format(string, sizeof(string), "SERVER: %s hat den Server verlassen", pName);
  456.     SendClientMessageToAll(gelb, string);
  457.     pInfo[playerid][Onlinetimes]++;
  458.     //Accountsystem
  459.  
  460.     if(fexist(Path(playerid)))
  461.     {
  462.         new INI:file = INI_Open(Path(playerid));
  463.         INI_SetTag(file,"Spieler Statistik");
  464.         INI_WriteInt(file,"Adminlevel",pInfo[playerid][Adminlevel]);
  465.         INI_WriteInt(file,"Viplevel",pInfo[playerid][Viplevel]);
  466.         INI_WriteInt(file,"Banned",pInfo[playerid][Banned]);
  467.         INI_WriteInt(file,"Muted",pInfo[playerid][Muted]);
  468.         INI_WriteInt(file,"Money",GetPlayerMoney(playerid));
  469.         INI_WriteInt(file,"Score",GetPlayerScore(playerid));
  470.         INI_WriteInt(file,"Kills",pInfo[playerid][Kills]);
  471.         INI_WriteInt(file,"Deaths",pInfo[playerid][Deaths]);
  472.         INI_WriteInt(file,"Onlinetimes",pInfo[playerid][Onlinetimes]);
  473.         INI_Close(file);
  474.         return 1;
  475.     }
  476.     return 1;
  477. }
  478.  
  479. public OnPlayerDeath(playerid,killerid,reason)
  480. {
  481.     SendDeathMessage(killerid,playerid,reason);
  482.     pInfo[killerid][Kills]++;
  483.     pInfo[playerid][Deaths]++;
  484.     return 1;
  485. }
  486.  
  487. public OnPlayerText(playerid, text[])
  488. {
  489.     if(pInfo[playerid][Muted]==1)
  490.     {
  491.         SendClientMessage(playerid,rot,"Du bist noch gemuted!");
  492.         return 0;
  493.     }
  494.     if(text[0] == '#' && pInfo[playerid][Adminlevel]>=1)
  495.     {
  496.          new msg[128], pName[MAX_PLAYER_NAME];
  497.          GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  498.          format(msg, sizeof(msg), "[Admin Chat] %s: %s", pName, text[1]);
  499.          SendMessageToAdmins(msg);
  500.          return 0;
  501.     }
  502.     if(text[0] == '!' && pInfo[playerid][Viplevel]>=1)
  503.     {
  504.          new msg[128], pName[MAX_PLAYER_NAME];
  505.          GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  506.          format(msg, sizeof(msg), "[Vip Chat] %s: %s", pName, text[1]);
  507.          SendMessageToVips(msg);
  508.          return 0;
  509.     }
  510.     return 1;
  511. }
  512.  
  513. public OnPlayerCommandText(playerid, cmdtext[])
  514. {
  515.     new name[MAX_PLAYER_NAME],string[128];
  516.     GetPlayerName(playerid,name,sizeof(name));
  517.     format(string, sizeof(string),name,playerid,cmdtext);
  518.     SendCommandToAdmins(string);
  519.     print(string);
  520.     return 0;
  521. }
  522.  
  523. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  524. {
  525.     if(dialogid == 2002)
  526.     {
  527.         if(!response) return Kick(playerid);
  528.         if(response)
  529.         {
  530.             if(!strlen(inputtext))
  531.             {
  532.                         ShowPlayerDialog(playerid,2002,DIALOG_STYLE_INPUT,"Register","Wilkommen auf"#ServerName".\nBitte gebe nun ein Passwort ein um dich zu registrieren.","Register","Kick");
  533.                         return 1;
  534.             }
  535.             new hashpass[129];
  536.             WP_Hash(hashpass,sizeof(hashpass),inputtext);
  537.             new INI:file = INI_Open(Path(playerid));
  538.             INI_SetTag(file,"Spieler Statistik");
  539.             INI_WriteString(file,"Password",hashpass);
  540.             INI_WriteInt(file,"Adminlevel",0);
  541.             INI_WriteInt(file,"Viplevel",0);
  542.             INI_WriteInt(file,"Banned",0);
  543.             INI_WriteInt(file,"Muted",0);
  544.             INI_WriteInt(file,"Money",0);
  545.             INI_WriteInt(file,"Score",0);
  546.             INI_WriteInt(file,"Kills",0);
  547.             INI_WriteInt(file,"Deaths",0);
  548.             INI_WriteInt(file,"Onlinetimes",0);
  549.             INI_Close(file);
  550.             SendClientMessage(playerid,gruen,"Du hast dich erfolgreich angemeldet.");
  551.             return 1;
  552.         }
  553.     }
  554.     if(dialogid == 2001)
  555.     {
  556.         if(!response) return Kick(playerid);
  557.         if(response)
  558.         {
  559.             new hashpass[129];
  560.             WP_Hash(hashpass,sizeof(hashpass),inputtext);
  561.             if(!strcmp(hashpass,pInfo[playerid][Pass]))
  562.             {
  563.                 INI_ParseFile(Path(playerid),"loadaccount_%s",.bExtra = true, .extra = playerid);
  564.                 SetPlayerScore(playerid,pInfo[playerid][Score]);
  565.                 GivePlayerMoney(playerid,pInfo[playerid][Money]);
  566.                 SendClientMessage(playerid,gruen,"Wilkommen zurück! Du hast dich erfolgreich eingelogt.");
  567.             }
  568.             else
  569.             {
  570.                         ShowPlayerDialog(playerid,2001,DIALOG_STYLE_PASSWORD,"Login","Wilkommen zurück zu "#ServerName".\nBitte gebe nun dein Passwort ein.","Login","Kick");
  571.                         return 1;
  572.             }
  573.         }
  574.     }
  575.     return 1;
  576. }
  577.  
  578. //Das wird jetzt anstelle von "Server:Unknown Command" angezeigt.
  579.  
  580. forward OnPlayerCommandPerformed(playerid, cmdtext[], success);
  581.  
  582. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  583. {
  584.     if(!success) SendClientMessage(playerid, 0xFF0000FF, "Dieser Command existiert nicht. Nutze /cmds für alle Commands die es gibt!");
  585.     return 1;
  586. }
Advertisement
Add Comment
Please, Sign In to add comment