Modificare plugin /duel

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
DeViLllll
Membru, skill 0
Membru, skill 0
Posts: 40
Joined: 13 Sep 2020, 12:30
Detinator Steam: Nu
CS Status: Hlewllel
Fond eXtream: 0
Has thanked: 4 times
Been thanked: 1 time

27 Feb 2021, 19:53

Vreau sa imi modifice pluginul asta sa nu mai apara meniul de la /duel in rusa si sa ramana doar Awp, deagle si cutite
| Afiseaza codul
/*
	[DeathRun] Duel (CT Choose ONLY)

	Plugin by Shidla [SGC]

	Idea & Pay (xD):
	DarkNill	|	ICQ: 555-995-004	(zombie-mod.ru)

	Credits:
	xPaw
	DJ_WEST


	Shidla [SGC] | 2010 | ICQ: 312-298-513

	1.3 [Final Version] | 23/11/2010

	http://Shidla.Gm-Project.NET/
*/

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

#define OFFSET_RELOAD	54
#define LINUX_DIFF		4

#define fm_create_entity(%1) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1))


/*========================================================================================================
===========================================[ Customizations ]=============================================
========================================================================================================*/

new const BOT_NAME[] = "DRM Fake Player"	// InGame Bot Name (in DeathrunManager!)

new const g_ChatPrefix[] = "[DeathRun Duel]"

new const CT_Aura[] = { 0, 0, 250 }
new const T_Aura[] = { 250, 0, 0 }

new const s_StartDuel[][] = { "vox/bizwarn.wav" }			// Duel starting sounds

/*========================================================================================================
=========================================[ Customizations End ]===========================================
========================================================================================================*/


new SayText, g_Maxplayers, g_Num_CT, g_MsgCurWeapon, g_DuelStarted, g_Weapon[33], g_WeaponClip[33],
	g_OneShot, g_ScoutBPAmmo, g_DeagleBPAmmo, g_AWPBPAmmo, g_Round_Ended, g_New_Round, RingSprite,
	CT_Player, T_Player, g_PlayerHP, g_DuelTimeOut, g_MsgSync, CountDown_Timer, g_ButtonsDisable

new const TASK_CONT = 1352	// CountDown task

public plugin_init()
{
	register_plugin("DeathRun Duel (CT Choose ONLY)", "1.3", "Shidla")
	register_cvar("Shidla", "DeathRun Duel 1.3 (CT Choose ONLY)", FCVAR_SERVER|FCVAR_SPONLY)

	register_clcmd("say /duel", "StartDuel")
	register_clcmd("say_team /duel", "StartDuel")
	register_clcmd("drop", "Drop_Cmd")

	g_ScoutBPAmmo	= register_cvar("dr_duel_scout_bpammo",		"200")
	g_DeagleBPAmmo	= register_cvar("dr_duel_deagle_bpammo",	"50")
	g_AWPBPAmmo		= register_cvar("dr_duel_awp_bpammo",		"100")
	g_PlayerHP		= register_cvar("dr_duel_player_hp",		"100")
	g_DuelTimeOut	= register_cvar("dr_duel_timeout",			"5")
	g_OneShot		= register_cvar("dr_duel_one_shot", 		"1")	// 1 - one clip bullet (ONLY!); 0 - disable
	g_ButtonsDisable = register_cvar("dr_duel_buttons_disable",	"1")

	register_event("DeathMsg", "Event_Death", "a")
	register_event("HLTV", "Event_Round_Start", "a", "1=0", "2=0" )
	register_event("SendAudio", "Event_Round_End", "a", "2&%!MRAD_terwin")
	register_event("SendAudio", "Event_Round_End", "a", "2&%!MRAD_ctwin")
	register_event("SendAudio", "Event_Round_End", "a", "2&%!MRAD_rounddraw")
	register_event("CurWeapon","Event_CurWeapon","b")

	register_forward(FM_CmdStart, "fw_CmdStart",1)

	RegisterHam(Ham_Touch, "weaponbox", "fw_TouchWeapon")
	RegisterHam(Ham_Touch, "weapon_shield", "fw_TouchWeapon")
	RegisterHam(Ham_Touch, "armoury_entity", "fw_TouchWeapon")
	RegisterHam(Ham_Weapon_Reload, "weapon_scout", "fw_Reload_Post", 1)
	RegisterHam(Ham_Weapon_Reload, "weapon_deagle", "fw_Reload_Post", 1)
	RegisterHam(Ham_Weapon_Reload, "weapon_awp", "fw_Reload_Post", 1)
	RegisterHam(Ham_Use, "func_button", "fw_Use")

	SayText = get_user_msgid("SayText")
	g_MsgCurWeapon = get_user_msgid("CurWeapon")
	g_MsgSync = CreateHudSyncObj()
	g_Maxplayers = get_maxplayers()

	register_dictionary("dr_duel.txt")
}

public plugin_precache()
{
	RingSprite = precache_model("sprites/zbeam5.spr")

	static i
	for(i = 0; i < sizeof s_StartDuel; i++)
		precache_sound(s_StartDuel)
}


public client_putinserver(id)
{
	g_Weapon[id] = 0
	g_WeaponClip[id] = 0
}

public StartDuel(id)
{
	if(!is_user_alive(id))
	{
		new t_Cant_Dead[600 char]
		formatex(t_Cant_Dead, charsmax(t_Cant_Dead), "%L", id, "DR_CANT_DEAD")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Dead)
		return PLUGIN_CONTINUE
	}

	if(g_Round_Ended)
	{
		new t_Cant_Round_End[600 char]
		formatex(t_Cant_Round_End, charsmax(t_Cant_Round_End), "%L", id, "DR_CANT_ROUND_END")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Round_End)
		return PLUGIN_CONTINUE
	}

	if(cs_get_user_team(id) == CS_TEAM_T)
	{
		new t_Cant_Ter[600 char]
		formatex(t_Cant_Ter, charsmax(t_Cant_Ter), "%L", id, "DR_CANT_TER")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Ter)
		return PLUGIN_CONTINUE
	}

	if(g_DuelStarted)
	{
		new t_Cant_Started[600 char]
		formatex(t_Cant_Started, charsmax(t_Cant_Started), "%L", id, "DR_CANT_STARTED")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Started)
		return PLUGIN_CONTINUE
	}

	for(new i = 1; i <= g_Maxplayers; i++)
	{
		new Name[32]
		get_user_name(i, Name, 31)

		if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT)
		{
			g_Num_CT++
			if(g_Num_CT == 1)
				CT_Player = i
			else
				CT_Player = 0
		}

		if(is_user_alive(i) && (cs_get_user_team(i) == CS_TEAM_T) && !equal(Name, BOT_NAME))
			T_Player = i
	}

	if(g_Num_CT == 1)
	{
		new TextTitle[ 200 char ]
		formatex(TextTitle, charsmax(TextTitle), "\rВыберите оружие для дуэли:")
		new WeapScout[ 200 char ]
		formatex(WeapScout, charsmax(WeapScout), "\yМуха [Scout]")
		new WeapDeagle[ 200 char ]
		formatex(WeapDeagle, charsmax(WeapDeagle), "\yДигл [Deagle]")
		new WeapAWP[ 200 char ]
		formatex(WeapAWP, charsmax(WeapAWP), "\yСлон [AWP]")
		new WeapKNife[ 200 char ]
		formatex(WeapKNife, charsmax(WeapKNife), "\yНож [KNife]")

		new i_Menu = menu_create(TextTitle, "WeaponMenu")
		menu_additem(i_Menu, WeapScout, "1", 0)
		menu_additem(i_Menu, WeapDeagle, "2", 0)
		menu_additem(i_Menu, WeapAWP, "3", 0)
		menu_additem(i_Menu, WeapKNife, "4", 0)

		g_DuelStarted = true
		g_New_Round = false

		fm_strip_user_weapons(CT_Player)
		fm_strip_user_weapons(T_Player)

		set_pev(CT_Player, pev_health, float(get_pcvar_num(g_PlayerHP)))	// Set CT HP
		set_pev(T_Player, pev_health, float(get_pcvar_num(g_PlayerHP)))		// Set T HP

		if(is_user_alive(CT_Player) && is_user_connected(CT_Player))
		{
			fm_set_user_godmode(CT_Player, 1)
			set_task(0.5, "Show_Ring", CT_Player)
		}

		if(is_user_alive(T_Player) && is_user_connected(T_Player))
		{
			fm_set_user_godmode(T_Player, 1)
			set_task(0.5, "Show_Ring", T_Player)
		}

		menu_display(CT_Player, i_Menu, 0)
	}
	else
	{
		new t_Cant_Too_Many[600 char]
		formatex(t_Cant_Too_Many, charsmax(t_Cant_Too_Many), "%L", id, "DR_CANT_TOO_MANY", g_Num_CT)
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Too_Many)
	}

	g_Num_CT = 0

	return PLUGIN_CONTINUE
}

