Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Система хелперки

Статус
В этой теме нельзя размещать новые ответы.

Vit

Ученик
Здраствуйте дорогие пользователи p-i
Данной темы я не нашёл с 1 по 16 страницу думаю не кто не захочет лезть ещё дальше в поисках
и решил выложить свои систему хелперки
P.S: она очень проста, не судите строго это моя 1 работа в паблик
Итак начнём!​

1.К форвардам добавляем:

PHP:
forward SendHelperMessage(color, string[]);
2.В enum pInfo добовляем:

PHP:
pHelper;
2.К new добавляем:

PHP:
new HelperDuty[MAX_PLAYERS];
3.В public OnPlayerConnect(playerid) добавляем:

PHP:
PlayerInfo[playerid][pHelper] = 0;
4.В public OnPlayerStateChange(playerid, newstate, oldstate) добавляем:

PHP:
HelperDuty[playerid] = 0;
5.Находим public OnPlayerRegister(playerid, password[]) и туда вставляем:

PHP:
ini_setInteger(File,"HelperLevel",PlayerInfo[playerid][pHelper]);
6.В конец мода добавляем public:

PHP:
public SendHelperMessage(color, string[])
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(PlayerInfo[i][pHelper] >= 1)
            {
                SendClientMessage(i, color, string);
            }
        }
    }
}
С Public's разобрались теперь команды​

Находим public OnPlayerCommandText и туда вставляем:

1.Команда авторизации хелпера:

PHP:
if(strcmp(cmdtext, "/hduty", true) == 0 || strcmp(cmdtext, "/helperduty", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(gPlayerLogged[playerid] == 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "Вы не авторизированы");
                return 1;
            }
            if(PlayerInfo[playerid][pHelper] >= 1)
            {
                if(HelperDuty[playerid] == 0)
                {
                      HelperDuty[playerid] = 1;
                      GetPlayerName(playerid, sendername, sizeof(sendername));
                      format(string, sizeof(string), "(( [H] Хелпер %s ждёт ваши вопросы (/vopros) ))", sendername);
                      BroadCast(COLOR_OOC,string);
                      return 1;
                  }
                  else if(HelperDuty[playerid] == 1)
                  {
                      HelperDuty[playerid] = 0;
                      GetPlayerName(playerid, sendername, sizeof(sendername));
                      format(string, sizeof(string), "(( [H] Хелпер %s не активен. ))", sendername);
                      BroadCast(COLOR_OOC,string);
                      return 1;
                  }
              }
              else
              {
                  SendClientMessage(playerid, COLOR_GREY, "У вас нет прав на использование данной команды.");
                  return 1;
              }
          }
    }
2. Команда за задавания вопроса хелперам:

PHP:
if(strcmp(cmd, "/vopros", true) == 0 || strcmp(cmd, "/вопрос", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            GetPlayerName(playerid, sendername, sizeof(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))
            if(HelperDuty[playerid] == 1)
            {
                format(string, sizeof(string), "Вопрос от %s[%d]: %s", sendername, playerid, (result));
                SendHelperMessage(0x10F441AA, string);
            }
            SendClientMessage(playerid, COLOR_YELLOW, "Ваш вопрос отправлен Хелперам!");
            format(string, sizeof(string), "Вопрос от %s[%d]: %s", sendername, playerid, (result));
            SendClientMessage(playerid, COLOR_LIGHTRED, string);
        }
    }
3.Команда для ответа на вопрос:

