12.06.2017, 18:51
(
Last edited by stabker; 12/06/2017 at 10:52 PM.
)
Как-то так
Если совместить все сказанное мной, то PlayerInfo[playerid][pi_RaceMember] будет указывать на место игрока, потому что инфа в массиве RaceMemberInfo будет сортироваться по достижениям.
---
Если общий список отображаться не будет и интересует только место конкретного игрока, то можно и по-другому сделать. При условии, что все достижения хранятся в массиве с общей статистикой игрока, будет примерно так:
PHP Code:
enum playerinfo_enum
{
pi_RaceMember
}
new PlayerInfo[MAX_PLAYERS][playerinfo_enum];
enum racememberinfo_enum
{
rmi_Score,
rmi_PlayerID
}
new RaceMemberInfo[MAX_RACE_MEMBERS][racememberinfo_enum];
/*
Если игрок участвует в гонке, то PlayerInfo[playerid][pi_RaceMember] != -1 и при этом является индексом для RaceMemberInfo (там хранятся его достижения в гонке).
*/
Quote:
|
Не не, мне именно чтобы показывало место нынешнее игрока. 1 2 3 и так далее. В зависимости вышеупомянутых условий.
|
---
Если общий список отображаться не будет и интересует только место конкретного игрока, то можно и по-другому сделать. При условии, что все достижения хранятся в массиве с общей статистикой игрока, будет примерно так:
PHP Code:
new number; //мое место
foreach(new i : Player)
{
if(PlayerInfo[i][pi_RaceMember] && i != playerid) //этот чел участвует в гонке?
{
if(PlayerInfo[i][pi_RaceCPsDone] > PlayerInfo[playerid][pi_RaceCPsDone] || PlayerInfo[i][pi_RaceCPsDone] == PlayerInfo[playerid][pi_RaceCPsDone] && мое_расстояние_до_ближайшего_чекпоинта > его_расстояние_до_ближайшего_чекпоинта) //он ближе меня к финишу?
{
number ++; //значит мое место еще дальше в списке
}
}
}
printf("Мое место: %d", number + 1);


