Не понимаю в чём может быть причина.
#define Name(%0) PlayerInfo[%0][pNames] enum _:e_BATTLE_RESULT { BATTLE_PLAYER_LOSS = 0, BATTLE_PLAYER_WIN, BATTLE_PLAYER_TIME_OUT, BATTLE_PLAYER_DISCONNECT, BATTLE_PLAYER_LEAVE } stock FinishPlayer_Battle(playerid, type) { new BATTLE_RESULT[e_BATTLE_RESULT][/PHP], _result[][] = { "Поражение над", "Победили", "Не найден соперник", "Вышел из игры", "Зону сражения покинул" }; switch(type) { case 0: _enemy_cout = 1; case 1: _enemy_cout = 0; case 3: _enemy_cout = 3; case 4: _enemy_cout = 4; } format(string, 100, "[PVP]: Сражение подошло к концу. Результат: {FFFFFF}%s %s", _result[_enemy_cout], type == BATTLE_RESULT[BATTLE_PLAYER_TIME_OUT] ? (Name(playerid)) : ("")); // Тут ошибка. Когда убираю тернарник - всё норм. }
Использую так:
FinishPlayer_Battle(playerid, BATTLE_RESULT[BATTLE_PLAYER_DISCONNECT]);
UPD: Когда юзаю так, всё нормально:
new reason[MAX_PLAYER_NAME + 1]; if(type == BATTLE_RESULT[BATTLE_PLAYER_TIME_OUT]) else reason = ""; format(string, 144, "[PVP]: Сражение подошло к концу. Результат: {FFFFFF}%s %s", _result[_enemy_cout], reason);