[AMX] Tổng hợp Code, Plug do Mem chế hoặc giới thiệu

  • Thread starter Thread starter Orpheus
  • Ngày gửi Ngày gửi
Tốt nhất là ông đừng có nói mồm như đúng rồi như thế -.-, tui bảo tui ko biết làm, nên mới nhờ ông chỉnh dùm cái tga

^: Này anh bạn, tớ không có pts thì mới hd chi tiết tận tình vì cứ nghĩ cậu cũng giỏi it .HD cho lại bị mang tiếng nói mồm :|. Chẳng phải trc các cậu chuyên gạch đá newbie amxx còn gì, hơi tý là hỏi ko chịu máy móc
thế ý cậu ntn ? đâu có nói rõ đâu mà nhờ người khác làm ?? để 32 bit + raw thôi hay tạo trans nữa ???
Thôi down shop về làm hộ thì kq như sau V:
Đây là 2 attach V
attach 1: no trans + 32 bit + raw
attach 2: trans + 32 bit + raw
Vì ảnh lúc đầu chỉ có 8 bit và edit khá thô nên dù đưa thành 32 bit và làm trans nó cũng rất xấu ko thể đẹp đc. Tốt nhất là đưa ảnh gốc 32 bit lên đây để moi ngườii biết pts crop rồi edit nguyên bản

_[G]aCon_;22942440 nói:
metahook thì chỉ draw được 32 bit ; gameplay của cs (buy menu) thì draw được 16 bit (sẽ bị đảo ngược) và 32 bit
:D

Calm down mans!
@Dias: Người khác giúp đỡ phải THANKS ko được LANH CHANH kẻo bị ăn HÀNH :5cool_big_smile:. Có anh PTS thì ko chịu hỏi, hỏi lung ta lung tung rồi la :6cool_what:!
 
Mò trên ailienmod thấy có cái plugin Hidden CSO (gần giống thôi)
PHP:
/*
*
* AMX Mod X script
* theHidden - mod by Filip Lachacz (kaver.dot[attera]gmail.com ; www.kaver.dl.pl)
*
*/

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <hamsandwich>

#define VERSION "1.01"

#define KeysCharacterSelection (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9) // Keys: 1234567890
#define KeysClassSelection (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<8)|(1<<9) // Keys: 1234569

new Models[][] = {"terror", "leet", "arctic", "guerilla", "urban", "gsg9", "sas", "gign"}

new HiddenID = 0

new PlayersClass[32]
new PlayersModel[32]
new PlayersMsgShown[32]

new LightLevel = 109
new LightMode = 1

new CurClasses[6]
new MaxClasses[6]

new FwdKeyValue
new Ent

new hpTaskTicks
new hpTaskMessage[256]

new hidden_description

new hidden_speed
new hidden_health 
new hidden_health_recover
new hidden_gravity 

new hidden_class_a1
new hidden_class_a2
new hidden_class_a3
new hidden_class_s1
new hidden_class_s2
new hidden_class_s3

public hpTask()
{
	if(is_user_alive( HiddenID) && is_user_connected(HiddenID) && CsTeams:cs_get_user_team(HiddenID) == CS_TEAM_T) 
	{
		if(hpTaskTicks > 0)
		{
			hpTaskTicks--
			client_print(HiddenID, print_center, hpTaskMessage)
			
		}
		else client_print(HiddenID, print_center, "%d HP", get_user_health(HiddenID))
	}
}	

public countCurClasses()
{
	new players[32],count
	get_players( players, count)
	
	CurClasses[0] = 0
	CurClasses[1] = 0
	CurClasses[2] = 0
	CurClasses[3] = 0
	CurClasses[4] = 0
	CurClasses[5] = 0
	
	new i
	for(i=0; i<count-1; i++)
	{
		CurClasses[PlayersClass[i]]++
	}
}

public countMaxClasses()
{
	new players[32],count
	get_players(players, count)
	MaxClasses[0] = floatround(count*get_pcvar_float(hidden_class_a1), floatround_ceil)
	MaxClasses[1] = floatround(count*get_pcvar_float(hidden_class_a2), floatround_ceil)
	MaxClasses[2] = floatround(count*get_pcvar_float(hidden_class_a3), floatround_ceil)
	MaxClasses[3] = floatround(count*get_pcvar_float(hidden_class_s1), floatround_ceil)
	MaxClasses[4] = floatround(count*get_pcvar_float(hidden_class_s2), floatround_ceil)
	MaxClasses[5] = floatround(count*get_pcvar_float(hidden_class_s3), floatround_ceil)
}

public pfn_keyvalue(entid)
{
	new class[24], temp1[2], temp2[2]
	copy_keyvalue(class, 23, temp1, 1, temp2, 1)
	
	if (equal(class, "info_map_parameters")) {
		if(Ent)
		{
			remove_entity(Ent)
			Ent = 0
		}
		
		DispatchKeyValue(entid, "buying", "3")
	}
}

public Forward_KeyValue(const EntIndex, const KvdHandle)
{
	if(pev_valid(EntIndex))
	{
		new szClassName[32]
		get_kvd(KvdHandle, KV_ClassName, szClassName, charsmax(szClassName))
		
		if(equal(szClassName, "armoury_entity"))
		{
			engfunc(EngFunc_RemoveEntity, EntIndex)
			return FMRES_SUPERCEDE
		}	
	}
	
	return FMRES_IGNORED
}

