Пропадают текстдравы
#1

Здравствуйте!

Вообщем дня 4 назад загрузил обновление, много чего переписал и видимо где-то допустил ошибку, но немогу понять где. Текстдравы пропадают все почти и потом уже при коннекте не появляются, причем относительно в определенное время пропадают. Делаю рестарт - все норм. Что я мог сделать такого которое могло бы повлиять на текстравы? Именно с ними никаких операций не проводил.

Спасибо!
Reply
#2

Я думаю, что важно знать когда тебе нужно показывать/скрывать TextDraw или удалять допустим через OnGameModeExit. Если эти условия у тебя соблюдаются, то в принципе должно быть всё нормально.
У меня тоже были такие проблемы, и они решились в этой теме - https://sampforum.blast.hk/showthread.php?tid=215378
Reply
#3

Quote:
Originally Posted by Diman777
View Post
Я думаю, что важно знать когда тебе нужно показывать/скрывать TextDraw или удалять допустим через OnGameModeExit. Если эти условия у тебя соблюдаются, то в принципе должно быть всё нормально.
У меня тоже были такие проблемы, и они решились в этой теме - https://sampforum.blast.hk/showthread.php?tid=215378
Вот именно что все выше сказанное соблюдается.
Дело в том, что раньше все работало, сделал обновление и начались проблемы. Как уже упоминал ранее собственно текстдравы не трогал.
Что вообще может вызвать подобную проблему?
Reply
#4

Проверяй все места создания и удаления текстдрава. Последний раз с таким сталкивался, если создавалось больше 2048 TD. К примеру, создавай текстдрав при конекте игрока, удаляй при дисконекте. Ну или создавай сразу все, и при конекте\дисконекте прячь\показывай. Как больше нравится.
Reply
#5

Вот наконец-то сам увидил как они пропадают. Вообще в newstate == PLAYER_STATE_DRIVER врубаю спидометр (текстдравы), в oldstate == PLAYER_STATE_DRIVER вырубаю.
Проблема наверное напрямую связана с этой темой https://sampforum.blast.hk/showthread.php?tid=330447&page=3
Я сажусь в транспорт, багом описаным в теме по ссылке выше меня выкидывает за то что я "не член фракции..." и сразу все текстдравы пропадают.
Если сделать рестарт где-то в обед, то они уже пропадут к вечеру, даже ночью. По ходу рестарт снимает какую-то нагрузку с машин, т.к. их иды путаются только когда сервер поработал продолжительное время.
Reply
#6

У меня был на сервере баг, когда в результате бага в OnPlayerConnect (переполнение стэка) не выполнялся код создание текстдрава, и в результате текстдрав лвл превратился в текстдрав спидометра, текстдрав сайта вообще пропал, а оригинальный спидометр начинал мигать цветами. Мой совет - создавать все текстдравы ТОЛЬКО в OnGameModeInit и удалять в OnGameModeExit. Т.к. неизвестно что произойдёт и все текстдравы полетят очень не вовремя. Пример:
pawn Code:
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
    {
    LEVEL[playerid] = TextDrawCreate(55.000000, 425.000000, "Level: 0");
    TextDrawBackgroundColor(LEVEL[playerid], 0xF6F6F6AA);
        // и т.д.
        }
Reply
#7

Крайне не рекомендую делать так, как говорит Evgen.
Reply
#8

Грамотно создавать и удалять текстдравы при конндекте\выходе. И подгружать скрипты, где так же сделаны текстравы и все будет гуд.
Reply
#9

Можете посоветовать, как можно снизить нагрузку на сервер с помощью текст драйвов? Напримере возьмем спидометр, входим создаем , выходим из авто удаляем. Вопрос: текст драйв лучше удалять и создавать при выходе или входе, или скрывать ?
Reply
#10

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Всегда лучше скрывать, ведь есть возможность замены данных в них без пересоздания.
спасибо и еще вопросик: есть ли какие то лимиты по одновременному нахождению текст драйвов на экране игрока ?
Reply
#11

текстдро!

92 глобальных и до 256 персональных.
Reply
#12

Quote:
Originally Posted by ZAM
View Post
Можете посоветовать, как можно снизить нагрузку на сервер с помощью текст драйвов? Напримере возьмем спидометр, входим создаем , выходим из авто удаляем. Вопрос: текст драйв лучше удалять и создавать при выходе или входе, или скрывать ?
Например подложку можно создать глобальную и только одну, при входе в тс(транспортное средство) показать игроку, при выходе скрыть.
А динамическую составляющую уже можно отдельно для каждого игрока при коннекте создавать и дисконекте удалять (используем возможности Е версии). При входе в тс показать, при выходе скрыть.
Вот и всё.
Reply
#13

спасибо за инфу, поэксперементируем
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)