dc_anims - все анимации GTA:SA в одном инклуде
Список изменений:- v1.3.1 (20.12.2017):
- Устранён уход в бесконечный цикл в OnGameModeInit/OnFilterScriptInit, который возникал в сочетании с использованием fixes.inc (FIX_GetPlayerPoolSize).
- v1.3 (15.07.2017):
- Добавлены макросы для отключения библиотек анимаций (DC_ANIMS_DISABLE__AIRPORT, DC_ANIMS_DISABLE__ATTRACTORS, ..., DC_ANIMS_DISABLE__WUZI). Пример использования см. в конце поста.
- Исправлена ошибка в обработке аргументов команды /anim, из-за которой не работали анимации.
- Предзагрузка анимаций у игроков сделана опциональной.
Это должно помочь серверам избежать превышение лимита на кол-во пакетов от сервера к клиенту во время спавна (переменная "messageslimit" в server.cfg).
По умолчанию предзагрузка включена, но теперь её можно отключить, объявив макрос DC_ANIMS__NO_PRELOAD_AT_SPAWN перед подключением dc_anims (см. пример ниже).
- В список добавлена анимация рыбалки ("SAMP:FishingIdle"), появившаяся в SA:MP 0.3.7.
Итого теперь в инклуде 1872 анимации в 135 библиотеках.
- Исправлен баг с неправильным выводом названий в списке анимаций (проявлялось только при включении англ. языка с помощью макроса DC_ANIMS_LANG_EN).
- При выводе списка библиотек анимаций в конце строк больше не добавляются запятые.
Благодаря этому получилось уместить список анимаций в 8 строк, чтобы при вводе пустой команды /anim выводилось 10 строк (ещё 2 на формат использования команды и итоги о кол-ве анимаций и библиотек).
Теперь при стандартном кол-ве видимых строк чата (10) вам не придётся прокручивать чат, чтобы прочитать первые строки, выведенные командой.
- Исправлен баг, приводящий к выводу сообщения "Неизвестное название библиотеки" при вводе команды /anim без параметров (проявлялся только без командного процессора).
- Прочие мелкие изменения и улучшения.
- v1.2 (05.04.2015):
- Исправлен баг, связанный с некорректной обработкой параметров в OnPlayerCommandText при использовании стандартных команд.
- v1.1 (06.07.2014):
- Теперь инклуд можно использовать без ZCMD/DC_CMD (см.п. "Дополнительно").
- Убрано использование y_stringhash. Теперь dc_anims не зависит от сторонних инклудов/плагинов. Кроме того, значительно ускорена компиляция на оригинальном pawncc от SA:MP Team.
- Добавлена защита от повторного подключения инклуда для совместимости с модифицированной версией компилятора от Zeex.
dc_anims.inc - библиотека эффективно организованных анимаций GTA:SA.
Всего реализовано 1872 анимаций в 135 библиотеках.
http://ihost.pro-pawn.ru/image.php?di=85IS
Прежде, чем кто-то скажет, что я взял анимации из работы OKStyle или из SA:MP wiki, посмотрите сюда.
Вся работа делалась с чистого листа.
Основные отличия от похожей работы OKStyle и от списка на SA:MP wiki: Открыть/закрыть - Больше анимаций:
Открыть/закрыть BLOWJOBZ - 6 из 18 анимаций нет ни в wiki, ни в списке OKStyle.
GFUNK, RUNNINGMAN, WOP - 3 библиотеки анимаций танца, в каждой по 33 анимации, ни одной нет в wiki и в работе OKStyle.
SEX - 20 анимаций, ни одной нет в SA:MP wiki (Куй не одобряэ).
SnM - 22 анимации, ни одной из них нет в wiki, 14 из 22 нет у OKStyle.
- Возможность интеграции как в моды со стандартными командами, так и с использованием командных процессоров (ZCMD/DC_CMD).
- Для ускорения доступа все анимации составлены в таблицу (вместо over9000 вызовов strcmp для поиска нужной библиотеки). При этом скрипт сравнительно мало весит (размер .amx - ~50Кб, если компилировать, как фильтрскрипт) и не требователен к памяти (всего ~91Кб). Кроме того, с такой организацией данных можно легко найти и удалить нужную анимацию/библиотеку (все библиотеки и анимации отсортированы в алфавитном порядке).
- Возможность как использования работы в виде фильтрскрипта, так и её интеграции в мод (#include). При этом анимации будут предзагружены у игроков при запуске мода, если использовать работу, как инклуд, или при загрузке фильтрскрипта.
- Поддержка русского и английского языков для сообщений.
Размер AMX: ~54Кб
Требуемый объём памяти: ~91Кб
В работе реализованы:- Полный список анимаций, доступных в GTA:SA.
- Список действий (танцы, распитие напитков, курение, etc.)
- Предзагрузка библиотек анимаций.
- Поддержка русского и английского языков (см. п. "Дополнительно").
Команды:
Код:
/anim [набор] [ID анимации] - воспроизвести анимацию (без параметров - вывести список всех наборов анимаций)
/stopanim - остановить анимацию
/action [действие] - воспроизвести указанное действие (без параметров - вывести список всех действий)
Использование:- Скачать инклуд и поместить его в папку "pawno/include".
- Подключить инклуд к своему скрипту.
PHP код:
#include <a_samp>
#include <dc_anims>
- PROFIT :trollface:
Дополнительно:- Инклуд может работать как с командным процессором (DC_CMD/ZCMD), так и без него.
Для использования командного процессора, подключите его перед подключением dc_anims.
Примеры:
PHP код:
#include <a_samp>
#include <dc_cmd>
#include <dc_anims> // будет использоваться командный процессор DC_CMD
PHP код:
#include <a_samp>
#include <dc_anims> // командный процессор не указан, будут использоваться обычные команды
- В инклуде для вывода сообщений используются 2 цвета: синий (для обычных сообщений) и серый (для ошибок).
Эти цвета можно изменить, объявив макросы DC_ANIMS_COLOR и DC_ANIMS_ERROR_COLOR перед подключением инклуда.
Пример:
PHP код:
#include <a_samp>
#define DC_ANIMS_COLOR "{00FF00}" // обычные сообщения будут зелёного цвета
#define DC_ANIMS_ERROR_COLOR "{FF0000}" // ошибки - красного
#include <dc_anims>
- Список действий в инклуде можно отключить, объявив перед подключением инклуда макрос DC_ANIMS_DISABLE_ACTIONS:
PHP код:
#include <a_samp>
#define DC_ANIMS_DISABLE_ACTIONS // убрать команду "/actions"
#include <dc_anims>
- Язык текста в dc_anims можно переключить на английский, если перед его подключением добавить макрос DC_ANIMS_LANG_EN:
PHP код:
#include <a_samp>
#define DC_ANIMS_LANG_EN
#include <dc_anims>
- По умолчанию включена предзагрузка библиотек анимаций при первом спавне игрока, однако её можно отключить, объявив макрос DC_ANIMS__NO_PRELOAD_AT_SPAWN:
PHP код:
#define DC_ANIMS__NO_PRELOAD_AT_SPAWN
#include <dc_anims>
Однако имейте в виду, что без предзагрузки команда /anim не будет срабатывать у игроков с первого раза.
- Также, начиная с версии 1.3, появилась возможность отключать отдельные библиотеки анимаций. Рассмотрим эту возможность на примере отключения библиотек с "непристойными" анимациями:
PHP код:
#define DC_ANIMS_DISABLE__BLOWJOBZ
#define DC_ANIMS_DISABLE__PAULNMAC
#define DC_ANIMS_DISABLE__SEX
#include <dc_anims>
Скачать: v1.3.1
Автор: Daniel_Cortez