2 разных PlayerTextDraw почему-то меняются местами друг с другом
#1

У меня есть текстдрав GPS навигатора, в котором счётчик времени и текстдрав спидометра.

Пример создания текстдрава навигатора:

gps_td_info[playerid] = CreatePlayerTextDraw(playerid,520.374755, 138.083404, "TIME:_00:00");
PlayerTextDrawLetterSize(playerid,gps_td_info[playerid], 0.406998, 1.419999);
PlayerTextDrawAlignment(playerid,gps_td_info[playerid], 1);
PlayerTextDrawColor(playerid,gps_td_info[playerid], -1378294017);
PlayerTextDrawSetShadow(playerid,gps_td_info[playerid], 0);
PlayerTextDrawSetOutline(playerid,gps_td_info[playerid], -1);
PlayerTextDrawBackgroundColor(playerid,gps_td_info[playerid], 255);
PlayerTextDrawFont(playerid,gps_td_info[playerid], 1);
PlayerTextDrawSetProportional(playerid,gps_td_info[playerid], 1);
PlayerTextDrawSetShadow(playerid,gps_td_info[playerid], 0);

PlayerTextDrawShow(playerid, gps_td_info[playerid]);

И если он активен, то раз в секунде делаю:

PlayerTextDrawSetString(playerid,gps_td_info[playerid],string);

string содержит обновленноё время.

Работает отлично. Но до тех пор, пока я не сажусь в машину, и не появляется текстдрав спидометра.

Текстдрав спидометра работает по тому же принципу. Если я в машине и показан спидометр, то раз в секунду показываю обновлённую скорость через PlayerTextDrawSetString.


Заметил 3 вида поведения:
1. Всё работает как надо. Спидометр показывает текущую скорость в правом нижнем углу, навигатор показывает таймер в правом верхнем углу.
2. Текстдрав gps навигатора пропадает, а его текст (в данном случае таймер) каждую секунду чередуется с отображением текущей скорости в правом нижнем углу в спидометре.
Т.е. 1 секунду на спидометре нормально отображается скорость,а вторую секунду там отображается таймер из навигатора.
3. То же самое, что и во втором пункте, только всё это мигает уже на месте навигатора. То скорость, то таймер.

Не заметил никаких закономерностей. Работает такое через раз.
Появилось это давно, и так как случалось не всегда, то и жаловались не часто. Поэтому связать с чем-то я не могу.

Почему такое может быть?
Reply
#2

Если есть удаление этих текстдравов где-то, перепроверь, обнуляются ли переменные. И вообще, сделай логирование ID текстдравов, если обнуление не поможет.
Вероятно где-то удаляется один из текстдравов, но переменная с ID не обнуляется, а когда создаётся новый текстдрав, он занимает тот же ID и оба таймера обновляют уже один и тот же текстдрав разной информацией.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)