PDA

Просмотр полной версии : [Include] dc_anims - все анимации GTA:SA в одном инклуде



Daniel_Cortez
28.06.2014, 20:24
Список изменений:
v1.3.1 (20.12.2017):
Устранён уход в бесконечный цикл в OnGameModeInit/OnFilterScriptInit, который возникал в сочетании с использованием fixes.inc (https://github.com/Open-GTO/sa-mp-fixes/) (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, посмотрите сюда (http://pro-pawn.ru/showthread.php?9479-AnimParser).
Вся работа делалась с чистого листа.

Основные отличия от похожей работы OKStyle и от списка на SA:MP wiki (http://wiki.sa-mp.com/wiki/Animations):
Больше анимаций:
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".
Подключить инклуд к своему скрипту.


#include <a_samp>
#include <dc_anims>

PROFIT :trollface:


Дополнительно:
Инклуд может работать как с командным процессором (DC_CMD (http://pro-pawn.ru/showthread.php?1028-DC_CMD)/ZCMD), так и без него.
Для использования командного процессора, подключите его перед подключением dc_anims.
Примеры:


#include <a_samp>
#include <dc_cmd>
#include <dc_anims> // будет использоваться командный процессор DC_CMD



#include <a_samp>
#include <dc_anims> // командный процессор не указан, будут использоваться обычные команды

В инклуде для вывода сообщений используются 2 цвета: синий (для обычных сообщений) и серый (для ошибок).
Эти цвета можно изменить, объявив макросы DC_ANIMS_COLOR и DC_ANIMS_ERROR_COLOR перед подключением инклуда.
Пример:


#include <a_samp>

#define DC_ANIMS_COLOR "{00FF00}" // обычные сообщения будут зелёного цвета
#define DC_ANIMS_ERROR_COLOR "{FF0000}" // ошибки - красного
#include <dc_anims>

Список действий в инклуде можно отключить, объявив перед подключением инклуда макрос DC_ANIMS_DISABLE_ACTIONS:


#include <a_samp>

#define DC_ANIMS_DISABLE_ACTIONS // убрать команду "/actions"
#include <dc_anims>

Язык текста в dc_anims можно переключить на английский, если перед его подключением добавить макрос DC_ANIMS_LANG_EN:


#include <a_samp>

#define DC_ANIMS_LANG_EN
#include <dc_anims>

По умолчанию включена предзагрузка библиотек анимаций при первом спавне игрока, однако её можно отключить, объявив макрос DC_ANIMS__NO_PRELOAD_AT_SPAWN:


#define DC_ANIMS__NO_PRELOAD_AT_SPAWN
#include <dc_anims>

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


#define DC_ANIMS_DISABLE__BLOWJOBZ
#define DC_ANIMS_DISABLE__PAULNMAC
#define DC_ANIMS_DISABLE__SEX
#include <dc_anims>




Скачать: v1.3.1 (https://www.dropbox.com/s/1708tyy7jq68m9g/dc_anims.inc?dl=0)
Автор: Daniel_Cortez (http://pro-pawn.ru/member.php?100-Daniel_Cortez)

OKStyle
28.06.2014, 21:32
О, а я тоже свою обновил, но публиковать пока не хотел.

Seregamil
29.06.2014, 08:53
О, а я тоже свою обновил, но публиковать пока не хотел.

:facepalm:

OKStyle
29.06.2014, 09:56
Кстати, вот это, всё же, от меня))


#if !defined SPECIAL_ACTION_PISSING
#define SPECIAL_ACTION_PISSING 68
#endif

Osetin
29.06.2014, 12:43
Кстати, вот это, всё же, от меня))

lol, может уже хватит? Вроде бы в теме написано:


Прежде, чем кто-то скажет, что я взял анимации из работы OKStyle или из SA:MP wiki, посмотрите сюда (http://pro-pawn.ru/showthread.php?9479-AnimParser).
Вся работа делалась с чистого листа.

Daniel_Cortez
29.06.2014, 12:44
Кстати, вот это, всё же, от меня))
Константа SPECIAL_ACTION_PISSING была впервые описана здесь (http://forum.sa-mp.com/showthread.php?t=80825), а использование #if !defined вполне очевидно: чтобы избежать конфликтов с макросами из мода. Точно такой же приём используется и на других макросах в инклуде.
По сути ты делаешь выводы из-за каких-то 3 совпавших строк. Причём в них даже не действия, а всего лишь константа, которая используется и в работах многих других скриптеров, иногда она там даже названа по-другому - к ним тоже будешь придираться?
За сим претензию считаю абсолютно безосновательной.

OKStyle
29.06.2014, 13:55
lol, может уже хватит? Вроде бы в теме написано:
Вот ты сам посмотри ссылку сначала :scratch_one-s_head:

Daniel, не видел той темы, вывод сделал от того, что этот кусок - ну прямо 100% точь-в-точь. Я без претензий, если что.

Avertus
05.07.2014, 17:00
У кого сколько времени это компилируется? Я уже минут двадцать жду… Так и должно быть?

OKStyle
05.07.2014, 17:04
Из инклюда в мод не вставлял? Такое может быть из-за рекурсии, когда нарушен порядок описания функции и дефайна. Лучше дождитесь независимого инклюда с полными анимациями. Через день-два опубликую.

Daniel_Cortez
05.07.2014, 17:27
http://rghost.ru/56740334
Компилируется за 5 секунд - вполне нормальное время для инклуда с 1800+ анимациями, в каждой из которых хеш-сумму вычисляет компилятор.

Avertus
05.07.2014, 17:28
#include "a_samp"

#include <dc_anims>

main()
{
print(" Анимации ");
}


Где я тут мог ошибиться, не представляю.


http://rghost.ru/56740334
Компилируется за 5 секунд - вполне нормальное время для инклуда с 1800+ анимациями, в каждой из которых хеш-сумму вычисляет компилятор.

Спасибо. Буду разбираться (шаминить) почему у меня так.

Daniel_Cortez
05.07.2014, 17:53
Испробовал с обычным компилятором. И правда, компилируется, но _очень_ медленно.
Скорее всего дело вот в чём: в оригинальном pawncc есть баг с записью информации в буфер (https://github.com/Zeex/pawn/commit/200abb1d752bd9edc51cf50cc3d80750438bfaa8), когда компилятор каждый раз заново аллоцировал память под него перед записью каждого нового символа. Этот баг сильно замедляет компиляцию при большом количестве данных в скрипте.

Я для тестов использовал русифицированную версию компилятора (http://pro-pawn.ru/showthread.php?3586-%D0%A0%D1%83%D1%81%D0%B8%D1%84%D0%B8%D1%86%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80-Pawn) (и вам советую), в которой этот баг давно уже исправлен, поэтому никаких проблем с компиляцией у меня не было. В исправленной версии компилятора (http://pro-pawn.ru/showthread.php?2207-Pawn-compiler-fixed) от Zeex этого бага тоже нет.

UPD: Добавил в 1-й пост рекомендацию об использовании модифицированных версий компилятора.

Avertus
05.07.2014, 18:06
Да спасибо. Действительно, при замене компилятора процесс занимает около пяти секунд.

Daniel_Cortez
06.07.2014, 01:04
Инклуд обновлён до версии 1.1

Теперь инклуд можно использовать без ZCMD/DC_CMD (см.п. "Дополнительно").
Убрано использование y_stringhash. Теперь dc_anims не зависит от сторонних инклудов/плагинов. Кроме того, для компиляции можно использовать не модифицированную версию компилятора, а оригинальный pawncc от SA:MP Team.
Добавлена защита от повторного подключения инклуда для совместимости с модифицированной версией компилятора от Zeex.


Описание и ссылки в 1-м посте обновлены.

MYSTERYMAN
05.01.2015, 22:13
Хм, не работаю анимации из блока SEX.

alfazlo
20.03.2015, 00:14
Были времена когда список анимаций был приватом?

Daniel_Cortez
04.04.2015, 21:28
Исправлен баг, связанный с некорректной обработкой параметров в OnPlayerCommandText при использовании стандартных команд.
Баг не затронул тех, кто использовал ZCMD/DC_CMD. Тем же, у кого до сих пор стандартные команды, рекомендуется обновить инклуд.

Ссылка на скачивание новой версии (v1.2) добавлена в 1-й пост.

Kovshevoy
15.06.2017, 13:01
Здравствуйте, при использовании инклуда на сервере при вводе (к примеру): /anim swat 1 - выдает Uknown Command. То есть и анимация не проигрывается, и выводится это в чат. Как это можно исправить? Инклуд использую сразу после "izcmd", чтобы работало на этом командном процессоре как и было указано в теме.

f55555
16.06.2017, 14:42
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if (success == CMD_FAILURE)
{
static const
str[] = "Произошла ошибка, повторите попытку.";

SendClientMessage(playerid, -1, str);
return CMD_SUCCESS;
}
return success;
}

Kovshevoy
16.06.2017, 15:37
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if (success == CMD_FAILURE)
{
static const
str[] = "Произошла ошибка, повторите попытку.";

SendClientMessage(playerid, -1, str);
return CMD_SUCCESS;
}
return success;
}

Не в этом дело, я не могу использовать его инклуд полноценно, то есть команды инклуда вроде как пашут, но когда используешь то, чтобы выполнялась анимка - выдает ошибку, типо, команды не существует. И я ищу ответ на то, чтобы работали команды, вот в чем дело.

DeimoS
16.06.2017, 16:43
Так а где указано, что инклуд поддерживает izcmd? Скинь исходники инклуда под спойлер

Kovshevoy
16.06.2017, 18:46
Так а где указано, что инклуд поддерживает izcmd? Скинь исходники инклуда под спойлер

Даже если и так, я проверил на ZCMD и на iZCMD - не там, не там - не работает. Unknown Command.

Исходники вот:

/*******************************************************************************************************************************
Improved ZCMD (iZCMD)

This include is just a re-make of the ZCMD Command Processor ( V0.3.1 31/10/2009) originnaly developed by Zeex.

Version: 0.2.3.0 (August 1st 2016)

GitHub Link: https://github.com/YashasSamaga/I-ZCMD

Credits:
Zeex for ZCMD (the very idea of making publics for each command was introduced by Zeex in ZCMD)
Yashas
*******************************************************************************************************************************/
#if defined _I_ZCMD_INCLUDED
#endinput
#endif
#define _I_ZCMD_INCLUDED
#define _I_ZCMD_INCLUDED_V0_2_3_0_
/******************************************************************************************************************************/
#define MAX_CLIENT_MSG_LENGTH (144)
#define MAX_FUNC_NAME (32)

#define COMMAND:%1(%2) \
forward cmd_%1(%2); \
public cmd_%1(%2)

#define CMD:%1(%2) \
COMMAND:%1(%2)

#define command(%1,%2,%3) \
COMMAND:%1(%2, %3)

#define cmd(%1,%2,%3) \
COMMAND:%1(%2, %3)

#define CMD_SUCCESS 1
#define CMD_FAILURE 0

#if !defined isnull
#define isnull(%1) ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#endif
/******************************************************************************************************************************/
#if defined OnPlayerCommandReceived
forward OnPlayerCommandReceived(playerid,cmdtext[]);
#endif
#if defined OnPlayerCommandPerformed
forward OnPlayerCommandPerformed(playerid,cmdtext[], success);
#endif
/******************************************************************************************************************************/
public OnPlayerCommandText(playerid, cmdtext[])
{
#if defined OnPlayerCommandReceived
if(!OnPlayerCommandReceived(playerid, cmdtext)) return 1;
#endif

static funcname[MAX_CLIENT_MSG_LENGTH] = "cmd_";

#if defined IZCMD_ENABLE_CASE_SENSITIVITY
static pos;

if((pos = strfind(cmdtext, " ", false, 1)) == -1)
{
funcname[4] = 0;
strcat(funcname, cmdtext[1], MAX_FUNC_NAME - 4);

#if defined OnPlayerCommandPerformed
return OnPlayerCommandPerformed(playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, "\1"));
#else
return CallLocalFunction(funcname, "is", playerid, "\1");
#endif
}
else
{
funcname[4] = 0;
strcat(funcname, cmdtext[1], pos + 4);

while (cmdtext[pos] == ' ') pos++;

if(cmdtext[pos])
{
#if defined OnPlayerCommandPerformed
return OnPlayerCommandPerformed(playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, cmdtext[pos]));
#else
return CallLocalFunction(funcname, "is", playerid, cmdtext[pos]);
#endif
}
else
{
#if defined OnPlayerCommandPerformed
return OnPlayerCommandPerformed(playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, "\1"));
#else
return CallLocalFunction(funcname, "is", playerid, "\1");
#endif
}
}
#else
new pos = 1, tmp;