public plugin_precache()
{
	FwdKeyValue = register_forward(FM_KeyValue, "Forward_KeyValue")
	
	Ent = create_entity("info_map_parameters")
	DispatchKeyValue(Ent, "buying", "3")
	DispatchKeyValue(Ent, "bombradius", "500")
	DispatchSpawn(Ent)
}

public plugin_init()
{
	register_plugin("theHidden", VERSION, "Filip Lachacz")
	
	register_menucmd(register_menuid("ClassSelection"), KeysClassSelection, "PressedClassSelection")
	register_menucmd(register_menuid("CharacterSelection"), KeysCharacterSelection, "PressedCharacterSelection")
	register_clcmd("chooseteam","chooseteam")
	register_event("Damage","event_damage","b")
	register_event("ResetHUD","event_spawn","be")
	register_event( "CurWeapon", "event_cur_weapon", "be", "1=1" )
	register_logevent("round_end", 2, "1=Round_End")
	
	RegisterHam(Ham_Touch, "weaponbox", "fw_TouchWeapon")
	RegisterHam(Ham_Touch, "armoury_entity", "fw_TouchWeapon")
	RegisterHam(Ham_Touch, "weapon_shield", "fw_TouchWeapon")
	
	register_clcmd("hidden_info","show_info")
	
	hidden_description = register_cvar("hidden_description", "1")

	hidden_speed = register_cvar("hidden_speed", "900.0")
	hidden_health = register_cvar("hidden_health", "600")
	hidden_health_recover = register_cvar("hidden_health_recover", "10")
	hidden_gravity = register_cvar("hidden_gravity", "0.75")
	
	hidden_class_a1 = register_cvar("hidden_class_a1", "0.2125")
	hidden_class_a2 = register_cvar("hidden_class_a2", "0.1875")
	hidden_class_a3 = register_cvar("hidden_class_a3", "0.1875")
	hidden_class_s1 = register_cvar("hidden_class_s1", "0.12")
	hidden_class_s2 = register_cvar("hidden_class_s2", "0.2125")
	hidden_class_s3 = register_cvar("hidden_class_s3", "0.07")
	
	
	unregister_forward(FM_KeyValue, FwdKeyValue)
	register_forward( FM_GetGameDescription, "gameDescription"); 
	
	register_dictionary("theHidden.txt")
	
	for(new i=0; i<32; i++) 
	{
		PlayersClass[i] = random_num(0, 5)
		PlayersModel[i] = random_num(0, 7)
		PlayersMsgShown[i] = 0
	}
	
	set_task(10.0, "lightTask", 0, "", 0, "b")
	set_task(0.1, "hpTask", 0, "", 0, "b")
}

public fw_TouchWeapon(weapon,id)
{
	if (!is_user_connected(id))
		return HAM_IGNORED
	
	if(HiddenID==id)
		return HAM_SUPERCEDE
	
	return HAM_IGNORED
}


public gameDescription()
{ 
	if(get_pcvar_num(hidden_description)!=0)
	{
		forward_return( FMV_STRING, "theHidden")
		return FMRES_SUPERCEDE
	}
	return FMRES_IGNORED
}

public event_damage(id)
{
	new VictimID = id	
	new DamageTook = read_data( 2 )
	new DamageType = read_data( 3 )
	new WeaponID, AttackerID
	AttackerID = get_user_attacker(VictimID, WeaponID)
	new Health = get_user_health(AttackerID)
	if(AttackerID==HiddenID && VictimID!=HiddenID && DamageTook>0 && WeaponID==CSW_KNIFE)
	{
		new players[32],count
		get_players(players, count)
		set_user_health(HiddenID, Health+DamageTook+get_pcvar_num(hidden_health_recover)*count)
		new VictimName[32]
		get_user_name(VictimID, VictimName, 31)
		hpTaskTicks = 15
		format(hpTaskMessage, 256, "%L", HiddenID, "MSG_TOOK_DAMAGE", DamageTook, VictimName, DamageTook+10*count)
	}
}

public lightTask(id)
{
	if(LightMode==0) LightLevel++; else LightLevel--
	if(LightLevel>=109) LightMode = 1
	if(LightLevel<=97) LightMode = 0
	new temp[2]
	temp[0]=LightLevel
	temp[1]=0
	set_lights(temp)
}

public send_message(text[256])
{
	message_begin(MSG_ALL, get_user_msgid("SayText"), {0,0,0}, 0)
	write_byte(1)
	write_string(text)
	message_end()
}

public client_connect(id)
{
	PlayersMsgShown[id-1] = 1
}

public client_impulse(id, impulse)
{
	if(impulse == 100 && CsTeams:get_user_team(id) == CS_TEAM_T) return PLUGIN_HANDLED_MAIN
	return PLUGIN_CONTINUE
}

public event_spawn(id)
{
	if(HiddenID==id) hpTaskTicks=0
	set_task(0.1,"player_spawn",id)
	countMaxClasses()
}

public round_start(id)
{
	set_task(0.1,"newround",id)
	
}

public event_cur_weapon(id)
{
	if(id==HiddenID) set_user_maxspeed(HiddenID, get_pcvar_float(hidden_speed))
}

public show_info(id)
{
	client_print(id, print_console, "theHidden 1.01 by Kaver")
	return PLUGIN_HANDLED
}

public chooseteam(id)
{
	ShowClassSelection(id)
	return PLUGIN_HANDLED
}

