Другие функции скриптинга

From SA-MP Wiki

Jump to: navigation, search

Contents

Функции для работы с файлами (file.inc)

Вы также можете почитать Учебник по файлам, чтобы потренироваться в этом.

fblockread

Description:

Эта функция позволяет Вам прочитать данные из файла без кодируюищих и завершающих символов (в двоичном формате)
Parameters:
(handle,buffer[],size=sizeof buffer)
handleИспользуемый handle файла, открытый функцией fopen()
buffer[]Буфер для сохранения прочитанных данных.
size=sizeof bufferЧисло ячеек для чтения.
fblockread(gFile, string, 256);


fblockwrite

Description:

Записывает данные в файл в двоичном формате, игнорируя концы строк и кодировку.
Parameters:
(handle,const buffer[],size=sizeof buffer)
handleИспользуемый handle файла, открытый функцией fopen().
const buffer[]Данные для записи в файл.
size=sizeof bufferЧисло ячеек для записи.
fblockwrite(gFile, "Save this data!", 15);


fclose

Description:

Закрывает handle файла, ранее открытый функцией fopen. Очень важно использовать эту функцию псоле того, как вы закончили чтение/запись!
Parameters:
(handle)
handleЗакрываемый handle файла, открытый функцией fopen().
fclose(gFile);


fexist

Description:

Проверяет, есть ли указанный файл в папке с Вашими скриптами.
Parameters:
(const pattern[])
const pattern[]Имя файла для проверки на существование.

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

