Counter-Strike 1.6
CS1.BG | DUST2 NOSHTA GARMI [RANKED PLAY] #1
45.144.155.113:27015
de_dust2
Играчи: 30/32
de_dust2
Counter-Strike 1.6
Cs-PlovdiV.com - Aim Attack 93.123.16.4:27022 aim_aztec Играчи: 0/16

Fast Event

Одобрените от нас плъгини. Моля, докладвайте ако забележите бъг с някой от плъгините в този раздел.
Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1825
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 370 пъти
Обратна връзка:

Re: Fast Event

Мнение от illusion » 20 Яну 2024, 19:21

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <cromchat>
#include <crxranks>

#pragma ctrlchar  '\'

#define PLUGIN "Fast Event"
#define VERSION "1.0"
#define AUTHOR "hackera457"

#define MAX_LENGTH  9

#define TASK_END_EVENT 111258

enum _:eSettings{
	EVENT_START_TIME,
	EVENT_REWARD_MONEY,
	EVENT_REWARD_HP,
	EVENT_REWARD_GRENADES,
	EVENT_REWARD_XP,
	EVENT_HUD_COLOR,
	EVENT_HUD_COORDX,
	EVENT_HUD_COORDY,
	EVENT_HUD_HOLD_TIME
};

new g_szChars[] = "abcdefghijklmnopqrstuvwxyz0123456789.!@#$&=}{";

new g_szGrenades[]={
	
	"weapon_hegrenade",
	"weapon_flashbang",
	"weapon_smokegrenade"
};

new g_szRandomString[MAX_LENGTH];
new g_szCvarSettings[eSettings];

new bool:g_bIsEventStart;
new bool:g_bIsAnswered[33];

public plugin_init() {
	
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd( "say","cmdSay");
	register_clcmd("say_team","cmdSay");
	
	g_szCvarSettings[EVENT_START_TIME] = register_cvar("fastevent_start_time","120.0");
	g_szCvarSettings[EVENT_REWARD_MONEY] = register_cvar("fastevent_reward_money","2500");
	g_szCvarSettings[EVENT_REWARD_HP] = register_cvar("fastevent_reward_hp","100");
	g_szCvarSettings[EVENT_REWARD_GRENADES] = register_cvar("fastevent_reward_grenades","1");
	g_szCvarSettings[EVENT_REWARD_XP] = register_cvar("fastevent_reward_xp", "20");
	g_szCvarSettings[EVENT_HUD_COLOR] = register_cvar("fastevent_hud_color","0 255 0");
	g_szCvarSettings[EVENT_HUD_COORDX] = register_cvar("fastevent_hud_coordX","0.04");
	g_szCvarSettings[EVENT_HUD_COORDY] = register_cvar("fastevent_hud_coordY","0.73");
	g_szCvarSettings[EVENT_HUD_HOLD_TIME] = register_cvar("fastevent_hud_hold_time","12.0");
	
	set_task(get_pcvar_float(g_szCvarSettings[EVENT_START_TIME]),"StartEvent",_,_,_,"b");
	
}

public client_connect(id)
{
	g_bIsAnswered[id] = false;
}

public StartEvent()
{
	g_bIsEventStart = true;
	
	GenerateString(g_szChars, charsmax(g_szChars),g_szRandomString, charsmax(g_szRandomString));
	
	new szColors[16];
	new szRed[4], szGreen[4], szBlue[4]; 
	new iRed, iGreen, iBlue;
	
	get_pcvar_string(g_szCvarSettings[EVENT_HUD_COLOR], szColors, charsmax(szColors));
	parse(szColors, szRed, charsmax(szRed), szGreen, charsmax(szGreen), szBlue, charsmax(szBlue));
	
	iRed = str_to_num(szRed); 
	iGreen = str_to_num(szGreen); 
	iBlue = str_to_num(szBlue);
	
	set_task(15.0,"EndEvent",TASK_END_EVENT,_,_,"b");
	
	set_dhudmessage(iRed,iGreen,iBlue,get_pcvar_float(g_szCvarSettings[EVENT_HUD_COORDX]),get_pcvar_float(g_szCvarSettings[EVENT_HUD_COORDY]),1,6.0,get_pcvar_float(g_szCvarSettings[EVENT_HUD_HOLD_TIME]));
	show_dhudmessage(0,"[FastEvent] Type in the following symbols to win: %s",g_szRandomString);	
		
}

public cmdSay(id)
{

	if(g_bIsEventStart)
	{
		new szSaid[ 192 ], szName[32];
		read_args( szSaid, charsmax( szSaid ) );
		remove_quotes( szSaid );
		trim( szSaid );
	
		if( equali( szSaid, "" ) )
			return PLUGIN_HANDLED;
			
		if(g_bIsAnswered[id])
		{
			ColorChat(id,TEAM_COLOR,"\1[\4FastEvent\1] You already answered and you can answer again on the next event!");
			return PLUGIN_HANDLED;
		}
		else
		{
		
			if(equali(szSaid,g_szRandomString))
			{
				g_bIsAnswered[id] = true;
			
				get_user_name(id,szName,charsmax(szName));
			
				switch(random_num(0,3))
				{
					case 0: 
					{
						cs_set_user_money(id,cs_get_user_money(id)+get_pcvar_num(g_szCvarSettings[EVENT_REWARD_MONEY]));
						
						ColorChat(0,TEAM_COLOR,"\1[\4FastEvent\1] Player \4%s\1 won \4%i$\1!",szName,get_pcvar_num(g_szCvarSettings[EVENT_REWARD_MONEY]));
					}
					case 1: 
					{
						fm_set_user_health(id,fm_get_user_health(id)+get_pcvar_num(g_szCvarSettings[EVENT_REWARD_HP]));
						
						ColorChat(0,TEAM_COLOR,"\1[\4FastEvent\1] Player \4%s\1 won \4+%i HP\1!",szName,get_pcvar_num(g_szCvarSettings[EVENT_REWARD_HP]));
					}
					case 2:
					{
						if(!get_pcvar_num(g_szCvarSettings[EVENT_REWARD_GRENADES]))
							return PLUGIN_HANDLED;
						
						for(new j=0;j < sizeof(g_szGrenades);j++)
							give_item(id,g_szGrenades[j]);
							
						ColorChat(0,TEAM_COLOR,"\1[\4FastEvent\1] Player \4%s\1 won \4Full Grenade Pack\1!",szName);
					}
					case 3:
					{
						crxranks_give_user_xp(id, get_pcvar_num(g_szCvarSettings[EVENT_REWARD_XP]));
						
						ColorChat(0,TEAM_COLOR,"\1[\4FastEvent\1] Player \4%s\1 won \4+%i XP\1!",szName,get_pcvar_num(g_szCvarSettings[EVENT_REWARD_XP]));
					}
				}
				
			
			}
			else
			{
				g_bIsAnswered[id] = true;
			
				ColorChat(id,TEAM_COLOR,"\1[\4FastEvent\1] Your answer is incorrect! You can try again on the next event!");
			}
		
		}
	}
	
	return PLUGIN_CONTINUE;		
}

