Originally Posted by pentakill
(Post 2660713)
So I have this plugin
PHP Code:
#include <amxmodx>
#include <engine>
#include <cstrike>
#define PLUGIN "Knifes JailBreak"
#define VERSION "1.0"
#define AUTHOR "pentakill"
#define MAX_PLAYERS 32+1
new g_iKnife [MAX_PLAYERS];
enum _:Knife
{
Knife_0,
Knife_1,
Knife_2,
Knife_3,
Knife_4,
Knife_5,
Knife_6,
Knife_7
}
new const g_iKnifeNome[Knife][] =
{
"Normal",
"Knife1",
"Knife2",
"Knife3",
"Knife4",
"Knife5",
"Knife6",
"Knife7"
}
new const g_iKnifeModel_v[Knife][] =
{
"models/models_sv/Knifetv_v.mdl",
"models/models_sv/tv_Knifewood_v.mdl",
"models/models_sv/tv_katana_v.mdl",
"models/models_sv/tv_ts_v.mdl",
"models/models_sv/tv_crowbar_v.mdl",
"models/models_sv/tv_asd_v.mdl",
"models/models_sv/tv_nightcrawler_v.mdl",
"models/models_sv/tv_terror_v.mdl"
}
new const g_iKnifeModel_p[Knife][] =
{
"models/p_knife.mdl",
"models/models_sv/tv_Knifewood_p.mdl",
"models/models_sv/tv_katana_p.mdl",
"models/models_sv/tv_ts_p.mdl",
"models/models_sv/tv_crowbar_p.mdl",
"models/models_sv/tv_asd_p.mdl",
"models/models_sv/tv_nightcrawler_p.mdl",
"models/models_sv/tv_terror_p.mdl"
}
new const g_iKnifePrice[Knife] =
{
0,
500,
1000,
1500,
2000,
2500,
3000,
3500
}
enum FF ( <<=1 )
{
FF_0 = 1,
FF_1,
FF_2,
FF_3,
FF_4,
FF_5,
FF_6,
FF_7
}
new FF: g_KnifesBought[MAX_PLAYERS+1];
/* ---------------------------------------------------------*/
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /knifes", "_knifes");
register_event("CurWeapon", "_changeweapon", "be", "1=1");
}
public plugin_precache()
{
for( new i = 0; i < Knife; i++ )
precache_model(g_iKnifeModel_v[i]);
for( new i = 0; i < Knife; i++ )
precache_model(g_iKnifeModel_p[i]);
}
public _knifes(id)
{
new menu = menu_create( "\wMenu Knifes", "_Knifeshandle" );
static item[128], info[4];
for(new i = 0; i < Knife; i++ )
{
if(g_iKnifePrice[i] > 0)
{
if(g_KnifesBought[id] & FF:(1<<i))
{
formatex(item, sizeof(item) - 1, "%s%s", g_iKnife[id] == i ? "\d" : "\w", g_iKnifeNome[i]);
}
else
formatex(item, sizeof(item) - 1, "\y%i Coins \w%s",g_iKnifePrice[i], g_iKnifeNome[i]);
}
else
formatex(item, sizeof(item) - 1, "%s%s", g_iKnife[id] == i ? "\d" : "\w", g_iKnifeNome[i]);
num_to_str(i, info, sizeof(info) - 1);
menu_additem(menu, item, info);
}
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
menu_display( id, menu, 0 );
}
public _Knifeshandle(id, menu, item)
{
if( item == MENU_EXIT || !is_user_connected(id) || !is_user_alive(id))
{
menu_destroy(menu);
return;
}
static _access, info[4], callback;
menu_item_getinfo(menu, item, _access, info, sizeof(info) - 1, _, _, callback);
menu_destroy(menu);
new value = str_to_num(info);
if(g_iKnife[id] == value)
{
_knifes(id);
}
else if(g_KnifesBought[id] & FF:(1<<value))
{
g_iKnife[id] = value
_giveKnife(id, value)
}
else
{
g_iKnife[id] = value
g_KnifesBought[id] |= FF:(1<<value)
_giveKnife(id, value)
}
return;
}
public _giveKnife(id, item)
{
g_iKnife[id] = item
new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo)
if ( Weapon != CSW_KNIFE )
return PLUGIN_HANDLED
new vModel[56],pModel[56]
format(vModel,55, g_iKnifeModel_v[item])
format(pModel,55, g_iKnifeModel_p[item])
entity_set_string(id, EV_SZ_viewmodel, vModel)
entity_set_string(id, EV_SZ_weaponmodel, pModel)
return PLUGIN_HANDLED;
}
public _changeweapon(id)
{
_giveKnife(id, g_iKnife[id])
}
What I'm doing wrong? Only works buying the knife but when they change weapon, the knife disapears.
|