public player_spawn(id)
{	
	if(PlayersMsgShown[id-1]==1)
	{
		ShowCharacterSelection(id)
		PlayersMsgShown[id-1] = 0
	}
	if(id==HiddenID) cs_set_user_team(id, CS_TEAM_T); else cs_set_user_team(id, CS_TEAM_CT)
	set_user_godmode(id, 0)
	strip_user_weapons(id)
	switch(cs_get_user_team(id))
	{
		case CS_TEAM_CT: 
		{
			cs_set_user_model(id, Models[PlayersModel[id-1]])
			cs_set_user_nvg(id, 0)
			set_user_hitzones(0, id, 255)
			set_user_maxspeed(id, -1.0)
			set_user_gravity(id, 1.0)
			give_item(id, "weapon_knife")
			switch(PlayersClass[id-1])
			{
				case 0:
				{
					give_item(id, "weapon_deagle")
					give_item(id, "ammo_50ae")
					give_item(id, "ammo_50ae")
					give_item(id, "weapon_m3")
					give_item(id, "ammo_buckshot")
					give_item(id, "ammo_buckshot")
					give_item(id, "ammo_buckshot")
					give_item(id, "ammo_buckshot")
				}
				case 1:
				{
					give_item(id, "weapon_p228")
					give_item(id, "ammo_357sig")
					give_item(id, "ammo_357sig")
					give_item(id, "weapon_m4a1")
					give_item(id, "ammo_556nato")
				}
				case 2:
				{
					give_item(id, "weapon_fiveseven")
					give_item(id, "ammo_57mm")
					give_item(id, "weapon_ak47")
					give_item(id, "ammo_762nato")
				}
				case 3:
				{
					give_item(id, "weapon_smokegrenade")
					give_item(id, "weapon_fiveseven")
					give_item(id, "ammo_57mm")
					give_item(id, "weapon_xm1014")
					give_item(id, "ammo_buckshot")
					give_item(id, "ammo_buckshot")
					give_item(id, "ammo_buckshot")
					give_item(id, "ammo_buckshot")
				}
				case 4:
				{
					give_item(id, "weapon_smokegrenade")
					give_item(id, "weapon_p228")
					give_item(id, "ammo_357sig")
					give_item(id, "ammo_357sig")
					give_item(id, "weapon_p90")
					give_item(id, "ammo_57mm")
				}
				case 5:
				{
					
					give_item(id, "weapon_smokegrenade")
					give_item(id, "weapon_fiveseven")
					give_item(id, "ammo_57mm")
					give_item(id, "weapon_m249")
					give_item(id,"ammo_556natobox")
					give_item(id,"ammo_556natobox")
				}
			}
			set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,255)
		}
		case CS_TEAM_T:
		{
			cs_set_user_model(id, "vip")
			set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,25)
			cs_set_user_nvg(id, 1)
			give_item(id, "weapon_hegrenade")
			give_item(id, "weapon_flashbang")
			give_item(id, "weapon_knife")
			
			set_user_maxspeed(id, get_pcvar_float(hidden_speed))
			
			set_user_gravity(id, get_pcvar_float(hidden_gravity))
			set_user_hitzones(0, id, 253)
			
			new players[32],count
			get_players(players, count)
			set_user_health(id, get_pcvar_num(hidden_health)+25*count)
			
			hpTaskTicks = 30
			format(hpTaskMessage, 256, "%L ", id, "MSG_HIDDEN_YOU")
		}
	}
}

public round_end(id)
{
	HiddenID++
	new players[32],count
	get_players(players, count)
	
	//client_print(0, print_chat, "[theHidden] DEBUG: HiddenID=%d; count=%d;", HiddenID, count)
	
	if(HiddenID>count)
	{
		cs_set_user_team(HiddenID-1, CS_TEAM_CT)
		HiddenID = 1
		cs_set_user_team(HiddenID, CS_TEAM_T)
		} else if(HiddenID>0) {
		cs_set_user_team(HiddenID-1, CS_TEAM_CT)
		cs_set_user_team(HiddenID, CS_TEAM_T)
	}
	
	new i
	for (i=0; i<count; i++)
		set_user_godmode(players[i], 1)
	
	new name[32]
	get_user_info(HiddenID, "name", name, 31)
	client_print(0, print_chat, "[theHidden] %L ", LANG_PLAYER, "MSG_HIDDEN_NEW", name)
	hpTaskTicks = 15
	format(hpTaskMessage, 256, "%L", HiddenID, "MSG_HIDDEN_YOU_RESPAWN")
}

public ShowCharacterSelection(id)
{
	new character[32]
	if(PlayersModel[id-1]==0) format(character, 32, "PHOENIX CONNEX")
	if(PlayersModel[id-1]==1) format(character, 32, "ELITE CREW")
	if(PlayersModel[id-1]==2) format(character, 32, "ARCTIC AVENGERS")
	if(PlayersModel[id-1]==3) format(character, 32, "GUERILLA WARFARE")
	if(PlayersModel[id-1]==4) format(character, 32, "SEAL TEAM 6")
	if(PlayersModel[id-1]==5) format(character, 32, "GSG-9")
	if(PlayersModel[id-1]==6) format(character, 32, "SAS")
	if(PlayersModel[id-1]==7) format(character, 32, "GIGN")
	
	new temp[512]
	format(temp, 512, "\y%L: \w%s^n^n", id, "MSG_MENU_CHAR_CURRENT", character)
	format(temp, 512, "%s\y%L:^n\w[1] PHOENIX CONNEX^n[2] ELITE CREW^n[3] ARCTIC AVENGERS^n[4] GUERILLA WARFARE^n[5] SEAL TEAM 6^n[6] GSG-9^n[7] SAS^n[8] GIGN^n\y[9] %L^n[0] %L^n", temp, id, "MSG_MENU_CHAR", id, "MSG_MENU_CHAR_RANDOM", id, "MSG_MENU_CLASS_SELECTION")
	show_menu(id, KeysCharacterSelection, temp, -1, "CharacterSelection") // Display menu
}

