Вопросы

Всем привет задаюсь один вопросом как сделать так чтобы отображалось московское время в тексте в маппинге

SetDynamicObjectMaterialText(mapping, 0"%d:%d"130"Tahoma"19000xFFFFFFFFFF00FF0001);

Как сделать так чтобы в тексте было время по москве?

Поделиться сообщением


Ссылка на сообщение

15 ответов на этот вопрос

  • 0

@Mason, если в настройках системы, на которой вы запускаете сервер, установлено московское время, тогда и функция gettime будет возвращать московское время.

 

"%d:%d"

Если, скажем, будет 2 часа ночи и 5 минут, тогда отображаемое время будет выглядеть примерно так: "2:5". Наверное, лучше требовать вывод чисел в двузначном виде с ведущими нулями.

"%02d:%02d"

 

Поделиться сообщением


Ссылка на сообщение
  • 0
  В 5/15/2022 в 17:42, Cawfee сказал:

@Mason, если в настройках системы, на которой вы запускаете сервер, установлено московское время, тогда и функция gettime будет возвращать московское время.

Читать далее...  

Ага а как сделать так чтобы это отображалось в тексте маппинга?

Поделиться сообщением


Ссылка на сообщение
  • 0

@Mason, никогда не работал ни с маппингом, ни с текстурами, включая функции их редактирования. Как вариант, возьмите какой-нибудь готовый пример, где это используется, и играйтесь на нем.

 

Вот, например, рекламный щит.

new object = CreateObject(7910, -1933.23560.3441.20,   0.000.00180.00);   
SetObjectMaterialText(MyobjectObj, "некоторый текст"0, OBJECT_MATERIAL_SIZE_512x512,   
"Tahoma"3510xFFFF00000xFF000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);

Создайте его, заменив текст на свой, а также перейдите по координатам этого щита, чтобы посмотреть, корректно ли отображается текст. Если все хорошо, тогда уже можно двигаться дальше – создавать своеобразный контроллер времени на этом объекте, чтобы отображаемое время синхронизировалось с реальным.

Поделиться сообщением


Ссылка на сообщение
  • 0

@Cawfee У меня уже есть готовая надпись и я задаюсь только одним вопросом как сделать так чтобы отображалось время чтобы задействовать %d и всунуть туда параметр для %d чтобы время отображалось если я его ввожу pawno %d в этом коде он воспринимает его как текст и он отображается на сервере

Поделиться сообщением


Ссылка на сообщение
  • 0

@Mason

new hour, minute; // объявление переменных для хранения времени
gettime(hour, minute, _); // вызов функции gettime, которая запишет часы в hour и минуты в minute

new string[10];
format(string, sizeof string, "%02d:%02d", hour, minute); // формирование строки для представления часов и минут в нужном виде

SetDynamicObjectMaterialText(mapping, 0, string, 130"Tahoma"19000xFFFFFFFFFF00FF0001);

Каждую минуту в каком-нибудь таймере (секундный, минутный) нужно будет проделывать эти действия, чтобы синхронизировать время. Позаботьтесь о сохранении идентификатора этого объекта карты в глобальной области видимости (в сегменте данных), чтобы иметь возможность обратиться к нему извне.

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@Cawfee А как сделать что бы обновлялось?

Поделиться сообщением


Ссылка на сообщение
  • 0

@Mason, в моде есть минутный таймер? Секундный?

Поделиться сообщением


Ссылка на сообщение
  • 0

@Cawfee Это как?

Поделиться сообщением


Ссылка на сообщение
  • 0

@Mason, таймер, вызывающийся с интервалом в секунду (каждую секунду) или в минуту (каждую минуту). Обычно используется для всяких бонусов, а-ля PayDay.

Поделиться сообщением


Ссылка на сообщение
  • 0

@Cawfee Не знаю

Поделиться сообщением


Ссылка на сообщение
  • 0

@Mason, имеет смысл посмотреть в OnGameModeInit на предмет существования там функций SetTimer.

Поделиться сообщением


Ссылка на сообщение
  • 0

@Cawfee Нет нету

@Cawfee Но установить этот параметр туда можно

Поделиться сообщением


Ссылка на сообщение
  • 0

@Mason, добавьте в OnGameModeInit:

SetTimer("@MinuteTimer"1000*60true);

И куда-нибудь в игровом моде:

@MinuteTimer();
@MinuteTimer() {
    new hour, minute; // объявление переменных для хранения времени
    gettime(hour, minute, _); // вызов функции gettime, которая запишет часы в hour и минуты в minute

    new string[10];
    format(string, sizeof string, "%02d:%02d", hour, minute);

    SetDynamicObjectMaterialText(mapping, 0, string, 130"Tahoma"19000xFFFFFFFFFF00FF0001);
}

Переменную mapping вынесите в глобальную область видимости (и было бы неплохо переименовать ее).

Поделиться сообщением


Ссылка на сообщение
  • 0

@Cawfee А как это сделать?

Поделиться сообщением


Ссылка на сообщение
  • 0

@Mason, что тебе еще сделать надо? Мод за тебя написать? Тебе уже дали готовый вариант, в чем твоя проблема?

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Michov Andr
      От Michov Andr
      Re:samp RP — проект в разработке
      Re:samp RP — это SA-MP в стиле RP-проект, который в данный момент находится в активной разработке. Мы создаём сервер с бонусной системой, где механики будут, и игроки смогут развивать свои персонажи, зарабатывать деньги и взаимодействовать с окружающим миром. Однако, главное — это ролевой процесс. Вы сами выбираете, хотите ли вы заниматься бизнесом и фармом или погружаться в глубокую ролевую игру. Всё зависит от того, какой путь вы хотите пройти.
      Мы стремимся к тому, чтобы на сервере не было скучного фарма и бесконечных рутинных задач. Всё будет сбалансировано так, чтобы каждый игрок мог выбрать свой стиль игры и наслаждаться процессом, будь то отыгрыш роли, развитие персонажа или участие в экономике.
      Что касается доната — на сервере будет доступна возможность покупки привилегий, включая покупку админки. Мы не планируем делать донат обязательным для прогресса, и он не будет влиять на геймплей, но те, кто хотят ускорить процесс или получить дополнительные возможности, смогут воспользоваться такими предложениями. Всё сделано так, чтобы не нарушать баланс и не превращать сервер в платный путь к успеху.
      Re:samp RP — это сервер, где каждый игрок может найти для себя интересное занятие и, главное, где всегда будет место для качественной ролевой игры. Мы не навязываем никаких обязательных механик, и все решения остаются за вами. Стартовый бонус, донат, админки — это всё дополнительные возможности, но не основа игры. 
      Discrod:https://discord.gg/ernRMjyEJy
       
             
      на логотип не смотрим да признаюсь взял с самп рп() но уж больно он норм)
    • djxxx
      От djxxx
      приветствую всех.
       
      Задался таким вопросом при добавлении одной системы на DIALOG_STYLE_TABLIST_HEADERS.
       
      Суть проблемы в том, что диалог не выравнивается под нужные показатели, а просто как будто находиться по середине, в диалоге используется \t, но они особо не помогают в решении, также не ровно.
       
      а если попытаться выравнивать большим количеством \t, оно компилируется но в игре происходят вылеты
       
      Код такой:
      DialogAdmShop ( playerid, DIALOG_EPOINTSHOP, DIALOG_STYLE_TABLIST_HEADERS, fmt_str, ""BR"номер\t"BR"наименование\t"BR"доступное действие\n"\ "{EB4C42}#1\t{FFFFFF}Виртуальная валюта\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#2\t{FFFFFF}Донат валюта\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#3\t{FFFFFF}Вип статусы\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#4\t{FFFFFF}Кейсы\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#5\t{FFFFFF}Уникальные аксессуары\t{888888}нажмите для взаимодействия", "Выбрать", "Закрыть" ); }  
      сток dialogadmshop:
      stock DialogAdmShop(playerid, dialogid, style, title[], text[], button[], button2[]) {   if(style == 5)   {      ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "...", "...", "...", "");    }   ShowPlayerDialog(playerid, dialogid, style, title, text, button, button2);   return 1; }