VIP Boost Банери Кредити
Основно Начало Сървъри Marketplace Новини Форум Сървъри
Общности Хостинг Добави Boost
Ресурси
Библиотеки Карти Видеа Магазин
Инструменти
Builder Demo CFG HUD
AMXX API
Вход Регистрация
/ Библиотеки / frc.inc

frc.inc

.inc 7.9 KB 286 реда 04.04.2026
Pawn / AMX Mod X
/* Flashbang Remote Control Include File
*  Author: OT
*  
*  This include file will only work if the plugin named as flashbang_remote_control is placed in your server and it is working!
*/

#if defined _frc_included
  #endinput
#endif
#define _frc_included

#include <amxmodx>

#pragma reqlib "frc_lib"

/* Constants */

enum Amnt
{
	AMOUNT_BLIND_PARTIALLY 	= 200,
	AMOUNT_BLIND_FULLY		= 255
}

enum
{
	FRC_CONTINUE 			= 0,
	FRC_MAKE_PARTIALLY 		= 200,
	FRC_MAKE_FULLY			= 255,
	FRC_BLOCK 				= 300
}

enum Punish
{
	PUNISH_ATTACK = 0,
	PUNISH_KILL,
	PUNISH_FLASH
}

/* Forwards */

/*
* This forward is called before the flash message is sent to the player.
* Will execute in all plugins, even if it is blocked!
* 
* Arguments:
* flasher - the owner of the flashbang
* flashed - the person who was flashed
* flashbang - the flashbang entity | this entity will be equal with flasher if called with FRC_flash_player
* amount - the alpha of the screenfade
* 
* Return:
* - FRC_CONTINUE - do nothing
* - FRC_MAKE_PARTIALLY - make the flashbang partial
* - FRC_MAKE_FULLY - make the flashbang fully
* - FRC_BLOCK - block it
* 
* Notes: Will work even if plugin is turned off!
* Notes: Here you can manipulate also the duration of the screenfade with [g|s]et_FRC_duration() native
*/

forward fw_FRC_preflash(flasher, flashed, flashbang, amount)

/*
* This forward is called after the flash message is sent to the player.
* This forward can not be blocked and will not execute if preflash is blocked!
* 
* Arguments:
* flasher - the owner of the flashbang
* flashed - the person who was flashed
* flashbang - the flashbang entity | this entity will be equal with flasher if called with FRC_flash_player
* amount - the alpha of the screenfade
* 
* Return:
* No return!
* 
* Notes: Will work even if plugin is turned off!
*/

forward fw_FRC_postflash(flasher, flashed, flashbang, amount)

/*
* This forward is called when the flashbang begins searching for players, aka explodes.
* Before this forward the plugin registers all the
* It can't be blocked.
* 
* Arguments:
* flashbang_entity - the flashbang entity
* owner - the entity owner
* 
* Return:
* No return!
* 
* Notes: Will work even if plugin is turned off!
*/

forward fw_FRC_flashbang_explosion(flashbang_entity, owner)

/*
* This forward is called when the plugin free the data such as flasher entity and flash owner
* 
* Return:
* No return!
* 
* Notes: Will work even if plugin is turned off!
*/

forward fw_FRC_free_plugin_data()

/*
* This forward is called when the plugin punished a player!
* Warning it punish_type is equal to PUNISH_ATTACK then this forward will be extremely often called!
* 
* Arguments:
* flasher - the person that needs to be punished
* punish_type - type of punishment use the Punish enum!
* 
* Return:
* FRC_CONTINUE - continue the punishment
* FRC_BLOCK - block the punishment
* 
* Notes: Will work only when the plugin has the punish system on and the plugin itself is turned on!
*/

forward fw_FRC_punish(flasher, punish_type)

/*
* This forward is called when the plugin does the special check to block flashing players if one teammate is flashed!
* 
* Arguments:
* start - start position of the trace
* end - end position of the trace
* conditions - this should normally be DONT_IGNORE_MONSTERS, this acts as the conditions of TraceLine
* ignore_ent - entity that is to be ignored
* trace_handle - use get_tr2() from fakemeta, here we have the info that we need! 
*              - This is the tracehandle of the plugin, any modifications will be seen!
* 
* Return:
* No return!
* 
* Notes: Will work when the plugin is on and has the special block feature on!
*/

forward fw_FRC_trace(Float:start[3], Float:end[3], conditions, ignore_ent, trace_handle)