public PressedCharacterSelection(id, key)
{
	if(key==8) PlayersModel[id-1] = random_num(0, 7); else
	if(key<8) PlayersModel[id-1] = key
	ShowClassSelection(id)
}

public ShowClassSelection(id)
{
	countCurClasses()
	countMaxClasses()
	
	new tempA1[4]
	format(tempA1, 3, "%d/%d", CurClasses[0], MaxClasses[0])
	new tempA2[4]
	format(tempA2, 3, "%d/%d", CurClasses[1], MaxClasses[1])
	new tempA3[4]
	format(tempA3, 3, "%d/%d", CurClasses[2], MaxClasses[2])
	new tempS1[4]
	format(tempS1, 3, "%d/%d", CurClasses[3], MaxClasses[3])
	new tempS2[4]
	format(tempS2, 3, "%d/%d", CurClasses[4], MaxClasses[4])
	new tempS3[4]
	format(tempS3, 3, "%d/%d", CurClasses[5], MaxClasses[5])
	
	new class[16]
	if(PlayersClass[id-1]==0) format(class, 16, "ASSAULT A1")
	if(PlayersClass[id-1]==1) format(class, 16, "ASSAULT A2")
	if(PlayersClass[id-1]==2) format(class, 16, "ASSAULT A3")
	if(PlayersClass[id-1]==3) format(class, 16, "SUPPORT S1")
	if(PlayersClass[id-1]==4) format(class, 16, "SUPPORT S2")
	if(PlayersClass[id-1]==5) format(class, 16, "SUPPORT S3")
	
	new temp[512]
	format(temp, 512, "\y%L: \w%s^n^n\y%L:^n", id, "MSG_MENU_CLASS_CURRENT", class, id, "MSG_MENU_CLASS")
	format(temp, 512, "%s\w[1] \rAssault  A1\w  {%s}  M3, Night Hawk^n[2] \rAssault  A2\w  {%s}  M4A1, P228^n[3] \rAssault  A3\w  {%s}  AK47, Five-Seven^n^n[4] \rSupport  S1\w  {%s}  XM1014, Five-Seven, smoke granade^n[5] \rSupport  S2\w  {%s}  P90, P228, smoke granade^n[6] \rSupport  S3\w  {%s}  M249 Para, Five-Seven, smoke granade^n^n", temp, tempA1, tempA2, tempA3, tempS1, tempS2, tempS3)
	format(temp, 512, "%s\y[9] %L^n[0] %L^n", temp, id, "MSG_MENU_CHAR_SELECTION", id, "MSG_MENU_CLOSE")
	show_menu(id, KeysClassSelection, temp, -1, "ClassSelection")
}

public PressedClassSelection(id, key)
{
	if(key==8) ShowCharacterSelection(id); else
	if(key==PlayersClass[id-1])
	{
		ShowClassSelection(id)
		client_print(id, print_chat, "[theHidden] %L", id, "MSG_CLASS_ALREADY")
		
	} else if(key<6)
{
	if(CurClasses[key] < MaxClasses[key])
	{
		PlayersClass[id-1] = key
		new class[16]
		if(PlayersClass[id-1]==0) format(class, 16, "ASSAULT A1")
		if(PlayersClass[id-1]==1) format(class, 16, "ASSAULT A2")
		if(PlayersClass[id-1]==2) format(class, 16, "ASSAULT A3")
		if(PlayersClass[id-1]==3) format(class, 16, "SUPPORT S1")
		if(PlayersClass[id-1]==4) format(class, 16, "SUPPORT S2")
		if(PlayersClass[id-1]==5) format(class, 16, "SUPPORT S3")
		new name[32]
		get_user_info(id, "name", name, 31)
		client_print(0, print_chat, "[theHidden] %L", LANG_PLAYER, "MSG_CLASS_CHANGE",  name, class)
	}
	else
	{	
		ShowClassSelection(id)
		client_print(id, print_chat, "[theHidden] %L", id, "MSG_CLASS_DISALLOWED")
	}
}
}
Cái này thì giết Hidden xong là hết game, bắt đầu round mới chọn 1 người khác làm Hidden =))
Ai fix lại giúp được không nhỉ :) (Hoặc gợi ý cũng được)
Thank :9cool_sweet_kiss:
 
Định release cái plugin realistic shotgun reloading thì ngại xóa code từ CS RED ==!
 
@ngochai: remake lại thì mệt lắm, mà cậu mới học amx nên tôi nghĩ cậu nên bắt đầu từ mấy thứ đ.giản thôi, lao vào mod mode làm j
Tốt nhất là khỏi làm đi, làm mấy mod này khj chơi vs bot mất tính cân bằng, chơi lan thì ko nói. Tốt nhất là mod súng là hay nhất :) hoặc mấy mode hay như csdm, gungame, classic.
 
Ai có đống sma của melee weapons trong CSO NST ko ạ, em muốn xem cách làm mấy cái xung quanh knife.
 
Ai có đống sma của melee weapons trong CSO NST ko ạ, em muốn xem cách làm mấy cái xung quanh knife.
Mình có của bộ nguyên bộ plugin nst này :1cool_byebye: Nhưng đó là bản cũ, nếu lấy thì pm

- - - Updated - - -