public EndEvent()
{
	if(task_exists(TASK_END_EVENT))
		remove_task(TASK_END_EVENT);
		
	g_bIsEventStart = false;
	
	new iPlayers[32],iNum;
	
	get_players(iPlayers,iNum,"ch");
	
	for(new i=0; i < iNum;i++)
		g_bIsAnswered[iPlayers[i]] = false;
}

stock GenerateString(const choices[], const num_choices, output[], const len)
{
    for(new i = 0; i < len; i++)
    {
        output[i] = choices[random(num_choices)];
    }
    
    return len;
}

stock fm_set_user_health(index, health)
{
   set_pev(index, pev_health, float(health));
   return 1;
}

stock fm_get_user_health(index)
{
   return pev(index, pev_health);
}
CVar:
g_szCvarSettings[EVENT_REWARD_XP] = register_cvar("fastevent_reward_xp", "20");
Изработки на поръчкови уеб системи, уеб дизайни и графични изображения
Discord Server

Аватар
HeatoN
Извън линия
Потребител
Потребител
Мнения: 232
Регистриран на: 04 Фев 2022, 16:16
Местоположение: Elhovo - Las Vegas
Се отблагодари: 35 пъти
Получена благодарност: 2 пъти
Обратна връзка:

Re: Fast Event

Мнение от HeatoN » 20 Яну 2024, 20:31

illusion написа: 20 Яну 2024, 19:21

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <cromchat>
#include <crxranks>

#pragma ctrlchar  '\'

#define PLUGIN "Fast Event"
#define VERSION "1.0"
#define AUTHOR "hackera457"

#define MAX_LENGTH  9

#define TASK_END_EVENT 111258

enum _:eSettings{
	EVENT_START_TIME,
	EVENT_REWARD_MONEY,
	EVENT_REWARD_HP,
	EVENT_REWARD_GRENADES,
	EVENT_REWARD_XP,
	EVENT_HUD_COLOR,
	EVENT_HUD_COORDX,
	EVENT_HUD_COORDY,
	EVENT_HUD_HOLD_TIME
};

new g_szChars[] = "abcdefghijklmnopqrstuvwxyz0123456789.!@#$&=}{";

new g_szGrenades[]={
	
	"weapon_hegrenade",
	"weapon_flashbang",
	"weapon_smokegrenade"
};

new g_szRandomString[MAX_LENGTH];
new g_szCvarSettings[eSettings];

new bool:g_bIsEventStart;
new bool:g_bIsAnswered[33];

public plugin_init() {
	
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd( "say","cmdSay");
	register_clcmd("say_team","cmdSay");
	
	g_szCvarSettings[EVENT_START_TIME] = register_cvar("fastevent_start_time","120.0");
	g_szCvarSettings[EVENT_REWARD_MONEY] = register_cvar("fastevent_reward_money","2500");
	g_szCvarSettings[EVENT_REWARD_HP] = register_cvar("fastevent_reward_hp","100");
	g_szCvarSettings[EVENT_REWARD_GRENADES] = register_cvar("fastevent_reward_grenades","1");
	g_szCvarSettings[EVENT_REWARD_XP] = register_cvar("fastevent_reward_xp", "20");
	g_szCvarSettings[EVENT_HUD_COLOR] = register_cvar("fastevent_hud_color","0 255 0");
	g_szCvarSettings[EVENT_HUD_COORDX] = register_cvar("fastevent_hud_coordX","0.04");
	g_szCvarSettings[EVENT_HUD_COORDY] = register_cvar("fastevent_hud_coordY","0.73");
	g_szCvarSettings[EVENT_HUD_HOLD_TIME] = register_cvar("fastevent_hud_hold_time","12.0");
	
	set_task(get_pcvar_float(g_szCvarSettings[EVENT_START_TIME]),"StartEvent",_,_,_,"b");
	
}

public client_connect(id)
{
	g_bIsAnswered[id] = false;
}

public StartEvent()
{
	g_bIsEventStart = true;
	
	GenerateString(g_szChars, charsmax(g_szChars),g_szRandomString, charsmax(g_szRandomString));
	
	new szColors[16];
	new szRed[4], szGreen[4], szBlue[4]; 
	new iRed, iGreen, iBlue;
	
	get_pcvar_string(g_szCvarSettings[EVENT_HUD_COLOR], szColors, charsmax(szColors));
	parse(szColors, szRed, charsmax(szRed), szGreen, charsmax(szGreen), szBlue, charsmax(szBlue));
	
	iRed = str_to_num(szRed); 
	iGreen = str_to_num(szGreen); 
	iBlue = str_to_num(szBlue);
	
	set_task(15.0,"EndEvent",TASK_END_EVENT,_,_,"b");
	
	set_dhudmessage(iRed,iGreen,iBlue,get_pcvar_float(g_szCvarSettings[EVENT_HUD_COORDX]),get_pcvar_float(g_szCvarSettings[EVENT_HUD_COORDY]),1,6.0,get_pcvar_float(g_szCvarSettings[EVENT_HUD_HOLD_TIME]));
	show_dhudmessage(0,"[FastEvent] Type in the following symbols to win: %s",g_szRandomString);	
		
}

public cmdSay(id)
{

	if(g_bIsEventStart)
	{
		new szSaid[ 192 ], szName[32];
		read_args( szSaid, charsmax( szSaid ) );
		remove_quotes( szSaid );
		trim( szSaid );
	
		if( equali( szSaid, "" ) )
			return PLUGIN_HANDLED;
			
		if(g_bIsAnswered[id])
		{
			ColorChat(id,TEAM_COLOR,"\1[\4FastEvent\1] You already answered and you can answer again on the next event!");
			return PLUGIN_HANDLED;
		}
		else
		{
		
			if(equali(szSaid,g_szRandomString))
			{
				g_bIsAnswered[id] = true;
			
				get_user_name(id,szName,charsmax(szName));
			
				switch(random_num(0,3))
				{
					case 0: 
					{
						cs_set_user_money(id,cs_get_user_money(id)+get_pcvar_num(g_szCvarSettings[EVENT_REWARD_MONEY]));
						
						ColorChat(0,TEAM_COLOR,"\1[\4FastEvent\1] Player \4%s\1 won \4%i$\1!",szName,get_pcvar_num(g_szCvarSettings[EVENT_REWARD_MONEY]));
					}
					case 1: 
					{
						fm_set_user_health(id,fm_get_user_health(id)+get_pcvar_num(g_szCvarSettings[EVENT_REWARD_HP]));
						
						ColorChat(0,TEAM_COLOR,"\1[\4FastEvent\1] Player \4%s\1 won \4+%i HP\1!",szName,get_pcvar_num(g_szCvarSettings[EVENT_REWARD_HP]));
					}
					case 2:
					{
						if(!get_pcvar_num(g_szCvarSettings[EVENT_REWARD_GRENADES]))
							return PLUGIN_HANDLED;
						
						for(new j=0;j < sizeof(g_szGrenades);j++)
							give_item(id,g_szGrenades[j]);
							
						ColorChat(0,TEAM_COLOR,"\1[\4FastEvent\1] Player \4%s\1 won \4Full Grenade Pack\1!",szName);
					}
					case 3:
					{
						crxranks_give_user_xp(id, get_pcvar_num(g_szCvarSettings[EVENT_REWARD_XP]));
						
						ColorChat(0,TEAM_COLOR,"\1[\4FastEvent\1] Player \4%s\1 won \4+%i XP\1!",szName,get_pcvar_num(g_szCvarSettings[EVENT_REWARD_XP]));
					}
				}
				
			
			}
			else
			{
				g_bIsAnswered[id] = true;
			
				ColorChat(id,TEAM_COLOR,"\1[\4FastEvent\1] Your answer is incorrect! You can try again on the next event!");
			}
		
		}
	}
	
	return PLUGIN_CONTINUE;		
}

public EndEvent()
{
	if(task_exists(TASK_END_EVENT))
		remove_task(TASK_END_EVENT);
		
	g_bIsEventStart = false;
	
	new iPlayers[32],iNum;
	
	get_players(iPlayers,iNum,"ch");
	
	for(new i=0; i < iNum;i++)
		g_bIsAnswered[iPlayers[i]] = false;
}

stock GenerateString(const choices[], const num_choices, output[], const len)
{
    for(new i = 0; i < len; i++)
    {
        output[i] = choices[random(num_choices)];
    }
    
    return len;
}

stock fm_set_user_health(index, health)
{
   set_pev(index, pev_health, float(health));
   return 1;
}

stock fm_get_user_health(index)
{
   return pev(index, pev_health);
}
CVar:
g_szCvarSettings[EVENT_REWARD_XP] = register_cvar("fastevent_reward_xp", "20");
Супер е бачка само едно нещо примерно може ли да се махне Flash и Smoke да има само HE и по възможност ако ти се занимава да се добави това

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <reapi>
#include <hamsandwich>
#include <customshop>

additem ITEM_FROSTNADE

#define CLIENT_IN_DUCK					15.0
#define CLIENT_NOT_IN_DUCK 				35.0

enum _:XYZ
{
	Float:X,
	Float:Y,
	Float:Z
}

enum _:RGB
{
	R,
	G,
	B
}

#define PLUGIN_NAME "CSHOP: Frost Nade ( FlashBang )"
#define PLUGIN_VERSION "1.0.0"
#define PLUGIN_AUTHOR "Huehue @ AMXX-BG.INFO"

#define flag_get(%1,%2) (%1 & (1 << (%2 & 31)))
#define flag_set(%1,%2) %1 |= (1 << (%2 & 31))
#define flag_unset(%1,%2) %1 &= ~(1 << (%2 & 31))

#define TASK_FROST_REMOVE 100

#define valid_entity(%0)	!is_nullent(%0)

#define WEAPON_ANIM_DRAW_TIME 51/30.0

new const WEAPON_OLD[] = { "weapon_flashbang" }

enum _:eModelList
{
	View,
	Player,
	World
}

new const g_szNadeModels[eModelList][] =
{
	"models/rhuehue_frost/v_frost.mdl",
	"models/rhuehue_frost/p_frost.mdl",
	"models/rhuehue_frost/w_frost.mdl"
}

new g_iNadeModelsIndex[eModelList]

enum _:eSoundList
{
	Explode,
	Freeze,
	Unfreeze
}

new const g_szNadeSounds[eSoundList][] =
{
	"rhuehue_frost/nova.wav",		// Explode
	"rhuehue_frost/freeze.wav",		// Freeze & Create Ice Block
	"rhuehue_frost/unfreeze.wav"	// Unfreeze & Destroy Ice Block
}

enum _:eCubeList
{
	Cube,
	DuckCube,
	DestroyCube
}

new const g_iCubeModel[eCubeList][] =
{
	"models/rhuehue_frost/ice_cube.mdl",
	"models/rhuehue_frost/ice_cube_duck.mdl",
	"models/rhuehue_frost/ice_cube_destroy.mdl"
}

new g_iCubeModelIndex[eCubeList]

enum _:eSpriteList
{
	TrailSpr,
	ExplodeSpr,
	FrostSpr
}

new const g_szNadeSprites[eSpriteList][] =
{
	"sprites/lgtning.spr",
	"sprites/ballsmoke.spr",
	"sprites/rhuehue_frost/frost_exp.spr"
}

new g_iSprite[eSpriteList]

const UNIT_SECOND = (1<<12)

const FADE_IN = 0x0000
const FADE_OUT = 0x0004

new g_iIsFrozen
new g_iMsgDamage, g_iMsgIconStatus, g_iMsgScreenFade

new g_iHasGrenadeFrost[MAX_CLIENTS + 1]
new g_iEntCube[MAX_CLIENTS + 1]

new Float:g_pC_FreezeDuration, g_pC_FreezeHitSelf, g_pC_FreezeTeamMates

public plugin_init()
{
	register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
	
	RegisterHookChain(RG_CBasePlayer_Spawn, "CBase_PlayerSpawn", true)
	RegisterHookChain(RG_CBasePlayer_Killed, "CBase_PlayerKilled", true)
	RegisterHookChain(RG_CBasePlayer_TraceAttack, "CBase_PlayerTraceAttack", false)
	RegisterHookChain(RG_CBasePlayer_TakeDamage, "CBase_PlayerTakeDamage", false)
	RegisterHookChain(RG_ThrowFlashbang, "ThrowFlashbang", true)

	RegisterHookChain(RG_CBasePlayerWeapon_DefaultDeploy, "CBasePlayerWeapon_DefaultDeploy")
	
	bind_pcvar_float(create_cvar("fn_freeze_duration", "4.0", FCVAR_NONE, "Duration of the Freeze"), g_pC_FreezeDuration)
	bind_pcvar_num(create_cvar("fn_freeze_hitself", "1", FCVAR_NONE, "Whether you will be able to freeze yourself or not"), g_pC_FreezeHitSelf)
	bind_pcvar_num(create_cvar("fn_freeze_teammates", "1", FCVAR_NONE, "Whether you will be able to freeze team mates or not"), g_pC_FreezeTeamMates)
	
	g_iMsgScreenFade = get_user_msgid("ScreenFade")
	g_iMsgDamage = get_user_msgid("Damage")
	g_iMsgIconStatus = get_user_msgid("StatusIcon")
}

public plugin_precache()
{
	ITEM_FROSTNADE = cshop_register_item("rhuehue_frostnade", "Frost Grenade \d[ Ice Block ]", 300, 1)

	static i
	for(i = 0; i < sizeof g_szNadeModels; i++)
		g_iNadeModelsIndex[i] = precache_model(g_szNadeModels[i])

	for(i = 0; i < sizeof g_szNadeSounds; i++)
		precache_sound(g_szNadeSounds[i])

	for(i = 0; i < sizeof g_iCubeModel; i++)
		g_iCubeModelIndex[i] = precache_model(g_iCubeModel[i])

	for(i = 0; i < sizeof g_szNadeSprites; i++)
		g_iSprite[i] = precache_model(g_szNadeSprites[i])
}

public cshop_item_selected(id, iItem)
{
	if(iItem == ITEM_FROSTNADE)
	{
		g_iHasGrenadeFrost[id] += 1
		
		if (!rg_has_item_by_name(id, WEAPON_OLD))
			rg_give_item(id, WEAPON_OLD)
		else
		{
			ExecuteHamB(Ham_GiveAmmo, id, 1, "Flashbang", 32)
			rh_emit_sound2(id, 0, CHAN_ITEM, "items/9mmclip1.wav", VOL_NORM, ATTN_NORM)
		}
	}
}
	
public cshop_item_removed(id, iItem)
{
	if(iItem == ITEM_FROSTNADE)
		g_iHasGrenadeFrost[id] = 0
}

public CBasePlayerWeapon_DefaultDeploy(const iItem, szViewModel[], szWeaponModel[], iAnim, szAnimExt[], iSkipLocal)
{
	static id
	id = get_member(iItem, m_pPlayer)

	if (get_member(get_member(id, m_pActiveItem), m_iId) == WEAPON_FLASHBANG)
	{
		if (g_iHasGrenadeFrost[id] <= 0)
			return
	
		message_begin(MSG_ONE, g_iMsgIconStatus, _, id)
		write_byte(1)
		write_string("dmg_cold")
		write_byte(100)
		write_byte(150)
		write_byte(240)
		message_end()

		SetHookChainArg(2, ATYPE_STRING, g_szNadeModels[View])
		SetHookChainArg(3, ATYPE_STRING, g_szNadeModels[Player])
		
		set_member(iItem, m_Weapon_flTimeWeaponIdle, WEAPON_ANIM_DRAW_TIME)
	}
	else
	{
		message_begin(MSG_ONE, g_iMsgIconStatus, _, id)
		write_byte(0)
		write_string("dmg_cold")
		message_end()
		
		set_member(iItem, m_Weapon_flTimeWeaponIdle, 0.0)
	}

}

public CBase_PlayerSpawn(id)
{
	if (!is_user_alive(id))
		return
	
	if (task_exists(id + TASK_FROST_REMOVE))
		remove_task(id + TASK_FROST_REMOVE)

	if (flag_get(g_iIsFrozen, id))
	{
		flag_unset(g_iIsFrozen, id)
		rg_set_rendering(id)
	}
	
	if (!rg_has_item_by_name(id, WEAPON_OLD) || !g_iHasGrenadeFrost[id])
		g_iHasGrenadeFrost[id] = 0
	
	if (g_iEntCube[id])
		UTIL_IceBlock(id, false)
}

public CBase_PlayerTraceAttack(iVictim, iAttacker, Float:flDamage, Float:flDirection[3], iTraceHandle, iDamageType)
{
	if (iVictim == iAttacker || !is_user_connected(iAttacker))
		return HC_CONTINUE
	
	if (flag_get(g_iIsFrozen, iVictim))
		return HC_SUPERCEDE
	
	return HC_CONTINUE
}

public CBase_PlayerTakeDamage(iVictim, iInflictor, iAttacker, Float:flDamage, iDamageType)
{
	if (iVictim == iAttacker || !is_user_connected(iAttacker))
		return HC_CONTINUE
	
	if (flag_get(g_iIsFrozen, iVictim))
		return HC_SUPERCEDE
	
	return HC_CONTINUE
}

public client_putinserver(id)
{
	Reset_Value(id)
	
	if (g_iEntCube[id])
		UTIL_IceBlock(id, false)
}

public client_disconnected(id)
{
	Reset_Value(id)
	
	if (g_iEntCube[id])
		UTIL_IceBlock(id, false)
}

public CBase_PlayerKilled(id)
{
	if (task_exists(id + TASK_FROST_REMOVE))
		remove_task(id + TASK_FROST_REMOVE)

	g_iHasGrenadeFrost[id] = 0
	
	if (flag_get(g_iIsFrozen, id))
	{
		flag_unset(g_iIsFrozen, id)
		rg_set_rendering(id)
		
		message_begin(MSG_ONE, g_iMsgScreenFade, _, id)
		write_short(UNIT_SECOND)
		write_short(0)
		write_short(FADE_IN)
		write_byte(0)
		write_byte(50)
		write_byte(200)
		write_byte(100)
		message_end()
	}
	
	if (g_iEntCube[id])
		UTIL_IceBlock(id, false)
}

public ThrowFlashbang(id, Float:vecStart[3], Float:vecVelocity[3], Float:vecTime, iEvent)
{
	if (g_iHasGrenadeFrost[id])
	{
		g_iHasGrenadeFrost[id] -= 1
	}

	new iEntity = GetHookChainReturn(ATYPE_INTEGER)

	if (is_nullent(iEntity))
		return

	set_entvar(iEntity, var_model, g_szNadeModels[World])
	set_entvar(iEntity, var_modelindex, g_iNadeModelsIndex[World])

	UTIL_CreateTrail(iEntity)
	
	rg_set_rendering(iEntity, kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 10)
	set_entvar(iEntity, var_nextthink, get_gametime() + 1.5)
	
	SetThink(iEntity, "HookThink_Grenade")
}

public HookThink_Grenade(iEntity)
{
	new Float:vecOrigin[3]
	get_entvar(iEntity, var_origin, vecOrigin)

	UTIL_DELIGHT(vecOrigin)
	UTIL_SpriteTrail(vecOrigin)

	UTIL_CreateBeacon(vecOrigin)

	rh_emit_sound2(iEntity, 0, CHAN_WEAPON, g_szNadeSounds[Explode], VOL_NORM, ATTN_NORM)

	static iPlayers[MAX_PLAYERS], iNum, iVictim
	get_players(iPlayers, iNum, "a")

	new iOwner = get_entvar(iEntity, var_owner)

	for (--iNum; iNum >= 0; iNum--)
	{
		iVictim = iPlayers[iNum]

		if (!g_pC_FreezeHitSelf && iOwner == iVictim || !g_pC_FreezeTeamMates && get_member(iOwner, m_iTeam) == get_member(iVictim, m_iTeam) && iOwner != iVictim)
				continue

		new Float:flOrigin[XYZ]
		get_entvar(iVictim, var_origin, flOrigin)

		if (get_distance_f(flOrigin, vecOrigin) > 240.0)
			continue

		flag_set(g_iIsFrozen, iVictim)

		new Float:flVelocity[3]
		get_entvar(iVictim, var_velocity, flVelocity)
		flVelocity[0] = 0.0
		flVelocity[1] = 0.0
		set_entvar(iVictim, var_velocity, flVelocity)

		set_entvar(iVictim, var_flags, get_entvar(iVictim, var_flags) | FL_FROZEN)

		UTIL_IceBlock(iVictim, true)

		set_member(iVictim, m_flNextAttack, g_pC_FreezeDuration)

		message_begin(MSG_ONE, g_iMsgScreenFade, _, iVictim)
		write_short(0)
		write_short(0)
		write_short(FADE_OUT)
		write_byte(0)
		write_byte(50)
		write_byte(200)
		write_byte(100)
		message_end()

		message_begin(MSG_ONE_UNRELIABLE, g_iMsgDamage, _, iVictim)
		write_byte(0)
		write_byte(0)
		write_long(DMG_DROWN)
		write_coord(0)
		write_coord(0)
		write_coord(0)
		message_end()
		
		rg_set_rendering(g_iEntCube[iVictim], kRenderFxNone, 255, 255, 255, kRenderTransAdd, 255)
		rg_set_rendering(iVictim, kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 10)
		
		if (!task_exists(iVictim + TASK_FROST_REMOVE))
			set_task(g_pC_FreezeDuration, "CTask__RemoveFreeze", iVictim + TASK_FROST_REMOVE)

		
	}
	
	set_entvar(iEntity, var_flags, get_entvar(iEntity, var_flags) | FL_KILLME)
}

public CTask__RemoveFreeze(taskid)
{
	new id = taskid - TASK_FROST_REMOVE
	set_entvar(id, var_flags, get_entvar(id, var_flags) & ~FL_FROZEN)

	set_member(id, m_flNextAttack, 0.0)
	
	message_begin(MSG_ONE, g_iMsgScreenFade, _, id)
	write_short(UNIT_SECOND)
	write_short(0)
	write_short(FADE_IN)
	write_byte(0)
	write_byte(50)
	write_byte(200)
	write_byte(100)
	message_end()

	UTIL_IceBlock(id, false)
	
	flag_unset(g_iIsFrozen, id)
	
	rg_set_rendering(id)
}

Reset_Value(id)
{
	if (task_exists(id + TASK_FROST_REMOVE))
		remove_task(id + TASK_FROST_REMOVE)

	g_iHasGrenadeFrost[id] = 0
	
	if (flag_get(g_iIsFrozen, id))
	{
		flag_unset(g_iIsFrozen, id)
		rg_set_rendering(id)
	}
}