public WeaponMenu(id, menu, item)
{
	new s_Data[4], s_Name[64], i_Access, i_Callback

	menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
	new i_Key = str_to_num(s_Data)

	switch(i_Key)
	{
		case 1:
		{
			Give_Scout(CT_Player)
			Give_Scout(T_Player)
		}

		case 2:
		{
			Give_Deagle(CT_Player)
			Give_Deagle(T_Player)
		}

		case 3:
		{
			Give_AWP(CT_Player)
			Give_AWP(T_Player)
		}

		case 4:
		{
			fm_give_item(CT_Player, "weapon_knife")
			fm_give_item(T_Player, "weapon_knife")
		}
	}

	menu_destroy(menu)

	if(is_user_alive(CT_Player) && is_user_connected(CT_Player))
		fm_set_rendering(CT_Player, kRenderFxGlowShell, CT_Aura[0], CT_Aura[1], CT_Aura[2], kRenderNormal, 20)

	if(is_user_alive(T_Player) && is_user_connected(T_Player))
		fm_set_rendering(T_Player, kRenderFxGlowShell, T_Aura[0], T_Aura[1], T_Aura[2], kRenderNormal, 20)

	CountDown_Timer = get_pcvar_num(g_DuelTimeOut)
	set_task(float(get_pcvar_num(g_DuelTimeOut)), "Duel_Informer", TASK_CONT)

	return PLUGIN_HANDLED
}

public Event_Death()
{
	new CT_Count, CT_Last_Player

	for(new i = 1; i <= g_Maxplayers; i++)
	{
		new Name[32]
		get_user_name(i, Name, 31)

		if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT)
		{
			CT_Count++
			if(CT_Count == 1)
				CT_Last_Player = i
			else
				CT_Last_Player = 0
		}
	}

	if(CT_Count == 1 && !g_Round_Ended && is_user_alive(CT_Last_Player) && is_user_connected(CT_Last_Player) && is_user_alive(T_Player))
	{
		new t_Can_Start[600 char]
		formatex(t_Can_Start, charsmax(t_Can_Start), "%L", CT_Last_Player, "DR_CAN_START")
		print_col_chat(CT_Last_Player, "^4%s^1 %s",g_ChatPrefix, t_Can_Start)
	}

	CT_Count = 0
}

public Event_Round_Start()
{
	g_DuelStarted = false
	g_Round_Ended = false
	g_New_Round = true

	g_Num_CT = 0
	CT_Player = 0
	T_Player = 0

	remove_task(TASK_CONT)

	for(new id = 1; id <= g_Maxplayers; id++)
		fm_set_rendering(id)
}

public Event_Round_End()
{
	g_Round_Ended = true

	CT_Player = 0
	T_Player = 0
}

public Event_CurWeapon(id)
{
	g_Weapon[id] = read_data(2)
	g_WeaponClip[id] = read_data(3)

	if(g_DuelStarted)
	{
		if(g_WeaponClip[id] > 1)
		{
			if(g_Weapon[id] == CSW_SCOUT)
				Weapon_ReChek(id, CSW_SCOUT)

			else if(g_Weapon[id] == CSW_DEAGLE)
				Weapon_ReChek(id, CSW_DEAGLE)

			else if(g_Weapon[id] == CSW_AWP)
				Weapon_ReChek(id, CSW_AWP)
		}
	}
}

public fw_CmdStart(id, handle, seed)
{
	if(!is_user_alive(id) || !g_DuelStarted)
		return FMRES_IGNORED

	if((g_Weapon[id] == CSW_SCOUT || g_Weapon[id] == CSW_DEAGLE || g_Weapon[id] == CSW_AWP) && get_pcvar_num(g_OneShot))
	{
		//if(pev(id, pev_button) & IN_RELOAD)
		if(get_uc(handle, UC_Buttons) & IN_RELOAD)
		{
			set_uc(handle, UC_Buttons, get_uc(handle, UC_Buttons) & ~IN_RELOAD)
			return FMRES_HANDLED
		}
	}

	return FMRES_IGNORED
}

public Drop_Cmd(id)
{
	if(g_DuelStarted)
	{
		new t_Cant_Drop[600 char]
		formatex(t_Cant_Drop, charsmax(t_Cant_Drop), "%L", id, "DR_CANT_DROP")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Drop)
		return PLUGIN_HANDLED
	}

	return PLUGIN_CONTINUE
}

public fw_TouchWeapon(weapon, id)
{
	if(!is_user_connected(id))
		return HAM_IGNORED

	if(g_DuelStarted)
		return HAM_SUPERCEDE

	return HAM_IGNORED
}

public fw_Reload_Post(Weap)
{
	if(!g_DuelStarted && !get_pcvar_num(g_OneShot))
		return FMRES_IGNORED

	if(is_user_alive(CT_Player) && get_pdata_int(Weap, OFFSET_RELOAD, LINUX_DIFF))
	{
		if(g_Weapon[CT_Player] == CSW_SCOUT)
			cs_set_user_bpammo(CT_Player, CSW_SCOUT, cs_get_user_bpammo(CT_Player, CSW_SCOUT) + 9)
		else if(g_Weapon[CT_Player] == CSW_DEAGLE)
			cs_set_user_bpammo(CT_Player, CSW_DEAGLE, cs_get_user_bpammo(CT_Player, CSW_DEAGLE) + 6)
		else if(g_Weapon[CT_Player] == CSW_AWP)
			cs_set_user_bpammo(CT_Player, CSW_AWP, cs_get_user_bpammo(CT_Player, CSW_AWP) + 9)
	}

	if(is_user_alive(T_Player) && get_pdata_int(Weap, OFFSET_RELOAD, LINUX_DIFF))
	{
		if(g_Weapon[T_Player] == CSW_SCOUT)
			cs_set_user_bpammo(T_Player, CSW_SCOUT, cs_get_user_bpammo(T_Player, CSW_SCOUT) + 9)
		else if(g_Weapon[T_Player] == CSW_DEAGLE)
			cs_set_user_bpammo(T_Player, CSW_DEAGLE, cs_get_user_bpammo(T_Player, CSW_DEAGLE) + 6)
		else if(g_Weapon[T_Player] == CSW_AWP)
			cs_set_user_bpammo(T_Player, CSW_AWP, cs_get_user_bpammo(T_Player, CSW_AWP) + 9)
	}

	return FMRES_IGNORED
}

public fw_Use(ent, idcaller, idactivator, use_type, Float:value)
{
	if(g_ButtonsDisable && g_DuelStarted && is_user_alive(idactivator) && cs_get_user_team(idactivator) == CS_TEAM_T)
	{
		new t_Cant_Drop[600 char]
		formatex(t_Cant_Drop, charsmax(t_Cant_Drop), "%L", idactivator, "DR_CANT_USE")
		print_col_chat(idactivator, "^4%s^1 %s",g_ChatPrefix, t_Cant_Drop)
		return HAM_SUPERCEDE
	}

	return HAM_IGNORED
}

public Duel_Informer()
{
	if(CountDown_Timer > 1)
	{
		set_hudmessage(255, 0, 0, -1.0, 0.28, 2, 0.02, 1.0, 0.01, 0.1, -1)

		if(CountDown_Timer != 1)
		{
			for(new id = 1; id <= g_Maxplayers; id++)
			{
				new t_Time_Delay[600 char]
				formatex(t_Time_Delay, charsmax(t_Time_Delay), "%L", id, "DR_TIME_DELAY", CountDown_Timer - 1)
				ShowSyncHudMsg(id, g_MsgSync, "%s", t_Time_Delay)
			}
		}
	}
	--CountDown_Timer

	if(CountDown_Timer >= 1)
		set_task(1.0, "Duel_Informer", TASK_CONT)
	else
	{
		client_cmd(0, "spk %s", s_StartDuel[random_num(0, sizeof s_StartDuel - 1)])

		if(is_user_alive(CT_Player) && is_user_connected(CT_Player))
			fm_set_user_godmode(CT_Player, 0)

		if(is_user_alive(T_Player) && is_user_connected(T_Player))
			fm_set_user_godmode(T_Player, 0)

		remove_task(TASK_CONT)
	}
}

public Show_Ring(id)
{
	if(g_DuelStarted && is_user_alive(id) && is_user_connected(id) && !g_New_Round)
	{
		static Float:origin[3]
		pev(id, pev_origin, origin)

		if(id == CT_Player)
			Ring(origin, CT_Aura[0], CT_Aura[1], CT_Aura[2])
		else if(id == T_Player)
			Ring(origin, T_Aura[0], T_Aura[1], T_Aura[2])

		set_task(0.5, "Show_Ring", id)
	}
	else
		remove_task(id)
}


/*========================================================================================================
===============================================[ Stocks ]=================================================
========================================================================================================*/
stock fm_give_item(index, const item[])
{
	if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
		return 0

	new ent = fm_create_entity(item)
	if (!pev_valid(ent))
		return 0

	new Float:origin[3]
	pev(index, pev_origin, origin)
	set_pev(ent, pev_origin, origin)
	set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
	dllfunc(DLLFunc_Spawn, ent)

	new save = pev(ent, pev_solid)
	dllfunc(DLLFunc_Touch, ent, index)
	if (pev(ent, pev_solid) != save)
		return ent

	engfunc(EngFunc_RemoveEntity, ent)

	return -1
}

