Add steam for antiflash

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Заключена
Потребителски аватар

Автор на темата
lantimilan
Foreigner
Foreigner
Мнения: 330
Регистриран: 29 ное 2017, 22:49
Се отблагодари: 16 пъти
Получена благодарност: 1 път
Контакти:

Add steam for antiflash

Мнение от lantimilan » 25 мар 2020, 15:48

https://forums.alliedmods.net/showthread.php?p=2565649
Its possible to add some steam for antiflash for all team ?

Потребителски аватар

OciXCrom TM
Администратор
Администратор
Мнения: 6073
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 107 пъти
Получена благодарност: 771 пъти
Години: 22
Контакти:

Add steam for antiflash

Мнение от OciXCrom TM » 25 мар 2020, 16:16

Add SteamIDs in STEAM_LIST (line 27).

Код: Избери всички

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

// https://forums.alliedmods.net/showthread.php?p=2565017

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

const PEV_NADE_TYPE = pev_flTimeStepSound
const NADE_TYPE_FLASH = 3333

new g_msgid_ScreenFade
new g_PlayerFlasher

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

// Edit by OciXCrom: made it work only for specific SteamIDs

#if !defined MAX_PLAYERS
	const MAX_PLAYERS = 32
#endif

#if !defined MAX_AUTHID_LENGTH
	const MAX_AUTHID_LENGTH = 64
#endif

new const STEAM_LIST[][] =
{
	"STEAM_0:0:50153248",
	"STEAM_0:0:12345678",
	"STEAM_0:0:23456789"
}

new Trie:g_tSteamIds
new bool:g_bAntiFlash[MAX_PLAYERS + 1]

public plugin_init()
{
	register_plugin("AntiFlash FINAL", "5.0", "Leo_[BH]")

	g_msgid_ScreenFade = get_user_msgid("ScreenFade")

	register_message(g_msgid_ScreenFade, "message_screenfade");

	register_forward(FM_SetModel, "fw_SetModel")
	RegisterHam(Ham_Think, "grenade", "fw_ThinkGrenade")

	g_tSteamIds = TrieCreate()

	for(new i; i < sizeof(STEAM_LIST); i++)
	{
		TrieSetCell(g_tSteamIds, STEAM_LIST[i], 1)
	}
}

public plugin_end()
{
	TrieDestroy(g_tSteamIds)
}

public client_authorized(id)
{
	new szAuthId[MAX_AUTHID_LENGTH]
	get_user_authid(id, szAuthId, charsmax(szAuthId))
	g_bAntiFlash[id] = TrieKeyExists(g_tSteamIds, szAuthId)
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

public message_screenfade(msg_id, msg_dest, msg_entity)
{
	if (get_msg_arg_int(4) != 255 || get_msg_arg_int(5) != 255 || get_msg_arg_int(6) != 255 || get_msg_arg_int(7) < 200)
		return PLUGIN_CONTINUE;

	new id = msg_entity

	if (id != g_PlayerFlasher)
	{
		return PLUGIN_HANDLED;
	}

	if (get_user_team(id) == get_user_team(g_PlayerFlasher))
	{
		return g_bAntiFlash[g_PlayerFlasher] ? PLUGIN_HANDLED : PLUGIN_CONTINUE
	}

	return PLUGIN_CONTINUE;
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

public fw_SetModel(entity, szModel[])
{
	if(!equal(szModel, "models/w_flashbang.mdl"))
		return FMRES_IGNORED;

	set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_FLASH)

	return FMRES_IGNORED;
}

public fw_ThinkGrenade(entity)
{
	if (!pev_valid(entity)) return HAM_IGNORED;

	static Float:dmgtime
	pev(entity, pev_dmgtime, dmgtime)

	if (dmgtime > get_gametime())
		return HAM_IGNORED;

	switch (pev(entity, PEV_NADE_TYPE))
	{
		case NADE_TYPE_FLASH: // Flash Grenade
		{
			g_PlayerFlasher = pev(entity, pev_owner)
			return HAM_IGNORED;
		}
	}

	return HAM_IGNORED;
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Потребителски аватар

Автор на темата
lantimilan
Foreigner
Foreigner
Мнения: 330
Регистриран: 29 ное 2017, 22:49
Се отблагодари: 16 пъти
Получена благодарност: 1 път
Контакти:

Add steam for antiflash

Мнение от lantimilan » 25 мар 2020, 21:40

thanks closed topic :D

Заключена

Върни се в “Заявки за плъгини”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 2 госта