while((tmp = cmdtext[pos]) > ' ')
if('A' <= tmp <= 'Z') funcname[pos++ + 3] = tmp | 0x20;
else funcname[pos++ + 3] = tmp;

funcname[pos + 3] = 0;

while (cmdtext[pos] == ' ') pos++;

if(cmdtext[pos])
{
#if defined OnPlayerCommandPerformed
return OnPlayerCommandPerformed(playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, cmdtext[pos]));
#else
return CallLocalFunction(funcname, "is", playerid, cmdtext[pos]);
#endif
}
else
{
#if defined OnPlayerCommandPerformed
return OnPlayerCommandPerformed(playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, "\1"));
#else
return CallLocalFunction(funcname, "is", playerid, "\1");
#endif
}
#endif
}

Daniel_Cortez
16.06.2017, 20:42
Скажу как есть: сейчас у меня мало времени для старых работ, связанных с SA-MP. Могу завтра попробовать разобраться, почему инклуд не работает с ZCMD, но ничего не гарантирую.

P.S.: Переместил обсуждение в тему dc_anims.

middlematt
16.06.2017, 21:46
Скажу как есть: сейчас у меня мало времени для старых работ, связанных с SA-MP. Могу завтра попробовать разобраться, почему инклуд не работает с ZCMD, но ничего не гарантирую.

