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

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск
м
Строка 5: Строка 5:
 
{{Param
 
{{Param
 
| playerid
 
| playerid
| ID игрока, ник которого требуется изменить.
+
| ID игрока.
 
}}
 
}}
 
{{Param
 
{{Param
 
| team
 
| team
| [[SetPlayerTeam|ID команды]] <code>(0-254; 255 - Без команды)</code>.
+
| [[ID команд|ID команды]], к которой будет относиться игрок.
 
}}
 
}}
 
{{Param
 
{{Param
 
| skinid
 
| skinid
| [[Список скинов|ID скина]] <code>(0-73, 75-311)</code>.
+
| [[Список скинов|ID скина]] (0-73, 75-311).
 
}}
 
}}
 
{{Param
 
{{Param
Строка 24: Строка 24:
 
}}
 
}}
 
{{Param
 
{{Param
| weapon1
+
| weapon1, weapon2, weapon3
| ID первого [[Список оружия|оружия]], которое будет выдано игроку при спавне.
+
| [[Список оружия|ID оружий]], которые будут выданы игроку при спавне.
 
}}
 
}}
 
{{Param
 
{{Param
| weapon1_ammo
+
| weapon1_ammo, weapon2_ammo, weapon3_ammo
| Количество боеприпасов для первого [[Список оружия|оружия]].
+
| Количество боеприпасов для первого, второго и третьего оружия соответственно.
}}
+
{{Param
+
| weapon2
+
| ID второго [[Список оружия|оружия]], которое будет выдано игроку при спавне.
+
}}
+
{{Param
+
| weapon2_ammo
+
| Количество боеприпасов для второго [[Список оружия|оружия]].
+
}}
+
{{Param
+
| weapon3
+
| ID третьего [[Список оружия|оружия]], которое будет выдано игроку при спавне.
+
}}
+
{{Param
+
| weapon3_ammo
+
| Количество боеприпасов для третьего [[Список оружия|оружия]].
+
 
}}
 
}}
  
 
{{Returns
 
{{Returns
| <code>1</code>, в случае успешного выполнения, иначе <code>0</code> (игрок не подключен).
+
| <code>1</code> в случае успешного выполнения, иначе <code>0</code> (игрок не подключен).
 
}}
 
}}
 
{{NoteInfo
 
{{NoteInfo
| При спавне сначала обрабатывается информация, которая была передана в <code>SetSpawnInfo</code> (ID скина/координаты и т.п.), и лишь потом вызывается <code>[[OnPlayerSpawn]]</code>. Учитывайте это, прописывая в <code>OnPlayerSpawn</code> функции, изменяющие данные, присутствующие в <code>SetSpawnInfo</code>.  
+
| При спавне сначала обрабатывается информация, которая была указана в <code>SetSpawnInfo()</code> (ID скина/координаты и т.п.), и лишь потом вызывается <code>[[OnPlayerSpawn]]()</code>. Имейте это в виду, когда будете использовать в <code>OnPlayerSpawn()</code> функции, которые перезаписывают данные, указанные в <code>SetSpawnInfo()</code>.  
| Если сначала вызвать <code>SetSpawnInfo</code>, а затем изменить скин игрока через <code>SetPlayerSkin</code> на отличный от указанного в <code>SetSpawnInfo</code>, то при следующем спавне игроку будет выдан скин, указанный в <code>SetSpawnInfo</code>, а не тот, который был указан позже в <code>SetPlayerSkin</code>.
+
| Если сначала вызвать <code>SetSpawnInfo()</code>, а затем изменить скин игрока через <code>[[SetPlayerSkin]]()</code> на отличный от указанного в <code>SetSpawnInfo()</code>, то при следующем спавне игроку будет выдан скин, указанный в <code>SetSpawnInfo()</code>, а не тот, который был указан позже в <code>SetPlayerSkin()</code>.
 
}}
 
}}
 
{{Example}}
 
{{Example}}
 
<pawn>
 
<pawn>
// Команда будет работать только в случае, если в OnPlayerSpawn нет SetPlayerPos, которые бы изменяли записанную позицию
+
// Команда будет работать только в том случае, если в OnPlayerSpawn() нет вызовов SetPlayerPos()
 +
// и SetPlayerFacingAngle(), изменяющих указанные через SetSpawnInfo() координаты/угол поворота.
 
CMD:spawnpos(playerid)
 
CMD:spawnpos(playerid)
 
{
 
{
// Создадим переменные и запишем в них текущую позицию игрока + угол поворота персонажа
+
// Создадим переменные и запишем в них текущую позицию игрока + угол поворота персонажа.
 
new Float:x, Float:y, Float:z, Float:a;
 
new Float:x, Float:y, Float:z, Float:a;
 
GetPlayerPos(playerid, x, y, z);
 
GetPlayerPos(playerid, x, y, z);
 
GetPlayerFacingAngle(playerid, a);
 
GetPlayerFacingAngle(playerid, a);
  
// Передадим записанные данные в SetSpawnInfo
+
// Передадим записанные данные в SetSpawnInfo. В качестве ID команды и ID скина укажем
// Указав в качестве ID команды и ID скина текущие значения,
+
// текущие значения, узнав их через соответствующие функции.
// узнав их через соответствующие функции
+
 
SetSpawnInfo(playerid, GetPlayerTeam(playerid), GetPlayerSkin(playerid), x, y, z, a, 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, "Позиция для спавна сохранена");

Версия 21:22, 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 команды, к которой будет относиться игрок.
skinid ID скина (0-73, 75-311).
Float:x, Float:x, Float:z Координаты места появления игрока при следующем спавне.
Float:rotation Угол поворота персонажа игрока, который будет задан при спавне.
weapon1, weapon2, weapon3 ID оружий, которые будут выданы игроку при спавне.
weapon1_ammo, weapon2_ammo, weapon3_ammo Количество боеприпасов для первого, второго и третьего оружия соответственно.



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

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

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


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

// Команда будет работать только в том случае, если в OnPlayerSpawn() нет вызовов SetPlayerPos()
// и SetPlayerFacingAngle(), изменяющих указанные через SetSpawnInfo() координаты/угол поворота.
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, "Позиция для спавна сохранена");
}


См. также: