PHP Code:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
new const CT_1[] = "CT_1";
new const CT_MODEL_1[] = "models/player/Admin_Skin/Ct/wesker/wesker.mdl";
new const CT_2[] = "CT_2";
new const CT_MODEL_2[] = "models/player/Admin_Skin/Ct/smith/smith.mdl";
new const CT_3[] = "CT_3";
new const CT_MODEL_3[] = "models/player/Admin_Skin/Ct/agent/agent.mdl";
new const CT_4[] = "CT_4";
new const CT_MODEL_4[] = "models/player/Admin_Skin/Ct/crysis_white/crysis_white.mdl";
new const TT_1[] = "TT_1";
new const TT_MODEL_1[] = "models/player/Admin_Skin/Trr/Crysis_Black/Crysis_Black.mdl";
new const TT_2[] = "TT_2";
new const TT_MODEL_2[] = "models/player/Admin_Skin/Trr/DEvil_Macy/DEvil_Macy.mdl";
new const TT_3[] = "TT_3";
new const TT_MODEL_3[] = "models/player/Admin_Skin/Trr/Ukranian/Ukranian.mdl";
new const TT_4[] = "TT_4";
new const TT_MODEL_4[] = "models/player/Admin_Skin/Trr/Nero/Nero.mdl";
new player_model[33][32];
new bool:g_model[33];
#define PLUGIN "Admin Skin Menu"
#define VERSION "3.0"
#define AUTHOR "AlferD"
public plugin_precache() {
precache_model(TT_MODEL_1)
precache_model(TT_MODEL_2)
precache_model(TT_MODEL_3)
precache_model(TT_MODEL_4)
precache_model(CT_MODEL_1)
precache_model(CT_MODEL_2)
precache_model(CT_MODEL_3)
precache_model(CT_MODEL_4)
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue")
register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged")
register_clcmd( "say /askin", "Skins_Menu", ADMIN_CHAT );
}
public Skins_Menu(id) {
new menu = menu_create("Select Your Skin", "skin_menu")
if(cs_get_user_team(id) & CS_TEAM_CT) {
menu_additem( menu, "Wesker", "1", ADMIN_CHAT );
menu_additem( menu, "Smith", "2", ADMIN_CHAT );
menu_additem( menu, "Agent", "3", ADMIN_CHAT );
menu_additem( menu, "Crysis White", "4", ADMIN_CHAT );
}
else if(cs_get_user_team(id) & CS_TEAM_T) {
menu_additem( menu, "Crysis Black", "5", ADMIN_CHAT );
menu_additem( menu, "DEvil_Macy", "6", ADMIN_CHAT );
menu_additem( menu, "Ukranian", "7", ADMIN_CHAT );
menu_additem( menu, "Nero", "8", ADMIN_CHAT );
}
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
menu_display( id, menu, 0 );
}
public skin_menu(id, menu, item)
{
if (item == MENU_EXIT) {
menu_destroy(menu)
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
if(!is_user_alive(id))
return PLUGIN_HANDLED
switch(key) {
case 1: {
Model_CT_1(id)
}
case 2: {
Model_CT_2(id)
}
case 3: {
Model_CT_3(id)
}
case 4: {
Model_CT_4(id)
}
case 5: {
Model_TT_1(id)
}
case 6: {
Model_TT_2(id)
}
case 7: {
Model_TT_3(id)
}
case 8: {
Model_TT_4(id)
}
}
return PLUGIN_CONTINUE;
}
public Model_CT_1(id) {
copy(player_model[id], 31, CT_1)
new currentmodel[32];
fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);
if(!equal(currentmodel, player_model[id])) {
fm_set_user_model(id, player_model[id])
}
}
public Model_CT_2(id) {
copy(player_model[id], 31, CT_2)
new currentmodel[32];
fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);
if(!equal(currentmodel, player_model[id])) {
fm_set_user_model(id, player_model[id])
}
}
public Model_CT_3(id) {
copy(player_model[id], 31, CT_3)
new currentmodel[32];
fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);
if(!equal(currentmodel, player_model[id])) {
fm_set_user_model(id, player_model[id])
}
}
public Model_CT_4(id) {
copy(player_model[id], 31, CT_4)
new currentmodel[32];
fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);
if(!equal(currentmodel, player_model[id])) {
fm_set_user_model(id, player_model[id])
}
}
public Model_TT_1(id) {
copy(player_model[id], 31, TT_1)
new currentmodel[32];
fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);
if(!equal(currentmodel, player_model[id])) {
fm_set_user_model(id, player_model[id])
}
}
public Model_TT_2(id) {
copy(player_model[id], 31, TT_2)
new currentmodel[32];
fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);
if(!equal(currentmodel, player_model[id])) {
fm_set_user_model(id, player_model[id])
}
}
public Model_TT_3(id) {
copy(player_model[id], 31, TT_3)
new currentmodel[32];
fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);
if(!equal(currentmodel, player_model[id])) {
fm_set_user_model(id, player_model[id])
}
}
public Model_TT_4(id) {
copy(player_model[id], 31, TT_4)
new currentmodel[32];
fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);
if(!equal(currentmodel, player_model[id])) {
fm_set_user_model(id, player_model[id])
}
}
public fw_SetClientKeyValue(id, infobuffer, key[], value[]) {
if (g_model[id] && equal(key, "model"))
return FMRES_SUPERCEDE
return FMRES_IGNORED
}
public fw_ClientUserInfoChanged(id, infobuffer) {
if (!g_model[id])
return FMRES_IGNORED
new currentmodel[32];
fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);
if(!equal(currentmodel, player_model[id]))
fm_set_user_model(id, player_model[id])
return FMRES_IGNORED
}
stock fm_set_user_model(player, modelname[]) {
engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", modelname)
g_model[player] = true
}
stock fm_get_user_model(player, model[], len) {
engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", model, len)
}
stock fm_reset_user_model(player) {
g_model[player] = false
dllfunc(DLLFunc_ClientUserInfoChanged, player, engfunc(EngFunc_GetInfoKeyBuffer, player))
}