Ru:DataPacks (SourceMod Scripting)

From AlliedModders Wiki
Revision as of 07:50, 24 November 2016 by MAGNAT2645 (talk | contribs) (Создание DataPack)
Jump to: navigation, search

DataPack - легкий способ добавлять и перемещать различные типы данных в SourceMod Scripting. Так как некоторые вещи невозможны в SourcePawn, такие как функция потребления строчки, DataPackи помогают нам получать эти строчки и другие вещи, где они нужны.

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

Синтаксис:

//написание
DataPack pack = new DataPack();
pack.WriteCell(23);
pack.WriteString("I'm a little teapot.");
 
//чтение
pack.Reset(); //возвращает позицию в начало, необходимо для чтения данных.
int cellValue = pack.ReadCell();
char buffer[1024];
pack.ReadString(buffer, 1024);

Создание DataPack

Создать DataPack очень просто; всё, что вам нужно это дескриптор для записи DataPack в него.

Datapack dataPackHandle = new DataPack();

Для более подробной информации по использованию дескрипторов, смотрите Handle API (SourceMod).

Функции DataPack

On you have created your DataPack, you can use a variety of functions to manage the DataPack. Когда вы создадите DataPack, вы можете использовать множество функций, чтобы управлять DataPack.

WritePackCell

Синтаксис:

native void WritePackCell(Handle pack, int cell);

WritePackFloat

Эта функция может использоваться, чтобы записать дробь в DataPack.

Синтаксис:

native void WritePackFloat(Handle pack, float val);

WritePackString

Эта функция может использоваться, чтобы записать строчку в DataPack.

Синтаксис:

native void WritePackString(Handle pack, const char[] str);

ReadPackCell

Синтаксис:

native any ReadPackCell(Handle pack);

ReadPackFloat

Эта функция может использоваться, чтобы прочитать (получить) дробь из DataPack.

Синтаксис:

native float ReadPackFloat(Handle pack);

ReadPackString

This function can be used to read a String from a DataPack. Эта функция может использоваться, чтобы прочитать (получить) строчку из DataPack.

Синтаксис:

native void ReadPackString(Handle pack, char[] buffer, maxlen);

ResetPack

This function resets your position in the DataPack. Эта функция возвращает позицию DataPack в начало.

Синтаксис:

native void ResetPack(Handle pack, bool clear=false);

GetPackPosition

Эта функция возвращает текущую позицию в DataPack.

Синтаксис:

native int GetPackPosition(Handle pack);

SetPackPosition

Эта функция устанавливает текущую позицию в DataPack.

Синтаксис:

native void SetPackPosition(Handle pack, int position);

Отключение DataPack

Чтобы отключить DataPack, нужно просто закрыть его дескриптор.

Пример:

CloseHandle(dataPackHandle);