|
Senior Member
|

05-06-2013
, 14:20
Re: Menu to change knives
|
#9
|
hmmm... I made this quickly... try to understand...
this code is 112 lines
PHP Code:
/* Includes */
#include < amxmodx >
#include < fakemeta_util >
#include < engine >
/* Enums */
enum KnivesData
{
KnifeName[ 32 ],
KnifeModel[ 64 ]
};
/* Arrays */
new Info[ 3 ][ ] =
{
"Knife Change",
"1.0",
"Rejack"
};
new g_iKnives[ ][ KnivesData ] =
{
{ "Knife 1", "models/v_knife1" },
{ "Knife 2", "models/v_knife2" },
{ "Knife 3", "models/v_knife3" },
{ "Knife 4", "models/v_knife4" },
{ "Knife 5", "models/v_knife5" },
{ "Knife 6", "models/v_knife6" },
{ "Knife 7", "models/v_knife7" },
{ "Knife 8", "models/v_knife8" },
{ "Knife 9", "models/v_knife9" },
{ "Knife 10", "models/v_knife10" },
{ "Knife 11", "models/v_knife11" },
{ "Knife 12", "models/v_knife12" },
{ "Knife 13", "models/v_knife13" },
{ "Knife 14", "models/v_knife14" },
{ "Knife 15", "models/v_knife15" },
{ "Knife 16", "models/v_knife16" },
{ "Knife 17", "models/v_knife17" },
{ "Knife 18", "models/v_knife18" },
{ "Knife 19", "models/v_knife19" },
{ "Knife 20", "models/v_knife20" }
};
new Knife[ 33 ];
public plugin_init()
{
register_plugin( Info[ 0 ], Info[ 1 ], Info[ 2 ] );
register_clcmd( "say /knife", "CmdKnife" );
register_event( "CurWeapon", "evCurWeapon", "be", "1=1" );
}
public CmdKnife( client )
{
if ( !is_user_alive( client ) )
return 1;
new Menu = menu_create( "\r[AMXX]\w Knife Changer", "SubKnife" );
new szItem[ 128 ];
for ( new i; i < sizeof g_iKnives; i++ )
{
formatex( szItem, charsmax( szItem ), "%s - \d[\r Sets %s Model \d]", g_iKnives[ i ][ KnifeName ], g_iKnives[ i ][ KnifeName ] );
menu_additem( Menu, szItem );
}
menu_display( client, Menu );
return 0;
}
public SubKnife( client, Menu, Item )
{
if ( Item == MENU_EXIT || !is_user_alive( client ) )
{
menu_destroy( Menu );
return 1;
}
Knife[ client ] = Item;
client_print( client, print_chat, "Your current knife is '%s'", g_iKnives[ Knife[ client ] ][ KnifeName ] );
fm_strip_user_gun( client, _, "weapon_knife" );
fm_give_item( client, "weapon_knife" );
menu_destroy( Menu );
return 1;
}
public evCurWeapon( client )
{
if ( !is_user_alive( client ) || !is_user_connected( client ) )
return 1;
new Trash[ 3 ];
Trash[ 0 ] = get_user_weapon( client, Trash[ 1 ], Trash[ 2 ] );
if ( Trash[ 0 ] == CSW_KNIFE )
entity_set_string( client, EV_SZ_viewmodel, g_iKnives[ Knife[ client ] ][ KnifeModel ] );
return 0;
}
In case you want me to shorten the code... I did...
this code is 51 lines
PHP Code:
#include < amxmodx >
#include < fakemeta_util >
#include < engine >
enum KnivesData{
KnifeName[ 32 ],
KnifeModel[ 64 ]
};
new g_iKnives[ ][ KnivesData ] = {
{ "Knife 1", "models/v_knife1" },{ "Knife 2", "models/v_knife2" },{ "Knife 3", "models/v_knife3" },{ "Knife 4", "models/v_knife4" },{ "Knife 5", "models/v_knife5" },
{ "Knife 6", "models/v_knife6" },{ "Knife 7", "models/v_knife7" },{ "Knife 8", "models/v_knife8" },{ "Knife 9", "models/v_knife9" },{ "Knife 10", "models/v_knife10" },
{ "Knife 11", "models/v_knife11" },{ "Knife 12", "models/v_knife12" },{ "Knife 13", "models/v_knife13" },{ "Knife 14", "models/v_knife14" },{ "Knife 15", "models/v_knife15" },
{ "Knife 16", "models/v_knife16" },{ "Knife 17", "models/v_knife17" }, { "Knife 18", "models/v_knife18" },{ "Knife 19", "models/v_knife19" },{ "Knife 20", "models/v_knife20" }
};
new Knife[ 33 ];
public plugin_init(){
register_plugin( "Knife Changer", "1.0", "Rejack" );
register_clcmd( "say /knife", "CmdKnife" );
register_event( "CurWeapon", "evCurWeapon", "be", "1=1" );
}
public CmdKnife( client ){
if ( !is_user_alive( client ) )
return 1;
new Menu = menu_create( "\r[AMXX]\w Knife Changer", "SubKnife" );
new szItem[ 128 ];
for ( new i; i < sizeof g_iKnives; i++ ){
formatex( szItem, charsmax( szItem ), "%s - \d[\r Sets %s Model \d]", g_iKnives[ i ][ KnifeName ], g_iKnives[ i ][ KnifeName ] );
menu_additem( Menu, szItem );
}
menu_display( client, Menu );
return 0;
}
public SubKnife( client, Menu, Item ){
if ( Item == MENU_EXIT || !is_user_alive( client ) ){
menu_destroy( Menu );
return 1;
}
Knife[ client ] = Item;
client_print( client, print_chat, "Your current knife is '%s'", g_iKnives[ Knife[ client ] ][ KnifeName ] );
fm_strip_user_gun( client, _, "weapon_knife" );
fm_give_item( client, "weapon_knife" );
menu_destroy( Menu );
return 1;
}
public evCurWeapon( client ){
if ( !is_user_alive( client ) || !is_user_connected( client ) )
return 1;
new Trash[ 3 ];Trash[ 0 ] = get_user_weapon( client, Trash[ 1 ], Trash[ 2 ] );
if ( Trash[ 0 ] == CSW_KNIFE )
entity_set_string( client, EV_SZ_viewmodel, g_iKnives[ Knife[ client ] ][ KnifeModel ] );
return 0;
}
__________________
Last edited by yan1255; 05-06-2013 at 14:28.
|
|