stock fm_strip_user_weapons(index)
{
	new ent = fm_create_entity("player_weaponstrip")
	if (!pev_valid(ent))
		return 0

	dllfunc(DLLFunc_Spawn, ent)
	dllfunc(DLLFunc_Use, ent, index)
	engfunc(EngFunc_RemoveEntity, ent)

	return 1
}

stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
	new Float:RenderColor[3]
	RenderColor[0] = float(r)
	RenderColor[1] = float(g)
	RenderColor[2] = float(b)

	set_pev(entity, pev_renderfx, fx)
	set_pev(entity, pev_rendercolor, RenderColor)
	set_pev(entity, pev_rendermode, render)
	set_pev(entity, pev_renderamt, float(amount))

	return 1
}

stock get_weapon_ent(id,wpnid=0,wpnName[]="")
{
	// who knows what wpnName will be
	static newName[32]

	// need to find the name
	if(wpnid) get_weaponname(wpnid,newName,31)

	// go with what we were told
	else formatex(newName,31,"%s",wpnName)

	// prefix it if we need to
	if(!equal(newName,"weapon_",7))
		format(newName,31,"weapon_%s",newName)

	new ent
	while((ent = engfunc(EngFunc_FindEntityByString,ent,"classname",newName)) && pev(ent,pev_owner) != id) {}

	return ent
}

stock fm_set_user_godmode(index, godmode = 0)
{
	set_pev(index, pev_takedamage, godmode == 1 ? DAMAGE_NO : DAMAGE_AIM)

	return 1
}

stock print_col_chat(const id, const input[], any:...)
{
	new count = 1, players[32]
	static msg[191]
	vformat(msg, 190, input, 3)

	replace_all(msg, 190, "!g", "^4") // Green Color
	replace_all(msg, 190, "!y", "^1") // Default Color (Yellow)
	replace_all(msg, 190, "!t", "^3") // Team Color

	if (id) players[0] = id; else get_players(players, count, "ch") 
	{
		for ( new i = 0; i < count; i++ )
		{
			if ( is_user_connected(players) )
			{
				message_begin(MSG_ONE_UNRELIABLE, SayText, _, players)
				write_byte(players)
				write_string(msg)
				message_end()
			}
		}
	}
}

UpDate_HUD(id, csw_weapon)
{
	message_begin(MSG_ONE, g_MsgCurWeapon, _, id)
	write_byte(1)
	write_byte(csw_weapon)	//CSW_weapon
	write_byte(1)	// MaxClip
	message_end()
}

Give_Scout(id)
{
	if(is_user_alive(id) && is_user_connected(id))
	{
		fm_give_item(id, "weapon_scout")

		new wEnt = get_weapon_ent(id, CSW_SCOUT)

		if(pev_valid(wEnt) && get_pcvar_num(g_OneShot))
			cs_set_weapon_ammo(wEnt, 1)

		cs_set_user_bpammo(id, CSW_SCOUT, get_pcvar_num(g_ScoutBPAmmo))
		UpDate_HUD(id, wEnt)
	}

}

Give_Deagle(id)
{
	if(is_user_alive(id) && is_user_connected(id))
	{
		fm_give_item(id, "weapon_deagle")

		new wEnt = get_weapon_ent(id, CSW_DEAGLE)

		if(pev_valid(wEnt) && get_pcvar_num(g_OneShot))
			cs_set_weapon_ammo(wEnt, 1)

		cs_set_user_bpammo(id, CSW_DEAGLE, get_pcvar_num(g_DeagleBPAmmo))
		UpDate_HUD(id, wEnt)
	}
}

Give_AWP(id)
{
	if(is_user_alive(id) && is_user_connected(id))
	{
		fm_give_item(id, "weapon_awp")

		new wEnt = get_weapon_ent(id, CSW_AWP)

		if(pev_valid(wEnt) && get_pcvar_num(g_OneShot))
			cs_set_weapon_ammo(wEnt, 1)

		cs_set_user_bpammo(id, CSW_AWP, get_pcvar_num(g_AWPBPAmmo))
		UpDate_HUD(id, wEnt)
	}
}

Weapon_ReChek(id, Weap)
{
	if(get_pcvar_num(g_OneShot) && is_user_alive(id) && is_user_connected(id))
	{
		new wEnt = get_weapon_ent(id, Weap)
		if(pev_valid(wEnt))
		{
			cs_set_weapon_ammo(wEnt, 1)
			UpDate_HUD(id, wEnt)
		}
	}
}

Ring(const Float:origin[3], R, G, B)
{
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
	write_byte(TE_BEAMCYLINDER) // TE id
	engfunc(EngFunc_WriteCoord, origin[0]) // x	10
	engfunc(EngFunc_WriteCoord, origin[1]) // y
	engfunc(EngFunc_WriteCoord, origin[2]) // z
	engfunc(EngFunc_WriteCoord, origin[0]-50.0) // x axis
	engfunc(EngFunc_WriteCoord, origin[1]) // y axis
	engfunc(EngFunc_WriteCoord, origin[2]+100.0) // z axis
	write_short(RingSprite) // sprite
	write_byte(0) // startframe
	write_byte(0) // framerate
	write_byte(5) // life
	write_byte(5) // width
	write_byte(0) // noise
	write_byte(R) // red
	write_byte(G) // green
	write_byte(B) // blue
	write_byte(200) // brightness
	write_byte(0) // speed
	message_end()
}
RoyalServer
User avatar
kidd0x
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 1054
Joined: 06 Oct 2018, 14:41
Detinator Steam: Da
SteamID: /id/kidd0x/
Reputatie: Utilizator neserios (tepar!)
Fond eXtream: 0
Location: Constangeles
Discord: kidd0x
Has thanked: 172 times
Been thanked: 81 times

27 Feb 2021, 19:58

Ai un dictionar la el , tradu-l pe google translate , ce e asa greu ?
User avatar
DeViLllll
Membru, skill 0
Membru, skill 0
Posts: 40
Joined: 13 Sep 2020, 12:30
Detinator Steam: Nu
CS Status: Hlewllel
Fond eXtream: 0
Has thanked: 4 times
Been thanked: 1 time

27 Feb 2021, 20:02

N3v3rM1nd wrote:
27 Feb 2021, 19:58
Ai un dictionar la el , tradu-l pe google translate , ce e asa greu ?
Eu vreau sa - mi modificati sma-ul sa nu mai fie scut si scrisu ca txt il am el apare in rusa de la sma nu de la txt ca dupa ce dau duel si aleg arma imi scrie in engleza meniul din sma e problema
User avatar
kidd0x
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 1054
Joined: 06 Oct 2018, 14:41
Detinator Steam: Da
SteamID: /id/kidd0x/
Reputatie: Utilizator neserios (tepar!)
Fond eXtream: 0
Location: Constangeles
Discord: kidd0x
Has thanked: 172 times
Been thanked: 81 times

27 Feb 2021, 22:12

DeViLllll wrote:
27 Feb 2021, 20:02
N3v3rM1nd wrote:
27 Feb 2021, 19:58
Ai un dictionar la el , tradu-l pe google translate , ce e asa greu ?
Eu vreau sa - mi modificati sma-ul sa nu mai fie scut si scrisu ca txt il am el apare in rusa de la sma nu de la txt ca dupa ce dau duel si aleg arma imi scrie in engleza meniul din sma e problema

Code: Select all

/*
	[DeathRun] Duel (CT Choose ONLY)

	Plugin by Shidla [SGC]

	Idea & Pay (xD):
	DarkNill	|	ICQ: 555-995-004	(zombie-mod.ru)

	Credits:
	xPaw
	DJ_WEST


	Shidla [SGC] | 2010 | ICQ: 312-298-513

	1.3 [Final Version] | 23/11/2010

	http://Shidla.Gm-Project.NET/
*/

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

#define OFFSET_RELOAD	54
#define LINUX_DIFF		4

#define fm_create_entity(%1) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1))


/*========================================================================================================
===========================================[ Customizations ]=============================================
========================================================================================================*/

new const BOT_NAME[] = "DRM Fake Player"	// InGame Bot Name (in DeathrunManager!)

new const g_ChatPrefix[] = "[DeathRun Duel]"

new const CT_Aura[] = { 0, 0, 250 }
new const T_Aura[] = { 250, 0, 0 }

new const s_StartDuel[][] = { "vox/bizwarn.wav" }			// Duel starting sounds

/*========================================================================================================
=========================================[ Customizations End ]===========================================
========================================================================================================*/


