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

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск
м
Строка 60: Строка 60:
 
CMD:spawnpos(playerid)
 
CMD:spawnpos(playerid)
 
{
 
{
// Создадим переменные и запишем в них текущую позицию игрока
+
// Создадим переменные и запишем в них текущую позицию игрока + угол поворота персонажа
new Float:x, Float:y, Float:z;
+
new Float:x, Float:y, Float:z, Float:a;
 
GetPlayerPos(playerid, x, y, z);
 
GetPlayerPos(playerid, x, y, z);
 
+
GetPlayerFacingAngle(playerid, a);
// Создадим переменную и запишем текущий поворот персонажа игрока
+
new Float:ang;
+
GetPlayerFacingAngle(playerid, ang);
+
  
 
// Передадим записанные данные в SetSpawnInfo
 
// Передадим записанные данные в SetSpawnInfo
 
// Указав в качестве ID команды и ID скина текущие значения,  
 
// Указав в качестве ID команды и ID скина текущие значения,  
 
// узнав их через соответствующие функции
 
// узнав их через соответствующие функции
SetSpawnInfo(playerid, GetPlayerTeam(playerid), GetPlayerSkin(playerid), x, y, z, ang, 0, 0, 0, 0, 0, 0);
+
SetSpawnInfo(playerid, GetPlayerTeam(playerid), GetPlayerSkin(playerid), x, y, z, a, 0, 0, 0, 0, 0, 0);
 
return SendClientMessage(playerid, -1, "Позиция для спавна сохранена");
 
return SendClientMessage(playerid, -1, "Позиция для спавна сохранена");
 
}
 
}

Версия 20:25, 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, Float:a;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);

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


См. также: