Привет. В общем, при выборе шапки, она изменяется только после смерти, необходимо чтобы сразу менялась. И еще, в редких случаях при коннекте каким-то образом у игрока ставится случайная шапка. Кто нибудь исправьте, пожалуйста. Если необходимо, заплачу
Код:
#include < amxmodx >
#include < engine >
#include < cstrike >
#include < hamsandwich >
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "OverGame"
#define CHAT_PREFIX "!g[Шапки]"
#define MENU_PREFIX "\d[Шапки]\r"
#define PLUGIN_HAT 14
new UserHat [ 64 ], g_iHats [ 33 ];
new const g_SetHats[][] =
{
"",
"models/knife_hats/angel2.mdl",
"models/knife_hats/awesome.mdl",
"models/knife_hats/c_pony_hat.mdl",
"models/knife_hats/c_sonic_head_v2.mdl",
"models/knife_hats/cowboy.mdl",
"models/knife_hats/devil.mdl",
"models/knife_hats/hellokitty.mdl",
"models/knife_hats/hockey_mask.mdl",
"models/knife_hats/jamacahat2.mdl",
"models/knife_hats/pbbears.mdl",
"models/knife_hats/prof_genki.mdl",
"models/knife_hats/supermancape.mdl",
"models/knife_hats/t_sonic_head_v2.mdl",
"models/knife_hats/xmas_cap.mdl"
};
public plugin_init ( )
{
register_event( "TeamInfo", "EventTeamInfo", "a" );
RegisterHam( Ham_Spawn, "player", "FwdHamPlayerSpawn", 1 );
register_clcmd ( "say /hats", "open_hats" )
register_clcmd ( "say_team /hats", "open_hats" )
}
public FwdHamPlayerSpawn ( const id )
{
if( is_user_alive ( id ) ) {
new iEntity = g_iHats [ id ];
if( !is_valid_ent ( iEntity ) ) {
if( !( iEntity = g_iHats [ id ] = create_entity ( "info_target" ) ) )
return;
entity_set_model( iEntity, g_SetHats [ UserHat [ id ] ] );
entity_set_int( iEntity, EV_INT_movetype, MOVETYPE_FOLLOW );
entity_set_edict( iEntity, EV_ENT_aiment, id );
}
}
}
public EventTeamInfo ( )
{
new id = read_data( 1 ), iEntity = g_iHats[ id ];
if( !is_valid_ent( iEntity ) ) {
if( iEntity > 0 )
g_iHats[ id ] = 0;
return;
}
entity_set_model( iEntity, g_SetHats [ UserHat [ id ] ] );
}
public client_disconnect( id )
{
if( is_valid_ent( g_iHats[ id ] ) )
remove_entity( g_iHats[ id ] );
}
public plugin_precache ( )
{
create_entity("env_rain")
for ( new i = 1; i <= PLUGIN_HAT; i++ )
precache_model( g_SetHats [ i ] );
}
public open_hats ( id )
{
static s_MenuItem [ 255 ]
formatex ( s_MenuItem, charsmax ( s_MenuItem ), "%s Меню шапок", MENU_PREFIX )
new menu = menu_create ( s_MenuItem, "ohats_hand" )
menu_additem ( menu, "\rСнять шапку", "0" )
menu_additem ( menu, "\wАнгел", "1" )
menu_additem ( menu, "\wУгарный Смайлик", "2" )
menu_additem ( menu, "\wРозовый Пони", "3" )
menu_additem ( menu, "\wСоник", "4" )
menu_additem ( menu, "\wКовбой", "5" )
menu_additem ( menu, "\wЧерт", "6" )
menu_additem ( menu, "\wКотенок", "7" )
menu_additem ( menu, "\wХоккейная маска", "8" )
menu_additem ( menu, "\wЯмайка", "9" )
menu_additem ( menu, "\wЗайка", "10" )
menu_additem ( menu, "\wПрофессор Генки", "11" )
menu_additem ( menu, "\wСупермэн", "12" )
menu_additem ( menu, "\wНаклз", "13" )
menu_additem ( menu, "\wОлень", "14" )
menu_setprop ( menu, MPROP_BACKNAME, "Назад" )
menu_setprop ( menu, MPROP_NEXTNAME, "Далее" )
menu_setprop ( menu, MPROP_EXITNAME, "Выход" )
menu_display ( id, menu, 0 )
return PLUGIN_HANDLED
}
public ohats_hand ( id, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
return PLUGIN_HANDLED
}
new data [ 6 ], iName [ 64 ], access, callback
menu_item_getinfo ( menu, item, access, data, 5, iName, 63, callback )
new key = str_to_num ( data )
UserHat [ id ] = key
return PLUGIN_HANDLED
}
hats1.sma ( 3,79 килобайт )
Кол-во скачиваний: 3
Отредактировал: lokker, - 19.11.2015, 16:23