GetAnimationName

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск

Описание:

Узнаёт название анимации по её ID.

Параметры:

(index, animlib[], len1, animname[], len2)
index ID анимации.
animlib[] Массив, в котором будет записано название библиотеки анимации.
len1 Размер массива animlib.
animname[] Массив, в котором будет записано название анимации.
len2 Размер массива animname.


Возвращаемое значение:

1 в случае успешного выполнения, либо 0, если указан неправильный ID анимации. Названия как библиотеки анимаций, так и самой анимации передаются через массивы animlib и animname

Bug.png
Баг SA-MP
Если в массиве animlib или animname не хватает места под запись одного или нескольких символов названия анимации/библиотеки, функция записывает символ конца строки ('\0') за пределами массива - тем самым функция может обнулить переменную, объявленную перед или после массива, что может привести к неправильной работе кода, зависящего от значения в этой переменной.
Для параметров len1 и len2 разработчики SA-MP могли бы указать значение по умолчанию, равное размеру передаваемых массивов animlib и animname, чтобы у скриптеров не было необходимости каждый раз указывать размеры вручную
native GetAnimationName(index, animlib[], len1=sizeof(animlib), animname[], len2=sizeof(animname));
однако по неизвестной причине в SA-MP Team избегают использования оператора sizeof.


Пример использования:

CMD:getanim(playerid, params[])
{
    new animid = GetPlayerAnimationIndex(playerid);
    new lib[24], name[24];
    GetAnimationName(animid, lib, sizeof(lib), name, sizeof(name));
    new string[64];
    format(string, sizeof(string), "Ваша анимация: %s:%s", lib, name);
    return SendClientMessage(playerid, -1, string);
}


См. также: