admin Дата: Суббота, 17.09.2011, 13:30:53 | Сообщение # 1
Группа: Администраторы
Сообщений: 3869
верху мода: Code
#define COLOR_WHITE 0xFFFFFFAA #define COLOR_MONITOR 0xB0C4DEFF #define COLOR_MONITOR1 0xCDFF00FF #define COLOR_MONITOR2 0x91FF00FF #define COLOR_CHAT 0x00FFE632 #define COLOR_ALERTE 0xFF5A0093 #define MAX_STRING 255 #define COLOR_GRAD2 0xBFC0C2FF #define RefeshTime 1000 //Время для обновления textdraws в миллисекундах. #define NPC 0 //Количество NPC на сервере, если у вас нет NPC, используйте 0. forward SendServerMessage(color,const string[]); forward SendRCONMessage(color,const string[]); forward LoadTextDraws(playerid); forward UnLoadTextDraws(playerid); forward RefreshTextDraws(playerid); new playername[MAX_PLAYER_NAME]; new sendername[MAX_PLAYER_NAME]; new playerip[64]; new MaxP; new totalon; new npcon; new TotalConnections; new TotalTimeouts; new TotalKicks; new TotalCommands; new TotalChatMessages; new COKRCON; new CECHRCON; new Showing[MAX_PLAYERS]; new TextDrawON[MAX_PLAYERS] = 0; new RefreshTD; new Text:Textdraw0; new Text:Textdraw1; new Text:Textdraw2; new Text:Textdraw3; new Text:Textdraw4; new Text:Textdraw5; new Text:Textdraw6; new Text:Textdraw7; new Text:Textdraw8; new Text:Textdraw9;
После этого ищем:public OnGameModeInit() и туда всталвяем: Code
MaxP = GetMaxPlayers(); new stringload[256]; format(stringload, sizeof(stringload), "Мониторинг сервера chargй avec succиs!"); SendRCONMessage(COLOR_MONITOR1,stringload); Textdraw0 = TextDrawCreate(441.000000, 120.000000, "Server Monitor 2.1"); TextDrawBackgroundColor(Textdraw0, 255); TextDrawFont(Textdraw0, 1); TextDrawLetterSize(Textdraw0, 0.379999, 1.100000); TextDrawColor(Textdraw0, 16711935); TextDrawSetOutline(Textdraw0, 0); TextDrawSetProportional(Textdraw0, 1); TextDrawSetShadow(Textdraw0, 1); TextDrawUseBox(Textdraw0, 1); TextDrawBoxColor(Textdraw0, 0x00000065); TextDrawTextSize(Textdraw0, 634.000000, 22.000000); Textdraw1 = TextDrawCreate(441.000000, 134.000000, "s1"); TextDrawBackgroundColor(Textdraw1, 255); TextDrawFont(Textdraw1, 1); TextDrawLetterSize(Textdraw1, 0.320000, 1.100000); TextDrawColor(Textdraw1, -65281); TextDrawSetOutline(Textdraw1, 0); TextDrawSetProportional(Textdraw1, 1); TextDrawSetShadow(Textdraw1, 1); TextDrawUseBox(Textdraw1, 1); TextDrawBoxColor(Textdraw1, 0x00000065); TextDrawTextSize(Textdraw1, 634.000000, 22.000000); Textdraw2 = TextDrawCreate(441.000000, 148.000000, "s2"); TextDrawBackgroundColor(Textdraw2, 255); TextDrawFont(Textdraw2, 1); TextDrawLetterSize(Textdraw2, 0.320000, 1.100000); TextDrawColor(Textdraw2, -65281); TextDrawSetOutline(Textdraw2, 0); TextDrawSetProportional(Textdraw2, 1); TextDrawSetShadow(Textdraw2, 1); TextDrawUseBox(Textdraw2, 1); TextDrawBoxColor(Textdraw2, 0x00000065); TextDrawTextSize(Textdraw2, 634.000000, 22.000000); Textdraw3 = TextDrawCreate(441.000000, 162.000000, "s3"); TextDrawBackgroundColor(Textdraw3, 255); TextDrawFont(Textdraw3, 1); TextDrawLetterSize(Textdraw3, 0.320000, 1.100000); TextDrawColor(Textdraw3, -65281); TextDrawSetOutline(Textdraw3, 0); TextDrawSetProportional(Textdraw3, 1); TextDrawSetShadow(Textdraw3, 1); TextDrawUseBox(Textdraw3, 1); TextDrawBoxColor(Textdraw3, 0x00000065); TextDrawTextSize(Textdraw3, 634.000000, 22.000000); Textdraw4 = TextDrawCreate(441.000000, 176.000000, "s4"); TextDrawBackgroundColor(Textdraw4, 255); TextDrawFont(Textdraw4, 1); TextDrawLetterSize(Textdraw4, 0.320000, 1.100000); TextDrawColor(Textdraw4, -65281); TextDrawSetOutline(Textdraw4, 0); TextDrawSetProportional(Textdraw4, 1); TextDrawSetShadow(Textdraw4, 1); TextDrawUseBox(Textdraw4, 1); TextDrawBoxColor(Textdraw4, 0x00000065); TextDrawTextSize(Textdraw4, 634.000000, 22.000000); Textdraw5 = TextDrawCreate(441.000000, 190.000000, "s5"); TextDrawBackgroundColor(Textdraw5, 255); TextDrawFont(Textdraw5, 1); TextDrawLetterSize(Textdraw5, 0.320000, 1.100000); TextDrawColor(Textdraw5, -65281); TextDrawSetOutline(Textdraw5, 0); TextDrawSetProportional(Textdraw5, 1); TextDrawSetShadow(Textdraw5, 1); TextDrawUseBox(Textdraw5, 1); TextDrawBoxColor(Textdraw5, 0x00000065); TextDrawTextSize(Textdraw5, 634.000000, 22.000000); Textdraw6 = TextDrawCreate(441.000000, 204.000000, "s6"); TextDrawBackgroundColor(Textdraw6, 255); TextDrawFont(Textdraw6, 1); TextDrawLetterSize(Textdraw6, 0.320000, 1.100000); TextDrawColor(Textdraw6, -65281); TextDrawSetOutline(Textdraw6, 0); TextDrawSetProportional(Textdraw6, 1); TextDrawSetShadow(Textdraw6, 1); TextDrawUseBox(Textdraw6, 1); TextDrawBoxColor(Textdraw6, 0x00000065); TextDrawTextSize(Textdraw6, 634.000000, 22.000000); Textdraw7 = TextDrawCreate(441.000000, 218.000000, "s7"); TextDrawBackgroundColor(Textdraw7, 255); TextDrawFont(Textdraw7, 1); TextDrawLetterSize(Textdraw7, 0.320000, 1.100000); TextDrawColor(Textdraw7, -65281); TextDrawSetOutline(Textdraw7, 0); TextDrawSetProportional(Textdraw7, 1); TextDrawSetShadow(Textdraw7, 1); TextDrawUseBox(Textdraw7, 1); TextDrawBoxColor(Textdraw7, 0x00000065); TextDrawTextSize(Textdraw7, 634.000000, 22.000000); Textdraw8 = TextDrawCreate(441.000000, 232.000000, "s8"); TextDrawBackgroundColor(Textdraw8, 255); TextDrawFont(Textdraw8, 1); TextDrawLetterSize(Textdraw8, 0.300000, 1.100000); TextDrawColor(Textdraw8, -65281); TextDrawSetOutline(Textdraw8, 0); TextDrawSetProportional(Textdraw8, 1); TextDrawSetShadow(Textdraw8, 1); TextDrawUseBox(Textdraw8, 1); TextDrawBoxColor(Textdraw8, 0x00000065); TextDrawTextSize(Textdraw8, 634.000000, 22.000000); Textdraw9 = TextDrawCreate(441.000000, 246.000000, "s9"); TextDrawBackgroundColor(Textdraw9, 255); TextDrawFont(Textdraw9, 1); TextDrawLetterSize(Textdraw9, 0.300000, 1.100000); TextDrawColor(Textdraw9, -65281); TextDrawSetOutline(Textdraw9, 0); TextDrawSetProportional(Textdraw9, 1); TextDrawSetShadow(Textdraw9, 1); TextDrawUseBox(Textdraw9, 1); TextDrawBoxColor(Textdraw9, 0x00000065); TextDrawTextSize(Textdraw9, 634.000000, 22.000000); RefreshTD = SetTimer("RefreshTextDraws", RefeshTime, 1);
Примерно так должен быть public Code
public OnGameModeInit() { MaxP = GetMaxPlayers(); new stringload[256]; format(stringload, sizeof(stringload), "Мониторинг сервера chargй avec succиs!"); SendRCONMessage(COLOR_MONITOR1,stringload); Textdraw0 = TextDrawCreate(441.000000, 120.000000, "Server Monitor 2.1"); TextDrawBackgroundColor(Textdraw0, 255); TextDrawFont(Textdraw0, 1); TextDrawLetterSize(Textdraw0, 0.379999, 1.100000); TextDrawColor(Textdraw0, 16711935); TextDrawSetOutline(Textdraw0, 0); TextDrawSetProportional(Textdraw0, 1); TextDrawSetShadow(Textdraw0, 1); TextDrawUseBox(Textdraw0, 1); TextDrawBoxColor(Textdraw0, 0x00000065); TextDrawTextSize(Textdraw0, 634.000000, 22.000000); Textdraw1 = TextDrawCreate(441.000000, 134.000000, "s1"); TextDrawBackgroundColor(Textdraw1, 255); TextDrawFont(Textdraw1, 1); TextDrawLetterSize(Textdraw1, 0.320000, 1.100000); TextDrawColor(Textdraw1, -65281); TextDrawSetOutline(Textdraw1, 0); TextDrawSetProportional(Textdraw1, 1); TextDrawSetShadow(Textdraw1, 1); TextDrawUseBox(Textdraw1, 1); TextDrawBoxColor(Textdraw1, 0x00000065); TextDrawTextSize(Textdraw1, 634.000000, 22.000000); Textdraw2 = TextDrawCreate(441.000000, 148.000000, "s2"); TextDrawBackgroundColor(Textdraw2, 255); TextDrawFont(Textdraw2, 1); TextDrawLetterSize(Textdraw2, 0.320000, 1.100000); TextDrawColor(Textdraw2, -65281); TextDrawSetOutline(Textdraw2, 0); TextDrawSetProportional(Textdraw2, 1); TextDrawSetShadow(Textdraw2, 1); TextDrawUseBox(Textdraw2, 1); TextDrawBoxColor(Textdraw2, 0x00000065); TextDrawTextSize(Textdraw2, 634.000000, 22.000000); Textdraw3 = TextDrawCreate(441.000000, 162.000000, "s3"); TextDrawBackgroundColor(Textdraw3, 255); TextDrawFont(Textdraw3, 1); TextDrawLetterSize(Textdraw3, 0.320000, 1.100000); TextDrawColor(Textdraw3, -65281); TextDrawSetOutline(Textdraw3, 0); TextDrawSetProportional(Textdraw3, 1); TextDrawSetShadow(Textdraw3, 1); TextDrawUseBox(Textdraw3, 1); TextDrawBoxColor(Textdraw3, 0x00000065); TextDrawTextSize(Textdraw3, 634.000000, 22.000000); Textdraw4 = TextDrawCreate(441.000000, 176.000000, "s4"); TextDrawBackgroundColor(Textdraw4, 255); TextDrawFont(Textdraw4, 1); TextDrawLetterSize(Textdraw4, 0.320000, 1.100000); TextDrawColor(Textdraw4, -65281); TextDrawSetOutline(Textdraw4, 0); TextDrawSetProportional(Textdraw4, 1); TextDrawSetShadow(Textdraw4, 1); TextDrawUseBox(Textdraw4, 1); TextDrawBoxColor(Textdraw4, 0x00000065); TextDrawTextSize(Textdraw4, 634.000000, 22.000000); Textdraw5 = TextDrawCreate(441.000000, 190.000000, "s5"); TextDrawBackgroundColor(Textdraw5, 255); TextDrawFont(Textdraw5, 1); TextDrawLetterSize(Textdraw5, 0.320000, 1.100000); TextDrawColor(Textdraw5, -65281); TextDrawSetOutline(Textdraw5, 0); TextDrawSetProportional(Textdraw5, 1); TextDrawSetShadow(Textdraw5, 1); TextDrawUseBox(Textdraw5, 1); TextDrawBoxColor(Textdraw5, 0x00000065); TextDrawTextSize(Textdraw5, 634.000000, 22.000000); Textdraw6 = TextDrawCreate(441.000000, 204.000000, "s6"); TextDrawBackgroundColor(Textdraw6, 255); TextDrawFont(Textdraw6, 1); TextDrawLetterSize(Textdraw6, 0.320000, 1.100000); TextDrawColor(Textdraw6, -65281); TextDrawSetOutline(Textdraw6, 0); TextDrawSetProportional(Textdraw6, 1); TextDrawSetShadow(Textdraw6, 1); TextDrawUseBox(Textdraw6, 1); TextDrawBoxColor(Textdraw6, 0x00000065); TextDrawTextSize(Textdraw6, 634.000000, 22.000000); Textdraw7 = TextDrawCreate(441.000000, 218.000000, "s7"); TextDrawBackgroundColor(Textdraw7, 255); TextDrawFont(Textdraw7, 1); TextDrawLetterSize(Textdraw7, 0.320000, 1.100000); TextDrawColor(Textdraw7, -65281); TextDrawSetOutline(Textdraw7, 0); TextDrawSetProportional(Textdraw7, 1); TextDrawSetShadow(Textdraw7, 1); TextDrawUseBox(Textdraw7, 1); TextDrawBoxColor(Textdraw7, 0x00000065); TextDrawTextSize(Textdraw7, 634.000000, 22.000000); Textdraw8 = TextDrawCreate(441.000000, 232.000000, "s8"); TextDrawBackgroundColor(Textdraw8, 255); TextDrawFont(Textdraw8, 1); TextDrawLetterSize(Textdraw8, 0.300000, 1.100000); TextDrawColor(Textdraw8, -65281); TextDrawSetOutline(Textdraw8, 0); TextDrawSetProportional(Textdraw8, 1); TextDrawSetShadow(Textdraw8, 1); TextDrawUseBox(Textdraw8, 1); TextDrawBoxColor(Textdraw8, 0x00000065); TextDrawTextSize(Textdraw8, 634.000000, 22.000000); Textdraw9 = TextDrawCreate(441.000000, 246.000000, "s9"); TextDrawBackgroundColor(Textdraw9, 255); TextDrawFont(Textdraw9, 1); TextDrawLetterSize(Textdraw9, 0.300000, 1.100000); TextDrawColor(Textdraw9, -65281); TextDrawSetOutline(Textdraw9, 0); TextDrawSetProportional(Textdraw9, 1); TextDrawSetShadow(Textdraw9, 1); TextDrawUseBox(Textdraw9, 1); TextDrawBoxColor(Textdraw9, 0x00000065); TextDrawTextSize(Textdraw9, 634.000000, 22.000000); RefreshTD = SetTimer("RefreshTextDraws", RefeshTime, 1); return 1; }
После этого ищем public OnGameModeExit() и туда вставляем: Code
new stringunload[256]; format(stringunload, sizeof(stringunload), "Мониторинг сервера tuй avec succиs!"); SendRCONMessage(COLOR_ALERTE,stringunload); TextDrawHideForAll(Textdraw0); TextDrawDestroy(Textdraw0); TextDrawHideForAll(Textdraw1); TextDrawDestroy(Textdraw1); TextDrawHideForAll(Textdraw2); TextDrawDestroy(Textdraw2); TextDrawHideForAll(Textdraw3); TextDrawDestroy(Textdraw3); TextDrawHideForAll(Textdraw4); TextDrawDestroy(Textdraw4); TextDrawHideForAll(Textdraw5); TextDrawDestroy(Textdraw5); TextDrawHideForAll(Textdraw6); TextDrawDestroy(Textdraw6); TextDrawHideForAll(Textdraw7); TextDrawDestroy(Textdraw7); TextDrawHideForAll(Textdraw8); TextDrawDestroy(Textdraw8); TextDrawHideForAll(Textdraw9); TextDrawDestroy(Textdraw9); KillTimer(RefreshTD);
Примерно так должен быть public: Code
public OnGameModeExit() { new stringunload[256]; format(stringunload, sizeof(stringunload), "Мониторинг сервера tuй avec succиs!"); SendRCONMessage(COLOR_ALERTE,stringunload); TextDrawHideForAll(Textdraw0); TextDrawDestroy(Textdraw0); TextDrawHideForAll(Textdraw1); TextDrawDestroy(Textdraw1); TextDrawHideForAll(Textdraw2); TextDrawDestroy(Textdraw2); TextDrawHideForAll(Textdraw3); TextDrawDestroy(Textdraw3); TextDrawHideForAll(Textdraw4); TextDrawDestroy(Textdraw4); TextDrawHideForAll(Textdraw5); TextDrawDestroy(Textdraw5); TextDrawHideForAll(Textdraw6); TextDrawDestroy(Textdraw6); TextDrawHideForAll(Textdraw7); TextDrawDestroy(Textdraw7); TextDrawHideForAll(Textdraw8); TextDrawDestroy(Textdraw8); TextDrawHideForAll(Textdraw9); TextDrawDestroy(Textdraw9); KillTimer(RefreshTD); return 1; }
после этого ищем public OnPlayerCommandText я сразу скину полностью этот public примером: Code
public OnPlayerCommandText(playerid, cmdtext[]) { TotalCommands++; new idx; new string[256]; new cmd[256]; cmd = strtok(cmdtext, idx); if(strcmp(cmdtext, "/allplayersip", true) == 0) { if (IsPlayerAdmin(playerid)) { for(new j = 0; j < MAX_PLAYERS; j++) { if(IsPlayerConnected(j)) { GetPlayerIp(j,playerip,sizeof(playerip)); GetPlayerName(j, playername, sizeof(playername)); format(string, 256, "Игрок обнаружен !! IP : %s, Имя : %s.", playerip, playername); SendClientMessage(playerid,COLOR_MONITOR,string); } } } else { SendClientMessage(playerid, COLOR_GRAD2, "Ошибка : Только админы могут использовать команду!"); return 1; } return 1; } if(strcmp(cmdtext, "/mhelp", true) == 0) { if (IsPlayerAdmin(playerid)) { SendClientMessage(playerid,COLOR_WHITE,"------------------------| ПОмощь по монитору сервера |----------------------"); SendClientMessage(playerid,COLOR_MONITOR,"/ssay /allplayersip /monitor"); SendClientMessage(playerid,COLOR_MONITOR,"/mc /monitortd{FF0000}NEW!"); } else { SendClientMessage(playerid, COLOR_GRAD2, "ОШибка : Только админы могут использовать команду!"); return 1; } return 1; } if(strcmp(cmdtext, "/monitor", true) == 0) { if (IsPlayerAdmin(playerid)) { totalon = 0; for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(totalon == 0) { totalon = 1; } else if (totalon > 0) { if(IsPlayerNPC(playerid)) { npcon++; } totalon++; } } } SendClientMessage(playerid,COLOR_WHITE,"----------------| Сервер монитор |----------------"); format(string, 256, "Игроков online : %i/%i.", totalon-NPC, MaxP-NPC); SendClientMessage(playerid,COLOR_MONITOR1,string); new restant = MaxP-totalon-NPC; format(string, 256, "Свободные слоты : %i.", restant); SendClientMessage(playerid,COLOR_MONITOR1,string); format(string, 256, "Всего подключений : %d.", TotalConnections); SendClientMessage(playerid,COLOR_MONITOR1,string); format(string, 256, "Всего сбоев Игроки : %d.", TotalTimeouts); SendClientMessage(playerid,COLOR_MONITOR1,string); format(string, 256, "Всего игроков выходило : %d.", TotalKicks); SendClientMessage(playerid,COLOR_MONITOR1,string); format(string, 256, "Всего Команды, используемые : %d.", TotalCommands); SendClientMessage(playerid,COLOR_MONITOR1,string); format(string, 256, "Всего сообщений Отправить : %d.", TotalChatMessages); SendClientMessage(playerid,COLOR_MONITOR1,string); format(string, 256, "Conexions au RCON (Echec) : %d.", CECHRCON); SendClientMessage(playerid,COLOR_MONITOR1,string); format(string, 256, "Conexions au RCON (Rйussie) : %d.", COKRCON); SendClientMessage(playerid,COLOR_MONITOR1,string); SendClientMessage(playerid,COLOR_WHITE,"--------------------------------"); format(string, 256, "RCON администрации олайн :"); SendClientMessage(playerid,COLOR_MONITOR2,string); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(IsPlayerAdmin(i)) { new ip[64]; GetPlayerName(i, sendername, sizeof(sendername)); GetPlayerIp(i,ip,sizeof(ip)); format(string, 256, "Имя : %s, IP : %s", sendername, ip); SendClientMessage(playerid, COLOR_MONITOR2, string); } } } } else { SendClientMessage(playerid, COLOR_GRAD2, "ОШибка : Только админы могут использовать команду!"); return 1; } return 1; } if(strcmp(cmdtext, "/monitortd", true) == 0) { if (IsPlayerAdmin(playerid)) { if(TextDrawON[playerid] == 0) { LoadTextDraws(playerid); TextDrawON[playerid] = 1; } else { UnLoadTextDraws(playerid); TextDrawON[playerid] = 0; } } else { SendClientMessage(playerid, COLOR_GRAD2, "Ошибка : Только админы могут использовать команду!"); return 1; } return 1; } if(strcmp(cmd,"/ssay",true)==0) { if (IsPlayerAdmin(playerid)) { new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[MAX_STRING]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD2, "Использование: /s(erver)say [Сообщения]"); return 1; } format(string, sizeof(string), "Сервер: %s", result); SendServerMessage(COLOR_MONITOR,string); } else { SendClientMessage(playerid, COLOR_GRAD2, "Ошибка : Только админы могут использовать команду!"); return 1; } return 1; } if(strcmp(cmd,"/mc",true)==0) { if (IsPlayerAdmin(playerid)) { new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[MAX_STRING]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD2, "Использование: /mc [чат]"); return 1; } GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "RCON админ %s: %s", sendername,result); SendRCONMessage(COLOR_CHAT,string); } else { SendClientMessage(playerid, COLOR_GRAD2, "Ошибка : Только админы могут использовать команду!"); return 1; } return 1; } return 0; }
и потом в любое место добавляем сами функции: Code
public OnRconLoginAttempt(ip[], password[], success) { if(!success) { CECHRCON++; } else { COKRCON++; } return 1; } public SendServerMessage(color,const string[]) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { SendClientMessage(i, color, string); } } } public SendRCONMessage(color,const string[]) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if (IsPlayerAdmin(i)) { SendClientMessage(i, color, string); } } } } public LoadTextDraws(playerid) { totalon = 0; for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(totalon == 0) { totalon = 1; } else if (totalon > 0) { if(IsPlayerNPC(playerid)) { npcon++; } totalon++; } } } new s1[256]; format(s1, 256, "Players Online %d/%d.",totalon-NPC, MaxP-NPC); new s2[256]; new restant = MaxP-totalon-NPC; format(s2, 256, "Slots available : %i.", restant); new s3[256]; format(s3, 256, "Total Connection : %d.", TotalConnections); new s4[256]; format(s4, 256, "Total Players Crash : %d.", TotalTimeouts); new s5[256]; format(s5, 256, "Total Players Quit : %d.", TotalKicks); new s6[256]; format(s6, 256, "Total Commands Used : %d.", TotalCommands); new s7[256]; format(s7, 256, "Total Messages Send : %d.", TotalChatMessages); new s8[256]; format(s8, 256, "RCON Connections (Failed) : %d.", CECHRCON); new s9[256]; format(s9, 256, "RCON Connections (Success) : %d.", COKRCON); TextDrawSetString(Text:Textdraw1, s1); TextDrawSetString(Text:Textdraw2, s2); TextDrawSetString(Text:Textdraw3, s3); TextDrawSetString(Text:Textdraw4, s4); TextDrawSetString(Text:Textdraw5, s5); TextDrawSetString(Text:Textdraw6, s6); TextDrawSetString(Text:Textdraw7, s7); TextDrawSetString(Text:Textdraw8, s8); TextDrawSetString(Text:Textdraw9, s9); TextDrawShowForPlayer(playerid, Textdraw0); TextDrawShowForPlayer(playerid, Textdraw1); TextDrawShowForPlayer(playerid, Textdraw2); TextDrawShowForPlayer(playerid, Textdraw3); TextDrawShowForPlayer(playerid, Textdraw4); TextDrawShowForPlayer(playerid, Textdraw5); TextDrawShowForPlayer(playerid, Textdraw6); TextDrawShowForPlayer(playerid, Textdraw7); TextDrawShowForPlayer(playerid, Textdraw8); TextDrawShowForPlayer(playerid, Textdraw9); } public RefreshTextDraws(playerid) { totalon = 0; for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(totalon == 0) { totalon = 1; } else if (totalon > 0) { if(IsPlayerNPC(playerid)) { npcon++; } totalon++; } } } TextDrawHideForPlayer(playerid, Textdraw0); TextDrawHideForPlayer(playerid, Textdraw1); TextDrawHideForPlayer(playerid, Textdraw2); TextDrawHideForPlayer(playerid, Textdraw3); TextDrawHideForPlayer(playerid, Textdraw4); TextDrawHideForPlayer(playerid, Textdraw5); TextDrawHideForPlayer(playerid, Textdraw6); TextDrawHideForPlayer(playerid, Textdraw7); TextDrawHideForPlayer(playerid, Textdraw8); TextDrawHideForPlayer(playerid, Textdraw9); new s1[256]; format(s1, 256, "Players Online %d/%d.",totalon-NPC, MaxP-NPC); new s2[256]; new restant = MaxP-totalon-NPC; format(s2, 256, "Slots available : %i.", restant); new s3[256]; format(s3, 256, "Total Connection : %d.", TotalConnections); new s4[256]; format(s4, 256, "Total Players Crash : %d.", TotalTimeouts); new s5[256]; format(s5, 256, "Total Players Quit : %d.", TotalKicks); new s6[256]; format(s6, 256, "Total Commands Used : %d.", TotalCommands); new s7[256]; format(s7, 256, "Total Messages Send : %d.", TotalChatMessages); new s8[256]; format(s8, 256, "RCON Connections (Failed) : %d.", CECHRCON); new s9[256]; format(s9, 256, "RCON Connections (Success) : %d.", COKRCON); TextDrawSetString(Text:Textdraw1, s1); TextDrawSetString(Text:Textdraw2, s2); TextDrawSetString(Text:Textdraw3, s3); TextDrawSetString(Text:Textdraw4, s4); TextDrawSetString(Text:Textdraw5, s5); TextDrawSetString(Text:Textdraw6, s6); TextDrawSetString(Text:Textdraw7, s7); TextDrawSetString(Text:Textdraw8, s8); TextDrawSetString(Text:Textdraw9, s9); TextDrawShowForPlayer(playerid, Textdraw0); TextDrawShowForPlayer(playerid, Textdraw1); TextDrawShowForPlayer(playerid, Textdraw2); TextDrawShowForPlayer(playerid, Textdraw3); TextDrawShowForPlayer(playerid, Textdraw4); TextDrawShowForPlayer(playerid, Textdraw5); TextDrawShowForPlayer(playerid, Textdraw6); TextDrawShowForPlayer(playerid, Textdraw7); TextDrawShowForPlayer(playerid, Textdraw8); TextDrawShowForPlayer(playerid, Textdraw9); } public UnLoadTextDraws(playerid) { TextDrawHideForPlayer(playerid, Textdraw0); TextDrawHideForPlayer(playerid, Textdraw1); TextDrawHideForPlayer(playerid, Textdraw2); TextDrawHideForPlayer(playerid, Textdraw3); TextDrawHideForPlayer(playerid, Textdraw4); TextDrawHideForPlayer(playerid, Textdraw5); TextDrawHideForPlayer(playerid, Textdraw6); TextDrawHideForPlayer(playerid, Textdraw7); TextDrawHideForPlayer(playerid, Textdraw8); TextDrawHideForPlayer(playerid, Textdraw9); } strtok(const string[], &index,seperator=' ') { new length = strlen(string); new offset = index; new result[128]; while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; if ((index < length) && (string[index] == seperator)) { index++; } return result; }
И после этого ищем public OnPlayerDisconnect и туда всталвяем: Code
switch(reason) { case 0: { TotalTimeouts++; } case 2: { TotalKicks++; } }
Примерно так должен быть public: Code
public OnPlayerDisconnect(playerid, reason) { switch(reason) { case 0: { TotalTimeouts++; } case 2: { TotalKicks++; } } return 1; }
После этого ищем public OnPlayerConnect и туда вставляем: Примерно так должен быть public: Code
public OnPlayerConnect(playerid) { TotalConnections++; return 1; }
И после этого ищем public OnPlayerText и туда вставляем: Code
TotalChatMessages++; Showing[playerid] = 0;
Примерно так должен быть public: Code
public OnPlayerText(playerid, text[]) { TotalChatMessages++; Showing[playerid] = 0; return 1; }
Урок by - 26_RUSSS Автор самого кода: Skylive77
zm-jail.ru Разработка сайта samp-pawno.ru
Сообщение верху мода: Code
#define COLOR_WHITE 0xFFFFFFAA #define COLOR_MONITOR 0xB0C4DEFF #define COLOR_MONITOR1 0xCDFF00FF #define COLOR_MONITOR2 0x91FF00FF #define COLOR_CHAT 0x00FFE632 #define COLOR_ALERTE 0xFF5A0093 #define MAX_STRING 255 #define COLOR_GRAD2 0xBFC0C2FF #define RefeshTime 1000 //Время для обновления textdraws в миллисекундах. #define NPC 0 //Количество NPC на сервере, если у вас нет NPC, используйте 0. forward SendServerMessage(color,const string[]); forward SendRCONMessage(color,const string[]); forward LoadTextDraws(playerid); forward UnLoadTextDraws(playerid); forward RefreshTextDraws(playerid); new playername[MAX_PLAYER_NAME]; new sendername[MAX_PLAYER_NAME]; new playerip[64]; new MaxP; new totalon; new npcon; new TotalConnections; new TotalTimeouts; new TotalKicks; new TotalCommands; new TotalChatMessages; new COKRCON; new CECHRCON; new Showing[MAX_PLAYERS]; new TextDrawON[MAX_PLAYERS] = 0; new RefreshTD; new Text:Textdraw0; new Text:Textdraw1; new Text:Textdraw2; new Text:Textdraw3; new Text:Textdraw4; new Text:Textdraw5; new Text:Textdraw6; new Text:Textdraw7; new Text:Textdraw8; new Text:Textdraw9;
После этого ищем:public OnGameModeInit() и туда всталвяем: Code
MaxP = GetMaxPlayers(); new stringload[256]; format(stringload, sizeof(stringload), "Мониторинг сервера chargй avec succиs!"); SendRCONMessage(COLOR_MONITOR1,stringload); Textdraw0 = TextDrawCreate(441.000000, 120.000000, "Server Monitor 2.1"); TextDrawBackgroundColor(Textdraw0, 255); TextDrawFont(Textdraw0, 1); TextDrawLetterSize(Textdraw0, 0.379999, 1.100000); TextDrawColor(Textdraw0, 16711935); TextDrawSetOutline(Textdraw0, 0); TextDrawSetProportional(Textdraw0, 1); TextDrawSetShadow(Textdraw0, 1); TextDrawUseBox(Textdraw0, 1); TextDrawBoxColor(Textdraw0, 0x00000065); TextDrawTextSize(Textdraw0, 634.000000, 22.000000); Textdraw1 = TextDrawCreate(441.000000, 134.000000, "s1"); TextDrawBackgroundColor(Textdraw1, 255); TextDrawFont(Textdraw1, 1); TextDrawLetterSize(Textdraw1, 0.320000, 1.100000); TextDrawColor(Textdraw1, -65281); TextDrawSetOutline(Textdraw1, 0); TextDrawSetProportional(Textdraw1, 1); TextDrawSetShadow(Textdraw1, 1); TextDrawUseBox(Textdraw1, 1); TextDrawBoxColor(Textdraw1, 0x00000065); TextDrawTextSize(Textdraw1, 634.000000, 22.000000); Textdraw2 = TextDrawCreate(441.000000, 148.000000, "s2"); TextDrawBackgroundColor(Textdraw2, 255); TextDrawFont(Textdraw2, 1); TextDrawLetterSize(Textdraw2, 0.320000, 1.100000); TextDrawColor(Textdraw2, -65281); TextDrawSetOutline(Textdraw2, 0); TextDrawSetProportional(Textdraw2, 1); TextDrawSetShadow(Textdraw2, 1); TextDrawUseBox(Textdraw2, 1); TextDrawBoxColor(Textdraw2, 0x00000065); TextDrawTextSize(Textdraw2, 634.000000, 22.000000); Textdraw3 = TextDrawCreate(441.000000, 162.000000, "s3"); TextDrawBackgroundColor(Textdraw3, 255); TextDrawFont(Textdraw3, 1); TextDrawLetterSize(Textdraw3, 0.320000, 1.100000); TextDrawColor(Textdraw3, -65281); TextDrawSetOutline(Textdraw3, 0); TextDrawSetProportional(Textdraw3, 1); TextDrawSetShadow(Textdraw3, 1); TextDrawUseBox(Textdraw3, 1); TextDrawBoxColor(Textdraw3, 0x00000065); TextDrawTextSize(Textdraw3, 634.000000, 22.000000); Textdraw4 = TextDrawCreate(441.000000, 176.000000, "s4"); TextDrawBackgroundColor(Textdraw4, 255); TextDrawFont(Textdraw4, 1); TextDrawLetterSize(Textdraw4, 0.320000, 1.100000); TextDrawColor(Textdraw4, -65281); TextDrawSetOutline(Textdraw4, 0); TextDrawSetProportional(Textdraw4, 1); TextDrawSetShadow(Textdraw4, 1); TextDrawUseBox(Textdraw4, 1); TextDrawBoxColor(Textdraw4, 0x00000065); TextDrawTextSize(Textdraw4, 634.000000, 22.000000); Textdraw5 = TextDrawCreate(441.000000, 190.000000, "s5"); TextDrawBackgroundColor(Textdraw5, 255); TextDrawFont(Textdraw5, 1); TextDrawLetterSize(Textdraw5, 0.320000, 1.100000); TextDrawColor(Textdraw5, -65281); TextDrawSetOutline(Textdraw5, 0); TextDrawSetProportional(Textdraw5, 1); TextDrawSetShadow(Textdraw5, 1); TextDrawUseBox(Textdraw5, 1); TextDrawBoxColor(Textdraw5, 0x00000065); TextDrawTextSize(Textdraw5, 634.000000, 22.000000); Textdraw6 = TextDrawCreate(441.000000, 204.000000, "s6"); TextDrawBackgroundColor(Textdraw6, 255); TextDrawFont(Textdraw6, 1); TextDrawLetterSize(Textdraw6, 0.320000, 1.100000); TextDrawColor(Textdraw6, -65281); TextDrawSetOutline(Textdraw6, 0); TextDrawSetProportional(Textdraw6, 1); TextDrawSetShadow(Textdraw6, 1); TextDrawUseBox(Textdraw6, 1); TextDrawBoxColor(Textdraw6, 0x00000065); TextDrawTextSize(Textdraw6, 634.000000, 22.000000); Textdraw7 = TextDrawCreate(441.000000, 218.000000, "s7"); TextDrawBackgroundColor(Textdraw7, 255); TextDrawFont(Textdraw7, 1); TextDrawLetterSize(Textdraw7, 0.320000, 1.100000); TextDrawColor(Textdraw7, -65281); TextDrawSetOutline(Textdraw7, 0); TextDrawSetProportional(Textdraw7, 1); TextDrawSetShadow(Textdraw7, 1); TextDrawUseBox(Textdraw7, 1); TextDrawBoxColor(Textdraw7, 0x00000065); TextDrawTextSize(Textdraw7, 634.000000, 22.000000); Textdraw8 = TextDrawCreate(441.000000, 232.000000, "s8"); TextDrawBackgroundColor(Textdraw8, 255); TextDrawFont(Textdraw8, 1); TextDrawLetterSize(Textdraw8, 0.300000, 1.100000); TextDrawColor(Textdraw8, -65281); TextDrawSetOutline(Textdraw8, 0); TextDrawSetProportional(Textdraw8, 1); TextDrawSetShadow(Textdraw8, 1); TextDrawUseBox(Textdraw8, 1); TextDrawBoxColor(Textdraw8, 0x00000065); TextDrawTextSize(Textdraw8, 634.000000, 22.000000); Textdraw9 = TextDrawCreate(441.000000, 246.000000, "s9"); TextDrawBackgroundColor(Textdraw9, 255); TextDrawFont(Textdraw9, 1); TextDrawLetterSize(Textdraw9, 0.300000, 1.100000); TextDrawColor(Textdraw9, -65281); TextDrawSetOutline(Textdraw9, 0); TextDrawSetProportional(Textdraw9, 1); TextDrawSetShadow(Textdraw9, 1); TextDrawUseBox(Textdraw9, 1); TextDrawBoxColor(Textdraw9, 0x00000065); TextDrawTextSize(Textdraw9, 634.000000, 22.000000); RefreshTD = SetTimer("RefreshTextDraws", RefeshTime, 1);
Примерно так должен быть public Code
public OnGameModeInit() { MaxP = GetMaxPlayers(); new stringload[256]; format(stringload, sizeof(stringload), "Мониторинг сервера chargй avec succиs!"); SendRCONMessage(COLOR_MONITOR1,stringload); Textdraw0 = TextDrawCreate(441.000000, 120.000000, "Server Monitor 2.1"); TextDrawBackgroundColor(Textdraw0, 255); TextDrawFont(Textdraw0, 1); TextDrawLetterSize(Textdraw0, 0.379999, 1.100000); TextDrawColor(Textdraw0, 16711935); TextDrawSetOutline(Textdraw0, 0); TextDrawSetProportional(Textdraw0, 1); TextDrawSetShadow(Textdraw0, 1); TextDrawUseBox(Textdraw0, 1); TextDrawBoxColor(Textdraw0, 0x00000065); TextDrawTextSize(Textdraw0, 634.000000, 22.000000); Textdraw1 = TextDrawCreate(441.000000, 134.000000, "s1"); TextDrawBackgroundColor(Textdraw1, 255); TextDrawFont(Textdraw1, 1); TextDrawLetterSize(Textdraw1, 0.320000, 1.100000); TextDrawColor(Textdraw1, -65281); TextDrawSetOutline(Textdraw1, 0); TextDrawSetProportional(Textdraw1, 1); TextDrawSetShadow(Textdraw1, 1); TextDrawUseBox(Textdraw1, 1); TextDrawBoxColor(Textdraw1, 0x00000065); TextDrawTextSize(Textdraw1, 634.000000, 22.000000); Textdraw2 = TextDrawCreate(441.000000, 148.000000, "s2"); TextDrawBackgroundColor(Textdraw2, 255); TextDrawFont(Textdraw2, 1); TextDrawLetterSize(Textdraw2, 0.320000, 1.100000); TextDrawColor(Textdraw2, -65281); TextDrawSetOutline(Textdraw2, 0); TextDrawSetProportional(Textdraw2, 1); TextDrawSetShadow(Textdraw2, 1); TextDrawUseBox(Textdraw2, 1); TextDrawBoxColor(Textdraw2, 0x00000065); TextDrawTextSize(Textdraw2, 634.000000, 22.000000); Textdraw3 = TextDrawCreate(441.000000, 162.000000, "s3"); TextDrawBackgroundColor(Textdraw3, 255); TextDrawFont(Textdraw3, 1); TextDrawLetterSize(Textdraw3, 0.320000, 1.100000); TextDrawColor(Textdraw3, -65281); TextDrawSetOutline(Textdraw3, 0); TextDrawSetProportional(Textdraw3, 1); TextDrawSetShadow(Textdraw3, 1); TextDrawUseBox(Textdraw3, 1); TextDrawBoxColor(Textdraw3, 0x00000065); TextDrawTextSize(Textdraw3, 634.000000, 22.000000); Textdraw4 = TextDrawCreate(441.000000, 176.000000, "s4"); TextDrawBackgroundColor(Textdraw4, 255); TextDrawFont(Textdraw4, 1); TextDrawLetterSize(Textdraw4, 0.320000, 1.100000); TextDrawColor(Textdraw4, -65281); TextDrawSetOutline(Textdraw4, 0); TextDrawSetProportional(Textdraw4, 1); TextDrawSetShadow(Textdraw4, 1); TextDrawUseBox(Textdraw4, 1); TextDrawBoxColor(Textdraw4, 0x00000065); TextDrawTextSize(Textdraw4, 634.000000, 22.000000); Textdraw5 = TextDrawCreate(441.000000, 190.000000, "s5"); TextDrawBackgroundColor(Textdraw5, 255); TextDrawFont(Textdraw5, 1); TextDrawLetterSize(Textdraw5, 0.320000, 1.100000); TextDrawColor(Textdraw5, -65281); TextDrawSetOutline(Textdraw5, 0); TextDrawSetProportional(Textdraw5, 1); TextDrawSetShadow(Textdraw5, 1); TextDrawUseBox(Textdraw5, 1); TextDrawBoxColor(Textdraw5, 0x00000065); TextDrawTextSize(Textdraw5, 634.000000, 22.000000); Textdraw6 = TextDrawCreate(441.000000, 204.000000, "s6"); TextDrawBackgroundColor(Textdraw6, 255); TextDrawFont(Textdraw6, 1); TextDrawLetterSize(Textdraw6, 0.320000, 1.100000); TextDrawColor(Textdraw6, -65281); TextDrawSetOutline(Textdraw6, 0); TextDrawSetProportional(Textdraw6, 1); TextDrawSetShadow(Textdraw6, 1); TextDrawUseBox(Textdraw6, 1); TextDrawBoxColor(Textdraw6, 0x00000065); TextDrawTextSize(Textdraw6, 634.000000, 22.000000); Textdraw7 = TextDrawCreate(441.000000, 218.000000, "s7"); TextDrawBackgroundColor(Textdraw7, 255); TextDrawFont(Textdraw7, 1); TextDrawLetterSize(Textdraw7, 0.320000, 1.100000); TextDrawColor(Textdraw7, -65281); TextDrawSetOutline(Textdraw7, 0); TextDrawSetProportional(Textdraw7, 1); TextDrawSetShadow(Textdraw7, 1); TextDrawUseBox(Textdraw7, 1); TextDrawBoxColor(Textdraw7, 0x00000065); TextDrawTextSize(Textdraw7, 634.000000, 22.000000); Textdraw8 = TextDrawCreate(441.000000, 232.000000, "s8"); TextDrawBackgroundColor(Textdraw8, 255); TextDrawFont(Textdraw8, 1); TextDrawLetterSize(Textdraw8, 0.300000, 1.100000); TextDrawColor(Textdraw8, -65281); TextDrawSetOutline(Textdraw8, 0); TextDrawSetProportional(Textdraw8, 1); TextDrawSetShadow(Textdraw8, 1); TextDrawUseBox(Textdraw8, 1); TextDrawBoxColor(Textdraw8, 0x00000065); TextDrawTextSize(Textdraw8, 634.000000, 22.000000); Textdraw9 = TextDrawCreate(441.000000, 246.000000, "s9"); TextDrawBackgroundColor(Textdraw9, 255); TextDrawFont(Textdraw9, 1); TextDrawLetterSize(Textdraw9, 0.300000, 1.100000); TextDrawColor(Textdraw9, -65281); TextDrawSetOutline(Textdraw9, 0); TextDrawSetProportional(Textdraw9, 1); TextDrawSetShadow(Textdraw9, 1); TextDrawUseBox(Textdraw9, 1); TextDrawBoxColor(Textdraw9, 0x00000065); TextDrawTextSize(Textdraw9, 634.000000, 22.000000); RefreshTD = SetTimer("RefreshTextDraws", RefeshTime, 1); return 1; }
После этого ищем public OnGameModeExit() и туда вставляем: Code
new stringunload[256]; format(stringunload, sizeof(stringunload), "Мониторинг сервера tuй avec succиs!"); SendRCONMessage(COLOR_ALERTE,stringunload); TextDrawHideForAll(Textdraw0); TextDrawDestroy(Textdraw0); TextDrawHideForAll(Textdraw1); TextDrawDestroy(Textdraw1); TextDrawHideForAll(Textdraw2); TextDrawDestroy(Textdraw2); TextDrawHideForAll(Textdraw3); TextDrawDestroy(Textdraw3); TextDrawHideForAll(Textdraw4); TextDrawDestroy(Textdraw4); TextDrawHideForAll(Textdraw5); TextDrawDestroy(Textdraw5); TextDrawHideForAll(Textdraw6); TextDrawDestroy(Textdraw6); TextDrawHideForAll(Textdraw7); TextDrawDestroy(Textdraw7); TextDrawHideForAll(Textdraw8); TextDrawDestroy(Textdraw8); TextDrawHideForAll(Textdraw9); TextDrawDestroy(Textdraw9); KillTimer(RefreshTD);
Примерно так должен быть public: Code
public OnGameModeExit() { new stringunload[256]; format(stringunload, sizeof(stringunload), "Мониторинг сервера tuй avec succиs!"); SendRCONMessage(COLOR_ALERTE,stringunload); TextDrawHideForAll(Textdraw0); TextDrawDestroy(Textdraw0); TextDrawHideForAll(Textdraw1); TextDrawDestroy(Textdraw1); TextDrawHideForAll(Textdraw2); TextDrawDestroy(Textdraw2); TextDrawHideForAll(Textdraw3); TextDrawDestroy(Textdraw3); TextDrawHideForAll(Textdraw4); TextDrawDestroy(Textdraw4); TextDrawHideForAll(Textdraw5); TextDrawDestroy(Textdraw5); TextDrawHideForAll(Textdraw6); TextDrawDestroy(Textdraw6); TextDrawHideForAll(Textdraw7); TextDrawDestroy(Textdraw7); TextDrawHideForAll(Textdraw8); TextDrawDestroy(Textdraw8); TextDrawHideForAll(Textdraw9); TextDrawDestroy(Textdraw9); KillTimer(RefreshTD); return 1; }
после этого ищем public OnPlayerCommandText я сразу скину полностью этот public примером: Code
public OnPlayerCommandText(playerid, cmdtext[]) { TotalCommands++; new idx; new string[256]; new cmd[256]; cmd = strtok(cmdtext, idx); if(strcmp(cmdtext, "/allplayersip", true) == 0) { if (IsPlayerAdmin(playerid)) { for(new j = 0; j < MAX_PLAYERS; j++) { if(IsPlayerConnected(j)) { GetPlayerIp(j,playerip,sizeof(playerip)); GetPlayerName(j, playername, sizeof(playername)); format(string, 256, "Игрок обнаружен !! IP : %s, Имя : %s.", playerip, playername); SendClientMessage(playerid,COLOR_MONITOR,string); } } } else { SendClientMessage(playerid, COLOR_GRAD2, "Ошибка : Только админы могут использовать команду!"); return 1; } return 1; } if(strcmp(cmdtext, "/mhelp", true) == 0) { if (IsPlayerAdmin(playerid)) { SendClientMessage(playerid,COLOR_WHITE,"------------------------| ПОмощь по монитору сервера |----------------------"); SendClientMessage(playerid,COLOR_MONITOR,"/ssay /allplayersip /monitor"); SendClientMessage(playerid,COLOR_MONITOR,"/mc /monitortd{FF0000}NEW!"); } else { SendClientMessage(playerid, COLOR_GRAD2, "ОШибка : Только админы могут использовать команду!"); return 1; } return 1; } if(strcmp(cmdtext, "/monitor", true) == 0) { if (IsPlayerAdmin(playerid)) { totalon = 0; for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(totalon == 0) { totalon = 1; } else if (totalon > 0) { if(IsPlayerNPC(playerid)) { npcon++; } totalon++; } } } SendClientMessage(playerid,COLOR_WHITE,"----------------| Сервер монитор |----------------"); format(string, 256, "Игроков online : %i/%i.", totalon-NPC, MaxP-NPC); SendClientMessage(playerid,COLOR_MONITOR1,string); new restant = MaxP-totalon-NPC; format(string, 256, "Свободные слоты : %i.", restant); SendClientMessage(playerid,COLOR_MONITOR1,string); format(string, 256, "Всего подключений : %d.", TotalConnections); SendClientMessage(playerid,COLOR_MONITOR1,string); format(string, 256, "Всего сбоев Игроки : %d.", TotalTimeouts); SendClientMessage(playerid,COLOR_MONITOR1,string); format(string, 256, "Всего игроков выходило : %d.", TotalKicks); SendClientMessage(playerid,COLOR_MONITOR1,string); format(string, 256, "Всего Команды, используемые : %d.", TotalCommands); SendClientMessage(playerid,COLOR_MONITOR1,string); format(string, 256, "Всего сообщений Отправить : %d.", TotalChatMessages); SendClientMessage(playerid,COLOR_MONITOR1,string); format(string, 256, "Conexions au RCON (Echec) : %d.", CECHRCON); SendClientMessage(playerid,COLOR_MONITOR1,string); format(string, 256, "Conexions au RCON (Rйussie) : %d.", COKRCON); SendClientMessage(playerid,COLOR_MONITOR1,string); SendClientMessage(playerid,COLOR_WHITE,"--------------------------------"); format(string, 256, "RCON администрации олайн :"); SendClientMessage(playerid,COLOR_MONITOR2,string); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(IsPlayerAdmin(i)) { new ip[64]; GetPlayerName(i, sendername, sizeof(sendername)); GetPlayerIp(i,ip,sizeof(ip)); format(string, 256, "Имя : %s, IP : %s", sendername, ip); SendClientMessage(playerid, COLOR_MONITOR2, string); } } } } else { SendClientMessage(playerid, COLOR_GRAD2, "ОШибка : Только админы могут использовать команду!"); return 1; } return 1; } if(strcmp(cmdtext, "/monitortd", true) == 0) { if (IsPlayerAdmin(playerid)) { if(TextDrawON[playerid] == 0) { LoadTextDraws(playerid); TextDrawON[playerid] = 1; } else { UnLoadTextDraws(playerid); TextDrawON[playerid] = 0; } } else { SendClientMessage(playerid, COLOR_GRAD2, "Ошибка : Только админы могут использовать команду!"); return 1; } return 1; } if(strcmp(cmd,"/ssay",true)==0) { if (IsPlayerAdmin(playerid)) { new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[MAX_STRING]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD2, "Использование: /s(erver)say [Сообщения]"); return 1; } format(string, sizeof(string), "Сервер: %s", result); SendServerMessage(COLOR_MONITOR,string); } else { SendClientMessage(playerid, COLOR_GRAD2, "Ошибка : Только админы могут использовать команду!"); return 1; } return 1; } if(strcmp(cmd,"/mc",true)==0) { if (IsPlayerAdmin(playerid)) { new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[MAX_STRING]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD2, "Использование: /mc [чат]"); return 1; } GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "RCON админ %s: %s", sendername,result); SendRCONMessage(COLOR_CHAT,string); } else { SendClientMessage(playerid, COLOR_GRAD2, "Ошибка : Только админы могут использовать команду!"); return 1; } return 1; } return 0; }
и потом в любое место добавляем сами функции: Code
public OnRconLoginAttempt(ip[], password[], success) { if(!success) { CECHRCON++; } else { COKRCON++; } return 1; } public SendServerMessage(color,const string[]) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { SendClientMessage(i, color, string); } } } public SendRCONMessage(color,const string[]) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if (IsPlayerAdmin(i)) { SendClientMessage(i, color, string); } } } } public LoadTextDraws(playerid) { totalon = 0; for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(totalon == 0) { totalon = 1; } else if (totalon > 0) { if(IsPlayerNPC(playerid)) { npcon++; } totalon++; } } } new s1[256]; format(s1, 256, "Players Online %d/%d.",totalon-NPC, MaxP-NPC); new s2[256]; new restant = MaxP-totalon-NPC; format(s2, 256, "Slots available : %i.", restant); new s3[256]; format(s3, 256, "Total Connection : %d.", TotalConnections); new s4[256]; format(s4, 256, "Total Players Crash : %d.", TotalTimeouts); new s5[256]; format(s5, 256, "Total Players Quit : %d.", TotalKicks); new s6[256]; format(s6, 256, "Total Commands Used : %d.", TotalCommands); new s7[256]; format(s7, 256, "Total Messages Send : %d.", TotalChatMessages); new s8[256]; format(s8, 256, "RCON Connections (Failed) : %d.", CECHRCON); new s9[256]; format(s9, 256, "RCON Connections (Success) : %d.", COKRCON); TextDrawSetString(Text:Textdraw1, s1); TextDrawSetString(Text:Textdraw2, s2); TextDrawSetString(Text:Textdraw3, s3); TextDrawSetString(Text:Textdraw4, s4); TextDrawSetString(Text:Textdraw5, s5); TextDrawSetString(Text:Textdraw6, s6); TextDrawSetString(Text:Textdraw7, s7); TextDrawSetString(Text:Textdraw8, s8); TextDrawSetString(Text:Textdraw9, s9); TextDrawShowForPlayer(playerid, Textdraw0); TextDrawShowForPlayer(playerid, Textdraw1); TextDrawShowForPlayer(playerid, Textdraw2); TextDrawShowForPlayer(playerid, Textdraw3); TextDrawShowForPlayer(playerid, Textdraw4); TextDrawShowForPlayer(playerid, Textdraw5); TextDrawShowForPlayer(playerid, Textdraw6); TextDrawShowForPlayer(playerid, Textdraw7); TextDrawShowForPlayer(playerid, Textdraw8); TextDrawShowForPlayer(playerid, Textdraw9); } public RefreshTextDraws(playerid) { totalon = 0; for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(totalon == 0) { totalon = 1; } else if (totalon > 0) { if(IsPlayerNPC(playerid)) { npcon++; } totalon++; } } } TextDrawHideForPlayer(playerid, Textdraw0); TextDrawHideForPlayer(playerid, Textdraw1); TextDrawHideForPlayer(playerid, Textdraw2); TextDrawHideForPlayer(playerid, Textdraw3); TextDrawHideForPlayer(playerid, Textdraw4); TextDrawHideForPlayer(playerid, Textdraw5); TextDrawHideForPlayer(playerid, Textdraw6); TextDrawHideForPlayer(playerid, Textdraw7); TextDrawHideForPlayer(playerid, Textdraw8); TextDrawHideForPlayer(playerid, Textdraw9); new s1[256]; format(s1, 256, "Players Online %d/%d.",totalon-NPC, MaxP-NPC); new s2[256]; new restant = MaxP-totalon-NPC; format(s2, 256, "Slots available : %i.", restant); new s3[256]; format(s3, 256, "Total Connection : %d.", TotalConnections); new s4[256]; format(s4, 256, "Total Players Crash : %d.", TotalTimeouts); new s5[256]; format(s5, 256, "Total Players Quit : %d.", TotalKicks); new s6[256]; format(s6, 256, "Total Commands Used : %d.", TotalCommands); new s7[256]; format(s7, 256, "Total Messages Send : %d.", TotalChatMessages); new s8[256]; format(s8, 256, "RCON Connections (Failed) : %d.", CECHRCON); new s9[256]; format(s9, 256, "RCON Connections (Success) : %d.", COKRCON); TextDrawSetString(Text:Textdraw1, s1); TextDrawSetString(Text:Textdraw2, s2); TextDrawSetString(Text:Textdraw3, s3); TextDrawSetString(Text:Textdraw4, s4); TextDrawSetString(Text:Textdraw5, s5); TextDrawSetString(Text:Textdraw6, s6); TextDrawSetString(Text:Textdraw7, s7); TextDrawSetString(Text:Textdraw8, s8); TextDrawSetString(Text:Textdraw9, s9); TextDrawShowForPlayer(playerid, Textdraw0); TextDrawShowForPlayer(playerid, Textdraw1); TextDrawShowForPlayer(playerid, Textdraw2); TextDrawShowForPlayer(playerid, Textdraw3); TextDrawShowForPlayer(playerid, Textdraw4); TextDrawShowForPlayer(playerid, Textdraw5); TextDrawShowForPlayer(playerid, Textdraw6); TextDrawShowForPlayer(playerid, Textdraw7); TextDrawShowForPlayer(playerid, Textdraw8); TextDrawShowForPlayer(playerid, Textdraw9); } public UnLoadTextDraws(playerid) { TextDrawHideForPlayer(playerid, Textdraw0); TextDrawHideForPlayer(playerid, Textdraw1); TextDrawHideForPlayer(playerid, Textdraw2); TextDrawHideForPlayer(playerid, Textdraw3); TextDrawHideForPlayer(playerid, Textdraw4); TextDrawHideForPlayer(playerid, Textdraw5); TextDrawHideForPlayer(playerid, Textdraw6); TextDrawHideForPlayer(playerid, Textdraw7); TextDrawHideForPlayer(playerid, Textdraw8); TextDrawHideForPlayer(playerid, Textdraw9); } strtok(const string[], &index,seperator=' ') { new length = strlen(string); new offset = index; new result[128]; while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; if ((index < length) && (string[index] == seperator)) { index++; } return result; }
И после этого ищем public OnPlayerDisconnect и туда всталвяем: Code
switch(reason) { case 0: { TotalTimeouts++; } case 2: { TotalKicks++; } }
Примерно так должен быть public: Code
public OnPlayerDisconnect(playerid, reason) { switch(reason) { case 0: { TotalTimeouts++; } case 2: { TotalKicks++; } } return 1; }
После этого ищем public OnPlayerConnect и туда вставляем: Примерно так должен быть public: Code
public OnPlayerConnect(playerid) { TotalConnections++; return 1; }
И после этого ищем public OnPlayerText и туда вставляем: Code
TotalChatMessages++; Showing[playerid] = 0;
Примерно так должен быть public: Code
public OnPlayerText(playerid, text[]) { TotalChatMessages++; Showing[playerid] = 0; return 1; }
Урок by - 26_RUSSS Автор самого кода: Skylive77 Автор - admin Дата добавления - 17.09.2011 в 13:30:53