Pro Noob, sprawdź
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <vault>
#include <fun>
#define TASK_INTERVAL 4.0
new knife_model[33]
new g_Menu
public plugin_init()
{
register_plugin("Knife Mod","1.0","spunko")
register_event( "Damage", "event_damage", "be" )
register_event("CurWeapon","CurWeapon","be","1=1")
g_Menu = register_menuid("Knife Mod")
register_menucmd(g_Menu, 1023, "knifemenu")
register_clcmd("say /knife", "display_knife")
set_task(480.0, "kmodmsg", 0, _, _, "b")
}
public plugin_precache()
{
precache_model("models/knife-mod/v_butcher.mdl")
precache_model("models/knife-mod/p_butcher.mdl")
precache_model("models/knife-mod/v_machete.mdl")
precache_model("models/knife-mod/p_machete.mdl")
precache_model("models/knife-mod/v_bak.mdl")
precache_model("models/knife-mod/p_bak.mdl")
precache_model("models/knife-mod/v_pocket.mdl")
precache_model("models/knife-mod/p_pocket.mdl")
precache_model("models/v_knife.mdl")
precache_model("models/p_knife.mdl")
}
public display_knife(id)
{
new menuBody[512]
add(menuBody, 511, "rKnife Modw^n^n")
add(menuBody, 511, "1. Machete y(More Damage/Low Speed)w^n")
add(menuBody, 511, "2. Bak Knife y(No Footsteps)w^n")
add(menuBody, 511, "3. Pocket Knife y(High Speed)w^n")
add(menuBody, 511, "4. Butcher Knife y(Low Gravity)w^n")
add(menuBody, 511, "5. Default Knife y(Health Regeneration)w^n^n")
add(menuBody, 511, "0. Exit^n")
new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<9 )
show_menu(id, keys, menuBody, -1, "Knife Mod")
}
public knifemenu(id, key) {
switch(key)
{
case 0: SetKnife(id , 4)
case 1: SetKnife(id , 2)
case 2: SetKnife(id , 3)
case 3: SetKnife(id , 1)
case 4: SetKnife(id , 0)
default: return PLUGIN_HANDLED
}
SaveData(id)
return PLUGIN_HANDLED
}
public SetKnife(id , Knife) {
knife_model[id] = Knife
new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo)
if ( Weapon != CSW_KNIFE )
return PLUGIN_HANDLED
new vModel[56],pModel[56]
switch(Knife)
{
case 0: {
format(vModel,55,"models/v_knife.mdl")
format(pModel,55,"models/p_knife.mdl")
}
case 1: {
format(vModel,55,"models/knife-mod/v_butcher.mdl")
format(pModel,55,"models/knife-mod/p_butcher.mdl")
}
case 2: {
format(vModel,55,"models/knife-mod/v_bak.mdl")
format(pModel,55,"models/knife-mod/p_bak.mdl")
}
case 3: {
format(vModel,55,"models/knife-mod/v_pocket.mdl")
format(pModel,55,"models/knife-mod/p_pocket.mdl")
}
case 4: {
format(vModel,55,"models/knife-mod/v_machete.mdl")
format(pModel,55,"models/knife-mod/p_machete.mdl")
}
}
entity_set_string(id, EV_SZ_viewmodel, vModel)
entity_set_string(id, EV_SZ_weaponmodel, pModel)
return PLUGIN_HANDLED;
}
public client_disconnect(id)
{
if(task_exists(id)) remove_task(id)
}
public kmodmsg()
{
client_print(0,print_chat,"[AMXX] Type /knife to change your knife skins")
}
public client_authorized(id)
{
LoadData(id)
}
SaveData(id)
{
new authid[32]
get_user_authid(id, authid, 31)
new vaultkey[64]
new vaultdata[64]
format(vaultkey, 63, "KMOD_%s", authid)
format(vaultdata, 63, "%d", knife_model[id])
set_vaultdata(vaultkey, vaultdata)
}
LoadData(id)
{
new authid[32]
get_user_authid(id,authid,31)
new vaultkey[64], vaultdata[64]
format(vaultkey, 63, "KMOD_%s", authid)
get_vaultdata(vaultkey, vaultdata, 63)
knife_model[id] = str_to_num(vaultdata)
}