Вопросы

Доброго времени суток, нуждаюсь в помощи. Если есть люди, которые шарят в pawno, нужна помощь. Короче, мод ART RP, там в донате есть строка "Уникальные аксессуары", когда на него нажмешь, открывается TextDraw менью, нужно переделать это на обычную менью (/mm например, там обычная менью), буду рад, если поможете, за ранее спасибо.

Если не ошибаюсь, строка текстдрав аксессуаров начинается с 1416 до 1443.

art4.pwn

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


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

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

  • 1

@Wiggins, ну, давайте попробуем.

1. Находим фрагмент кода, где отображается диалоговое окно. Поиск осуществляем по ключевым словам, которые можно увидеть в диалоге. Могу предположить, что вас интересует следующий фрагмент (см. спойлер).

  открыть спойлер

 

2. В функции отображения диалогового окна ShowPlayerDialogEx в качестве второго параметра передается номер отображаемого диалога. Это необходимо для того, чтобы потом при обработке выбранной игроком кнопки в диалоговом окне однозначно определить, к какому диалогу относится выполненное действие. Запоминаем номер диалогового окна – 9777.

3. Находим обработчик событий, произошедших в этом диалоговом окне. При нажатии на кнопки в диалоговом окне (кнопки "Выбрать" и "Отмена" в данном случае) вызывается функция OnDialogResponse, второй параметр которой есть номер диалога, от которого пришло событие, в параметре response - номер нажатой кнопки (1 - левая кнопка, то есть "Выбрать" и 0 - правая кнопка, то есть "Отмена"), а в параметре listitem - выбранный пункт меню.

4. В коде отображения существующего меню обнаруживаем (на основе символов переносов строки \n), что пункт меню "Уникальные аксессуары на выбор" находится под номером 13 (считая с нуля).

5. Возвращаемся к пункту 3 и находим обработку диалога 9777 с нажатой клавишей response = 1 ("Выбор") и выбранным пунктом listitem – 13 (см. спойлер ниже).

  открыть спойлер

 

6. Таким образом мы нашли обработчик события нажатия на пункт меню "Уникальные аксессуары на выбор" левой кнопкой. Остается в теле обработчика снести все, связанное с TextDraw (PlayerTextDrawSetString, PlayerTextDrawSetPreviewModel, PlayerTextDrawSetPreviewRot, PlayerTextDrawShow, SelectTextDraw). Здесь по аналогии с диалогом 9777 создать новое диалоговое окно, используя функцию ShowPlayerDialogEx. Как назвать его (title), каке пункты меню в нем будут и какие кнопки внизу – выбор за вами. Не забывайте, что диалоговому окну следует присвоить новый номер, незанятый в вашем игровом моде.

7. Создаем обработчик события нажатия на пункт меню в созданном вами диалоговом окне из пункта 6 (также по аналогии с диалогом 9777). Для каждого из возможных вариантов реализуем свою логику.

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


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

@angel_sinvays Полностью переделывать меню TextDraw в обычное диалоговое меню не нужно, в донате есть система покупки аксессуаров, при покупке аксессуаров вылезает меню TextDraw, но я хочу чтобы вылезло обычное диалоговое меню, само меню доната обычное, а в системе покупки аксессуаров всего 8-9 аксессуаров, не думаю, что это займет 1 час.

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


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

@angel_sinvays Я не уверен, но думаю, это не займёт и часа. Если бы я мог сделать это сам, я бы не создавал эту тему... Раз уж если не вы, пусть кто-то другой поможет, на теме не отмечено, что все должны помогать, пусть помогают по своему желанию, даже по мелочам.

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


Ссылка на сообщение
  • 0
  В 3/23/2025 в 23:21, Wiggins сказал:

@angel_sinvays Я не уверен, но думаю, это не займёт и часа. Если бы я мог сделать это сам, я бы не создавал эту тему... Раз уж если не вы, пусть кто-то другой поможет, на теме не отмечено, что все должны помогать, пусть помогают по своему желанию, даже по мелочам.

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