1 - если файл существует, 0 - если нет.
if(fexist("datafile.txt")){


fgetchar

Description:

Эта функция читает один символ из файла и сохраняет его в переменной, переданной по ссылке.
Parameters:
(handle,&value,utf8=true)
handleИспользуемый handle файла, открытый функцией fopen().
&valueПеременая, в которую запишется символ.
utf8=trueПрочитать символ в кодировке UTF8.
fgetchar(gFile, handle, false);


flength

Description:

Проверяет длину уже открытого файла.
Parameters:
(handle)
handleИспользуемый handle файла, открытый функцией fopen().

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

Длина файла в байтах.
new fileLength = flength(gFile);


fmatch

Description:

Эта функция проверяет, соответствует ли часть данного файла указанной строке.
Parameters:
(name[],const pattern[],index=0,size=sizeof name)
name[]Имя проверяемого файла.
const pattern[]Шаблон соответствия.
index=0Смещение для начала поиска.
size=sizeof nameКоличество символов, в которых будет производится поиск.
fmatch("searchFile.txt", "Peter", 0);


fopen

Description:

Открывает указанный файл для чтения, записи или для обеих операций. Эта функция нужна для большинства файловых функций.
Image:32px-Circle-style-warning.png

Важное
Примечание

Эта функция может привести к вылету Вашей игры, когда папка с скриптами или файл в ней не существуют.
Parameters:
(const name[],mode=io_readwrite)
const name[]Имя файла, который Вы хотите открыть.
mode=io_readwriteРежим, в котором вы хотите открыть файл.

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

Handle файла.
new File:gFile = fopen("exampleFile.txt", io_readwrite);


fputchar

Description:

Эта функция записывает один символ в файл.
Parameters:
(handle,value,utf8=true)
handleИспользуемый handle файла, открытый функцией fopen().
valueСимвол, который вы хотите записать.
utf8=trueДолжен ли символ быть записан в кодировке UTF8 ?
fputchar(gFile, 'e', false);


fread

Description:

Используйте эту функцию, если Вы хотите прочитать строку из файла. Вам понадобится цикл for или while для чтения нескольких строк.
Parameters:
(handle,&string[],size=sizeof string,pack=false)
handleИспользуемый handle файла, открытый функцией fopen().
&string[]Переданная по ссылке строка, в которую запишутся данные.
size=sizeof stringЧисло байт для чтения.
pack=falseДолжна ли строка быть запакованной ?
fread(gFile, string, sizeof(string));


fremove

Description:

Удаляет существующий файл из папки с Вашими скриптами.
Image:32px-Circle-style-warning.png

Важное
Примечание

Эта функция может привести к вылету Вашей игры ,если запрошенный файл не существует.
Parameters:
(const name[])
const name[]Имя файла, который Вы хотите удалить.
fremove("exampleFile.txt");


fseek

Description:

Изменяет текущую позицию в файле. Вы можете перемещаться по файлу вперед или назад.
Parameters:
(handle,position=0,whence=seek_start)
handleИспользуемый handle файла, открытый функцией fopen().
position=0Позиция для помещения файлового курсора.
whence=seek_startСпособ, по которому нужно переместиться по файлу.
fseek(gFile, 25);


ftemp

Description:

Эта функция открывает файл в папке "tmp" или "temp" для чтения или записи. Файл удалится полсле того, как Вы закроете его функцией fclose().
Image:32px-Circle-style-warning.png

Важное
Примечание

Эта функция может привести к вылету Вашей игры, если соответствуящая папка не создана.
Parameters:
(Нет параметров)

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

Handle файла
new File:gFile = ftemp();


fwrite

Description:

Записывает указанную строку или линию в файл. Помните, что файл должен быть открыт для записи.
Parameters:
(handle,const string[])
handleИспользуемый handle файла, открытый функцией fopen().
const string[]Строка, которую Вы хотите записать в файл.
fwrite(gFile, "This will be put in the file!");


Вещественные функции (float.inc)

float

Description:

Эта функция конвертирует целое число в вещественное.
Parameters:
(value)
valueЦелое число, которое Вы хотите конверитровать в вещественное.
new Float:fVar = float(122);


floatabs

Description:

Возвращает абсолютное значение вещественного числа.
Parameters:
(value)
valueВещественно число

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

Абсолютное значение вещественного числа.
new Float:fAbs = floatabs(-123.54);


floatadd

Description:

Вычисляет сумму двух вещественных чисел, то же самое, что и Float1 + Float2.
Parameters:
(oper1,oper2)
oper1Первое вещественное число.
oper2Вещественное число, которое вы хотите добавить к первому.

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

Сумма двух вещественных чисел.
new Float:fSum = floatadd(123.45, 678.90);


floatcmp

Description:

Сравнивает два вещественных числа.
Parameters:
(oper1,oper2)
oper1Первое сравниваемое вещественное число.
oper2Второе сравниваемое вещественное число.

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

1 - если первый аргумент больше, -1 - если второй больше.
new compare = floatcmp(127.45, 127.450);


floatcos

Description:

Вычисляет правильный косинус вещественного числа с заданной размерностью угла.
Parameters:
(value,anglemode=radian)
valueВещественное число.

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

Косинус данного вещественного числа.
new Float:fCos = floatcos(87.343, radian);


floatdiv

Description:

Делит вещественное число на значение, указанное вещественным числом, делителем.
Parameters:
(dividend,divisor)
dividendДелимое вещественное число.
divisorЧисло (вещественное), делитель.

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

Частное в виде вещественного числа.
new Float:fDivide = floatdiv(128.00, 32.00);


floatfract

Description:

Вычисляет и возвращяет дробную часть вещественного числа.
Parameters:
(value)
valueВещественное число.

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

Дробная часть числа.
new Float:fFract = floatfract(3249.34);


floatlog

Description:

Используйте эту функцию, если хотите узнать логарифм вещественного числа.
Parameters:
(value,base=10.0)
valueВещественное число.
base=10.0Степень логарифма.

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

Логарифм числа.
new Float:fLog = floatlog(128.0);


floatmul

Description:

Перемножает два вещественных числа и возвращает произведение.
Parameters:
(oper1,oper2)
oper1Первый множитель.
oper2И второй.

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

Произведение чисел.
new Float:fMul = floatmul(128.1,7.9);


floatpower

Description:

Возводит вещественное число в степень.
Parameters:
(value,exponent)
valueВозводимое вещественное число.
exponentСтепень возведения в виде вещественного числа.

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

Вещственное число, возведенное в степень.
new Float:fPower = floatpower(128.0, 8.0); // 1024


floatround

Description:

Округляет вещественное число указанным методом.
Parameters:
(value,:method=floatround_round)
valueВещественное число.
:method=floatround_roundМетод округления, который вы хотите использовать.

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

Округленное целое число.
new round = floatround(128.9, floatround_floor);


floatsin

Description:

Вычисляет синус данного вещественного числа, заданного размерностью в радианах, градусах или градиентах.
Parameters:
(value,anglemode:mode=radian)
valueВещественное число.

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

Синус вещественного числа.
new Float:fSin = floatsin(82.4);


floatsqroot

Description:

Вычисляет квадратный корень данного вещественного числа.
Parameters:
(value)
valueВещественное число.

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

Квадратный корень из вещественного числа.
new Float:fSqroot = floatsqroot(743.34);


floatsub

Description:

Уменьшает первое число oper1 на число, указанное в oper2.
Parameters:
(oper1,oper2)
oper1Вещественное число, которое вы хотите уменьшить на заданное второе.
oper2Значение, на которое надо уменьшить первое число.

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

Значение первого аргумента после вычитания.
new Float:fSub = floatsub(233.54, 23.34);


floattan

Description:

Вычисляет тангенс данного вещественного числа, заданного в первом аргументе в радианах, градиентах или градусах.
Parameters:
(value,mode=radian)
valueВещественное число.
mode=radianРазмерность угла, которую Вы хотите использовать.

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

Тангенс числа, заданный вещественным числом.
new Float:fTan = floattan(87.4);


floatstr

Description:

Конвертирует строку в соответствующее вещественное число.
Parameters:
(const string[])
const string[]Строка, которую Вы хотите конвертироват ьв вещественно число.

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

Запрошенное вещественное число.
new Float:fFloat = floatstr("124.34");


Строковые функции (string.inc)

format

Description:

Format позволяет Вам использовать переменные в строке; так же как и в printf(), но эта функция возвращает полученную строку.
Parameters:
(const format[],...)
const format[]Формат, в котором вы хотите напечатать последовательность.
%b представлет число в двоичном формате.
%c представлет символ.
%d представлет тип double (или нормлаьное целое число).
%f представлет вещественное число.
%i представлет целое число.
%s представлет строку.
%x представлет число в шестнадцатиричном формате.
format(string, sizeof(string), "This %s has %d words.", "string", 4);


ispacked

Description:

Проверяет, запакована ли данная строка, и возвращает результат.
Parameters:
(const string[])
const string[]Строка для проверки.

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

1 - если строка запакована, 0 - если нет.
if(ispacked(string)){


memcpy

Description:

memcpy может быть использована для копирования байтов из одного места в другое.
Parameters:
(dest[],const source[],index=0,numbytes,maxlength=sizeof dest)
dest[]Место назначения копирования.
const source[]Источник для копирования, оригинальная строка.
index=0Смещение, с которым копировать из источника.
numbytesЧисло копируемых байтов.
maxlength=sizeof destРазмер аргумента-назначения.
memcpy(playerNames[playerid], playerName, 0, MAX_PLAYER_NAME);


strcat

Description:

Эта функция конкатенирует две строки в назанченую по ссылке строку.
Parameters:
(dest[],const source[],maxlength=sizeof dest)
dest[]Назначенная строка для конкатенирования.
const source[]Исходная строка.
maxlength=sizeof destМаксимальная длина строки-назначения.

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

Длина новой полученной строки-назначения.
strcat(destination, "Hi, how are you?", sizeof(destination));


strcmp

Description:

Сравнивает две строки друг с другом, с такими опциями, как игнорирование заглавных букв или максимальная длина. Очень часто используется в OnPlayerCommandText.
Parameters:
(const string1[],const string2[],ignorecase=false,length=cellmax)
const string1[]Первая сравниваемая строка.
const string2[]Строка, которую вы хотите сравнить с string1.
ignorecase=falseИгнорировать заглавные буквы, если true.
length=cellmaxМаксимальное число проверяемых ячеек.

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

0 - если строки равны между собой.
if(strcmp(cmdtext, "/me", true) == 0){


strdel

Description:

Эта функция удаляет часть строки.
Parameters:
(string[],start,end)
string[]Строка, из которой вы хотите удалить часть.
startСмещение для удаления.
endКонец, где надо прекратить удаление (start + number символов)
strdel("Peter isn't cool", 8, 10);


strfind

Description:

Используйте эту функцию для поиска подстроки в строке.
Parameters:
(const string[],const sub[],ignorecase=false,pos=0)
const string[]Строка, в которой будет производиться поиск (haystack).
const sub[]Искомая строка (needle).
ignorecase=falseИгнорировать заглавные буквы, если true.
pos=0Смещение для начала поиска.

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

Вхождение подстроки, -1 - если не найдено.
new instring = strfind("Are you in here?", "you", true);


strins

Description:

Эта функция вставляет строку в другую строку, заданные аргументами substr и string.
Parameters:
(string[],const substr[],pos,maxlength=sizeof string)
string[]Строка, в которую вы хотите вставить подстроку.
const substr[]Подстрока, которую вы хотите вставить в строку.
posПозиция для вставки.
maxlength=sizeof stringМаксимальный вставляемый размер подстроки.
strins("f3llah1n is a ", "silly boy", 15);


strlen

Description:

Эта функция может быть использована для проверки длины указанной строки.
Parameters:
(const string[])
const string[]Строка, длину которой вы хотите знать.

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

Дляина в виде целого числа.
new stringLength = strlen("This is an example string.");


strmid

Description:

Извлекает диапазон символов из строки.
Parameters:
(dest[],const source[],start,end,maxlength=sizeof dest)
dest[]СТрока, в которую нужно поместить извлеченные символы.
const source[]Строка, из которой извлекаются символы.
startПозиция первого символа.
endПозиция последнего символа.
maxlength=sizeof destМаксимальная длина строки-назначения для копирования.
strmid(string, "Grab this word: hi!!", 17, 18);


strpack

Description:

Эта функция может быть использована для запаковки строки.
Parameters:
(dest[],const source[],maxlength=sizeof dest)
dest[]Переданная по ссылке стррока-назначение для сохранения запакованной строки.
const source[]Исходная оригинальная строка.
maxlength=sizeof destМаксимальный размер строки-назначения для использования.
strpack(string, "Hi, how are you?");


strunpack

Description:

Эта функция распаковывает запакованную строку в строку-назначение.
Parameters:
(dest[],const source[],maxlength=sizeof dest)
dest[]Строка-назначение для распакованной строки.
const source[]Текущая запакованная строка, которую нужно распаковать.
maxlength=sizeof destДлина строки-назначения.
strunpack(string, packedString);


strval

Description:

strval может быть использована для конвертирования строки в целое число.
Parameters:
(const string[])
const string[]Строка, которую Вы хотите конвертировать в целое число.

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

Целое число, извлеченное из строки.
new iValue = strval("250");


uudecode

Description:

Эта функция позволяет Вам декодировать закодированный в UU поток.
Parameters:
(dest[],const source[],maxlength=sizeof dest)
dest[]Строка-назначение для массива, декодированнной строки.
const source[]Исходная, закодированная в UU, строка.
maxlength=sizeof destМаксимальный размер строки-назначения для использования.
uudecode(decodedString, encodedString);


uuencode

Description:

Строка, которую вы можете декодировать функцией uudecode, должна быть закодирована этой функцией.
Parameters:
(dest[],const source[],numbytes,maxlength=sizeof dest)
dest[]Строка-назначение для декодированного потока.
const source[]Исходная незакодированная строка.
numbytesЧисло байт для кодирования, не должно превышать 45.
maxlength=sizeof destМаксимальная длина массива dest[].
uudecode(encodedString, normalString, 45);


valstr

Description:

конвертирует целое число в строку.
Parameters:
(dest[],value,pack=false)
dest[]Строка, в которое запишется значение.
valueКонвертируемое целое число.
pack=falseЗапакует строку, если true.
valstr(string, 454);


Функции для работы с временем (time.inc)

getdate

Description:

Получает текущую дату на сервере, которая запишется в переменные &year, &month и &day.
Parameters:
(&year=0,&month=0,&day=0)
&year=0Переданная по ссылке переменная, в которую запишется текущий год.
&month=0Переданная по ссылке переменная, в которую запишется текущий месяц.
&day=0Переданная по ссылке переменная, в которую запишется текущий день.
getdate(year, month, day);


gettime

Description:

Получает текущее время на сервере, которое запишется в переменные &hour, &minute и &second.
Parameters:
(&hour=0,&minute=0,&second=0)
&hour=0Переданная по ссылке переменная, в которую запишется текущий час.
&minute=0Переданная по ссылке переменная, в которую запишется текущая минута.
&second=0Переданная по ссылке переменная, в которую запишется текущая секунда.
gettime(Hour, Minute, Second);


tickcount

Description:

Эта функция может быть использована вместо GetTickCount, так как она возвращает число в миллисекундах с момента последнего запуска.
Parameters:
(&granularity=0)
&granularity=0Это переданное по ссылке отображение точности функции.

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

Число тиков с момента последнего запуска сервера.
new iTickCount = tickcount();


Пользовательские функции

strtok

Эта функция реализуется с помощью пользовательского скрипта, чтобы выспользоваться ею, вставьте в свой код ее описание {{Description|Сканирует строку на наличие символа (по дефолту это пробел) и возвращает аргумент номер которого указан в переменной (&index). Применяется в основном для команд, чтобы чтобы получать параметры после пробела.

Parameters:
(strtok(const string[], &index, separator))
const string[]Строка, которую нужно разделить.
&indexНомер аргумента который вы хотите вернуть.

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

аргумент номер которого указан в в переменной &index.
cmd = strtok(cmdtext, idx, ' ');
Personal tools