@ngochai: remake lại thì mệt lắm, mà cậu mới học amx nên tôi nghĩ cậu nên bắt đầu từ mấy thứ đ.giản thôi, lao vào mod mode làm j
Tốt nhất là khỏi làm đi, làm mấy mod này khj chơi vs bot mất tính cân bằng, chơi lan thì ko nói. Tốt nhất là mod súng là hay nhất :) hoặc mấy mode hay như csdm, gungame, classic.
Giờ chưa có ý tưởng mới gì bác ạ (mới được có 2 cái: 1 cái mua wpn, 1 cái để cheat) =))
 
Mình có của bộ nguyên bộ plugin nst này :1cool_byebye: Nhưng đó là bản cũ, nếu lấy thì pm

- - - Updated - - -


Giờ chưa có ý tưởng mới gì bác ạ (mới được có 2 cái: 1 cái mua wpn, 1 cái để cheat) =))

Bản nào bác, để em down bản đó luôn, bác cứ ném lên đi :D.
 
mod AVA mà chơi xong mê cmnr hết muốn cs :]]

_buiducduy_111

- - - Updated - - -

mod AVA mà chơi xong mê cmnr hết muốn cs :]]

_buiducduy_111
 
sao ko thấy bài của gacon nhỉ, server đang lag à :|
 
Làm thế nào để làm đc mấy vũ khí mà chuột phải delay cao vd như Xẻng trong CF nhỉ, em chỉ biết chỉnh speed khi giữ chuột giữa 2 lần chém thôi, còn time thì vẫn mặc định của CS, dam ko đúng theo anim =,=, bác nào thông não vs =,=
 
Có ai có CSO-NST cho up dùm cái plugin NST_Knife.amx dùm cái :3cool_embarrassed:
 
Làm thế nào để làm đc mấy vũ khí mà chuột phải delay cao vd như Xẻng trong CF nhỉ, em chỉ biết chỉnh speed khi giữ chuột giữa 2 lần chém thôi, còn time thì vẫn mặc định của CS, dam ko đúng theo anim =,=, bác nào thông não vs =,=

set_task ......... ExecuteHamB(Ham_Weapon_SecondaryAttack, ENT_WPN)

- - - Updated - - -

Spam nốt 2 bài....... hoặc ExecuteHamB(Ham_Weapon_PrimarayAttack, ENT_WPN) (click chuột trái)

- - - Updated - - -

Đừng quên disable damage mặc định nha

- - - Updated - - -

Plugin của ai cũng ko nhớ nữa ~.~

PHP:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <wpn_menu>
#include <zombieplague>
#include <xs>

enum _:Hammer_Anim
{
	anim_idle = 0,
	anim_slash,
	anim_draw,
	anim_movestab,
	anim_idlestab,
	anim_stab,
	anim_drawstab,
	anim_moveslash
}


new g_HasHammer[33],g_iModeStab[33],g_ItemID

new const v_model[64] = "models/ks/v_hammer.mdl"
new const p_model[64] = "models/ks/p_hammer.mdl"

public plugin_init()
{
	register_plugin("Hammer","1.0","teo")
	
	register_event("CurWeapon","Ev_CurWeapon","be","1=1")
	register_event("Damage","Ev_Damage" , "b" ,"2>0")
	register_forward(FM_CmdStart,"Fw_CmdStart")
	register_forward(FM_TraceLine,"Fw_TraceLine")
	register_forward(FM_TraceHull,"Fw_TraceHull")
	register_forward(FM_EmitSound,"Fw_EmitSound")
	register_forward(FM_PlayerPreThink,"Fw_PlayerPreThink")
	register_forward(FM_PlayerPostThink,"Fw_PlayerPostThink")
	
	RegisterHam(Ham_TraceAttack,"player","Fw_TraceAttack")
	RegisterHam(Ham_Spawn,"player","Fw_Spawn_Post",1)
	RegisterHam(Ham_Weapon_SendWeaponAnim,"weapon_knife","Fw_Weapon_SendWeaponAnim")
	RegisterHam(Ham_Weapon_WeaponIdle,"weapon_knife","Fw_Weapon_WeaponIdle")
	RegisterHam(Ham_Weapon_SecondaryAttack,"weapon_knife","Fw_SecondaryAttack_Post",1)
	RegisterHam(Ham_Item_Deploy,"weapon_knife","Fw_Item_Deploy_Post",1)
	
	
	
	g_ItemID = register_melee("Hammer",500)
}

public plugin_precache()
{
	precache_model(v_model)
	precache_model(p_model)
	
	precache_sound("weapons/hammer_swing.wav")
	precache_sound("weapons/hammer_hit_stab.wav")
	precache_sound("weapons/hammer_hit_slash.wav")
	precache_sound("weapons/hammer_draw.wav")
	
}

public client_connect(id)	reset_var(id)
public client_disconnect(id)	reset_var(id)
public Fw_Spawn_Post(id)	reset_var(id)
public zp_user_infected_post(id)	reset_var(id)
public zp_user_humanized_post(id)	reset_var(id)

public Ev_CurWeapon(id)
{

	if(!is_user_alive(id) || zp_get_user_zombie(id))
		return PLUGIN_CONTINUE
		
	new weap = read_data(2)
	
	if(g_HasHammer[id] && weap == CSW_KNIFE)
	{
		set_pev(id,pev_viewmodel2,v_model)
		set_pev(id,pev_weaponmodel2,p_model)
	
	}
	return PLUGIN_CONTINUE
}

