Доброго времени суток, Уважаемые Форумчани Pro-Pawn.rp ;3
Сейчас я вам расскажу, как добавить на ваш сервер, систему хелперов.
Автор: Не знаю, я только чу-чуть изменил.
Всего 3 уровня хелперов, с 3-го уровня можно назначать игрока Хелпером.
Небольшое FAQ для чего, нужны хелперы.
Хелперы - это помощники сервера, они должны отвечать на все вопросы от игроков, данные люди ответственные за игроками, которые не знают какой либо команды и т.д
Команды которые есть :D
/he - писать в общий чат хелперов (Видно только хелперам)
/makehelpers - дать хелперку (Доступно только 3-му уровню)
/hduty - Выйти на дежурство.
/answer - ответить на вопрос.
/vopros - задать вопрос.
/helpers - глянуть кто из хелперов в сети. (Доступно всем.)
В pInfo вставляем
PHP код:
pHelper
Ко всем NEW вставляем
PHP код:
new HelperDuty[MAX_PLAYERS]; 
В 'public OnPlayerConnect(playerid) вставляем
PHP код:
PlayerInfo[playerid][pHelper] = 0
Туда-же
PHP код:
HelperDuty[playerid] = 0
В public OnPlayerRegister(playerid, password[]) и public OnPlayerUpdate_GF(playerid) вставляем
PHP код:
iniSetInt(File,"HelperLevel",PlayerInfo[playerid][pHelper]); 
В public OnPlayerLogin(playerid,password[] вставляем
PHP код:
iniGetInt(File,"HelperLevel",PlayerInfo[playerid][pHelper]); 
Опять ищем public OnPlayerLogin(playerid,password[]) и вставляем
PHP код:
if (PlayerInfo[playerid][pHelper] >= 1)  
    {  
        
format(string2sizeof(string2), "Вы вошли хелпером, %d уровня.",PlayerInfo[playerid][pHelper]);  
        
SendClientMessage(playeridCOLOR_WHITE,string2);  
    } 
Ко всем forward добавляем
PHP код:
forward SendHelperMessage(colorstring[]); 
В конец мода вставляем
PHP код:
public SendHelperMessage(colorstring[])  
{  
    for(new 
0MAX_PLAYERSi++)  
    {  
        if(
IsPlayerConnected(i))  
        {  
            if(
PlayerInfo[i][pHelper] >= 1)  
            {  
                
SendClientMessage(icolorstring);  
            }  
        }  
    } 

Данная команда нужна для просмотра помощников онлайн
PHP код:
  if (strcmp(cmd"/helpers"true) == 0)  
    {  
        if(
IsPlayerConnected(playerid))  
        {  
            for(new 
0MAX_PLAYERSi++)  
            {  
                if(
IsPlayerConnected(i))  
                {  
                    if(
PlayerInfo[i][pHelper] >= 1)  
                    {  
                        
GetPlayerName(isendernamesizeof(sendername));  
                        
format(string256"* Помощники онлайн:");  
                        
SendClientMessage(playeridCOLOR_LIGHTREDstring);  
                        
format(string256"* %s[id: %d]. Hlvl: %d",sendernameiPlayerInfo[i][pHelper]);  
                        
SendClientMessage(playeridCOLOR_YELLOWstring);  
                    }  
                    if(
PlayerInfo[i][pHelper] >= && HelperDuty[playerid] == 1)  
                    {  
                        
GetPlayerName(isendernamesizeof(sendername));  
                        
format(string256"* Помощники онлайн на дежурстве:");  
                        
SendClientMessage(playeridCOLOR_LIGHTREDstring);  
                        
format(string256"* %s[id: %d]. Hlvl: %d",sendernameiPlayerInfo[i][pHelper]);  
                        
SendClientMessage(playeridCOLOR_YELLOWstring);  
                    }  
                      
                }  
            }  
        }  
        return 
1;  
    } 
Данная команда нужна, для Дежурства Хелперов. Вставляем в public OnPlayerCommandText(playerid, cmdtext[])
PHP код:
PHP код:
  if(
strcmp(cmdtext"/hduty"true) == || strcmp(cmdtext"/helperduty"true) == 0)  
    {  
        if(
IsPlayerConnected(playerid))  
        {  
            if(
gPlayerLogged[playerid] == 0)  
            {  
                
SendClientMessage(playeridCOLOR_GREY"Вы не авторизированы!");  
                return 
1;  
            }  
            if(
PlayerInfo[playerid][pHelper] >= 1)  
            {  
                if(
HelperDuty[playerid] == 0)  
                {  
                      
HelperDuty[playerid] = 1;  
                      
GetPlayerName(playeridsendernamesizeof(sendername));  
                      
format(stringsizeof(string), "((  Хелпер %s ждет ваши вопросы! (/vopros) ))"sendername);  
                      
BroadCast(COLOR_OOC,string);  
                      return 
1;  
                  }  
                  else if(
HelperDuty[playerid] == 1)  
                  {  
                      
HelperDuty[playerid] = 0;  
                      
GetPlayerName(playeridsendernamesizeof(sendername));  
                      
format(stringsizeof(string), "((  Хелпер %s не активен. ))"sendername);  
                      
BroadCast(COLOR_OOC,string);  
                      return 
1;  
                  }  
              }  
              else  
              {  
                  
SendClientMessage(playeridCOLOR_GREY"У вас нет прав на использование данной команды.");  
                  return 
1;  
              }  
          }  
         return 
1;  
     } 
Вставляем ко всем public OnPlayerCommandText(playerid, cmdtext[]), для того чтобы задать вопрос
PHP код:
 if(strcmp(cmd"/vopros"true) == || strcmp(cmd"/вопрос"true) == 0)  
    {  
        if(
IsPlayerConnected(playerid))  
        {  
             
GetPlayerName(playeridsendernamesizeof(sendername));  
            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))  
            {  
                
SendClientMessage(playeridCOLOR_GRAD2"{ffffff}Введите: /vopros [text]");  
                return 
1;  
            }  
            if(
HelperDuty[playerid] == 1)  
            {  
                
format(stringsizeof(string), "Вопрос от %s[%d]: %s"sendernameplayerid, (result));  
                
SendHelperMessage(0x10F441AAstring);  
            }  
            
SendClientMessage(playeridCOLOR_YELLOW"Ваш вопрос отправлен хелперам!");  
            
format(stringsizeof(string), "Вопрос от %s[%d]: %s"sendernameplayerid, (result));  
             
SendClientMessage(playeridCOLOR_LIGHTREDstring);  
        }  
          return 
1;  
    } 
