Как сделать систему обгона?
#15

Как-то так

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:
Originally Posted by jakebat
View Post
Не не, мне именно чтобы показывало место нынешнее игрока. 1 2 3 и так далее. В зависимости вышеупомянутых условий.
Если совместить все сказанное мной, то PlayerInfo[playerid][pi_RaceMember] будет указывать на место игрока, потому что инфа в массиве RaceMemberInfo будет сортироваться по достижениям.

---

Если общий список отображаться не будет и интересует только место конкретного игрока, то можно и по-другому сделать. При условии, что все достижения хранятся в массиве с общей статистикой игрока, будет примерно так:
PHP Code:
new number//мое место
foreach(new Player)
{
    if(
PlayerInfo[i][pi_RaceMember] && != playerid//этот чел участвует в гонке?
    
{
        if(
PlayerInfo[i][pi_RaceCPsDone] > PlayerInfo[playerid][pi_RaceCPsDone] || PlayerInfo[i][pi_RaceCPsDone] == PlayerInfo[playerid][pi_RaceCPsDone] && мое_расстояние_до_ближайшего_чекпоинта его_расстояние_до_ближайшего_чекпоинта//он ближе меня к финишу?
        
{
            
number ++; //значит мое место еще дальше в списке
        
}
    }
}
printf("Мое место: %d"number 1); 
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)