После смерти игрок не сразу спавнится, а умирает еще раз, а только потом спавнится. Как это исправить?
Вид для печати
После смерти игрок не сразу спавнится, а умирает еще раз, а только потом спавнится. Как это исправить?
OnPlayerDeath/OnPlayerSpawn покажите
- - - Добавлено - - -PHP код:
public OnPlayerDeath(playerid, killerid, reason)
{
if(PlayerInfo[killerid][pLogin] == false) SCM(playerid, 0xFF6347AA, "Необходимо залогинется!"),KickWithMessage(playerid);
if(reason == 38) kod[playerid] = 3,AntiCheatNadpis(playerid);
if(PlayerInfo[playerid][pZone] != 6 && PlayerInfo[playerid][pTeam] == 0) SetPlayerHealthAC(killerid, 100);
if(PlayerInfo[playerid][pZone] == 6) SetPlayerHealthAC(killerid, 30);
new string[10];
PlayerInfo[killerid][pKill]++;
PlayerInfo[playerid][pSmert]++;
format(string, sizeof(string), "Убил %s", PN(killerid)), SetPlayerChatBubble(playerid, string, -1, 30.0, 3000);
SendDeathMessage(killerid, playerid, reason);
SetPlayerScore(killerid, PlayerInfo[killerid][pKill]);
UpdateStats(killerid);
ResetPlayerWeapons(playerid);
GameTextForPlayer(killerid, "~r~+1 Kill", 1000, 3);
OnPlayerSpawn(playerid);
return true;
}
- - - Добавлено - - -PHP код:
public OnPlayerSpawn(playerid)
{
if(PlayerInfo[playerid][pLogin] == false) SCM(playerid, 0xFF6347AA, "Необходимо залогинется"),KickWithMessage(playerid);
ResetPlayerWeapons(playerid);
SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);
if(PlayerInfo[playerid][pZone] == 6) SetPlayerHealthAC(playerid,30);
else SetPlayerHealthAC(playerid,100);
SetPlayerSpawn(playerid);
return true;
}
SetPlayerSpawn(playerid); Нужен?
Вот тут (и далее в массивах с killerid) будет выход за пределы массива, когда убийцы не будет существовать.
И OnPlayerSpawn не нужен в OnPlayerDeath. Ибо первый сам вызывается после обработки всего кода в OnPlayerDeath
Код сами расположите в той последовательности, которая вам нужна. Я лишь показал структуру, по которой стоит формировать OnPlayerDeathPHP код:
public OnPlayerDeath(playerid, killerid, reason)
{
if(reason == 38) kod[playerid] = 3, AntiCheatNadpis(playerid);
new string[10];
ResetPlayerWeapons(playerid);
PlayerInfo[playerid][pSmert]++;
SendDeathMessage(killerid, playerid, reason);
if(killerid != INVALID_PLAYER_ID)
{
GameTextForPlayer(killerid, "~r~+1 Kill", 1000, 3);
UpdateStats(killerid);
SetPlayerScore(killerid, PlayerInfo[killerid][pKill]);
format(string, sizeof(string), "Убил %s", PN(killerid)), SetPlayerChatBubble(playerid, string, -1, 30.0, 3000);
PlayerInfo[killerid][pKill]++;
if(PlayerInfo[playerid][pZone] == 6) SetPlayerHealthAC(killerid, 30);
if(PlayerInfo[playerid][pZone] != 6 && PlayerInfo[playerid][pTeam] == 0) SetPlayerHealthAC(killerid, 100);
if(PlayerInfo[killerid][pLogin] == false) SCM(playerid, 0xFF6347AA, "Необходимо залогинется!"),KickWithMessage(playerid);
}
return true;
}