P.S.: Переместил обсуждение в тему dc_anims.

А почему тема перемещена в Вопросы по Pawn-скриптингу (http://pro-pawn.ru/forumdisplay.php?7-%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B-%D0%BF%D0%BE-Pawn-%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B8%D0%BD%D0%B3%D1%83)? :)

DeimoS
16.06.2017, 23:04
А почему тема перемещена в Вопросы по Pawn-скриптингу (http://pro-pawn.ru/forumdisplay.php?7-%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B-%D0%BF%D0%BE-Pawn-%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B8%D0%BD%D0%B3%D1%83)? :)

Потому что форум решил так при переносе сообщений в эту тему :)
Исправил



Скажу как есть: сейчас у меня мало времени для старых работ, связанных с SA-MP. Могу завтра попробовать разобраться, почему инклуд не работает с ZCMD, но ничего не гарантирую.

Я могу сегодня глянуть, как только разберусь с одним заказом.
Для того исходники, собственно, и попросил (у меня интернет отказывается открывать dropbox. Пока не разбирался с этим)

DeimoS
17.06.2017, 00:04
Даже если и так, я проверил на ZCMD и на iZCMD - не там, не там - не работает. Unknown Command.

Исходники вот:

/*******************************************************************************************************************************
Improved ZCMD (iZCMD)

This include is just a re-make of the ZCMD Command Processor ( V0.3.1 31/10/2009) originnaly developed by Zeex.

Version: 0.2.3.0 (August 1st 2016)

GitHub Link: https://github.com/YashasSamaga/I-ZCMD

Credits:
Zeex for ZCMD (the very idea of making publics for each command was introduced by Zeex in ZCMD)
Yashas
*******************************************************************************************************************************/
#if defined _I_ZCMD_INCLUDED
#endinput
#endif
#define _I_ZCMD_INCLUDED
#define _I_ZCMD_INCLUDED_V0_2_3_0_
/******************************************************************************************************************************/
#define MAX_CLIENT_MSG_LENGTH (144)
#define MAX_FUNC_NAME (32)

#define COMMAND:%1(%2) \
forward cmd_%1(%2); \
public cmd_%1(%2)

#define CMD:%1(%2) \
COMMAND:%1(%2)

#define command(%1,%2,%3) \
COMMAND:%1(%2, %3)

#define cmd(%1,%2,%3) \
COMMAND:%1(%2, %3)

#define CMD_SUCCESS 1
#define CMD_FAILURE 0

#if !defined isnull
#define isnull(%1) ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#endif
/******************************************************************************************************************************/
#if defined OnPlayerCommandReceived
forward OnPlayerCommandReceived(playerid,cmdtext[]);
#endif
#if defined OnPlayerCommandPerformed
forward OnPlayerCommandPerformed(playerid,cmdtext[], success);
#endif
/******************************************************************************************************************************/
public OnPlayerCommandText(playerid, cmdtext[])
{
#if defined OnPlayerCommandReceived
if(!OnPlayerCommandReceived(playerid, cmdtext)) return 1;
#endif

static funcname[MAX_CLIENT_MSG_LENGTH] = "cmd_";

#if defined IZCMD_ENABLE_CASE_SENSITIVITY
static pos;

if((pos = strfind(cmdtext, " ", false, 1)) == -1)
{
funcname[4] = 0;
strcat(funcname, cmdtext[1], MAX_FUNC_NAME - 4);

#if defined OnPlayerCommandPerformed
return OnPlayerCommandPerformed(playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, "\1"));
#else
return CallLocalFunction(funcname, "is", playerid, "\1");
#endif
}
else
{
funcname[4] = 0;
strcat(funcname, cmdtext[1], pos + 4);

while (cmdtext[pos] == ' ') pos++;

if(cmdtext[pos])
{
#if defined OnPlayerCommandPerformed
return OnPlayerCommandPerformed(playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, cmdtext[pos]));
#else
return CallLocalFunction(funcname, "is", playerid, cmdtext[pos]);
#endif
}
else
{
#if defined OnPlayerCommandPerformed
return OnPlayerCommandPerformed(playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, "\1"));
#else
return CallLocalFunction(funcname, "is", playerid, "\1");
#endif
}
}
#else
new pos = 1, tmp;

