Поставил на сервере плагин steam_models.amxx с начала всё работало нормально, потом захожу на сервер и не могу понять что происходит.
На ментовской респе стоят 2 тера ,оба Steam и модели у них простые, как мне сказали такая фигня происходит когда автобалансом перекидывает, и даже если игроки находятся в положенной команде, то модель у них простая.
Глюк произошёл на заполненном сервере.
Код:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <amxmisc>
#pragma semicolon 1
#define MAX_PLAYERS 32
#define BIT_VALID(%1,%2) ((%1) & (1 << ((%2) - 1)))
#define BIT_ADD(%1,%2) ((%1) |= (1 << ((%2) - 1)))
#define BIT_SUB(%1,%2) ((%1) &= ~(1 << ((%2) - 1)))
#define BIT_NOT_VALID(%1,%2) (~(%1) & (1 << ((%2) - 1)))
new g_iBitClientAccess, g_iBitCustomModel;
///модели для steam игроков, плагин работает только с dproto.
new const model_CT[] = "steamct"; // Название модели для CT
new const model_TE[] = "steamte"; // Название модели для T
public plugin_init()
{
///////original code///////
// register_plugin("Lady Models", "0.1b", "Freedo.m");
///////original code///////
register_plugin("Steam Models", "0.1b+mod.leg", "Freedo.m");
RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1);
register_forward(FM_SetClientKeyValue, "FM_SetClientKeyValue_Pre", 0);
}
public plugin_precache()
{
//// Author ill ?)
new buffer[128];
formatex(buffer, charsmax(buffer), "models/player/stct/steamct.mdl", model_CT, model_CT);
precache_model(buffer);
formatex(buffer, charsmax(buffer), "models/player/stte/steamte.mdl", model_TE, model_TE);
precache_model(buffer);
}
public client_putinserver(id)
{
if (is_user_steam(id))
BIT_ADD(g_iBitClientAccess, id);
}
public client_disconnect(id)
{
BIT_SUB(g_iBitClientAccess, id);
BIT_SUB(g_iBitCustomModel, id);
}
public Ham_PlayerSpawn_Post(id)
{
if(BIT_VALID(g_iBitClientAccess, id) && is_user_alive(id))
{
switch(cs_get_user_team(id))
{
case CS_TEAM_T: fm_cs_set_user_model(id, model_TE);
case CS_TEAM_CT: fm_cs_set_user_model(id, model_CT);
}
}
}
new g_szPlayerModel[MAX_PLAYERS + 1][32];
public FM_SetClientKeyValue_Pre(id, const szInfobuffer[], const szKey[])
{
if(BIT_VALID(g_iBitCustomModel, id) && equal(szKey, "model"))
{
static szCurrentModel[32];
fm_cs_get_user_model(id, szCurrentModel, charsmax(szCurrentModel));
if(!equal(szCurrentModel, g_szPlayerModel[id])) fm_cs_set_user_model(id, g_szPlayerModel[id]);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
stock fm_cs_get_user_model(id, szModel[], szLen) engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", szModel, szLen);
stock fm_cs_set_user_model(id, const szModelName[])
{
engfunc(EngFunc_SetClientKeyValue, id, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", szModelName);
copy(g_szPlayerModel[id], charsmax(g_szPlayerModel[]), szModelName);
BIT_ADD(g_iBitCustomModel, id);
}
stock fm_cs_reset_user_model(id)
{
BIT_SUB(g_iBitCustomModel, id);
dllfunc(DLLFunc_ClientUserInfoChanged, id, engfunc(EngFunc_GetInfoKeyBuffer, id));
}
stock bool:is_user_steam(id)
{
// Author Sh0oter
static dp_pointer;
if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id);
server_exec();
return (get_pcvar_num(dp_pointer) == 2) ? true : false ;
}
return false;
}
Build 6153
[ 1] dproto_EF RUN - dproto_i386.so v0.9.391 ini Start Never
[ 2] AMX Mod X RUN - amxmodx_mm_i386. v1.8.2 ini Start ANY
[ 3] VoiceTranscoder RUN - vtc.so v80 ini ANY ANY
[ 4] Cust. Flood Fix RUN - cf_fix_mm_i386.s v1.1 ini Start Never
[ 5] ProcessCmds RUN - processcmds_mm_i v1.0.2 ini Start Never
[ 6] WHBlocker RUN - whblocker_mm_i38 v1.5.370 ini Chlvl ANY
[ 7] NetBufExtender RUN - nbex.so v1.0 ini ANY Never
[ 8] UserInfoNetOpti RUN - uino.so v1.0 ini ANY Never
[ 9] LocalizeBug Fix RUN - localizebugfix_m v2.3 ini Start Never
[10] MySQL RUN - mysql_amxx_i386. v1.8.2 pl2 ANY ANY
[11] FakeMeta RUN - fakemeta_amxx_i3 v1.8.2 pl2 ANY ANY
[12] Fun RUN - fun_amxx_i386.so v1.8.2 pl2 ANY ANY
[13] CStrike RUN - cstrike_amxx_i38 v1.8.2 pl2 ANY ANY
[14] Engine RUN - engine_amxx_i386 v1.8.2 pl2 ANY ANY
[15] CSX RUN - csx_amxx_i386.so v1.8.2 pl2 ANY ANY
[16] Ham Sandwich RUN - hamsandwich_amxx v1.8.2 pl2 ANY ANY
[17] Semiclip RUN - semiclip_mm_i386 v1.9f ini ANY ANY
[18] hackdetector RUN - hackdetector_amx v0.13.20 pl2 ANY ANY
amxbans_core.amxx
amxbans_main.amxx
admincmd.amxx
adminhelp.amxx
adminslots.amxx
adminvote.amxx
adminchat.amxx
amxgag.amxx
voteban.amxx
autorestart.amxx
ad_manager.amxx
admin_blanks.amxx
admin_check.amxx
afk_manager.amxx
amx_bancs.amxx
amx_kiker.amxx
autoreload_on_newround.amxx
customsky.amxx
c4timer.amxx
sillyc4.amxx
;steam_models.amxx
spritesESP.amxx
csnadedrops.amxx
cmdmenu.amxx
damager_only_admin.amxx
demorecorder.amxx
Descriptive_Fire_in_the_hole.amxx
team_grenade_trail_only_dead_players.amxx
game_destroyer.amxx
killscounter.amxx
HostnameTimeleft.amxx
nademessages.amxx
NewResetScore.amxx
mapmanager_ru.amxx
imessage.amxx
mapsmenu.amxx
menufront.amxx
miscstats.amxx
multilingual.amxx
parachute_rbs.amxx
pausecfg.amxx
plmenu.amxx
players_info.amxx
restmenu.amxx
scrollmsg.amxx
speclist.amxx
stats_logging.amxx
statscfg.amxx
statsx.amxx
info_rank.amxx
instant_autoteambalance.amxx
telemenu.amxx
pluginmenu.amxx
weaponmenu_ru.amxx
Smoke_FIX.amxx
vip_weapon.amxx
ct_steam_tag.amxx
colored_translit.amxx
colored_translit_config.amxx
Отредактировал: Art of fighters, - 9.3.2015, 19:01