/*
* This forward is called when the plugin does the bug check to see if a player is flashable through a trace!
* 
* Arguments:
* start - start position of the trace
* end - end position of the trace
* conditions - this should normally be DONT_IGNORE_MONSTERS, this acts as the conditions of TraceLine
* ignore_ent - entity that is to be ignored
* trace_handle - use get_tr2() from fakemeta, here we have the info that we need! 
*              - This is the tracehandle of the plugin, any modifications will be seen!
* 
* Return:
* No return!
* 
* Notes: Will work when the plugin is on and has the bugfix feature on!
*/

forward fw_FRC_trace_bug(Float:start[3], Float:end[3], conditions, ignore_ent, trace_handle)

/*
* This forward is called when the counter is reseted.
* This happens normally when client connects or the punish period has finished!
* 
* Return:
* No return!
* 
* Notes: Will work only when the plugin has the punish system on and the plugin itself is turned on!
*/

forward fw_FRC_counter_reset(player)

/*
* This forward is called when the flashbang searches for the players that can be flashed!
* This takes place after fw_FRC_flashbang_explosion forward.
* If this will be blocked none of the punish/flash/trace forwards will work!
* 
* Params:
* - player - player id
* - flash_entity - flashbang entity
* 
* Return:
* - FRC_CONTINUE - do not do anything
* - FRC_BLOCK - block the client from beeing searched
* 
* Notes: Will work even if plugin is turned off!
*/

forward fw_FRC_flash_find_in_sphere(player, flash_entity)

/*
* This forward is called when the plugin finishes regitering all the forwards.
* 
* Return:
* None!
* 
* Notes: Will work even if plugin is turned off!
*/
forward fw_FRC_extention_init()

/* Natives */
/*
* Gets the number of times a player has flashed his teammates
*/
native get_FRC_counter(id)

/*
* Sets the number of times a player has flashed his teammates
*/
native set_FRC_counter(id, quantity)

/*
* This will set the duration of the flash [Use this in fw_FRC_preflash forward!]
* Return is in 0.1 seconds!
* Will return -1 on invalid call!
*/
native get_FRC_duration(flashed)

/*
* This will set the duration of the flash [Use this in fw_FRC_preflash forward!]
* Duration is in 0.1 seconds!
* Will return -1 on invalid call!
*/
native set_FRC_duration(flashed, duration)

/*
* This will set the hold time of the flash [Use this in fw_FRC_preflash forward!]
* Return is in 0.1 seconds!
* Will return -1 on invalid call!
*/
native get_FRC_holdtime(flashed)

/*
* This will set the hold time of the flash [Use this in fw_FRC_preflash forward!]
* Duration is in 0.1 seconds!
* Will return -1 on invalid call!
*/
native set_FRC_holdtime(flashed, duration)

/*
* Gets the number of time a player can flash his teammates
*/
native get_FRC_flash_limit()

/*
* Gets the exploding flashbang entity
*/
native get_FRC_exploding_flash()

/*
* Gets the owner of the exploding flashbang
*/
native get_FRC_exploding_owner()

/*
* If flasher != 0 then this function will be hookable with fw_FRC_preflash and fw_FRC_postflash, and the flash entity will be equal with flasher!
* If flasher == 0 then this function will be unhookable
* 
* Params:
* holdtime: Time that the screenfade maintains its color before fading
* duration: The time the entire screenfade message will last.
* Both duration and holdtime are in 0.1 seconds!!!
* 
* Example usage:
* FRC_flash_player(id, id, 1000, 900, AMOUNT_BLIND_FULLY)
* This will seem like an autoflash to the plugin, it will not be blocked by selfflash cvar!
* The screenfade will act like this: 90 seconds the screen will be total white and after that in the las 10 seconds it will fade out,
*/
native FRC_flash_player(flasher = 0, flashed, duration, holdtime, Amnt:ammount)

/*
* This we use to check whether the plugin is on.
* -1 - plugin does not exist!
*  0 - plugin exists but it is turned off!
*  1 - plugin is turned on!
*/
stock is_FRC_on()
{
	if (!cvar_exists("frc_enable"))
		return -1
	
	return (!!get_cvar_num("frc_enable"))
}
РЕКЛАМИРАЙ ПРИ НАС!
AMXX-BG.INFO
КАК ДА ИЗПОЛЗВАМ
Добави в началото на .sma файла:
#include <frc>
1. Изтегли
Свали файла от бутона по-горе
2. Копирай
Постави в scripting/include/
3. Включи
Добави #include директивата
4. Компилирай
Използвай amxxpc или scripting/compile.exe