PHP:
if(strcmp(cmd, "/otvet", true) == 0 || strcmp(cmd, "/ответ", true) == 0)
    {
            if(IsPlayerConnected(playerid))
            {
                if(PlayerInfo[playerid][pHelper] >= 1)
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, COLOR_GRAD2, "{ffffff}Введите: /otvet [id] [текст]");
                        return 1;
                    }
                    if(HelperDuty[playerid] == 1)
                    {
                        giveplayerid = ReturnUser(tmp);
                        if (IsPlayerConnected(giveplayerid))
                        {
                            if(giveplayerid != INVALID_PLAYER_ID)
                            {
                                GetPlayerName(playerid, sendername, sizeof(sendername));
                                GetPlayerName(giveplayerid, giveplayer, sizeof(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(playerid, COLOR_GRAD2, "{ffffff}Введите: /otvet [id] [текст]");
                                    return 1;
                                }
                                format(string, sizeof(string), "[HELPER] %s: %s", sendername, (result));
                                SendClientMessage(giveplayerid, COLOR_LIGHTRED, string);
                                format(string, sizeof(string), "*[H] %s ответил %s[%d]: %s", sendername, giveplayer, giveplayerid,(result));
                                SendHelperMessage(COLOR_LIGHTRED, string);
                                return 1;
                            }
                        }
                        else
                        {
                            format(string, sizeof(string), "%d не в сети.", giveplayerid);
                            SendClientMessage(playerid, COLOR_GRAD1, string);
                        }
                    }
                    else
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "Вы не на дежурстве.");
                    }
                }
                else
                {
                    SendClientMessage(playerid, COLOR_WHITE, "Нет прав на использование данной команды.");
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_WHITE, "Вы не авторизированы.");
            }
     }
4.Команда для общения хелперов(Чат)

PHP:
if(strcmp(cmd, "/helper", true) == 0 || strcmp(cmd, "/hc", true) == 0)
     {
        if(IsPlayerConnected(playerid))
        {
            if (PlayerInfo[playerid][pHelper] >= 1)
            {
                GetPlayerName(playerid, sendername, sizeof(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(playerid, COLOR_GRAD2, "{ffffff}Введите: (/hc) [Текст в чат]");
                    return 1;
                }
                format(string, sizeof(string), "* %d Хелпер %s: %s", PlayerInfo[playerid][pHelper], sendername, result);
                SendHelperMessage(COLOR_GREEN, string);
                printf("Helper %s: %s", sendername, result);
            }
        }
    }
5.Команда для выдачи хелперки

PHP:
if(strcmp(cmd, "/makehelper", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "{ffffff}Введите: /makehelper [id] [level 1-3]");
                return 1;
            }
            new para1;
            new level;
            para1 = ReturnUser(tmp);
            tmp = strtok(cmdtext, idx);
            level = strval(tmp);
            if(PlayerInfo[playerid][pAdmin] >= 9)//меняйте на свой лвл администратора
            {
                if(IsPlayerConnected(para1))
                {
                    if(para1 != INVALID_PLAYER_ID)
                    {
                        GetPlayerName(para1, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        PlayerInfo[para1][pHelper] = level;
                        if(level < 0 || level > 3) return SendClientMessage(playerid, COLOR_GREY, "Не меньше 0 и не больше 3.");
                        format(string, sizeof(string), "Вы были назначены Хелпером %d уровня. Администратором %s.", level, sendername);
                        SendClientMessage(para1, COLOR_LIGHTBLUE, string);
                        format(string, sizeof(string), "Вы назначили %s Хелпером %d уровня.", giveplayer,level);
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                    }
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GRAD1, "{ffffff}Вы неуполнамочины использовать эту команду");
            }
        }
    }
6.Команда для просмотра хелперов онлайн

PHP:
else if (strcmp(cmd, "/helpers", true) == 0)
    {
        SendClientMessage(playerid, COLOR_YELLOW, "Хелпуры Online:");
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i))
            {
                if(PlayerInfo[i][pHelper] >= 1)
                {
                    new drank[20];
                    if(PlayerInfo[i][pHelper] == 1) { drank = "Мл.Хелпер"; }
                    else if(PlayerInfo[i][pHelper] == 2) { drank = "Хелпер"; }
                    else if(PlayerInfo[i][pHelper] == 3) { drank = "Гл.Хелпер"; }

                    GetPlayerName(i, sendername, sizeof(sendername));
                    format(string, 256, "%s | ID:%d | %s",sendername,i,drank);
                    SendClientMessage(playerid, COLOR_WHITE, string);
                }
            }
        }
    }

Вот и всё
Автор мануала и данного кода: Vit163(тоесть Я!)

ВНИМАНИЕ!!!
При публикование данного мануала на стороннем ресурсе указывайте автора


Дай +сик не ленись:)​
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу