Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: [CMD] Выговор члену фракции - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[CMD] Выговор члену фракции Оценка: -----

#1
Пользователь офлайн   Cris_Pro 

  • Хочу создать серверок..
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
С помощью этой команды можно дать выговор члену вашей фракции. При получении 3-его выговора автоматическое увольнение.
Под редакцией 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
5

Сказали спасибо 2:

#2
Пользователь офлайн   Romzes 

  • © Pawn-Wiki.Ru
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Нормально. Для ГФ сойдет...
0

#3
Пользователь офлайн   Stoke 

  • Новичок
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Спасибо, пригодится на РП сервере)))
3

#4
Пользователь офлайн   PHARA_OH 

  • Эксперт
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Спасибо пригодится
0

#5
Пользователь офлайн   Doklan 

  • Прохожий
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Помойму было уже. Если хотите могу выложить молчанку члену фракции)
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей