SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 02/01/2018, 12:38 PM   #1
Josipo
Big Clucker
 
Join Date: Dec 2010
Posts: 98
Reputation: 0
Default 2 разных PlayerTextDraw почему-то меняются местами друг с другом

У меня есть текстдрав 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. То же самое, что и во втором пункте, только всё это мигает уже на месте навигатора. То скорость, то таймер.

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

Почему такое может быть?
Josipo is offline   Reply With Quote
Old 02/01/2018, 12:42 PM   #2
Eims
Huge Clucker
 
Eims's Avatar
 
Join Date: May 2013
Location: Восточный Мордор
Posts: 442
Reputation: 12
Default Re: 2 разных PlayerTextDraw почему-то меняются местами друг с другом

Если есть удаление этих текстдравов где-то, перепроверь, обнуляются ли переменные. И вообще, сделай логирование ID текстдравов, если обнуление не поможет.
Вероятно где-то удаляется один из текстдравов, но переменная с ID не обнуляется, а когда создаётся новый текстдрав, он занимает тот же ID и оба таймера обновляют уже один и тот же текстдрав разной информацией.
__________________
- How many IT Engineers does it take to fix a broken light bulb?
- None, the light bulb works fine in my office, I cannot replicate the issue.
Eims is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Искажение TextDraw на разных мониторах. Danger228 Русский/Russian 11 27/11/2016 09:00 PM
Меняются местами аккаунты Daea Русский/Russian 11 02/09/2015 05:52 PM
Why PlayerTextDraw In FS will replace a PlayerTextDraw In GM? VivianKris Scripting Help 3 16/10/2014 06:54 AM
игроки друг напротив друга sanya_gnoy Русский/Russian 3 20/08/2012 04:46 PM


All times are GMT. The time now is 09:51 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.