Difference between revisions of "Ru:DataPacks (SourceMod Scripting)"

From AlliedModders Wiki
Jump to: navigation, search
(Created page with "DataPack - легкий способ добавлять и перемещать различные типы данных в :Category:SourceMod Scripting|SourceMod Scripting...")
(No difference)

Revision as of 13:22, 22 November 2016

DataPack - легкий способ добавлять и перемещать различные типы данных в SourceMod Scripting. Since some things are not possible in SourcePawn, such as a function consuming a String, DataPacks help us get these Strings and other items where they need to go. Так как некоторые вещи невозможны в 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

Creating a DataPack is very simple; all you need is a Handle to write to. Создать 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);