Русское сообщество по скриптингу

[ReApi] RG_CSGameRules_CanPlayerHearPlayer [Микро]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

[ReApi] RG_CSGameRules_CanPlayerHearPlayer [Микро]

Сообщение limbooc » 18 апр 2018, 21:13

Добрый вечер,
Как правильно реализовать данную функцию?

Оригинально стоит через факамета:
Код: Выделить всё


public FakeMeta_Voice_SetListening
(iReceiver, iSender)
{
    if((isSetBit(g_iBitUserVoice, iSender) && isSetBit(g_iBitUserAlive, iSender)) || (g_iTeamUser[iSender] == 2 && isSetBit(g_iBitUserAlive, iSender)) || isSetBit(g_iBitUserSuperVip, iSender) || isSetBit(g_iBitUserAdmin, iSender) || isSetBit(g_iBitUserVip, iSender) || isSetBit(g_iBitUserSuperAdmin, iSender) || isSetBit(g_iBitUserUAIO, iSender) || isSetBit(g_iBitUserGirl, iSender)) // микро
    {
        engfunc(EngFunc_SetClientListening, iReceiver, iSender, true);
        return FMRES_SUPERCEDE;
    }
    engfunc(EngFunc_SetClientListening, iReceiver, iSender, false);
    return FMRES_SUPERCEDE;
}


Хочу реализовать через Reapi
Код: Выделить всё
public HC_CBasePlayer_CanPlayerHearPlayer(const iReciever, const iSender)
{
    if((isSetBit(g_iBitUserVoice, iSender) && isSetBit(g_iBitUserAlive, iSender)) || (g_iTeamUser[iSender] == 2 && isSetBit(g_iBitUserAlive, iSender)) || isSetBit(g_iBitUserSuperVip, iSender) || isSetBit(g_iBitUserAdmin, iSender) || isSetBit(g_iBitUserVip, iSender) || isSetBit(g_iBitUserSuperAdmin, iSender) || isSetBit(g_iBitUserUAIO, iSender) || isSetBit(g_iBitUserGirl, iSender)) // микро
    {
        return HC_CONTINUE;
    }
    SetHookChainReturn(ATYPE_INTEGER, true);
    return HC_SUPERCEDE;
}


но при такром раскладе как то странно видет себя, т.е КТ вообще не слышна, а всем ТТ доступен микро
Где я мог допустить ошибку?
Заранее благадарю за помощь
Аватара пользователя
limbooc
 
Сообщения: 71
Зарегистрирован: 15 мар 2017, 07:45
Благодарил (а): 13 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около года
Языки программирования: Pawn

Re: [ReApi] RG_CSGameRules_CanPlayerHearPlayer [Микро]

Сообщение limbooc » 21 апр 2018, 13:25

UP

Добавлено спустя 35 секунд:
МБ проверку неправильно выставил (if?)
Аватара пользователя
limbooc
 
Сообщения: 71
Зарегистрирован: 15 мар 2017, 07:45
Благодарил (а): 13 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около года
Языки программирования: Pawn

Re: [ReApi] RG_CSGameRules_CanPlayerHearPlayer [Микро]

Сообщение Vaqtincha » 21 апр 2018, 21:34

ошибка тут:
return HC_CONTINUE;
(подумай)
админгандонсоси
Аватара пользователя
Vaqtincha
 
Сообщения: 277
Зарегистрирован: 28 мар 2018, 15:05
Забанен
Благодарил (а): 8 раз.
Поблагодарили: 53 раз.

Re: [ReApi] RG_CSGameRules_CanPlayerHearPlayer [Микро]

Сообщение limbooc » 22 апр 2018, 12:49

Vaqtincha, так, если условия истинное то мне нужно же продолжить хуки?

Код: Выделить всё
HC_CONTINUE продолжить вызывать хуки и оригинал


или неправильно?
Аватара пользователя
limbooc
 
Сообщения: 71
Зарегистрирован: 15 мар 2017, 07:45
Благодарил (а): 13 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около года
Языки программирования: Pawn


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 12