Под редакцией Exclusive'a
Итак, в enum pInfo добавляем:
pFWarns,

Далее в public OnPlayerRegister(playerid, password[]):
format(var, 32, "FWarns=%d\n",PlayerInfo[playerid][pFWarns]);fwrite(hFile, var);

И в public OnPlayerLogin(playerid,password[])
if( strcmp( key , "FWarns" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pFWarns] = strval( val ); }

Вот сама команда в public OnPlayerCommandText:
if(strcmp(cmd, "/famwarn", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid,-1, "ИСПОЛЬЗУЙТЕ: /famwarn [id_игрока/ЧастьИмени] [причина]"); giveplayerid = ReturnUser(tmp); if (PlayerInfo[playerid][pLeader] >= 1 && IsPlayerConnected(giveplayerid) && giveplayerid != INVALID_PLAYER_ID && PlayerInfo[playerid][pLeader] == PlayerInfo[giveplayerid][pMember]) { new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) return SendClientMessage(playerid,-1, "ИСПОЛЬЗУЙТЕ: /famwarn [id_игрока/ЧастьИмени] [причина]"); PlayerInfo[giveplayerid][pFWarns] += 1; if(PlayerInfo[giveplayerid][pFWarns] >= 3) { format(string, sizeof(string), "Вы уволены лидером %s. Причина: %s.",PlayerName(playerid),(result)); SendClientMessage(playerid,-1, string); PlayerInfo[giveplayerid][pFWarns] = 0; PlayerInfo[giveplayerid][pMember] = 0; PlayerInfo[giveplayerid][pRank] = 0; PlayerInfo[giveplayerid][pChar] = 20; SpawnPlayer(giveplayerid); } } format(string, sizeof(string), "Вы дали выговор %s, причина: %s",PlayerName(giveplayerid),(result)); SendClientMessage(playerid,-1,string); format(string, sizeof(string), "Вам дал выговор %s, причина: %s",PlayerName(playerid),(result)); SendClientMessage(giveplayerid,-1,string); return 1; }

И в самый конец вставляем:
stock PlayerName(playerid) { new pName[24]; GetPlayerName(playerid, pName, sizeof(pName)); return pName; }

И команда чтобы снять выговор:
if(strcmp(cmd, "/famwarnoff", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid,-1, "ИСПОЛЬЗУЙТЕ: /famwarn [id_игрока/ЧастьИмени] [причина]"); giveplayerid = ReturnUser(tmp); if(PlayerInfo[playerid][pLeader] >= 1 && IsPlayerConnected(giveplayerid) && giveplayerid != INVALID_PLAYER_ID && PlayerInfo[playerid][pLeader] == PlayerInfo[giveplayerid][pMember]) { new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) return SendClientMessage(playerid,-1, "ИСПОЛЬЗУЙТЕ: /famwarnoff [id_игрока/ЧастьИмени] [причина]"); PlayerInfo[giveplayerid][pFWarns] -= 1; format(string, sizeof(string), "Вы сняли выговор %s, причина: %s", PlayerName(giveplayerid), (result)); SendClientMessage(playerid,-1, string); format(string, sizeof(string), "Вам снял выговор %s, причина: %s", PlayerName(playerid), (result)); SendClientMessage(giveplayerid,-1, string); return 1; }

Конец.
Если было, то извините!
Если помог, ставь "+".
Автор: Sten-One