Чтобы ответить на вопос, вставляем в public OnPlayerCommandText(playerid, cmdtext[])
PHP код:
if(strcmp(cmd"/answer"true) == 0)  
        {  
            if(
IsPlayerConnected(playerid))  
            {  
                if(
PlayerInfo[playerid][pHelper] >= 1)  
                {  
                    
tmp strtok(cmdtextidx);  
                    if(!
strlen(tmp))  
                    {  
                        
SendClientMessage(playeridCOLOR_GRAD2"{ffffff}Введите: /answer[PlayerID] [text]");  
                        return 
1;  
                    }  
                    if(
HelperDuty[playerid] == 1)  
                    {  
                        
giveplayerid ReturnUser(tmp);  
                        if (
IsPlayerConnected(giveplayerid))  
                        {  
                            if(
giveplayerid != INVALID_PLAYER_ID)  
                            {  
                                
GetPlayerName(playeridsendernamesizeof(sendername));  
                                
GetPlayerName(giveplayeridgiveplayersizeof(giveplayer));  
                                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))  
                                {  
                                    
SendClientMessage(playeridCOLOR_GRAD2"{ffffff}Введите: /answer [PlayerID] [text]");  
                                    return 
1;  
                                }  
                                
format(stringsizeof(string), "[HELPER] %s: %s"sendername, (result));  
                                
SendClientMessage(giveplayeridCOLOR_LIGHTREDstring);  
                                
format(stringsizeof(string), "*[H] %s ответил %s[%d]: %s"sendernamegiveplayergiveplayerid,(result));  
                                
SendHelperMessage(COLOR_LIGHTREDstring);  
                                return 
1;  
                            }  
                        }  
                        else  
                        {  
                            
format(stringsizeof(string), "%d не в сети"giveplayerid);  
                            
SendClientMessage(playeridCOLOR_GRAD1string);  
                        }  
                    }  
                    else  
                    {  
                        
SendClientMessage(playeridCOLOR_WHITE"Вы не на дежурстве.");  
                    }  
                }  
                else  
                {  
                    
SendClientMessage(playeridCOLOR_WHITE"Нет прав на использование данной команды.");  
                }  
            }  
            else  
            {  
                
SendClientMessage(playeridCOLOR_WHITE"Вы не авторизированы.");  
            }  
            return 
