готовое решение
Система подкрепления полиции

В теме 1 сообщение

Спойлер

new bool: Needhelp[MAX_PLAYERS];

 

Спойлер

Needhelp [playerid]= false;

 

Спойлер

case 3:
{
  new string2[128];
  format(string2, sizeof(string2), "{77BBFF}[ Требуется подкрепление ] {FF7777} от %s[%d]:{CC6600} /gohelp [id]", gpname(playerid),playerid);
  Needhelp [playerid]= true;
  IsACopHelp2(COLOR_PURPLE, string2);
  IsACopHelp();
}

 

Спойлер

CMD:gohelp(playerid, params[]) 
{
    if(pInfo[playerid][aMember] != 1) return true; // если фракция игрока НЕ полиция ( поставить свою проверку)
    if(sscanf(params, "is[36]", params[0])) return SCM(playerid, -1, "Введите: /gohelp [id]");
    if(!IsPlayerConnected(params[0])) SCM(playerid, -1,"Неверный ID" );
    //SCM(params[0], COLOR_PURPLE, string2);
    if(Needhelp [params[0]] == true) // если у этот игрок действительно вызывал подкрепление 
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(params[0], x, y, z);
    SetPlayerCheckpoint(playerid, x, y, z, 7.0); // Ставим метку на карте,отключение метки нет,так-что код для отключения пишите сами.
    SCM(params[0], -1, "[ Подкрепление  ] Ваш вызов принят к Вам выехали на помощь");
    Needhelp [playerid]= false; // помощь становится не действительна
}
    return 1;
}

 

Спойлер

stock IsACopHelp() // данный Stock для того чтобы всем полицейским высветилась надпись "Need help"
{
                for(new i; i < MAX_PLAYERS; i++)
        {
                if(IsPlayerConnected(i))
                {
                    if(pInfo[i][aMember] == 1) GameTextForPlayer(i, "~r~Need help", 5000, 1); // здесь ставим свою проверку
                }
        }
        return 1;
}
stock IsACopHelp2(color, string[])
{
        for(new i; i < MAX_PLAYERS; i++)
        {
                if(IsPlayerConnected(i))
                {
                    if(pInfo[i][aMember] == 1) SCM(i, color, string); // здесь ставим свою проверку
                }
        }
        return 1;
}
stock IsACop(playerid)
{
    switch(pInfo[playerid][aMember]) // здесь ставим свою проверку
    {
        case 1, 2: return true;
    }
    return false;
}

 

Автор: Неизвестен

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • От phizl
      Доброго времени суток, у меня в моде есть система заточки аксессуаров и она работает, все значения записываются, но по каким-то причинам увеличение урона не срабатывает. У меня есть инклуд weapon-config, до этого в нём не было перехвата функции, я его сделал и по идее дефолтные паблики OnPlayerGiveDamage и OnPlayerTakeDamage щас срабатывают. Буду очень благодарен любой помощи! (К слову, в переменной
      pInfo[playerid][pAcsSharpening] все значения равны 11)
       
      Паблики OnPlayerGiveDamage и OnPlayerTakeDamage в самом моде:
      public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart) {     new damage;     switch(pInfo[playerid][pAcsSharpening][2])     {         case 0..3: damage = 0;         case 4..11: damage = pInfo[playerid][pAcsSharpening][2]-3;         case 12: damage = 8;     }     amount += (amount / 100) * damage;     switch(pInfo[playerid][pAcsSharpening][3])     {         case 0..3: damage = 0;         case 4..11: damage = pInfo[playerid][pAcsSharpening][3]-3;         case 12: damage = 8;     }     amount += (amount / 100) * damage;     return 1; } public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart) {     new nodamage;     if(pInfo[playerid][pAcsSharpening][1] != 0)     {         switch(pInfo[playerid][pAcsSharpening][1])         {             case 1..3: nodamage = 0;             case 4: nodamage = 2;             case 5: nodamage = 4;             case 6: nodamage = 5;             case 7: nodamage = 6;             case 8: nodamage = 8;             case 9: nodamage = 10;             case 10: nodamage = 12;             case 11,12: nodamage = 15;         }     }     if(pInfo[playerid][pAcsSharpening][4] != 0)     {         switch(pInfo[playerid][pAcsSharpening][4])         {             case 1..3: nodamage = 0;             case 4..11: nodamage = pInfo[playerid][pAcsSharpening][4]-2;             case 12: nodamage = 9;         }     }     new damage;     switch(pInfo[playerid][pAcsSharpening][2])     {         case 0..3: damage = 0;         case 4..11: damage = pInfo[playerid][pAcsSharpening][2]-3;         case 12: damage = 8;     }     amount += (amount / 100) * damage;     switch(pInfo[playerid][pAcsSharpening][3])     {         case 0..3: damage = 0;         case 4..11: damage = pInfo[playerid][pAcsSharpening][3]-3;         case 12: damage = 8;     }     amount += (amount / 100) * damage;     if(pInfo[playerid][pAcsSharpening][1] == 0 && pInfo[playerid][pAcsSharpening][4] == 1 || pInfo[playerid][pAcsSharpening][4] == 0 && pInfo[playerid][pAcsSharpening][2] == 1) amount -= (amount / 100) * nodamage;     if(pInfo[playerid][pAcsSharpening][4] == 1 && pInfo[playerid][pAcsSharpening][2] == 1) amount -= (amount / 100)*nodamage*2;     return 1; }  
      Эти же паблики, но в weapon-config с моим перехватом (расположен внизу каждого паблика), мало ли как-то не так сделал
       
    • От gooding


      Скачать файл PAR RP | Доработанный мод Cruela RP | Без багов
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
      Основа данного мода: Cruela RP
       
       

      Добавил gooding Добавлено 20.11.2024 Категория Моды Автор GOODING (Я)