Использование макросов в Admin Model

Сообщения
8
Реакции
9
Избыточное форматирование/капслок
:yes3:Предоставляю вашему вниманию небольшой, но вполне удобный способ замены моделей (сделан на базе AMXX Admin Model), с небольшим улучшением.:yes3:
Сам код:
#pragma tabsize 0

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

//макрос | Имя | Флаг доступа
#define VIP ADMIN_IMMUNITY
#define ADMIN ADMIN_BAN

//регистрируем плагин: имя, версию, автора
public plugin_init() {
register_plugin("TEST", "test", "TEST")
register_event("ResetHUD", "resetModel", "b")
return PLUGIN_CONTINUE
}

//заставляем клиента качать модели
public plugin_precache() {
precache_model("models/player/nameCTADMIN/nameCTADMIN.mdl") //имена папки и модели должны совпадать
precache_model("models/player/nameTVIP/nameTVIP.mdl") //имена папки и модели должны совпадать
precache_model("models/player/nameCTVIP/nameCTVIP.mdl") //имена папки и модели должны совпадать
precache_model("models/player/nameTADMIN/nameTADMIN.mdl") //имена папки и модели должны совпадать

return PLUGIN_CONTINUE
}

public resetModel(id, level, cid) {
if (get_user_flags(id) & VIP) { //имя макроса (вместо флага доступа)
new CsTeams:userTeam = cs_get_user_team(id)
if (userTeam == CS_TEAM_T) {
cs_set_user_model(id, "name") //указать имя модели без .mdl
}
else if(userTeam == CS_TEAM_CT) {
cs_set_user_model(id, "name") //указать имя модели без .mdl
}
else {
cs_reset_user_model(id)
}
if (get_user_flags(id) & ADMIN) { //имя макроса (вместо флага доступа)
new CsTeams:userTeam = cs_get_user_team(id)
if (userTeam == CS_TEAM_T) {
cs_set_user_model(id, "name") //указать имя модели без .mdl
}
else if(userTeam == CS_TEAM_CT) {
cs_set_user_model(id, "name") //указать имя модели без .mdl
}
else {
cs_reset_user_model(id)
}
}
}

return PLUGIN_CONTINUE
}
P.S Исходник можете скачать, я прикрепил его
9 Окт 2019
Так как макросы использовать куда лучше, чем флаги (ибо код становится чуть компактнее), я привёл наглядный пример.
 

Вложения

  • 2.1 KB Просмотры: 12

Ayk

Сообщения
763
Реакции
478
Помог
19 раз(а)
Макросы делают дефайном, но дефайн != макрос.

Знаешь, когда уже почти конец 2019 года, АМХХ-у больше 10 лет, обучающих статей/сайтов/форумов с достатком, то ты либо пишешь статью которой ещё нет (о новом), либо пишешь лучше того что уже есть, иначе никак.
 
Сообщения
8
Реакции
9
Ayk, Я перерыл весь РУ сурс, нигде не было такой статьи.
А вот в EU сурсе есть данный гайд.
 
Сообщения
1,536
Реакции
2,324
Помог
39 раз(а)
Chanpanskoe, не читабельно из-за чрезмерного форматирования текста и не умения использовать бб-код "Code"
 
Сообщения
1,290
Реакции
2,287
Помог
57 раз(а)
А вот в EU сурсе есть данный гайд.
Тогда почему не указан автор, и нет ссылки на первоисточник?

По коду:
1) Явно заданные ретурны в данном случае не нужны
2) Логика в resetModel() составлена неправильно. Почему проверка на админа внутри проверки на VIP? И что будет, если я сначала пройду проверку и получу модель, а потом потеряю доступ?
 
Последнее редактирование:
Сообщения
141
Реакции
201
Помог
5 раз(а)
123
 
Последнее редактирование:

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу