buiducduy111
Dragon Quest
- 3/5/11
- 1,257
- 7
Ko có msg nào xóa đc 2 cái đó đâubạn trẻ suy nghĩ đơn giản quá
![]()
đang nói anim cho nhân vật... 
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Ko có msg nào xóa đc 2 cái đó đâubạn trẻ suy nghĩ đơn giản quá
![]()
đang nói anim cho nhân vật... 
Cái đó cũng ko xài msgđang nói anim cho nhân vật...
![]()

#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <nst_wpn>
#include <xs>
#define PLUGIN "Knife"
#define AUTHOR "Bui duc duy"
#define VERSION "1.0"
enum
{
anim_idle = 0,
anim_slash_1,
anim_slash_2,
anim_draw,
anim_stab,
anim_stab_miss,
anim_slash1_mid,
anim_slash2_mid
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Weapon_SendWeaponAnim,"weapon_knife","Fw_Weapon_SendWeaponAnim")
RegisterHam(Ham_Weapon_SecondaryAttack,"weapon_knife","Fw_SecondaryAttack_Post",1)
RegisterHam(Ham_Weapon_PrimaryAttack,"weapon_knife","Fw_PrimAttack_Post",1)
register_forward(FM_CmdStart,"Fw_CmdStart")
register_forward(FM_TraceLine,"Fw_TraceLine")
register_forward(FM_TraceHull,"Fw_TraceHull")
}
public Fw_SecondaryAttack_Post(ent)
{
static id
id = pev(ent,pev_owner)
if(!pev_valid(ent) || !is_user_connected(id))
return HAM_IGNORED
set_pdata_float(ent,47,nst_wpn_get_float3(id, NST_WPN_DATA_DELAY)+0.5,4)
return HAM_IGNORED
}
public Fw_PrimAttack_Post(ent)
{
static id
id = pev(ent,pev_owner)
if(!pev_valid(ent) || !is_user_connected(id))
return HAM_IGNORED
set_pdata_float(ent,46, 0.3 ,4)
return HAM_IGNORED
}
// set distance
public Fw_TraceLine(Float:vector_start[3], Float:vector_end[3], ignored_monster, id, handle)
{
if (!is_user_connected(id))
return FMRES_IGNORED;
if (!is_user_alive(id))
return FMRES_IGNORED;
if (get_user_weapon(id) != CSW_KNIFE)
return FMRES_IGNORED;
pev(id, pev_v_angle, vector_end)
angle_vector(vector_end, ANGLEVECTOR_FORWARD, vector_end)
xs_vec_mul_scalar(vector_end, nst_wpn_get_float3(id, NST_WPN_DATA_DISTANCE), vector_end)
xs_vec_add(vector_start, vector_end, vector_end)
engfunc(EngFunc_TraceLine, vector_start, vector_end, 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_connected(id))
return FMRES_IGNORED;
if (!is_user_alive(id))
return FMRES_IGNORED;
if (get_user_weapon(id) != CSW_KNIFE)
return FMRES_IGNORED;
pev(id, pev_v_angle, vector_end)
angle_vector(vector_end, ANGLEVECTOR_FORWARD, vector_end)
xs_vec_mul_scalar(vector_end, nst_wpn_get_float3(id, NST_WPN_DATA_DISTANCE), vector_end)
xs_vec_add(vector_start, vector_end, vector_end)
engfunc(EngFunc_TraceHull, vector_start, vector_end, ignored_monster, hull, id, handle)
return FMRES_SUPERCEDE;
}
//
/* Knife Hook delay */
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_user_weapon(id) ==CSW_KNIFE)
{
if (iButton&IN_ATTACK2)
{
set_uc(handle,UC_Buttons,iButton&~IN_ATTACK2)
set_weapon_anim(id, anim_stab)
if (task_exists(id)) remove_task(id)
set_task(nst_wpn_get_float3(id, NST_WPN_DATA_DELAY),"task_knife_attack",id)
set_pdata_float(iEnt, 47, nst_wpn_get_float3(id, NST_WPN_DATA_DELAY)+0.5,4)
}
}
}
public task_knife_attack(id)
{
new ent = find_ent_by_owner(-1,"weapon_knife",id)
if(!is_user_alive(id) || get_user_weapon(id) != CSW_KNIFE) return
ExecuteHamB(Ham_Weapon_SecondaryAttack,ent)
}
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 (get_pdata_float(ent,47, 4)>0.0 && get_user_weapon(id)==CSW_KNIFE) return HAM_SUPERCEDE
return HAM_IGNORED
}
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()
}
/* Knife Hook delay */
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_user_weapon(id) ==CSW_KNIFE)
{
if (iButton&IN_ATTACK2)
{
set_uc(handle,UC_Buttons,iButton&~IN_ATTACK2)
set_weapon_anim(id, anim_stab)
if (task_exists(id)) remove_task(id)
set_task(nst_wpn_get_float3(id, NST_WPN_DATA_DELAY),"task_knife_attack",id)
set_pdata_float(iEnt, 47, nst_wpn_get_float3(id, NST_WPN_DATA_DELAY)+0.5,4)
}
}
}
- CmdStart nó chạy liên tục khi không hoặc có giữ nút. Chú định cho nó chém liên hoàn cước à ?
Dòng này để làm cảnh à bạn trẻset_uc(handle,UC_Buttons,iButton&~IN_ATTACK2)

