No Team Flash Lite (Перенесено)

Сообщения
56
Реакции
46
Помог
1 раз(а)
Код:
#include <amxmodx>
#include <reapi>

#define ONLY_FLAG
#define FLAG_ACCESS    ADMIN_LEVEL_H
//##define info

enum { BLINDED_PARTLY = 200, BLINDED_FULLY = 255 };

public plugin_init()
{
    register_plugin("[ReAPI] No Team Flash", "1.0", "ReHLDS");
    RegisterHookChain(RG_PlayerBlind, "PlayerBlind", .post = false);
}

public PlayerBlind(const index, const inflictor, const attacker, const Float:fadeTime, const Float:fadeHold, const alpha, Float:color[3])
{
#if defined ONLY_FLAG
    if(!(get_user_flags(index) & FLAG_ACCESS)) return HC_CONTINUE
#endif
    if (index != attacker
        && (get_member(index, m_iTeam) == get_member(attacker, m_iTeam))
        && alpha > BLINDED_PARTLY
        && !rg_is_user_blinded(index)
    )
{
SetHookChainArg(6, ATYPE_INTEGER, BLINDED_PARTLY);
}
}

stock bool: rg_is_user_blinded(const pPlayerId)
    return bool:(Float:get_member(pPlayerId, m_blindStartTime) + Float:get_member(pPlayerId, m_blindFadeTime) >= get_gametime())
#24 function "PlayerBlind" should return a value
что не так делаю ?

и как добавить аля

Код:
    #if defined info
    client_print_color(id, print_team_grey, "^3Вас ослепил ^1(^4%s^1)", szNoobName)
    client_print_color(g_FlId, print_team_red, "^3Вы ослепили ^1(^4%s^1)", szVictimName)
    #else
    ChatPrintColor(id, "^4[TFC] ^1Ослеплен (^3%s^1)", szNoobName)
    ChatPrintColor(g_FlId, "^4[TFC] ^3Вы ^1ослепили (^3%s^1)", szVictimName)
    #endif
 
Последнее редактирование:
Сообщения
1,419
Реакции
2,510
Помог
59 раз(а)
kaldun89, заменить:
##define info на #define info
if(!(get_user_flags(index) & FLAG_ACCESS)) return HC_CONTINUE на if(~get_user_flags(index) & FLAG_ACCESS) return HC_CONTINUE
И добавить в конец функции PlayerBlind() return HC_CONTINUE
ChatPrintColor это что? Есть функция client_print_color.
 
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
kaldun89, мне не ясен момент. Что делает этот паблик? Там куча проверок, но выхлопа никакого нет...

Код:
public PlayerBlind(const index, const inflictor, const attacker, const Float:fadeTime, const Float:fadeHold, const alpha, Float:color[3]) {
    if(~get_user_flags(index) & FLAG_ACCESS) return HC_CONTINUE;
    if(index != attacker && (get_member(index, m_iTeam) == get_member(attacker, m_iTeam))
        && alpha > BLINDED_PARTLY && !rg_is_user_blinded(index)) {
        // Где код? Что тут должно быть?
    }
}
6 Апр 2018
kaldun89, хотел меня дураком выставить?) Мог бы отписать о том, что отредактировал свой пост. :beee:
В общем, по редактированию вижу, что ты понял проблему.

Добавь return, как написал w0w, и пробуй.
 
Последнее редактирование:
Сообщения
56
Реакции
46
Помог
1 раз(а)
Minni, никоим образом. Заметил этот код, решил добавить проверку по флагу и вывод сообщения в чат для ослепленного и ослепившего. Не скриптер, аналогов не нашел, а подсмотрел работу в схожих скриптах, интуитивно добавляя нужный функционал решая траблы)
Ребят, спасибо за ответы. WoW в тг прислал решение, будет рабочее, то выложу для всех.
 
Сообщения
56
Реакции
46
Помог
1 раз(а)
Код:
#include <amxmodx>
#include <reapi>

#define ONLY_FLAG
#if defined ONLY_FLAG
#define FLAG_ACCESS    ADMIN_LEVEL_H
#endif
//#define info

enum { BLINDED_PARTLY = 200, BLINDED_FULLY = 255 }

public plugin_init()
{
    register_plugin("[ReAPI] No Team Flash", "1.0", "ReHLDS")
    RegisterHookChain(RG_PlayerBlind, "PlayerBlind", .post = false)
}

public PlayerBlind(iVictim, iInflictor, iAttacker, Float:flFadeTime, Float:flFadeHold, iAlpha, Float:flColor[3])
{
#if defined ONLY_FLAG
    if(get_user_flags(iVictim) & FLAG_ACCESS)
        SetHookChainReturn(ATYPE_INTEGER, false)
#endif
    if(iVictim != iAttacker
        && (get_member(iVictim, m_iTeam) == get_member(iAttacker, m_iTeam))
        && iAlpha > BLINDED_PARTLY
        && !rg_is_user_blinded(iVictim)
    )
    {
        SetHookChainArg(6, ATYPE_INTEGER, BLINDED_PARTLY)
        static szAttackerName[MAX_NAME_LENGTH]; get_user_name(iAttacker, szAttackerName, charsmax(szAttackerName))
        static szVictimName[MAX_NAME_LENGTH]; get_user_name(iVictim, szVictimName, charsmax(szVictimName))
#if defined info
        client_print_color(iVictim, print_team_grey, "^4[TFC] ^3Вас ослепил ^1(^4%s^1)", szAttackerName)
        client_print_color(iAttacker, print_team_red, "^4[TFC] ^3Вы ослепили ^1(^4%s^1)", szVictimName)
#else
        client_print_color(iVictim, print_team_grey, "^4[TFC] ^1Ослеплен (^3%s^1)", szAttackerName)
        client_print_color(iAttacker, print_team_red, "^4[TFC] ^3Вы ^1ослепили (^3%s^1)", szVictimName)
#endif
    }
}

stock bool: rg_is_user_blinded(const pPlayerId)
    return bool:(Float:get_member(pPlayerId, m_blindStartTime) + Float:get_member(pPlayerId, m_blindFadeTime) >= get_gametime())
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу