[AMX][Codes] Hỏi đáp về các code của AMX ...

  • Thread starter Thread starter sontung0
  • Ngày gửi Ngày gửi
Status
Không mở trả lời sau này.
dễ mà :|. tìm cái func khi infect. rồi thêm code vào
 
Có plugin nào làm giống css mà w_ model của m4a1 ăn theo v_ model của nó ko nhỉ ? tức là khi lắp hay ko lắp giảm thanh khi vứt súng ra cái w_ nó cũng có hoặc ko có giảm thanh ấy ?
 
Có đấy Minh,mà tui wên tên rùi @_@
 
Có. Set task. Cứ 0.1 giây thì bắn là được
 
@5c0r : cậu sửa cái effect killer của stung dùm tớ chưa ? T_T stung gửi file sma cho cậu rùi phải k ?
nếu chưa thì đây nè ( sửa lại giống cái plugin ultimate kill ji đó , kill cứ típ tục mãi k dừng , mà làm đc làm tới kill 10 lun đc k ? )
PHP:
#include <amxmodx>
#include <fakemeta>

#include <nst_player>
#include <nst_zombie>
#include <nst_wpn>


#define PLUGIN "Effects Killer"
#define VERSION "3.0"
#define AUTHOR "NST"

#define LEVELS 8
new kills[33], Float:timekill[33], revenge[33], oneshot[33]
new iconstatus, g_firstkill, g_lastkill
new g_FM_Running
new cvar_time_kill, cvar_type, cvar_time_show

new const sound_combo[][] =
{
	"vox/kill/%s/kill_1_%s.wav", 
	"vox/kill/%s/kill_2_%s.wav", 
	"vox/kill/%s/kill_3_%s.wav", 
	"vox/kill/%s/kill_4_%s.wav", 
	"vox/kill/%s/kill_5_%s.wav", 
	"vox/kill/%s/kill_6_%s.wav", 
	"vox/kill/%s/kill_7_%s.wav", 
	"vox/kill/%s/kill_8_%s.wav", 
	"vox/kill/%s/revenge_%s.wav", 
	"vox/kill/%s/headshot_%s.wav", 
	"vox/kill/%s/knife_%s.wav", 
	"vox/kill/%s/grenade_%s.wav"
}
enum(+= 100)
{
	TASK_HIDESPR = 2000
}
#define ID_HIDESPR (taskid - TASK_HIDESPR)
enum
{
	HUD_SOUND = 1,
	HUD_MSGTEXT,
	HUD_SPRNAME
}
enum
{
	KILL_1 = 1,
	KILL_2,
	KILL_3,
	KILL_4,
	KILL_5,
	KILL_6,
	KILL_7,
	KILL_8,
	KILL_FIRST,
	C4_DEFUSE,
	C4_SET
}
enum
{
	KILL_NONE = 51,
	KILL_HEGRENADE,
	KILL_HEADSHOT,
	KILL_KNIFE,
	KILL_LAST,
	KILL_REVENGE,
	WALLSHOT,
	WALLSHOT_HEADSHOT,
	ONESHOT_2KILL,
	ONESHOT_3KILL
}


public plugin_precache()
{
	for (new i = 1; i <= 2; i++)
	{
		new sex[32]
		if (i == 1) sex = "woman"
		else sex = "man"
		
		for (new e = 0; e <= 11; e++)
		{
			new sound_ct[100], sound_t[100], team_ct[32] = "ct", team_t[32] = "t"
			format(sound_ct, 99, sound_combo[e], sex, team_ct)
			format(sound_t, 99, sound_combo[e], sex, team_t)
			//precache_sound(sound_ct)
			//precache_sound(sound_t)
		}
		
	}
	//precache_sound("misc/MultiKill/C4_Defuse.wav")
	//precache_sound("misc/MultiKill/C4_Set.wav")
	
}
public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
	register_event("DeathMsg", "event_DeathMsg", "a")
	
	cvar_time_kill = register_cvar("nst_ek_time_kill","3")
	cvar_type = register_cvar("nst_ek_type","1")
	cvar_time_show = register_cvar("nst_ek_time_show","2.0")
	
	iconstatus = get_user_msgid("StatusIcon")
	g_FM_Running = is_module_loaded("FakeMeta")
}
public event_round_start()
{
	new reset_value[33]

	g_firstkill = 1
	kills = reset_value
	revenge = reset_value
	oneshot = reset_value
}
public event_DeathMsg()
{
	// get value data
	static killer, headshot, weapon[32], wpnindex, victim
	killer = read_data(1)
	victim = read_data(2)
	headshot = read_data(3)
	read_data(4, weapon, charsmax(weapon))
	if (equali(weapon, "grenade")) format(weapon, charsmax(weapon), "hegrenade")
	format(weapon, charsmax(weapon), "weapon_%s", weapon)
	wpnindex = get_weaponid(weapon)
	
	// none killer = victim
	if (!is_user_connected(killer) || !is_user_connected(victim) || killer==victim) return;
	if (get_user_team(killer)==get_user_team(victim) && !get_cvar_num("mp_friendlyfire")) return;
	
	// reset kills of victim
	kills[victim] = 0

	// set revenge of victim
	revenge[victim] = killer

	// get num kill & one shoot multikill
	new Float:timeleft = get_gametime()-timekill[killer]
	if (timeleft <= get_pcvar_float(cvar_time_kill)) kills[killer] += 1
	else kills[killer] = 1
	if (kills[killer]>LEVELS) kills[killer] = 1
	timekill[killer] = get_gametime()

	if (!oneshot[killer]) oneshot[killer] = 1
	if (!timeleft && wpnindex != CSW_HEGRENADE) oneshot[killer] += 1
	else oneshot[killer] = 1
	oneshot[killer] = min(3, oneshot[killer])
	//client_print(killer, print_chat, "%i", oneshot[killer])
	
	// get last kill
	new players_ct[32], players_t[32], ict, ite
	get_players(players_ct,ict,"ae","CT")   
	get_players(players_t,ite,"ae","TERRORIST")
	if (ict == 0 || ite == 0) g_lastkill = 1
	
	// check revenge
	new g_revenge
	if (victim == revenge[killer])
	{
		g_revenge = 1
		revenge[killer] = 0
	}

	// hud 1
	new check_sound
	if (oneshot[killer] > 1)
	{
		if (oneshot[killer] == 2) show_hud(killer, ONESHOT_2KILL)
		else if (oneshot[killer] == 3) show_hud(killer, ONESHOT_3KILL)
	}
	else if (g_lastkill)
	{
		g_lastkill = 0
		show_hud(killer, KILL_LAST)
	}	
	else if (g_revenge)
	{
		play_sound(killer, KILL_REVENGE)
		show_hud(killer, KILL_REVENGE)
	}
	else if ((wpnindex != CSW_KNIFE) && (wpnindex != CSW_HEGRENADE) && !can_see_fm(killer, victim)) 
	{
		if (headshot)
		{
			if (kills[killer] == 1)
			{
				play_sound(killer, KILL_HEADSHOT)
				check_sound = 1
			}
			show_hud(killer, WALLSHOT_HEADSHOT)
		}
		else show_hud(killer, WALLSHOT)
	}
	else if (headshot && wpnindex)
	{
		if (kills[killer] == 1)
		{
			play_sound(killer, KILL_HEADSHOT)
			check_sound = 1
		}
		show_hud(killer, KILL_HEADSHOT)
	}
	else if (wpnindex == CSW_KNIFE)
	{
		if (kills[killer] == 1)
		{
			play_sound(killer, KILL_KNIFE)
			check_sound = 1
		}
		show_hud(killer, KILL_KNIFE)
	}
	else if (wpnindex == CSW_HEGRENADE)
	{
		if (kills[killer] == 1)
		{
			play_sound(killer, KILL_HEGRENADE)
			check_sound = 1
		}
		show_hud(killer, KILL_HEGRENADE)
	}
	else
	{
		show_hud(killer, KILL_NONE)
	}
	
	
	// hud 2
	if (g_firstkill)
	{
		g_firstkill = 0
		show_hud(killer, KILL_FIRST)
		if (!check_sound) play_sound(killer, KILL_1)
	}
	else
	{
		show_hud(killer, kills[killer])
		if (!check_sound) play_sound(killer, kills[killer])
	}

}
public bomb_defused(id)
{
	show_hud(id, C4_DEFUSE)
	play_sound(id, C4_DEFUSE)
}
public bomb_planted(id)
{
	show_hud(id, C4_SET)
	play_sound(id, C4_SET)
}


// #################### SHOW HUD ####################
show_hud(id, idhud)
{
	if (!is_user_connected(id)) return;
	
	new type_cvar = get_pcvar_num(cvar_type)
	if (type_cvar == 1) show_spr(id, idhud)
	else if (type_cvar == 2) show_msg(id, idhud)
}
play_sound(id, idhud)
{
	if (!is_user_connected(id)) return;
	
	new sound[64], team[32], sex[32], cs_team
	if (nst_get_mod_runing()==NST_MOD_ZB3) cs_team = nst_get_user_team(id)
	else cs_team = get_user_team(id)
		
	if (cs_team==1) team = "T"
	else team = "CT"
	if (get_user_sex(id) == 2) sex = "woman"
	else sex = "man"
	format(sound, charsmax(sound), "%s", get_hud_data(idhud, HUD_SOUND))
	format(sound, charsmax(sound), sound, sex, team)
	
	PlaySound(id, sound)
}

show_msg(id, idhud)
{
	new msg[64]
	format(msg, charsmax(msg), "%s", get_hud_data(idhud, HUD_MSGTEXT))

	set_hudmessage(0, 204, 0, -1.0, 0.65, 1, 0.02, 3.0, 0.3, 0.3, 2)
	show_hudmessage(id, msg)
}
show_spr(id, idspr)
{
	if (idspr >= KILL_NONE) hide_spr(id, 2)
	else hide_spr(id, 1)

	spr_action(id, idspr, 1)
	
	if (idspr < KILL_NONE)
	{
		if (task_exists(id+TASK_HIDESPR)) remove_task(id+TASK_HIDESPR)
		set_task(get_pcvar_float(cvar_time_show), "task_hidehud", id+TASK_HIDESPR)
	}
} 
public task_hidehud(taskid)
{
	new id = ID_HIDESPR
	hide_spr(id, 2)
	hide_spr(id, 1)

}
hide_spr(id, idspr)
{
	if (idspr == 1)
	{
		for (new i = KILL_1; i <= C4_SET; i++)
		{
			spr_action(id, i, 0)
		}
	}
	else if (idspr == 2)
	{
		for (new i = KILL_NONE; i <= ONESHOT_3KILL; i++)
		{
			spr_action(id, i, 0)
		}
	}
}  
spr_action(id, spr, run)
{	
	new sprname[64]
	format(sprname, charsmax(sprname), "%s", get_hud_data(spr, HUD_SPRNAME))

	message_begin(MSG_ONE,iconstatus,{0,0,0},id)
	write_byte(run) // status (0=hide, 1=show, 2=flash)
	write_string(sprname) // sprite name
	message_end()
}
get_hud_data(idhud, type)
{
	new value[64], sprname[33], sound[64], msgtext[32]
	
	switch (idhud)
	{
		case KILL_1:
		{
			sprname = "kill_1"
			sound = "vox/kill/%s/kill_1_%s"
			msgtext = "1 KILL"
		}
		case KILL_2:
		{
			sprname = "kill_2"
			sound = "vox/kill/%s/kill_2_%s"
			msgtext = "2 KILL"
		}
		case KILL_3:
		{
			sprname = "kill_3"
			sound = "vox/kill/%s/kill_3_%s"
			msgtext = "3 KILL"
		}
		case KILL_4:
		{
			sprname = "kill_4"
			sound = "vox/kill/%s/kill_4_%s"
			msgtext = "4 KILL"
		}
		case KILL_5:
		{
			sprname = "kill_5"
			sound = "vox/kill/%s/kill_5_%s"
			msgtext = "5 KILL"
		}
		case KILL_6:
		{
			sprname = "kill_6"
			sound = "vox/kill/%s/kill_6_%s"
			msgtext = "6 KILL"
		}
		case KILL_7:
		{
			sprname = "kill_7"
			sound = "vox/kill/%s/kill_7_%s"
			msgtext = "7 KILL"
		}
		case KILL_8:
		{
			sprname = "kill_8"
			sound = "vox/kill/%s/kill_8_%s"
			msgtext = "8 KILL"
		}
		case KILL_FIRST:
		{
			sprname = "kill_first"
			msgtext = "FIRST KILL"
		}
		case C4_DEFUSE:
		{
			sprname = "c4_defuse"
			sound = "vox/kill/c4_defuse"
		}
		case C4_SET:
		{
			sprname = "c4_set"
			sound = "vox/kill/c4_set"
		}
	
	
		case KILL_NONE:
		{
			sprname = "kill_none"
		}
		case KILL_HEGRENADE:
		{
			sprname = "kill_he"
			sound = "vox/kill/%s/grenade_%s"
			msgtext = "GRENADE KILL"
		}
		case KILL_HEADSHOT:
		{
			sprname = "kill_headshot"
			sound = "vox/kill/%s/headshot_%s"
			msgtext = "HEADSHOT"
		}
		case KILL_KNIFE:
		{
			sprname = "kill_knife"
			sound = "vox/kill/%s/knife_%s"
			msgtext = "KNIFE KILL"
		}
		case KILL_LAST:
		{
			sprname = "kill_last"
		}
		case KILL_REVENGE:
		{
			sprname = "kill_revenge"
			sound = "vox/kill/%s/revenge_%s"
			msgtext = "REVENGE"
		}
		case WALLSHOT:
		{
			sprname = "wall_shot"
			msgtext = "WALLSHOOT"
		}
		case WALLSHOT_HEADSHOT:
		{
			sprname = "wall_shot_hs"
			msgtext = "WALLSHOOT HEADSHOT"
		}
		case ONESHOT_2KILL:
		{
			sprname = "1shot_2kill"
			msgtext = "ONE SHOT 2 KILL"
		}
		case ONESHOT_3KILL:
		{
			sprname = "1shot_3kill"
			msgtext = "ONE SHOT MULTIKILL"
		}
	}

	if (type==HUD_SOUND) format(value, charsmax(value), "%s", sound)
	else if (type==HUD_MSGTEXT) format(value, charsmax(value), "%s", msgtext)
	else if (type==HUD_SPRNAME) format(value, charsmax(value), "%s", sprname)
	
	return value;
}
get_user_sex(id)
{
	new mod_runing, sex
	mod_runing = nst_get_mod_runing()
	if ( (mod_runing == NST_MOD_ZB3 || mod_runing == NST_MOD_ZBU || mod_runing == NST_MOD_ZBS) && nst_zb_get_user_zombie(id) )
	{
		sex = nst_zb_get_user_sex(id)
	}
	else
	{
		sex = nst_get_user_sex(id)
	}

	return sex;
}
// Plays a sound on clients
PlaySound(id, const sound[])
{
	if (equal(sound[strlen(sound)-4], ".mp3"))
		client_cmd(id, "mp3 play ^"sound/%s^"", sound)
	else
		client_cmd(id, "spk ^"%s^"", sound)
}
bool:can_see_fm(entindex1, entindex2)
{
	if ((!g_FM_Running) || !entindex1 || !entindex2)
		return false
//  new ent1, ent2

	if (pev_valid(entindex1) && pev_valid(entindex1))
	{
		new flags = pev(entindex1, pev_flags)
		if (flags & EF_NODRAW || flags & FL_NOTARGET)
		{
			return false
		}

		new Float:lookerOrig[3]
		new Float:targetBaseOrig[3]
		new Float:targetOrig[3]
		new Float:temp[3]

		pev(entindex1, pev_origin, lookerOrig)
		pev(entindex1, pev_view_ofs, temp)
		lookerOrig[0] += temp[0]
		lookerOrig[1] += temp[1]
		lookerOrig[2] += temp[2]

		pev(entindex2, pev_origin, targetBaseOrig)
		pev(entindex2, pev_view_ofs, temp)
		targetOrig[0] = targetBaseOrig [0] + temp[0]
		targetOrig[1] = targetBaseOrig [1] + temp[1]
		targetOrig[2] = targetBaseOrig [2] + temp[2]

		engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0) //  checks the had of seen player
		if (get_tr2(0, TraceResult:TR_InOpen) && get_tr2(0, TraceResult:TR_InWater))
		{
			return false
		} 
		else 
		{
			new Float:flFraction
			get_tr2(0, TraceResult:TR_flFraction, flFraction)
			if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == entindex2))
			{
				return true
			}
			else
			{
				targetOrig[0] = targetBaseOrig [0]
				targetOrig[1] = targetBaseOrig [1]
				targetOrig[2] = targetBaseOrig [2]
				engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0) //  checks the body of seen player
				get_tr2(0, TraceResult:TR_flFraction, flFraction)
				if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == entindex2))
				{
					return true
				}
				else
				{
					targetOrig[0] = targetBaseOrig [0]
					targetOrig[1] = targetBaseOrig [1]
					targetOrig[2] = targetBaseOrig [2] - 17.0
					engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0) //  checks the legs of seen player
					get_tr2(0, TraceResult:TR_flFraction, flFraction)
					if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == entindex2))
					{
						return true
					}
				}
			}
		}
	}
	return false
}

