return (index == attacker || get_member(index, m_iTeam) == get_member(attacker, m_iTeam)) ? HC_SUPERCEDE : HC_CONTINUE
wopox1337 Тут баг, если тиммейт бросит вторую флешку, то ослепит полностьюoxoTHuk, судя по коду GameDLL видно, что есть 2 состояния alpha:
ReGameDLL_CS/combat.cpp at eb75d2eae10a9496561ecfa26dd6b1603de76f11 · s1lentq/ReGameDLL_CS · GitHub
Модификация плагина от wopox1337.
Изменения:
- Ослепления от флешек товарищей проходят частично.
Следовательно:
Код:
// Copyright © 2016 Vaqtincha
/* wopox1337 modification: (mod1)
- flash partly when teammate's flashes;
- And when don't partly.
*/
#include <amxmodx>
#include <reapi>
enum { BLINDED_PARTLY = 200, BLINDED_FULLY = 255 };
public plugin_init()
{
register_plugin("[ReAPI] No Team Flash lite", "0.0.2 (mod1)", "Vaqtincha");
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])
{
// Дебаг информация.
// client_print(index, print_chat, "fadeTime(%.1f),fadeHold(%.1f) ,alpha(%d)", fadeTime, fadeHold, alpha);
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())
Upd1: fix бага описанного ТУТ (спасибо Bullseye )
wopox1337, фикс будет? или как всегда: https://dev-cs.ru/forums/90/ ?wopox1337 Тут баг, если тиммейт бросит вторую флешку, то ослепит полностью
#include <amxmodx>
#include <reapi>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif
//#define NO_FLASH_ACCESS ADMIN_LEVEL_H // Флаг для антифлеша. Если нужно чтобы не слепило всю команду - закомментируйте
public plugin_init() {
register_plugin("[reAPI] Flash Control", "1.1", "neugomon");
RegisterHookChain(RG_PlayerBlind, "fwdPlayerBlindPre", false);
}
#if defined NO_FLASH_ACCESS
new bool:g_bNoFlash[33];
public client_putinserver(id) g_bNoFlash[id] = bool:(get_user_flags(id) & NO_FLASH_ACCESS);
#endif
public fwdPlayerBlindPre(const id, const inflictor, const attacker) {
if(id == attacker) return HC_CONTINUE;
if(get_member(id, m_iTeam) != get_member(attacker, m_iTeam)) return HC_CONTINUE;
#if defined NO_FLASH_ACCESS
return g_bNoFlash[id] ? HC_SUPERCEDE : HC_CONTINUE;
#else
return HC_SUPERCEDE;
#endif
}
Можно сток обновить:oxoTHuk, судя по коду GameDLL видно, что есть 2 состояния alpha:
ReGameDLL_CS/combat.cpp at eb75d2eae10a9496561ecfa26dd6b1603de76f11 · s1lentq/ReGameDLL_CS · GitHub
Модификация плагина от wopox1337.
Изменения:
- Ослепления от флешек товарищей проходят частично.
Следовательно:
Код:
// Copyright © 2016 Vaqtincha
/* wopox1337 modification: (mod1)
- flash partly when teammate's flashes;
- And when don't partly.
*/
#include <amxmodx>
#include <reapi>
enum { BLINDED_PARTLY = 200, BLINDED_FULLY = 255 };
public plugin_init()
{
register_plugin("[ReAPI] No Team Flash lite", "0.0.2 (mod1)", "Vaqtincha");
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])
{
// Дебаг информация.
// client_print(index, print_chat, "fadeTime(%.1f),fadeHold(%.1f) ,alpha(%d)", fadeTime, fadeHold, alpha);
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())
Upd1: fix бага описанного ТУТ (спасибо Bullseye )
stock bool: rg_is_user_blinded(const pPlayerId)
return bool:(Float:get_member(pPlayerId, m_blindUntilTime) > get_gametime())