SA-MP Forums Archive
Проблема со спидометром - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Проблема со спидометром (/showthread.php?tid=530119)



Проблема со спидометром - Bren - 05.08.2014

Здравствуйте решил сделать простой спидометр но столкнулся с такой проблемой при проверки.
После того когда 1 игрок садиться в машину ему высвечивается текстдрайв. Все вроде нормально
но после того когда садить второй игрок в машину и он видет скорость машины 1 игрока а сам игрок стоит на месте.

Сам код:

PHP код:
new TextSpeedometer;
new 
SpeedTimer[MAX_PLAYERS];
forward SpeedometerTime(playerid);
public 
OnPlayerStateChange(playeridnewstateoldstate)
{
    if(
newstate == PLAYER_STATE_DRIVER)
    {
            
TextDrawShowForPlayer(playeridSpeedometer);
            
SpeedTimer[playerid] = SetTimerEx("SpeedometerTime"100true"d"playerid);
    }
    if(
oldstate == PLAYER_STATE_DRIVER)
    {
        
TextDrawHideForPlayer(playeridSpeedometer);
        
KillTimer(SpeedTimer[playerid]);
    }
    return 
1;
}
stock SpeedVehicle(playerid)
{
    new 
Float:ST[4];
    if(
IsPlayerInAnyVehicle(playerid))
    
GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
    else 
GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
    
ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 100.3;// * 213.3; | 100.3
    
return floatround(ST[3]);
}
public 
SpeedometerTime(playerid)
{
    new 
string[100];
    
format(string,sizeof(string),"KM/H: %d"SpeedVehicle(playerid));
    
TextDrawSetString(Speedometerstring);
    return 
1;




Re: Проблема со спидометром - Stepashka - 05.08.2014

Тебе надо персональные TextDraw создавать.


Re: Проблема со спидометром - Bren - 05.08.2014

new Text: Speedometer[MAX_PLAYERS];
TextDrawBackgroundColor(Speedometer[playerid], 255);
Так сделать?


Re: Проблема со спидометром - Stepashka - 05.08.2014

Да но с поправкой на CreatePlayerTextDraw