• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Почему все системы в моде работают только с нулевым playerid?

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

Rellax

Начинающий
Пользователь
Регистрация
5 Июл 2014
Сообщения
76
Лучшие ответы
0
Репутация
3
Привет.
Впервые сталкиваюсь с таким, но мод Motion RP, играбелен только для игрока под 0 ID.
Все системы, которые я встречал в моде, работают нормально только с 0 ID, а от 1 и выше - всё идёт в "не туда".
Например:
Проверяю 1 ID на "гм-тест". Результаты теста уже даны, а пишет, что "тест не закончен". И так до релога.
Но почему он тогда для 0 ID не тупит?

PHP:
new bool:gCheckGodMode[MAX_PLAYERS char];

CMD:gm(playerid, params[])
{
    IsAdmin(AR_MESUPPORT);
    else if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /gm [id игрока]");
    else if(params[0] == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotOnline);
    else if(!gPlayerLogged[params[0]]) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotAuthorized);
    else if(GetPVarInt(params[0], "AFK_Time") > 1) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Игрок находится в AFK!");
    else if(gCheckGodMode{playerid}) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Вы тестируете другого человека, подождите окончания теста!");
    new Float:gmhealth, Float:boomx, Float:boomy, Float:boomz;
    GetPlayerHealth(params[0], gmhealth);
    GetPlayerPos(params[0], boomx, boomy, boomz);
    CreateExplosion(boomx, boomy, boomz+7, 5, 0.5);
      SetTimerEx("@GmTest", 1000, false, "ddf", playerid, params[0], gmhealth);
      gCheckGodMode{playerid} = true;
    return 1;
}

@GmTest(playerid, targetid, Float:oldhealth);
@GmTest(playerid, targetid, Float:oldhealth)
{
    new Float: newhealth;
    GetPlayerHealth(targetid, newhealth);
    new string[58];
    if(oldhealth == newhealth) string = "{F04245}Возможно игрок использует God Mode(GM)";
    if(oldhealth != newhealth) string = "{05E900}Вероятно игрок чист, показатель его HP уменьшился";
       dlg_str[0] = EOS;
    format(dlg_str, sizeof(dlg_str), "\
        {FFFFFF}Было: {FF9900}%.0f.0 (HP)\n\
        {FFFFFF}Стало: {FF9900}%.0f.0 (HP)\n\
        {FFFFFF}Уменьшилось на: {FF9900}%.0f.0 (HP)\n\n%s",
        oldhealth, newhealth, oldhealth-newhealth, string);
    ShowPlayerDialog(playerid, dNull, DIALOG_STYLE_MSGBOX, GetName(targetid), dlg_str, "Закрыть", "");
    SetHealth(targetid, oldhealth);
    gCheckGodMode[playerid] = false;
    return 1;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу