PHP Code:
#include < amxmodx >
#include < cstrike >
#define PLUGIN "Player Model Menu"
#define VERSION "1.0"
#define AUTHOR "Supremache"
#if !defined client_disconnected
#define client_disconnected client_disconnect
#endif
enum _:eModelsInfo {
Flag,
CTModel[32],
TModel[32]
};
new const eModels[][ eModelsInfo ] = {
/* <Access Flags>, <CT Model>, <T Model> */
{ ADMIN_ALL, "CT_1", "TT_1"},
{ ADMIN_ALL, "CT_2", "TT_2"}
}
new g_iModel[33]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd( "say /model", "@OnCustomMenu" );
}
public client_disconnect(id)
{
g_iModel[id] = 0;
}
public plugin_precache()
{
for(new i; i < sizeof( eModels ); i++)
{
PrecacheModel(eModels[i][TModel])
PrecacheModel(eModels[i][CTModel])
}
}
PrecacheModel(szModel[])
{
static szBuffer[128]
formatex(szBuffer, charsmax(szBuffer), "models/player/%s/%s.mdl", szModel, szModel);
precache_model(szBuffer);
}
@OnCustomMenu(id)
{
if(!is_user_alive(id))
{
client_print(id, print_chat, "This is only available to alives.")
return PLUGIN_HANDLED
}
new iMainMenu = menu_create("Select Your Skin:", "@MenuHandler")
for(new i; i < sizeof( eModels ); i++)
{
new szData[128], iFlags = get_user_flags(id);
switch(get_user_team(id))
{
case 1: formatex(szData, charsmax(szData), "%s%s", iFlags & eModels[i][Flag] ? "\w" : "\d", eModels[i][TModel])
case 2: formatex(szData, charsmax(szData), "%s%s", iFlags & eModels[i][Flag] ? "\w" : "\d", eModels[i][CTModel])
}
menu_additem(iMainMenu, szData, "")
}
menu_setprop(iMainMenu, MPROP_BACKNAME, "Previous page")
menu_setprop(iMainMenu, MPROP_NEXTNAME, "Next page")
menu_setprop(iMainMenu, MPROP_EXITNAME, "\rClose")
menu_setprop(iMainMenu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, iMainMenu)
return PLUGIN_HANDLED
}
@MenuHandler(id, iMenu, iItem)
{
if(iItem != MENU_EXIT)
{
new iAccess, iCallBack, szDate[11], iFlags = get_user_flags(id);
menu_item_getinfo(iMenu, iItem, iAccess, szDate, charsmax(szDate), _, _, iCallBack);
if( iFlags & eModels[iItem][Flag] )
{
switch(get_user_team(id))
{
case 1:
{
cs_set_user_model( id, eModels[iItem][TModel]);
client_print(id, print_chat, "You received the model %s.", eModels[iItem][TModel])
}
case 2:
{
cs_set_user_model( id, eModels[iItem][CTModel]);
client_print(id, print_chat, "You received the model %s.", eModels[iItem][CTModel])
}
}
g_iModel[id] = iItem;
}
else client_print(id, print_chat, "You dont have access to select this model.")
}
menu_destroy(iMenu)
return PLUGIN_HANDLED
}