public Ev_Damage(id)
{
	if(!is_user_alive(id))
		return PLUGIN_CONTINUE

	new weapon , attacker = get_user_attacker(id , weapon)

	if(!is_user_alive(attacker))
		return PLUGIN_CONTINUE

	if(weapon == CSW_KNIFE && g_HasHammer[attacker] && g_iModeStab[attacker])
	{
		new Float:vec[3]
		new Float:oldvelo[3]
		get_user_velocity(id, oldvelo)
		create_velocity_vector(id , attacker , vec)
		vec[0] += oldvelo[0]
		vec[1] += oldvelo[1]
		set_user_velocity(id , vec)
	}

	return PLUGIN_CONTINUE
}

public Fw_TraceAttack(victim,id,Float:damage)
{
	if(!is_user_connected(victim) || !is_user_alive(id))
		return HAM_IGNORED
	
	if(!g_HasHammer[id] || get_user_weapon(id) != CSW_KNIFE)
		return HAM_IGNORED
		
	SetHamParamFloat(3,damage*8.50)
	
	return HAM_IGNORED
}

public Fw_Weapon_SendWeaponAnim(ent,anim)
{
	static id 
	id = pev(ent,pev_owner)
	if(!pev_valid(ent) || !is_user_connected(id))
		return HAM_IGNORED
		
	if(g_HasHammer[id] && get_pdata_float(ent,47,4)>0.0 && get_user_weapon(id)==CSW_KNIFE)
		return HAM_SUPERCEDE

	return HAM_IGNORED
}

public Fw_Weapon_WeaponIdle(ent)
{
	static id 
	id = pev(ent,pev_owner)
	if(!pev_valid(ent) || !is_user_connected(id))
		return HAM_IGNORED
		
	if(g_HasHammer[id] && get_pdata_float(ent,46,4)>0.0 && get_user_weapon(id)==CSW_KNIFE)
		return HAM_SUPERCEDE

	return HAM_IGNORED
}

public Fw_SecondaryAttack_Post(ent)
{
	static id 
	id = pev(ent,pev_owner)
	if(!pev_valid(ent) || !is_user_connected(id))
		return HAM_IGNORED
		
	if(!g_HasHammer[id])
		return HAM_IGNORED
	
	if(!g_iModeStab[id])	
	{
		set_pdata_float(ent,46,1.30,4)
		set_pdata_float(ent,47,1.30,4)
	}
	else
	{
		set_pdata_float(ent,46,2.30,4)
		set_pdata_float(ent,47,2.30,4)
	}
	set_pdata_float(ent,48,9999999.0,4)
	
	return HAM_IGNORED
}
public Fw_Item_Deploy_Post(ent)
{
	static id
	id = pev(ent,pev_owner)
	if(!pev_valid(ent) || !is_user_connected(id))
		return HAM_IGNORED
		
	if(g_HasHammer[id])
	{	
		if(!g_iModeStab[id])
		{
			set_weapon_anim(id,anim_draw)
			set_pdata_float(ent,46,2.0,4)
			set_pdata_float(ent,47,0.7,4)
		}
		else
		{
			set_weapon_anim(id,anim_drawstab)
			set_pdata_float(ent,46,1.50,4)
			set_pdata_float(ent,47,0.7,4)
		}
	}
	
	
	return HAM_IGNORED
}

public Fw_CmdStart(id,handle,seed)
{
	static iButton,iEnt
	iButton = get_uc(handle,UC_Buttons)
	iEnt = find_ent_by_owner(-1, "weapon_knife", id)
	
	if(get_pdata_float(iEnt,47,4) > 0.0)	return
	
	if(g_HasHammer[id] && get_user_weapon(id)==CSW_KNIFE)
	{
		if(iButton&IN_ATTACK)
		{
			set_uc(handle,UC_Buttons,iButton&~IN_ATTACK)
			if(!g_iModeStab[id])
			{
				set_task(1.2,"task_hammer_attack",id+1000)
				
				set_weapon_anim(id,anim_slash)
				
				set_pdata_float(iEnt,46,2.0,4)
				set_pdata_float(iEnt,47,2.0,4)
			}
			
			else
			{
				
				set_task(0.001,"task_hammer_attack",id+1000)
				
				set_weapon_anim(id,anim_stab)
				
				set_pdata_float(iEnt,46,2.5,4)
				set_pdata_float(iEnt,47,2.5,4)
			}
		}
		else if(iButton&IN_ATTACK2)
		{
			set_uc(handle,UC_Buttons,iButton&~IN_ATTACK2)
			
			if(!g_iModeStab[id])
			{
				g_iModeStab[id] = 1
				
				set_weapon_anim(id,anim_movestab)
				
				set_pdata_float(iEnt,46,1.8,4)
				set_pdata_float(iEnt,47,1.8,4)
				set_pdata_float(iEnt,48,99999.0,4)
				
			}
			else
			{
				g_iModeStab[id] = 0
				
				set_weapon_anim(id,anim_moveslash)
				
				set_pdata_float(iEnt,46,1.8,4)
				set_pdata_float(iEnt,47,1.8,4)
				set_pdata_float(iEnt,48,99999.0,4)
			}
			
		}
	}
}

public task_hammer_attack(taskid)
{
	new id = taskid - 1000
	
	new ent = find_ent_by_owner(-1,"weapon_knife",id)
	
	if(!is_user_alive(id) || !g_HasHammer[id] || get_user_weapon(id) != CSW_KNIFE)
		return
		
	ExecuteHamB(Ham_Weapon_SecondaryAttack,ent)
	
}



