Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
8 Фев 2025
Сообщения
25
Доброго времени суток, нуждаюсь в помощи. Если есть люди, которые шарят в pawno, нужна помощь. Короче, мод ART RP, там в донате есть строка "Уникальные аксессуары", когда на него нажмешь, открывается TextDraw менью, нужно переделать это на обычную менью (/mm например, там обычная менью), буду рад, если поможете, за ранее спасибо.

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

Вложения

  • art4.pwn
    3.1 MB · Просмотры: 4
Пользователь
Регистрация
8 Фев 2025
Сообщения
25
то есть ,вам необходимо, изменить с TD на обычное диалоговое меню ?
Так точно, сам донат меню (/donate) обычная, но там есть строка "Уникальные аксессуары", где покупаешь аксессуары, там TD, нужно изменить с TD на обычное диалоговое меню. за ранее спасибо
 
Пользователь
Регистрация
3 Янв 2025
Сообщения
44
Так точно, сам донат меню (/donate) обычная, но там есть строка "Уникальные аксессуары", где покупаешь аксессуары, там TD, нужно изменить с TD на обычное диалоговое меню. за ранее спасибо
тг ответь
 
Пользователь
Регистрация
8 Май 2024
Сообщения
16
Чтобы заменить TextDraw-меню "Уникальные аксессуары" на обычное диалоговое меню (ShowPlayerDialog), нужно:


  1. Найти код TextDraw-меню в ART RP (между строками 1416 и 1443, если ты не ошибаешься).
  2. Отключить или удалить TextDraw при открытии "Уникальных аксессуаров".
  3. Добавить диалоговое меню (ShowPlayerDialog) в нужное место.



Как это сделать?


1. Найди код TextDraw'ов аксессуаров


Они создаются примерно так:


pawn
КопироватьРедактировать
TD_AccessoryMenu = TextDrawCreate(320.000000, 240.000000, "Уникальные аксессуары");
TextDrawBackgroundColor(TD_AccessoryMenu, 255);
TextDrawFont(TD_AccessoryMenu, 1);
TextDrawShowForPlayer(playerid, TD_AccessoryMenu);


Или через массивы:


pawn
КопироватьРедактировать
for(new i = 0; i < MAX_ACCESSORIES; i++)
{
TD_Accessory = TextDrawCreate(...);
TextDrawShowForPlayer(playerid, TD_Accessory);
}


Этот код нужно закомментировать или удалить.




2. Отключить старый вызов TextDraw-меню


В файле, где находится система доната, найди место, где вызывается TextDraw-меню:


pawn
КопироватьРедактировать
case 5: // "Уникальные аксессуары"
{
ShowAccessoryMenu(playerid);
}


Здесь, скорее всего, вызывается ShowAccessoryMenu(playerid).
Эту строку нужно заменить на код обычного меню.




3. Добавить обычное диалоговое меню (ShowPlayerDialog)


Вместо ShowAccessoryMenu(playerid); добавь такой код:


pawn
КопироватьРедактировать
ShowPlayerDialog(playerid, DIALOG_ACCESSORIES, DIALOG_STYLE_LIST, "Уникальные аксессуары",
"Шляпа\nОчки\nМаска\nЧасы\nПерчатки\nРюкзак",
"Выбрать", "Отмена");


⚡ Важно! Убедись, что DIALOG_ACCESSORIES не совпадает с другими ID диалогов в коде.




4. Обработать выбор игрока


В OnDialogResponse добавь обработку:


pawn
КопироватьРедактировать
case DIALOG_ACCESSORIES:
{
if(!response) return 1; // Если нажал "Отмена"

switch(listitem)
{
case 0: SendClientMessage(playerid, -1, "Вы выбрали: Шляпа");
case 1: SendClientMessage(playerid, -1, "Вы выбрали: Очки");
case 2: SendClientMessage(playerid, -1, "Вы выбрали: Маска");
case 3: SendClientMessage(playerid, -1, "Вы выбрали: Часы");
case 4: SendClientMessage(playerid, -1, "Вы выбрали: Перчатки");
case 5: SendClientMessage(playerid, -1, "Вы выбрали: Рюкзак");
}
}




Что получилось?


✅ Вместо TextDraw теперь открывается обычное меню /mm.
✅ Игрок может выбрать аксессуар в удобном интерфейсе.
✅ Ошибки, связанные с TextDraw, устранены.
 
Пользователь
Регистрация
8 Фев 2025
Сообщения
25
Чтобы заменить TextDraw-меню "Уникальные аксессуары" на обычное диалоговое меню (ShowPlayerDialog), нужно:


  1. Найти код TextDraw-меню в ART RP (между строками 1416 и 1443, если ты не ошибаешься).
  2. Отключить или удалить TextDraw при открытии "Уникальных аксессуаров".
  3. Добавить диалоговое меню (ShowPlayerDialog) в нужное место.



Как это сделать?


1. Найди код TextDraw'ов аксессуаров


Они создаются примерно так:


pawn
КопироватьРедактировать
TD_AccessoryMenu = TextDrawCreate(320.000000, 240.000000, "Уникальные аксессуары");
TextDrawBackgroundColor(TD_AccessoryMenu, 255);
TextDrawFont(TD_AccessoryMenu, 1);
TextDrawShowForPlayer(playerid, TD_AccessoryMenu);


Или через массивы:


pawn
КопироватьРедактировать
for(new i = 0; i < MAX_ACCESSORIES; i++)
{
TD_Accessory = TextDrawCreate(...);
TextDrawShowForPlayer(playerid, TD_Accessory);
}


