Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
ilya9754 » 15 май 2019, 18:05
Приветствую всех, подскажите пожалуйста есть меню выбора скина, если выбираешь любую модель кроме первой, она нействует ровно один раунд, потом включается автоматически модель номер один. помогите разобраться пожалуйста.
- Код: Выделить всё
new g_iBitClientAccess, g_iBitCustomModel;
public plugin_init()
{
register_plugin("Models", "0.1b", "Freedo.m");
RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1);
register_forward(FM_SetClientKeyValue, "FM_SetClientKeyValue_Pre", 0);
register_clcmd("say /models", "amodels", ADMIN_BAN);
}
public plugin_precache()
{
precache_model("models/player/vip/vip.mdl");
precache_model("models/player/admin/admin.mdl");
precache_model("models/player/model_1/model_1.mdl");
precache_model("models/player/model_2/model_2.mdl");
precache_model("models/player/model_3/model_3.mdl");
precache_model("models/player/model_4/model_4.mdl");
precache_model("models/player/vip_tt/vip_tt.mdl");
precache_model("models/player/admin_tt/admin_tt.mdl");
precache_model("models/player/model_1_tt/model_1_tt.mdl");
precache_model("models/player/model_2_tt/model_2_tt.mdl");
precache_model("models/player/model_3_tt/model_3_tt.mdl");
precache_model("models/player/model_4_tt/model_4_tt.mdl");
}
public client_putinserver(id)
{
BIT_ADD(g_iBitClientAccess, id);
}
public client_disconnect(id)
{
BIT_SUB(g_iBitClientAccess, id);
BIT_SUB(g_iBitCustomModel, id);
}
public amodels(id) {
new i_Menu = menu_create("\rВыбери \yмодель", "Ham_PlayerSpawn_Post");
menu_additem(i_Menu, "\wМодель 1", "1", 0);
menu_additem(i_Menu, "\wМодель 2", "2", 0);
menu_additem(i_Menu, "\wМодель 3", "3", 0);
menu_additem(i_Menu, "\wМодель 4", "4", 0);
menu_additem(i_Menu, "\wМодель Админ", "5", 0);
menu_additem(i_Menu, "\wМодель Вип", "6", 0);
menu_setprop(i_Menu, MPROP_NEXTNAME, "\rДалее");
menu_setprop(i_Menu, MPROP_BACKNAME, "\rНазад");
menu_setprop(i_Menu, MPROP_EXITNAME, "\rВыход");
menu_display(id, i_Menu, 0);
}
public Ham_PlayerSpawn_Post(id, menu, item)
{
if( item < 0 && get_user_team(id) = 1) return PLUGIN_CONTINUE;
new cmd[3], access, callback;
menu_item_getinfo(menu, item, access, cmd,2,_,_, callback);
new Choise = str_to_num(cmd);
switch (Choise) {
case 1: fm_cs_set_user_model(id, "vip");
case 2: fm_cs_set_user_model(id, "admin");
case 3: fm_cs_set_user_model(id, "model_1");
case 4: fm_cs_set_user_model(id, "model_2");
case 5: fm_cs_set_user_model(id, "model_3");
}
else if(get_user_team(id) = 2)
{
case 1: fm_cs_set_user_model(id, "vip_tt");
case 2: fm_cs_set_user_model(id, "admin_tt");
case 3: fm_cs_set_user_model(id, "model_1_tt");
case 4: fm_cs_set_user_model(id, "model_2_tt");
case 5: fm_cs_set_user_model(id, "model_3_tt");
}
}
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));
}
-
ilya9754
-
- Сообщения: 228
- Зарегистрирован: 20 дек 2011, 19:05
- Благодарил (а): 28 раз.
- Поблагодарили: 6 раз.
- Опыт программирования: Меньше недели
- Языки программирования: Counter-Strike 1.6
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: Google [Bot] и гости: 9