public Fw_TraceLine(Float:vector_start[3], Float:vector_end[3], ignored_monster, id, handle)
{
	if (!is_user_alive(id))
		return FMRES_IGNORED
	
	if (get_user_weapon(id) != CSW_KNIFE)
		return FMRES_IGNORED
		
	if( !g_HasHammer[id])
		return HAM_IGNORED;
		
	if (get_pdata_float(get_pdata_cbase(id, 373, 5), 46, 4) <= 0.0)
		return FMRES_IGNORED
	
	new Float:vecStart[3], Float:vecEnd[3], Float:v_angle[3], Float:v_forward[3], Float:view_ofs[3], Float:fOrigin[3]
	pev(id, pev_origin, fOrigin)
	pev(id, pev_view_ofs, view_ofs)
	xs_vec_add(fOrigin, view_ofs, vecStart)
	pev(id, pev_v_angle, v_angle)
	engfunc(EngFunc_MakeVectors, v_angle)
	get_global_vector(GL_v_forward, v_forward)
	
	xs_vec_mul_scalar(v_forward, 130.0, v_forward)
	xs_vec_add(vecStart, v_forward, vecEnd)
	
	engfunc(EngFunc_TraceLine, vecStart, vecEnd, ignored_monster, id, handle)
	
	return FMRES_SUPERCEDE
}

public Fw_TraceHull(Float:vector_start[3], Float:vector_end[3], ignored_monster, hull, id, handle)
{
	if (!is_user_alive(id))
		return FMRES_IGNORED
	
	if (get_user_weapon(id) != CSW_KNIFE)
		return FMRES_IGNORED
		
	if( !g_HasHammer[id])
		return HAM_IGNORED;
	
	if (get_pdata_float(get_pdata_cbase(id, 373, 5), 46, 4) <= 0.0)
		return FMRES_IGNORED
	
	new Float:vecStart[3], Float:vecEnd[3], Float:v_angle[3], Float:v_forward[3], Float:view_ofs[3], Float:fOrigin[3]
	pev(id, pev_origin, fOrigin)
	pev(id, pev_view_ofs, view_ofs)
	xs_vec_add(fOrigin, view_ofs, vecStart)
	pev(id, pev_v_angle, v_angle)
	engfunc(EngFunc_MakeVectors, v_angle)
	get_global_vector(GL_v_forward, v_forward)
	
	xs_vec_mul_scalar(v_forward, 130.0, v_forward)
	xs_vec_add(vecStart, v_forward, vecEnd)
	
	engfunc(EngFunc_TraceHull, vecStart, vecEnd, ignored_monster, hull, id, handle)
	
	return FMRES_SUPERCEDE
}

public Fw_EmitSound(id,channel,const sound[])
{
	if(!is_user_connected(id) || !g_HasHammer[id] || get_user_weapon(id) != CSW_KNIFE)
		return FMRES_IGNORED
		
	if(equal(sound,"weapons/knife_stab.wav"))
	{
		if(!g_iModeStab[id])
			emit_sound(id,CHAN_AUTO,"weapons/hammer_hit_slash.wav",1.0,ATTN_NORM,0,PITCH_NORM)
		else
			emit_sound(id,CHAN_AUTO,"weapons/hammer_hit_stab.wav",1.0,ATTN_NORM,0,PITCH_NORM)
		
	}
	else if(equal(sound,"weapons/knife_hitwall1.wav") || equal(sound,"weapons/knife_slash1.wav") || equal(sound,"weapons/knife_slash2.wav") )
	{
		emit_sound(id,CHAN_AUTO,"weapons/hammer_swing.wav",1.0,ATTN_NORM,0,PITCH_NORM)
	}
	else
	{
		return FMRES_IGNORED
	}
	
	return FMRES_SUPERCEDE
}

public Fw_PlayerPreThink(id)
{
	if(!is_user_connected(id) || !g_HasHammer[id] || get_user_weapon(id) != CSW_KNIFE)
		return FMRES_IGNORED
		
	if(get_pdata_float(find_ent_by_owner(-1,"weapon_knife",id),46,4) > 0.0)
		return FMRES_IGNORED
		
	if(!g_iModeStab[id])
	{
		set_weapon_anim(id,anim_idle)
	}
	else
	{
		set_weapon_anim(id,anim_idlestab)
	}
	return FMRES_IGNORED
}

public Fw_PlayerPostThink(id)
{
	if(!is_user_connected(id) || !g_HasHammer[id] || get_user_weapon(id) != CSW_KNIFE)
		return FMRES_IGNORED
		
	if(!g_iModeStab[id])
	{
		set_pev(id,pev_maxspeed,250.0)
	}
	else
	{
		set_pev(id,pev_maxspeed,100.0)
	}
	return FMRES_IGNORED
}


public melee_selected(id,itemid)
{
	if(itemid != g_ItemID)
		return
		
	g_HasHammer[id] = 1
	reset_user_knife(id)
	
}

reset_var(id)
{
	g_HasHammer[id] = 0
	g_iModeStab[id] = 0
}