stock rg_set_rendering(iEntity, iRender = kRenderFxNone, iRed = 255, iGreen = 255, iBlue = 255, iRenderNormal = kRenderNormal, iAmount = 16)
{
	set_entvar(iEntity, var_renderfx, iRender)
	
	new Float:vecRenderColor[RGB]

	vecRenderColor[R] = float(iRed)
	vecRenderColor[G] = float(iGreen)
	vecRenderColor[B] = float(iBlue)
	
	set_entvar(iEntity, var_rendercolor, vecRenderColor)
	set_entvar(iEntity, var_rendermode, iRenderNormal)
	set_entvar(iEntity, var_renderamt, float(iAmount))
	
	return 1
}

public rg_remove_entity(iEntity)
{
	if (valid_entity(iEntity))
		set_entvar(iEntity, var_flags, get_entvar(iEntity, var_flags) | FL_KILLME)
}

public remove_cube(arg[],taskid)
{
	if(valid_entity(arg[0]))
		rg_remove_entity(arg[0])
}

enum EntityType
{
	CREATE_ENT = 0, DESTROY_ENT
}

stock UTIL_IceBlock(id, bool:cube) 
{
	static iEntity[EntityType], iCubeType
	if (cube)
	{
		static Float:flOrigin[XYZ]
		if (!is_user_alive(id))
		{
			UTIL_IceBlock(id, false)
			return
		}
		
		if (valid_entity(g_iEntCube[id]))
		{
			if (get_entvar(g_iEntCube[id], var_iuser3) != id)
			{
				if (get_entvar(g_iEntCube[id], var_team) == 1914)
					rg_remove_entity(g_iEntCube[id])
			}
			else
			{
				iCubeType = (get_entvar(id, var_flags) & FL_DUCKING) ? DuckCube : Cube

				get_entvar(id, var_origin, flOrigin)
				flOrigin[Z] -= iCubeType ? CLIENT_IN_DUCK : CLIENT_NOT_IN_DUCK

				set_entvar(g_iEntCube[id], var_origin, flOrigin)

				return
			}
		}
		
		get_entvar(id, var_origin, flOrigin)
		iCubeType = (get_entvar(id, var_flags) & FL_DUCKING) ? DuckCube : Cube
		flOrigin[Z] -= iCubeType ? CLIENT_IN_DUCK : CLIENT_NOT_IN_DUCK

		iEntity[CREATE_ENT] = rg_create_entity("info_target")
		set_entvar(iEntity[CREATE_ENT], var_classname, "CreateIceCube")

		rh_emit_sound2(id, 0, CHAN_STATIC, g_szNadeSounds[Freeze], VOL_NORM, ATTN_NORM)
		
		set_entvar(iEntity[CREATE_ENT], var_model, g_iCubeModel[iCubeType])
		set_entvar(iEntity[CREATE_ENT], var_modelindex, g_iCubeModelIndex[iCubeType])
		set_entvar(iEntity[CREATE_ENT], var_solid, SOLID_NOT)
		set_entvar(iEntity[CREATE_ENT], var_movetype, MOVETYPE_FLY)
		set_entvar(iEntity[CREATE_ENT], var_origin, flOrigin)
		set_entvar(iEntity[CREATE_ENT], var_iuser3, id)
		set_entvar(iEntity[CREATE_ENT], var_team, 1914)
		set_entvar(iEntity[CREATE_ENT], var_sequence, 0)	
		set_entvar(iEntity[CREATE_ENT], var_framerate, 0.0)
		set_entvar(iEntity[CREATE_ENT], var_animtime, get_gametime())
		rg_set_rendering(iEntity[CREATE_ENT], kRenderFxNone, 255, 255, 255, kRenderTransAdd, 255)
		g_iEntCube[id] = iEntity[CREATE_ENT]
	}
	else
	{
		if (valid_entity(g_iEntCube[id]))
		{
			if (get_entvar(g_iEntCube[id], var_team) == 1914) 
			{
				rg_remove_entity(g_iEntCube[id])

				static Float:flOriginX[XYZ]

				get_entvar(id, var_origin, flOriginX)
				flOriginX[Z] -= iCubeType ? CLIENT_IN_DUCK : CLIENT_NOT_IN_DUCK
				iEntity[DESTROY_ENT] = rg_create_entity("info_target")
				set_entvar(iEntity[DESTROY_ENT], var_classname, "DestroyIceCube")

				rh_emit_sound2(id, 0, CHAN_STATIC, g_szNadeSounds[Unfreeze], VOL_NORM, ATTN_NORM)
				
				set_entvar(iEntity[DESTROY_ENT], var_model, g_iCubeModel[DestroyCube])
				set_entvar(iEntity[DESTROY_ENT], var_modelindex, g_iCubeModelIndex[DestroyCube])
				set_entvar(iEntity[DESTROY_ENT], var_solid, SOLID_NOT)
				set_entvar(iEntity[DESTROY_ENT], var_movetype, MOVETYPE_TOSS) // MOVETYPE_FLY >> Toss has gravity [Drop To Floor replacement with Gravity]
				set_entvar(iEntity[DESTROY_ENT], var_origin, flOriginX)
				set_entvar(iEntity[DESTROY_ENT], var_iuser3, id)
				set_entvar(iEntity[DESTROY_ENT], var_team, 19141)
				set_entvar(iEntity[DESTROY_ENT], var_sequence, 0)
				set_entvar(iEntity[DESTROY_ENT], var_framerate, 5.0)
				set_entvar(iEntity[DESTROY_ENT], var_animtime, get_gametime())
				set_entvar(iEntity[DESTROY_ENT], var_gravity, 99999.9) // Drop to floor Replacement
				rg_set_rendering(iEntity[DESTROY_ENT], kRenderFxNone, 255, 255, 255, kRenderTransAdd, 255)

				new arg[1]
				arg[0] = iEntity[DESTROY_ENT]
				set_task(g_pC_FreezeDuration, "remove_cube", id+1111, arg, 2)
			}			
			g_iEntCube[id] = NULLENT
		}
	}
}

