Функции SA-MP (a_samp.inc)
AddPlayerClass
Эта функция добавляет новый класс в режим игры. Эта функция должна вызываться толкьо из вызываемой функции OnGameModeInit, в другом месте она не будет работать.
(modelid,Float:spawn_x,Float:spawn_y,Float:spawn_z,Float:z_angle,weapon1,weapon1_ammo,weapon2,weapon2_ammo,weapon3,weapon3_ammo)
modelid ID модели для скина игрока.
Float:spawn_x X-координата для стартовой позиции игрока.
Float:spawn_y Y-координата для стартовой позиции игрока.
Float:spawn_z Z-координата для стартовой позиции игрока.
Float:z_angle Угол поворота игрока после размещения в стартовой позиции.
weapon1 ID оружия для первого оружия игрока.
weapon1_ammo Размер аммуниции для первого оружия игрока.
weapon2 ID оружия для второго оружия игрока.
weapon2_ammo Размер аммуниции для второго оружия игрока.
weapon3 ID оружия для третьего оружия игрока.
weapon3_ammo Размер аммуниции для третьего оружия игрока.
AddPlayerClass(121, 2016.5950, 1545.0306, 10.8308, 90.5, 26, 250, 28, 250, 0, 0);
AddPlayerClassEx
Эта функция добавляет новый класс, так же как и AddPlayerClass, но еще предоставляет возможность выбрать игроку команду перед его размещением в стартовой позиции.
(teamid,modelid,Float:spawn_x,Float:spawn_y,Float:spawn_z,Float:z_angle,weapon1,weapon1_ammo,weapon2,weapon2_ammo,weapon3,weapon3_ammo)
teamid ID команды, в которую войдет игрок.
modelid ID модели для скина игрока.
Float:spawn_x X-координата для стартовой позиции игрока.
Float:spawn_y Y-координата для стартовой позиции игрока.
Float:spawn_z Z-координата для стартовой позиции игрока.
Float:z_angle Угол поворота игрока после размещения в стартовой позиции.
weapon1 ID оружия для первого оружия игрока.
weapon1_ammo Размер аммуниции для первого оружия игрока.
weapon2 ID оружия для второго оружия игрока.
weapon2_ammo Размер аммуниции для второго оружия игрока.
weapon3 ID оружия для третьего оружия игрока.
weapon3_ammo Размер аммуниции для третьего оружия игрока.
AddPlayerClass(1, 121, 2016.5950, 1545.0306, 10.8308, 90.5, 26, 250, 28, 250, 0, 0);
AddStaticPickup
Эта функция добавляет вещь, которую можно подобрать: здоровье, броня, оружие (Используйте ID МОДЕЛИ оружия, а НЕ ID оружия!) и объекты.
(model,type,Float:X,Float:Y,Float:Z)
model ID модели для подбираемой вещи.
type Тип размещаемой вещи.
Float:X X-координата для позиции вещи.
Float:Y Y-координата для позиции вещи.
Float:Z Z-координата для позиции вещи.
AddStaticPickup(371, 15, 1710.3359, 1614.3585, 10.1191);
AddStaticVehicle
AddStaticVehicle размещает транспорт в Вашем режиме игры. Функция должна вызываться из вызываемой функции OnGameModeInit для правильной работы, пока не будет готова новая транспортная система в SA-MP 0.2.
(modelid,Float:spawn_x,Float:spawn_y,Float:spawn_z,Float:z_angle,color1,color2)
modelid ID модели траспорта для добавления.
Float:spawn_x X-координата для добавляемого транспорта.
Float:spawn_y Y-координата для добавляемого транспорта.
Float:spawn_z Z-координата для добавляемого транспорта.
Float:z_angle Угол поворота для создаваемного транспорта.
color1 Первичный (primary) цвет транспорта.
color2 Вторичный (secondary) цвет транспорта.
AddStaticVehicle(520, 2503.34, 2345.34, -322.43, 311.43, 0, 0);
AddStaticVehicleEx
AddStaticVehicle размещает транспорт в Вашем режиме игры. Эта функция в точности такая же как и AddStaticVehicle, за исключением того, что она принимает параметр respawn_delay.
(modelid,Float:spawn_x,Float:spawn_y,Float:spawn_z,Float:z_angle,color1,color2,respawn_delay)
modelid ID модели траспорта для добавления.
Float:spawn_x X-координата для добавляемого транспорта.
Float:spawn_y Y-координата для добавляемого транспорта.
Float:spawn_z Z-координата для добавляемого транспорта.
Float:z_angle Угол поворота для создаваемного транспорта.
color1 Первичный (primary) цвет транспорта.
color2 Вторичный (secondary) цвет транспорта.
respawn_delay Задержка перед переразмещением транспорта в стартовой позиции.
AddStaticVehicleEx(520, 2503.34, 2345.34, -322.43, 311.43, 0, 0, 600);
Ban
Банит игрока на Вашем сервере. Игрок будет забанен на основе IP-адреса, та же поступает rcon-команда "ban".
(playerid)
playerid ID игрока, которого Вы хотите забанить.
Ban(0);
ChangeVehicleColor
Изменяет цвета транспорта, которые установлены функцией AddStaticVehicle(ex) или ранее этой же функцией.
(vehicleid,color1,color2)
vehicleid ID транспорта.
color1 Новый первичный (primary) цвет транспорта.
color2 Новый вторичный (secondary) цвет транспорта.
ChangeVehicleColor(100, 6, 6);
DisablePlayerCheckpoint
Отключить инициализированнные контрольные точки для игрока, в одно и тоже время игор может иметь тольку одну контрольную точку.
(playerid)
playerid ID игрока, для которого отключить текущую конотрольную точку.
DisablePlayerCheckpoint(playerid);
GameModeExit
Эта функция завершает текущий режим игры, и либо перезапускает его, либо запускает следующий режим, согласно Вашей конфигурации в server.cfg.
(Нет параметров)
GameModeExit();
GameTextForAll
Эта функция отображает большой текст поврех экрана у каждого игрока. Она может использоваться для разных целей.
(const string[],time,style)
const string[] Текст для отображения.
time Время, в течение которого будет показан текст, в миллисекундах.
style Стиль отображаемого текста.
GameTextForAll("This is an example gametext!", 5000, 3);
GameTextForPlayer
Эта функция делает то же самое, что и GameTextForAll(), но с тем различием, что она отображает текст только для одного игрока.
(playerid,const string[],time,style)
playerid ID игрока, у которого отобразится текст.
const string[] Текст для отображения.
time Время, в течение которого будет показан текст, в миллисекундах.
style Стиль отображаемого текста.
GameTextForPlayer(playerid, "Hi, welcome on my server!", 5000, 3);
GetMaxPlayers
Получает максимальное число игроков, которое может играть на Вашем сервере. Вы не можете использовать предопределенное MAX_PLAYERS вместо этой функции, так как оно всегда по умолчанию уставновлено в 100.
(Нет параметров)
Возвращает Максимальное число игроков.
new maxplayers = GetMaxPlayers();
GetPlayerColor
Эта функция возвращает текущий цвет игрока.
(playerid)
playerid ID игрока, цвет которого вы хотите знать.
Возвращает Цвет игрока в виде целого числа.
new playerColor = GetPlayerColor(playerid);
[edit] GetPlayerFacingAngle
Получает угол поворота текущего вида игрока. Это удобно, например, когда вы создаете систему наблюдения за игроком.
(playerid,&Float:ang)
playerid ID игрока, угол которого вы хотите знать.
&Float:ang Переданная по ссылке переменная, в которую записывается угол.
GetPlayerFacingAngle(playerid, angle);
GetPlayerHealth
Получает текущее здоровье игрока. Это может прекрасно использоваться, например, для обнаружения читов.
(playerid,&Float:health)
playerid ID игрока, здоровье которого вы хотите знать.
&Float:health Переданная по ссылке переменная, в которую записывается здоровье игрока.
GetPlayerHealth(playerid, health);
GetPlayerMoney
Получает количество денег, которыми обладает игрок на данный момент. Эта функция может использоваться для обнаружения читов, покупок вещей и т.д.
(playerid)
playerid ID игрока, количество денег которого вы хотите знать.
Возвращает Количество денег, которыми обладает игрок на данный момент.
new playerMoney = GetPlayerMoney(playerid);
GetPlayerName
Получает имя игрока и сохраняет его в многоячеистой переменной, которую вы передаете в качестве второго аргумента.
(playerid,const name[],len)
playerid ID игрока.
const name[] Переданная по ссылке переменная, в которую записывается имя.
len Число ячеек, которое будет присвоено переменной.
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
GetPlayerPos
Получает текущую позицию игрока и сохранить ее в переменных, указанный в трех последующих аргументах.
(playerid,&Float:x,&Float:y,&Float:z)
playerid ID игрока.
&Float:x Переданная по ссылке переменная, в которую записывается x-координата.
&Float:y Переданная по ссылке переменная, в которую записывается y-координата.
&Float:z Переданная по ссылке переменная, в которую записывается z-координата.
GetPlayerPos(playerid, x, y, z);
GetPlayerScore
Получает счет (число очков), которые имеются у игрока на данным момент, которые могут быть заданы функцией SetPlayerScore().
(playerid)
playerid ID игрока.
Возвращает Текущий счет игрока.
ne
w playerScore = GetPlayerScore(playerid);
GetPlayerState
Получает текущее состояние игрока, для проверки, управляет ли он транспортом, или идет пешком, или все еще помещается в стартовую позицию, и т.д.
(playerid)
playerid ID игрока, состояние которого выясняется.
Возвращает Текущее состояние игрока.
new playerState = GetPlayerState(playerid);
GetPlayerTeam
Получает ID команды, в которой состоит игрок на данный момент. Используется, например, для балансирования команд.
(playerid)
playerid ID игрока.
Возвращает Текущая команда игрока.
new playerTeam = GetPlayerTeam(playerid);
GetPlayerVehicleID
Получает ID транспорта, которым управляет игрок в данный момент. Она не возвращает ID модели транспорта.
(playerid)
playerid ID игрока.
Возвращает ID транспорта, которым управляет игрок в данный момент.
new playerVehicle = GetPlayerVehicleID(playerid);
GetVehiclePos
Вы можете использовать эту функцию, чтобы получить точную позицию названного транспорта. Позиция записывается в переданных по ссылке трех переменных x/y/z.
(vehicleid,&Float:x,&Float:y,&Float:z)
vehicleid ID транспорта.
&Float:x Переданная по ссылке переменная, в которую записывается x-координата.
&Float:y Переданная по ссылке переменная, в которую записывается y-координата.
&Float:z Переданная по ссылке переменная, в которую записывается z-координата.
GetVehiclePos(playerVehicle, x, y, z);
GetWeaponName
Эта функция может использоваться для получения имени оружия.
(weaponid,const weapon[],len)
weaponid ID оружия, имя которого вы хотите знать.
const weapon[] Переданная по ссылке переменная, в которую записывается имя оружия
len Число ячеек/длина переменной.
GetWeaponName(26, weaponName, 64);
GivePlayerMoney
Эта функция позволяет Вам либо дать, либо отнять у игрока деньги. Если игроку дать отрицательное число денег, то количество его денег уменьшиться.
(playerid,money)
playerid ID игрока.
money Число денег, которые вы хотите дать/отнять.
GivePlayerMoney(playerid, 10000);
GivePlayerWeapon
Дает игроку указанное оружие, вы можете указать, какое оружие и сколько аммуниции должен получить игрок.
(playerid,weaponid,ammo)
playerid ID игрока.
weaponid ID оружия, даваемого игроку.
ammo Количестов аммуниции, даваемое игроку вместе с оружием.
ID оружия: 0 Ничего 2 Гольф клюшка 3 Night Stick 4 нож 5 Бейсбольная бита 6 Лопата 7 Бильярдный кий 8 Катана 9 Бензопила 10 Фиолетовый фаллоимитатор 11 Белый фаллоимитатор 12 Длинный белый фаллоимитатор 13 Белый фаллоимитатор 2 14 Букет цветов 15 Трость 22 Пистолет 23 Пистолет с глушителем 24 Пустынный орёл (пистолет) 25 Ружьё 26 Обрезы 27 Боевое ружьё 28 Микро узи (Mac 10) 29 MP5 30 Калашников 31 M4 32 Tec9 33 Винтовка 41 Баллончик краски 42 Огнетушитель 44 Очки ночного видения 45 Инфракрасные очки 46 Парашют
GivePlayerWeapon(playerid, 26, 250);
IsPlayerAdmin
Определяет, вошел ли игрок с rcon-функциями.
(playerid)
playerid ID игрока.
Возвращает 1, если игрок - админ, 0,если нет.
if(IsPlayerAdmin(playerid)){
[edit] IsPlayerConnected
Эта функция может быть использована для проверки, подключен ли игрок к серверу.
(playerid)
playerid ID игрока.
Возвращает 1, если он подключен, 0, если нет.
if(IsPlayerConnected(playerid)){
IsPlayerInAnyVehicle
Эта функция может быть использована для проверки, находится ли игрок в каком-либо транспорте в данный момент.
(playerid)
playerid ID игрока.
Возвращает 1, если игрок находится в транспорте, 0, если нет.
if(IsPlayerInAnyVehicle(playerid)){
IsPlayerInCheckpoint
Проверяет, находится ли игрок внутри контрольной точки в данный момент. Функция может быть использована для свойств, точек телепортации или гонок, например.
(playerid)
playerid ID игрока.
Возвращает 1, если игрок внутри контрольной точки, 0, если нет.
if(IsPlayerInCheckpoint(playerid)){
IsPlayerInVehicle
Проверяет, находится ли игрок в указанном транспорте в данный момент. Запомните, вы должны использовать ID транспорта, а не ID модели транспорта!
(playerid,vehicleid)
playerid ID игрока.
vehicleid ID транспорта.
Возвращает 1, если игрок в этом транспорте, 0, если нет.
if(IsPlayerInVehicle(playerid, 32)){
Kick
Используйте эту команду, чтобы кикнуть игрока с Вашего сервера. Аналог rcon-команды kick.
Важное замечание: Известны случаи, когда игрок оставался подключенным к серверу после выполнения этой функции, рекомендуется использовать rcon-команду kick.
(playerid)
playerid ID игрока.
Kick(playerid);
PlayerPlaySound
Эта функция воспроизводит звук для игрока. Звуки могут быть добавлены для некоторых замечательных эффектов, но доступно лишь несколько звуков, потому тчо вы не можете загрузить никакие экстра-звуки.
Важное замечание: x/y/z-координаты, видимо, не оказывают большого влияния на звук.
(playerid,soundid,Float:x,Float:y,Float:z)
playerid ID игрока.
soundid ID звука.
Float:x X-координата места, где надо проиграть звук.
Float:y Y-координата места, где надо проиграть звук.
Float:z Z-координата места, где надо проиграть звук.
PlayerPlaySound(playerid, 1025, 0.0, 0.0, 0.0);
PutPlayerInVehicle
Вы можете использовать эту функцию, чтобы поместить игрока в указанный транспорт. Вы можете указать помимо ID транспорта еще и ID сиденья, которые предоставляют вам много настроек.
Важное замечание: Эта функция НЕ работает со всеми игроками за исключением игрока с ID, равным 0.
(playerid,vehicleid,seatid)
playerid ID игрока.
vehicleid ID транспорта.
seatid ID сиденья.
PutPlayerInVehicle(playerid, 0, 1);
RemovePlayerFromVehicle
Эта функция вытаскивает игрока из транспорта. Запомните, что вызываемая функция OnPlayerExitVehicle не сработает!
(playerid)
playerid ID игрока.
RemovePlayerFromVehicle(playerid);
ResetPlayerMoney
Сбрасывает деньги, которые имеются у игрока. Это может быть использовано при создании команды SetPlayerMoney.
(playerid)
playerid ID игрока.
ResetPlayerMoney(playerid);
ResetPlayerWeapons
Сбрасывает все оружие, которое носит игрок в данный момент. Применима, например, если кто-то убивает своего напарника по команде, то все его оружие заменяется цветочками.
(playerid)
playerid ID игрока.
ResetPlayerWeapons(playerid);
SendClientMessage
SendClientMessage может быть использована для отправки сообщения прямо игроку в окно чата. Чтобы отправить сообщение всем подключенным пользователям, смотрите SendClientMessageToAll
(playerid,color,const message[])
playerid ID игрока.
color Значение цвета, которым будет написано сообщение у игрока.
const message[] Сообщение, которое Вы хотите отправить.
SendClientMessage(playerid, 0xFFFF00AA, "This is a yellow example text!");
SendClientMessageToAll
Эта функция делает то же самое, что и SendClientMessage, но с той лишь разницей, что сообщение отправляется всем подключенным к серверу пользователям.
(color,const message[])
color Значение цвета, которым будет написано сообщение у игроков.
const message[] Сообщение, которое Вы хотите отправить.
SendClientMessageToAll(0xFFFF00AA, "This is a yellow example text to everyone!");
SendDeathMessage
Отправляет сообщение о смерти на сервер, которое отобразится в правой части экрана у игрока, под HUD'ом.
(killer,killed,weapon)
killer ID игрока, который убил кого-либо.
killed ID игрока, которого убили.
weapon Причина смерти игрока.
SendDeathMessage(killerid, playerid, reason);
SetCameraBehindPlayer
Восстановить камеру на место позади игрока после использования функций, подобных SetPlayerCameraPos.
Важное замечание: Эта функция работает только тогда, когда игрок еще не поместился в стартовую позицию. Используется в OnPlayerSpawn, например.
(playerid)
playerid ID игрока.
SetCameraBehindPlayer(playerid);
SetGameModeText
Устанавилвает имя режима игры, который отображается в списке серверов.
(const string[])
const string[] Имя режима игры.
SetGameModeText("Las Venturas Team Death Match");
SetPlayerCameraLookAt
Устанавливает направление и место, куда будет смотреть камера игрока. Вам следует использовать ее в комбинации с SetPlayerCameraPos.
Важное замечание: Вам придется использовать функцию SetCameraBehindPlayer для восстановления камеры игрока.
(playerid,Float:x,Float:y,Float:z)
playerid ID игрока.
Float:x X-координата, куда будет смотреть камера.
Float:y Y-координата, куда будет смотреть камера.
Float:z Z-координата, куда будет смотреть камера.
SetPlayerCameraLookAt(playerid, 324.34, 54.122. -173.35);
SetPlayerCameraPos
Устанавливает новую позицию камеры игрока.
Важное замечание: Вам придется использовать функцию SetCameraBehindPlayer для восстановления камеры игрока.
(playerid,Float:x,Float:y,Float:z)
playerid ID игрока.
Float:x Новая x-координата камеры.
Float:y Новая y-координата камеры.
Float:z Новая z-координата камеры.
SetPlayerCameraPos(playerid, 652.23, 457.21, 10.84);
SetPlayerCheckpoint
Установить текущую контрольную точку для игрока. В один и тот же момоент времени вы можете использовать только одну контрольную точку, вам следует использовать DisablePlayerCheckpoint, чтобы сначала уничтожить предыдущую.
(playerid,Float:x,Float:y,Float:z,Float:size)
playerid ID игрока.
Float:x X-координата для новой контрольной точки.
Float:y Y-координата для новой контрольной точки.
Float:z Z-координата для новой контрольной точки.
Float:size Размер контрольной точки.
SetPlayerCheckpoint(playerid, 354.12, 932.12, 19.34, 2.0);
SetPlayerColor
Эта функция позволяет Вам изменить текущий цвет игрока.
(playerid,color)
playerid ID игрока.
color Новый цвет игрока, целое число.
#define COLOR_GREY 0xAFAFAFAA #define COLOR_GREEN 0x33AA33AA #define COLOR_RED 0xAA3333AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_WHITE 0xFFFFFFAA #define COLOR_BLUE 0x0000BBAA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_ORANGE 0xFF9900AA #define COLOR_BLACK 0x000000AA #define COLOR_PINK 0xFF66FFAA #define COLOR_CYAN 0x00BFF3AA #define COLOR_LOL 0x4B00B0AA #define COLOR_QUERY 0xFFFFFFFF #define COLOR_PERSONAL 0x8080FFAA #define COLOR_IMPORTANT 0xFF0000AA #define COLOR_GLOBAL 0xD0D0FFAA #define COLOR_BROADCAST 0x0066CCAA #define COLOR_LIME 0x10F441AA #define COLOR_MAGENTA 0xFF00FFFF #define COLOR_NAVY 0x000080AA #define COLOR_AQUA 0xF0F8FFAA #define COLOR_CRIMSON 0xDC143CAA #define COLOR_FLBLUE 0x6495EDAA #define COLOR_BISQUE 0xFFE4C4AA #define COLOR_CHARTREUSE 0x7FFF00AA #define COLOR_BROWN 0xA52A2AAA #define COLOR_CORAL 0xFF7F50AA #define COLOR_GOLD 0xB8860BAA #define COLOR_GREENYELLOW 0xADFF2FAA #define COLOR_INDIGO 0x4B00B0AA #define COLOR_IVORY 0xFFFF82AA #define COLOR_LAWNGREEN 0x7CFC00AA #define COLOR_SEAGREEN 0x20B2AAAA #define COLOR_LIMEGREEN 0x32CD32AA #define COLOR_MIDNIGHTBLUE 0x191970AA #define COLOR_MAROON 0x800000AA #define COLOR_OLIVE 0x808000AA #define COLOR_ORANGERED 0xFF4500AA #define COLOR_SEAGREEN2 0x2E8B57AA #define COLOR_SPRINGGREEN 0x00FF7FAA #define COLOR_TOMATO 0xFF6347AA #define COLOR_YELLOWGREEN 0x9ACD32AA #define COLOR_MEDIUMAQUA 0x83BFBFAA #define COLOR_MEDIUMMAGENTA 0x8B008BAA
SetPlayerColor(playerid, 0xFFFF00AA);
SetPlayerColor(playerid, 4294901930);
SetPlayerFacingAngle
Устанавливает текущий угол поворота игрока.
(playerid,Float:ang)
playerid ID игрока.
Float:ang Новый угол поворота игрока.
SetPlayerFacingAngle(playerid, 90.0);
SetPlayerHealth
Изменяет текущее здоровье игрока. Параметр health указывается в процентах, так 100 означает, что полоса здоровья полная.
(playerid,Float:health)
playerid ID игрока.
Float:health Новое здоровье, вещественное число.
SetPlayerHealth(playerid, 100);
SetPlayerInterior
Изменяет текущее местоположение игрока. Список всех известных на данный момент мест и их позиции можно найти на этой странице.
(playerid,interiorid)
playerid ID игрока.
interiorid ID нового места (или Universe ID) игрока.
SetPlayerInterior(playerid, 0);
SetPlayerPos
Изменяет позицию игрока на другую позицию на карте.
(playerid,Float:x,Float:y,Float:z)
playerid ID игрока.
Float:x X-координата для новой позиции игрока.
Float:y Y-координата для новой позиции игрока.
Float:z Z-координата для новой позиции игрока.
SetPlayerPos(playerid, 34.236, 934.323, 12.345);
SetPlayerScore
Обновляет счет игрока до другого значения.
(playerid,score)
playerid ID игрока.
score Новый счет игрока.
SetPlayerScore(playerid, 10000);
SetPlayerSkin
Изменяет скин игрока. Некоторые скины могут привести к вылету игры.
(playerid,skinid)
playerid ID игрока.
skinid ID нового скина для игрока.
SetPlayerSkin(playerid, 121);
SetPlayerTeam
Важное замечание: Эта функция может приводить к вылету, и она не синхронизирована с другими игроками. Не используйте.
Используйте эту функцию для изменения команды игрока. Применяется для установки баланса между командами, например.
(playerid,teamid)
playerid ID игрока.
teamid ID команды, членом которой станет игрок.
SetPlayerTeam(playerid, TEAM_BALLAS);
SetPlayerWorldBounds
Эта функция может быть использована для изменения границ для игрока в игровом мире, мест, до куда он может добраться.
(playerid,Float:x_max,Float:x_min,Float:y_max,Float:y_min)
playerid ID игрока.
Float:x_max Макс. x-координата того, куда игрок может попасть.
Float:x_min Мин. x-координата того, куда игрок может попасть.
Float:y_max Макс. y-координата того, куда игрок может попасть.
Float:y_min Мин. y-координата того, куда игрок может попасть.
SetPlayerWorldBounds(playerid, 20.0, 0.0, 20.0, 0.0);
SetSpawnInfo
Изменяет информацию по размещению указанного игрока, вместо всего класса.
(playerid,team,skin,Float:x,Float:y,Float:z,Float:rotation,weapon1,weapon1_ammo,weapon2,weapon2_ammo,weapon3,weapon3_ammo)
playerid ID игрока.
teamid ID команды, членом которой станет игрок.
modelid ID модели для скина игрока.
Float:spawn_x X-координата стартовой позиции игрока.
Float:spawn_y Y-координата стартовой позиции игрока.
Float:spawn_z Z-координата стартовой позиции игрока.
Float:z_angle Угол поворота игрока после его размещения в стартовой позиции.
weapon1 ID оружия для первого оружия игрока.
weapon1_ammo Размер аммуниции для первого оружия игрока.
weapon2 ID оружия для второго оружия игрока.
weapon2_ammo Размер аммуниции для второго оружия игрока.
weapon3 ID оружия для третьего оружия игрока.
weapon3_ammo Размер аммуниции для третьего оружия игрока.
SetSpawnInfo(playerid, 1, 121, 2016.5950, 1545.0306, 10.8308, 90.5, 26, 250, 28, 250, 0, 0);
SetTeamCount
Устанавливает максимальное число команд в игре.
(count)
count Максимальное число команд.
SetTeamCount(5);
SetVehicleParamsForPlayer
Изменяет указанные параметры транспорта для игрока. Она позволяет установить стрелку над игроком или заблокировать двери.
(vehicleid,playerid,objective,doorslocked)
vehicleid ID транспорта.
playerid ID игрока.
objective Должен ли быть транспорт целью ?
doorslocked Хотите ли Вы, чтобы двери транспорта были заблокированы ?
SetVehicleParamsForPlayer(vehicleid, playerid, 1, 1);
SetVehiclePos
Изменяет позицию транспорта. Если кто-то находится в транспорте, то он телепортируется вместе с ним.
Важное замечание: Эта функция работает ТОЛЬКО в том случае, если кто-то побывал в транспорте с тех пор, как тот разместился в стартовой позиции.
(vehicleid,Float:x,Float:y,Float:z)
vehicleid ID транспорта.
Float:x X-координата новой позиции транспорта.
Float:y Y-координата новой позиции транспорта.
Float:z Z-координата новой позиции транспорта.
SetVehiclePos(vehicleid, 343.46, 459.34, 19.23);
SetVehicleToRespawn
SetVehicleToRespawn позволяет Вам переразместить в стартовую позицию указанный транспорт, даже когда в это время им управлет какой-нибудь игрок.
(vehicleid)
vehicleid ID транспорта.
SetVehicletoRespawn(vehicleid);
SetVehicleZAngle
Эта функция позволяет Вам изменить угол поворота указанного транспорта.
(vehicleid,Float:z_angle)
vehicleid ID транспорта.
Float:z_angle Новый угол поворта транспорта.
SetVehicleZAngle(vehicleid, 270.0);
SetWorldTime
Изменяет текущее время в игровом мире. Параметр hour - это текущий час в 24-часовом формате.
(hour)
hour Устанавливаемый час в игре.
SetWorldTime(12);
ShowNameTags
Используйте эту функцию для включения/выключения подсвечивания над игроками их имен. Полезна, если вы хотите создать скрытный режим игры. По умолчанию стоит именно такой режим.
(show)
show 1 - показывать, 0 - скрывать подсвечивание имен.
ShowNameTags(0);
ShowPlayerMarkers
Эта функция может быть использована для включения/выключения на карте маркеров для игроков.
(show)
show 1 - показывать маркеры, 0 - скрывать маркеры.
ShowPlayerMarkers(0);
SpawnPlayer
Эта функция может быть использована, чтобы переразместить игрока в стартовой позиции, хорошо подходит, например, после установки различных позиций камеры.
(playerid)
playerid ID игрока.
SpawnPlayer(playerid);
TogglePlayerControllable
Эта функция позволяет Вам включать/выключать разрешение двигаться для игрока. Используется для замораживания игроков, которых Вы подозреваете в читерстве, например.
(playerid,moveable)
playerid ID игрока.
moveable true - игрок сможет двигаться, false - не сможет.
TogglePlayerControllable(playerid, 0);
Функции серверного окна
getarg
Важное замечание: НЕ работает с массивами в качестве параметра !
Получает указанный аргумент из функции, очень удобно использовать с функциями, которые имеют динамическое число аргументов.
(arg,index=0)
arg ID агргумента, значение которого вы хотите получить.
index=0 Ячейка, с которой надо читать, если аргумент - строка.
Возвращает Одна ячейка.
getarg(0);
heapspace
Heapspace позволяет Вам освободить место в куче, общей области памяти.
(Нет параметров)
Возвращает Количество байтов для сохранения.
new sparedBytes = heapspace();
numargs
Эта функция возвращает число аргументов, переданных в функцию с динамическим числом аргументов.
(Нет параметров)
Возвращает Число переданных аргументов.
new argumentCount = numargs();
print
Выводит неформатированнную строку в консоли.
(const string[])
const string[] Строку, которую вы хотите отобразить.
print("This is an example output.");
printf
Printf выводит форматированную строку в консоль с указанными опциями форматирования.
(const format[],...)
const format[] Формат, в котором Вы хотите вывести предложение.
%b представлет число в двоичном корне.
%c представлет символ.
%d представлет двойное (или нормальное) целое число.
%f представлет вещественно число.
%i представлет целое число.
%s представлет строку.
%x представлет число в шестнадцатиричном формате.
printf("This %s has %d words.", "string", 4);
setarg
Изменяет значение данного аргумента.
(arg,index=0,value)
arg ID аргумента, значение которого вы хотите изменить.
index=0 Ячейка аргумента.
value Новое значение
setarg(0, 3, "e");
Свойства
deleteproperty
Эта функция позволяет Вам удалить ранее установленное свойство.
(id=0,const name[]="",value=cellmin)
id=0 Определяет, какую виртуальную машину использовать.
const name[]="" Определяет, использовать ли вызов по имени, Вам следует указать здесь "".
value=cellmin Это идентифицирует переменную. Используйте хэш-функцию для вычисления ее из строки.
deleteproperty(0, "", 123984334);
existproperty
Вы можете использовать эту функцию для проверки, существует ли указанное свойство. Вы можете использовать функцию Adler 32 для генерации хеша.
(id=0,const name[]="",value=cellmin)
id=0 Используемая виртуальная машина, Вам следует указать здесь ноль.
const name[]="" Использовать свойство через его имя, Вам следует указать здесь "".
value=cellmin Хэш свойства, возможно сгенерированный функцией Adler 32.
if(existproperty(0, "", 9384932)){
getproperty
Получает указанное свойство из памяти, возвращаемоая строка вернется как пакованная !
(id=0,const name[]="",value=cellmin,&string[]="")
id=0 Используемая виртуальная машина, Вам следует указать здесь ноль.
const name[]="" Имя свойства, Вам следует указать здесь "".
value=cellmin Хэш свойства, может быть сгенерирован через Adler 32.
&string[]="" Переданная по ссылке переменная, в которую запишется результат.
getproperty(0, "", 93473413, value);
setproperty
Используйте эту функцию для сохранения значение в свойство.
(id=0,const name[]="",value=cellmin,const string[]="")
id=0 Используемая виртуальная машина, Вам следует указать здесь ноль.
const name[]="" Имя свойства, Вам следует указать здесь "".
value=cellmin Хэш свойства, может быть сгенерирован через Adler 32.
const string[]="" Действительно значение свойства, будет запаковываться, когда используется.
setproperty(0, "", 9723423, value);
Функции UDP-широковещания
sendpacket
Эта функция позволяет Вам псолать пакет через интернет или на вашу локальную машину.
(const packet[],size,const destination[]="")
const packet[] Отправляемый пакет, строка.
size Размер запакованного пакета, например, sizeof(packet).
const destination[]="" Адрес назначения, в формате 0.0.0.0:0000. Пакет вещается на всю сеть, если слева пусто.
sendpacket("Hello world!", 12);
sendstring
Посылает строку в определенное место, или вещает ее по всей сети.
(const message[],const destination[]="")
const message[] Строка, которую вы хотите отправить.
const destination[]="" Адрес назначения, в формате 0.0.0.0:0000. Пакет вещается на всю сеть, если слева пусто.
sendstring("Hello world!", "127.0.0.1:7779");
Функции для работы с файлами (file.inc)
fblockread
Эта функция позволяет Вам прочитать данные из файла без кодируюищих и завершающих символов (в двоичном формате)
(handle,buffer[],size=sizeof buffer)
handle Используемый handle файла, открытый функцией fopen()
buffer[] Буфер для сохранения прочитанных данных.
size=sizeof buffer Число ячеек для чтения.
fblockread(gFile, string, 256);
fblockwrite
Записывает данные в файл в двоичном формате, игнорируя концы строк и кодировку.
(handle,const buffer[],size=sizeof buffer)
handle Используемый handle файла, открытый функцией fopen().
const buffer[] Данные для записи в файл.
size=sizeof buffer Число ячеек для записи.
fblockwrite(gFile, "Save this data!", 15);
fclose
Закрывает handle файла, ранее открытый функцией fopen. Очень важно использовать эту функцию псоле того, как вы закончили чтение/запись!
(handle)
handle Закрываемый handle файла, открытый функцией fopen().
fclose(gFile);
fexist
Проверяет, есть ли указанный файл в папке с Вашими скриптами.
(const pattern[])
const pattern[] Имя файла для проверки на существование.
Возвращает 1 - если файл существует, 0 - если нет.
if(fexist("datafile.txt")){
fgetchar
Эта функция читает один символ из файла и сохраняет его в переменной, переданной по ссылке.
(handle,&value,utf8=true)
handle Используемый handle файла, открытый функцией fopen().
&value Переменая, в которую запишется символ.
utf8=true Прочитать символ в кодировке UTF8.
fgetchar(gFile, handle, false);
flength
Проверяет длину уже открытого файла.
(handle)
handle Используемый handle файла, открытый функцией fopen().
Возвращает Длина файла в байтах.
new fileLength = flength(gFile);
fmatch
Эта функция проверяет, соответствует ли часть данного файла указанной строке.
(name[],const pattern[],index=0,size=sizeof name)
name[] Имя проверяемого файла.
const pattern[] Шаблон соответствия.
index=0 Смещение для начала поиска.
size=sizeof name Количество символов, в которых будет производится поиск.
fmatch("searchFile.txt", "Peter", 0);
fopen
Открывает указанный файл для чтения, записи или для обеих операций. Эта функция нужна для большинства файловых функций.
Важное замечание: Эта функция может привести к вылету Вашей игры, когда папка с скриптами или файл в ней не существуют.
(const name[],mode=io_readwrite)
const name[] Имя файла, который Вы хотите открыть.
mode=io_readwrite Режим, в котором вы хотите открыть файл.
Возвращает Handle файла.
new File:gFile = fopen("exampleFile.txt", io_readwrite);
fputchar
Эта функция записывает один символ в файл.
(handle,value,utf8=true)
handle Используемый handle файла, открытый функцией fopen().
value Символ, который вы хотите записать.
utf8=true Должен ли символ быть записан в кодировке UTF8 ?
fputchar(gFile, 'e', false);
fread
Используйте эту функцию, если Вы хотите прочитать строку из файла. Вам понадобится цикл for или while для чтения нескольких строк.
(handle,&string[],size=sizeof string,pack=false)
handle Используемый handle файла, открытый функцией fopen().
&string[] Переданная по ссылке строка, в которую запишутся данные.
size=sizeof string Число байт для чтения.
pack=false Должна ли строка быть запакованной ?
fread(gFile, string, sizeof(string));
fremove
Удаляет существующий файл из папки с Вашими скриптами.
Важное замечание: Эта функция может привести к вылету Вашей игры ,если запрошенный файл не существует.
(const name[])
const name[] Имя файла, который Вы хотите удалить.
fremove("exampleFile.txt");
fseek
Изменяет текущую позицию в файле. Вы можете перемещаться по файлу вперед или назад.
(handle,position=0,whence=seek_start)
handle Используемый handle файла, открытый функцией fopen().
position=0 Позиция для помещения файлового курсора.
whence=seek_start Способ, по которому нужно переместиться по файлу.
fseek(gFile, 25);
ftemp
Эта функция открывает файл в папке "tmp" или "temp" для чтения или записи. Файл удалится полсле того, как Вы закроете его функцией fclose().
Важное замечание: Эта функция может привести к вылету Вашей игры, если соответствуящая папка не создана.
(Нет параметров)
Возвращает Handle файла
new File:gFile = ftemp();
fwrite
Записывает указанную строку или линию в файл. Помните, что файл должен быть открыт для записи.
(handle,const string[])
handle Используемый handle файла, открытый функцией fopen().
const string[] Строка, которую Вы хотите записать в файл.
fwrite(gFile, "This will be put in the file!");
Вещественные функции (float.inc)
float
Эта функция конвертирует целое число в вещественное.
(value)
value Целое число, которое Вы хотите конверитровать в вещественное.
new Float:fVar = float(122);
floatabs
Возвращает абсолютное значение вещественного числа.
(value)
value Вещественно число
Возвращает Абсолютное значение вещественного числа.
new Float:fAbs = floatabs(-123.54);
floatadd
Вычисляет сумму двух вещественных чисел, то же самое, что и Float1 + Float2.
(oper1,oper2)
oper1 Первое вещественное число.
oper2 Вещественное число, которое вы хотите добавить к первому.
Возвращает Сумма двух вещественных чисел.
new Float:fSum = floatadd(123.45, 678.90);
floatcmp
Сравнивает два вещественных числа.
(oper1,oper2)
oper1 Первое сравниваемое вещественное число.
oper2 Второе сравниваемое вещественное число.
Возвращает 1 - если первый аргумент больше, -1 - если второй больше.
new compare = floatcmp(127.45, 127.450);
floatcos
Вычисляет правильный косинус вещественного числа с заданной размерностью угла.
(value,anglemode=radian)
value Вещественное число.
anglemode=radian Размерность угла.
Возвращает Косинус данного вещественного числа.
new Float:fCos = floatcos(87.343, radian);
floatdiv
Делит вещественное число на значение, указанное вещественным числом, делителем.
(dividend,divisor)
dividend Делимое вещественное число.
divisor Число (вещественное), делитель.
Возвращает Частное в виде вещественного числа.
new Float:fDivide = floatdiv(128.00, 32.00);
floatfract
Вычисляет и возвращяет дробную часть вещественного числа.
(value)
value Вещественное число.
Возвращает Дробная часть числа.
new Float:fFract = floatfract(3249.34);
floatlog
Используйте эту функцию, если хотите узнать логарифм вещественного числа.
(value,base=10.0)
value Вещественное число.
base=10.0 Степень логарифма.
Возвращает Логарифм числа.
new Float:fLog = floatlog(128.0);
floatmul
Перемножает два вещественных числа и возвращает произведение.
(oper1,oper2)
oper1 Первый множитель.
oper2 И второй.
Возвращает Произведение чисел.
new Float:fMul = floatmul(128.1,7.9);
floatpower
Возводит вещественное число в степень.
(value,exponent)
value Возводимое вещественное число.
exponent Степень возведения в виде вещественного числа.
Возвращает Вещственное число, возведенное в степень.
new Float:fPower = floatpower(128.0, 8.0); // 1024
floatround
Округляет вещественное число указанным методом.
(value,:method=floatround_round)
value Вещественное число.
:method=floatround_round Метод округления, который вы хотите использовать.
Возвращает Округленное целое число.
new round = floatround(128.9, floatround_floor);
floatsin
Вычисляет синус данного вещественного числа, заданного размерностью в радианах, градусах или градиентах.
(value,anglemode:mode=radian)
value Вещественное число.
mode=radian Размерность угла.
Возвращает Синус вещественного числа.
new Float:fSin = floatsin(82.4);
floatsqroot
Вычисляет квадратный корень данного вещественного числа.
(value)
value Вещественное число.
Возвращает Квадратный корень из вещественного числа.
new Float:fSqroot = floatsqroot(743.34);
floatsub
Уменьшает первое число oper1 на число, указанное в oper2.
(oper1,oper2)
oper1 Вещественное число, которое вы хотите уменьшить на заданное второе.
oper2 Значение, на которое надо уменьшить первое число.
Возвращает Значение первого аргумента после вычитания.
new Float:fSub = floatsub(233.54, 23.34);
floattan
Вычисляет тангенс данного вещественного числа, заданного в первом аргументе в радианах, градиентах или градусах.
(value,mode=radian)
value Вещественное число.
mode=radian Размерность угла, которую Вы хотите использовать.
Возвращает Тангенс числа, заданный вещественным числом.
new Float:fTan = floattan(87.4);
floatstr
Конвертирует строку в соответствующее вещественное число.
(const string[])
const string[] Строка, которую Вы хотите конвертироват ьв вещественно число.
Возвращает Запрошенное вещественное число.
new Float:fFloat = floatstr("124.34");
Строковые функции (string.inc)
format
Format позволяет Вам использовать переменные в строке; так же как и в printf(), но эта функция возвращает полученную строку.
(const format[],...)
const format[] Формат, в котором вы хотите напечатать последовательность.
%b представлет число в двоичном формате.
%c представлет символ.
%d представлет тип double (или нормлаьное целое число).
%f представлет вещественное число.
%i представлет целое число.
%s представлет строку.
%x представлет число в шестнадцатиричном формате.
format(string, sizeof(string), "This %s has %d words.", "string", 4);
ispacked
Проверяет, запакована ли данная строка, и возвращает результат.
(const string[])
const string[] Строка для проверки.
Возвращает 1 - если строка запакована, 0 - если нет.
if(ispacked(string)){
memcpy
memcpy может быть использована для копирования байтов из одного места в другое.
(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
Эта функция конкатенирует две строки в назанченую по ссылке строку.
(dest[],const source[],maxlength=sizeof dest)
dest[] Назначенная строка для конкатенирования.
const source[] Исходная строка.
maxlength=sizeof dest Максимальная длина строки-назначения.
Возвращает Длина новой полученной строки-назначения.
strcat(destination, "Hi, how are you?", sizeof(destination));
strcmp
Сравнивает две строки друг с другом, с такими опциями, как игнорирование заглавных букв или максимальная длина. Очень часто используется в OnPlayerCommandText.
(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
Эта функция удаляет часть строки.
(string[],start,end)
string[] Строка, из которой вы хотите удалить часть.
start Смещение для удаления.
end Конец, где надо прекратить удаление (start + number символов)
strdel("Peter isn't cool", 8, 10);
strfind
Используйте эту функцию для поиска подстроки в строке.
(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
Эта функция вставляет строку в другую строку, заданные аргументами substr и string.
(string[],const substr[],pos,maxlength=sizeof string)
string[] Строка, в которую вы хотите вставить подстроку.
const substr[] Подстрока, которую вы хотите вставить в строку.
pos Позиция для вставки.
maxlength=sizeof string Максимальный вставляемый размер подстроки.
strins("f3llah1n is a ", "silly boy", 15);
strlen
Эта функция может быть использована для проверки длины указанной строки.
(const string[])
const string[] Строка, длину которой вы хотите знать.
Возвращает Дляина в виде целого числа.
new stringLength = strlen("This is an example string.");
strmid
Извлекает диапазон символов из строки.
(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
Эта функция может быть использована для запаковки строки.
(dest[],const source[],maxlength=sizeof dest)
dest[] Переданная по ссылке стррока-назначение для сохранения запакованной строки.
const source[] Исходная оригинальная строка.
maxlength=sizeof dest Максимальный размер строки-назначения для использования.
strpack(string, "Hi, how are you?");
strunpack
Эта функция распаковывает запакованную строку в строку-назначение.
(dest[],const source[],maxlength=sizeof dest)
dest[] Строка-назначение для распакованной строки.
const source[] Текущая запакованная строка, которую нужно распаковать.
maxlength=sizeof dest Длина строки-назначения.
strunpack(string, packedString);
strval
strval может быть использована для конвертирования строки в целое число.
(const string[])
const string[] Строка, которую Вы хотите конвертировать в целое число.
Возвращает Целое число, извлеченное из строки.
new iValue = strval("250");
uudecode
Эта функция позволяет Вам декодировать закодированный в UU поток.
(dest[],const source[],maxlength=sizeof dest)
dest[] Строка-назначение для массива, декодированнной строки.
const source[] Исходная, закодированная в UU, строка.
maxlength=sizeof dest Максимальный размер строки-назначения для использования.
uudecode(decodedString, encodedString);
uuencode
Строка, которую вы можете декодировать функцией uudecode, должна быть закодирована этой функцией.
(dest[],const source[],numbytes,maxlength=sizeof dest)
dest[] Строка-назначение для декодированного потока.
const source[] Исходная незакодированная строка.
numbytes Число байт для кодирования, не должно превышать 45.
maxlength=sizeof dest Максимальная длина массива dest[].
uudecode(encodedString, normalString, 45);
valstr
конвертирует целое число в строку.
(dest[],value,pack=false)
dest[] Строка, в которое запишется значение.
value Конвертируемое целое число.
pack=false Запакует строку, если true.
valstr(string, 454);
Другие функции
getdate
Получает текущую дату на сервере, которая запишется в переменные &year, &month и &day.
(&year=0,&month=0,&day=0)
&year=0 Переданная по ссылке переменная, в которую запишется текущий год.
&month=0 Переданная по ссылке переменная, в которую запишется текущий месяц.
&day=0 Переданная по ссылке переменная, в которую запишется текущий день.
getdate(year, month, day);
GetTickCount
Получает число процессорных тиков со времени последнего перезапуска сервера. Эта функция работает только в Windows!
(Нет параметров)
Возвращает Число процессорных тиков со времени последнего перезапуска сервера.
new Ticks = GetTickCount();
gettime
Получает текущее время на сервере, которое запишется в переменные &hour, &minute и &second.
(&hour=0,&minute=0,&second=0)
&hour=0 Переданная по ссылке переменная, в которую запишется текущий час.
&minute=0 Переданная по ссылке переменная, в которую запишется текущая минута.
&second=0 Переданная по ссылке переменная, в которую запишется текущая секунда.
gettime(Hour, Minute, Second);
KillTimer
Уничтожает указанный таймер, это необходимо только для таймеров, которые продолжают работать.
(timerid)
timerid ID таймера, который вы хотите уничтожить.
KillTimer(gameTimerID);
random
Получает псевдослучайное число, которое будет числом различных комбинаций, начиная с 0 и кончая числом, меньшим числа.
(max)
max Максимальное число для случайной последовательности.
Возвращает Случайное число между 0 и max.
new iRandomNumber = random(25); // случайное число между 0 и 24
SetTimer
Устанавливает таймер на сервере, который может сработать 1 раз или больше. Вы не можете передавать парамтеры в функцию, вызываемую таймером.
(funcname[],interval,repeating)
funcname[] Вызываемая функция, заданная строкой.
interval Интервал между срабатываниями таймера в милллисекундах. Интервал 1000 означает каждую секунду.
repeating false - для одиночного срабатывания, true - для цикла.
Возвращает ID таймера.
new gameTimerID = SetTimer("ExitGameFunc", 600000, 0);
sizeof
Возвращает предопределенный размер переменной.
(variable[])
variable[] Переменная, размер которой вы хотите знать.
Возвращает Размер перменной в виде числа ячеек.
new string[256]; new length = sizeof(string); // length = 256
tickcount
Эта функция может быть использована вместо GetTickCount, так как она возвращает число в миллисекундах с момента последнего запуска.
(&granularity=0)
&granularity=0 Это переданное по ссылке отображение точности функции.
Возвращает Число тиков с момента последнего запуска сервера.
new iTickCount = tickcount();