stock create_velocity_vector(victim,attacker,Float:velocity[3])
{
	if(!is_user_alive(victim) || !is_user_alive(attacker))
		return 0;

	new Float:vicorigin[3]
	new Float:attorigin[3]
	entity_get_vector(victim   , EV_VEC_origin , vicorigin)
	entity_get_vector(attacker , EV_VEC_origin , attorigin)

	new Float:origin2[3]
	origin2[0] = vicorigin[0] - attorigin[0]
	origin2[1] = vicorigin[1] - attorigin[1]

	new Float:largestnum = 0.0

	if(floatabs(origin2[0])>largestnum) largestnum = floatabs(origin2[0])
	if(floatabs(origin2[1])>largestnum) largestnum = floatabs(origin2[1])

	origin2[0] /= largestnum
	origin2[1] /= largestnum

	velocity[0] = ( origin2[0] * (20.0 * 3000) ) / get_entity_distance(victim , attacker)
	velocity[1] = ( origin2[1] * (20.0 * 3000) ) / get_entity_distance(victim , attacker)
	if(velocity[0] <= 20.0 || velocity[1] <= 20.0)
		velocity[2] = random_float(200.0 , 275.0)

	return 1
}
stock reset_user_knife(id)
{
	if(user_has_weapon(id, CSW_KNIFE))
		ExecuteHamB(Ham_Item_Deploy, find_ent_by_owner(-1, "weapon_knife", id))
	engclient_cmd(id, "weapon_knife")
	emessage_begin(MSG_ONE, get_user_msgid("CurWeapon"), _, id)
	ewrite_byte(1) 
	ewrite_byte(CSW_KNIFE) 
	ewrite_byte(-1)
	emessage_end()
}
stock set_weapon_anim(id, anim)
{
	set_pev(id, pev_weaponanim, anim)
	
	message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, _, id)
	write_byte(anim)
	write_byte(pev(id,pev_body))
	message_end()
}

- - - Updated - - -

sao chưa sửa được ta ........ !!!!
 
[Dproto 0.9.187 (2013)]
- Dạo này có rất nhiều câu hỏi về việc Steam đã Update HLDS làm cho việc sử dụng dproto là không thể, nhưng không sao. Steam Update HLDS thì Crock cũng Update dproto :)

*Đặc Điểm:
- Hỗ trợ HLDS 2013
- Anti Flood UDP (cho HLDS)
- Patch Server (Làm cho Non-Steam, Steam, P47, P48 đều có thể vào được server)

Download: http://cs.rin.ru/forum/viewtopic.php?f=29&t=55986&sid=1cb1b61f47e0b01a8532122074e4fa8d
(Thích thì down ở attachment dưới đây)
 

Attachments

Tưởng bác viết tut gì :v.
 
em mạo muội xin PLUGIN nhảy + bắn + rút súng nhanh như CS 1.1 đc ko ạ
ko thì bác nào chỉ em cách làm plugin đó em tự làm cũng dc :D đam mê sẵn sàng học để tự làm 2 kái đó thôi
Bác nào có lòng hảo tâm thì giúp còn ko thì đừng spam dạng như "sang 1.1 mà chơi"
lý do: CS1.1 h` đang được chuộng lại ở VN nếu có plugin cho 1.6 giống vài điểm với CS11 tiên lượng sẽ đắt khách, CS11 bắn thích nhưng lỗi quá:
- Lỗi bắn ko HS, chỉ tâm vào đầu bắn trúng, tóe máu nhưng nó tính như vào ngực và vai nên mất ít máu, vác hẳn AWP zoom lên kê mồm bắn chết ko HS =))
- Lỗi bật 2 tâm súng 46 (zoom 2 của AWP) khi lia tâm sang ngang sẽ thấy nó lúc đi lúc ko, chuột đi nhưng tâm ko đi (mình dùng DA và sensei)
2 lỗi trên rất là ảnh hưởng vì bắn thường xuyên gặp đó là chưa kể
- Lỗi ném bom xuyên tường

- - - Updated - - -

buny thì đã có cái này nhưng nó chỉ cho map KZ thôi ko có cs_italy và em ko biết cài, cài xong vào game ko chạy đc
Mã:
http://forums.alliedmods.net/showthread.php?p=610329
nhảy bắn đã có cái này nhưng cũng biết cài vào game ko chạy đc
Mã:
http://forums.alliedmods.net/showthread.php?t=138117
cái này hình như là delay súng nhanh thì phải em cũng ko biết cài
Mã:
http://forums.alliedmods.net/showthread.php?p=1193990
 
Có bạn nào có plugin hiện hud máu,ap + hình súng không :1cool_byebye: ngồi mò bộ plug của csred mà tách ra nó cứ khó khó kiểu gì ấy :2cool_sad:
 
em mạo muội xin PLUGIN nhảy + bắn + rút súng nhanh như CS 1.1 đc ko ạ
ko thì bác nào chỉ em cách làm plugin đó em tự làm cũng dc :D đam mê sẵn sàng học để tự làm 2 kái đó thôi
Bác nào có lòng hảo tâm thì giúp còn ko thì đừng spam dạng như "sang 1.1 mà chơi"
lý do: CS1.1 h` đang được chuộng lại ở VN nếu có plugin cho 1.6 giống vài điểm với CS11 tiên lượng sẽ đắt khách, CS11 bắn thích nhưng lỗi quá:
- Lỗi bắn ko HS, chỉ tâm vào đầu bắn trúng, tóe máu nhưng nó tính như vào ngực và vai nên mất ít máu, vác hẳn AWP zoom lên kê mồm bắn chết ko HS =))
- Lỗi bật 2 tâm súng 46 (zoom 2 của AWP) khi lia tâm sang ngang sẽ thấy nó lúc đi lúc ko, chuột đi nhưng tâm ko đi (mình dùng DA và sensei)
<>

http://forums.alliedmods.net/showthread.php?t=138117

Down về, cài rồi chỉnh thông số là đc.
 
Back
Top