help me...
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <nst_wpn>
#include <xs>
#define PLUGIN "Knife"
#define AUTHOR "Bui duc duy"
#define VERSION "1.0"
enum
{
anim_idle = 0,
anim_slash_1,
anim_slash_2,
anim_draw,
anim_stab,
anim_stab_miss,
anim_slash1_mid,
anim_slash2_mid
}
new Float:g_knife_attack[33]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Weapon_SendWeaponAnim,"weapon_knife","Fw_Weapon_SendWeaponAnim")
RegisterHam(Ham_Weapon_SecondaryAttack,"weapon_knife","Fw_SecondaryAttack_Post",1)
RegisterHam(Ham_Weapon_PrimaryAttack,"weapon_knife","Fw_PrimAttack_Post",1)
register_forward(FM_CmdStart,"Fw_CmdStart")
register_forward(FM_TraceLine,"Fw_TraceLine")
register_forward(FM_TraceHull,"Fw_TraceHull")
}
public Fw_SecondaryAttack_Post(ent)
{
static id
id = pev(ent,pev_owner)
if(!pev_valid(ent) || !is_user_connected(id))
return HAM_IGNORED
set_pdata_float(ent,47,nst_wpn_get_float3(id, NST_WPN_DATA_DELAY)+0.5,4)
return HAM_IGNORED
}
public Fw_PrimAttack_Post(ent)
{
static id
id = pev(ent,pev_owner)
if(!pev_valid(ent) || !is_user_connected(id))
return HAM_IGNORED
set_pdata_float(ent,46, 0.3 ,4)
return HAM_IGNORED
}
// set distance
public Fw_TraceLine(Float:vector_start[3], Float:vector_end[3], ignored_monster, id, handle)
{
if (!is_user_connected(id))
return FMRES_IGNORED;
if (!is_user_alive(id))
return FMRES_IGNORED;
if (get_user_weapon(id) != CSW_KNIFE)
return FMRES_IGNORED;
pev(id, pev_v_angle, vector_end)
angle_vector(vector_end, ANGLEVECTOR_FORWARD, vector_end)
xs_vec_mul_scalar(vector_end, nst_wpn_get_float3(id, NST_WPN_DATA_DISTANCE), vector_end)
xs_vec_add(vector_start, vector_end, vector_end)
engfunc(EngFunc_TraceLine, vector_start, vector_end, 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_connected(id))
return FMRES_IGNORED;
if (!is_user_alive(id))
return FMRES_IGNORED;
if (get_user_weapon(id) != CSW_KNIFE)
return FMRES_IGNORED;
pev(id, pev_v_angle, vector_end)
angle_vector(vector_end, ANGLEVECTOR_FORWARD, vector_end)
xs_vec_mul_scalar(vector_end, nst_wpn_get_float3(id, NST_WPN_DATA_DISTANCE), vector_end)
xs_vec_add(vector_start, vector_end, vector_end)
engfunc(EngFunc_TraceHull, vector_start, vector_end, ignored_monster, hull, id, handle)
return FMRES_SUPERCEDE;
}
//
/* Knife Hook delay */
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_user_weapon(id) ==CSW_KNIFE)
{
if (iButton&IN_ATTACK2)
{
if (get_gametime() - g_knife_attack[id] < nst_wpn_get_float3(id, NST_WPN_DATA_DELAY)+1.0) return
g_knife_attack[id] = get_gametime()
//set_uc(handle,UC_Buttons,iButton&~IN_ATTACK2)
set_weapon_anim(id, anim_stab)
if (task_exists(id)) remove_task(id)
set_task(nst_wpn_get_float3(id, NST_WPN_DATA_DELAY),"task_knife_attack",id)
set_pdata_float(iEnt, 47, nst_wpn_get_float3(id, NST_WPN_DATA_DELAY)+0.5,4)
}
}
}
public task_knife_attack(id)
{
new ent = find_ent_by_owner(-1,"weapon_knife",id)
if(!is_user_alive(id) || get_user_weapon(id) != CSW_KNIFE) return
ExecuteHamB(Ham_Weapon_SecondaryAttack,ent)
}
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 (get_gametime() - g_knife_attack[id] < nst_wpn_get_float3(id, NST_WPN_DATA_DELAY)+1.0 && get_user_weapon(id)==CSW_KNIFE) return HAM_SUPERCEDE
return HAM_IGNORED
}
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()
}
Đề nghị bạn trẻ tự tìm hiểu chứ đừng có lên đây kêu gào, nếu cứ thế này thì trình độ sẽ kém đi chứ chả lên đc đâu.P/S: EM nghĩ code này đã hoàn hảo nhất rồi mà thỉnh thoảng nó vẫn lỗihelp me...
Lỗi: Chém gió thì không sao nhưng khi đang chém gió mà di cái tâm vào tường hay vào người thằng nào thì lại bắt đầu chạy anim stab mới![]()
Đề nghị bạn trẻ tự tìm hiểu chứ đừng có lên đây kêu gào, nếu cứ thế này thì trình độ sẽ kém đi chứ chả lên đc đâu.

Tôi nói nghiêm túc chứ không nói đùa đâu.CHết... thiếu chữ
@DIAS![]()
Đó là hàng cũ, xài cái này này:@kungfulon: bác fix cái link này đi
Đó là hàng cũ, xài cái này này:
http://forums.gamevn.com/showpost.php?p=18644614?p=18644614
Block nút cũ thì nó mới ko chém liên tục, ngu thế@kungfulon:
- cái đó block nút cũ. làm gì là delay

Thế ko thấy nó check IN_ATTACK2 àThằng buiducduy nó tạo ra attack mới mà. CmdStart chạy liên tục thì ko phải nó set task liên tục để chạy code à
![]()