new SayText, g_Maxplayers, g_Num_CT, g_MsgCurWeapon, g_DuelStarted, g_Weapon[33], g_WeaponClip[33],
	g_OneShot, g_ScoutBPAmmo, g_DeagleBPAmmo, g_AWPBPAmmo, g_Round_Ended, g_New_Round, RingSprite,
	CT_Player, T_Player, g_PlayerHP, g_DuelTimeOut, g_MsgSync, CountDown_Timer, g_ButtonsDisable

new const TASK_CONT = 1352	// CountDown task

public plugin_init()
{
	register_plugin("DeathRun Duel (CT Choose ONLY)", "1.3", "Shidla")
	register_cvar("Shidla", "DeathRun Duel 1.3 (CT Choose ONLY)", FCVAR_SERVER|FCVAR_SPONLY)

	register_clcmd("say /duel", "StartDuel")
	register_clcmd("say_team /duel", "StartDuel")
	register_clcmd("drop", "Drop_Cmd")

	g_ScoutBPAmmo	= register_cvar("dr_duel_scout_bpammo",		"200")
	g_DeagleBPAmmo	= register_cvar("dr_duel_deagle_bpammo",	"50")
	g_AWPBPAmmo		= register_cvar("dr_duel_awp_bpammo",		"100")
	g_PlayerHP		= register_cvar("dr_duel_player_hp",		"100")
	g_DuelTimeOut	= register_cvar("dr_duel_timeout",			"5")
	g_OneShot		= register_cvar("dr_duel_one_shot", 		"1")	// 1 - one clip bullet (ONLY!); 0 - disable
	g_ButtonsDisable = register_cvar("dr_duel_buttons_disable",	"1")

	register_event("DeathMsg", "Event_Death", "a")
	register_event("HLTV", "Event_Round_Start", "a", "1=0", "2=0" )
	register_event("SendAudio", "Event_Round_End", "a", "2&%!MRAD_terwin")
	register_event("SendAudio", "Event_Round_End", "a", "2&%!MRAD_ctwin")
	register_event("SendAudio", "Event_Round_End", "a", "2&%!MRAD_rounddraw")
	register_event("CurWeapon","Event_CurWeapon","b")

	register_forward(FM_CmdStart, "fw_CmdStart",1)

	RegisterHam(Ham_Touch, "weaponbox", "fw_TouchWeapon")
	RegisterHam(Ham_Touch, "weapon_shield", "fw_TouchWeapon")
	RegisterHam(Ham_Touch, "armoury_entity", "fw_TouchWeapon")
	RegisterHam(Ham_Weapon_Reload, "weapon_scout", "fw_Reload_Post", 1)
	RegisterHam(Ham_Weapon_Reload, "weapon_deagle", "fw_Reload_Post", 1)
	RegisterHam(Ham_Weapon_Reload, "weapon_awp", "fw_Reload_Post", 1)
	RegisterHam(Ham_Use, "func_button", "fw_Use")

	SayText = get_user_msgid("SayText")
	g_MsgCurWeapon = get_user_msgid("CurWeapon")
	g_MsgSync = CreateHudSyncObj()
	g_Maxplayers = get_maxplayers()

	register_dictionary("dr_duel.txt")
}

public plugin_precache()
{
	RingSprite = precache_model("sprites/zbeam5.spr")

	static i
	for(i = 0; i < sizeof s_StartDuel; i++)
		precache_sound(s_StartDuel)
}


public client_putinserver(id)
{
	g_Weapon[id] = 0
	g_WeaponClip[id] = 0
}

public StartDuel(id)
{
	if(!is_user_alive(id))
	{
		new t_Cant_Dead[600 char]
		formatex(t_Cant_Dead, charsmax(t_Cant_Dead), "%L", id, "DR_CANT_DEAD")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Dead)
		return PLUGIN_CONTINUE
	}

	if(g_Round_Ended)
	{
		new t_Cant_Round_End[600 char]
		formatex(t_Cant_Round_End, charsmax(t_Cant_Round_End), "%L", id, "DR_CANT_ROUND_END")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Round_End)
		return PLUGIN_CONTINUE
	}

	if(cs_get_user_team(id) == CS_TEAM_T)
	{
		new t_Cant_Ter[600 char]
		formatex(t_Cant_Ter, charsmax(t_Cant_Ter), "%L", id, "DR_CANT_TER")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Ter)
		return PLUGIN_CONTINUE
	}

	if(g_DuelStarted)
	{
		new t_Cant_Started[600 char]
		formatex(t_Cant_Started, charsmax(t_Cant_Started), "%L", id, "DR_CANT_STARTED")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Started)
		return PLUGIN_CONTINUE
	}

	for(new i = 1; i <= g_Maxplayers; i++)
	{
		new Name[32]
		get_user_name(i, Name, 31)

		if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT)
		{
			g_Num_CT++
			if(g_Num_CT == 1)
				CT_Player = i
			else
				CT_Player = 0
		}

		if(is_user_alive(i) && (cs_get_user_team(i) == CS_TEAM_T) && !equal(Name, BOT_NAME))
			T_Player = i
	}

	if(g_Num_CT == 1)
	{
		new TextTitle[ 200 char ]
		formatex(TextTitle, charsmax(TextTitle), "\rAlege o metoda pentru duel:")
		new WeapScout[ 200 char ]
		formatex(WeapScout, charsmax(WeapScout), "\yScout])
		new WeapDeagle[ 200 char ]
		formatex(WeapDeagle, charsmax(WeapDeagle), "\yDeagle")
		new WeapAWP[ 200 char ]
		formatex(WeapAWP, charsmax(WeapAWP), "\yAwp")
		new WeapKNife[ 200 char ]
		formatex(WeapKNife, charsmax(WeapKNife), "\yDoar cutite")

		new i_Menu = menu_create(TextTitle, "WeaponMenu")
		menu_additem(i_Menu, WeapScout, "1", 0)
		menu_additem(i_Menu, WeapDeagle, "2", 0)
		menu_additem(i_Menu, WeapAWP, "3", 0)
		menu_additem(i_Menu, WeapKNife, "4", 0)

		g_DuelStarted = true
		g_New_Round = false

		fm_strip_user_weapons(CT_Player)
		fm_strip_user_weapons(T_Player)

		set_pev(CT_Player, pev_health, float(get_pcvar_num(g_PlayerHP)))	// Set CT HP
		set_pev(T_Player, pev_health, float(get_pcvar_num(g_PlayerHP)))		// Set T HP

		if(is_user_alive(CT_Player) && is_user_connected(CT_Player))
		{
			fm_set_user_godmode(CT_Player, 1)
			set_task(0.5, "Show_Ring", CT_Player)
		}

		if(is_user_alive(T_Player) && is_user_connected(T_Player))
		{
			fm_set_user_godmode(T_Player, 1)
			set_task(0.5, "Show_Ring", T_Player)
		}

		menu_display(CT_Player, i_Menu, 0)
	}
	else
	{
		new t_Cant_Too_Many[600 char]
		formatex(t_Cant_Too_Many, charsmax(t_Cant_Too_Many), "%L", id, "DR_CANT_TOO_MANY", g_Num_CT)
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Too_Many)
	}

	g_Num_CT = 0

	return PLUGIN_CONTINUE
}

public WeaponMenu(id, menu, item)
{
	new s_Data[4], s_Name[64], i_Access, i_Callback

	menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
	new i_Key = str_to_num(s_Data)

	switch(i_Key)
	{
		case 1:
		{
			Give_Scout(CT_Player)
			Give_Scout(T_Player)
		}

		case 2:
		{
			Give_Deagle(CT_Player)
			Give_Deagle(T_Player)
		}

		case 3:
		{
			Give_AWP(CT_Player)
			Give_AWP(T_Player)
		}

		case 4:
		{
			fm_give_item(CT_Player, "weapon_knife")
			fm_give_item(T_Player, "weapon_knife")
		}
	}

	menu_destroy(menu)

	if(is_user_alive(CT_Player) && is_user_connected(CT_Player))
		fm_set_rendering(CT_Player, kRenderFxGlowShell, CT_Aura[0], CT_Aura[1], CT_Aura[2], kRenderNormal, 20)

	if(is_user_alive(T_Player) && is_user_connected(T_Player))
		fm_set_rendering(T_Player, kRenderFxGlowShell, T_Aura[0], T_Aura[1], T_Aura[2], kRenderNormal, 20)

	CountDown_Timer = get_pcvar_num(g_DuelTimeOut)
	set_task(float(get_pcvar_num(g_DuelTimeOut)), "Duel_Informer", TASK_CONT)

	return PLUGIN_HANDLED
}

public Event_Death()
{
	new CT_Count, CT_Last_Player

	for(new i = 1; i <= g_Maxplayers; i++)
	{
		new Name[32]
		get_user_name(i, Name, 31)

		if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT)
		{
			CT_Count++
			if(CT_Count == 1)
				CT_Last_Player = i
			else
				CT_Last_Player = 0
		}
	}

	if(CT_Count == 1 && !g_Round_Ended && is_user_alive(CT_Last_Player) && is_user_connected(CT_Last_Player) && is_user_alive(T_Player))
	{
		new t_Can_Start[600 char]
		formatex(t_Can_Start, charsmax(t_Can_Start), "%L", CT_Last_Player, "DR_CAN_START")
		print_col_chat(CT_Last_Player, "^4%s^1 %s",g_ChatPrefix, t_Can_Start)
	}

	CT_Count = 0
}

public Event_Round_Start()
{
	g_DuelStarted = false
	g_Round_Ended = false
	g_New_Round = true

	g_Num_CT = 0
	CT_Player = 0
	T_Player = 0

	remove_task(TASK_CONT)

	for(new id = 1; id <= g_Maxplayers; id++)
		fm_set_rendering(id)
}

public Event_Round_End()
{
	g_Round_Ended = true

	CT_Player = 0
	T_Player = 0
}

public Event_CurWeapon(id)
{
	g_Weapon[id] = read_data(2)
	g_WeaponClip[id] = read_data(3)

	if(g_DuelStarted)
	{
		if(g_WeaponClip[id] > 1)
		{
			if(g_Weapon[id] == CSW_SCOUT)
				Weapon_ReChek(id, CSW_SCOUT)

			else if(g_Weapon[id] == CSW_DEAGLE)
				Weapon_ReChek(id, CSW_DEAGLE)

			else if(g_Weapon[id] == CSW_AWP)
				Weapon_ReChek(id, CSW_AWP)
		}
	}
}

public fw_CmdStart(id, handle, seed)
{
	if(!is_user_alive(id) || !g_DuelStarted)
		return FMRES_IGNORED

	if((g_Weapon[id] == CSW_SCOUT || g_Weapon[id] == CSW_DEAGLE || g_Weapon[id] == CSW_AWP) && get_pcvar_num(g_OneShot))
	{
		//if(pev(id, pev_button) & IN_RELOAD)
		if(get_uc(handle, UC_Buttons) & IN_RELOAD)
		{
			set_uc(handle, UC_Buttons, get_uc(handle, UC_Buttons) & ~IN_RELOAD)
			return FMRES_HANDLED
		}
	}

	return FMRES_IGNORED
}

public Drop_Cmd(id)
{
	if(g_DuelStarted)
	{
		new t_Cant_Drop[600 char]
		formatex(t_Cant_Drop, charsmax(t_Cant_Drop), "%L", id, "DR_CANT_DROP")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Drop)
		return PLUGIN_HANDLED
	}

	return PLUGIN_CONTINUE
}

public fw_TouchWeapon(weapon, id)
{
	if(!is_user_connected(id))
		return HAM_IGNORED

	if(g_DuelStarted)
		return HAM_SUPERCEDE

	return HAM_IGNORED
}

public fw_Reload_Post(Weap)
{
	if(!g_DuelStarted && !get_pcvar_num(g_OneShot))
		return FMRES_IGNORED

	if(is_user_alive(CT_Player) && get_pdata_int(Weap, OFFSET_RELOAD, LINUX_DIFF))
	{
		if(g_Weapon[CT_Player] == CSW_SCOUT)
			cs_set_user_bpammo(CT_Player, CSW_SCOUT, cs_get_user_bpammo(CT_Player, CSW_SCOUT) + 9)
		else if(g_Weapon[CT_Player] == CSW_DEAGLE)
			cs_set_user_bpammo(CT_Player, CSW_DEAGLE, cs_get_user_bpammo(CT_Player, CSW_DEAGLE) + 6)
		else if(g_Weapon[CT_Player] == CSW_AWP)
			cs_set_user_bpammo(CT_Player, CSW_AWP, cs_get_user_bpammo(CT_Player, CSW_AWP) + 9)
	}

	if(is_user_alive(T_Player) && get_pdata_int(Weap, OFFSET_RELOAD, LINUX_DIFF))
	{
		if(g_Weapon[T_Player] == CSW_SCOUT)
			cs_set_user_bpammo(T_Player, CSW_SCOUT, cs_get_user_bpammo(T_Player, CSW_SCOUT) + 9)
		else if(g_Weapon[T_Player] == CSW_DEAGLE)
			cs_set_user_bpammo(T_Player, CSW_DEAGLE, cs_get_user_bpammo(T_Player, CSW_DEAGLE) + 6)
		else if(g_Weapon[T_Player] == CSW_AWP)
			cs_set_user_bpammo(T_Player, CSW_AWP, cs_get_user_bpammo(T_Player, CSW_AWP) + 9)
	}

	return FMRES_IGNORED
}

public fw_Use(ent, idcaller, idactivator, use_type, Float:value)
{
	if(g_ButtonsDisable && g_DuelStarted && is_user_alive(idactivator) && cs_get_user_team(idactivator) == CS_TEAM_T)
	{
		new t_Cant_Drop[600 char]
		formatex(t_Cant_Drop, charsmax(t_Cant_Drop), "%L", idactivator, "DR_CANT_USE")
		print_col_chat(idactivator, "^4%s^1 %s",g_ChatPrefix, t_Cant_Drop)
		return HAM_SUPERCEDE
	}

	return HAM_IGNORED
}

public Duel_Informer()
{
	if(CountDown_Timer > 1)
	{
		set_hudmessage(255, 0, 0, -1.0, 0.28, 2, 0.02, 1.0, 0.01, 0.1, -1)

		if(CountDown_Timer != 1)
		{
			for(new id = 1; id <= g_Maxplayers; id++)
			{
				new t_Time_Delay[600 char]
				formatex(t_Time_Delay, charsmax(t_Time_Delay), "%L", id, "DR_TIME_DELAY", CountDown_Timer - 1)
				ShowSyncHudMsg(id, g_MsgSync, "%s", t_Time_Delay)
			}
		}
	}
	--CountDown_Timer

	if(CountDown_Timer >= 1)
		set_task(1.0, "Duel_Informer", TASK_CONT)
	else
	{
		client_cmd(0, "spk %s", s_StartDuel[random_num(0, sizeof s_StartDuel - 1)])

		if(is_user_alive(CT_Player) && is_user_connected(CT_Player))
			fm_set_user_godmode(CT_Player, 0)

		if(is_user_alive(T_Player) && is_user_connected(T_Player))
			fm_set_user_godmode(T_Player, 0)

		remove_task(TASK_CONT)
	}
}

public Show_Ring(id)
{
	if(g_DuelStarted && is_user_alive(id) && is_user_connected(id) && !g_New_Round)
	{
		static Float:origin[3]
		pev(id, pev_origin, origin)

		if(id == CT_Player)
			Ring(origin, CT_Aura[0], CT_Aura[1], CT_Aura[2])
		else if(id == T_Player)
			Ring(origin, T_Aura[0], T_Aura[1], T_Aura[2])

		set_task(0.5, "Show_Ring", id)
	}
	else
		remove_task(id)
}


/*========================================================================================================
===============================================[ Stocks ]=================================================
========================================================================================================*/
stock fm_give_item(index, const item[])
{
	if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
		return 0

	new ent = fm_create_entity(item)
	if (!pev_valid(ent))
		return 0

	new Float:origin[3]
	pev(index, pev_origin, origin)
	set_pev(ent, pev_origin, origin)
	set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
	dllfunc(DLLFunc_Spawn, ent)

	new save = pev(ent, pev_solid)
	dllfunc(DLLFunc_Touch, ent, index)
	if (pev(ent, pev_solid) != save)
		return ent

	engfunc(EngFunc_RemoveEntity, ent)

	return -1
}

stock fm_strip_user_weapons(index)
{
	new ent = fm_create_entity("player_weaponstrip")
	if (!pev_valid(ent))
		return 0

	dllfunc(DLLFunc_Spawn, ent)
	dllfunc(DLLFunc_Use, ent, index)
	engfunc(EngFunc_RemoveEntity, ent)

	return 1
}

stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
	new Float:RenderColor[3]
	RenderColor[0] = float(r)
	RenderColor[1] = float(g)
	RenderColor[2] = float(b)

	set_pev(entity, pev_renderfx, fx)
	set_pev(entity, pev_rendercolor, RenderColor)
	set_pev(entity, pev_rendermode, render)
	set_pev(entity, pev_renderamt, float(amount))

	return 1
}

stock get_weapon_ent(id,wpnid=0,wpnName[]="")
{
	// who knows what wpnName will be
	static newName[32]

	// need to find the name
	if(wpnid) get_weaponname(wpnid,newName,31)

	// go with what we were told
	else formatex(newName,31,"%s",wpnName)

	// prefix it if we need to
	if(!equal(newName,"weapon_",7))
		format(newName,31,"weapon_%s",newName)

	new ent
	while((ent = engfunc(EngFunc_FindEntityByString,ent,"classname",newName)) && pev(ent,pev_owner) != id) {}

	return ent
}

stock fm_set_user_godmode(index, godmode = 0)
{
	set_pev(index, pev_takedamage, godmode == 1 ? DAMAGE_NO : DAMAGE_AIM)

	return 1
}