Этот код нужно закомментировать или удалить.







2. Отключить старый вызов TextDraw-меню


В файле, где находится система доната, найди место, где вызывается TextDraw-меню:


pawn
КопироватьРедактировать
case 5: // "Уникальные аксессуары"
{
ShowAccessoryMenu(playerid);
}


Здесь, скорее всего, вызывается ShowAccessoryMenu(playerid).
Эту строку нужно заменить на код обычного меню.







3. Добавить обычное диалоговое меню (ShowPlayerDialog)


Вместо ShowAccessoryMenu(playerid); добавь такой код:


pawn
КопироватьРедактировать
ShowPlayerDialog(playerid, DIALOG_ACCESSORIES, DIALOG_STYLE_LIST, "Уникальные аксессуары",
"Шляпа\nОчки\nМаска\nЧасы\nПерчатки\nРюкзак",
"Выбрать", "Отмена");


⚡ Важно! Убедись, что DIALOG_ACCESSORIES не совпадает с другими ID диалогов в коде.







4. Обработать выбор игрока


В OnDialogResponse добавь обработку:


pawn
КопироватьРедактировать
case DIALOG_ACCESSORIES:
{
if(!response) return 1; // Если нажал "Отмена"

switch(listitem)
{
case 0: SendClientMessage(playerid, -1, "Вы выбрали: Шляпа");
case 1: SendClientMessage(playerid, -1, "Вы выбрали: Очки");
case 2: SendClientMessage(playerid, -1, "Вы выбрали: Маска");
case 3: SendClientMessage(playerid, -1, "Вы выбрали: Часы");
case 4: SendClientMessage(playerid, -1, "Вы выбрали: Перчатки");
case 5: SendClientMessage(playerid, -1, "Вы выбрали: Рюкзак");
}
}







Что получилось?


✅ Вместо TextDraw теперь открывается обычное меню /mm.
✅ Игрок может выбрать аксессуар в удобном интерфейсе.
✅ Ошибки, связанные с TextDraw, устранены.
Не совсем подходит для моего мода, ИИ пишет неправильный код
 
Дальше — Больше
Команда форума
Модератор
Регистрация
21 Янв 2023
Сообщения
962
Чтобы заменить TextDraw-меню "Уникальные аксессуары" на обычное диалоговое меню (ShowPlayerDialog), нужно:


  1. Найти код TextDraw-меню в ART RP (между строками 1416 и 1443, если ты не ошибаешься).
  2. Отключить или удалить TextDraw при открытии "Уникальных аксессуаров".
  3. Добавить диалоговое меню (ShowPlayerDialog) в нужное место.



Как это сделать?


1. Найди код TextDraw'ов аксессуаров


Они создаются примерно так:


pawn
КопироватьРедактировать
TD_AccessoryMenu = TextDrawCreate(320.000000, 240.000000, "Уникальные аксессуары");
TextDrawBackgroundColor(TD_AccessoryMenu, 255);
TextDrawFont(TD_AccessoryMenu, 1);
TextDrawShowForPlayer(playerid, TD_AccessoryMenu);


Или через массивы:


pawn
КопироватьРедактировать
for(new i = 0; i < MAX_ACCESSORIES; i++)
{
TD_Accessory = TextDrawCreate(...);
TextDrawShowForPlayer(playerid, TD_Accessory);
}


Этот код нужно закомментировать или удалить.







2. Отключить старый вызов TextDraw-меню


В файле, где находится система доната, найди место, где вызывается TextDraw-меню:


pawn
КопироватьРедактировать
case 5: // "Уникальные аксессуары"
{
ShowAccessoryMenu(playerid);
}


Здесь, скорее всего, вызывается ShowAccessoryMenu(playerid).
Эту строку нужно заменить на код обычного меню.







3. Добавить обычное диалоговое меню (ShowPlayerDialog)


Вместо ShowAccessoryMenu(playerid); добавь такой код:


pawn
КопироватьРедактировать
ShowPlayerDialog(playerid, DIALOG_ACCESSORIES, DIALOG_STYLE_LIST, "Уникальные аксессуары",
"Шляпа\nОчки\nМаска\nЧасы\nПерчатки\nРюкзак",
"Выбрать", "Отмена");


⚡ Важно! Убедись, что DIALOG_ACCESSORIES не совпадает с другими ID диалогов в коде.







4. Обработать выбор игрока


В OnDialogResponse добавь обработку:


pawn
КопироватьРедактировать
case DIALOG_ACCESSORIES:
{
if(!response) return 1; // Если нажал "Отмена"

switch(listitem)
{
case 0: SendClientMessage(playerid, -1, "Вы выбрали: Шляпа");
case 1: SendClientMessage(playerid, -1, "Вы выбрали: Очки");
case 2: SendClientMessage(playerid, -1, "Вы выбрали: Маска");
case 3: SendClientMessage(playerid, -1, "Вы выбрали: Часы");
case 4: SendClientMessage(playerid, -1, "Вы выбрали: Перчатки");
case 5: SendClientMessage(playerid, -1, "Вы выбрали: Рюкзак");
}
}







Что получилось?


✅ Вместо TextDraw теперь открывается обычное меню /mm.
✅ Игрок может выбрать аксессуар в удобном интерфейсе.
✅ Ошибки, связанные с TextDraw, устранены.
OFFTOP

ТЫ ТОЧНО БЕЛЫЙ??????????

 
Сверху