public UTIL_CreateBeacon(const Float:flOrigin[XYZ])
{
	static iRange, iApplied, iRGB[RGB]
	iRange = 385/*240*/

	iRGB[R] = 0
	iRGB[G] = random_num(20, 75)
	iRGB[B] = random(256)

	iApplied = 0

	Beacon:
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(TE_BEAMCYLINDER)
	write_coord(floatround(flOrigin[X]))
	write_coord(floatround(flOrigin[Y]))
	write_coord(floatround(flOrigin[Z]))
	write_coord(floatround(flOrigin[X]))
	write_coord(floatround(flOrigin[Y]))
	write_coord(floatround(flOrigin[Z] + iRange))
	write_short(g_iSprite[ExplodeSpr])
	write_byte(0)
	write_byte(0)
	write_byte(4) // 8
	write_byte(60)
	write_byte(0)
	write_byte(iRGB[R])
	write_byte(iRGB[G])
	write_byte(iRGB[B])
	write_byte(200)
	write_byte(3)
	message_end()

	switch(iApplied)
	{
		case 0:
		{
			iRange = 470
			iApplied = 1
			iRGB[R] = 0
			iRGB[G] = random_num(50, 75)
			iRGB[B] = random_num(120, 200)
			goto Beacon
		}
		case 1:
		{
			iRange = 555
			iApplied = 2
			iRGB[R] = 0
			iRGB[G] = random_num(30, 75)
			iRGB[B] = random(256)
			goto Beacon
		}
	}
}

UTIL_DELIGHT(Float:flOrigin[XYZ])
{
	message_begin(MSG_PVS, SVC_TEMPENTITY)
	write_byte(TE_DLIGHT)
	write_coord(floatround(flOrigin[X]))
	write_coord(floatround(flOrigin[Y]))
	write_coord(floatround(flOrigin[Z]))
	write_byte(30)
	write_byte(10)
	write_byte(100)
	write_byte(200)
	write_byte(200)
	write_byte(18)
	write_byte(20)
	message_end()
}

UTIL_SpriteTrail(Float:flOrigin[XYZ])
{
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(TE_SPRITETRAIL)
	write_coord(floatround(flOrigin[X]))
	write_coord(floatround(flOrigin[Y]))
	write_coord(floatround(flOrigin[Z]) + 100)
	write_coord(floatround(flOrigin[X]))
	write_coord(floatround(flOrigin[Y]))
	write_coord(floatround(flOrigin[Z]) + 15)
	write_short(g_iSprite[FrostSpr])
	write_byte(10)
	write_byte(5)
	write_byte(2)
	write_byte(50)
	write_byte(10)
	message_end()
}

UTIL_CreateTrail(iEntity)
{
	UTIL_DestroyTrail(iEntity)

	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(TE_BEAMFOLLOW)
	write_short(iEntity) // entity
	write_short(g_iSprite[TrailSpr]) // sprite
	write_byte(10) // life
	write_byte(10) // width
	write_byte(0) // red
	write_byte(100) // green
	write_byte(200) // blue
	write_byte(200) // brightness
	message_end()
}

UTIL_DestroyTrail(iEntity)
{
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte(TE_KILLBEAM)
	write_short(iEntity) // entity
	message_end()
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1026\\ f0\\ fs16 \n\\ par }
*/
Здравейте, Ние сме Dark-Star Counter-Strike базирана верига стремяща се да предостави качествени сървъри на своитепотребители
〢☆ При нас може да намерите:
〢☆ активен и помагащ STAFF
〢☆ Качествени сървъри.
〢☆ 24/7 поддръжка.
〢☆ Нашият дискорд: https://discord.gg/cPw8xauRPq
Изображение

Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1825
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 370 пъти
Обратна връзка:

Re: Fast Event

Мнение от illusion » 20 Яну 2024, 20:55

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <cromchat>
#include <crxranks>

#pragma ctrlchar  '\'

#define PLUGIN "Fast Event"
#define VERSION "1.0"
#define AUTHOR "hackera457"

#define MAX_LENGTH  9

#define TASK_END_EVENT 111258

enum _:eSettings{
	EVENT_START_TIME,
	EVENT_REWARD_MONEY,
	EVENT_REWARD_HP,
	EVENT_REWARD_GRENADES,
	EVENT_REWARD_XP,
	EVENT_HUD_COLOR,
	EVENT_HUD_COORDX,
	EVENT_HUD_COORDY,
	EVENT_HUD_HOLD_TIME
};

new g_szChars[] = "abcdefghijklmnopqrstuvwxyz0123456789.!@#$&=}{";

new g_szGrenades[]={
	
	"weapon_hegrenade"
};

new g_szRandomString[MAX_LENGTH];
new g_szCvarSettings[eSettings];

new bool:g_bIsEventStart;
new bool:g_bIsAnswered[33];

public plugin_init() {
	
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd( "say","cmdSay");
	register_clcmd("say_team","cmdSay");
	
	g_szCvarSettings[EVENT_START_TIME] = register_cvar("fastevent_start_time","120.0");
	g_szCvarSettings[EVENT_REWARD_MONEY] = register_cvar("fastevent_reward_money","2500");
	g_szCvarSettings[EVENT_REWARD_HP] = register_cvar("fastevent_reward_hp","100");
	g_szCvarSettings[EVENT_REWARD_GRENADES] = register_cvar("fastevent_reward_grenades","1");
	g_szCvarSettings[EVENT_REWARD_XP] = register_cvar("fastevent_reward_xp", "20");
	g_szCvarSettings[EVENT_HUD_COLOR] = register_cvar("fastevent_hud_color","0 255 0");
	g_szCvarSettings[EVENT_HUD_COORDX] = register_cvar("fastevent_hud_coordX","0.04");
	g_szCvarSettings[EVENT_HUD_COORDY] = register_cvar("fastevent_hud_coordY","0.73");
	g_szCvarSettings[EVENT_HUD_HOLD_TIME] = register_cvar("fastevent_hud_hold_time","12.0");
	
	set_task(get_pcvar_float(g_szCvarSettings[EVENT_START_TIME]),"StartEvent",_,_,_,"b");
	
}

