Русское сообщество по скриптингу

[INC] Multi-Rendering System

Статьи или фрагменты кода для новичков и уже опытных скриптеров по AMXX.

Модератор: Chuvi

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только обучающему материалу по AMX Mod X.

[INC] Multi-Rendering System

Сообщение Subb98 » 19 фев 2016, 15:30

Автор: Subb98
Источник: Вы должны зарегистрироваться, чтобы видеть ссылки.
Текущая версия: 0.2 от 21.02.2016

Описание:
Данный плагин призван исключить "конфликты" при работе с функциями типа set_user_rendering / set_rendering. Такие "конфликты" могут иметь место быть, когда два и более плагинов используют эти функции для одного игрока.


Принцип работы:
Функция add_user_rendering устанавливает модели указанного игрока режим визуализации, добавляет переданные аргументы в динамический (array) массив, присваивает установленному режиму уникальный индекс и возвращает его в виде целого числа. Функция remove_user_rendering удаляет из динамического массива аргументы по уникальному индексу (ранее полученному как результат функции add_user_rendering) и устанавливает последние доступные. Таким образом, при удалении какого-либо режима визуализации (завершении работы функции в плагине), будет установлен последний из ранее установленных режимов (либо "никакой", то есть с аргументами по умолчанию, если аргументов в массиве не осталось).

Native-функции:
Код: Выделить всё
/* Функция устанавливает модели игрока режим визуализации
 * Присваивает установленному режиму уникальный индекс и возвращает его в виде целого числа (2 аргумент)
 * Пример использования: add_user_rendering(id, g_index[id], kRenderFxGlowShell, 0, 100, 200, kRenderGlow, 10); */
native add_user_rendering(const id, &r_index, const fx = kRenderFxNone, const r = 255, const g = 255, const b = 255, const render = kRenderNormal, const amount = 16);

/* Функция удаляет с модели игрока режим визуализации по уникальному индексу
 * В случае удачи присваивает уникальному индексу (2 аргумент) значение 0 (R_INDEX_NULL) и возвращает его в виде целого числа
 * В случае провала возвращает -1 (INVALID_HANDLE)
 * Пример использования: remove_user_rendering(id, g_index[id]); */
native remove_user_rendering(const id, &r_index); 

Модули:
  • Engine (engine.inc)
Благодарности:
  • PRoSToTeM@ - за рекомендации по улучшению кода и неоднократные консультации
Примечание:
В архиве имеется тестовый скрипт, который предоставляется в качестве подробного примера использования native-функций.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5486
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2344 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: [INC] Multi-Rendering System

Сообщение Subb98 » 21 фев 2016, 18:30

Описание и вложение обновлены. Улучшен принцип работы native-функций, что позволяет избежать некорректной работы скрипта в ряде случаев.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5486
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2344 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP


Вернуться в Статьи / фрагменты кода

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1