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

From SA-MP Wiki

Jump to: navigation, search

Contents

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

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

fblockread

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


fblockwrite

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


fclose

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


fexist

Проверяет, есть ли указанный файл в папке с Вашими скриптами.
Parameters:
({{{1}}})
const pattern[]Имя файла для проверки на существование.
Возвращает1 - если файл существует, 0 - если нет.
if(fexist("datafile.txt")){


fgetchar

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


flength

Проверяет длину уже открытого файла.
Parameters:
({{{1}}})
handleИспользуемый handle файла, открытый функцией fopen().
ВозвращаетДлина файла в байтах.
new fileLength = flength(gFile);


fmatch

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


fopen

Открывает указанный файл для чтения, записи или для обеих операций. Эта функция нужна для большинства файловых функций.
Важное замечание: Эта функция может привести к вылету Вашей игры, когда папка с скриптами или файл в ней не существуют.
Parameters:
({{{1}}})
const name[]Имя файла, который Вы хотите открыть.
mode=io_readwriteРежим, в котором вы хотите открыть файл.
ВозвращаетHandle файла.
new File:gFile = fopen("exampleFile.txt", io_readwrite);


fputchar

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


fread

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


fremove

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


fseek

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


ftemp

Эта функция открывает файл в папке "tmp" или "temp" для чтения или записи. Файл удалится полсле того, как Вы закроете его функцией fclose().
Важное замечание: Эта функция может привести к вылету Вашей игры, если соответствуящая папка не создана.
Parameters:
({{{1}}})
ВозвращаетHandle файла
new File:gFile = ftemp();


fwrite

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


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

float

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


floatabs

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


floatadd

Вычисляет сумму двух вещественных чисел, то же самое, что и Float1 + Float2.
Parameters:
({{{1}}})
oper1Первое вещественное число.
oper2Вещественное число, которое вы хотите добавить к первому.
ВозвращаетСумма двух вещественных чисел.
new Float:fSum = floatadd(123.45, 678.90);


floatcmp

Сравнивает два вещественных числа.
Parameters:
({{{1}}})
oper1Первое сравниваемое вещественное число.
oper2Второе сравниваемое вещественное число.
Возвращает1 - если первый аргумент больше, -1 - если второй больше.
new compare = floatcmp(127.45, 127.450);


floatcos

Вычисляет правильный косинус вещественного числа с заданной размерностью угла.
Parameters:
({{{1}}})
valueВещественное число.
anglemode=radianРазмерность угла.
ВозвращаетКосинус данного вещественного числа.
new Float:fCos = floatcos(87.343, radian);


floatdiv

Делит вещественное число на значение, указанное вещественным числом, делителем.
Parameters:
({{{1}}})
dividendДелимое вещественное число.
divisorЧисло (вещественное), делитель.
ВозвращаетЧастное в виде вещественного числа.
new Float:fDivide = floatdiv(128.00, 32.00);


floatfract

Вычисляет и возвращяет дробную часть вещественного числа.
Parameters:
({{{1}}})
valueВещественное число.
ВозвращаетДробная часть числа.
new Float:fFract = floatfract(3249.34);


floatlog

Используйте эту функцию, если хотите узнать логарифм вещественного числа.
Parameters:
({{{1}}})
valueВещественное число.
base=10.0Степень логарифма.
ВозвращаетЛогарифм числа.
new Float:fLog = floatlog(128.0);


floatmul

Перемножает два вещественных числа и возвращает произведение.
Parameters:
({{{1}}})
oper1Первый множитель.
oper2И второй.
ВозвращаетПроизведение чисел.
new Float:fMul = floatmul(128.1,7.9);


floatpower

Возводит вещественное число в степень.
Parameters:
({{{1}}})
valueВозводимое вещественное число.
exponentСтепень возведения в виде вещественного числа.
ВозвращаетВещственное число, возведенное в степень.
new Float:fPower = floatpower(128.0, 8.0); // 1024


floatround

Округляет вещественное число указанным методом.
Parameters:
({{{1}}})
valueВещественное число.
:method=floatround_roundМетод округления, который вы хотите использовать.
ВозвращаетОкругленное целое число.
new round = floatround(128.9, floatround_floor);


floatsin

Вычисляет синус данного вещественного числа, заданного размерностью в радианах, градусах или градиентах.
Parameters:
({{{1}}})
valueВещественное число.
mode=radianРазмерность угла.
ВозвращаетСинус вещественного числа.
new Float:fSin = floatsin(82.4);


floatsqroot

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


floatsub

Уменьшает первое число oper1 на число, указанное в oper2.
Parameters:
({{{1}}})
oper1Вещественное число, которое вы хотите уменьшить на заданное второе.
oper2Значение, на которое надо уменьшить первое число.
ВозвращаетЗначение первого аргумента после вычитания.
new Float:fSub = floatsub(233.54, 23.34);


floattan

Вычисляет тангенс данного вещественного числа, заданного в первом аргументе в радианах, градиентах или градусах.
Parameters:
({{{1}}})
valueВещественное число.
mode=radianРазмерность угла, которую Вы хотите использовать.
ВозвращаетТангенс числа, заданный вещественным числом.
new Float:fTan = floattan(87.4);


floatstr

Конвертирует строку в соответствующее вещественное число.
Parameters:
({{{1}}})
const string[]Строка, которую Вы хотите конвертироват ьв вещественно число.
ВозвращаетЗапрошенное вещественное число.
new Float:fFloat = floatstr("124.34");


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

format

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


ispacked

Проверяет, запакована ли данная строка, и возвращает результат.
Parameters:
({{{1}}})
const string[]Строка для проверки.
Возвращает1 - если строка запакована, 0 - если нет.
if(ispacked(string)){


memcpy

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


strcat

Эта функция конкатенирует две строки в назанченую по ссылке строку.
Parameters:
({{{1}}})
dest[]Назначенная строка для конкатенирования.
const source[]Исходная строка.
maxlength=sizeof destМаксимальная длина строки-назначения.
ВозвращаетДлина новой полученной строки-назначения.
strcat(destination, "Hi, how are you?", sizeof(destination));


strcmp

Сравнивает две строки друг с другом, с такими опциями, как игнорирование заглавных букв или максимальная длина. Очень часто используется в OnPlayerCommandText.
Parameters:
({{{1}}})
const string1[]Первая сравниваемая строка.
const string2[]Строка, которую вы хотите сравнить с string1.
ignorecase=falseИгнорировать заглавные буквы, если true.
length=cellmaxМаксимальное число проверяемых ячеек.
Возвращает0 - если строки равны между собой.
if(strcmp(cmdtext, "/me", true) == 0){


strdel

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


strfind

Используйте эту функцию для поиска подстроки в строке.
Parameters:
({{{1}}})
const string[]Строка, в которой будет производиться поиск (haystack).
const sub[]Искомая строка (needle).
ignorecase=falseИгнорировать заглавные буквы, если true.
pos=0Смещение для начала поиска.
ВозвращаетВхождение подстроки, -1 - если не найдено.
new instring = strfind("Are you in here?", "you", true);


strins

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


strlen

Эта функция может быть использована для проверки длины указанной строки.
Parameters:
({{{1}}})
const string[]Строка, длину которой вы хотите знать.
ВозвращаетДляина в виде целого числа.
new stringLength = strlen("This is an example string.");


strmid

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


strpack

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


strunpack

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


strval

strval может быть использована для конвертирования строки в целое число.
Parameters:
({{{1}}})
const string[]Строка, которую Вы хотите конвертировать в целое число.
ВозвращаетЦелое число, извлеченное из строки.
new iValue = strval("250");


uudecode

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


uuencode

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


valstr

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


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

getdate

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


gettime

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


tickcount

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


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

strtok

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

Parameters:
({{{1}}})
const string[]Строка, которую нужно разделить.
&indexНомер аргумента который вы хотите вернуть.
Возвращаетаргумент номер которого указан в в переменной &index.
cmd = strtok(cmdtext, idx, ' ');
Personal tools