SetSpawnInfo — различия между версиями

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск
Строка 17: Строка 17:
 
{{Param
 
{{Param
 
| Float:x, Float:x, Float:z
 
| Float:x, Float:x, Float:z
| Координаты места появления игрока после следующего спавна.
+
| Координаты места появления игрока при следующем спавне.
 
}}
 
}}
 
{{Param
 
{{Param

Версия 20:23, 7 декабря 2018

Описание:

Устанавливает данные для следующего спавна игрока.

Параметры:

(playerid, team, skin, Float:x, Float:y, Float:z, Float:rotation, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo)
playerid ID игрока, ник которого требуется изменить.
team ID команды (0-254; 255 - Без команды).
skinid ID скина (0-73, 75-311).
Float:x, Float:x, Float:z Координаты места появления игрока при следующем спавне.
Float:rotation Угол поворота персонажа игрока, который будет задан при спавне.
weapon1 ID первого оружия, которое будет выдано игроку при спавне.
weapon1_ammo Количество боеприпасов для первого оружия.
weapon2 ID второго оружия, которое будет выдано игроку при спавне.
weapon2_ammo Количество боеприпасов для второго оружия.
weapon3 ID третьего оружия, которое будет выдано игроку при спавне.
weapon3_ammo Количество боеприпасов для третьего оружия.



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

1, в случае успешного выполнения, иначе 0 (игрок не подключен).

Info rhombus.png
Примечание
При спавне сначала обрабатывается информация, которая была передана в SetSpawnInfo (ID скина/координаты и т.п.), и лишь потом вызывается OnPlayerSpawn. Учитывайте это, прописывая в OnPlayerSpawn функции, изменяющие данные, присутствующие в SetSpawnInfo.
Если сначала вызвать SetSpawnInfo, а затем изменить скин игрока через SetPlayerSkin на отличный от указанного в SetSpawnInfo, то при следующем спавне игроку будет выдан скин, указанный в SetSpawnInfo, а не тот, который был указан позже в SetPlayerSkin.


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

// Команда будет работать только в случае, если в OnPlayerSpawn нет SetPlayerPos, которые бы изменяли записанную позицию
CMD:spawnpos(playerid)
{
    // Создадим переменные и запишем в них текущую позицию игрока
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);

    // Создадим переменную и запишем текущий поворот персонажа игрока
    new Float:ang;
    GetPlayerFacingAngle(playerid, ang);

    // Передадим записанные данные в SetSpawnInfo
    // Указав в качестве ID команды и ID скина текущие значения,
    // узнав их через соответствующие функции
    SetSpawnInfo(playerid, GetPlayerTeam(playerid), GetPlayerSkin(playerid), x, y, z, ang, 0, 0, 0, 0, 0, 0);
    return SendClientMessage(playerid, -1, "Позиция для спавна сохранена");
}


См. также: