Advertisement
T4125Gamer

[SAMP / OPENMP] TG Adminsystem

Feb 25th, 2023 (edited)
2,216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 113.34 KB | Gaming | 0 0
  1. #define FILTERSCRIPT
  2. #define SCRIPT_VERSION      "1.0"
  3.  
  4. #include <a_samp>
  5. #include <dini2>
  6. #include <file>
  7. #include <ocmd>
  8. #include <sscanf2>
  9.  
  10. /* FARBEN */
  11. #define C_HINT      0xFFB400FF
  12. #define C_ERROR     0xFF0000FF
  13. #define C_INFO      0xFFFF00FF
  14.  
  15. /* MAKROS */
  16. #if !defined SetPos
  17.     #define SetPos(%0,%1,%2,%3,%4) SetPlayerPos(%0,%1,%2,%3),SetPlayerFacingAngle(%0,%4)
  18. #endif
  19.  
  20. #if !defined SCM
  21.     #define SCM SendClientMessage
  22. #endif
  23.  
  24. #if !defined SCMA
  25.     #define SCMA SendClientMessageToAll
  26. #endif
  27.  
  28. #if !defined KickEx
  29.     #define KickEx(%0) SetTimerEx("KickPlayer", 100, false, "i", %0)
  30. #endif
  31.  
  32. #if !defined SPD
  33.     #define SPD ShowPlayerDialog
  34. #endif
  35.  
  36. #if !defined isnull
  37.     #define isnull(%1) ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
  38. #endif
  39.  
  40. /* VORGEFERTIGTE TEXTE */
  41. #define NotAllowed_EN SCM(playerid, 0xFF0000FF, "You have no rights for this action!")
  42. #define NotAllowed_DE SCM(playerid, 0xFF0000FF, "Du besitzt nicht die nötigen Rechte für diese Aktion!")
  43. #define NOT_ONLINE_DE SCM(playerid, C_ERROR, "Dieser Spieler ist nicht online!")
  44. #define NOT_ONLINE_EN SCM(playerid, C_ERROR, "This player is not connected!")
  45. #define PLAYER_NPC_DE SCM(playerid, C_ERROR, "Diese ID ist ein NPC!")
  46. #define PLAYER_NPC_EN SCM(playerid, C_ERROR, "This ID is an NPC!")
  47. #define PLAYER_NOT_IN_VEHICLE_DE SCM(playerid, C_ERROR, "Dieser Spieler ist in keinem Fahrzeug!")
  48. #define PLAYER_NOT_IN_VEHICLE_EN SCM(playerid, C_ERROR, "This player is not in a vehicle!")
  49.  
  50. /* FORWARDS */
  51. forward KickPlayer(playerid);
  52. forward ResetVehicles();
  53. forward RestartServer();
  54. forward LooseWarnings(playerid);
  55.  
  56. /* ADMINSETTINGS */
  57. new isAdmin[MAX_PLAYERS], playerSupVeh[MAX_PLAYERS], bool:isSpectating[MAX_PLAYERS];
  58. new Float:p_oldX[MAX_PLAYERS], Float:p_oldY[MAX_PLAYERS], Float:p_oldZ[MAX_PLAYERS], Float:p_oldA[MAX_PLAYERS];
  59. new p_oldVW[MAX_PLAYERS], p_oldINT[MAX_PLAYERS], pSpectateID[MAX_PLAYERS];
  60. new permissionChange[MAX_PLAYERS], gSettingsStep[MAX_PLAYERS];
  61. new playerWarnings[MAX_PLAYERS], playerCurrentWarnings[MAX_PLAYERS];
  62. new playerWarningTimer[MAX_PLAYERS], bool:playerFreezed[MAX_PLAYERS];
  63. new inAdminChat[MAX_PLAYERS], adminChatID[MAX_PLAYERS], supportTicket[MAX_PLAYERS];
  64.  
  65. /* SONSTIGES */
  66. new LANGUAGE = 1; /* Type here 1 for German or 2 for English*/
  67. new MAX_ADMINLEVEL = 0;
  68. new MAX_WARNINGS = 0;
  69. new STACK_WARNINGS = 0;
  70. new LOOS_WARNINGS_TIMER = 0;
  71. new resetStage = 0, resetVehTimer;
  72. new restartStage = 0, restartTimer;
  73.  
  74. #define SCRIPTFILES_PATH            "/adminsystem"
  75.  
  76. /*  DIALOGE */
  77. #define DIALOG_SHOW_SETTINGS_MENU           1500
  78. #define DIALOG_EDIT_RANKS                   1501
  79. #define DIALOG_EDIT_LEVEL                   1502
  80. #define DIALOG_EDIT_RANKS_INPUT             1503
  81. #define DIALOG_SET_PERMISSIONS              1504
  82. #define DIALOG_CHANGE_PERMISSION            1505
  83. #define DIALOG_CHANGE_G_SETTINGS            1506
  84. #define DIALOG_EDIT_G_SETTINGS              1507
  85. #define DIALOG_SHOW_ADMINS                  1508
  86.  
  87. public OnFilterScriptInit()
  88. {
  89.     if (LANGUAGE == 1){
  90.         print("====================================================");
  91.         print(" TG - Systems");
  92.         printf(" basic_admincommands v %s", SCRIPT_VERSION);
  93.         print(" Benutze /rcon login um Einstellungen tätigen zu können");
  94.         print("====================================================\n");
  95.     }
  96.     if (LANGUAGE == 2){
  97.         print("====================================================");
  98.         print(" TG - Systems");
  99.         printf(" basic_admincommands v %s", SCRIPT_VERSION);
  100.         print(" Use /rcon login to Controll your Adminstates");
  101.         print("====================================================\n");
  102.     }
  103.     CheckFileStatus();
  104.     for(new i = 0; i<MAX_PLAYERS; i++){
  105.         playerSupVeh[i] = -1;
  106.         playerWarningTimer[i] = -1;
  107.         inAdminChat[i] = -1;
  108.         supportTicket[i] = -1;
  109.         adminChatID[i] = -1;
  110.         isAdmin[i] = 0;
  111.     }
  112.     return 1;
  113. }
  114.  
  115. public OnFilterScriptExit()
  116. {
  117.     return 1;
  118. }
  119.  
  120. public OnPlayerRequestClass(playerid, classid)
  121. {
  122.     return 1;
  123. }
  124.  
  125. public OnPlayerConnect(playerid)
  126. {
  127.     if(CheckUserBanned(playerid)){
  128.         if(LANGUAGE == 1){
  129.             SCM(playerid, C_ERROR, "Du bist permanent gebannt!");
  130.             return KickEx(playerid);
  131.         }
  132.         if(LANGUAGE == 2){
  133.             SCM(playerid, C_ERROR, "You are peramently banned!");
  134.             return KickEx(playerid);
  135.         }
  136.     }
  137.     if(CheckUserTimeBanned(playerid)){
  138.         new path[64];
  139.         format(path,sizeof(path), "%s/bans/%s_t.ini",SCRIPTFILES_PATH, GetName(playerid));
  140.         if(fexist(path)){
  141.             if(LANGUAGE == 1){
  142.                 new timeStamp = dini_Int(path, "TIMESTAMP");
  143.                 new currentTimeStamp = GetTimestamp();
  144.                 if(timeStamp > currentTimeStamp){//User is currently banned
  145.                     new rechnung = timeStamp - currentTimeStamp;
  146.                     rechnung = rechnung/60;
  147.                     new string[250];
  148.                     format(string,sizeof(string), "Du bist noch für %d Minuten gebannt!", rechnung);
  149.                     SCM(playerid, C_ERROR, string);
  150.                     return KickEx(playerid);
  151.                 }else{
  152.                     fremove(path);
  153.                 }
  154.             }
  155.             if(LANGUAGE == 2){
  156.                 new timeStamp = dini_Int(path, "TIMESTAMP");
  157.                 new currentTimeStamp = GetTimestamp();
  158.                 if(timeStamp > currentTimeStamp){//User is currently banned
  159.                     new rechnung = timeStamp - currentTimeStamp;
  160.                     rechnung = rechnung/60;
  161.                     new string[250];
  162.                     format(string,sizeof(string), "You are banned for %d minutes", rechnung);
  163.                     SCM(playerid, C_ERROR, string);
  164.                     return KickEx(playerid);
  165.                 }else{
  166.                     fremove(path);
  167.                 }
  168.             }
  169.         }
  170.         return 1;
  171.     }
  172.     isAdmin[playerid] = 0;
  173.     playerSupVeh[playerid] = -1;
  174.     isSpectating[playerid] = false;
  175.     playerFreezed[playerid] = false;
  176.     pSpectateID[playerid] = -1;
  177.     permissionChange[playerid] = -1;
  178.     gSettingsStep[playerid] = -1;
  179.     inAdminChat[playerid] = -1;
  180.     adminChatID[playerid] = -1;
  181.     supportTicket[playerid] = -1;
  182.     LoadPlayerWarnings(playerid);
  183.     LoadPlayerAdmin(playerid);
  184.     return 1;
  185. }
  186.  
  187. public OnPlayerDisconnect(playerid, reason)
  188. {
  189.     if(playerSupVeh[playerid] != -1){
  190.         DestroyVehicle(playerSupVeh[playerid]);
  191.     }
  192.     if(supportTicket[playerid] != -1){//Wenn noch kein Chat bekommen wurde
  193.         if(LANGUAGE == 1){
  194.             new string[250];
  195.             format(string,sizeof(string), "[TICKET ID %d] Das Ticket von %s wurde aufgrund eines Disconnects geschlossen!", supportTicket[playerid], GetName(playerid));
  196.             SendAdminMessage(string);
  197.             WriteTicketLock(string);
  198.             supportTicket[playerid] = -1;
  199.         }
  200.         if(LANGUAGE == 2){
  201.             new string[250];
  202.             supportTicket[playerid] = -1;
  203.             format(string,sizeof(string), "[TICKET ID %d] The ticket from %s has been closed because this player disconnected!", supportTicket[playerid], GetName(playerid));
  204.             SendAdminMessage(string);
  205.             supportTicket[playerid] = -1;
  206.         }
  207.     }
  208.     return 1;
  209. }
  210.  
  211. public OnPlayerSpawn(playerid)
  212. {
  213.     if(isSpectating[playerid]){
  214.         SetPos(playerid, p_oldX[playerid], p_oldY[playerid], p_oldZ[playerid], p_oldA[playerid]);
  215.         SetPlayerInterior(playerid, p_oldINT[playerid]);
  216.         SetPlayerVirtualWorld(playerid, p_oldVW[playerid]);
  217.         isSpectating[playerid] = false;
  218.     }
  219.     return 1;
  220. }
  221.  
  222. public OnPlayerDeath(playerid, killerid, reason)
  223. {
  224.     return 1;
  225. }
  226.  
  227. public OnVehicleSpawn(vehicleid)
  228. {
  229.     return 1;
  230. }
  231.  
  232. public OnVehicleDeath(vehicleid, killerid)
  233. {
  234.     return 1;
  235. }
  236.  
  237. public OnPlayerText(playerid, text[])
  238. {
  239.     if(inAdminChat[playerid] == 1){
  240.         if(LANGUAGE == 1){
  241.             new string[250];
  242.             format(string,sizeof(string), "%s sagt: %s", GetName(playerid), text);
  243.             SCM(adminChatID[playerid], C_INFO, string);
  244.             format(string,sizeof(string), "[TICKET ID: %d] %s sagt zu %s: %s", supportTicket[playerid], GetName(playerid), GetName(adminChatID[playerid]), text);
  245.             WriteTicketLock(string);
  246.         }
  247.         if(LANGUAGE == 2){
  248.             new string[250];
  249.             format(string,sizeof(string), "%s say: %s", GetName(playerid), text);
  250.             SCM(adminChatID[playerid], C_INFO, string);
  251.             format(string,sizeof(string), "[TICKET ID: %d] %s say to %s: %s", supportTicket[playerid], GetName(playerid), GetName(adminChatID[playerid]), text);
  252.             WriteTicketLock(string);
  253.         }
  254.         return 1;
  255.     }
  256.     return 1;
  257. }
  258.  
  259. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  260. {
  261.     return 1;
  262. }
  263.  
  264. public OnPlayerExitVehicle(playerid, vehicleid)
  265. {
  266.     return 1;
  267. }
  268.  
  269. public OnPlayerStateChange(playerid, newstate, oldstate)
  270. {
  271.     return 1;
  272. }
  273.  
  274. public OnPlayerEnterCheckpoint(playerid)
  275. {
  276.     return 1;
  277. }
  278.  
  279. public OnPlayerLeaveCheckpoint(playerid)
  280. {
  281.     return 1;
  282. }
  283.  
  284. public OnPlayerEnterRaceCheckpoint(playerid)
  285. {
  286.     return 1;
  287. }
  288.  
  289. public OnPlayerLeaveRaceCheckpoint(playerid)
  290. {
  291.     return 1;
  292. }
  293.  
  294. public OnRconCommand(cmd[])
  295. {
  296.     return 1;
  297. }
  298.  
  299. public OnPlayerRequestSpawn(playerid)
  300. {
  301.     return 1;
  302. }
  303.  
  304. public OnObjectMoved(objectid)
  305. {
  306.     return 1;
  307. }
  308.  
  309. public OnPlayerObjectMoved(playerid, objectid)
  310. {
  311.     return 1;
  312. }
  313.  
  314. public OnPlayerPickUpPickup(playerid, pickupid)
  315. {
  316.     return 1;
  317. }
  318.  
  319. public OnVehicleMod(playerid, vehicleid, componentid)
  320. {
  321.     return 1;
  322. }
  323.  
  324. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  325. {
  326.     return 1;
  327. }
  328.  
  329. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  330. {
  331.     return 1;
  332. }
  333.  
  334. public OnPlayerSelectedMenuRow(playerid, row)
  335. {
  336.     return 1;
  337. }
  338.  
  339. public OnPlayerExitedMenu(playerid)
  340. {
  341.     return 1;
  342. }
  343.  
  344. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  345. {
  346.     return 1;
  347. }
  348.  
  349. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  350. {
  351.     return 1;
  352. }
  353.  
  354. public OnRconLoginAttempt(ip[], password[], success)
  355. {
  356.     return 1;
  357. }
  358.  
  359. public OnPlayerUpdate(playerid)
  360. {
  361.     return 1;
  362. }
  363.  
  364. public OnPlayerStreamIn(playerid, forplayerid)
  365. {
  366.     return 1;
  367. }
  368.  
  369. public OnPlayerStreamOut(playerid, forplayerid)
  370. {
  371.     return 1;
  372. }
  373.  
  374. public OnVehicleStreamIn(vehicleid, forplayerid)
  375. {
  376.     return 1;
  377. }
  378.  
  379. public OnVehicleStreamOut(vehicleid, forplayerid)
  380. {
  381.     return 1;
  382. }
  383.  
  384. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  385. {
  386.     switch(dialogid){
  387.         case DIALOG_SHOW_SETTINGS_MENU:{
  388.             if(!response)return 1;
  389.             switch(listitem){
  390.                 case 0:{//Admin werden
  391.                     isAdmin[playerid] = MAX_ADMINLEVEL;
  392.                     new path[64];
  393.                     format(path, sizeof(path), "%s/playerAdmin.ini", SCRIPTFILES_PATH);
  394.                     dini_IntSet(path, GetName(playerid), MAX_ADMINLEVEL);
  395.                     if(LANGUAGE == 1)return SCM(playerid, C_INFO, "Du hast das maximale Adminlevel erhalten!");
  396.                     if(LANGUAGE == 2)return SCM(playerid, C_INFO, "You´ve got the maximal adminlevel!");
  397.                 }
  398.                 case 1:{//Adminränge bearbeiten
  399.                     new string[256], path[64], key[10];
  400.                     format(path,sizeof(path), "%s/rangNames.ini",SCRIPTFILES_PATH);
  401.                     for(new i = 0; i<MAX_ADMINLEVEL; i++){
  402.                         format(key,sizeof(key), "RANG_%d", i+1);
  403.                         if(i == 0){
  404.                             format(string,sizeof(string), "%d. %s\n",i+1, dini_Get(path,key));
  405.                         }else format(string,sizeof(string), "%s\n%d. %s\n",string,i+1, dini_Get(path,key));
  406.                     }
  407.                     if(LANGUAGE == 1)return SPD(playerid, DIALOG_EDIT_RANKS, DIALOG_STYLE_LIST, "Adminränge editieren", string, "Editieren", "Zurück");
  408.                     if(LANGUAGE == 2)return SPD(playerid, DIALOG_EDIT_RANKS, DIALOG_STYLE_LIST, "Edit admin ranks", string, "Edit", "Back");
  409.                 }
  410.                 case 2:{//Anzahl Adminränge bearbeiten
  411.                     new path[64], string[256];
  412.                     format(path,sizeof(path), "%s/settings.ini",SCRIPTFILES_PATH);
  413.                     if(LANGUAGE == 1){
  414.                         format(string,sizeof(string), "Aktuelle Ränge: %d\nGebe nun eine neue Zahl ein!",dini_Int(path, "MAX_ADMINLEVEL"));
  415.                         return SPD(playerid, DIALOG_EDIT_LEVEL, DIALOG_STYLE_INPUT, "Adminlevel bearbeiten", string, "Speichern", "Zurück");
  416.                     }
  417.                     if(LANGUAGE == 2){
  418.                         format(string,sizeof(string), "Current max Level: %d\nInsert a new number!",dini_Int(path, "MAX_ADMINLEVEL"));
  419.                         return SPD(playerid, DIALOG_EDIT_LEVEL, DIALOG_STYLE_INPUT, "Edit admin level", string, "Save", "Back");
  420.                     }
  421.                 }
  422.                 case 3:{//Zugriffslevel bearbeiten
  423.                     return ShowPermissionDialog(playerid);
  424.                 }
  425.                 case 4:{//Allgemeine Einstellungen
  426.                     return ShowGeneralSettings(playerid);
  427.                 }
  428.             }
  429.         }
  430.         case DIALOG_SET_PERMISSIONS:{
  431.             if(!response){
  432.                 return ShowSettingsMenu(playerid);
  433.             }
  434.             switch(listitem){
  435.                 case 0:{//Kick Player
  436.                     permissionChange[playerid] = 1;
  437.                     return ShowCurrentAccessLevelDialog(playerid,"KICKPLAYER_USABLE");
  438.                 }
  439.                 case 1:{//Ban Player
  440.                     permissionChange[playerid] = 2;
  441.                     return ShowCurrentAccessLevelDialog(playerid,"BANPLAYER_USABLE");
  442.                 }
  443.                 case 2:{//Timeban Player
  444.                     permissionChange[playerid] = 3;
  445.                     return ShowCurrentAccessLevelDialog(playerid,"TIMEBANPLAYER_USABLE");
  446.                 }
  447.                 case 3:{//Unban Player
  448.                     permissionChange[playerid] = 4;
  449.                     return ShowCurrentAccessLevelDialog(playerid,"UNBANPLAYER_USABLE");
  450.                 }
  451.                 case 4:{//Teleport Player
  452.                     permissionChange[playerid] = 5;
  453.                     return ShowCurrentAccessLevelDialog(playerid,"TELEPORTPLAYER_USABLE");
  454.                 }
  455.                 case 5:{//Setint Player
  456.                     permissionChange[playerid] = 6;
  457.                     return ShowCurrentAccessLevelDialog(playerid,"SETINT_USABLE");
  458.                 }
  459.                 case 6:{//Setvw Player
  460.                     permissionChange[playerid] = 7;
  461.                     return ShowCurrentAccessLevelDialog(playerid,"SETVW_USABLE");
  462.                 }
  463.                 case 7:{//Supveh Player
  464.                     permissionChange[playerid] = 8;
  465.                     return ShowCurrentAccessLevelDialog(playerid,"SUPVEH_USABLE");
  466.                 }
  467.                 case 8:{//Spectate Player
  468.                     permissionChange[playerid] = 9;
  469.                     return ShowCurrentAccessLevelDialog(playerid,"SPECTATE_USABLE");
  470.                 }
  471.                 case 9:{//Sethealth Player
  472.                     permissionChange[playerid] = 10;
  473.                     return ShowCurrentAccessLevelDialog(playerid,"SETHEALTH_USABLE");
  474.                 }
  475.                 case 10:{//Setarmour Player
  476.                     permissionChange[playerid] = 11;
  477.                     return ShowCurrentAccessLevelDialog(playerid,"SETARMOUR_USABLE");
  478.                 }
  479.                 case 11:{//Repveh Player
  480.                     permissionChange[playerid] = 12;
  481.                     return ShowCurrentAccessLevelDialog(playerid,"REPVEH_USABLE");
  482.                 }
  483.                 case 12:{//Setweather Player
  484.                     permissionChange[playerid] = 13;
  485.                     return ShowCurrentAccessLevelDialog(playerid,"SETWEATHER_USABLE");
  486.                 }
  487.                 case 13:{//Killall Player
  488.                     permissionChange[playerid] = 14;
  489.                     return ShowCurrentAccessLevelDialog(playerid,"KILLALL_USABLE");
  490.                 }
  491.                 case 14:{//Resetveh Player
  492.                     permissionChange[playerid] = 15;
  493.                     return ShowCurrentAccessLevelDialog(playerid,"RESETVEH_USABLE");
  494.                 }
  495.                 case 15:{//Delveh Player
  496.                     permissionChange[playerid] = 16;
  497.                     return ShowCurrentAccessLevelDialog(playerid,"DELVEH_USABLE");
  498.                 }
  499.                 case 16:{//Respawnveh Player
  500.                     permissionChange[playerid] = 17;
  501.                     return ShowCurrentAccessLevelDialog(playerid,"SPAWNVEH_USABLE");
  502.                 }
  503.                 case 17:{//Spawnveh Player
  504.                     permissionChange[playerid] = 18;
  505.                     return ShowCurrentAccessLevelDialog(playerid,"GETVID_USABLE");
  506.                 }
  507.                 case 18:{//Warn Player
  508.                     permissionChange[playerid] = 19;
  509.                     return ShowCurrentAccessLevelDialog(playerid,"WARNPLAYER_USABLE");
  510.                 }
  511.                 case 19:{//Eject Player
  512.                     permissionChange[playerid] = 20;
  513.                     return ShowCurrentAccessLevelDialog(playerid,"EJECTPLAYER_USABLE");
  514.                 }
  515.                 case 20:{//Eject Player
  516.                     permissionChange[playerid] = 21;
  517.                     return ShowCurrentAccessLevelDialog(playerid,"FREEZEPLAYER_USABLE");
  518.                 }
  519.                 case 21:{//Slap Player
  520.                     permissionChange[playerid] = 22;
  521.                     return ShowCurrentAccessLevelDialog(playerid,"SLAPPLAYER_USABLE");
  522.                 }
  523.                 case 22:{//clear chat
  524.                     permissionChange[playerid] = 23;
  525.                     return ShowCurrentAccessLevelDialog(playerid,"CLEARCHAT_USABLE");
  526.                 }
  527.                 case 23:{//Makeadmin
  528.                     permissionChange[playerid] = 24;
  529.                     return ShowCurrentAccessLevelDialog(playerid,"MAKEADMIN_USABLE");
  530.                 }
  531.                 case 24:{//getticket
  532.                     permissionChange[playerid] = 25;
  533.                     return ShowCurrentAccessLevelDialog(playerid,"GETTICKET_USABLE");
  534.                 }
  535.                 case 25:{//Adminchat
  536.                     permissionChange[playerid] = 26;
  537.                     return ShowCurrentAccessLevelDialog(playerid,"ADMINCHAT_USABLE");
  538.                 }
  539.                 case 26:{//Spawnveh
  540.                     permissionChange[playerid] = 27;
  541.                     return ShowCurrentAccessLevelDialog(playerid,"SPAWNNEWVEH_USABLE");
  542.                 }
  543.                 case 27:{//Restartserver
  544.                     permissionChange[playerid] = 28;
  545.                     return ShowCurrentAccessLevelDialog(playerid,"RESTARTSERVER_USABLE");
  546.                 }
  547.             }
  548.         }
  549.         case DIALOG_CHANGE_PERMISSION:{
  550.             if(!response){
  551.                 return ShowPermissionDialog(playerid);
  552.             }
  553.             switch(permissionChange[playerid]){
  554.                 case 1:{// Kick Player
  555.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  556.                         return ShowCurrentAccesLevelDialogE(playerid, "KICKPLAYER_USABLE");
  557.                     }
  558.                     permissionChange[playerid] = -1;
  559.                     UpdateAccessLevel("KICKPLAYER_USABLE", strval(inputtext));
  560.                     return ShowPermissionDialog(playerid);
  561.                 }
  562.                 case 2:{// Ban Player
  563.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  564.                         return ShowCurrentAccesLevelDialogE(playerid, "BANPLAYER_USABLE");
  565.                     }
  566.                     permissionChange[playerid] = -1;
  567.                     UpdateAccessLevel("BANPLAYER_USABLE", strval(inputtext));
  568.                     return ShowPermissionDialog(playerid);
  569.                 }
  570.                 case 3:{// Timeban Player
  571.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  572.                         return ShowCurrentAccesLevelDialogE(playerid, "TIMEBANPLAYER_USABLE");
  573.                     }
  574.                     permissionChange[playerid] = -1;
  575.                     UpdateAccessLevel("TIMEBANPLAYER_USABLE", strval(inputtext));
  576.                     return ShowPermissionDialog(playerid);
  577.                 }
  578.                 case 4:{//Unban Player
  579.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  580.                         return ShowCurrentAccesLevelDialogE(playerid, "UNBANPLAYER_USABLE");
  581.                     }
  582.                     permissionChange[playerid] = -1;
  583.                     UpdateAccessLevel("UNBANPLAYER_USABLE", strval(inputtext));
  584.                     return ShowPermissionDialog(playerid);
  585.                 }
  586.                 case 5:{//Teleport Player
  587.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  588.                         return ShowCurrentAccesLevelDialogE(playerid, "TELEPORTPLAYER_USABLE");
  589.                     }
  590.                     permissionChange[playerid] = -1;
  591.                     UpdateAccessLevel("TELEPORTPLAYER_USABLE", strval(inputtext));
  592.                     return ShowPermissionDialog(playerid);
  593.                 }
  594.                 case 6:{//Setint Player
  595.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  596.                         return ShowCurrentAccesLevelDialogE(playerid, "SETINT_USABLE");
  597.                     }
  598.                     permissionChange[playerid] = -1;
  599.                     UpdateAccessLevel("SETINT_USABLE", strval(inputtext));
  600.                     return ShowPermissionDialog(playerid);
  601.                 }
  602.                 case 7:{//Setvw Player
  603.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  604.                         return ShowCurrentAccesLevelDialogE(playerid, "SETVW_USABLE");
  605.                     }
  606.                     permissionChange[playerid] = -1;
  607.                     UpdateAccessLevel("SETVW_USABLE", strval(inputtext));
  608.                     return ShowPermissionDialog(playerid);
  609.                 }
  610.                 case 8:{//Supveh Player
  611.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  612.                         return ShowCurrentAccesLevelDialogE(playerid, "SUPVEH_USABLE");
  613.                     }
  614.                     permissionChange[playerid] = -1;
  615.                     UpdateAccessLevel("SUPVEH_USABLE", strval(inputtext));
  616.                     return ShowPermissionDialog(playerid);
  617.                 }
  618.                 case 9:{//Spectate Player
  619.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  620.                         return ShowCurrentAccesLevelDialogE(playerid, "SPECTATE_USABLE");
  621.                     }
  622.                     permissionChange[playerid] = -1;
  623.                     UpdateAccessLevel("SPECTATE_USABLE", strval(inputtext));
  624.                     return ShowPermissionDialog(playerid);
  625.                 }
  626.                 case 10:{//Sethealth Player
  627.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  628.                         return ShowCurrentAccesLevelDialogE(playerid, "SETHEALTH_USABLE");
  629.                     }
  630.                     permissionChange[playerid] = -1;
  631.                     UpdateAccessLevel("SETHEALTH_USABLE", strval(inputtext));
  632.                     return ShowPermissionDialog(playerid);
  633.                 }
  634.                 case 11:{//Setarmour Player
  635.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  636.                         return ShowCurrentAccesLevelDialogE(playerid, "SETARMOUR_USABLE");
  637.                     }
  638.                     permissionChange[playerid] = -1;
  639.                     UpdateAccessLevel("SETARMOUR_USABLE", strval(inputtext));
  640.                     return ShowPermissionDialog(playerid);
  641.                 }
  642.                 case 12:{//Repveh Player
  643.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  644.                         return ShowCurrentAccesLevelDialogE(playerid, "REPVEH_USABLE");
  645.                     }
  646.                     permissionChange[playerid] = -1;
  647.                     UpdateAccessLevel("REPVEH_USABLE", strval(inputtext));
  648.                     return ShowPermissionDialog(playerid);
  649.                 }
  650.                 case 13:{//Setweather Player
  651.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  652.                         return ShowCurrentAccesLevelDialogE(playerid, "SETWEATHER_USABLE");
  653.                     }
  654.                     permissionChange[playerid] = -1;
  655.                     UpdateAccessLevel("SETWEATHER_USABLE", strval(inputtext));
  656.                     return ShowPermissionDialog(playerid);
  657.                 }
  658.                 case 14:{//Killall Player
  659.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  660.                         return ShowCurrentAccesLevelDialogE(playerid, "KILLALL_USABLE");
  661.                     }
  662.                     permissionChange[playerid] = -1;
  663.                     UpdateAccessLevel("KILLALL_USABLE", strval(inputtext));
  664.                     return ShowPermissionDialog(playerid);
  665.                 }
  666.                 case 15:{//Resetveh Player
  667.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  668.                         return ShowCurrentAccesLevelDialogE(playerid, "RESETVEH_USABLE");
  669.                     }
  670.                     permissionChange[playerid] = -1;
  671.                     UpdateAccessLevel("RESETVEH_USABLE", strval(inputtext));
  672.                     return ShowPermissionDialog(playerid);
  673.                 }
  674.                 case 16:{//Delveh Player
  675.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  676.                         return ShowCurrentAccesLevelDialogE(playerid, "DELVEH_USABLE");
  677.                     }
  678.                     permissionChange[playerid] = -1;
  679.                     UpdateAccessLevel("DELVEH_USABLE", strval(inputtext));
  680.                     return ShowPermissionDialog(playerid);
  681.                 }
  682.                 case 17:{//Spawnveh Player
  683.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  684.                         return ShowCurrentAccesLevelDialogE(playerid, "SPAWNVEH_USABLE");
  685.                     }
  686.                     permissionChange[playerid] = -1;
  687.                     UpdateAccessLevel("SPAWNVEH_USABLE", strval(inputtext));
  688.                     return ShowPermissionDialog(playerid);
  689.                 }
  690.                 case 18:{//Getvid Player
  691.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  692.                         return ShowCurrentAccesLevelDialogE(playerid, "GETVID_USABLE");
  693.                     }
  694.                     permissionChange[playerid] = -1;
  695.                     UpdateAccessLevel("GETVID_USABLE", strval(inputtext));
  696.                     return ShowPermissionDialog(playerid);
  697.                 }
  698.                 case 19:{//Warn Player
  699.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  700.                         return ShowCurrentAccesLevelDialogE(playerid, "WARNPLAYER_USABLE");
  701.                     }
  702.                     permissionChange[playerid] = -1;
  703.                     UpdateAccessLevel("WARNPLAYER_USABLE", strval(inputtext));
  704.                     return ShowPermissionDialog(playerid);
  705.                 }
  706.                 case 20:{//Eject Player
  707.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  708.                         return ShowCurrentAccesLevelDialogE(playerid, "EJECTPLAYER_USABLE");
  709.                     }
  710.                     permissionChange[playerid] = -1;
  711.                     UpdateAccessLevel("EJECTPLAYER_USABLE", strval(inputtext));
  712.                     return ShowPermissionDialog(playerid);
  713.                 }
  714.                 case 21:{//Freeze Player
  715.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  716.                         return ShowCurrentAccesLevelDialogE(playerid, "FREEZEPLAYER_USABLE");
  717.                     }
  718.                     permissionChange[playerid] = -1;
  719.                     UpdateAccessLevel("FREEZEPLAYER_USABLE", strval(inputtext));
  720.                     return ShowPermissionDialog(playerid);
  721.                 }
  722.                 case 22:{//Slap Player
  723.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  724.                         return ShowCurrentAccesLevelDialogE(playerid, "SLAPPLAYER_USABLE");
  725.                     }
  726.                     permissionChange[playerid] = -1;
  727.                     UpdateAccessLevel("SLAPPLAYER_USABLE", strval(inputtext));
  728.                     return ShowPermissionDialog(playerid);
  729.                 }
  730.                 case 23:{//Clear Chat
  731.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  732.                         return ShowCurrentAccesLevelDialogE(playerid, "CLEARCHAT_USABLE");
  733.                     }
  734.                     permissionChange[playerid] = -1;
  735.                     UpdateAccessLevel("CLEARCHAT_USABLE", strval(inputtext));
  736.                     return ShowPermissionDialog(playerid);
  737.                 }
  738.                 case 24:{//Makeadmin
  739.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  740.                         return ShowCurrentAccesLevelDialogE(playerid, "MAKEADMIN_USABLE");
  741.                     }
  742.                     permissionChange[playerid] = -1;
  743.                     UpdateAccessLevel("MAKEADMIN_USABLE", strval(inputtext));
  744.                     return ShowPermissionDialog(playerid);
  745.                 }
  746.                 case 25:{//getticket
  747.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  748.                         return ShowCurrentAccesLevelDialogE(playerid, "GETTICKET_USABLE");
  749.                     }
  750.                     permissionChange[playerid] = -1;
  751.                     UpdateAccessLevel("GETTICKET_USABLE", strval(inputtext));
  752.                     return ShowPermissionDialog(playerid);
  753.                 }
  754.                 case 26:{//Adminchat
  755.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  756.                         return ShowCurrentAccesLevelDialogE(playerid, "ADMINCHAT_USABLE");
  757.                     }
  758.                     permissionChange[playerid] = -1;
  759.                     UpdateAccessLevel("ADMINCHAT_USABLE", strval(inputtext));
  760.                     return ShowPermissionDialog(playerid);
  761.                 }
  762.                 case 27:{//Spawn veh
  763.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  764.                         return ShowCurrentAccesLevelDialogE(playerid, "SPAWNNEWVEH_USABLE");
  765.                     }
  766.                     permissionChange[playerid] = -1;
  767.                     UpdateAccessLevel("SPAWNNEWVEH_USABLE", strval(inputtext));
  768.                     return ShowPermissionDialog(playerid);
  769.                 }
  770.                 case 28:{//Restart server
  771.                     if(strval(inputtext) <= 0 || strval(inputtext) > MAX_ADMINLEVEL){
  772.                         return ShowCurrentAccesLevelDialogE(playerid, "RESTARTSERVER_USABLE");
  773.                     }
  774.                     permissionChange[playerid] = -1;
  775.                     UpdateAccessLevel("RESTARTSERVER_USABLE", strval(inputtext));
  776.                     return ShowPermissionDialog(playerid);
  777.                 }
  778.             }
  779.         }
  780.         case DIALOG_CHANGE_G_SETTINGS:{
  781.             if(!response){
  782.                 return ShowSettingsMenu(playerid);
  783.             }
  784.             switch(listitem){
  785.                 case 0:{//MAX_WARNINGS
  786.                     new path[64], string[256];
  787.                     format(path, sizeof(path), "%s/settings.ini",SCRIPTFILES_PATH);
  788.                     if(LANGUAGE == 1){
  789.                         format(string,sizeof(string), "Anzahl von maximalen Warnings %d\nGib einen neuen Wert ein.", dini_Int(path, "MAX_WARNINGS"));
  790.                         SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "Allgemeine Einstellungen", string, "Speichern", "Zurück");
  791.                     }
  792.                     if(LANGUAGE == 2){
  793.                         format(string,sizeof(string), "Number of maximum warnings %d\nInsert a new value.", dini_Int(path, "MAX_WARNINGS"));
  794.                         SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "General Settings", string, "Save", "Back");
  795.                     }
  796.                     gSettingsStep[playerid] = 0;
  797.                 }
  798.                 case 1:{//STACK_WARNINGS
  799.                     new path[64], string[256];
  800.                     format(path, sizeof(path), "%s/settings.ini",SCRIPTFILES_PATH);
  801.                     if(LANGUAGE == 1){
  802.                         format(string,sizeof(string), "Sollen Verwarnungen Stacken? %s\nGib JA zum aktivieren oder NEIN zum deaktivieren ein", StackWarningsWord());
  803.                         SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "Allgemeine Einstellungen", string, "Speichern", "Zurück");
  804.                     }
  805.                     if(LANGUAGE == 2){
  806.                         format(string,sizeof(string), "Should warnings stack? %s\nType YES to activate or NO to deactivate.", StackWarningsWord());
  807.                         SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "General Settings", string, "Save", "Back");
  808.                     }
  809.                     gSettingsStep[playerid] = 1;
  810.                 }
  811.                 case 2:{//LOOS_WARNINGS_TIMER
  812.                     new path[64], string[256];
  813.                     format(path, sizeof(path), "%s/settings.ini", SCRIPTFILES_PATH);
  814.                     if(LANGUAGE == 1){
  815.                         format(string,sizeof(string), "Aktueller Timer zum abbauen von Verwarnungen %d Minuten\nGib eine neue Zeit in Minuten ein", LOOS_WARNINGS_TIMER/60000);
  816.                         SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "Allgemeine Einstellungen", string, "Speichern", "Zurück");
  817.                     }
  818.                     if(LANGUAGE == 2){
  819.                         format(string,sizeof(string), "Current timer to reduce warnings %d minutes\nPlease insert a new time in minutes.", LOOS_WARNINGS_TIMER/60000);
  820.                         SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "General Settings", string, "Save", "Back");
  821.                     }
  822.                     gSettingsStep[playerid] = 2;
  823.                 }
  824.                 case 3:{//LANGUAGE
  825.                     new path[64], string[256];
  826.                     format(path, sizeof(path), "%s/settings.ini", SCRIPTFILES_PATH);
  827.                     if(LANGUAGE == 1){
  828.                         format(string,sizeof(string), "Aktuelle Sprache %s\nGibt DE für Deutsch oder EN für Englisch ein!", LanguageWord());
  829.                         SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "Allgemeine Einstellungen", string, "Speichern", "Zurück");
  830.                     }
  831.                     if(LANGUAGE == 2){
  832.                         format(string,sizeof(string), "Current language %s\nPlease insert DE for German or EN for English", LanguageWord());
  833.                         SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "General Settings", string, "Save", "Back");
  834.                     }
  835.                     gSettingsStep[playerid] = 3;
  836.                 }
  837.                 case 4:{//SUPVEH_VEHICLEMODEL
  838.                     new path[64], string[256];
  839.                     format(path,sizeof(path), "%s/settings.ini", SCRIPTFILES_PATH);
  840.                     if(LANGUAGE == 1){
  841.                         format(string,sizeof(string), "Aktuelles Model %d\nGib ein neues Modell ein!", dini_Int(path,"SUPVEH_VEHICLEMODEL"));
  842.                         SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "Allgemeine Einstellungen", string, "Speichern", "Zurück");
  843.                     }
  844.                     if(LANGUAGE == 2){
  845.                         format(string,sizeof(string), "Current model %d\nPlease insert a new model", dini_Int(path,"SUPVEH_VEHICLEMODEL"));
  846.                         SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "General Settings", string, "Save", "Back");
  847.                     }
  848.                     gSettingsStep[playerid] = 4;
  849.                 }
  850.             }
  851.         }
  852.         case DIALOG_EDIT_G_SETTINGS:{
  853.             if(!response){
  854.                 return ShowGeneralSettings(playerid);
  855.             }
  856.             new path[64], string[256];
  857.             format(path,sizeof(path), "%s/settings.ini", SCRIPTFILES_PATH);
  858.             switch(gSettingsStep[playerid]){
  859.                 case 0:{//MAX_WARNINGS
  860.                     if(strval(inputtext) < 0 || isnull(inputtext)){
  861.                         if(LANGUAGE == 1){
  862.                             SCM(playerid, C_ERROR, "Du kannst keinen Wert unter 0 eingeben!");
  863.                             format(string,sizeof(string), "Anzahl von maximalen Warnings %d\nGib einen neuen Wert ein.", dini_Int(path, "MAX_WARNINGS"));
  864.                             SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "Allgemeine Einstellungen", string, "Speichern", "Zurück");
  865.                             gSettingsStep[playerid] = 0;
  866.                         }
  867.                         if(LANGUAGE == 2){
  868.                             SCM(playerid, C_ERROR, "You can't insert a value under 0!");
  869.                             format(string,sizeof(string), "Number of maximum warnings %d\nInsert a new value.", dini_Int(path, "MAX_WARNINGS"));
  870.                             SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "General Settings", string, "Save", "Back");
  871.                             gSettingsStep[playerid] = 0;
  872.                         }
  873.                     }
  874.                     dini_IntSet(path, "MAX_WARNINGS", strval(inputtext));
  875.                     if(LANGUAGE == 1){
  876.                         SCM(playerid, C_INFO, "Maximale Anzahl geändert!");
  877.                     }
  878.                     if(LANGUAGE == 2){
  879.                         SCM(playerid, C_INFO, "Maxmimum warnings changed!");
  880.                     }
  881.                     gSettingsStep[playerid] = -1;
  882.                     MAX_WARNINGS = strval(inputtext);
  883.                     return ShowGeneralSettings(playerid);
  884.                 }
  885.                 case 1:{//STACK_WARNINGS
  886.                     if(LANGUAGE == 1){
  887.                         if(!strcmp(inputtext, "JA")){
  888.                             dini_IntSet(path, "STACK_WARNINGS", 1);
  889.                             SCM(playerid,C_INFO,"Verwarnungen werden nun gestackt!");
  890.                             gSettingsStep[playerid] = -1;
  891.                             STACK_WARNINGS = 1;
  892.                             return ShowGeneralSettings(playerid);
  893.                         }else if(!strcmp(inputtext, "NEIN")){
  894.                             dini_IntSet(path, "STACK_WARNINGS", 0);
  895.                             SCM(playerid,C_INFO,"Verwarnungen werden nicht mehr gestackt!");
  896.                             gSettingsStep[playerid] = -1;
  897.                             STACK_WARNINGS = 0;
  898.                             return ShowGeneralSettings(playerid);
  899.                         }else{
  900.                             SCM(playerid, C_ERROR, "Bitte gib JA oder NEIN ein!");
  901.                             format(string,sizeof(string), "Sollen Verwarnungen Stacken? %s\nGib JA zum aktivieren oder NEIN zum deaktivieren ein", StackWarningsWord());
  902.                             SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "Allgemeine Einstellungen", string, "Speichern", "Zurück");
  903.                         }
  904.                     }
  905.                     if(LANGUAGE == 2){
  906.                         if(!strcmp(inputtext, "YES")){
  907.                             dini_IntSet(path, "STACK_WARNINGS", 1);
  908.                             SCM(playerid,C_INFO,"Warnings are now stacked!");
  909.                             gSettingsStep[playerid] = -1;
  910.                             STACK_WARNINGS = 1;
  911.                             return ShowGeneralSettings(playerid);
  912.                         }else if(!strcmp(inputtext, "NO")){
  913.                             dini_IntSet(path, "STACK_WARNINGS", 0);
  914.                             SCM(playerid,C_INFO,"Warnings are no longer stacked!");
  915.                             gSettingsStep[playerid] = -1;
  916.                             STACK_WARNINGS = 0;
  917.                             return ShowGeneralSettings(playerid);
  918.                         }else{
  919.                             SCM(playerid, C_ERROR, "Please insert YES or NO!");
  920.                             format(string,sizeof(string), "Should warnings stack? %s\nType YES to activate or NO to deactivate.", StackWarningsWord());
  921.                             SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "General Settings", string, "Save", "Back");
  922.                         }
  923.                     }
  924.                 }
  925.                 case 2:{//LOOS_WARNINGS_TIMER
  926.                     if(strval(inputtext) < 1 || isnull(inputtext)){
  927.                         if(LANGUAGE == 1){
  928.                             SCM(playerid, C_ERROR, "ERROR: Du hast nichts eingegeben oder einen Wert unter einer Minute!");
  929.                             format(string,sizeof(string), "Aktueller Timer zum abbauen von Verwarnungen %d Minuten\nGib eine neue Zeit in Minuten ein", LOOS_WARNINGS_TIMER/60000);
  930.                             SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "Allgemeine Einstellungen", string, "Speichern", "Zurück");
  931.                         }
  932.                         if(LANGUAGE == 2){
  933.                             SCM(playerid, C_ERROR, "ERROR: You type nothing in or a value under one minute!");
  934.                             format(string,sizeof(string), "Current timer to reduce warnings %d minutes\nPlease insert a new time in minutes.", LOOS_WARNINGS_TIMER/60000);
  935.                             SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "General Settings", string, "Save", "Back");
  936.                         }
  937.                         return 1;
  938.                     }
  939.                     if(LANGUAGE == 1){
  940.                         SCM(playerid, C_INFO, "Zeit wurde neu eingestellt!");
  941.                     }
  942.                     if(LANGUAGE == 2){
  943.                         SCM(playerid, C_INFO, "Time hase been changed!");
  944.                     }
  945.                     dini_IntSet(path,"LOOS_WARNINGS_TIMER",strval(inputtext)*60000);
  946.                     LOOS_WARNINGS_TIMER = strval(inputtext)*60000;
  947.                     gSettingsStep[playerid] = -1;
  948.                     return ShowGeneralSettings(playerid);
  949.                 }
  950.                 case 3:{//LANGUAGE
  951.                     if(LANGUAGE == 1){
  952.                         if(!strcmp(inputtext, "DE")){
  953.                             dini_IntSet(path,"LANGUAGE",1);
  954.                             SCM(playerid,C_INFO,"Du hast die Sprache auf Deutsch eingestellt!");
  955.                         }else if(!strcmp(inputtext, "EN")){
  956.                             dini_IntSet(path,"LANGUAGE",2);
  957.                             SCM(playerid,C_INFO,"Du hast die Sprache auf Englisch eingestellt!");
  958.                         }else{
  959.                             SCM(playerid, C_ERROR, "Bitte gib DE oder EN ein!");
  960.                             format(string,sizeof(string), "Aktuelle Sprache %s\nGibt DE für Deutsch oder EN für Englisch ein!", LanguageWord());
  961.                             SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "Allgemeine Einstellungen", string, "Speichern", "Zurück");
  962.                         }
  963.                     }
  964.                     if(LANGUAGE == 2){
  965.                         if(!strcmp(inputtext, "DE")){
  966.                             dini_IntSet(path,"LANGUAGE",1);
  967.                             SCM(playerid,C_INFO,"You changed the language to German!");
  968.                         }else if(!strcmp(inputtext, "EN")){
  969.                             dini_IntSet(path,"LANGUAGE",2);
  970.                             SCM(playerid,C_INFO,">ou changed the Language to English!");
  971.                         }else{
  972.                             SCM(playerid, C_ERROR, "Please insert DE or EN");
  973.                             format(string,sizeof(string), "Aktuelle Sprache %s\nGibt DE für Deutsch oder EN für Englisch ein!", LanguageWord());
  974.                             SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "Allgemeine Einstellungen", string, "Speichern", "Zurück");
  975.                         }
  976.                     }
  977.                     LANGUAGE = dini_Int(path,"LANGUAGE");
  978.                     gSettingsStep[playerid] = -1;
  979.                     return ShowGeneralSettings(playerid);
  980.                 }
  981.                 case 4:{//SUPVEH_VEHICLEMODEL 400 - 611
  982.                     if(LANGUAGE == 1){
  983.                         if(strval(inputtext) < 400 || strval(inputtext) > 611){
  984.                             SCM(playerid, C_ERROR, "Gib ein Model zwischen 400 und 611 ein!");
  985.                             format(string,sizeof(string), "Aktuelles Model %d\nGib ein neues Modell ein!", dini_Int(path,"SUPVEH_VEHICLEMODEL"));
  986.                             return SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "Allgemeine Einstellungen", string, "Speichern", "Zurück");
  987.                         }
  988.                         dini_IntSet(path, "SUPVEH_VEHICLEMODEL", strval(inputtext));
  989.                         SCM(playerid, C_INFO, "Du hast das Model geändert!");
  990.                         gSettingsStep[playerid] = -1;
  991.                         return ShowGeneralSettings(playerid);
  992.                     }
  993.                     if(LANGUAGE == 2){
  994.                         if(strval(inputtext) < 400 || strval(inputtext) > 611){
  995.                             SCM(playerid, C_ERROR, "Invalid model! Insert a model between 400 an 611");
  996.                             format(string,sizeof(string), "Current model %d\nPlease insert a new model", dini_Int(path,"SUPVEH_VEHICLEMODEL"));
  997.                             return SPD(playerid, DIALOG_EDIT_G_SETTINGS, DIALOG_STYLE_INPUT, "General Settings", string, "Save", "Back");
  998.                         }
  999.                         dini_IntSet(path, "SUPVEH_VEHICLEMODEL", strval(inputtext));
  1000.                         SCM(playerid, C_INFO, "You changed the Model!");
  1001.                         gSettingsStep[playerid] = -1;
  1002.                         return ShowGeneralSettings(playerid);
  1003.                     }
  1004.                 }
  1005.             }
  1006.         }
  1007.         case DIALOG_EDIT_RANKS:{
  1008.             if(!response){
  1009.                 return ShowSettingsMenu(playerid);
  1010.             }
  1011.             if(listitem != -1){
  1012.                 new path[64], string[256];
  1013.                 format(path, sizeof(path), "%s/rangNames.ini",SCRIPTFILES_PATH);
  1014.                 if(LANGUAGE == 1){
  1015.                     format(string,sizeof(string), "RANG_%d", listitem+1);
  1016.                     format(string,sizeof(string), "Aktueller Rangname: %s\nGebe nun einen neuen Namen ein.", dini_Get(path, string));
  1017.                     SPD(playerid, DIALOG_EDIT_RANKS_INPUT, DIALOG_STYLE_INPUT, "Adminränge editieren", string, "Speichern", "Zurück");
  1018.                     SetPVarInt(playerid, "RANK_EDIT_NUMBER", listitem+1);
  1019.                 }
  1020.                 if(LANGUAGE == 2){
  1021.                     format(string,sizeof(string), "RANG_%d", listitem+1);
  1022.                     format(string,sizeof(string), "Current rank name: %s\nPlease insert a new name.", dini_Get(path, string));
  1023.                     SPD(playerid, DIALOG_EDIT_RANKS_INPUT, DIALOG_STYLE_INPUT, "Edit admin ranks", string, "Save", "Back");
  1024.                     SetPVarInt(playerid, "RANK_EDIT_NUMBER", listitem+1);
  1025.                 }
  1026.             }
  1027.         }
  1028.         case DIALOG_EDIT_RANKS_INPUT:{
  1029.             if(!response){
  1030.                 new string[256], path[64], key[10];
  1031.                 format(path,sizeof(path), "%s/rangNames.ini",SCRIPTFILES_PATH);
  1032.                 for(new i = 0; i<MAX_ADMINLEVEL; i++){
  1033.                     format(key,sizeof(key), "RANG_%d", i+1);
  1034.                     if(i == 0){
  1035.                         format(string,sizeof(string), "%d. %s\n",i+1, dini_Get(path,key));
  1036.                     }else format(string,sizeof(string), "%s\n%d. %s\n",string,i+1, dini_Get(path,key));
  1037.                 }
  1038.                 if(LANGUAGE == 1)return SPD(playerid, DIALOG_EDIT_RANKS, DIALOG_STYLE_LIST, "Adminränge editieren", string, "Editieren", "Zurück");
  1039.                 if(LANGUAGE == 2)return SPD(playerid, DIALOG_EDIT_RANKS, DIALOG_STYLE_LIST, "Edit admin ranks", string, "Edit", "Back");
  1040.             }
  1041.             new key[10], path[64];
  1042.             format(key,sizeof(key), "RANG_%d", GetPVarInt(playerid, "RANK_EDIT_NUMBER"));
  1043.             format(path, sizeof(path), "%s/rangNames.ini",SCRIPTFILES_PATH);
  1044.             dini_Set(path, key, inputtext);
  1045.             SCM(playerid, C_INFO, "Rangname geändert.");
  1046.             new string[256];
  1047.             format(path,sizeof(path), "%s/rangNames.ini",SCRIPTFILES_PATH);
  1048.             for(new i = 0; i<MAX_ADMINLEVEL; i++){
  1049.                 format(key,sizeof(key), "RANG_%d", i+1);
  1050.                 if(i == 0){
  1051.                     format(string,sizeof(string), "%d. %s\n",i+1, dini_Get(path,key));
  1052.                 }else format(string,sizeof(string), "%s\n%d. %s\n",string,i+1, dini_Get(path,key));
  1053.             }
  1054.             if(LANGUAGE == 1)return SPD(playerid, DIALOG_EDIT_RANKS, DIALOG_STYLE_LIST, "Adminränge editieren", string, "Editieren", "Zurück");
  1055.             if(LANGUAGE == 2)return SPD(playerid, DIALOG_EDIT_RANKS, DIALOG_STYLE_LIST, "Edit admin ranks", string, "Edit", "Back");
  1056.         }
  1057.         case DIALOG_EDIT_LEVEL:{
  1058.             if(!response){
  1059.                 return ShowSettingsMenu(playerid);
  1060.             }
  1061.             new path[64], key[24], rName[25];
  1062.             format(path, sizeof(path), "%s/settings.ini",SCRIPTFILES_PATH);
  1063.             dini_IntSet(path, "MAX_ADMINLEVEL", strval(inputtext));
  1064.             MAX_ADMINLEVEL = strval(inputtext);
  1065.             format(path, sizeof(path), "%s/rangNames.ini", SCRIPTFILES_PATH);
  1066.             for(new i = 0; i<MAX_ADMINLEVEL; i++){
  1067.                 format(key, sizeof(key), "RANG_%d", i+1);
  1068.                 format(rName, sizeof(rName), "%s", dini_Get(path, key));
  1069.                 if(!isnull(rName))continue;
  1070.                 if(LANGUAGE == 1){
  1071.                     dini_Set(path, key, "BITTE NAMEN EINGEBEN!");
  1072.                     continue;
  1073.                 }
  1074.                 if(LANGUAGE == 2){
  1075.                     dini_Set(path, key, "PLEASE INSERT NAME!");
  1076.                     continue;
  1077.                 }
  1078.             }
  1079.             isAdmin[playerid] = MAX_ADMINLEVEL;
  1080.             format(path, sizeof(path), "%s/playerAdmin.ini", SCRIPTFILES_PATH);
  1081.             format(key, sizeof(key), "%s", GetName(playerid));
  1082.             dini_IntSet(path, key, MAX_ADMINLEVEL);
  1083.             if(LANGUAGE == 1){
  1084.                 SCM(playerid, C_INFO, "Maximales Adminlevel angepasst.");
  1085.             }
  1086.             else if(LANGUAGE == 2){
  1087.                 SCM(playerid, C_INFO, "Max adminlevel edited.");
  1088.             }
  1089.             return ShowSettingsMenu(playerid);
  1090.         }
  1091.     }
  1092.     return 1;
  1093. }
  1094.  
  1095. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1096. {
  1097.     return 1;
  1098. }
  1099.  
  1100. public LooseWarnings(playerid){
  1101.     if(playerWarnings[playerid] != 0){
  1102.         playerWarnings[playerid]-=1;
  1103.         SCM(playerid, C_INFO, "Du hast eine Verwarnung abgebaut!");
  1104.     }
  1105.     if(playerCurrentWarnings[playerid] != 0){
  1106.         playerCurrentWarnings[playerid]-=1;
  1107.         SCM(playerid, C_INFO, "Du hast eine Verwarnung abgebaut!");
  1108.     }
  1109.     return 1;
  1110. }
  1111.  
  1112. public KickPlayer(playerid){
  1113.     Kick(playerid);
  1114.     return 1;
  1115. }
  1116.  
  1117. public RestartServer(){
  1118.     switch(restartStage){
  1119.         case 0:{
  1120.             restartTimer = SetTimer("RestartServer", 1000, true);
  1121.             if(LANGUAGE == 1){
  1122.                 GameTextForAll("~y~Server wird in 3 Sekunden neugestartet", 1000, 6);
  1123.             }
  1124.             if(LANGUAGE == 2){
  1125.                 GameTextForAll("~y~Server will be restartet in 3 seconds", 1000, 6);
  1126.             }
  1127.             restartStage = 1;
  1128.         }
  1129.         case 1:{
  1130.             if(LANGUAGE == 1){
  1131.                 GameTextForAll("~y~Server wird in 2 Sekunden neugestartet", 1000, 6);
  1132.             }
  1133.             if(LANGUAGE == 2){
  1134.                 GameTextForAll("~y~Server will be restartet in 2 seconds", 1000, 6);
  1135.             }
  1136.             restartStage = 2;
  1137.         }
  1138.         case 2:{
  1139.             if(LANGUAGE == 1){
  1140.                 GameTextForAll("~y~Server wird in 1 Sekunden neugestartet", 1000, 6);
  1141.             }
  1142.             if(LANGUAGE == 2){
  1143.                 GameTextForAll("~y~Server will be restartet in 1 seconds", 1000, 6);
  1144.             }
  1145.             restartStage = 3;
  1146.         }
  1147.         case 3:{
  1148.             restartStage = 0;
  1149.             KillTimer(restartTimer);
  1150.             if(LANGUAGE == 1){
  1151.                 GameTextForAll("~y~Server wird neugestartet", 5000, 6);
  1152.                 SendRconCommand("gmx");
  1153.             }
  1154.             if(LANGUAGE == 2){
  1155.                 GameTextForAll("~y~Server restart!", 5000, 6);
  1156.                 SendRconCommand("gmx");
  1157.             }
  1158.         }
  1159.     }
  1160.     return 1;
  1161. }
  1162.  
  1163. public ResetVehicles(){
  1164.     switch(resetStage){
  1165.         case 0:{
  1166.             resetVehTimer = SetTimer("ResetVehicles", 1000, true);
  1167.             if(LANGUAGE == 1){
  1168.                 GameTextForAll("~r~Fahrzeuge werden resettet in 3", 1000, 6);
  1169.             }
  1170.             if(LANGUAGE == 2){
  1171.                 GameTextForAll("~r~Vehicles will be reset in 3", 1000, 6);
  1172.             }
  1173.             resetStage = 1;
  1174.         }
  1175.         case 1:{
  1176.             if(LANGUAGE == 1){
  1177.                 GameTextForAll("~r~Fahrzeuge werden resettet in 2", 1000, 6);
  1178.             }
  1179.             if(LANGUAGE == 2){
  1180.                 GameTextForAll("~r~Vehicles will be reset in 2", 1000, 6);
  1181.             }
  1182.             resetStage = 2;
  1183.         }
  1184.         case 2:{
  1185.             if(LANGUAGE == 1){
  1186.                 GameTextForAll("~r~Fahrzeuge werden resettet in 1", 1000, 6);
  1187.             }
  1188.             if(LANGUAGE == 2){
  1189.                 GameTextForAll("~r~Vehicles will be reset in 1", 1000, 6);
  1190.             }
  1191.             resetStage = 3;
  1192.         }
  1193.         case 3:{
  1194.             if(LANGUAGE == 1){
  1195.                 GameTextForAll("~r~Fahrzeuge werden resettet", 10000, 6);
  1196.             }
  1197.             if(LANGUAGE == 2){
  1198.                 GameTextForAll("~r~Vehicles are reset", 10000, 6);
  1199.             }
  1200.             for(new i = 0; i<GetVehiclePoolSize(); i++){
  1201.                 if(IsBodyInVehicle(i))continue;
  1202.                 SetVehicleToRespawn(i);
  1203.             }
  1204.             resetStage = 0;
  1205.             KillTimer(resetVehTimer);
  1206.         }
  1207.     }
  1208.     return 1;
  1209. }
  1210.  
  1211. stock IsBodyInVehicle(vehicleid){
  1212.     for(new i; i<MAX_PLAYERS; i++){
  1213.         if(IsPlayerInVehicle(i,vehicleid)){
  1214.             return true;
  1215.         }
  1216.     }
  1217.     return false;
  1218. }
  1219.  
  1220. stock ShowCurrentAccesLevelDialogE(playerid, const accessName[]){
  1221.     if(LANGUAGE == 1){
  1222.         new string[250];
  1223.         format(string,sizeof(string), "Das Zugriffslevel darf nicht 0 oder über %d sein!", MAX_ADMINLEVEL);
  1224.         SCM(playerid, C_ERROR, string);
  1225.         format(string,sizeof(string), "Aktuelles Zugriffslevel: %d\nGebe nun ein neues Zugriffslevel ein.",CheckUsableStatus(accessName));
  1226.         SPD(playerid, DIALOG_CHANGE_PERMISSION, DIALOG_STYLE_INPUT, "Zugriffslevel bearbeiten", string, "Speichern", "Zurück");
  1227.     }
  1228.     if(LANGUAGE == 2){
  1229.         new string[250];
  1230.         format(string,sizeof(string), "The access level cannot be 0 or above %d!", MAX_ADMINLEVEL);
  1231.         SCM(playerid, C_ERROR, string);
  1232.         format(string,sizeof(string), "Current access level: %d\nPlease insert a new access level.",CheckUsableStatus(accessName));
  1233.         SPD(playerid, DIALOG_CHANGE_PERMISSION, DIALOG_STYLE_INPUT, "Edit access level", string, "Save", "Back");
  1234.     }
  1235.     return 1;
  1236. }
  1237.  
  1238. stock ShowCurrentAccessLevelDialog(playerid, const accessName[]){
  1239.     if(LANGUAGE == 1){
  1240.         new string[128];
  1241.         format(string,sizeof(string), "Aktuelles Zugriffslevel: %d\nGebe nun ein neues Zugriffslevel ein.",CheckUsableStatus(accessName));
  1242.         return SPD(playerid, DIALOG_CHANGE_PERMISSION, DIALOG_STYLE_INPUT, "Zugriffslevel bearbeiten", string, "Speichern", "Zurück");
  1243.     }
  1244.     if(LANGUAGE == 2){
  1245.         new string[128];
  1246.         format(string,sizeof(string), "Current access level: %d\nPlease insert a new access level.",CheckUsableStatus(accessName));
  1247.         return SPD(playerid, DIALOG_CHANGE_PERMISSION, DIALOG_STYLE_INPUT, "Edit access level", string, "Save", "Back");
  1248.     }
  1249.     return 1;
  1250. }
  1251.  
  1252. stock ShowPermissionDialog(playerid){
  1253.     if(LANGUAGE == 1){
  1254.         new string[1024];
  1255.         format(string,sizeof(string),"Bezeichnung\tZugriffslevel\nKICKPLAYER\t%d\nBANPLAYER\t%d\nTIMEBAN\t%d\nUNBAN\t%d\nTELEPORTPLAYER\t%d\nSETINT\t%d\n\
  1256.         SETVW\t%d\nSUPVEH\t%d\nSPECTATE\t%d\nSETHEALTH\t%d\nSETARMOUR\t%d\nREPVEH\t%d\nSETWEATHER\t%d\nKILLALL\t%d\nRESETVEH\t%d\nDELVEH\t%d\nRESPAWNVEH\t%d\n\
  1257.         WARNPLAYER\t%d\nGETVID\t%d\nEJECTPLAYER\t%d\nFREEZEPLAYER\t%d\nSLAPPLAYER\t%d\nCLEARCHAT\t%d\nMAKEADMIN\t%d\nGETTICKET\t%d\nADMINCHAT\t%d\nSPAWNNEWVEH\t%d\n\
  1258.         RESTARTSERVER\t%d",
  1259.         CheckUsableStatus("KICKPLAYER_USABLE"),CheckUsableStatus("BANPLAYER_USABLE"),CheckUsableStatus("TIMEBANPLAYER_USABLE"),CheckUsableStatus("UNBANPLAYER_USABLE"),
  1260.         CheckUsableStatus("TELEPORTPLAYER_USABLE"),CheckUsableStatus("SETINT_USABLE"),CheckUsableStatus("SETVW_USABLE"),CheckUsableStatus("SUPVEH_USABLE"),
  1261.         CheckUsableStatus("SPECTATE_USABLE"),CheckUsableStatus("SETHEALTH_USABLE"),CheckUsableStatus("SETARMOUR_USABLE"),CheckUsableStatus("REPVEH_USABLE"),
  1262.         CheckUsableStatus("SETWEATHER_USABLE"),CheckUsableStatus("KILLALL_USABLE"),CheckUsableStatus("RESETVEH_USABLE"),CheckUsableStatus("DELVEH_USABLE"),
  1263.         CheckUsableStatus("SPAWNVEH_USABLE"),CheckUsableStatus("GETVID_USABLE"),CheckUsableStatus("WARNPLAYER_USABLE"),CheckUsableStatus("EJECTPLAYER_USABLE"),
  1264.         CheckUsableStatus("FREEZEPLAYER_USABLE"), CheckUsableStatus("SLAPPLAYER_USABLE"), CheckUsableStatus("CLEARCHAT_USABLE"),CheckUsableStatus("MAKEADMIN_USABLE"),CheckUsableStatus("GETTICKET_USABLE"),
  1265.         CheckUsableStatus("ADMINCHAT_USABLE"),CheckUsableStatus("SPAWNNEWVEH_USABLE"), CheckUsableStatus("RESTARTSERVER_USABLE"));
  1266.         return SPD(playerid, DIALOG_SET_PERMISSIONS, DIALOG_STYLE_TABLIST_HEADERS, "Zugriffsrechte",string,"Ändern", "Zurück");
  1267.     }
  1268.     if(LANGUAGE == 2){
  1269.         new string[1024];
  1270.         format(string,sizeof(string),"Designation\taccess level\nKICKPLAYER\t%d\nBANPLAYER\t%d\nTIMEBAN\t%d\nUNBAN\t%d\nTELEPORTPLAYER\t%d\nSETINT\t%d\n\
  1271.         SETVW\t%d\nSUPVEH\t%d\nSPECTATE\t%d\nSETHEALTH\t%d\nSETARMOUR\t%d\nREPVEH\t%d\nSETWEATHER\t%d\nKILLALL\t%d\nRESETVEH\t%d\nDELVEH\t%d\nRESPAWNVEH\t%d\n\
  1272.         WARNPLAYER\t%d\nGETVID\t%d\nEJECTPLAYER\t%d\nFREEZEPLAYER\t%d\nSLAPPLAYER\t%d\nCLEARCHAT\t%d\nMAKEADMIN\t%d\nGETTICKET\t%d\nADMINCHAT\t%d\nSPAWNNEWVEH\t%d\n\
  1273.         RESTARTSERVER\t%d",
  1274.         CheckUsableStatus("KICKPLAYER_USABLE"),CheckUsableStatus("BANPLAYER_USABLE"),CheckUsableStatus("TIMEBANPLAYER_USABLE"),CheckUsableStatus("UNBANPLAYER_USABLE"),
  1275.         CheckUsableStatus("TELEPORTPLAYER_USABLE"),CheckUsableStatus("SETINT_USABLE"),CheckUsableStatus("SETVW_USABLE"),CheckUsableStatus("SUPVEH_USABLE"),
  1276.         CheckUsableStatus("SPECTATE_USABLE"),CheckUsableStatus("SETHEALTH_USABLE"),CheckUsableStatus("SETARMOUR_USABLE"),CheckUsableStatus("REPVEH_USABLE"),
  1277.         CheckUsableStatus("SETWEATHER_USABLE"),CheckUsableStatus("KILLALL_USABLE"),CheckUsableStatus("RESETVEH_USABLE"),CheckUsableStatus("DELVEH_USABLE"),
  1278.         CheckUsableStatus("SPAWNVEH_USABLE"),CheckUsableStatus("GETVID_USABLE"),CheckUsableStatus("WARNPLAYER_USABLE"),CheckUsableStatus("EJECTPLAYER_USABLE"),
  1279.         CheckUsableStatus("FREEZEPLAYER_USABLE"), CheckUsableStatus("SLAPPLAYER_USABLE"), CheckUsableStatus("CLEARCHAT_USABLE"),CheckUsableStatus("MAKEADMIN_USABLE"),CheckUsableStatus("GETTICKET_USABLE"),
  1280.         CheckUsableStatus("ADMINCHAT_USABLE"),CheckUsableStatus("SPAWNNEWVEH_USABLE"), CheckUsableStatus("RESTARTSERVER_USABLE"));
  1281.         return SPD(playerid, DIALOG_SET_PERMISSIONS, DIALOG_STYLE_TABLIST_HEADERS, "Access level",string,"Change", "Back");
  1282.     }
  1283.     return 1;
  1284. }
  1285.  
  1286. stock ShowGeneralSettings(playerid){
  1287.     if(LANGUAGE == 1){
  1288.         new string[1024];
  1289.         format(string,sizeof(string), "Bezeichnung\tWert\nMAX WARNINGS\t%d\nSTACK WARNINGS\t%s\nLOOS WARNING TIMER\t%d Minuten\nLANGUAGE\t%s\nSUPVEH MODEL\t%d",
  1290.         CheckUsableStatus("MAX_WARNINGS"),StackWarningsWord(),CheckUsableStatus("LOOS_WARNINGS_TIMER")/60000,LanguageWord(),CheckUsableStatus("SUPVEH_VEHICLEMODEL"));
  1291.         return SPD(playerid, DIALOG_CHANGE_G_SETTINGS, DIALOG_STYLE_TABLIST_HEADERS, "Allgemeine Einstellungen", string, "Ändern", "Zurück");
  1292.     }
  1293.     if(LANGUAGE == 2){
  1294.         new string[1024];
  1295.         format(string,sizeof(string), "Description\tValue\nMAX WARNINGS\t%d\nSTACK WARNINGS\t%s\nLOOS WARNING TIMER\t%d minutes\nLANGUAGE\t%s\nSUPVEH MODEL\t%d",
  1296.         CheckUsableStatus("MAX_WARNINGS"),StackWarningsWord(),CheckUsableStatus("LOOS_WARNINGS_TIMER")/60000,LanguageWord(),CheckUsableStatus("SUPVEH_VEHICLEMODEL"));
  1297.         return SPD(playerid, DIALOG_CHANGE_G_SETTINGS, DIALOG_STYLE_TABLIST_HEADERS, "General Settings", string, "Change", "Back");
  1298.     }
  1299.     return 1;
  1300. }
  1301.  
  1302. stock StackWarningsWord(){
  1303.     new string[5];
  1304.     if(STACK_WARNINGS == 1){
  1305.         if(LANGUAGE == 1){
  1306.             format(string,sizeof(string),"JA");
  1307.         }
  1308.         if(LANGUAGE == 2){
  1309.             format(string,sizeof(string),"YES");
  1310.         }
  1311.     }
  1312.     if(STACK_WARNINGS == 0){
  1313.         if(LANGUAGE == 1){
  1314.             format(string,sizeof(string),"NEIN");
  1315.         }
  1316.         if(LANGUAGE == 2){
  1317.             format(string,sizeof(string),"NO");
  1318.         }
  1319.     }
  1320.     return string;
  1321. }
  1322.  
  1323. stock LanguageWord(){
  1324.     new string[3];
  1325.     if(LANGUAGE == 1){format(string,sizeof(string),"DE");}
  1326.     if(LANGUAGE == 2){format(string,sizeof(string),"EN");}
  1327.     return string;
  1328. }
  1329.  
  1330. stock ShowSettingsMenu(playerid){
  1331.     if(LANGUAGE == 1){
  1332.         SPD(playerid, DIALOG_SHOW_SETTINGS_MENU, DIALOG_STYLE_LIST, "Einstellungen", "1. Admin werden\n2. Adminränge editieren\n3. Anzahl Adminränge bearbeiten\n4. Zugriffslevel bearbeiten\n5. Allgemeine Einstellungen", "Wählen", "Abbrechen");
  1333.     }
  1334.     if(LANGUAGE == 2){
  1335.         SPD(playerid, DIALOG_SHOW_SETTINGS_MENU, DIALOG_STYLE_LIST, "Settings", "1. Become an admin\n2.Edit admin ranks\n3. Edit max. admin ranks\n4. Edit access level\n5. Genereal Settings", "Choose", "Abort");
  1336.     }
  1337.     return 1;
  1338. }
  1339.  
  1340. stock GetRangName(playerid){
  1341.     new path[64], string[64];
  1342.     if(isAdmin[playerid] == 0){
  1343.         format(string, sizeof(string), "KEIN ADMIN");
  1344.         return string;
  1345.     }
  1346.     format(path, sizeof(path), "%s/rangNames.ini",SCRIPTFILES_PATH);
  1347.     if(!fexist(path)){
  1348.         format(string, sizeof(string), "ERROR");
  1349.         return string;
  1350.     }
  1351.     format(string, sizeof(string), "RANG_%d",isAdmin[playerid]);
  1352.     format(string,sizeof(string), "%s", dini_Get(path, string));
  1353.     return string;
  1354. }
  1355.  
  1356. stock GetFTime(){
  1357.     new string[16], hour, minute, second;
  1358.     gettime(hour,minute,second);
  1359.     format(string,sizeof(string), "%02d:%02d:%02d",hour,minute,second);
  1360.     return string;
  1361. }
  1362.  
  1363. stock GetFDate(){
  1364.     new string[16], day, month, year;
  1365.     getdate(year,month,day);
  1366.     if(LANGUAGE == 1){
  1367.         format(string,sizeof(string), "%02d.%02d.%d", day, month, year);
  1368.     }else if(LANGUAGE == 2){
  1369.         format(string,sizeof(string), "%02d/%02d/%d", year, month, day);
  1370.     }
  1371.     return string;
  1372. }
  1373.  
  1374. stock GetTimestamp(){
  1375.     new hour, minute, second;
  1376.     return gettime(hour,minute,second);
  1377. }
  1378.  
  1379. stock WriteTicketLock(const logString[]){
  1380.     new path[64];
  1381.     format(path, sizeof(path), "%s/support/ticketlog_%s.txt",SCRIPTFILES_PATH, GetFDate());
  1382.     new File:aLog = fopen(path, io_append);
  1383.     new formatString[256];
  1384.     format(formatString, sizeof(formatString), "[%s - %s] %s\r\n", GetFDate(), GetFTime(), logString);
  1385.     fwrite(aLog, formatString);
  1386.     fclose(aLog);
  1387.     return 1;
  1388. }
  1389.  
  1390. stock WriteLog(const logString[]){
  1391.     new path[64];
  1392.     format(path, sizeof(path), "%s/logs/adminLog_%s.txt",SCRIPTFILES_PATH, GetFDate());
  1393.     new File:aLog = fopen(path, io_append);
  1394.     new formatString[256];
  1395.     format(formatString, sizeof(formatString), "[%s - %s] %s\r\n", GetFDate(), GetFTime(), logString);
  1396.     fwrite(aLog, formatString);
  1397.     fclose(aLog);
  1398.     return 1;
  1399. }
  1400.  
  1401. stock GetName(playerid){
  1402.     new PlayerName[MAX_PLAYER_NAME];
  1403.     GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
  1404.     return PlayerName;
  1405. }
  1406.  
  1407. stock UpdateAccessLevel(const accessName[], level){
  1408.     new path[64];
  1409.     format(path, sizeof(path), "%s/settings.ini", SCRIPTFILES_PATH);
  1410.     dini_IntSet(path, accessName, level);
  1411.     return 1;
  1412. }
  1413.  
  1414. stock CheckFileStatus(){
  1415.     new path[64];
  1416.     format(path, sizeof(path), "%s/settings.ini",SCRIPTFILES_PATH);
  1417.     if(!fexist(path)){
  1418.         dini_Create(path);
  1419.         dini_IntSet(path, "MAX_ADMINLEVEL", 3);
  1420.         dini_IntSet(path, "MAX_WARNINGS", 3);
  1421.         dini_IntSet(path, "STACK_WARNINGS", 1);
  1422.         dini_IntSet(path, "LOOS_WARNINGS_TIMER", 10*60000);
  1423.         dini_IntSet(path, "LANGUAGE", 1);
  1424.         dini_IntSet(path, "KICKPLAYER_USABLE", 1);
  1425.         dini_IntSet(path, "BANPLAYER_USABLE", 1);
  1426.         dini_IntSet(path, "TIMEBANPLAYER_USABLE", 1);
  1427.         dini_IntSet(path, "UNBANPLAYER_USABLE", 1);
  1428.         dini_IntSet(path, "TELEPORTPLAYER_USABLE", 1);
  1429.         dini_IntSet(path, "SETINT_USABLE", 1);
  1430.         dini_IntSet(path, "SETVW_USABLE", 1);
  1431.         dini_IntSet(path, "SUPVEH_USABLE", 1);
  1432.         dini_IntSet(path, "SUPVEH_VEHICLEMODEL", 411);
  1433.         dini_IntSet(path, "SPECTATE_USABLE", 1);
  1434.         dini_IntSet(path, "SETHEALTH_USABLE", 1);
  1435.         dini_IntSet(path, "SETARMOUR_USABLE", 1);
  1436.         dini_IntSet(path, "REPVEH_USABLE", 1);
  1437.         dini_IntSet(path, "SETWEATHER_USABLE", 1);
  1438.         dini_IntSet(path, "KILLALL_USABLE", 1);
  1439.         dini_IntSet(path, "RESETVEH_USABLE", 1);
  1440.         dini_IntSet(path, "DELVEH_USABLE", 1);
  1441.         dini_IntSet(path, "SPAWNVEH_USABLE", 1);
  1442.         dini_IntSet(path, "GETVID_USABLE", 1);
  1443.         dini_IntSet(path, "WARNPLAYER_USABLE", 1);
  1444.         dini_IntSet(path, "EJECTPLAYER_USABLE", 1);
  1445.         dini_IntSet(path, "FREEZEPLAYER_USABLE", 1);
  1446.         dini_IntSet(path, "SLAPPLAYER_USABLE", 1);
  1447.         dini_IntSet(path, "CLEARCHAT_USABLE", 1);
  1448.         dini_IntSet(path, "MAKEADMIN_USABLE", 1);
  1449.         dini_IntSet(path, "GETTICKET_USABLE", 1);
  1450.         dini_IntSet(path, "ADMINCHAT_USABLE", 1);
  1451.         dini_IntSet(path, "SPAWNNEWVEH_USABLE", 1);
  1452.         dini_IntSet(path, "RESTARTSERVER_USABLE", 1);
  1453.         MAX_ADMINLEVEL = 3;
  1454.         MAX_WARNINGS = 3;
  1455.         LANGUAGE = 1;
  1456.         LOOS_WARNINGS_TIMER = 10*60000;
  1457.         if(LANGUAGE == 1)print("settings.ini war nicht vorhanden und wurde daher neu erstellt");
  1458.         else if(LANGUAGE == 2)print("settings.ini not found. File was createt");
  1459.     }else{
  1460.         MAX_ADMINLEVEL = dini_Int(path, "MAX_ADMINLEVEL");
  1461.         MAX_WARNINGS = dini_Int(path, "MAX_WARNINGS");
  1462.         LANGUAGE = dini_Int(path, "LANGUAGE");
  1463.         LOOS_WARNINGS_TIMER = dini_Int(path, "LOOS_WARNINGS_TIMER");
  1464.         STACK_WARNINGS = 1;
  1465.         if(LANGUAGE == 1)printf("Sprache DE geladen!\nMaximales Adminlevel (%d) wurde geladen!\nMaximale Verwarnungen (%d) geladen!\nVerwarnungs Timer (%d Minuten) geladen!\nVerwarnungen Stacken (%d) geladen!", MAX_ADMINLEVEL, MAX_WARNINGS, LOOS_WARNINGS_TIMER/60000, STACK_WARNINGS);
  1466.         else if(LANGUAGE == 2)printf("Language EN loaded\nMax. adminlevel (%d) loaded!\nMax warnings (%d) loaded!\nVerwarnungs Timer (%d Minuten) geladen!\nVerwarnungen Stacken (%d) geladen!", MAX_ADMINLEVEL, MAX_WARNINGS, LOOS_WARNINGS_TIMER/60000, STACK_WARNINGS);
  1467.     }
  1468.     format(path, sizeof(path), "%s/rangNames.ini",SCRIPTFILES_PATH);
  1469.     if(!fexist(path)){
  1470.         dini_Create(path);
  1471.         dini_Set(path, "RANG_1", "Supporter");
  1472.         dini_Set(path, "RANG_2", "Moderator");
  1473.         dini_Set(path, "RANG_3", "Administrator");
  1474.         if(LANGUAGE == 1)print("rangNames.ini war nicht vorhanden und wurde daher neu erstellt");
  1475.         else if(LANGUAGE == 2)print("rangNames.ini not found. File was createt");
  1476.     }
  1477.     format(path, sizeof(path), "%s/playerAdmin.ini",SCRIPTFILES_PATH);
  1478.     if(!fexist(path)){
  1479.         dini_Create(path);
  1480.         if(LANGUAGE == 1)print("playerAdmin.ini war nicht vorhanden und wurde daher neu erstellt");
  1481.         else if(LANGUAGE == 2)print("playerAdmin.ini not found. File was createt");
  1482.     }
  1483.     format(path, sizeof(path), "%s/warnings.ini", SCRIPTFILES_PATH);
  1484.     if(!fexist(path)){
  1485.         dini_Create(path);
  1486.         if(LANGUAGE == 1)print("warnings.ini war nicht vorhanden und wurde daher neu erstellt");
  1487.         else if(LANGUAGE == 2)print("warnings.ini not found. File was createt");
  1488.     }
  1489.     return 1;
  1490. }
  1491.  
  1492. stock CheckUsableStatus(const search[]){
  1493.     new path[64];
  1494.     format(path,sizeof(path), "%s/settings.ini",SCRIPTFILES_PATH);
  1495.     new status = dini_Int(path, search);
  1496.     return status;
  1497. }
  1498.  
  1499. stock CheckUserBanned(playerid){
  1500.     new path[64];
  1501.     format(path,sizeof(path), "%s/bans/%s_p.ini",SCRIPTFILES_PATH, GetName(playerid));
  1502.     if(dini_Exists(path))return 1;
  1503.     return 0;
  1504. }
  1505.  
  1506. stock CheckUserTimeBanned(playerid){
  1507.     new path[64];
  1508.     format(path,sizeof(path), "%s/bans/%s_t.ini",SCRIPTFILES_PATH, GetName(playerid));
  1509.     if(dini_Exists(path))return 1;
  1510.     return 0;
  1511. }
  1512.  
  1513. stock LoadPlayerAdmin(playerid){
  1514.     new path[64], user[24];
  1515.     format(path,sizeof(path), "%s/playerAdmin.ini",SCRIPTFILES_PATH);
  1516.     format(user,sizeof(user), "%s", GetName(playerid));
  1517.     isAdmin[playerid] = dini_Int(path, user);
  1518.     return 1;
  1519. }
  1520.  
  1521. stock LoadPlayerWarnings(playerid){
  1522.     playerWarnings[playerid] = 0;
  1523.     playerCurrentWarnings[playerid] = 0;
  1524.     new path[64], key[24];
  1525.     format(path,sizeof(path), "%s/warnings.ini",SCRIPTFILES_PATH);
  1526.     format(key,sizeof(key), "%s", GetName(playerid));
  1527.     if(!fexist(path))return 1;
  1528.     playerWarnings[playerid] = dini_Int(path,key);
  1529.     playerWarningTimer[playerid] = SetTimerEx("LooseWarnings", LOOS_WARNINGS_TIMER, true, "i", playerid);
  1530.     return 1;
  1531. }
  1532.  
  1533. stock GetSupVehModel(){
  1534.     new path[64], vModel;
  1535.     format(path,sizeof(path), "%s/settings.ini", SCRIPTFILES_PATH);
  1536.     vModel = dini_Int(path, "SUPVEH_VEHICLEMODEL");
  1537.     return vModel;
  1538. }
  1539.  
  1540. stock IsAnyAdminOnline(){
  1541.     for(new i = 0; i<MAX_PLAYERS; i++){
  1542.         if(isAdmin[i])return 1;
  1543.     }
  1544.     return 0;
  1545. }
  1546.  
  1547. stock SendAdminMessage(const text[]){
  1548.     for(new i = 0; i<MAX_PLAYERS; i++){
  1549.         if(isAdmin[i] == 0)continue;
  1550.         SCM(i, C_INFO, text);
  1551.     }
  1552.     return 1;
  1553. }
  1554.  
  1555. stock HasUserOpenTicket(playerid){
  1556.     if(supportTicket[playerid] == 1)return 1;
  1557.     return 0;
  1558. }
  1559.  
  1560. //BEFEHLE USER
  1561. ocmd:admins(playerid, params[]){
  1562.     new string[250], count = 0;
  1563.     if(LANGUAGE == 1){format(string,sizeof(string), "Zurzeit Online:\n");}
  1564.     if(LANGUAGE == 2){format(string,sizeof(string), "Currently online:\n");}
  1565.     for(new i = 0; i<MAX_PLAYERS; i++){
  1566.         if(isAdmin[i] >= 1){
  1567.             count = 1;
  1568.             format(string,sizeof(string), "%s%s - %s\n", string, GetName(i), GetRangName(i));
  1569.         }else continue;
  1570.     }
  1571.     if(LANGUAGE == 1){
  1572.         if(count != 1){
  1573.             format(string,sizeof(string), "%sZurzeit ist kein Teammitglied online!",string);
  1574.         }
  1575.         return ShowPlayerDialog(playerid, DIALOG_SHOW_ADMINS, DIALOG_STYLE_MSGBOX, "Adminübersicht", string, "Beenden","");
  1576.     }
  1577.     if(LANGUAGE == 2){
  1578.         if(count != 1){
  1579.             format(string,sizeof(string), "%sCurrently is no team member online!",string);
  1580.         }
  1581.         return ShowPlayerDialog(playerid, DIALOG_SHOW_ADMINS, DIALOG_STYLE_MSGBOX, "Adminoverview", string, "Quit","");
  1582.     }
  1583.     return 1;
  1584. }
  1585.  
  1586. ocmd:supchat(playerid, params[]){
  1587.     if(LANGUAGE == 1){
  1588.         if(supportTicket[playerid] != -1)return SCM(playerid, C_ERROR, "Du hast bereits in Supportticket offen! Benutzte /endchat um das Ticket zu schließen!");
  1589.         if(!IsAnyAdminOnline())return SCM(playerid, C_ERROR, "Es kann aktuell kein Ticket angelegt werden, da kein Teammitglied online ist!");
  1590.         new ticketText[256];
  1591.         if(sscanf(params, "s[256]", ticketText))return SCM(playerid, C_HINT, "Benutze: /supchat [text]");
  1592.         if(isnull(ticketText))return SCM(playerid, C_ERROR, "Es wurde nichts eingegeben!");
  1593.         supportTicket[playerid] = 1;
  1594.         format(ticketText,sizeof(ticketText), "%s hat ein Ticket gestellt! Text: %s", GetName(playerid), ticketText);
  1595.         SendAdminMessage(ticketText);
  1596.         format(ticketText,sizeof(ticketText), "Benutzte /getticket [%d] um das Ticket anzunehmen!", playerid);
  1597.         SendAdminMessage(ticketText);
  1598.         SCM(playerid, C_INFO, "Dein Ticket wurde angelegt und es wird sich in kürze ein Teammitglied bei dir melden!");
  1599.         SCM(playerid, C_INFO, "Es kann unter umständen dazu kommen, dass die Beantwortung etwas länger dauert.");
  1600.         SCM(playerid, C_INFO, "Bitte habe etwas geduld und vielen Dank das du bei uns spielst!");
  1601.         format(ticketText,sizeof(ticketText), "%s hat ein Support Ticket eröffnet. Ticket ID [%d]", GetName(playerid), playerid);
  1602.         WriteTicketLock(ticketText);
  1603.     }
  1604.     if(LANGUAGE == 2){
  1605.         if(supportTicket[playerid] != -1)return SCM(playerid, C_ERROR, "You have allready a support ticket. Use /endchat to close the Ticket!");
  1606.         if(!IsAnyAdminOnline())return SCM(playerid, C_ERROR, "There is currently no teammember aviable. The ticket cannot be created!");
  1607.         new ticketText[256];
  1608.         if(sscanf(params, "s[256]", ticketText))return SCM(playerid, C_HINT, "Use: /supchat [text]");
  1609.         if(isnull(ticketText))return SCM(playerid, C_ERROR, "There was no input!");
  1610.         supportTicket[playerid] = 1;
  1611.         format(ticketText,sizeof(ticketText), "%s createt a Ticket! Text: %s", GetName(playerid), ticketText);
  1612.         SendAdminMessage(ticketText);
  1613.         format(ticketText,sizeof(ticketText), "Use /getticket [%d] to accept the Ticket!", playerid);
  1614.         SendAdminMessage(ticketText);
  1615.         SCM(playerid, C_INFO, "Your Ticket has been created and a team member will answer it!");
  1616.         SCM(playerid, C_INFO, "It may happen that the answer takes a little longer.");
  1617.         SCM(playerid, C_INFO, "Please be patient and thank you for playing with us!");
  1618.         format(ticketText,sizeof(ticketText), "%s createt a support ticket. Ticket ID [%d]", GetName(playerid), playerid);
  1619.         WriteTicketLock(ticketText);
  1620.     }
  1621.     return 1;
  1622. }
  1623.  
  1624. ocmd:endchat(playerid){
  1625.     if(inAdminChat[playerid] != -1){//Wenn bereits im Adminchat
  1626.         if(LANGUAGE == 1){
  1627.             new string[250];
  1628.             format(string, sizeof(string), "[TICKET ID: %d] %s hat das Ticket geschlossen.", supportTicket[playerid], GetName(playerid));
  1629.             WriteTicketLock(string);
  1630.             SCM(adminChatID[playerid], C_INFO, string);
  1631.             SCM(playerid, C_INFO, "Du hast das Ticket geschlossen.");
  1632.             adminChatID[adminChatID[playerid]] = -1;
  1633.             adminChatID[playerid] = -1;
  1634.             inAdminChat[playerid] = -1;
  1635.             inAdminChat[adminChatID[playerid]] = -1;
  1636.             supportTicket[adminChatID[playerid]] = -1;
  1637.             supportTicket[playerid] = -1;
  1638.         }
  1639.         if(LANGUAGE == 2){
  1640.             new string[250];
  1641.             format(string, sizeof(string), "[TICKET ID: %d] %s closed the ticket.", supportTicket[playerid], GetName(playerid));
  1642.             WriteTicketLock(string);
  1643.             SCM(adminChatID[playerid], C_INFO, string);
  1644.             SCM(playerid, C_INFO, "You closed the ticket.");
  1645.             adminChatID[adminChatID[playerid]] = -1;
  1646.             adminChatID[playerid] = -1;
  1647.             inAdminChat[playerid] = -1;
  1648.             inAdminChat[adminChatID[playerid]] = -1;
  1649.             supportTicket[adminChatID[playerid]] = -1;
  1650.             supportTicket[playerid] = -1;
  1651.         }
  1652.     }
  1653.     else if(inAdminChat[playerid] == -1 && supportTicket[playerid] != -1){//Wenn noch kein Chat bekommen wurde
  1654.         if(LANGUAGE == 1){
  1655.             new string[250];
  1656.             SCM(playerid, C_INFO, "Du hast dein Ticket geschlossen!");
  1657.             format(string,sizeof(string), "[TICKET ID: %d] %s hat sein Ticket wieder geschlossen!", supportTicket[playerid], GetName(playerid));
  1658.             SendAdminMessage(string);
  1659.             WriteTicketLock(string);
  1660.             supportTicket[playerid] = -1;
  1661.         }
  1662.         if(LANGUAGE == 2){
  1663.             new string[250];
  1664.             SCM(playerid, C_INFO, "You closes your Ticket!");
  1665.             format(string,sizeof(string), "[TICKET ID: %d] %s closed his ticket!", supportTicket[playerid], GetName(playerid));
  1666.             SendAdminMessage(string);
  1667.             WriteTicketLock(string);
  1668.             supportTicket[playerid] = -1;
  1669.         }
  1670.     }
  1671.     return 1;
  1672. }
  1673.  
  1674. //BEFEHLE ADMIN
  1675. ocmd:restartserver(playerid, params[]){
  1676.     if(isAdmin[playerid] < CheckUsableStatus("RESTARTSERVER_USABLE")){
  1677.         if(LANGUAGE == 1)return NotAllowed_DE;
  1678.         if(LANGUAGE == 2)return NotAllowed_EN;
  1679.     }
  1680.     new time;
  1681.     if(LANGUAGE == 1){
  1682.         if(sscanf(params, "d", time))return SCM(playerid, C_HINT, "Benutze: /restartserver [zeit in sekunden]");
  1683.         if(time <= 0)return SCM(playerid, C_ERROR, "Gib eine Zeit über 0 ein!");
  1684.         restartTimer = SetTimer("RestartServer", time * 1000, false);
  1685.         new string[128];
  1686.         format(string,sizeof(string), "~y~Der Server wird in %d Sekunden neugestartet!", time);
  1687.         GameTextForAll(string, 5000, 6);
  1688.     }
  1689.     return 1;
  1690. }
  1691. ocmd:spawnveh(playerid, params[]){
  1692.     if(isAdmin[playerid] < CheckUsableStatus("SPAWNNEWVEH_USABLE")){
  1693.         if(LANGUAGE == 1)return NotAllowed_DE;
  1694.         if(LANGUAGE == 2)return NotAllowed_EN;
  1695.     }
  1696.     new modelID;
  1697.     if(LANGUAGE == 1){
  1698.         if(sscanf(params, "d", modelID))return SCM(playerid, C_HINT, "Benutze: /spawnveh [modelid]");
  1699.         if(modelID < 400 || modelID > 611)return SCM(playerid, C_ERROR, "Ungültige ModelID!");
  1700.         if(IsPlayerInAnyVehicle(playerid))return SCM(playerid, C_ERROR, "Du befindest dich aktuell in einem Fahrzeug!");
  1701.         new Float:X, Float:Y, Float:Z, Float:A;
  1702.         GetPlayerPos(playerid, X, Y, Z);
  1703.         GetPlayerFacingAngle(playerid, A);
  1704.         new vID = CreateVehicle(modelID, X, Y, Z, A, 0, 0, -1, 0);
  1705.         PutPlayerInVehicle(playerid, vID, 0);
  1706.         new string[250];
  1707.         format(string,sizeof(string), "%s %s hat sich ein Fahrzeug gespawnt!", GetRangName(playerid), GetName(playerid));
  1708.         WriteLog(string);
  1709.         SCM(playerid, C_INFO, "Du hast dir ein Fahrzeug gespawnt!");
  1710.     }
  1711.     if(LANGUAGE == 2){
  1712.         if(sscanf(params, "d", modelID))return SCM(playerid, C_HINT, "Use: /spawnveh [modelid]");
  1713.         if(modelID < 400 || modelID > 611)return SCM(playerid, C_ERROR, "Invalid ModelID!");
  1714.         if(IsPlayerInAnyVehicle(playerid))return SCM(playerid, C_ERROR, "You are in a vehicle!");
  1715.         new Float:X, Float:Y, Float:Z, Float:A;
  1716.         GetPlayerPos(playerid, X, Y, Z);
  1717.         GetPlayerFacingAngle(playerid, A);
  1718.         new vID = CreateVehicle(modelID, X, Y, Z, A, 0, 0, -1, 0);
  1719.         PutPlayerInVehicle(playerid, vID, 0);
  1720.         new string[250];
  1721.         format(string,sizeof(string), "%s %s spawned a vehicle!", GetRangName(playerid), GetName(playerid));
  1722.         WriteLog(string);
  1723.         SCM(playerid, C_INFO, "You spawned a vehicle!");
  1724.     }
  1725.     return 1;
  1726. }
  1727.  
  1728. ocmd:a(playerid, params[]){
  1729.     if(isAdmin[playerid] < CheckUsableStatus("ADMINCHAT_USABLE")){
  1730.         if(LANGUAGE == 1)return NotAllowed_DE;
  1731.         if(LANGUAGE == 2)return NotAllowed_EN;
  1732.     }
  1733.     new text[125];
  1734.     if(LANGUAGE == 1){
  1735.         if(sscanf(params, "s[125]", text))return SCM(playerid, C_HINT, "Benutze: /a [text]");
  1736.         format(text,sizeof(text), "*ACHAT %s %s sagt: %s", GetRangName(playerid), GetName(playerid), text);
  1737.         SendAdminMessage(text);
  1738.     }
  1739.     if(LANGUAGE == 2){
  1740.         if(sscanf(params, "s[125]", text))return SCM(playerid, C_HINT, "Use: /a [text]");
  1741.         format(text,sizeof(text), "*ACHAT %s %s say: %s", GetRangName(playerid), GetName(playerid), text);
  1742.         SendAdminMessage(text);
  1743.     }
  1744.     return 1;
  1745. }
  1746. ocmd:getticket(playerid, params[]){
  1747.     if(isAdmin[playerid] < CheckUsableStatus("GETTICKET_USABLE")){
  1748.         if(LANGUAGE == 1)return NotAllowed_DE;
  1749.         if(LANGUAGE == 2)return NotAllowed_EN;
  1750.     }
  1751.     if(inAdminChat[playerid] != -1){
  1752.         if(LANGUAGE == 1)return SCM(playerid, C_ERROR, "Du hast bereits ein Ticket angenommen! Beende dieses erst mit /endchat!");
  1753.         if(LANGUAGE == 2)return SCM(playerid, C_ERROR, "You got allready a ticket! Close this first with /endchat!");
  1754.     }
  1755.     new pID;
  1756.     if(LANGUAGE == 1){
  1757.         if(sscanf(params,"d", pID))return SCM(playerid, C_HINT, "Benutze: /getticket [id]");
  1758.         if(supportTicket[pID] != 1)return SCM(playerid, C_ERROR, "Dieses Ticket gibt es nicht!");
  1759.         new string[250];
  1760.         format(string,sizeof(string), "%s %s hat dein Ticket angenommen. Du kannst nun im normalen Chat mit %s kommunizieren!", GetRangName(playerid), GetName(playerid), GetName(playerid));
  1761.         SCM(pID, C_INFO, string);
  1762.         SCM(pID, C_INFO, "Benutzte /endchat um das Ticket zu schließen!");
  1763.         format(string,sizeof(string), "Du hast das Ticket von %s angenommen. Du kannst nun im normalen Chat mit %s kommunizieren!", GetName(pID), GetName(pID));
  1764.         SCM(playerid, C_INFO, string);
  1765.         SCM(playerid, C_INFO, "Benutze /endchat um das Ticket zu schließen!");
  1766.         inAdminChat[pID] = 1;
  1767.         adminChatID[pID] = playerid;
  1768.         supportTicket[pID] = pID;
  1769.         supportTicket[playerid] = pID;
  1770.         inAdminChat[playerid] = 1;
  1771.         adminChatID[playerid] = pID;
  1772.         format(string,sizeof(string), "%s %s hat das Ticket von %s angenommen!", GetRangName(playerid), GetName(playerid), GetName(pID));
  1773.         WriteTicketLock(string);
  1774.     }
  1775.     if(LANGUAGE == 2){
  1776.         if(sscanf(params,"d", pID))return SCM(playerid, C_HINT, "Use: /getticket [id]");
  1777.         if(supportTicket[pID] != 1)return SCM(playerid, C_ERROR, "This ticket doesn't exist!");
  1778.         new string[250];
  1779.         format(string,sizeof(string), "%s %s accept your ticket. Now you can communicaite with %s in the normal chat!", GetRangName(playerid), GetName(playerid), GetName(playerid));
  1780.         SCM(pID, C_INFO, string);
  1781.         SCM(pID, C_INFO, "Use /endchat to close the Ticket!");
  1782.         format(string,sizeof(string), "You accepted the ticket from %s. Now you can communicate with %s in the normal chat!", GetName(pID), GetName(pID));
  1783.         SCM(playerid, C_INFO, string);
  1784.         SCM(playerid, C_INFO, "Use /endchat to close the Ticket!");
  1785.         inAdminChat[pID] = 1;
  1786.         adminChatID[pID] = playerid;
  1787.         supportTicket[pID] = pID;
  1788.         supportTicket[playerid] = pID;
  1789.         inAdminChat[playerid] = 1;
  1790.         adminChatID[playerid] = pID;
  1791.         format(string,sizeof(string), "%s %s accepted the ticket from %s!", GetRangName(playerid), GetName(playerid), GetName(pID));
  1792.         WriteTicketLock(string);
  1793.     }
  1794.     return 1;
  1795. }
  1796. ocmd:makeadmin(playerid, params[]){
  1797.     if(isAdmin[playerid] < CheckUsableStatus("MAKEADMIN_USABLE")){
  1798.         if(LANGUAGE == 1)return NotAllowed_DE;
  1799.         if(LANGUAGE == 2)return NotAllowed_EN;
  1800.     }
  1801.     new pID, aLevel, string[250];
  1802.     if(LANGUAGE == 1){
  1803.         if(sscanf(params,"dd",pID,aLevel))return SCM(playerid, C_HINT, "Benutze: /makeadmin [playerid][level]");
  1804.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  1805.         if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  1806.         if(aLevel < 0)return SCM(playerid, C_ERROR, "Das Adminlevel kann nicht unter 0 liegen!");
  1807.         if(aLevel > MAX_ADMINLEVEL){
  1808.             format(string,sizeof(string), "Das Adminlevel darf nicht über dem maximalen (%d) Level liegen", MAX_ADMINLEVEL);
  1809.             return SCM(playerid, C_ERROR, string);
  1810.         }
  1811.         if(aLevel == 0){
  1812.             isAdmin[pID] = 0;
  1813.             format(string,sizeof(string), "%s %s hat dich aus dem Team entlassen!", GetRangName(playerid), GetName(playerid));
  1814.             SCM(pID, C_INFO, string);
  1815.             format(string,sizeof(string), "Du hast %s aus dem Team entlassen!", GetName(pID));
  1816.             SCM(playerid, C_INFO, string);
  1817.             format(string,sizeof(string), "%s %s hat %s aus dem Team entlassen!", GetRangName(playerid), GetName(playerid), GetName(pID));
  1818.             WriteLog(string);
  1819.         }else{
  1820.             isAdmin[pID] = aLevel;
  1821.             format(string,sizeof(string), "%s %s hat dich zum %s ernannt!", GetRangName(playerid), GetName(playerid), GetRangName(pID));
  1822.             SCM(pID, C_INFO, string);
  1823.             format(string,sizeof(string), "Du hast %s zum %s ernannt!", GetName(pID), GetRangName(pID));
  1824.             SCM(playerid, C_INFO, string);
  1825.             format(string,sizeof(string), "%s %s hat %s zum %s ernannt!", GetRangName(playerid), GetName(playerid), GetName(pID), GetRangName(pID));
  1826.             WriteLog(string);
  1827.         }
  1828.         new path[64];
  1829.         format(path, sizeof(path), "%s/playerAdmin.ini", SCRIPTFILES_PATH);
  1830.         dini_IntSet(path, GetName(pID), aLevel);
  1831.     }
  1832.     if(LANGUAGE == 2){
  1833.         if(sscanf(params,"dd",pID,aLevel))return SCM(playerid, C_HINT, "Use: /makeadmin [playerid][level]");
  1834.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  1835.         if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  1836.         if(aLevel < 0)return SCM(playerid, C_ERROR, "The adminlevel cannot be under zero!");
  1837.         if(aLevel > MAX_ADMINLEVEL){
  1838.             format(string,sizeof(string), "The adminlevel cannot be over the max (%d) level", MAX_ADMINLEVEL);
  1839.             return SCM(playerid, C_ERROR, string);
  1840.         }
  1841.         if(isAdmin[pID] != 0){
  1842.             if(aLevel == 0){
  1843.                 isAdmin[pID] = 0;
  1844.                 format(string,sizeof(string), "%s %s fired you from the team!", GetRangName(playerid), GetName(playerid));
  1845.                 SCM(pID, C_INFO, string);
  1846.                 format(string,sizeof(string), "%s %s fired %s from the team!", GetRangName(playerid), GetName(playerid), GetName(pID));
  1847.                 WriteLog(string);
  1848.             }else{
  1849.                 isAdmin[pID] = aLevel;
  1850.                 format(string,sizeof(string), "%s %s made you %s!", GetRangName(playerid), GetName(playerid), GetRangName(pID));
  1851.                 SCM(pID, C_INFO, string);
  1852.                 format(string,sizeof(string), "%s %s made %s to %s!", GetRangName(playerid), GetName(playerid), GetName(pID), GetRangName(pID));
  1853.                 WriteLog(string);
  1854.             }
  1855.         }
  1856.     }
  1857.     return 1;
  1858. }
  1859.  
  1860. ocmd:cc(playerid, params[]){
  1861.     if(isAdmin[playerid] < CheckUsableStatus("CLEARCHAT_USABLE")){
  1862.         if(LANGUAGE == 1)return NotAllowed_DE;
  1863.         if(LANGUAGE == 2)return NotAllowed_EN;
  1864.     }
  1865.     for(new i = 0; i<150; i++){
  1866.         SCMA(-1, "");
  1867.     }
  1868.     new string[128];
  1869.     if(LANGUAGE == 1){
  1870.         format(string,sizeof(string), "%s %s hat den Chat gesäubert!", GetRangName(playerid), GetName(playerid));
  1871.     }
  1872.     if(LANGUAGE == 2){
  1873.         format(string,sizeof(string), "%s %s cleard the chat!", GetRangName(playerid), GetName(playerid));
  1874.     }
  1875.     SCMA(C_INFO, string);
  1876.     WriteLog(string);
  1877.     return 1;
  1878. }
  1879.  
  1880. ocmd:slap(playerid, params[]){
  1881.     if(isAdmin[playerid] < CheckUsableStatus("SLAPPLAYER_USABLE")){
  1882.         if(LANGUAGE == 1)return NotAllowed_DE;
  1883.         if(LANGUAGE == 2)return NotAllowed_EN;
  1884.     }
  1885.     new pID;
  1886.     if(LANGUAGE == 1){
  1887.         if(sscanf(params, "d", pID))return SCM(playerid, C_HINT, "Benutze: /slap [playerid]");
  1888.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  1889.         if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  1890.         if(isSpectating[pID])return SCM(playerid, C_ERROR, "Dieser Spieler beobachtet gerade jemand anderen!");
  1891.         new Float:X, Float:Y, Float:Z, string[250];
  1892.         GetPlayerPos(pID, X, Y, Z);
  1893.         SetPlayerPos(pID, X, Y, Z + 8.0);
  1894.         format(string,sizeof(string), "%s %s hat %s in die Höhe geschleudert!", GetRangName(playerid), GetName(playerid), GetName(pID));
  1895.         WriteLog(string);
  1896.     }
  1897.     if(LANGUAGE == 2){
  1898.         if(sscanf(params, "d", pID))return SCM(playerid, C_HINT, "Use: /slap [playerid]");
  1899.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  1900.         if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  1901.         if(isSpectating[pID])return SCM(playerid, C_ERROR, "This player spectate currently another player!");
  1902.         new Float:X, Float:Y, Float:Z, string[250];
  1903.         GetPlayerPos(pID, X, Y, Z);
  1904.         SetPlayerPos(pID, X, Y, Z + 8.0);
  1905.         format(string,sizeof(string), "%s %s slaped %s!", GetRangName(playerid), GetName(playerid), GetName(pID));
  1906.         WriteLog(string);
  1907.     }
  1908.     return 1;
  1909. }
  1910.  
  1911. ocmd:freeze(playerid, params[]){
  1912.     if(isAdmin[playerid] < CheckUsableStatus("FREEZEPLAYER_USABLE")){
  1913.         if(LANGUAGE == 1)return NotAllowed_DE;
  1914.         if(LANGUAGE == 2)return NotAllowed_EN;
  1915.     }
  1916.     new pID;
  1917.     if(LANGUAGE == 1){
  1918.         if(sscanf(params, "d", pID))return SCM(playerid, C_HINT, "Benutzte: /freeze [playerid]");
  1919.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  1920.         if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  1921.         new string[250];
  1922.         if(!playerFreezed[playerid]){
  1923.             playerFreezed[playerid] = true;
  1924.             TogglePlayerControllable(pID, 0);
  1925.             format(string,sizeof(string), "%s %s hat dich gefreezet!", GetRangName(playerid), GetName(playerid));
  1926.             SCM(pID, C_INFO, string);
  1927.             format(string,sizeof(string), "Du hast %s gefreezet!", GetName(pID));
  1928.             SCM(playerid, C_INFO, string);
  1929.             format(string,sizeof(string), "%s %s hat %s gefreezet!", GetRangName(playerid), GetName(playerid), GetName(pID));
  1930.             WriteLog(string);
  1931.         }else{
  1932.             playerFreezed[playerid] = false;
  1933.             TogglePlayerControllable(pID, 1);
  1934.             format(string,sizeof(string), "%s %s hat dich entfreezet!", GetRangName(playerid), GetName(playerid));
  1935.             SCM(pID, C_INFO, string);
  1936.             format(string,sizeof(string), "Du hast %s entfreezet!", GetName(pID));
  1937.             SCM(playerid, C_INFO, string);
  1938.             format(string,sizeof(string), "%s %s hat %s entfreezet!", GetRangName(playerid), GetName(playerid), GetName(pID));
  1939.             WriteLog(string);
  1940.         }
  1941.     }
  1942.     if(LANGUAGE == 2){
  1943.         if(sscanf(params, "d", pID))return SCM(playerid, C_HINT, "Use: /freeze [playerid]");
  1944.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  1945.         if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  1946.         new string[250];
  1947.         if(!playerFreezed[playerid]){
  1948.             playerFreezed[playerid] = true;
  1949.             TogglePlayerControllable(pID, 0);
  1950.             format(string,sizeof(string), "%s %s freezed you!", GetRangName(playerid), GetName(playerid));
  1951.             SCM(pID, C_INFO, string);
  1952.             format(string,sizeof(string), "You freezed %s", GetName(pID));
  1953.             SCM(playerid, C_INFO, string);
  1954.             format(string,sizeof(string), "%s %s freezed %s!", GetRangName(playerid), GetName(playerid), GetName(pID));
  1955.             WriteLog(string);
  1956.         }else{
  1957.             playerFreezed[playerid] = false;
  1958.             TogglePlayerControllable(pID, 1);
  1959.             format(string,sizeof(string), "%s %s unfreezed you!", GetRangName(playerid), GetName(playerid));
  1960.             SCM(pID, C_INFO, string);
  1961.             format(string,sizeof(string), "You unfreezed %s!", GetName(pID));
  1962.             SCM(playerid, C_INFO, string);
  1963.             format(string,sizeof(string), "%s %s unfreezed %s!", GetRangName(playerid), GetName(playerid), GetName(pID));
  1964.             WriteLog(string);
  1965.         }
  1966.     }
  1967.     return 1;
  1968. }
  1969.  
  1970. ocmd:eject(playerid, params[]){
  1971.     if(isAdmin[playerid] < CheckUsableStatus("EJECTPLAYER_USABLE")){
  1972.         if(LANGUAGE == 1)return NotAllowed_DE;
  1973.         if(LANGUAGE == 2)return NotAllowed_EN;
  1974.     }
  1975.     new pID;
  1976.     if(LANGUAGE == 1){
  1977.         if(sscanf(params,"d",pID))return SCM(playerid, C_HINT, "Benutze: /eject [playerid]");
  1978.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  1979.         if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  1980.         if(!IsPlayerInAnyVehicle(pID))return PLAYER_NOT_IN_VEHICLE_DE;
  1981.         RemovePlayerFromVehicle(pID);
  1982.         new string[250];
  1983.         format(string,sizeof(string), "Du wurdest von %s %s aus dem Fahrzeug entfernt!", GetRangName(playerid), GetName(playerid));
  1984.         SCM(pID, C_INFO, string);
  1985.         format(string,sizeof(string), "Du hast %s aus dem Fahrzeug entfernt!", GetName(pID));
  1986.         SCM(playerid, C_INFO, string);
  1987.         format(string,sizeof(string), "%s %s hat %s aus dem Fahrzeug entfernt!", GetRangName(playerid), GetName(playerid), GetName(pID));
  1988.         WriteLog(string);
  1989.     }
  1990.     if(LANGUAGE == 2){
  1991.         if(sscanf(params,"d",pID))return SCM(playerid, C_HINT, "Use: /eject [playerid]");
  1992.         if(!IsPlayerConnected(pID))return NOT_ONLINE_EN;
  1993.         if(IsPlayerNPC(pID))return PLAYER_NPC_EN;
  1994.         if(!IsPlayerInAnyVehicle(pID))return PLAYER_NOT_IN_VEHICLE_EN;
  1995.         RemovePlayerFromVehicle(pID);
  1996.         new string[250];
  1997.         format(string,sizeof(string), "%s %s removed you from the vehicle!", GetRangName(playerid), GetName(playerid));
  1998.         SCM(pID, C_INFO, string);
  1999.         format(string,sizeof(string), "You removed %s from the vehicle!", GetName(pID));
  2000.         SCM(playerid, C_INFO, string);
  2001.         format(string,sizeof(string), "%s %s removed %s from the vehicle!", GetRangName(playerid), GetName(playerid), GetName(pID));
  2002.         WriteLog(string);
  2003.     }
  2004.     return 1;
  2005. }
  2006.  
  2007. ocmd:warn(playerid, params[]){
  2008.     if(isAdmin[playerid] < CheckUsableStatus("WARNPLAYER_USABLE")){
  2009.         if(LANGUAGE == 1)return NotAllowed_DE;
  2010.         if(LANGUAGE == 2)return NotAllowed_EN;
  2011.     }
  2012.     new pID, grund[32];
  2013.     if(LANGUAGE == 1){
  2014.         if(sscanf(params,"ds[32]", pID, grund))return SCM(playerid, C_HINT, "Benutze: /warn [playerid][grund]");
  2015.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  2016.         if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  2017.         new string[256], key[24], path[64];
  2018.         format(path,sizeof(path), "%s/warnings.ini", SCRIPTFILES_PATH);
  2019.         format(key,sizeof(key), "%s", GetName(pID));
  2020.         format(string,sizeof(string), "Du wurdest von %s %s verwarnt. Grund: %s", GetRangName(playerid), GetName(playerid), grund);
  2021.         SCM(pID, C_INFO, string);
  2022.         format(string,sizeof(string), "%s %s hat %s eine Verwarnung gegeben. Grund: %s", GetRangName(playerid), GetName(playerid), GetName(pID), grund);
  2023.         WriteLog(string);
  2024.         if(STACK_WARNINGS == 1){
  2025.             playerWarnings[pID] += 1;
  2026.             playerCurrentWarnings[pID] += 1;
  2027.             dini_IntSet(path, key, playerWarnings[pID]);
  2028.             if(playerCurrentWarnings[pID] >= MAX_WARNINGS){
  2029.                 format(string,sizeof(string), "Du hast mehr als %d oder genau %d Verwarnungen! Du wirst nun vom Server gekickt!", MAX_WARNINGS, MAX_WARNINGS);
  2030.                 SCM(pID, C_ERROR, string);
  2031.                 format(string,sizeof(string), "%s wurde vom Server gekickt! Grund: Zu viele Verwarnungen!", GetName(pID));
  2032.                 SCMA(C_INFO,string);
  2033.                 KickEx(pID);
  2034.             }
  2035.         }else{
  2036.             playerWarnings[pID] += 1;
  2037.             playerCurrentWarnings[pID] += 1;
  2038.             dini_IntSet(path, key, playerWarnings[pID]);
  2039.             if(playerWarnings[pID] >= MAX_WARNINGS){
  2040.                 format(string,sizeof(string), "Du hast mehr als %d oder genau %d Verwarnungen! Du wirst nun vom Server gekickt!", MAX_WARNINGS, MAX_WARNINGS);
  2041.                 SCM(pID, C_ERROR, string);
  2042.                 format(string,sizeof(string), "%s wurde vom Server gekickt! Grund: Zu viele Verwarnungen!", GetName(pID));
  2043.                 SCMA(C_INFO,string);
  2044.                 KickEx(pID);
  2045.             }
  2046.         }
  2047.     }
  2048.     if(LANGUAGE == 2){
  2049.         if(sscanf(params,"ds[32]", pID, grund))return SCM(playerid, C_HINT, "Use: /warn [playerid][reason]");
  2050.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  2051.         if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  2052.         new string[256], key[24], path[64];
  2053.         format(path,sizeof(path), "%s/warnings.ini", SCRIPTFILES_PATH);
  2054.         format(key,sizeof(key), "%s", GetName(pID));
  2055.         format(string,sizeof(string), "You got a warn from %s %s. Reason: %s", GetRangName(playerid), GetName(playerid), grund);
  2056.         SCM(pID, C_INFO, string);
  2057.         format(string,sizeof(string), "%s %s gave %s a warning. Reason: %s", GetRangName(playerid), GetName(playerid), GetName(pID), grund);
  2058.         WriteLog(string);
  2059.         if(STACK_WARNINGS == 1){
  2060.             playerWarnings[pID] += 1;
  2061.             playerCurrentWarnings[pID] += 1;
  2062.             dini_IntSet(path, key, playerWarnings[pID]);
  2063.             if(playerCurrentWarnings[pID] >= MAX_WARNINGS){
  2064.                 format(string,sizeof(string), "You've got more than or equal %d warnings! You get kicked now!", MAX_WARNINGS);
  2065.                 SCM(pID, C_ERROR, string);
  2066.                 format(string,sizeof(string), "%s got kicked! Reason: Too many wanrs!", GetName(pID));
  2067.                 SCMA(C_INFO,string);
  2068.                 KickEx(pID);
  2069.             }
  2070.         }else{
  2071.             playerWarnings[pID] += 1;
  2072.             playerCurrentWarnings[pID] += 1;
  2073.             dini_IntSet(path, key, playerWarnings[pID]);
  2074.             if(playerWarnings[pID] >= MAX_WARNINGS){
  2075.                 format(string,sizeof(string), "You've got more than or equal %d warnings! You get kicked now!", MAX_WARNINGS);
  2076.                 SCM(pID, C_ERROR, string);
  2077.                 format(string,sizeof(string), "%s got kicked! Reason: Too many wanrs!", GetName(pID));
  2078.                 SCMA(C_INFO,string);
  2079.                 KickEx(pID);
  2080.             }
  2081.         }
  2082.     }
  2083.     return 1;
  2084. }
  2085.  
  2086. ocmd:getvid(playerid){
  2087.     if(isAdmin[playerid] < CheckUsableStatus("GETVID_USABLE")){
  2088.         if(LANGUAGE == 1)return NotAllowed_DE;
  2089.         if(LANGUAGE == 2)return NotAllowed_EN;
  2090.     }
  2091.     if(LANGUAGE == 1){
  2092.         if(!IsPlayerInAnyVehicle(playerid))return SCM(playerid, C_ERROR, "Du bist in keinem Fahrzeug!");
  2093.         new string[250];
  2094.         format(string,sizeof(string), "Die VehicleID: %d", GetPlayerVehicleID(playerid));
  2095.         SCM(playerid, C_INFO, string);
  2096.         format(string,sizeof(string), "%s %s hat sich die VehicleID %d von einem Fahrzeug ausgeben lassen!", GetRangName(playerid), GetName(playerid), GetPlayerVehicleID(playerid));
  2097.         WriteLog(string);
  2098.     }
  2099.     if(LANGUAGE == 2){
  2100.         if(!IsPlayerInAnyVehicle(playerid))return SCM(playerid, C_ERROR, "You're not in a vehicle!");
  2101.         new string[250];
  2102.         format(string,sizeof(string), "VehicleID : %d", GetPlayerVehicleID(playerid));
  2103.         SCM(playerid, C_INFO, string);
  2104.         format(string,sizeof(string), "%s %s got a vehicleid from a vehicle. VehicleID: %d!", GetRangName(playerid), GetName(playerid), GetPlayerVehicleID(playerid));
  2105.         WriteLog(string);
  2106.     }
  2107.     return 1;
  2108. }
  2109.  
  2110. ocmd:respawnveh(playerid, params[]){
  2111.     if(isAdmin[playerid] < CheckUsableStatus("SPAWNVEH_USABLE")){
  2112.         if(LANGUAGE == 1)return NotAllowed_DE;
  2113.         if(LANGUAGE == 2)return NotAllowed_EN;
  2114.     }
  2115.     new vID;
  2116.     if(LANGUAGE == 1){
  2117.         if(sscanf(params,"d",vID))return SCM(playerid, C_HINT, "Benutze: /spawnveh [vehicleid]");
  2118.         if(!IsValidVehicle(vID))return SCM(playerid, C_ERROR, "Dieses Fahrzeug gibt es nicht!");
  2119.         if(IsBodyInVehicle(vID))return SCM(playerid, C_ERROR, "In diesem Fahrzeug sitzt nocht jemand!");
  2120.         SetVehicleToRespawn(vID);
  2121.         new string[250];
  2122.         format(string,sizeof(string), "%s %s hat ein Fahrzeug respawnt!", GetRangName(playerid), GetName(playerid));
  2123.         WriteLog(string);
  2124.         format(string,sizeof(string), "Du hast das Fahrzeug mit der ID %d respawnt!", vID);
  2125.         SCM(playerid, C_INFO, string);
  2126.     }
  2127.     if(LANGUAGE == 2){
  2128.         if(sscanf(params,"d",vID))return SCM(playerid, C_HINT, "Use: /spawnveh [vehicleid]");
  2129.         if(!IsValidVehicle(vID))return SCM(playerid, C_ERROR, "This vehicle doesn't exist!");
  2130.         if(IsBodyInVehicle(vID))return SCM(playerid, C_ERROR, "There is somebody in this vehicle!");
  2131.         SetVehicleToRespawn(vID);
  2132.         new string[250];
  2133.         format(string,sizeof(string), "%s %s have respawned a vehicle!", GetRangName(playerid), GetName(playerid));
  2134.         WriteLog(string);
  2135.         format(string,sizeof(string), "You have respawn the vehicle with the id %d!", vID);
  2136.         SCM(playerid, C_INFO, string);
  2137.     }
  2138.     return 1;
  2139. }
  2140.  
  2141. ocmd:delveh(playerid, params[]){
  2142.     if(isAdmin[playerid] < CheckUsableStatus("DELVEH_USABLE")){
  2143.         if(LANGUAGE == 1)return NotAllowed_DE;
  2144.         if(LANGUAGE == 2)return NotAllowed_EN;
  2145.     }
  2146.     new vID;
  2147.     if(LANGUAGE == 1){
  2148.         if(sscanf(params,"d",vID))return SCM(playerid, C_HINT, "Benutze: /delveh [vehicleid]");
  2149.         if(!IsValidVehicle(vID))return SCM(playerid, C_ERROR, "Dieses Fahrzeug gibt es nicht!");
  2150.         if(IsBodyInVehicle(vID))return SCM(playerid, C_ERROR, "In diesem Fahrzeug sitzt noch jemand!");
  2151.         DestroyVehicle(vID);
  2152.         new string[250];
  2153.         format(string,sizeof(string), "%s %s hat ein Fahrzeug gelöscht!", GetRangName(playerid), GetName(playerid));
  2154.         WriteLog(string);
  2155.     }
  2156.     if(LANGUAGE == 2){
  2157.         if(sscanf(params,"d",vID))return SCM(playerid, C_HINT, "Use: /delveh [vehicleid]");
  2158.         if(!IsValidVehicle(vID))return SCM(playerid, C_ERROR, "This vehicle doesn't exist!");
  2159.         if(IsBodyInVehicle(vID))return SCM(playerid, C_ERROR, "There is somebody in this vehicle!");
  2160.         DestroyVehicle(vID);
  2161.         new string[250];
  2162.         format(string,sizeof(string), "%s %s destroyed a vehicle!", GetRangName(playerid), GetName(playerid));
  2163.         WriteLog(string);
  2164.     }
  2165.     return 1;
  2166. }
  2167.  
  2168. ocmd:resetveh(playerid){
  2169.     if(isAdmin[playerid] < CheckUsableStatus("RESETVEH_USABLE")){
  2170.         if(LANGUAGE == 1)return NotAllowed_DE;
  2171.         if(LANGUAGE == 2)return NotAllowed_EN;
  2172.     }
  2173.     new string[250];
  2174.     if(LANGUAGE == 1){
  2175.         GameTextForAll("~r~Unbesetzte Fahrzeuge werden in 30 Sekunden resettet", 7000, 6);
  2176.         format(string,sizeof(string), "%s %s hat einen Respawn von allen leeren Fahrzeugen angestoßen!", GetRangName(playerid), GetName(playerid));
  2177.         WriteLog(string);
  2178.     }
  2179.     if(LANGUAGE == 2){
  2180.         GameTextForAll("~r~Unoccupied vehicles will be reset in 30 seconds", 7000, 6);
  2181.         format(string,sizeof(string), "%s %s has triggered a respawn from all empty vehicles!", GetRangName(playerid), GetName(playerid));
  2182.         WriteLog(string);
  2183.     }
  2184.     SetTimer("ResetVehicles", 27000,false);
  2185.     return 1;
  2186. }
  2187.  
  2188. ocmd:killall(playerid){
  2189.     if(isAdmin[playerid] < CheckUsableStatus("KILLALL_USABLE")){
  2190.         if(LANGUAGE == 1)return NotAllowed_DE;
  2191.         if(LANGUAGE == 2)return NotAllowed_EN;
  2192.     }
  2193.     for(new i = 0; i<MAX_PLAYERS; i++){
  2194.         if(IsPlayerNPC(i))continue;
  2195.         SetPlayerHealth(i, 0);
  2196.     }
  2197.     new string[250];
  2198.     if(LANGUAGE == 1){
  2199.         format(string, sizeof(string), "%s %s hat alle Spieler auf dem Server getötet!", GetRangName(playerid), GetName(playerid));
  2200.         return WriteLog(string);
  2201.     }
  2202.     if(LANGUAGE == 2){
  2203.         format(string, sizeof(string), "%s %s killed all players on the server!", GetRangName(playerid), GetName(playerid));
  2204.         return WriteLog(string);
  2205.     }
  2206.     return 1;
  2207. }
  2208.  
  2209. ocmd:setweather(playerid, params[]){
  2210.     if(isAdmin[playerid] < CheckUsableStatus("SETWEATHER_USABLE")){
  2211.         if(LANGUAGE == 1)return NotAllowed_DE;
  2212.         if(LANGUAGE == 2)return NotAllowed_EN;
  2213.     }
  2214.     new wID;
  2215.     if(LANGUAGE == 1){
  2216.         if(sscanf(params, "d", wID))return SCM(playerid, C_HINT, "Benutze: /setweather [weatherid]");
  2217.         if(wID < 0 || wID > 20)return SCM(playerid, C_ERROR, "Ungültige Wetter ID!");
  2218.         SetWeather(wID);
  2219.         new string[250];
  2220.         format(string,sizeof(string), "%s %s hat das Wetter auf %d geändert!", GetRangName(playerid), GetName(playerid), wID);
  2221.         WriteLog(string);
  2222.     }
  2223.     if(LANGUAGE == 2){
  2224.         if(sscanf(params, "d", wID))return SCM(playerid, C_HINT, "Use: /setweather [weatherid]");
  2225.         if(wID < 0 || wID > 20)return SCM(playerid, C_ERROR, "Invalid weather id!");
  2226.         SetWeather(wID);
  2227.         new string[250];
  2228.         format(string,sizeof(string), "%s %s changed the weather to %d!", GetRangName(playerid), GetName(playerid), wID);
  2229.         WriteLog(string);
  2230.     }
  2231.     return 1;
  2232. }
  2233.  
  2234. ocmd:repveh(playerid){
  2235.     if(isAdmin[playerid] < CheckUsableStatus("REPVEH_USABLE")){
  2236.         if(LANGUAGE == 1)return NotAllowed_DE;
  2237.         if(LANGUAGE == 2)return NotAllowed_EN;
  2238.     }
  2239.     if(LANGUAGE == 1){
  2240.         if(!IsPlayerInAnyVehicle(playerid))return SCM(playerid, C_ERROR, "Du bist in keinem Fahrzeug!");
  2241.         SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);
  2242.         new string[250];
  2243.         format(string,sizeof(string), "%s %s hat sein Fahrzeug repariert!", GetRangName(playerid), GetName(playerid));
  2244.         WriteLog(string);
  2245.         SCM(playerid, C_INFO, "Du hast dein Fahrzeug repariert!");
  2246.     }
  2247.     if(LANGUAGE == 2){
  2248.         if(!IsPlayerInAnyVehicle(playerid))return SCM(playerid, C_ERROR, "You're not in a vehicle!");
  2249.         SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);
  2250.         new string[250];
  2251.         format(string,sizeof(string), "%s %s repaired his vehicle!", GetRangName(playerid), GetName(playerid));
  2252.         WriteLog(string);
  2253.         SCM(playerid, C_INFO, "You repaired your vehicle!");
  2254.     }
  2255.     return 1;
  2256. }
  2257.  
  2258. ocmd:setarmour(playerid, params[]){
  2259.     if(isAdmin[playerid] < CheckUsableStatus("SETARMOUR_USABLE")){
  2260.         if(LANGUAGE == 1)return NotAllowed_DE;
  2261.         if(LANGUAGE == 2)return NotAllowed_EN;
  2262.     }
  2263.     new pID, Float:Armour;
  2264.     if(LANGUAGE == 1){
  2265.         if(sscanf(params, "df", pID, Armour))return SCM(playerid, C_HINT, "Benutze: /setarmour [playerid][ammount]");
  2266.         if(Armour > 100)return SCM(playerid, C_ERROR, "Du kannst die Rüstung nicht über 100 setzten!");
  2267.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  2268.         SetPlayerArmour(pID, Armour);
  2269.         new string[250];
  2270.         format(string,sizeof(string), "%s %s hat deine Rüstung auf %02f gesetzt!", GetRangName(playerid), GetName(playerid), Armour);
  2271.         SCM(pID, C_INFO, string);
  2272.         format(string,sizeof(string), "Du hast die Rüstung von %s auf %02f gesetzt!", GetName(pID), Armour);
  2273.         SCM(playerid, C_INFO, string);
  2274.         format(string,sizeof(string), "%s %s hat die Rüstung von %s auf %02f gesetzt!", GetRangName(playerid), GetName(playerid), GetName(pID), Armour);
  2275.         WriteLog(string);
  2276.     }
  2277.     if(LANGUAGE == 2){
  2278.         if(sscanf(params, "df", pID, Armour))return SCM(playerid, C_HINT, "Use: /setarmour [playerid][ammount]");
  2279.         if(Armour > 100)return SCM(playerid, C_ERROR, "You can't put armour above 100!");
  2280.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  2281.         SetPlayerArmour(pID, Armour);
  2282.         new string[250];
  2283.         format(string,sizeof(string), "%s %s set your armour to %02f!", GetRangName(playerid), GetName(playerid), Armour);
  2284.         SCM(pID, C_INFO, string);
  2285.         format(string,sizeof(string), "You set the armour from %s to %02f!", GetName(pID), Armour);
  2286.         SCM(playerid, C_INFO, string);
  2287.         format(string,sizeof(string), "%s %s set the armour from %s to %02f!", GetRangName(playerid), GetName(playerid), GetName(pID), Armour);
  2288.         WriteLog(string);
  2289.     }
  2290.     return 1;
  2291. }
  2292.  
  2293. ocmd:sethealth(playerid, params[]){
  2294.     if(isAdmin[playerid] < CheckUsableStatus("SETHEALTH_USABLE")){
  2295.         if(LANGUAGE == 1)return NotAllowed_DE;
  2296.         if(LANGUAGE == 2)return NotAllowed_EN;
  2297.     }
  2298.     new pID, Float:Health;
  2299.     if(LANGUAGE == 1){
  2300.         if(sscanf(params, "df", pID, Health))return SCM(playerid, C_HINT, "Benutze: /sethealth [playerid][ammount]");
  2301.         if(Health > 100)return SCM(playerid, C_ERROR, "Du kannst das Leben nicht über 100 setzen!");
  2302.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  2303.         SetPlayerHealth(pID, Health);
  2304.         new string[250];
  2305.         format(string,sizeof(string), "%s %s hat dein Leben auf %02f gesetzt!", GetRangName(playerid), GetName(playerid), Health);
  2306.         SCM(pID, C_INFO, string);
  2307.         format(string,sizeof(string), "Du hast das Leben von %s auf %02f gesetzt!", GetName(pID), Health);
  2308.         SCM(playerid, C_INFO, string);
  2309.         format(string,sizeof(string), "%s %s hat das Leben von %s auf %02f gesetzt!", GetRangName(playerid), GetName(playerid), GetName(pID), Health);
  2310.         WriteLog(string);
  2311.     }
  2312.     if(LANGUAGE == 2){
  2313.         if(sscanf(params, "df", pID, Health))return SCM(playerid, C_HINT, "Use: /sethealth [playerid][ammount]");
  2314.         if(Health > 100)return SCM(playerid, C_ERROR, "You can't put life above 100!");
  2315.         if(!IsPlayerConnected(pID))return NOT_ONLINE_EN;
  2316.         SetPlayerHealth(pID, Health);
  2317.         new string[250];
  2318.         format(string,sizeof(string), "%s %s set your health to %02f!", GetRangName(playerid), GetName(playerid), Health);
  2319.         SCM(pID, C_INFO, string);
  2320.         format(string,sizeof(string), "You set the healt from %s to %02f!", GetName(pID), Health);
  2321.         SCM(playerid, C_INFO, string);
  2322.         format(string,sizeof(string), "%s %s set the health from %s to %02f!", GetRangName(playerid), GetName(playerid), GetName(pID), Health);
  2323.         WriteLog(string);
  2324.     }
  2325.     return 1;
  2326. }
  2327.  
  2328. ocmd:spectate(playerid, params[]){
  2329.     if(isAdmin[playerid] < CheckUsableStatus("SPECTATE_USABLE")){
  2330.         if(LANGUAGE == 1)return NotAllowed_DE;
  2331.         if(LANGUAGE == 2)return NotAllowed_EN;
  2332.     }
  2333.     if(LANGUAGE == 1){
  2334.         if(!isSpectating[playerid]){
  2335.             new pID;
  2336.             if(sscanf(params, "d", pID))return SCM(playerid, C_HINT, "Benutze: /spectate [playerid]");
  2337.             if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  2338.             if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  2339.             GetPlayerPos(playerid, p_oldX[playerid], p_oldY[playerid], p_oldZ[playerid]);
  2340.             GetPlayerFacingAngle(playerid, p_oldA[playerid]);
  2341.             p_oldINT[playerid] = GetPlayerInterior(playerid);
  2342.             p_oldVW[playerid] = GetPlayerVirtualWorld(playerid);
  2343.             pSpectateID[playerid] = pID;
  2344.             if(!IsPlayerInAnyVehicle(pID)){//Wenn Spieler in keinem Fahrzeug ist
  2345.                 TogglePlayerSpectating(playerid, 1);
  2346.                 PlayerSpectatePlayer(playerid, pID, SPECTATE_MODE_NORMAL);
  2347.             }else{
  2348.                 new pIDVEH = GetPlayerVehicleID(pID);
  2349.                 TogglePlayerSpectating(playerid, 1);
  2350.                 PlayerSpectateVehicle(playerid, pIDVEH, SPECTATE_MODE_NORMAL);
  2351.             }
  2352.             isSpectating[playerid] = true;
  2353.             SCM(playerid, C_INFO, "Gebe erneut /spectate ein um den Modus zu verlassen.");
  2354.             new string[250];
  2355.             format(string,sizeof(string), "%s %s schaut jetzt %s zu!", GetRangName(playerid), GetName(playerid), GetName(pID));
  2356.             WriteLog(string);
  2357.         }else{
  2358.             new string[250];
  2359.             format(string,sizeof(string), "%s %s hat aufgehört %s zuzuschauen!", GetRangName(playerid), GetName(playerid), GetName(pSpectateID[playerid]));
  2360.             WriteLog(string);
  2361.             TogglePlayerSpectating(playerid, 0);
  2362.         }
  2363.     }
  2364.     if(LANGUAGE == 2){
  2365.         if(!isSpectating[playerid]){
  2366.             new pID;
  2367.             if(sscanf(params, "d", pID))return SCM(playerid, C_HINT, "Use: /spectate [playerid]");
  2368.             if(!IsPlayerConnected(pID))return NOT_ONLINE_EN;
  2369.             if(IsPlayerNPC(pID))return PLAYER_NPC_EN;
  2370.             GetPlayerPos(playerid, p_oldX[playerid], p_oldY[playerid], p_oldZ[playerid]);
  2371.             GetPlayerFacingAngle(playerid, p_oldA[playerid]);
  2372.             p_oldINT[playerid] = GetPlayerInterior(playerid);
  2373.             p_oldVW[playerid] = GetPlayerVirtualWorld(playerid);
  2374.             pSpectateID[playerid] = pID;
  2375.             isSpectating[playerid] = true;
  2376.             if(!IsPlayerInAnyVehicle(pID)){//Wenn Spieler in keinem Fahrzeug ist
  2377.                 TogglePlayerSpectating(playerid, 1);
  2378.                 PlayerSpectatePlayer(playerid, pID, SPECTATE_MODE_NORMAL);
  2379.             }else{
  2380.                 new pIDVEH = GetPlayerVehicleID(pID);
  2381.                 TogglePlayerSpectating(playerid, 1);
  2382.                 PlayerSpectateVehicle(playerid, pIDVEH, SPECTATE_MODE_NORMAL);
  2383.             }
  2384.             SCM(playerid, C_INFO, "Type /spectate to end this mode.");
  2385.             new string[250];
  2386.             format(string,sizeof(string), "%s %s is now watching %s!", GetRangName(playerid), GetName(playerid), GetName(pID));
  2387.             WriteLog(string);
  2388.         }else{
  2389.             new string[250];
  2390.             format(string,sizeof(string), "%s %s no longer wachtes %s!", GetRangName(playerid), GetName(playerid), GetName(pSpectateID[playerid]));
  2391.             WriteLog(string);
  2392.             TogglePlayerSpectating(playerid, 0);
  2393.         }
  2394.     }
  2395.     return 1;
  2396. }
  2397.  
  2398. ocmd:supveh(playerid){
  2399.     if(isAdmin[playerid] < CheckUsableStatus("SUPVEH_USABLE")){
  2400.         if(LANGUAGE == 1)return NotAllowed_DE;
  2401.         if(LANGUAGE == 2)return NotAllowed_EN;
  2402.     }
  2403.     if(playerSupVeh[playerid] == -1){
  2404.         new Float:X, Float:Y, Float:Z, Float:A, string[250];
  2405.         GetPlayerPos(playerid, X, Y, Z);
  2406.         GetPlayerFacingAngle(playerid, A);
  2407.         playerSupVeh[playerid] = CreateVehicle(GetSupVehModel(),X,Y,Z,A,65,65,-1,1);
  2408.         PutPlayerInVehicle(playerid, playerSupVeh[playerid], 0);
  2409.         SetVehicleNumberPlate(playerSupVeh[playerid],"SUPPORT");
  2410.         if(LANGUAGE == 1){
  2411.             format(string,sizeof(string), "%s %s hat sich ein Supportfahrzeug gespawnt!", GetRangName(playerid), GetName(playerid));
  2412.             WriteLog(string);
  2413.         }
  2414.         if(LANGUAGE == 2){
  2415.             format(string,sizeof(string), "%s %s spawend a supportvehicle!", GetRangName(playerid), GetName(playerid));
  2416.             WriteLog(string);
  2417.         }
  2418.     }else{
  2419.         DestroyVehicle(playerSupVeh[playerid]);
  2420.         playerSupVeh[playerid] = -1;
  2421.     }
  2422.     return 1;
  2423. }
  2424.  
  2425. ocmd:setvw(playerid, params[]){
  2426.     if(isAdmin[playerid] < CheckUsableStatus("SETVW_USABLE")){
  2427.         if(LANGUAGE == 1)return NotAllowed_DE;
  2428.         if(LANGUAGE == 2)return NotAllowed_EN;
  2429.     }
  2430.     new pID, vwID;
  2431.     if(LANGUAGE == 1){
  2432.         if(sscanf(params, "dd", pID, vwID))return SCM(playerid, C_HINT, "Benutze /setvw [playerid][virtualworld]");
  2433.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  2434.         if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  2435.         if(vwID < 0 || vwID > 2147483647)return SCM(playerid, C_ERROR, "Ungültige virtuelle Welt!");
  2436.         SetPlayerVirtualWorld(pID, vwID);
  2437.         new string[250];
  2438.         format(string,sizeof(string), "%s %s hat die VW von %s auf %d geändert!", GetRangName(playerid), GetName(playerid), GetName(pID), vwID);
  2439.         WriteLog(string);
  2440.     }
  2441.     if(LANGUAGE == 2){
  2442.         if(sscanf(params, "dd", pID, vwID))return SCM(playerid, C_HINT, "Use /setvw [playerid][virtualworld]");
  2443.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  2444.         if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  2445.         if(vwID < 0 || vwID > 2147483647)return SCM(playerid, C_ERROR, "Invalid VW!");
  2446.         SetPlayerVirtualWorld(pID, vwID);
  2447.         new string[250];
  2448.         format(string,sizeof(string), "%s %s changed the VW from %s to %d!", GetRangName(playerid), GetName(playerid), GetName(pID), vwID);
  2449.         WriteLog(string);
  2450.     }
  2451.     return 1;
  2452. }
  2453.  
  2454. ocmd:setint(playerid, params[]){
  2455.     if(isAdmin[playerid] < CheckUsableStatus("SETINT_USABLE")){
  2456.         if(LANGUAGE == 1)return NotAllowed_DE;
  2457.         if(LANGUAGE == 2)return NotAllowed_EN;
  2458.     }
  2459.     new pID, intID;
  2460.     if(LANGUAGE == 1){
  2461.         if(sscanf(params, "dd", pID, intID))return SCM(playerid, C_HINT, "Benutze /setint [playerid][interiorid]");
  2462.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  2463.         if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  2464.         if(intID < 0 || intID > 18)return SCM(playerid, C_ERROR, "Ungültige InteriorID!");
  2465.         SetPlayerInterior(pID, intID);
  2466.         new string[250];
  2467.         format(string, sizeof(string), "%s %s hat das Interior von %s auf %d geändert!", GetRangName(playerid), GetName(playerid), GetName(pID), intID);
  2468.         WriteLog(string);
  2469.     }
  2470.     if(LANGUAGE == 2){
  2471.         if(sscanf(params, "dd", pID, intID))return SCM(playerid, C_HINT, "Use /setint [playerid][interiorid]");
  2472.         if(!IsPlayerConnected(pID))return NOT_ONLINE_EN;
  2473.         if(IsPlayerNPC(pID))return PLAYER_NPC_EN;
  2474.         if(intID < 0 || intID > 18)return SCM(playerid, C_ERROR, "Invalid InteriorID!");
  2475.         SetPlayerInterior(pID, intID);
  2476.         new string[250];
  2477.         format(string, sizeof(string), "%s %s changed the interior from %s to %d!", GetRangName(playerid), GetName(playerid), GetName(pID), intID);
  2478.         WriteLog(string);
  2479.     }
  2480.     return 1;
  2481. }
  2482.  
  2483. ocmd:tp(playerid, params[]){
  2484.     if(isAdmin[playerid] < CheckUsableStatus("TELEPORTPLAYER_USABLE")){
  2485.         if(LANGUAGE == 1)return NotAllowed_DE;
  2486.         if(LANGUAGE == 2)return NotAllowed_EN;
  2487.     }
  2488.     new pID1, pID2;
  2489.     if(LANGUAGE == 1){
  2490.         if(sscanf(params,"dd",pID1,pID2))return SCM(playerid, C_HINT, "Benutze: /tp [playerid][ziel playerid]");
  2491.         if(!IsPlayerConnected(pID1) || !IsPlayerConnected(pID2))return NOT_ONLINE_DE;
  2492.         if(IsPlayerNPC(pID1) || IsPlayerNPC(pID2))return PLAYER_NPC_DE;
  2493.         new Float:X, Float:Y, Float:Z, Float:A, string[250];
  2494.         GetPlayerPos(pID2, X, Y, Z);
  2495.         GetPlayerFacingAngle(pID2, A);
  2496.         SetPos(pID1, X, Y+2, Z, A);
  2497.         format(string, sizeof(string), "%s %s hat %s zu %s teleportiert!", GetRangName(playerid), GetName(playerid), GetName(pID1), GetName(pID2));
  2498.         WriteLog(string);
  2499.     }
  2500.     if(LANGUAGE == 2){
  2501.         if(sscanf(params,"dd",pID1,pID2))return SCM(playerid, C_HINT, "Use: /tp [playerid][target playerid]");
  2502.         if(!IsPlayerConnected(pID1) || !IsPlayerConnected(pID2))return NOT_ONLINE_EN;
  2503.         if(IsPlayerNPC(pID1) || IsPlayerNPC(pID2))return PLAYER_NPC_EN;
  2504.         new Float:X, Float:Y, Float:Z, Float:A, string[250];
  2505.         GetPlayerPos(pID2, X, Y, Z);
  2506.         GetPlayerFacingAngle(pID2, A);
  2507.         SetPos(pID1, X, Y+2, Z, A);
  2508.         format(string, sizeof(string), "%s %s teleportet %s to %s!", GetRangName(playerid), GetName(playerid), GetName(pID1), GetName(pID2));
  2509.         WriteLog(string);
  2510.     }
  2511.     return 1;
  2512. }
  2513.  
  2514. ocmd:unban(playerid, params[]){
  2515.     if(isAdmin[playerid] < CheckUsableStatus("UNBANPLAYER_USABLE")){
  2516.         if(LANGUAGE == 1)return NotAllowed_DE;
  2517.         if(LANGUAGE == 2)return NotAllowed_EN;
  2518.     }
  2519.     new player[24];
  2520.     if(LANGUAGE == 1){
  2521.         if(sscanf(params,"s[24]",player))return SCM(playerid, C_HINT, "Benutze: /unban [spielername]");
  2522.         new path[64], string[250];
  2523.         format(path,sizeof(path), "%s/bans/%s_p.ini",SCRIPTFILES_PATH,player);
  2524.         if(fexist(path)){
  2525.             fremove(path);
  2526.             format(string, sizeof(string), "Spieler %s wurde von %s %s entbannt!", player, GetRangName(playerid), GetName(playerid));
  2527.             WriteLog(string);
  2528.             return SCM(playerid, C_INFO, "Spieler entbannt!");
  2529.         }
  2530.         format(path,sizeof(path), "%s/bans/%s_t.ini",SCRIPTFILES_PATH,player);
  2531.         if(fexist(path)){
  2532.             fremove(path);
  2533.             format(string, sizeof(string), "Spieler %s wurde von %s %s entbannt!", player, GetRangName(playerid), GetName(playerid));
  2534.             WriteLog(string);
  2535.             return SCM(playerid, C_INFO, "Spieler entbannt!");
  2536.         }
  2537.         SCM(playerid, C_ERROR, "Dieser Spieler ist nicht gebannt!");
  2538.     }
  2539.     if(LANGUAGE == 2){
  2540.         if(sscanf(params,"s[24]",player))return SCM(playerid, C_HINT, "Use: /unban [playername]");
  2541.         new path[64], string[250];
  2542.         format(path,sizeof(path), "%s/bans/%s_p.ini",SCRIPTFILES_PATH,player);
  2543.         if(fexist(path)){
  2544.             fremove(path);
  2545.             format(string, sizeof(string), "Player %s has been unbanned by %s %s", player, GetRangName(playerid), GetName(playerid));
  2546.             WriteLog(string);
  2547.             return SCM(playerid, C_INFO, "Player unbanned!");
  2548.         }
  2549.         format(path,sizeof(path), "%s/bans/%s_t.ini",SCRIPTFILES_PATH,player);
  2550.         if(fexist(path)){
  2551.             fremove(path);
  2552.             format(string, sizeof(string), "Player %s has been unbanned by %s %s", player, GetRangName(playerid), GetName(playerid));
  2553.             WriteLog(string);
  2554.             return SCM(playerid, C_INFO, "Player unbanned!");
  2555.         }
  2556.         SCM(playerid, C_ERROR, "This player is not banned!");
  2557.     }
  2558.     return 1;
  2559. }
  2560.  
  2561. ocmd:timeban(playerid, params[]){
  2562.     if(isAdmin[playerid] < CheckUsableStatus("TIMEBANPLAYER_USABLE")){
  2563.         if(LANGUAGE == 1)return NotAllowed_DE;
  2564.         if(LANGUAGE == 2)return NotAllowed_EN;
  2565.     }
  2566.     new pID, time, reason[64];
  2567.     if(LANGUAGE == 1){
  2568.         if(sscanf(params,"dds[64]",pID,time,reason))return SCM(playerid, C_HINT, "Benutze /timeban [playerid][zeit in minuten][grund]");
  2569.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  2570.         if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  2571.         if(time < 1)return SCM(playerid, C_ERROR, "Gebe eine Zeit über 0 Minuten ein!");
  2572.         new string[250];
  2573.         format(string,sizeof(string), "%s hat %s für %d Minuten gebannt. Grund: %s", GetName(playerid), GetName(pID), time, reason);
  2574.         SCMA(C_INFO,string);
  2575.         new rechnung = GetTimestamp()+(time*60);
  2576.         format(reason,sizeof(reason), "%s/bans/%s_t.ini",SCRIPTFILES_PATH,GetName(pID));
  2577.         dini_Create(reason);
  2578.         dini_IntSet(reason, "TIMESTAMP", rechnung);
  2579.         WriteLog(string);
  2580.         KickEx(pID);
  2581.     }
  2582.     if(LANGUAGE == 2){
  2583.         if(sscanf(params,"dds[64]",pID,time,reason))return SCM(playerid, C_HINT, "Use /timeban [playerid][time in minutes][reason]");
  2584.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  2585.         if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  2586.         if(time < 1)return SCM(playerid, C_ERROR, "Take a time over 0 minutes!");
  2587.         new string[250];
  2588.         format(string,sizeof(string), "%s banned %s for %d minutes. Reason: %s", GetName(playerid), GetName(pID), time, reason);
  2589.         SCMA(C_INFO,string);
  2590.         new rechnung = GetTimestamp()+(time*60);
  2591.         format(reason,sizeof(reason), "%s/bans/%s_t.ini",SCRIPTFILES_PATH,GetName(pID));
  2592.         dini_Create(reason);
  2593.         dini_IntSet(reason, "TIMESTAMP", rechnung);
  2594.         WriteLog(string);
  2595.         KickEx(pID);
  2596.     }
  2597.     return 1;
  2598. }
  2599.  
  2600. ocmd:ban(playerid, params[]){
  2601.     if(isAdmin[playerid] < CheckUsableStatus("BANPLAYER_USABLE")){
  2602.         if(LANGUAGE == 1)return NotAllowed_DE;
  2603.         if(LANGUAGE == 2)return NotAllowed_DE;
  2604.     }
  2605.     new pID, reason[64];
  2606.     if(LANGUAGE == 1){
  2607.         if(sscanf(params,"ds[64]",pID, reason))return SCM(playerid, C_HINT, "Benutze /ban [playerid][grund]");
  2608.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  2609.         if(IsPlayerNPC(pID))return PLAYER_NPC_DE;
  2610.         new string[250];
  2611.         format(string,sizeof(string), "%s hat %s vom Server gebannt. Grund: %s", GetName(playerid), GetName(pID), reason);
  2612.         SCMA(C_INFO,string);
  2613.         WriteLog(string);
  2614.         format(reason,sizeof(reason), "%s/bans/%s_p.ini",SCRIPTFILES_PATH,GetName(pID));
  2615.         if(!fexist(reason)){
  2616.             dini_Create(reason);
  2617.             dini_IntSet(reason,"BANNED",1);
  2618.         }else{
  2619.             SCM(playerid, C_ERROR, "FEHLER: SPIELER BEREITS GEBANNT!");
  2620.         }
  2621.         KickEx(pID);
  2622.     }
  2623.     if(LANGUAGE == 2){
  2624.         if(sscanf(params,"ds[64]",pID, reason))return SCM(playerid, C_HINT, "Use /ban [playerid][grund]");
  2625.         if(!IsPlayerConnected(pID))return NOT_ONLINE_EN;
  2626.         if(IsPlayerNPC(pID))return PLAYER_NPC_EN;
  2627.         new string[250];
  2628.         format(string,sizeof(string), "%s banned %s from the Server. Reason: %s", GetName(playerid), GetName(pID), reason);
  2629.         SCMA(C_INFO,string);
  2630.         WriteLog(string);
  2631.         format(reason,sizeof(reason), "%s/bans/%s_p.ini",SCRIPTFILES_PATH,GetName(pID));
  2632.         if(!fexist(reason)){
  2633.             dini_Create(reason);
  2634.             dini_IntSet(reason,"BANNED",1);
  2635.         }else{
  2636.             SCM(playerid, C_ERROR, "FEHLER: SPIELER BEREITS GEBANNT!");
  2637.         }
  2638.         KickEx(pID);
  2639.     }
  2640.     return 1;
  2641. }
  2642.  
  2643. ocmd:kick(playerid, params[]){
  2644.     if(isAdmin[playerid] < CheckUsableStatus("KICKPLAYER_USABLE")){
  2645.         if(LANGUAGE == 1)return NotAllowed_DE;
  2646.         if(LANGUAGE == 2)return NotAllowed_EN;
  2647.     }
  2648.     new pID, reason[64];
  2649.     if(LANGUAGE == 1){
  2650.         if(sscanf(params,"ds[64]",pID, reason))return SCM(playerid, C_HINT, "Benutze /kick [playerid][grund]");
  2651.         if(!IsPlayerConnected(pID))return NOT_ONLINE_DE;
  2652.         if(IsPlayerNPC(pID))return SCM(playerid, C_ERROR, "Diese ID ist ein NPC!");
  2653.         new string[250];
  2654.         format(string,sizeof(string), "%s hat %s vom Server gekickt. Grund: %s",GetName(playerid), GetName(pID), reason);
  2655.         SCMA(C_INFO, string);
  2656.         WriteLog(string);
  2657.         KickEx(pID);
  2658.     }
  2659.     if(LANGUAGE == 2){
  2660.         if(sscanf(params,"ds[64]",pID, reason))return SCM(playerid, C_HINT, "Use /kick [playerid][grund]");
  2661.         if(!IsPlayerConnected(pID))return NOT_ONLINE_EN;
  2662.         if(IsPlayerNPC(pID))return PLAYER_NPC_EN;
  2663.         new string[250];
  2664.         format(string,sizeof(string), "%s kicked %s from the Server. Reason: %s",GetName(playerid), GetName(pID), reason);
  2665.         SCMA(C_INFO, string);
  2666.         WriteLog(string);
  2667.         KickEx(pID);
  2668.     }
  2669.     return 1;
  2670. }
  2671.  
  2672. ocmd:settings(playerid){
  2673.     if(!IsPlayerAdmin(playerid)){
  2674.         if(LANGUAGE == 1) return NotAllowed_DE;
  2675.         if(LANGUAGE == 2) return NotAllowed_EN;
  2676.     }
  2677.     ShowSettingsMenu(playerid);
  2678.     return 1;
  2679. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement