В базу данных нет смысла сохранять такое имя (удаление одного символа - не столь затратный процесс, чтоб избегать его даже в единичном случае). Достаточно после авторизации удалять "_" и записать получившийся ник в массив, который уже и вызывать во всех нужных случаях.
Эмм, как пожелаешь, так и реализовать? Функции по установке времени никак не привязаны к времени на сервере и ничего не мешает тебе передавать в функцию значение переменных, для которых ты самостоятельно будешь рассчитывать время, а не брать его из gettime. А уже как ты будешь рассчитывать - зависит только от тебя.
Но самый логичный вариант - привязать время к реальному. Например, чтоб каждые 20 минут реального времени являлись игровым часом. Соответственно, к каждым 20-и реальным минутам "прикрепляем" игровой час. То бишь, что-то типа такого:
PHP код:
// Реальное время - игровой час
00:00 - 00
00:20 - 01
00:40 - 02
01:00 - 03
01:20 - 04
01:40 - 05
02:00 - 06
А уже игровые минуты рассчитывать исходя из значения реальных минут и секунд. Соответственно, для всего этого нужно писать формулу, дабы всё это вручную не рассчитывать.
Таким образом ты, во-первых, добьёшься какой-никакой, но точности, ибо обычные таймеры имеют свойство отставать со временем, а, во-вторых, у тебя получится автоматизированная система расчётов, ибо входные данные устанавливаешь не ты.
Ну и уже раз в 10-20 минут обновляешь время через функции (делать это чаще нет смысла, ибо поминутное изменение времени в GTA не очень заметно)
Какой тебя по функционалу удовлетворяет, тот и используй. Инструкции к ним есть, соответственно, в темах, где их будешь качать.
А если ты про принцип их работы, то рисуется 2 обычных текстдрава: один для фона и один для "индикатора". Минимальная координата по X будет являться нулём, а максимальная - сотней процентов. Соответственно, если у тебя есть, например, значение опыта персонажа, то у этого опыта так же есть "минимальное" и "максимальное" значение + так же есть фактическое значение, равное количеству опыта у игрока. Дальше просто применяешь формулу процентов на значении опыта, которой тебя должны на уроке математики обучить ещё классе в 6-ом, и получившийся процент от числа применяешь на текстдравах, высчитывая координату по X для "индикатора".
Курс математики для самых маленьких Например, игроку для получения уровня нужно набрать 1500 очков опыта. Сейчас у игрока есть только 500 очков опыта. Получается:
PHP код:
1500 - 100%
500 - х%
Дабы узнать сколькими процентами является 500, нужно 500 умножить на 100 и поделить на 1500.
500*100 = 50000
50000/1500 = ~33,3%
Теперь просто применяем тот же математический принцип, только для координат (представим, что 356.65 - максимальная координата по X для текстдрава):
PHP код:
356.65 - 100%
x - 33%
Собственно, как говорит нам математика, делаем так:
356.65*33/100 = 117,6945
Получается, что 33 процента будут занимать 117,6945. Соответственно, прибавляем к минимальной X получившееся число и получаем координату по оси X, которая будет показывать заполненный бар
Эмм, сверкой координат? Можешь использовать динамические зоны стримера для удобства.
Просто вызываешь ещё раз SensClientMessage и отображаешь оставшуюся часть строки.
Вот есть готовая библиотека с таким функционалом