Eklentideki bıçaklara sabit hasar özelliği ekleyebilir misiniz her bıçağın hasarı farklı olacak şekilde
Bıçak Menü Düzenleme
)

#include <amxmodx>
#include <reapi>
native get_user_level(id);
new gorunum[MAX_CLIENTS+1];
new bicakmodel[][][]={
{"Default","models/v_knife.mdl", "models/p_knife.mdl", 0},
{"Sheep Sword","models/v_chevalbec1.mdl", "models/p_chevalbec1.mdl", 10},
{"Dragon Knife","models/v_chevalbec2.mdl", "models/p_chevalbec2.mdl", 20},
{"Vampire Sword","models/v_chevalbecc3.mdl", "models/p_chevalbec3.mdl", 30},
{"FrostMourne","models/v_chevalbec4.mdl", "models/p_chevalbec4.mdl", 40},
{"Fire Axe","models/v_chevalbec5.mdl", "models/p_chevalbec5.mdl", 50},
{"Double Sword","models/v_chevalbec6.mdl", "models/p_chevalbec6.mdl", 60},
{"Ice Axe","models/v_chevalbec7.mdl", "models/p_chevalbec7.mdl", 70},
{"Flame Sword","models/v_xtreme_knife3.mdl", "models/p_xtreme_knife3.mdl", 75}
};
public plugin_init() {
register_plugin( "Bicak Menu", "0.1", "bilalgecer47");
new const menuclcmd[][]={
"say /bicak","knife"
};
for(new i;i<sizeof(menuclcmd);i++){
register_clcmd(menuclcmd[i],"@anamenu");
}
RegisterHookChain(RG_CBasePlayerWeapon_DefaultDeploy, "@CBasePlayerWeapon_DefaultDeploy_Pre", .post = false);
RegisterHookChain(RG_CBasePlayer_TakeDamage, "CBasePlayer_TakeDamage", .post = false);
}
public plugin_precache() {
for(new i = 0; i < sizeof(bicakmodel); i++) {
precache_model(bicakmodel[i][1][0]);
precache_model(bicakmodel[i][2][0]);
}
}
@CBasePlayerWeapon_DefaultDeploy_Pre(const pEntity, szViewModel[], szWeaponModel[], iAnim, szAnimExt[], skiplocal) {
if(get_member(pEntity, m_iId) != WEAPON_KNIFE) {
return;
}
new pPlayer = get_member(pEntity, m_pPlayer);
SetHookChainArg(2, ATYPE_STRING, bicakmodel[gorunum[pPlayer]][1][0]);
SetHookChainArg(3, ATYPE_STRING, bicakmodel[gorunum[pPlayer]][2][0]);
}
public CBasePlayer_TakeDamage(const iVictim, pevInflictor, pevAttacker, Float:flDamage, bitsDamageType)
{
if(iVictim == pevAttacker) return HC_CONTINUE;
if(pevInflictor != pevAttacker) return HC_CONTINUE;
if(!is_user_connected(pevAttacker)) return HC_CONTINUE; //non-player damage
if(WeaponIdType:get_member(get_member(pevAttacker, m_pActiveItem), m_iId) != WEAPON_KNIFE) return HC_CONTINUE;
switch(gorunum[pevAttacker])
{
//case 0: SetHookChainArg(4, ATYPE_FLOAT, 100.0);
case 1: SetHookChainArg(4, ATYPE_FLOAT, 110.0);
case 2: SetHookChainArg(4, ATYPE_FLOAT, 120.0);
case 3: SetHookChainArg(4, ATYPE_FLOAT, 130.0);
case 4: SetHookChainArg(4, ATYPE_FLOAT, 140.0);
case 5: SetHookChainArg(4, ATYPE_FLOAT, 150.0);
case 6: SetHookChainArg(4, ATYPE_FLOAT, 160.0);
case 7: SetHookChainArg(4, ATYPE_FLOAT, 170.0);
case 8: SetHookChainArg(4, ATYPE_FLOAT, 180.0);
}
return HC_CONTINUE;
}
@anamenu(const id)
{
new TeamName:iTeam = get_member(id, m_iTeam);
if(iTeam != TEAM_CT)
{
client_print_color(id, id, "^4[ ^1KNIFE ^4] ^3Bicak menüye yalnızca ^4Arayanlar ^3girebilir");
client_cmd(id, "spk %s", "events/friend_died.wav");
return;
}
new menu = menu_create(fmt("\rBICAK MENU"), "@anamenu_devam");
for(new i = 0; i < sizeof(bicakmodel); i++) {
menu_additem(menu, fmt("\r[ \w%s \r] \r[ Level : %i \r]", bicakmodel[i][0][0], bicakmodel[i][3][0]), fmt("%d", i));
}
menu_setprop(menu, MPROP_PERPAGE, 0);
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(get_user_level(id) >= bicakmodel[key][3][0]) {
gorunum[id] = key;
rg_remove_item(id,"weapon_knife");rg_give_item(id,"weapon_knife");
}
else {
client_print_color(id, id, "^4[ ^1KNIFE ^4] ^3Levelin yetersiz");
client_cmd(id, "spk %s", "events/friend_died.wav");
return PLUGIN_HANDLED;
}
menu_destroy(menu); return PLUGIN_HANDLED;
} case 1: SetHookChainArg(4, ATYPE_FLOAT, 110.0);
case 2: SetHookChainArg(4, ATYPE_FLOAT, 120.0);
case 3: SetHookChainArg(4, ATYPE_FLOAT, 130.0);
case 4: SetHookChainArg(4, ATYPE_FLOAT, 140.0);
case 5: SetHookChainArg(4, ATYPE_FLOAT, 150.0);
case 6: SetHookChainArg(4, ATYPE_FLOAT, 160.0);
case 7: SetHookChainArg(4, ATYPE_FLOAT, 170.0);
case 8: SetHookChainArg(4, ATYPE_FLOAT, 180.0);