Вопросы

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

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

art4.pwn

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


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

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

  • -1

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

 

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

 

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

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


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

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

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


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

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

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


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

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

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


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

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

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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


Ссылка на сообщение
  • 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

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

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


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

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

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


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

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

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

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


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

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

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


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

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

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

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


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

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

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

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

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


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

Войти

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


Войти
  • Последние посетители   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);
         }