
Kod:
#include <amxmodx>
#include <zombieplague>
#include <fakemeta>
#include <reapi>
#pragma semicolon 1
new const tag[]="TeamTR";
new gorunum[MAX_CLIENTS+1];
enum _:Sesler {
T_DEPLOY,T_SLASH1,T_WALL,T_HIT1,T_HIT2,T_HIT3,T_HIT4,T_STAB
};
new const g_szSounds[][] = {
"reknifesound/csgo/deploy.wav",
"reknifesound/csgo/slas1.wav",
"reknifesound/csgo/hitwall.wav",
"reknifesound/csgo/hit1.wav",
"reknifesound/csgo/hit2.wav",
"reknifesound/csgo/hit3.wav",
"reknifesound/csgo/hit4.wav",
"reknifesound/csgo/stab.wav"
};
new bicakmodel[][][]={
{"Ursus Knife","models/bilalgecer47/v_ursus_crimson.mdl"},
{"M9 Bayonet","models/bilalgecer47/v_m9_doppler.mdl"},
{"Karambit","models/bilalgecer47/v_karambit_auto.mdl"},
{"Kelebek","models/bilalgecer47/v_butterfly_marble.mdl"},
{"Flip Knife","models/bilalgecer47/v_flip_lore.mdl"}
};
public plugin_init() {
register_plugin( "reKnife's", "0.1", "bilalgecer47");
new const menuclcmd[][]={
"say /bicak","say /knife"
};
for(new i;i<sizeof(menuclcmd);i++){
register_clcmd(menuclcmd[i],"@anamenu");
}
RegisterHookChain(RG_CBasePlayerWeapon_DefaultDeploy, "@CBasePlayerWeapon_DefaultDeploy_Pre", .post = false);
register_forward(FM_EmitSound, "@EmitSound_Pre", ._post = false);
}
public plugin_precache() {
for(new i = 0; i < sizeof(bicakmodel); i++) {
precache_model(bicakmodel[i][1]);
}
for(new i = 0; i < Sesler; i++) {
precache_sound(g_szSounds[i]);
}
}
@EmitSound_Pre(id, channel, const sample[], Float:volume, Float:attn, flags, pitch) {
if(!is_user_connected(id) || !equal(sample[8], "kni", 3 || get_member(id, m_iTeam) == TEAM_TERRORIST)) {
return FMRES_IGNORED;
}
if(equal(sample[14], "sla", 3)) {
rh_emit_sound2(id, 0, channel, g_szSounds[T_SLASH1], volume, attn, flags, pitch);
return FMRES_SUPERCEDE;
}
else if(equal(sample, "weapons/knife_deploy1.wav")) {
rh_emit_sound2(id, 0, channel, g_szSounds[T_DEPLOY], volume, attn, flags, pitch);
return FMRES_SUPERCEDE;
}
else if(equal(sample[14], "hit", 3)) {
if(sample[17] == 'w') {
rh_emit_sound2(id, 0, channel, g_szSounds[T_WALL], volume, attn, flags, pitch);
}
else {
rh_emit_sound2(id, 0, channel, g_szSounds[random_num(T_HIT1, T_HIT4)], volume, attn, flags, pitch);
}
return FMRES_SUPERCEDE;
}
else if(equal(sample[14], "sta", 3)) {
rh_emit_sound2(id, 0, channel, g_szSounds[T_STAB], volume, attn, flags, pitch);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
@CBasePlayerWeapon_DefaultDeploy_Pre(const pEntity, szViewModel[], szWeaponModel[], iAnim, szAnimExt[], skiplocal) {
if(get_member(pEntity, m_iId) != WEAPON_KNIFE) {
return;
}
new id = get_member(pEntity, m_pPlayer);
if(!zp_get_user_zombie(id)){
SetHookChainArg(2, ATYPE_STRING, bicakmodel[gorunum[id]][1]);
}
}
@anamenu(const id){
new menu = menu_create(fmt("\r%s \w| \yBicak Menu", tag), "@anamenu_devam");
for(new i = 0; i < sizeof(bicakmodel); i++) {
menu_additem(menu, fmt("\r%s \w| \y%s", tag, bicakmodel[i][0]), fmt("%d", i));
}
menu_setprop(menu, MPROP_EXITNAME, fmt("\d%s \w| \yCikis", tag));
menu_display(id, menu);
}
@anamenu_devam(const id, const menu, const item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6];menu_item_getinfo(menu,item,_,data,charsmax(data));
new key = str_to_num(data);
if(!zp_get_user_zombie(id)){
gorunum[id] = key;
rg_remove_item(id,"weapon_knife");rg_give_item(id,"weapon_knife");
}
menu_destroy(menu); return PLUGIN_HANDLED;
})