1;  
        } 
Чтобы написать в общий чат для хелперов, вставляем в public OnPlayerCommandText(playerid, cmdtext[])
PHP код:
if(strcmp(cmd"/he"true) == || strcmp(cmd"/hc"true) == 0)  
    {  
        if(
IsPlayerConnected(playerid))  
        {  
            if (
PlayerInfo[playerid][pHelper] >= 1)  
            {  
                
GetPlayerName(playeridsendernamesizeof(sendername));  
                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))  
                {  
                    
SendClientMessage(playeridCOLOR_GRAD2"{ffffff}Введите: (/he) [helpers chat]");  
                    return 
1;  
                }  
                
format(stringsizeof(string), "* %d Хелпер %s: %s"PlayerInfo[playerid][pHelper], sendernameresult);  
                
SendHelperMessage(COLOR_GREENstring);  
                
printf("Helper %s: %s"sendernameresult);  
            }  
        }  
        return 
1;  
    } 
Чтобы назначить/снять/повысить игрока на уровень хелпера. Вставляем в паблик public OnPlayerCommandText(playerid, cmdtext[])
PHP код:
  if(strcmp(cmd"/makehelper"true) == 0)  
    {  
        if(
IsPlayerConnected(playerid))  
        {  
            
tmp strtok(cmdtextidx);  
            if(!
strlen(tmp))  
            {  
                
SendClientMessage(playeridCOLOR_GRAD2"{ffffff}Введите: /makehelper [playerid] [level(1-3, 0-убрать хеллперку]");  
                return 
1;  
            }  
            new 
para1;  
            new 
level;  
            
para1 ReturnUser(tmp);  
            
tmp strtok(cmdtextidx);  
            
level strval(tmp);  
            if(
PlayerInfo[playerid][pHelper] == || PlayerInfo[playerid][pAdmin] >= 1338)  
            {  
                if(
IsPlayerConnected(para1))  
                {  
                    if(
para1 != INVALID_PLAYER_ID)  
                    {  
                        
GetPlayerName(para1giveplayersizeof(giveplayer));  
                        
GetPlayerName(playeridsendernamesizeof(sendername));  
                        
PlayerInfo[para1][pHelper] = level;  
                        if(
level || level 3) return SendClientMessage(playeridCOLOR_GREY"Не меньше '0' и не больше '3'.");  
                        
format(stringsizeof(string), "You have been promoted to a level %d helper by %s."levelsendername);  
                        
SendClientMessage(para1COLOR_LIGHTBLUEstring);  
                        
format(stringsizeof(string), "You are promoted %s to helper level %d."giveplayer,level);  
                        
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);  
                    }  
                }  
            }  
            else  
            {  
                
SendClientMessage(playeridCOLOR_GRAD1"{ffffff}Вам не доступна эта функция");  
            }  
        }  
        return 
1;  
    }