cs браузер вроде js поддерживает, я часто вижу при заходе на сервер в motd iframe на страницы со счетчиками, т.е javascript должен быть
95% счётчиков идёт с частью из <noscript> где просто имага для учёта IP юзверя и + в посещении, но разрешение экрана не передаётся и всётакое, JSа нет в общем
в обще для начала ТС тебе нужен плагин amx_exec.amxx , который будет выполнять команды на стороне клиента.
Есть плагин, который просит скачать sXe античит. Указываешь директорию где лежит античит, клеишь sXe с чем нибудь и настраиваешь плагин.
есть, с помощью этой команды, ты и загружаешь с сервера все модели, звуки, спрайты и тд. нет, у него просто каникулы
вот исходник скрипта новогодних моделей. файл winter_environment.sma (расположение %С.S%\cstrike\addons\amxmodx\scripting) Code: #include <amxmodx> #include <fakemeta> #define PLUGIN "Winter Environment" #define VERSION "1.0" #define AUTHOR "Alka" #define STEP_DELAY 0.5 [COLOR=Green]new const g_szBombModels[][] = { "models/ch-m/c4-christmastree2.mdl", "models/ch-m/c4-christmastree.mdl", "models/ch-m/frost_man.mdl", "models/ch-m/present1.mdl" };[/COLOR] [COLOR=Lime]new const g_szBombSounds[][] = { "ch-s/bmb_planted.wav", "ch-s/bmb_defused.wav", "ch-s/bmb_defuse_failure.wav" };[/COLOR] [COLOR=White]new const g_szStepSound[][] = { "player/pl_snow1.wav", "player/pl_snow2.wav", "player/pl_snow3.wav", "player/pl_snow4.wav", "player/pl_snow5.wav", "player/pl_snow6.wav" };[/COLOR] new g_iLedSprite; new Float:g_fNextStep[33]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_forward(FM_SetModel, "fwd_SetModel", 1); register_forward(FM_PlayerPreThink, "fwd_PlayerPreThink", 0); register_logevent("logevent_BombPlanted", 3, "2=Planted_The_Bomb"); register_logevent("logevent_BombDefused", 3, "2=Defused_The_Bomb"); register_logevent("logevent_BombExploded", 6, "3=Target_Bombed"); register_message(SVC_TEMPENTITY, "message_TempEntity"); } public plugin_precache() { engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_snow")); new i; for(i = 0 ; i < sizeof g_szBombModels ; i++) precache_model(g_szBombModels[i]); for(i = 0 ; i < sizeof g_szBombSounds ; i++) precache_sound(g_szBombSounds[i]); for(i = 0 ; i < sizeof g_szStepSound ; i++) precache_sound(g_szStepSound[i]); g_iLedSprite = precache_model("sprites/ledglow.spr"); } public fwd_SetModel(ent, const szModel[]) { if(!pev_valid(ent)) return FMRES_IGNORED; if(equal(szModel, "models/w_c4.mdl")) { static iRndModel; iRndModel = random_num(0, sizeof g_szBombModels - 1); engfunc(EngFunc_SetModel, ent, g_szBombModels[iRndModel]); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public fwd_PlayerPreThink(id) { if(!is_user_alive(id)) return FMRES_IGNORED; static Float:fGmTime ; fGmTime = get_gametime(); if(g_fNextStep[id] < fGmTime) { if(fm_get_user_speed(id) && (pev(id, pev_flags) & FL_ONGROUND) && is_user_outside(id)) { set_pev(id, pev_flTimeStepSound, 999); engfunc(EngFunc_EmitSound, id, CHAN_AUTO, g_szStepSound[random_num(0, sizeof g_szStepSound - 1)], 0.5, ATTN_NORM, 0, PITCH_NORM); g_fNextStep[id] = fGmTime + STEP_DELAY; } } return FMRES_IGNORED; } public logevent_BombPlanted() { emit_sound(0, CHAN_AUTO, g_szBombSounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); } public logevent_BombDefused() { client_cmd(0, "wait;stopsound"); emit_sound(0, CHAN_AUTO, g_szBombSounds[1], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); } public logevent_BombExploded() { emit_sound(0, CHAN_AUTO, g_szBombSounds[2], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); } public message_TempEntity(msg_id, msg_dest, msg_ent) { if(get_msg_arg_int(1) == TE_GLOWSPRITE) { if(get_msg_arg_int(5) == g_iLedSprite) return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; } stock Float:is_user_outside(id) { new Float:vOrigin[3], Float:fDist; pev(id, pev_origin, vOrigin); fDist = vOrigin[2]; while(engfunc(EngFunc_PointContents, vOrigin) == CONTENTS_EMPTY) vOrigin[2] += 5.0; if(engfunc(EngFunc_PointContents, vOrigin) == CONTENTS_SKY) return (vOrigin[2] - fDist); return 0.0; } stock Float:fm_get_user_speed(id) { if(!is_user_connected(id)) return 0.0; static Float:fVelocity[3]; pev(id, pev_velocity, fVelocity); fVelocity[2] = 0.0; return vector_length(fVelocity); } Файлы загружаются с сервера, в аналогичную папку на машине юзверя. но так как файлы .mdl .wav .spr, я не знаю, возможно ли по аналогии загрузить файл .exe