public client_connect(id)
{
	g_bIsAnswered[id] = false;
}

public StartEvent()
{
	g_bIsEventStart = true;
	
	GenerateString(g_szChars, charsmax(g_szChars),g_szRandomString, charsmax(g_szRandomString));
	
	new szColors[16];
	new szRed[4], szGreen[4], szBlue[4]; 
	new iRed, iGreen, iBlue;
	
	get_pcvar_string(g_szCvarSettings[EVENT_HUD_COLOR], szColors, charsmax(szColors));
	parse(szColors, szRed, charsmax(szRed), szGreen, charsmax(szGreen), szBlue, charsmax(szBlue));
	
	iRed = str_to_num(szRed); 
	iGreen = str_to_num(szGreen); 
	iBlue = str_to_num(szBlue);
	
	set_task(15.0,"EndEvent",TASK_END_EVENT,_,_,"b");
	
	set_dhudmessage(iRed,iGreen,iBlue,get_pcvar_float(g_szCvarSettings[EVENT_HUD_COORDX]),get_pcvar_float(g_szCvarSettings[EVENT_HUD_COORDY]),1,6.0,get_pcvar_float(g_szCvarSettings[EVENT_HUD_HOLD_TIME]));
	show_dhudmessage(0,"[FastEvent] Type in the following symbols to win: %s",g_szRandomString);	
		
}

public cmdSay(id)
{

	if(g_bIsEventStart)
	{
		new szSaid[ 192 ], szName[32];
		read_args( szSaid, charsmax( szSaid ) );
		remove_quotes( szSaid );
		trim( szSaid );
	
		if( equali( szSaid, "" ) )
			return PLUGIN_HANDLED;
			
		if(g_bIsAnswered[id])
		{
			ColorChat(id,TEAM_COLOR,"\1[\4FastEvent\1] You already answered and you can answer again on the next event!");
			return PLUGIN_HANDLED;
		}
		else
		{
		
			if(equali(szSaid,g_szRandomString))
			{
				g_bIsAnswered[id] = true;
			
				get_user_name(id,szName,charsmax(szName));
			
				switch(random_num(0,3))
				{
					case 0: 
					{
						cs_set_user_money(id,cs_get_user_money(id)+get_pcvar_num(g_szCvarSettings[EVENT_REWARD_MONEY]));
						
						ColorChat(0,TEAM_COLOR,"\1[\4FastEvent\1] Player \4%s\1 won \4%i$\1!",szName,get_pcvar_num(g_szCvarSettings[EVENT_REWARD_MONEY]));
					}
					case 1: 
					{
						fm_set_user_health(id,fm_get_user_health(id)+get_pcvar_num(g_szCvarSettings[EVENT_REWARD_HP]));
						
						ColorChat(0,TEAM_COLOR,"\1[\4FastEvent\1] Player \4%s\1 won \4+%i HP\1!",szName,get_pcvar_num(g_szCvarSettings[EVENT_REWARD_HP]));
					}
					case 2:
					{
						if(!get_pcvar_num(g_szCvarSettings[EVENT_REWARD_GRENADES]))
							return PLUGIN_HANDLED;
						
						for(new j=0;j < sizeof(g_szGrenades);j++)
							give_item(id,g_szGrenades[j]);
							
						ColorChat(0,TEAM_COLOR,"\1[\4FastEvent\1] Player \4%s\1 won \4HE Grenade\1!",szName);
					}
					case 3:
					{
						crxranks_give_user_xp(id, get_pcvar_num(g_szCvarSettings[EVENT_REWARD_XP]));
						
						ColorChat(0,TEAM_COLOR,"\1[\4FastEvent\1] Player \4%s\1 won \4+%i XP\1!",szName,get_pcvar_num(g_szCvarSettings[EVENT_REWARD_XP]));
					}
				}
				
			
			}
			else
			{
				g_bIsAnswered[id] = true;
			
				ColorChat(id,TEAM_COLOR,"\1[\4FastEvent\1] Your answer is incorrect! You can try again on the next event!");
			}
		
		}
	}
	
	return PLUGIN_CONTINUE;		
}

public EndEvent()
{
	if(task_exists(TASK_END_EVENT))
		remove_task(TASK_END_EVENT);
		
	g_bIsEventStart = false;
	
	new iPlayers[32],iNum;
	
	get_players(iPlayers,iNum,"ch");
	
	for(new i=0; i < iNum;i++)
		g_bIsAnswered[iPlayers[i]] = false;
}

stock GenerateString(const choices[], const num_choices, output[], const len)
{
    for(new i = 0; i < len; i++)
    {
        output[i] = choices[random(num_choices)];
    }
    
    return len;
}

stock fm_set_user_health(index, health)
{
   set_pev(index, pev_health, float(health));
   return 1;
}

stock fm_get_user_health(index)
{
   return pev(index, pev_health);
}
Направих ти го само с HE, това с фроста не ми се занимава, ако някой иска да ти го направи.
Изработки на поръчкови уеб системи, уеб дизайни и графични изображения
Discord Server

Аватар
HeatoN
Извън линия
Потребител
Потребител
Мнения: 232
Регистриран на: 04 Фев 2022, 16:16
Местоположение: Elhovo - Las Vegas
Се отблагодари: 35 пъти
Получена благодарност: 2 пъти
Обратна връзка:

Re: Fast Event

Мнение от HeatoN » 20 Яну 2024, 20:56

Евала мерси много
Здравейте, Ние сме Dark-Star Counter-Strike базирана верига стремяща се да предостави качествени сървъри на своитепотребители
〢☆ При нас може да намерите:
〢☆ активен и помагащ STAFF
〢☆ Качествени сървъри.
〢☆ 24/7 поддръжка.
〢☆ Нашият дискорд: https://discord.gg/cPw8xauRPq
Изображение

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Одобрени плъгини”

Кой е на линия

Потребители разглеждащи този форум: Google [Bot] и 1 гост