- Сообщений: 9
- Спасибо получено: 3
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
Порядок написания главных навыков в меню состояния
7 года 1 мес. назад #109551
от Dokk
Sohm...
Dokk создал тему: Порядок написания главных навыков в меню состояния
Ребят, столкнулся тут с проблемой костомизации меню статусов (состояния). Мне нужно поменять порядок написания главных навыков с дефолтного на свой. Что-нибудь вроде этого:
Сила (у меня это Атака)))
Ловкость
Удача
Защита
Магические атаку с защитой запихнуть бы вообще куда-нибудь в самый низ.
Как это сделать? Весь день уже копаюсь со штатными средствами. Так и не понял. Искал в плагинах Янфлая и SRD там вроде тоже нет...
Сила (у меня это Атака)))
Ловкость
Удача
Защита
Магические атаку с защитой запихнуть бы вообще куда-нибудь в самый низ.
Как это сделать? Весь день уже копаюсь со штатными средствами. Так и не понял. Искал в плагинах Янфлая и SRD там вроде тоже нет...
Sohm...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 1 мес. назад - 7 года 1 мес. назад #109552
от Dmy
Dmy ответил в теме Порядок написания главных навыков в меню состояния
Решение для VX Ace
В RPG Maker VX Ace это можно сделать таким скриптом:
Этот код нужно установить как скрипт .
Внутри [ ] вместо 2, 6, 7, 3 можно написать цифровые коды параметров в нужном порядке. Доступны такие цифровые коды:
Результат будет такой:
____________
Решение для MV
В RPG Maker MV можно использовать такой плагин:
Этот код нужно сохранить в файл с расширением .js внутри папки js/plugins, а потом подключить через управление плагинами.
Результат будет такой:
Как и в версии для VX Ace, между [ ] можно писать коды параметров вместо 2, 6, 7, 3 (они в MV и VX Ace совпадают: 0 — максимальное здоровье [MHP], 1 — максимальная мана [MMP], 2 — атака [ATK], 3 — защита [DEF], 4 — магическая атака [MAT], 5 — магическая защита [MDF], 6 — ловкость [AGI], 7 — удача [LUK]).
____________
Решение для VX
В RPG Maker VX поменять порядок можно таким скриптом:
Этот код нужно установить как скрипт .
Внутри [ ] вместо 2, 6, 7, 3 можно написать цифровые коды параметров в нужном порядке. Доступны такие цифровые коды:
Результат будет такой:
____________
Решение для XP
В RPG Maker XP код не очень хорошо разбит на функции, и писать скрипты не очень удобно. Проще взять стандартные скрипты и отредактировать. Откройте редактор скриптов, перейдите на скрипт Window_Status (45-й в списке), и в функции refresh (под def refresh) найдите там много вызовов draw_actor_parameter. У меня это строки 30—36:
Вот эти вот строки:
Каждая строка рисует 1 параметр. Второе число в строке — позиция по оси Y (192, 224, 256...; чем она больше, чем ниже будет текст).
Последнее число в строке — номер параметра (0 — атака, 1 — физическая защита, 2 — магическая защита, 3 — сила, 4 — выносливость, 5 — скорость, 6 — интеллект).
В принципе, можно можно просто поменять 0, 1, 2 и самим рассчитывать позицию по оси Y. Вот только лично мне лень её самому рассчитывать. Поэтому предлагаю заменить все строчки draw_actor_parameter (да, все 7) на вот такие:
А потом уже вместо 0, 1, 2, nil, 3, 4, 5, 6 писать нужные номера параметров (а nil будет делать разделитель в полстроки).
Изменённый код примет такой вид:
Ну а дальше уже можно просто менять цифры внутри [ ... ] на нужные.
В RPG Maker VX Ace это можно сделать таким скриптом:
Code:
class Window_Status < Window_Selectable
def draw_parameters(x, y)
[2, 6, 7, 3].each_with_index do |p, i|
draw_actor_param(@actor, x, y + line_height * i, p)
end
end
end
Этот код нужно установить как скрипт .
Внутри [ ] вместо 2, 6, 7, 3 можно написать цифровые коды параметров в нужном порядке. Доступны такие цифровые коды:
- 0 — максимальное здоровье (MHP),
- 1 — максимальная мана (MMP),
- 2 — атака (ATK),
- 3 — защита (DEF),
- 4 — магическая атака (MAT),
- 5 — магическая защита (MDF),
- 6 — ловкость (AGI),
- 7 — удача (LUK).
Результат будет такой:
____________
Решение для MV
В RPG Maker MV можно использовать такой плагин:
Code:
Window_Status.prototype.drawParameters = function(x, y) {
var lineHeight = this.lineHeight();
var params = [2, 6, 7, 3];
for (var i = 0; i < params.length; i++) {
var paramId = params[i];
var y2 = y + lineHeight * i;
this.changeTextColor(this.systemColor());
this.drawText(TextManager.param(paramId), x, y2, 160);
this.resetTextColor();
this.drawText(this._actor.param(paramId), x + 160, y2, 60, 'right');
}
};
Этот код нужно сохранить в файл с расширением .js внутри папки js/plugins, а потом подключить через управление плагинами.
Результат будет такой:
Как и в версии для VX Ace, между [ ] можно писать коды параметров вместо 2, 6, 7, 3 (они в MV и VX Ace совпадают: 0 — максимальное здоровье [MHP], 1 — максимальная мана [MMP], 2 — атака [ATK], 3 — защита [DEF], 4 — магическая атака [MAT], 5 — магическая защита [MDF], 6 — ловкость [AGI], 7 — удача [LUK]).
____________
Решение для VX
В RPG Maker VX поменять порядок можно таким скриптом:
Code:
class Window_Status < Window_Base
def draw_parameters(x, y)
[0,3,2,1].each_with_index do |p, i|
draw_actor_parameter(@actor, x, y + WLH * i, p)
end
end
end
Этот код нужно установить как скрипт .
Внутри [ ] вместо 2, 6, 7, 3 можно написать цифровые коды параметров в нужном порядке. Доступны такие цифровые коды:
- 0 — атака,
- 1 — защита,
- 2 — дух,
- 3 — скорость
Результат будет такой:
____________
Решение для XP
В RPG Maker XP код не очень хорошо разбит на функции, и писать скрипты не очень удобно. Проще взять стандартные скрипты и отредактировать. Откройте редактор скриптов, перейдите на скрипт Window_Status (45-й в списке), и в функции refresh (под def refresh) найдите там много вызовов draw_actor_parameter. У меня это строки 30—36:
Вот эти вот строки:
Code:
draw_actor_parameter(@actor, 96, 192, 0)
draw_actor_parameter(@actor, 96, 224, 1)
draw_actor_parameter(@actor, 96, 256, 2)
draw_actor_parameter(@actor, 96, 304, 3)
draw_actor_parameter(@actor, 96, 336, 4)
draw_actor_parameter(@actor, 96, 368, 5)
draw_actor_parameter(@actor, 96, 400, 6)
Каждая строка рисует 1 параметр. Второе число в строке — позиция по оси Y (192, 224, 256...; чем она больше, чем ниже будет текст).
Последнее число в строке — номер параметра (0 — атака, 1 — физическая защита, 2 — магическая защита, 3 — сила, 4 — выносливость, 5 — скорость, 6 — интеллект).
В принципе, можно можно просто поменять 0, 1, 2 и самим рассчитывать позицию по оси Y. Вот только лично мне лень её самому рассчитывать. Поэтому предлагаю заменить все строчки draw_actor_parameter (да, все 7) на вот такие:
Code:
param_y = 192
[0, 1, 2, nil, 3, 4, 5, 6].each_with_index do |p, i|
if p.nil?
param_y += 16
else
draw_actor_parameter(@actor, 96, param_y, p)
param_y += 32
end
end
А потом уже вместо 0, 1, 2, nil, 3, 4, 5, 6 писать нужные номера параметров (а nil будет делать разделитель в полстроки).
Изменённый код примет такой вид:
Ну а дальше уже можно просто менять цифры внутри [ ... ] на нужные.
Последнее редактирование: 7 года 1 мес. назад пользователем Dmy.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 1 мес. назад #109554
от Dokk
Sohm...
Dokk ответил в теме Порядок написания главных навыков в меню состояния
Все, работает. Респект! Пошел пилить
Sohm...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 1 мес. назад - 7 года 1 мес. назад #109555
от Dmy
Мой плагин заменяет функцию drawParameters класса Window_Status. Window_Status — это окно отображения статуса, drawParameters — функция, которая отвечает за отрисовку статуса.
В оригинале код drawParameters выглядел вот так (его можно посмотреть на гитхабе или в файле rpg_windows.js):
То есть он проходил по числам от 0 до 6, не включая 6 (за это отвечает блок for (var i = 0; i < 6; i++) { ... }). Для каждого числа он рассчитывал ID параметра (var paramId = i + 2;), прибавляя 2 к числу (прибавление 2 нужно, чтобы не отображать макс. HP и MP — они отображаются в другом месте), рассчитывал положение по вертикали и рисовал параметр и его значение разными цветами.
Я сделал такие изменения:
Если это непонятно — ничего страшного! Я не рассчитываю, что вы поймёте этот скрипт. Его можно просто взять и использовать, не разбираясь в принципах работы.
Хотя если что-то непонятно, а хочется понять, то задавайте вопросы
(Кстати, на всякий случай: мои скрипты выше распространяются по лицензии CC0, т.е. их можно использовать где угодно и как угодно. Меня упоминать не надо.)
Dmy ответил в теме Порядок написания главных навыков в меню состояния
Эта строчка создаёт массив params и записывает в него 4 числа.Dokk пишет: Друже, а скажи пожалуйста, отображение порядка навыков это вот эта строчка?
Code:var params = [2, 6, 7, 3];
Просто я в JS малость нубоват и разбираюсь тут потихоньку
Мой плагин заменяет функцию drawParameters класса Window_Status. Window_Status — это окно отображения статуса, drawParameters — функция, которая отвечает за отрисовку статуса.
В оригинале код drawParameters выглядел вот так (его можно посмотреть на гитхабе или в файле rpg_windows.js):
Code:
Window_Status.prototype.drawParameters = function(x, y) {
var lineHeight = this.lineHeight();
for (var i = 0; i < 6; i++) {
var paramId = i + 2;
var y2 = y + lineHeight * i;
this.changeTextColor(this.systemColor());
this.drawText(TextManager.param(paramId), x, y2, 160);
this.resetTextColor();
this.drawText(this._actor.param(paramId), x + 160, y2, 60, 'right');
}
};
То есть он проходил по числам от 0 до 6, не включая 6 (за это отвечает блок for (var i = 0; i < 6; i++) { ... }). Для каждого числа он рассчитывал ID параметра (var paramId = i + 2;), прибавляя 2 к числу (прибавление 2 нужно, чтобы не отображать макс. HP и MP — они отображаются в другом месте), рассчитывал положение по вертикали и рисовал параметр и его значение разными цветами.
Я сделал такие изменения:
- Ввёл массив params, в котором хранятся ID параметров (var params = [2, 6, 7, 3]). Массив — это набор подряд идущих элементов, у которых есть номера. Причём номерация начинается с нуля: число №0 равно 2, число №1 равно 6, число №2 равно 7, число №3 равно 3.
- Поменял условие в цикле for, чтобы он брал числа от 0 до количества элементов в params (params.length), не включая params.length (то есть для четырёх значений блок for (...) {...} выполнится 4 раза, и i будет равно 0, 1, 2, 3 — нумерация массивов в JavaScript начинается с нуля, то будут браться все номера чисел в массиве, по очереди).
- Поменял, как рассчитывается paramId: раньше он получался как i+2 (var paramId = i + 2), а я сделал «взять элемент массива params с номером i» (var paramId = params).
Если это непонятно — ничего страшного! Я не рассчитываю, что вы поймёте этот скрипт. Его можно просто взять и использовать, не разбираясь в принципах работы.
Хотя если что-то непонятно, а хочется понять, то задавайте вопросы
(Кстати, на всякий случай: мои скрипты выше распространяются по лицензии CC0, т.е. их можно использовать где угодно и как угодно. Меня упоминать не надо.)
Последнее редактирование: 7 года 1 мес. назад пользователем Dmy.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 1 мес. назад - 7 года 1 мес. назад #109556
от Dokk
Sohm...
Dokk ответил в теме Порядок написания главных навыков в меню состояния
Все отлично расписано и более чем понятно. Спасибо огромнейшее за такое подробное объяснение. Проект на гите форкнул. Все в хозяйстве пригодится. Пойду дальше пилить
Sohm...
Последнее редактирование: 7 года 1 мес. назад пользователем Dokk.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.099 секунд