while((tmp = cmdtext[pos]) > ' ')
if('A' <= tmp <= 'Z') funcname[pos++ + 3] = tmp | 0x20;
else funcname[pos++ + 3] = tmp;

funcname[pos + 3] = 0;

while (cmdtext[pos] == ' ') pos++;

if(cmdtext[pos])
{
#if defined OnPlayerCommandPerformed
return OnPlayerCommandPerformed(playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, cmdtext[pos]));
#else
return CallLocalFunction(funcname, "is", playerid, cmdtext[pos]);
#endif
}
else
{
#if defined OnPlayerCommandPerformed
return OnPlayerCommandPerformed(playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, "\1"));
#else
return CallLocalFunction(funcname, "is", playerid, "\1");
#endif
}
#endif
}


Я просил исходники dc_anims, но уже не суть :)

Только что всё проверил - прекрасно работает.
https://i.imgur.com/O7ysyRQ.png
Собственно, взял код izcmd из под спойлера, скачал dc_anims, подключил и всё.
http://i.imgur.com/fws82hs.png

ziggi
17.06.2017, 00:07
Скорее всего, автор подключил какой-нибудь FS...

Kovshevoy
17.06.2017, 10:38
Я просил исходники dc_anims, но уже не суть :)

Только что всё проверил - прекрасно работает.
https://i.imgur.com/O7ysyRQ.png
Собственно, взял код izcmd из под спойлера, скачал dc_anims, подключил и всё.
http://i.imgur.com/fws82hs.png

