SetSpawnInfo — различия между версиями
Материал из Pro-Pawn Wiki
DeimoS (обсуждение | вклад) |
|||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 5: | Строка 5: | ||
{{Param | {{Param | ||
| playerid | | playerid | ||
− | | ID игрока | + | | ID игрока. |
}} | }} | ||
{{Param | {{Param | ||
| team | | team | ||
− | | [[ | + | | [[ID команд|ID команды]], к которой будет относиться игрок. |
}} | }} | ||
{{Param | {{Param | ||
| skinid | | skinid | ||
− | | [[ | + | | [[Скины|ID скина]] (0-73, 75-311). |
}} | }} | ||
{{Param | {{Param | ||
| Float:x, Float:x, Float:z | | Float:x, Float:x, Float:z | ||
− | | Координаты места появления игрока | + | | Координаты места появления игрока при следующем спавне. |
}} | }} | ||
{{Param | {{Param | ||
Строка 29: | Строка 29: | ||
{{Param | {{Param | ||
| weapon1_ammo | | weapon1_ammo | ||
− | | Количество боеприпасов для первого | + | | Количество боеприпасов для первого оружия. |
}} | }} | ||
{{Param | {{Param | ||
| weapon2 | | weapon2 | ||
− | | ID второго | + | | ID второго оружия, которое будет выдано игроку при спавне. |
}} | }} | ||
{{Param | {{Param | ||
| weapon2_ammo | | weapon2_ammo | ||
− | | Количество боеприпасов для второго | + | | Количество боеприпасов для второго оружия. |
}} | }} | ||
{{Param | {{Param | ||
| weapon3 | | weapon3 | ||
− | | ID третьего | + | | ID третьего оружия, которое будет выдано игроку при спавне. |
}} | }} | ||
{{Param | {{Param | ||
| weapon3_ammo | | weapon3_ammo | ||
− | | Количество боеприпасов для третьего | + | | Количество боеприпасов для третьего оружия. |
}} | }} | ||
{{Returns | {{Returns | ||
− | | <code>1</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>, а затем изменить скин игрока через <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; | + | new Float:x, Float:y, Float:z, Float:a; |
GetPlayerPos(playerid, x, y, z); | 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); | |
− | + | ||
− | // Передадим записанные данные в SetSpawnInfo | + | |
− | + | ||
− | // узнав их через соответствующие функции | + | |
− | SetSpawnInfo(playerid, GetPlayerTeam(playerid), GetPlayerSkin(playerid), x, y, z, | + | |
return SendClientMessage(playerid, -1, "Позиция для спавна сохранена"); | return SendClientMessage(playerid, -1, "Позиция для спавна сохранена"); | ||
} | } |
Текущая версия на 10:54, 29 апреля 2019
Описание:
Устанавливает данные для следующего спавна игрока.
Параметры:
(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 | ID первого оружия, которое будет выдано игроку при спавне. |
weapon1_ammo | Количество боеприпасов для первого оружия. |
weapon2 | ID второго оружия, которое будет выдано игроку при спавне. |
weapon2_ammo | Количество боеприпасов для второго оружия. |
weapon3 | ID третьего оружия, которое будет выдано игроку при спавне. |
weapon3_ammo | Количество боеприпасов для третьего оружия. |
Возвращаемое значение:
1
в случае успешного выполнения, иначе 0
(игрок не подключен).
Примечание |
При спавне сначала обрабатывается информация, которая была указана в 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, "Позиция для спавна сохранена");
}
// и 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, "Позиция для спавна сохранена");
}
См. также: