| GhostMan |
01-10-2013 11:50 |
vip
What optimisation suggestions you could give me?
PHP Code:
#include <amxmodx> #include <hamsandwich> #include <cstrike> #include <fakemeta> #include <cs_player_models_api>
#define PLUGIN "VIP Model" #define VERSION "1.0" #define AUTHOR "Gh0stMan"
#define VIP_ACCESS ADMIN_LEVEL_H
new bool:vip_model[33] new bool:def_model[33]
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_Spawn, "player", "client_spawn", 1) register_clcmd("say /model", "vipmodelmenu"); register_dictionary("vipmodel.txt"); }
public plugin_precache() { precache_model("models/player/leet_t_vip/leet_t_vip.mdl") precache_model("models/player/gign_ct_vip/gign_ct_vip.mdl") }
public client_putinserver(id) { vip_model[id] = true def_model[id] = false }
public client_disconnect(id) { vip_model[id] = false def_model[id] = false }
public client_spawn(id) { if(!is_user_connected(id) || !is_user_alive(id)) return if(get_user_flags( id ) & VIP_ACCESS) { if(def_model[id]) { cs_reset_player_model(id) } else if(vip_model[id]) { switch(cs_get_user_team(id)) { case CS_TEAM_T: cs_set_player_model(id, "leet_t_vip") case CS_TEAM_CT: cs_set_player_model(id, "gign_ct_vip") } } } else { cs_reset_player_model(id) } }
public vipmodelmenu(id) { if(get_user_flags( id ) & VIP_ACCESS) { static ItemMenu[64]; formatex(ItemMenu, charsmax( ItemMenu ), "%L", id, "MENU_NAME") new iMenu = menu_create(ItemMenu, "menu_handler"); if (!vip_model[id]) { formatex(ItemMenu, charsmax(ItemMenu), "%L", id, "MENU_VIP") menu_additem(iMenu, ItemMenu, "1") } else if (vip_model[id]) { formatex(ItemMenu, charsmax(ItemMenu), "%L", id, "MENU_VIP_INUSE") menu_additem(iMenu, ItemMenu, "1") } if (!def_model[id]) { formatex(ItemMenu, charsmax(ItemMenu), "%L", id, "MENU_DEF") menu_additem(iMenu, ItemMenu, "2") } else if (def_model[id]) { formatex(ItemMenu, charsmax(ItemMenu), "%L", id, "MENU_DEF_INUSE") menu_additem(iMenu, ItemMenu, "2") } menu_setprop( iMenu, MPROP_EXIT, MEXIT_ALL ); menu_setprop( iMenu, MPROP_NUMBER_COLOR, "\r" ); menu_setprop( iMenu, MPROP_BACKNAME, "Back" ); menu_setprop( iMenu, MPROP_NEXTNAME, "Next" ); menu_setprop( iMenu, MPROP_EXITNAME, "Quit" ); menu_setprop( iMenu, MPROP_PERPAGE, 7 ); menu_display( id, iMenu ); } else { client_print(id, print_chat, "%L", id, "VIP_NOACCESS"); } }
public menu_handler (id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], iName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,5, iName, 63, callback); new key = str_to_num(data); switch(key) { case 1: { if(!vip_model[id]) { client_print(id, print_chat, "%L", id, "VIP_MODEL_NEXT"); } vip_model[id] = true def_model[id] = false } case 2: { if(!def_model[id]) { client_print(id, print_chat, "%L", id, "DEF_MODEL_NEXT"); } vip_model[id] = false def_model[id] = true } } return PLUGIN_HANDLED; }
Code works, but it's a little bit messy :D Especialy "public client_spawn" part :D
|