stock print_col_chat(const id, const input[], any:...)
{
	new count = 1, players[32]
	static msg[191]
	vformat(msg, 190, input, 3)

	replace_all(msg, 190, "!g", "^4") // Green Color
	replace_all(msg, 190, "!y", "^1") // Default Color (Yellow)
	replace_all(msg, 190, "!t", "^3") // Team Color

	if (id) players[0] = id; else get_players(players, count, "ch") 
	{
		for ( new i = 0; i < count; i++ )
		{
			if ( is_user_connected(players) )
			{
				message_begin(MSG_ONE_UNRELIABLE, SayText, _, players)
				write_byte(players)
				write_string(msg)
				message_end()
			}
		}
	}
}

UpDate_HUD(id, csw_weapon)
{
	message_begin(MSG_ONE, g_MsgCurWeapon, _, id)
	write_byte(1)
	write_byte(csw_weapon)	//CSW_weapon
	write_byte(1)	// MaxClip
	message_end()
}

Give_Scout(id)
{
	if(is_user_alive(id) && is_user_connected(id))
	{
		fm_give_item(id, "weapon_scout")

		new wEnt = get_weapon_ent(id, CSW_SCOUT)

		if(pev_valid(wEnt) && get_pcvar_num(g_OneShot))
			cs_set_weapon_ammo(wEnt, 1)

		cs_set_user_bpammo(id, CSW_SCOUT, get_pcvar_num(g_ScoutBPAmmo))
		UpDate_HUD(id, wEnt)
	}

}

Give_Deagle(id)
{
	if(is_user_alive(id) && is_user_connected(id))
	{
		fm_give_item(id, "weapon_deagle")

		new wEnt = get_weapon_ent(id, CSW_DEAGLE)

		if(pev_valid(wEnt) && get_pcvar_num(g_OneShot))
			cs_set_weapon_ammo(wEnt, 1)

		cs_set_user_bpammo(id, CSW_DEAGLE, get_pcvar_num(g_DeagleBPAmmo))
		UpDate_HUD(id, wEnt)
	}
}

Give_AWP(id)
{
	if(is_user_alive(id) && is_user_connected(id))
	{
		fm_give_item(id, "weapon_awp")

		new wEnt = get_weapon_ent(id, CSW_AWP)

		if(pev_valid(wEnt) && get_pcvar_num(g_OneShot))
			cs_set_weapon_ammo(wEnt, 1)

		cs_set_user_bpammo(id, CSW_AWP, get_pcvar_num(g_AWPBPAmmo))
		UpDate_HUD(id, wEnt)
	}
}

Weapon_ReChek(id, Weap)
{
	if(get_pcvar_num(g_OneShot) && is_user_alive(id) && is_user_connected(id))
	{
		new wEnt = get_weapon_ent(id, Weap)
		if(pev_valid(wEnt))
		{
			cs_set_weapon_ammo(wEnt, 1)
			UpDate_HUD(id, wEnt)
		}
	}
}

Ring(const Float:origin[3], R, G, B)
{
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
	write_byte(TE_BEAMCYLINDER) // TE id
	engfunc(EngFunc_WriteCoord, origin[0]) // x	10
	engfunc(EngFunc_WriteCoord, origin[1]) // y
	engfunc(EngFunc_WriteCoord, origin[2]) // z
	engfunc(EngFunc_WriteCoord, origin[0]-50.0) // x axis
	engfunc(EngFunc_WriteCoord, origin[1]) // y axis
	engfunc(EngFunc_WriteCoord, origin[2]+100.0) // z axis
	write_short(RingSprite) // sprite
	write_byte(0) // startframe
	write_byte(0) // framerate
	write_byte(5) // life
	write_byte(5) // width
	write_byte(0) // noise
	write_byte(R) // red
	write_byte(G) // green
	write_byte(B) // blue
	write_byte(200) // brightness
	write_byte(0) // speed
	message_end()
}[/code[
User avatar
DeViLllll
Membru, skill 0
Membru, skill 0
Posts: 40
Joined: 13 Sep 2020, 12:30
Detinator Steam: Nu
CS Status: Hlewllel
Fond eXtream: 0
Has thanked: 4 times
Been thanked: 1 time

27 Feb 2021, 22:20

Nu merge compilat
Image
User avatar
kidd0x
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 1054
Joined: 06 Oct 2018, 14:41
Detinator Steam: Da
SteamID: /id/kidd0x/
Reputatie: Utilizator neserios (tepar!)
Fond eXtream: 0
Location: Constangeles
Discord: kidd0x
Has thanked: 172 times
Been thanked: 81 times

27 Feb 2021, 22:28

---
Last edited by kidd0x on 28 Feb 2021, 00:42, edited 1 time in total.
lexz
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 917
Joined: 02 Nov 2020, 01:57
Detinator Steam: Da
Fond eXtream: 0
Discord: lexzor#0630
Has thanked: 71 times
Been thanked: 136 times

27 Feb 2021, 23:26

Code: Select all

/*
	[DeathRun] Duel (CT Choose ONLY)

	Plugin by Shidla [SGC]

	Idea & Pay (xD):
	DarkNill	|	ICQ: 555-995-004	(zombie-mod.ru)

	Credits:
	xPaw
	DJ_WEST


	Shidla [SGC] | 2010 | ICQ: 312-298-513

	1.3 [Final Version] | 23/11/2010

	http://Shidla.Gm-Project.NET/
*/

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

#define OFFSET_RELOAD	54
#define LINUX_DIFF		4

#define fm_create_entity(%1) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1))


/*========================================================================================================
===========================================[ Customizations ]=============================================
========================================================================================================*/

new const BOT_NAME[] = "DRM Fake Player"	// InGame Bot Name (in DeathrunManager!)

new const g_ChatPrefix[] = "[DeathRun Duel]"

new const CT_Aura[] = { 0, 0, 250 }
new const T_Aura[] = { 250, 0, 0 }

new const s_StartDuel[][] = { "vox/bizwarn.wav" }			// Duel starting sounds

/*========================================================================================================
=========================================[ Customizations End ]===========================================
========================================================================================================*/


new SayText, g_Maxplayers, g_Num_CT, g_MsgCurWeapon, g_DuelStarted, g_Weapon[33], g_WeaponClip[33],
	g_OneShot, g_DeagleBPAmmo, g_AWPBPAmmo, g_Round_Ended, g_New_Round, RingSprite,
	CT_Player, T_Player, g_PlayerHP, g_DuelTimeOut, g_MsgSync, CountDown_Timer, g_ButtonsDisable

new const TASK_CONT = 1352	// CountDown task

public plugin_init()
{
	register_plugin("DeathRun Duel (CT Choose ONLY)", "1.3", "Shidla")
	register_cvar("Shidla", "DeathRun Duel 1.3 (CT Choose ONLY)", FCVAR_SERVER|FCVAR_SPONLY)

	register_clcmd("say /duel", "StartDuel")
	register_clcmd("say_team /duel", "StartDuel")
	register_clcmd("drop", "Drop_Cmd")

	g_DeagleBPAmmo	= register_cvar("dr_duel_deagle_bpammo",	"50")
	g_AWPBPAmmo		= register_cvar("dr_duel_awp_bpammo",		"100")
	g_PlayerHP		= register_cvar("dr_duel_player_hp",		"100")
	g_DuelTimeOut	= register_cvar("dr_duel_timeout",			"5")
	g_OneShot		= register_cvar("dr_duel_one_shot", 		"1")	// 1 - one clip bullet (ONLY!); 0 - disable
	g_ButtonsDisable = register_cvar("dr_duel_buttons_disable",	"1")

	register_event("DeathMsg", "Event_Death", "a")
	register_event("HLTV", "Event_Round_Start", "a", "1=0", "2=0" )
	register_event("SendAudio", "Event_Round_End", "a", "2&%!MRAD_terwin")
	register_event("SendAudio", "Event_Round_End", "a", "2&%!MRAD_ctwin")
	register_event("SendAudio", "Event_Round_End", "a", "2&%!MRAD_rounddraw")
	register_event("CurWeapon","Event_CurWeapon","b")

	register_forward(FM_CmdStart, "fw_CmdStart",1)

	RegisterHam(Ham_Touch, "weaponbox", "fw_TouchWeapon")
	RegisterHam(Ham_Touch, "weapon_shield", "fw_TouchWeapon")
	RegisterHam(Ham_Touch, "armoury_entity", "fw_TouchWeapon")
	RegisterHam(Ham_Weapon_Reload, "weapon_scout", "fw_Reload_Post", 1)
	RegisterHam(Ham_Weapon_Reload, "weapon_deagle", "fw_Reload_Post", 1)
	RegisterHam(Ham_Weapon_Reload, "weapon_awp", "fw_Reload_Post", 1)
	RegisterHam(Ham_Use, "func_button", "fw_Use")

	SayText = get_user_msgid("SayText")
	g_MsgCurWeapon = get_user_msgid("CurWeapon")
	g_MsgSync = CreateHudSyncObj()
	g_Maxplayers = get_maxplayers()

	register_dictionary("dr_duel.txt")
}

public plugin_precache()
{
	RingSprite = precache_model("sprites/zbeam5.spr")

	static i
	for(i = 0; i < sizeof s_StartDuel; i++)
	{
		precache_sound(s_StartDuel[i])
	}
}


public client_putinserver(id)
{
	g_Weapon[id] = 0
	g_WeaponClip[id] = 0
}

public StartDuel(id)
{
	if(!is_user_alive(id))
	{
		new t_Cant_Dead[600 char]
		formatex(t_Cant_Dead, charsmax(t_Cant_Dead), "%L", id, "DR_CANT_DEAD")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Dead)
		return PLUGIN_CONTINUE
	}

	if(g_Round_Ended)
	{
		new t_Cant_Round_End[600 char]
		formatex(t_Cant_Round_End, charsmax(t_Cant_Round_End), "%L", id, "DR_CANT_ROUND_END")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Round_End)
		return PLUGIN_CONTINUE
	}

	if(cs_get_user_team(id) == CS_TEAM_T)
	{
		new t_Cant_Ter[600 char]
		formatex(t_Cant_Ter, charsmax(t_Cant_Ter), "%L", id, "DR_CANT_TER")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Ter)
		return PLUGIN_CONTINUE
	}

	if(g_DuelStarted)
	{
		new t_Cant_Started[600 char]
		formatex(t_Cant_Started, charsmax(t_Cant_Started), "%L", id, "DR_CANT_STARTED")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Started)
		return PLUGIN_CONTINUE
	}

	for(new i = 1; i <= g_Maxplayers; i++)
	{
		new Name[32]
		get_user_name(i, Name, 31)

		if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT)
		{
			g_Num_CT++
			if(g_Num_CT == 1)
				CT_Player = i
			else
				CT_Player = 0
		}

		if(is_user_alive(i) && (cs_get_user_team(i) == CS_TEAM_T) && !equal(Name, BOT_NAME))
			T_Player = i
	}

	if(g_Num_CT == 1)
	{
		new TextTitle[ 200 char ]
		formatex(TextTitle, charsmax(TextTitle), "\rAlege o metoda pentru duel:")
		new WeapDeagle[ 200 char ]
		formatex(WeapDeagle, charsmax(WeapDeagle), "\yDeagle")
		new WeapAWP[ 200 char ]
		formatex(WeapAWP, charsmax(WeapAWP), "\yAwp")
		new WeapKNife[ 200 char ]
		formatex(WeapKNife, charsmax(WeapKNife), "\yDoar cutite")

		new i_Menu = menu_create(TextTitle, "WeaponMenu")
		menu_additem(i_Menu, WeapDeagle, "2", 0)
		menu_additem(i_Menu, WeapAWP, "3", 0)
		menu_additem(i_Menu, WeapKNife, "4", 0)

		g_DuelStarted = true
		g_New_Round = false

		fm_strip_user_weapons(CT_Player)
		fm_strip_user_weapons(T_Player)

		set_pev(CT_Player, pev_health, float(get_pcvar_num(g_PlayerHP)))	// Set CT HP
		set_pev(T_Player, pev_health, float(get_pcvar_num(g_PlayerHP)))		// Set T HP

		if(is_user_alive(CT_Player) && is_user_connected(CT_Player))
		{
			fm_set_user_godmode(CT_Player, 1)
			set_task(0.5, "Show_Ring", CT_Player)
		}

		if(is_user_alive(T_Player) && is_user_connected(T_Player))
		{
			fm_set_user_godmode(T_Player, 1)
			set_task(0.5, "Show_Ring", T_Player)
		}

		menu_display(CT_Player, i_Menu, 0)
	}
	else
	{
		new t_Cant_Too_Many[600 char]
		formatex(t_Cant_Too_Many, charsmax(t_Cant_Too_Many), "%L", id, "DR_CANT_TOO_MANY", g_Num_CT)
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Too_Many)
	}

	g_Num_CT = 0

	return PLUGIN_CONTINUE
}

