Senior Member
Join Date: Jun 2014
Location: Constanta, Romania
|
03-12-2015
, 12:31
Setting models to a player
|
#1
|
So I've got this:
Spoiler
PHP Code:
#include < amxmodx >
#include < cstrike >
#include < fakemeta >
#pragma semicolon 1
new PLUG[] = "Player model menu";
new VERS[] = "1.0";
new AUTH[] = "EpicKiller";
// MODELS
static const DAVID_BLACK[] = "models/player/vip_models_menu/david_black.mdl";
static const DEATH[] = "models/player/vip_models_menu/death.mdl";
static const JOKER[] = "models/player/vip_models_menu/joker.mdl";
static const BATMAN[] = "models/player/vip_models_menu/batman.mdl";
static const DAVID_WHITE[] = "models/player/vip_models_menu/david_white.mdl";
static const REDOR[] = "models/player/vip_models_menu/redor.mdl";
new bool:HasCustomModel[33];
new gPlayerModel[33][32];
public plugin_init()
{
register_plugin(PLUG, VERS, AUTH);
register_forward(FM_SetClientKeyValue, "cmdSetClientKeyValue");
register_clcmd("say /models", "cmdModels");
register_clcmd("say_team /models", "cmdModels");
}
public plugin_precache()
{
precache_model(DAVID_BLACK);
precache_model(DEATH);
precache_model(JOKER);
precache_model(BATMAN);
precache_model(DAVID_WHITE);
precache_model(REDOR);
}
public cmdSetClientKeyValue(id, const infobuffer[], const key[])
{
if(HasCustomModel[id] && equal(key, "model"))
{
new sCurModel[32];
get_skin(id, sCurModel, charsmax(sCurModel));
if(!equal(sCurModel, gPlayerModel[id]))
set_skin(id, gPlayerModel[id]);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public cmdModels(id)
{
const sFlags = ADMIN_LEVEL_F | ADMIN_LEVEL_G | ADMIN_LEVEL_H;
if((get_user_flags(id) & sFlags) == sFlags)
ModelsMenu(id);
else
{
color_print(id, ".g[.vSURF.g].x Nu ai acces la aceasta comanda!");
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public ModelsMenu(id)
{
new mm = menu_create("\rMODELS", "mm_handler");
menu_additem(mm, "\gDavid Black", "0");
menu_additem(mm, "\gDeath", "1");
menu_additem(mm, "\gJoker", "2");
menu_additem(mm, "\gBatman", "3");
menu_additem(mm, "\gDavid White", "4");
menu_additem(mm, "\gRedor", "5");
menu_additem(mm, "\gDefault", "6");
menu_setprop(mm, MPROP_EXIT, MEXIT_ALL);
menu_display(id, mm, 0);
}
public mm_handler(id, mm, item)
{
if(!is_user_alive(id) || is_user_spectator(id))
{
menu_destroy(mm);
return PLUGIN_HANDLED;
}
if(item == MENU_EXIT)
{
menu_destroy(mm);
return PLUGIN_HANDLED;
}
switch(item)
{
case 0:
{
set_skin(id, DAVID_BLACK);
color_print(id, ".g[.vSURF.g].x Ai ales modelul.v David Black.x!");
}
case 1:
{
set_skin(id, DEATH);
color_print(id, ".g[.vSURF.g].x Ai ales modelul.v Death.x!");
}
case 2:
{
set_skin(id, JOKER);
color_print(id, ".g[.vSURF.g].x Ai ales modelul.v Joker.x!");
}
case 3:
{
set_skin(id, BATMAN);
color_print(id, ".g[.vSURF.g].x Ai ales modelul.v Batman.x!");
}
case 4:
{
set_skin(id, DAVID_WHITE);
color_print(id, ".g[.vSURF.g].x Ai ales modelul.v David White.x!");
}
case 5:
{
set_skin(id, REDOR);
color_print(id, ".g[.vSURF.g].x Ai ales modelul.v Redor.x!");
}
case 6:
{
reset_skin(id);
color_print(id, ".g[.vSURF.g].x Ai ales modelul default!");
}
}
menu_destroy(mm);
return PLUGIN_HANDLED;
}
stock is_user_spectator(id)
{
new CsTeams:sTeam = cs_get_user_team(id);
switch(sTeam)
{
case CS_TEAM_SPECTATOR:
return 1;
case CS_TEAM_UNASSIGNED:
return 1;
}
return 0;
}
stock set_skin(id, const modelname[])
{
engfunc(EngFunc_SetClientKeyValue, id, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", modelname);
HasCustomModel[id] = true;
}
stock reset_skin(id)
{
HasCustomModel[id] = false;
dllfunc(DLLFunc_ClientUserInfoChanged, id, engfunc(EngFunc_GetInfoKeyBuffer, id));
}
stock get_skin(id, model[], len)
engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", model, len);
stock color_print(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, ".v", "^4"); /* verde */
replace_all(msg, 190, ".g", "^1"); /* galben */
replace_all(msg, 190, ".e", "^3"); /* ct=albastru | t=rosu */
replace_all(msg, 190, ".x", "^0"); /* normal-echipa */
if(id)players[0] = id; else get_players(players, count, "ch");
{
for(new i = 0; i < count; i++)
{
if(is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
Apparently, the models won't get set. Where am I mistaking?
__________________
~ Swiftly and with style ~
|
|