А не проще ли вынести эту переменную за цикл и foreach (перед ними)?
Вид для печати
Ребята, привет всем.
Подскажите пожалуйста, что потребуется для создания textdrawа.
Описание его: полоска снизу экрана, если 0 игроков онлайн она тёмно-зелёная, если 1 игрок, то цвет по контуру светло-зелёный.
Подскажите пожалуйста.
http://s019.radikal.ru/i610/1610/ae/021a4d923595.gif
К примеру, из 50, 20 онлайн.
Так думаю будет понятнее.
2 тестдрава, наложенных друг на друга. Работать будешь только с верхним.
Размер для этого текстдрава можно вычислить по формуле
(вроде так)PHP код:
размер_верхнего_текстдрава_по_Х + (текущее_число_игроков*(размер_нижнего_текстдрава_по_Х-размер_верхнего_текстдрава_по_Х)/максимальный_онлайн)
Собственно, при входе нового игрока, делаешь рассчёт по формуле и вставляешь полученное число в функцию
И обновляешь текстдрав для всего сервераPHP код:
TextDrawTextSize
Я конечно понимаю если бы там связано было с картинками,
но нет это обычные цвета и тут вопрос встаёт, а не легче ли прогресс бар инклуд заюзать?
Там и цвета можно настроить под себя(если его поковырять)
багов 100% не будет и удобно..
Ребят, если не сложно, покажите пример кода progress bara, ибо скачал инклюд, там много того, с чем не работал.
Нужна такая штука буквально в режиме on\off, не более.
Ну тогда он всё равно может понадобиться хотя-бы для того, чтобы сразу посмотреть уже готовую реализацию, а не изобретать это заново.
Ничего сложного, работа почти как с обычными текстдравами.
Его создание:
Где x, y - координаты на экране; width и height - длина и ширина прогрессбара; colour - цвет; max - максимальное значение, при котором полоска будет заполнена; а direction - направление заполненияPHP код:
PlayerBar:CreatePlayerProgressBar(playerid, Float:x, Float:y, Float:width = 55.5, Float:height = 3.2, colour, Float:max = 100.0, direction = BAR_DIRECTION_RIGHT);
Затем в нужный момент показываем/скрываем его для игрока:
PHP код:
ShowPlayerProgressBar(playerid, PlayerBar:barid);
И функции для изменения его "заполнения".PHP код:
HidePlayerProgressBar(playerid, PlayerBar:barid);
Узнать его заполненность:
Задать его заполненность:PHP код:
Float:GetPlayerProgressBarValue(playerid, PlayerBar:barid);
Если после изменения значения прогресса визуально оно не поменяется - попробуй показать его снова (ShowPlayerProgressBar).PHP код:
SetPlayerProgressBarValue(playerid, PlayerBar:barid, Float:value);
Это подходит ко второй версии, модифицированной Southclaw
Спасибо. Сейчас все сделанное нерабочее стираю, и начинаю выкуривать инфу. ) спасибо еще раз.
Так в моём же сообщении и так расписано всё, что нужно от этой системы. Ему не нужно удалять эти текстдравы при выходе игрока, ему не нужно делать их индивидуальными. Просто 2 глобальных текстдрава и простая формула, по которой вычисляется размер верхнего текстдрава. Всё.
Но вместо этого вы предлагаете подключить ему инклуд с кучей массивов, констант и прочего мусора, который ему не нужен.
Хотя дело ваше.
Старые версии сего инклуда делались на глобальных ТД, минус инклуда то что автор не сделал выбор глобальным или индивидуальным