public WeaponMenu(id, menu, item)
{
	new s_Data[4], s_Name[64], i_Access, i_Callback

	menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
	new i_Key = str_to_num(s_Data)

	switch(i_Key)
	{

		case 1:
		{
			Give_Deagle(CT_Player)
			Give_Deagle(T_Player)
		}

		case 2:
		{
			Give_AWP(CT_Player)
			Give_AWP(T_Player)
		}

		case 3:
		{
			fm_give_item(CT_Player, "weapon_knife")
			fm_give_item(T_Player, "weapon_knife")
		}
	}

	menu_destroy(menu)

	if(is_user_alive(CT_Player) && is_user_connected(CT_Player))
		fm_set_rendering(CT_Player, kRenderFxGlowShell, CT_Aura[0], CT_Aura[1], CT_Aura[2], kRenderNormal, 20)

	if(is_user_alive(T_Player) && is_user_connected(T_Player))
		fm_set_rendering(T_Player, kRenderFxGlowShell, T_Aura[0], T_Aura[1], T_Aura[2], kRenderNormal, 20)

	CountDown_Timer = get_pcvar_num(g_DuelTimeOut)
	set_task(float(get_pcvar_num(g_DuelTimeOut)), "Duel_Informer", TASK_CONT)

	return PLUGIN_HANDLED
}

public Event_Death()
{
	new CT_Count, CT_Last_Player

	for(new i = 1; i <= g_Maxplayers; i++)
	{
		new Name[32]
		get_user_name(i, Name, 31)

		if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT)
		{
			CT_Count++
			if(CT_Count == 1)
				CT_Last_Player = i
			else
				CT_Last_Player = 0
		}
	}

	if(CT_Count == 1 && !g_Round_Ended && is_user_alive(CT_Last_Player) && is_user_connected(CT_Last_Player) && is_user_alive(T_Player))
	{
		new t_Can_Start[600 char]
		formatex(t_Can_Start, charsmax(t_Can_Start), "%L", CT_Last_Player, "DR_CAN_START")
		print_col_chat(CT_Last_Player, "^4%s^1 %s",g_ChatPrefix, t_Can_Start)
	}

	CT_Count = 0
}

public Event_Round_Start()
{
	g_DuelStarted = false
	g_Round_Ended = false
	g_New_Round = true

	g_Num_CT = 0
	CT_Player = 0
	T_Player = 0

	remove_task(TASK_CONT)

	for(new id = 1; id <= g_Maxplayers; id++)
		fm_set_rendering(id)
}

public Event_Round_End()
{
	g_Round_Ended = true

	CT_Player = 0
	T_Player = 0
}

public Event_CurWeapon(id)
{
	g_Weapon[id] = read_data(2)
	g_WeaponClip[id] = read_data(3)

	if(g_DuelStarted)
	{
		if(g_WeaponClip[id] > 1)
		{

			if(g_Weapon[id] == CSW_DEAGLE)
				Weapon_ReChek(id, CSW_DEAGLE)

			else if(g_Weapon[id] == CSW_AWP)
				Weapon_ReChek(id, CSW_AWP)
		}
	}
}

public fw_CmdStart(id, handle, seed)
{
	if(!is_user_alive(id) || !g_DuelStarted)
		return FMRES_IGNORED

	if((g_Weapon[id] == CSW_DEAGLE || g_Weapon[id] == CSW_AWP) && get_pcvar_num(g_OneShot))
	{
		//if(pev(id, pev_button) & IN_RELOAD)
		if(get_uc(handle, UC_Buttons) & IN_RELOAD)
		{
			set_uc(handle, UC_Buttons, get_uc(handle, UC_Buttons) & ~IN_RELOAD)
			return FMRES_HANDLED
		}
	}

	return FMRES_IGNORED
}

public Drop_Cmd(id)
{
	if(g_DuelStarted)
	{
		new t_Cant_Drop[600 char]
		formatex(t_Cant_Drop, charsmax(t_Cant_Drop), "%L", id, "DR_CANT_DROP")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Drop)
		return PLUGIN_HANDLED
	}

	return PLUGIN_CONTINUE
}

public fw_TouchWeapon(weapon, id)
{
	if(!is_user_connected(id))
		return HAM_IGNORED

	if(g_DuelStarted)
		return HAM_SUPERCEDE

	return HAM_IGNORED
}

public fw_Reload_Post(Weap)
{
	if(!g_DuelStarted && !get_pcvar_num(g_OneShot))
		return FMRES_IGNORED

	if(is_user_alive(CT_Player) && get_pdata_int(Weap, OFFSET_RELOAD, LINUX_DIFF))
	{
		if(g_Weapon[CT_Player] == CSW_DEAGLE)
			cs_set_user_bpammo(CT_Player, CSW_DEAGLE, cs_get_user_bpammo(CT_Player, CSW_DEAGLE) + 6)
		else if(g_Weapon[CT_Player] == CSW_AWP)
			cs_set_user_bpammo(CT_Player, CSW_AWP, cs_get_user_bpammo(CT_Player, CSW_AWP) + 9)
	}

	if(is_user_alive(T_Player) && get_pdata_int(Weap, OFFSET_RELOAD, LINUX_DIFF))
	{
		if(g_Weapon[T_Player] == CSW_DEAGLE)
			cs_set_user_bpammo(T_Player, CSW_DEAGLE, cs_get_user_bpammo(T_Player, CSW_DEAGLE) + 6)
		else if(g_Weapon[T_Player] == CSW_AWP)
			cs_set_user_bpammo(T_Player, CSW_AWP, cs_get_user_bpammo(T_Player, CSW_AWP) + 9)
	}

	return FMRES_IGNORED
}

public fw_Use(ent, idcaller, idactivator, use_type, Float:value)
{
	if(g_ButtonsDisable && g_DuelStarted && is_user_alive(idactivator) && cs_get_user_team(idactivator) == CS_TEAM_T)
	{
		new t_Cant_Drop[600 char]
		formatex(t_Cant_Drop, charsmax(t_Cant_Drop), "%L", idactivator, "DR_CANT_USE")
		print_col_chat(idactivator, "^4%s^1 %s",g_ChatPrefix, t_Cant_Drop)
		return HAM_SUPERCEDE
	}

	return HAM_IGNORED
}

public Duel_Informer()
{
	if(CountDown_Timer > 1)
	{
		set_hudmessage(255, 0, 0, -1.0, 0.28, 2, 0.02, 1.0, 0.01, 0.1, -1)

		if(CountDown_Timer != 1)
		{
			for(new id = 1; id <= g_Maxplayers; id++)
			{
				new t_Time_Delay[600 char]
				formatex(t_Time_Delay, charsmax(t_Time_Delay), "%L", id, "DR_TIME_DELAY", CountDown_Timer - 1)
				ShowSyncHudMsg(id, g_MsgSync, "%s", t_Time_Delay)
			}
		}
	}
	--CountDown_Timer

	if(CountDown_Timer >= 1)
		set_task(1.0, "Duel_Informer", TASK_CONT)
	else
	{
		client_cmd(0, "spk %s", s_StartDuel[random_num(0, sizeof s_StartDuel - 1)])

		if(is_user_alive(CT_Player) && is_user_connected(CT_Player))
			fm_set_user_godmode(CT_Player, 0)

		if(is_user_alive(T_Player) && is_user_connected(T_Player))
			fm_set_user_godmode(T_Player, 0)

		remove_task(TASK_CONT)
	}
}

public Show_Ring(id)
{
	if(g_DuelStarted && is_user_alive(id) && is_user_connected(id) && !g_New_Round)
	{
		static Float:origin[3]
		pev(id, pev_origin, origin)

		if(id == CT_Player)
			Ring(origin, CT_Aura[0], CT_Aura[1], CT_Aura[2])
		else if(id == T_Player)
			Ring(origin, T_Aura[0], T_Aura[1], T_Aura[2])

		set_task(0.5, "Show_Ring", id)
	}
	else
		remove_task(id)
}


/*========================================================================================================
===============================================[ Stocks ]=================================================
========================================================================================================*/
stock fm_give_item(index, const item[])
{
	if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
		return 0

	new ent = fm_create_entity(item)
	if (!pev_valid(ent))
		return 0

	new Float:origin[3]
	pev(index, pev_origin, origin)
	set_pev(ent, pev_origin, origin)
	set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
	dllfunc(DLLFunc_Spawn, ent)

	new save = pev(ent, pev_solid)
	dllfunc(DLLFunc_Touch, ent, index)
	if (pev(ent, pev_solid) != save)
		return ent

	engfunc(EngFunc_RemoveEntity, ent)

	return -1
}

stock fm_strip_user_weapons(index)
{
	new ent = fm_create_entity("player_weaponstrip")
	if (!pev_valid(ent))
		return 0

	dllfunc(DLLFunc_Spawn, ent)
	dllfunc(DLLFunc_Use, ent, index)
	engfunc(EngFunc_RemoveEntity, ent)

	return 1
}

stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
	new Float:RenderColor[3]
	RenderColor[0] = float(r)
	RenderColor[1] = float(g)
	RenderColor[2] = float(b)

	set_pev(entity, pev_renderfx, fx)
	set_pev(entity, pev_rendercolor, RenderColor)
	set_pev(entity, pev_rendermode, render)
	set_pev(entity, pev_renderamt, float(amount))

	return 1
}

stock get_weapon_ent(id,wpnid=0,wpnName[]="")
{
	// who knows what wpnName will be
	static newName[32]

	// need to find the name
	if(wpnid) get_weaponname(wpnid,newName,31)

	// go with what we were told
	else formatex(newName,31,"%s",wpnName)

	// prefix it if we need to
	if(!equal(newName,"weapon_",7))
		format(newName,31,"weapon_%s",newName)

	new ent
	while((ent = engfunc(EngFunc_FindEntityByString,ent,"classname",newName)) && pev(ent,pev_owner) != id) {}

	return ent
}

stock fm_set_user_godmode(index, godmode = 0)
{
	set_pev(index, pev_takedamage, godmode == 1 ? DAMAGE_NO : DAMAGE_AIM)

	return 1
}

stock print_col_chat(const id, const input[], any:...)
{
	new count = 1, players[32]
	static msg[191]
	vformat(msg, 190, input, 3)

	replace_all(msg, 190, "!g", "^4") // Green Color
	replace_all(msg, 190, "!y", "^1") // Default Color (Yellow)
	replace_all(msg, 190, "!t", "^3") // Team Color

	if (id) players[0] = id; else get_players(players, count, "ch") 
	{
		for ( new i = 0; i < count; i++ )
		{
			if ( is_user_connected(players[i]) )
			{
				message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i])
				write_byte(players[i])
				write_string(msg)
				message_end()
			}
		}
	}
}

UpDate_HUD(id, csw_weapon)
{
	message_begin(MSG_ONE, g_MsgCurWeapon, _, id)
	write_byte(1)
	write_byte(csw_weapon)	//CSW_weapon
	write_byte(1)	// MaxClip
	message_end()
}

Give_Deagle(id)
{
	if(is_user_alive(id) && is_user_connected(id))
	{
		fm_give_item(id, "weapon_deagle")

		new wEnt = get_weapon_ent(id, CSW_DEAGLE)

		if(pev_valid(wEnt) && get_pcvar_num(g_OneShot))
			cs_set_weapon_ammo(wEnt, 1)

		cs_set_user_bpammo(id, CSW_DEAGLE, get_pcvar_num(g_DeagleBPAmmo))
		UpDate_HUD(id, wEnt)
	}
}

Give_AWP(id)
{
	if(is_user_alive(id) && is_user_connected(id))
	{
		fm_give_item(id, "weapon_awp")

		new wEnt = get_weapon_ent(id, CSW_AWP)

		if(pev_valid(wEnt) && get_pcvar_num(g_OneShot))
			cs_set_weapon_ammo(wEnt, 1)

		cs_set_user_bpammo(id, CSW_AWP, get_pcvar_num(g_AWPBPAmmo))
		UpDate_HUD(id, wEnt)
	}
}

Weapon_ReChek(id, Weap)
{
	if(get_pcvar_num(g_OneShot) && is_user_alive(id) && is_user_connected(id))
	{
		new wEnt = get_weapon_ent(id, Weap)
		if(pev_valid(wEnt))
		{
			cs_set_weapon_ammo(wEnt, 1)
			UpDate_HUD(id, wEnt)
		}
	}
}

Ring(const Float:origin[3], R, G, B)
{
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
	write_byte(TE_BEAMCYLINDER) // TE id
	engfunc(EngFunc_WriteCoord, origin[0]) // x	10
	engfunc(EngFunc_WriteCoord, origin[1]) // y
	engfunc(EngFunc_WriteCoord, origin[2]) // z
	engfunc(EngFunc_WriteCoord, origin[0]-50.0) // x axis
	engfunc(EngFunc_WriteCoord, origin[1]) // y axis
	engfunc(EngFunc_WriteCoord, origin[2]+100.0) // z axis
	write_short(RingSprite) // sprite
	write_byte(0) // startframe
	write_byte(0) // framerate
	write_byte(5) // life
	write_byte(5) // width
	write_byte(0) // noise
	write_byte(R) // red
	write_byte(G) // green
	write_byte(B) // blue
	write_byte(200) // brightness
	write_byte(0) // speed
	message_end()
}
ti-am rezolvat erorile si am scos scoutul dar nu stiu daca pluginul este functional, nu l-am testat.
User avatar
DeViLllll
Membru, skill 0
Membru, skill 0
Posts: 40
Joined: 13 Sep 2020, 12:30
Detinator Steam: Nu
CS Status: Hlewllel
Fond eXtream: 0
Has thanked: 4 times
Been thanked: 1 time

28 Feb 2021, 14:21

Nu merge deagle si cutite raman fara cutit sau cu cutit.
Post Reply

Return to “Modificari pluginuri”

  • Information