Cái này k biết có c4 defuse chưa nhỉ ? nếu chưa cậu thêm dùm tớ lun
Mà hình như sound nó dẫn trong VOX folder à ? cậu cho nó wa misc/multikill/man nhá ^^! thanks nhìu



5cor cho tớ cái YH đi nói chuyện cho dễ
 
5.png

Ai cho tớ
1.Plugin mỗi khi die thì hiện thông tin attacker, victim
2.Plugin hiện tên bắn giỏi nhất vòng mỗi khi hết round
3.Plugin màn hình đỏ khi chết ko! >> cái này giống cái Death effect nhưng chỉ có mỗi màn hình đỏ khi chết! ko bị zật và đỏ màn hình khi trúng đạn
Mình chơi server Xuanhanh1970, thấy plugin hay hay mà ko biết tên
 
5.png

Ai cho tớ
1.Plugin mỗi khi die thì hiện thông tin attacker, victim
2.Plugin hiện tên bắn giỏi nhất vòng mỗi khi hết round
3.Plugin màn hình đỏ khi chết ko! >> cái này giống cái Death effect nhưng chỉ có mỗi màn hình đỏ khi chết! ko bị zật và đỏ màn hình khi trúng đạn
Mình chơi server Xuanhanh1970, thấy plugin hay hay mà ko biết tên
1. tim` thử bullet damage hoặc kill anouncer
2. cái đó tự làm cho lành , thử tìm trong suggestion/request 4rum trên AM xem
3. quên tên
 
bullet damage,kill massage cũng ko phải!
kill anouncer thử thì ko giống như vậy! hiện mỗi tên killer thui à
 
Chỉnh sửa cuối:
Cái thứ 3 là Mortal Kombat Miscstats.
@Uno : satthugiaumat12 . Của ông là j để tui add luôn :D . Thêm 10 kill rồi ko reset khi death, đc thôi :D.
-Àh quên , thế sửa để nó thành bản chạy với mod COD thôi phải ko . Ông ko dùng plugin gì của Nst_ ngoài weapon hết ?
 
Chỉnh sửa cuối:
trên AM có killstrake nhưng ông UNo bảo ko phải của MW2
 
cái plugins của rongem liên tưởng trong ZP
^^ mà hình như cai AMX MOD la dc
 
@Uno : satthugiaumat12 . Của ông là j để tui add luôn . Thêm 10 kill rồi ko reset khi death, đc thôi .
-Àh quên , thế sửa để nó thành bản chạy với mod COD thôi phải ko . Ông ko dùng plugin gì của Nst_ ngoài weapon hết ?

của tui là kira_sweetboy_1604119 . ok như vầy , kill streak là tới 10 kills ! à mà reset khi chết í :D , nhưng khi kill vd kill 1 ... k có thời gian => kill 2 như cái plugin ultimate killstreak đó ^^! mà ông nói chạy với mod cod thui là sao tui k hỉu ?? Tui chỉ dùng cái efect killer _ damage fire thui ^^!
 
@NST: Cái vụ lần trước return string ko khả thi à cậu?
Có thể dùng đến Cvar mà, chỉ cần 2 cái cvar là old_wpn_name và current_wpn_name mỗi lần xảy ra sự kiện curr_wpn thì thay đổi giá trị 2 cvar này thôi cũng được.
Như vậy plugin khác ko cần dùng native cũng có thể get_pcvar đúng không ? Giúp tớ cái !
 
@kakaa96 làm dc cái hiện class khi lây nhiễm chưa ?

Thêm đoạn này vào cái forward infect nè: (trong bio_main)

PHP:
		if(g_classcount > 1) 
			display_classmenu(id, g_menuposition[id] = 0)
 
@NST: Cái vụ lần trước return string ko khả thi à cậu?
Có thể dùng đến Cvar mà, chỉ cần 2 cái cvar là old_wpn_name và current_wpn_name mỗi lần xảy ra sự kiện curr_wpn thì thay đổi giá trị 2 cvar này thôi cũng được.
Như vậy plugin khác ko cần dùng native cũng có thể get_pcvar đúng không ? Giúp tớ cái !

Ai bảo ông không khả thi?Có cần tôi gửi cho mọi người xem cái g4u weapon nó return string như thế nào không? Ông tin là tôi dùng native return string đó để thêm các súng mới vào deathmatch không? Mai tôi gửi video cho mà xem :P
 
mọi ng cho tui hỏi cái aimsight trong csonst là plugins phải k ? thế ai có k cho tui xin đi :D
 
Plugin Ultimate Sound rất hay! nhưng bực 1 cái!
Hết round nó vẫn tính kill tiếp tục
VD mình lastkill round trước là Ultrakill (3).
sang ván sau mình first Kill thì nó tính tiếp là Mutikill
Có cách nào qua round mới nó tính lại từ đầu ko?
Code mình thêm 21 KILL bắn CSDM cho đã, nhưng ko biết sửa tính kill tính lại khi hết round thế nào! ai biết sửa ko

[spoil]
*********************************************************************************
*
* ///////////////////////////////////////////////////
* // AMXMOD[X] //
* // ::Ultimate sounds:: //
* // Origional: by Hephaistos //
* // Ported by: Dizzy //
* // Edited by: Hoboman, bmann_420 //
* // //
* // cvar: //
* // streak_mode < flags > //
* // "a" - messages //
* // "b" - sounds //
* // //
* // knife_mode < flags > //
* // "a" - messages //
* // "b" - sounds //
* // //
* // hs_mode < flags > //
* // "a" - messages //
* // "b" - sounds //
* // //
* // lastman_mode < flags > //
* // "a" - messages //
* // "b" - hp //
* // "c" - sounds //
* ///////////////////////////////////////////////////
*
*********************************************************************************
*/

// Plugin Info
new const PLUGIN[] = "Ultimate Sounds"
new const VERSION[] = "1.7"
new const AUTHOR[] = "Dizzy / Bmann_420"

// Includes
#include <amxmodx>

//Defines
#define KNIFEMESSAGES 5
#define MESSAGESNOHP 5
#define MESSAGESHP 5
#define LEVELS 20

//Pcvars
new streak_mode, knife_mode, hs_mode, lastman_mode

new gmsgHudSync

new kills[33] = {0,...};
new deaths[33] = {0,...};
new alone_ann = 0
new levels[20] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21};

//Streak Sounds
new stksounds[20][] =
{
"misc/doublekill",
"misc/triplekill",
"misc/multikill",
"misc/megakill",
"misc/ultrakill",
"misc/monsterkill",
"misc/killingspree",
"misc/unstoppable",
"misc/wickedsick",
"misc/rampage",
"misc/ludacrisskill",
"misc/godlike",
"misc/holyshit",
"misc/ownage",
"misc/eagleeye",
"misc/hattrick",
"misc/headhunter",
"misc/domination",
"misc/ludacrisskill",
"misc/flawlessvictory"
}

new stkmessages[20][] =
{
"%s: Double Kill <2>",
"%s: Triple Kill <3>",
"%s: Multi Kill <4>",
"%s: Mega Kill <5>",
"%s: Ultra Kill <6>",
"%s: M o n s t e R - K i L L <7>",
"%s: Killing Spree <8>",
"%s: U n - S t o p p a b l e <9>",
"%s: Wicked Sick <10>",
"%s: Rampage <11>",
"%s: Ludacriss Kill <12>",
"%s: God-Like <13>",
"%s: Holy Shit <14>",
"%s: Ownage <15>",
"%s: Egle Eye <16>",
"%s: Hattrick <17>",
"%s: Head Hunter <18>",
"%s: Domination <19>",
"%s: Ludacriss Kill <20>",
"%s: Flawless Victory <21>"
}

new knifemessages[KNIFEMESSAGES][] =
{
"KNIFE_MSG_1",
"KNIFE_MSG_2",
"KNIFE_MSG_3",
"KNIFE_MSG_4",
"KNIFE_MSG_5"
}

new messagesnohp[MESSAGESNOHP][] =
{
"NOHP_MSG_1",
"NOHP_MSG_2",
"NOHP_MSG_3",
"NOHP_MSG_4",
"NOHP_MSG_5"
}

new messageshp[MESSAGESHP][] =
{
"HP_MSG_1",
"HP_MSG_2",
"HP_MSG_3",
"HP_MSG_4",
"HP_MSG_5"
}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("ultimate_sounds",VERSION,FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)
register_dictionary("ultimate_sounds.txt")
register_event("DeathMsg","hs","a","3=1")
register_event("DeathMsg","knife_kill","a","4&kni")
register_event("ResetHUD", "reset_hud", "b");
register_event("DeathMsg", "death_event", "a", "1>0");
register_event("DeathMsg","death_msg","a")
register_event("SendAudio","roundend_msg","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw")
register_event("TextMsg","roundend_msg","a","2&#Game_C","2&#Game_w")

lastman_mode = register_cvar("lastman_mode","abc")
streak_mode = register_cvar("streak_mode","ab")
knife_mode = register_cvar("knife_mode","ab")
hs_mode = register_cvar("hs_mode","ab")

gmsgHudSync = CreateHudSyncObj()

return PLUGIN_CONTINUE
}

get_streak()
{
new streak[3]
get_pcvar_string(streak_mode,streak,2)
return read_flags(streak)
}

public death_event(id)
{
new streak = get_streak()

if ((streak&1) || (streak&2))
{
new killer = read_data(1);
new victim = read_data(2);

kills[killer] += 1;
kills[victim] = 0;
deaths[killer] = 0;
deaths[victim] += 1;

for (new i = 0; i < LEVELS; i++)
{
if (kills[killer] == levels)
{
announce(killer, i);
return PLUGIN_CONTINUE;
}
}
}
return PLUGIN_CONTINUE;
}

announce(killer, level)
{
new streak = get_streak()

if (streak&1)
{
new name[32];

get_user_name(killer, name, 32);
set_hudmessage(0, 100, 200, 0.05, 0.65, 2, 0.02, 6.0, 0.01, 0.1, 2);
ShowSyncHudMsg(0, gmsgHudSync, stkmessages[level], name);
}

if (streak&2){
for(new i=1;i<=get_maxplayers();i++)
if(is_user_connected(i)==1 )
client_cmd(i, "spk %s", stksounds[level]);
}
}

public reset_hud(id)
{
new streak = get_streak()

if (streak&1)
{

if (kills[id] > levels[0])

{
client_print(id, print_chat,"%L", id, "KILL_STREAK", kills[id]);
}

else if (deaths[id] > 1)

{
client_print(id, print_chat,"%L", id, "DEATH_STREAK", deaths[id]);
}
}
}

public client_connect(id)
{
new streak = get_streak()

if ((streak&1) || (streak&2))
{
kills[id] = 0;
deaths[id] = 0;
}
}

public knife_kill()
{
new knifemode[4]
get_pcvar_string(knife_mode,knifemode,4)
new knifemode_bit = read_flags(knifemode)

if (knifemode_bit & 1)
{
new killer_id = read_data(1)
new victim_id = read_data(2)
new killer_name[33], victim_name[33]

get_user_name(killer_id,killer_name,33)
get_user_name(victim_id,victim_name,33)


set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
ShowSyncHudMsg(0, gmsgHudSync, "%L", LANG_PLAYER, knifemessages[ random_num(0,KNIFEMESSAGES-1) ],killer_name,victim_name)
}

if (knifemode_bit & 2)
{
for(new i=1;i<=get_maxplayers();i++)
if( is_user_connected(i) == 1 )
client_cmd(i,"spk misc/humiliation")
}
}


public roundend_msg(id)

alone_ann = 0

public death_msg(id)
{

new lmmode[8]
get_pcvar_string(lastman_mode,lmmode,8)
new lmmode_bit = read_flags(lmmode)

new players_ct[32], players_t[32], ict, ite, last
get_players(players_ct,ict,"ae","CT")
get_players(players_t,ite,"ae","TERRORIST")

if (ict==1&&ite==1)
{
new name1[32], name2[32]
get_user_name(players_ct[0],name1,32)
get_user_name(players_t[0],name2,32)
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)

if (lmmode_bit & 1)
{
if (lmmode_bit & 2)
{
ShowSyncHudMsg(0, gmsgHudSync, "%s (%i hp) vs. %s (%i hp)",name1,get_user_health(players_ct[0]),name2,get_user_health(players_t[0]))
}

else
{
ShowSyncHudMsg(0, gmsgHudSync, "%s vs. %s",name1,name2)
}

if (lmmode_bit & 4)
{
for(new i=1;i<=get_maxplayers();i++)
if( is_user_connected(i) == 1 )
client_cmd(i,"spk misc/maytheforce")
}
}
}
else
{
if (ict==1&&ite>1&&alone_ann==0&&(lmmode_bit & 4))
{
last=players_ct[0]
client_cmd(last,"spk misc/oneandonly")

}

else if (ite==1&&ict>1&&alone_ann==0&&(lmmode_bit & 4))
{
last=players_t[0]
client_cmd(last,"spk misc/oneandonly")
}

else
{
return PLUGIN_CONTINUE
}
alone_ann = last
new name[32]
get_user_name(last,name,32)

if (lmmode_bit & 1)
{
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)

if (lmmode_bit & 2)
{
ShowSyncHudMsg(0, gmsgHudSync, "%L", LANG_PLAYER, messageshp[ random_num(0,MESSAGESHP-1) ],ite ,ict ,name,get_user_health(last))
}

else
{
ShowSyncHudMsg(0, gmsgHudSync, "%L", LANG_PLAYER, messagesnohp[ random_num(0,MESSAGESNOHP-1) ],ite ,ict ,name )
}
}

}
return PLUGIN_CONTINUE
}


public hs()
{
new hsmode[4]
get_pcvar_string(hs_mode,hsmode,4)
new hsmode_bit = read_flags(hsmode)

if (hsmode_bit & 1)
{
new killer_id = read_data(1)
new victim_id = read_data(2)
new victim_name[33]

get_user_name(victim_id,victim_name,33)

set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 3.0, 3.0, 0.15, 0.15, 1)
ShowSyncHudMsg(killer_id, gmsgHudSync, "::HEADSHOT::^nYou Owned %s !!",victim_name)
}

if (hsmode_bit & 2)
{
for(new i=1;i<=get_maxplayers();i++)
if( is_user_connected(i)==1 )
client_cmd(i,"spk misc/headshot")
}
}

public plugin_precache()
{
precache_sound("misc/ludacrisskill.wav")
precache_sound("misc/ownage.wav")
precache_sound("misc/eagleeye.wav")
precache_sound("misc/hattrick.wav")
precache_sound("misc/headhunter.wav")
precache_sound("misc/domination.wav")
precache_sound("misc/flawlessvictory.wav")
precache_sound("misc/doublekill.wav")
precache_sound("misc/triplekill.wav")
precache_sound("misc/unstoppable.wav")
precache_sound("misc/monsterkill.wav")
precache_sound("misc/godlike.wav")
precache_sound("misc/headshot.wav")
precache_sound("misc/humiliation.wav")
precache_sound("misc/killingspree.wav")
precache_sound("misc/multikill.wav")
precache_sound("misc/ultrakill.wav")
precache_sound("misc/maytheforce.wav")
precache_sound("misc/oneandonly.wav")
precache_sound("misc/rampage.wav")
precache_sound("misc/holyshit.wav")
precache_sound("misc/megakill.wav")
precache_sound("misc/wickedsick.wav")
precache_sound("misc/ludacrisskill.wav")

return PLUGIN_CONTINUE
}
[/spoil]
 
Chỉnh sửa cuối:
Status
Không mở trả lời sau này.
Back
Top