Заюзай анимации Кортеза, то есть не просто свою команду которую ты сделал, а заюзай анимацию из инклуда Кортеза. Я не говорил что у меня все команды слетают) У меня не может работать команда которую я юзаю из инклуда Кортеза. То есть, в начале темы написано: "Для использования /anim [библиотека анимаций] [анимация]" - я так делаю - Unknown Command. Остальные команды которые я использую напрямую в моде - работают.

- - - Добавлено - - -


Скорее всего, автор подключил какой-нибудь FS...

Ошибаетесь, не люблю использовать FS.

- - - Добавлено - - -

В общем, сейчас подсниму видео, где напрямую покажу ошибку.

- - - Добавлено - - -

И еще, вот. Предоставляю инклуды которые используются у меня в моде:

#include <a_samp>
#include <fixes>
#include <izcmd>
#include <dc_anims>
#include <sqlitei>
#include <mSelection>
#include <streamer>
#include <sscanf2>
#include <foreach>
#include <mikefunc>
#include <crashdetect>

Kovshevoy
17.06.2017, 11:10
В принципе вот и подснятое видео, где показываю что оно и как.
Переход по ссылке вот тут (https://youtu.be/QVoMTvE3aNI)

ziggi
17.06.2017, 11:31
В принципе вот и подснятое видео, где показываю что оно и как.
Переход по ссылке вот тут (https://youtu.be/QVoMTvE3aNI)

Crashdetect что пишет?

Kovshevoy
17.06.2017, 12:27
Crashdetect что пишет?

Ничего не пишет в том то и дело.

- - - Добавлено - - -

А хотя, все-таки что-то есть.

[11:38:40] [debug] Run time error 20: "Invalid index parameter (bad entry point)"

DeimoS
17.06.2017, 14:29
Заюзай анимации Кортеза, то есть не просто свою команду которую ты сделал, а заюзай анимацию из инклуда Кортеза. Я не говорил что у меня все команды слетают) У меня не может работать команда которую я юзаю из инклуда Кортеза. То есть, в начале темы написано: "Для использования /anim [библиотека анимаций] [анимация]" - я так делаю - Unknown Command. Остальные команды которые я использую напрямую в моде - работают.

Так на первый скрин посмотри. Там я использовал "/anim swat 1"



Ничего не пишет в том то и дело.

- - - Добавлено - - -

А хотя, все-таки что-то есть.

[11:38:40] [debug] Run time error 20: "Invalid index parameter (bad entry point)"

Полный лог дай

Daniel_Cortez
17.06.2017, 14:47
[11:38:40] [debug] Run time error 20: "Invalid index parameter (bad entry point)"
Эта ошибка возникает именно при выполнении команды или только при загрузке скрипта?
Скомпилируйте мод в режиме отладки, как указано здесь (http://pro-pawn.ru/showthread.php?12957) и возвращайтесь с логами сюда.

Kovshevoy
17.06.2017, 17:04
Эта ошибка возникает именно при выполнении команды или только при загрузке скрипта?
Скомпилируйте мод в режиме отладки, как указано здесь (http://pro-pawn.ru/showthread.php?12957) и возвращайтесь с логами сюда.

Возможно при выполнении какой-то команды, без понятия. Обновил сейчас плагин до 4.18.1 версии, перекомпилировал с режимом откладки и вот, что есть.
Вот лог:
----------
Loaded log file: "server_log.txt".
----------

SA-MP Dedicated Server
----------------------
v0.3.7-R2, (C)2005-2015 SA-MP Team

[16:01:15] filterscripts = "" (string)
[16:01:15] weburl = "www.sa-mp.com" (string)
[16:01:15]
[16:01:15] Server Plugins
[16:01:15] --------------
[16:01:15] Loading plugin: crashdetect
[16:01:15] CrashDetect v4.18.1 is OK.
[16:01:15] Loaded.
[16:01:15] Loading plugin: streamer
[16:01:15]

*** Streamer Plugin v2.9.1 by Incognito loaded ***

[16:01:15] Loaded.
[16:01:15] Loading plugin: sscanf
[16:01:15]

[16:01:15] ===============================

[16:01:15] sscanf plugin loaded.

[16:01:15] Version: 2.8.1

[16:01:15] (c) 2012 Alex "Y_Less" Cole

[16:01:15] ===============================

[16:01:15] Loaded.
[16:01:15] Loaded 3 plugins.

[16:01:15]
[16:01:15] Filterscripts
[16:01:15] ---------------
[16:01:15] Loaded 0 filterscripts.

[16:01:15]
[16:01:15]
[16:01:15]
[16:01:15] =======================================
[16:01:15] | |
[16:01:15] | YSI version 3.09.0684 |
[16:01:15] | By Alex "Y_Less" Cole |
[16:01:15] | |
[16:01:15] =======================================
[16:01:15]
[16:01:15] ---------------------------------------------
[16:01:15] -Tactical Training Server for PD-Service.Ru
[16:01:15] ---------------------------------------------

[16:01:15] Number of vehicle models: 0
[16:02:34] [connection] 127.0.0.1:49196 requests connection cookie.
[16:02:35] [connection] incoming connection: 127.0.0.1:49196 id: 0
[16:02:36] [join] Jessica_Jackins has joined the server (0:127.0.0.1)
[16:02:58] [part] Jessica_Jackins has left the server (0:1)

Daniel_Cortez
17.06.2017, 17:14
При выполнении команд из dc_anims в лог ничего не пишет?

Kovshevoy
17.06.2017, 17:15
При выполнении команд из dc_anims в лог ничего не пишет?

Нет, ничего не пишет.

Daniel_Cortez
15.07.2017, 12:18
Релиз 1.3:
Добавлены макросы для отключения библиотек анимаций (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 без параметров.
Прочие мелкие исправления багов и изменения для уменьшения требований к памяти и улучшения производительности.


Примеры отключения библиотек анимаций и предзагрузки при спавне приведены в 1-м посте.

whale
17.12.2017, 16:41
Обращаюсь за помощью с проблемой. Подключаю dc_anims в любом месте (до командного процессора, либо же после, вообще в любом месте) - сервер не подключается к базе данных (иногда подключается) и как бы "не отображается", что он "включён" (работает) в SA:MP. В чём может быть проблема? Без данной библиотеки всё работает стабильно.

Daniel_Cortez
17.12.2017, 21:44
Обращаюсь за помощью с проблемой. Подключаю dc_anims в любом месте (до командного процессора, либо же после, вообще в любом месте) - сервер не подключается к базе данных (иногда подключается) и как бы "не отображается", что он "включён" (работает) в SA:MP. В чём может быть проблема? Без данной библиотеки всё работает стабильно.
Уверен, простым взглядом в код инклуда вряд ли получится что-то найти, ибо перед релизом я тестировал инклуд на нескольких стандартных модах. Проще всего будет, если вы скинете в ЛС свой мод.

whale
18.12.2017, 20:42
Уверен, простым взглядом в код инклуда вряд ли получится что-то найти, ибо перед релизом я тестировал инклуд на нескольких стандартных модах. Проще всего будет, если вы скинете в ЛС свой мод.


Daniel_Cortez превысил(а) максимальный объём сохранённых личных сообщений и не может получать новые сообщения, пока не удалит часть старых.
Вот...

Daniel_Cortez
18.12.2017, 22:16
.
Вот...
Почистил ящик, должно хватить на несколько сообщений.

whale
18.12.2017, 23:01
Почистил ящик, должно хватить на несколько сообщений.

Отправил.

Daniel_Cortez
19.12.2017, 22:25
v1.3.1 (20.12.2017):
Устранён уход в бесконечный цикл в OnGameModeInit/OnFilterScriptInit, который возникал в сочетании с использованием fixes.inc (https://github.com/Open-GTO/sa-mp-fixes/) (FIX_GetPlayerPoolSize).