Приветствую господа, подскажите пожалуйста, как сделать чтоб при PlayerDeath, игрок не спавнился через 10 секунд? а ждал пока не поступит сигнал?
new PlayerIsReady[MAX_PLAYERS];
public OnPlayerDeath(playerid, killerid, reason)
{
// Допустим, ваш сигнал для спавна имеет ID 1
PlayerIsReady[playerid] = false;
SetTimerEx("RespawnPlayer", 10000, false, "i", playerid);
}
public RespawnPlayer(playerid)
{
if(PlayerIsReady[playerid])
{
SetPlayerHealth(playerid, 100);
SetPlayerPos(playerid, SpawnX, SpawnY, SpawnZ);
PlayerIsReady[playerid] = false;
// Дополнительные действия при спавне игрока
}
else
{
// Игрок не готов к спавну, ждем сигнала
}
}
public OnPlayerSpawn(playerid)
{
PlayerIsReady[playerid] = true;
}
[ServerEvent(Event.PlayerDeath)]
public void OnPlayerDeath(Player player, Player killer, uint reason)
{
Accounts account = player.GetData<Accounts>(Accounts.Account_Key);
if (!Accounts.OnPlayerLogin(player)) return;
account.death = 1;
NAPI.Util.ConsoleOutput($"{account.death}");
NAPI.ClientEvent.TriggerClientEvent(player, "CEF:CLIENT::PLAYER_DEATH_FOR_WOLRD");
NAPI.ClientEvent.TriggerClientEvent(player, "PlayerFreeze", true);
player.Health = 100;
}
public void RespawnPlayer(Player player)
{
Accounts account = player.GetData<Accounts>(Accounts.Account_Key);
if (account == null) return;
if (account.death == 0)
{
player.Health = 50;
new Vector3(-429.29593, 1109.9119, 327.6819);
account.death = 0;
// Дополнительные действия при спавне игрока
}
else
{
// Игрок не готов к спавну, ждем сигнала
}
}
[ServerEvent(Event.PlayerSpawn)]
public void OnPlayerSpawn(Player player)
{
RespawnPlayer(player);
Accounts account = player.GetData<Accounts>(Accounts.Account_Key);
NAPI.Util.ConsoleOutput($" я того рот !!!");
/* player.Health = 50;
player.Armor = 50;
player.Dimension = 0;*/
}
Тебя GPT завел в заблуждение это так не работает.Ну я сделал код из Pawna в Rage но не помогло(
Всё равно спавнит в определённой точки.
Код:[ServerEvent(Event.PlayerDeath)] public void OnPlayerDeath(Player player, Player killer, uint reason) { Accounts account = player.GetData<Accounts>(Accounts.Account_Key); if (!Accounts.OnPlayerLogin(player)) return; account.death = 1; NAPI.Util.ConsoleOutput($"{account.death}"); NAPI.ClientEvent.TriggerClientEvent(player, "CEF:CLIENT::PLAYER_DEATH_FOR_WOLRD"); NAPI.ClientEvent.TriggerClientEvent(player, "PlayerFreeze", true); player.Health = 100; } public void RespawnPlayer(Player player) { Accounts account = player.GetData<Accounts>(Accounts.Account_Key); if (account == null) return; if (account.death == 0) { player.Health = 50; new Vector3(-429.29593, 1109.9119, 327.6819); account.death = 0; // Дополнительные действия при спавне игрока } else { // Игрок не готов к спавну, ждем сигнала } } [ServerEvent(Event.PlayerSpawn)] public void OnPlayerSpawn(Player player) { RespawnPlayer(player); Accounts account = player.GetData<Accounts>(Accounts.Account_Key); NAPI.Util.ConsoleOutput($" я того рот !!!"); /* player.Health = 50; player.Armor = 50; player.Dimension = 0;*/ }
Это всё таки GPT)))Тебя GPT завел в заблуждение это так не работает.
Как минимум для этого мне надо оригинальный код где ты хочешь сделать эти изменения.Это всё таки GPT)))
Подскажи как правильно пожалуйста
[ServerEvent(Event.PlayerDeath)]
public void OnPlayerDeath(Player player, Player killer, uint reason)
{
Accounts account = player.GetData<Accounts>(Accounts.Account_Key);
if (!Accounts.OnPlayerLogin(player)) return;
account.death = 1;
NAPI.Util.ConsoleOutput($"{account.death}");
NAPI.ClientEvent.TriggerClientEvent(player, "CEF:CLIENT::PLAYER_DEATH_FOR_WOLRD");
NAPI.ClientEvent.TriggerClientEvent(player, "PlayerFreeze", true);
player.Health = 100;
}
public void RespawnPlayer(Player player)
{
Accounts account = player.GetData<Accounts>(Accounts.Account_Key);
if (account == null) return;
if (account.death == 0)
{
player.Health = 50;
new Vector3(-429.29593, 1109.9119, 327.6819);
account.death = 0;
// Дополнительные действия при спавне игрока
}
else
{
// Игрок не готов к спавну, ждем сигнала
}
}
[ServerEvent(Event.PlayerSpawn)]
public void OnPlayerSpawn(Player player)
{
RespawnPlayer(player);
Accounts account = player.GetData<Accounts>(Accounts.Account_Key);
NAPI.Util.ConsoleOutput($" я того рот !!!");
/* player.Health = 50;
player.Armor = 50;
player.Dimension = 0;*/
}
Зайди в лс. скинул пример решения.код пустой, выше прописан DeathPlayer
и SpawnPlayer
код пишу для себя с нуля.
Код:[ServerEvent(Event.PlayerDeath)] public void OnPlayerDeath(Player player, Player killer, uint reason) { Accounts account = player.GetData<Accounts>(Accounts.Account_Key); if (!Accounts.OnPlayerLogin(player)) return; account.death = 1; NAPI.Util.ConsoleOutput($"{account.death}"); NAPI.ClientEvent.TriggerClientEvent(player, "CEF:CLIENT::PLAYER_DEATH_FOR_WOLRD"); NAPI.ClientEvent.TriggerClientEvent(player, "PlayerFreeze", true); player.Health = 100; } public void RespawnPlayer(Player player) { Accounts account = player.GetData<Accounts>(Accounts.Account_Key); if (account == null) return; if (account.death == 0) { player.Health = 50; new Vector3(-429.29593, 1109.9119, 327.6819); account.death = 0; // Дополнительные действия при спавне игрока } else { // Игрок не готов к спавну, ждем сигнала } } [ServerEvent(Event.PlayerSpawn)] public void OnPlayerSpawn(Player player) { RespawnPlayer(player); Accounts account = player.GetData<Accounts>(Accounts.Account_Key); NAPI.Util.ConsoleOutput($" я того рот !!!"); /* player.Health = 50; player.Armor = 50; player.Dimension = 0;*/ }