Вам здесь никто и ничем не обязан. Не думаю, что найдётся такой человек, которому не дорого личное время. Вам удобно говорить, что "займёт не более часа", вы ж не искали по интернету информацию как и что переводить из текстдрава  в диалог. Советую покопаться и понять в чём сложности. Да и вообще советую самому код писать и/или исправлять. Можете сами попробовать переписать систему покупки аксессуаров и, если будут варнинги или ошибки, то смело обращайтесь в "Вопросы / проблемы, связанные со скриптингом"

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


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

@heazych Я еще не работал с TextDraw, поэтому обратился к вам...

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


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

@Wiggins вы сами себе противоречите. Изначально вы нуждались в помощи, затем в следующем предложении вы принуждаете к переделке. Сейчас пишете, что обращаетесь...Поймите, вам проще всего будет самому изучить все подводные камни, связанные с текстдравом. Уж лучше вы потратите время с пользой и для себя что-то новое откроете, чем будете томить себя пустым ожиданием.

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


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

@heazych Понятно, значит я ошибался разделом, спасибо.

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


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

Подскажите хотя бы, где чего нужно изменить...

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


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

@Cawfee Спасибо огромное, благодарю!

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


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

@Wiggins, принято все же сначала разрешать полностью свой вопрос, а потом выбирать ответ как решение. Это ведь только начало пути...

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


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

@Cawfee Я не смог это реализовать, это оказалось сложно, я ошибся в начале, что это не займёт и часа, в gamemodes/modules также есть файлы, которые относятся к TextDraw, там почти все файлы выдают ошибку, я в итоге отказался от этой идеи, а вам отдельно спасибо за подробное объяснение.

Отредактировано пользователем Wiggins

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


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

@Wiggins, что это за TextDraw, как он выглядит и что возможно сделать посредством него?

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


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

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

Если вам не лень конечно, ссылка на мод оставлю снизу, можете сами скачать и проверять. "/donate > Уникальные аксессуары на выбор" когда на него нажмете, вылезает TextDraw меню, я попытался его изменить на обычное диалоговое меню.
Ссылка на мод - https://disk.yandex.ru/d/nB7ReikaFgERuA

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


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

Так, к сожалению, никто делать не будет. То, что ты просишь — это уже конкретная доработка мода и на это нужно тратить время, разбираться в коде и переделывать механику.

 

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

 

Просто учти, что переделать TextDraw-меню на обычное диалоговое меню — это не “пара строк”, особенно если всё завязано на старые обработчики.

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


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

@Wiggins Ну раз вы так складно и уверенно говорите, что "это не займет и часа", так сделайте сами, а не просите всё сделать за вас. Тут как бы не обсуждают, сколько времени займёт — тут либо делают за оплату, либо помогают по мелочи.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти
  • Последние посетители   0 пользователей онлайн

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

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

    • Dev_Persona
      От Dev_Persona
      Приветствую всех, у меня возник такой вопрос:
       
      - хочу изменить базовую регистрацию в админке в крмп, на Болле сложную то-есть, сейчас изначально пароль от админки может быть только из цифр, хотелось бы узнать как можно было бы сделать что бы можно было использовать и цифры и буквы, вот код:
       
      case DIALOG_ADMIN_REG:
         {
          if(!response) return FixKick(playerid);
       
          if(strval(inputtext) < 100000 || strval(inputtext) > 999999) return ShowPlayerDialog(playerid, DIALOG_ADMIN_REG, DIALOG_STYLE_INPUT, "{FF6347}"PROJECT_NAME" {ffffff}| Придумайте пароль", "{FFFFFF}Для того, чтобы продолжить дальше - придумайте и введите\n{FFFFFF}пароль от панели администратора в диалоговое поле ниже.\n\n{FFFFFF}Пароль должен быть из 6 цифр.\n", "Готово", "");
                   SetPlayerData(playerid, P_APASS, strval(inputtext));
       
                   UpdatePlayerDatabaseInt(playerid, "AdminPassword", GetPlayerData(playerid, P_APASS));
       
                   AdminAuthorization(playerid);
         }