ГлавнаяФорумRPG MakerСкрипты/ПлагиныRPG Maker VX ACEУлучшающие или добавляющее новое скриптыРасширенные Настройки v. 2.0 Финальная Версия
Войти на сайт
×
|
ТЕМА: Расширенные Настройки v. 2.0 Финальная Версия
Глобальные настройки в играх 9 года 10 мес. назад #77177
|
Повышение стат работает. Думаю не мешало бы добавить сообщения о результате(например повышения жизней).
Анимацию окон можно больше не добавлять, скрипты будут использоваться в основном для тестов игр при разработке. На счет пожеланий, даже не знаю..уже вроде все что можно ты сделал |
Канал: www.youtube.com/channel/UC_dv6JJsCYtMvAkjjQwbUhw
Зловещая тень: rpg-maker.info/forum/proekty/59684-mortu...pes-zloveshchaya-ten Phantasy Star III rpg-maker.info/forum/igry-i-roliki/60085...tory-of-orakio#79128 Phantasy star Наследие rpg-maker.info/forum/projects/60615-phantasy-star-nasledie Доблесть воина rpg-maker.info/forum/projects/50869-dobl...na-trpg?limitstart=0 Персона rpgmaker.ru/forum/projects/61435-persona...-storona-dushi#94488
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: DK
|
Глобальные настройки в играх 9 года 10 мес. назад #77179
|
Обновил настройки до версии 1.14.
Что нового: добавил возможность прибавлять/отнимать вещи, оружие и броню. Список составляется из всех вещей в базе данных проекта, у которых не пустое имя, будьте внимательны! Яндекс.диск 1.06 Код: ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ][ Нажмите, чтобы скрыть ] =begin
###############################################################################
# #
# Аддон к Extended Settings #
# #
###############################################################################
Автор: Денис Кузнецов (http://vk.com/id8137201)
=end
$Global_Setting_Command_List.push({ :command_name => "Параметры игры", :command_symbol => :den_kyz_game_test_command_symbol,
:method => :den_kyz_game_test_settings_method, :author => "Денис Кузнецов", :version => 1.14, :date => "16.01.15",
:about => "Игровые настройки для VX ACE" })
module Game_Test_Settings_Module
ANIMATION_SPEED = 10 # Скорость анимации (больше 0)
# Ниже не трогать :)
COMMAND_LIST = [ # пока методы не нужны
[ :name => "Деньги", :method => :method_money],
[ :name => "Жизни", :method=> :method_hp ],
[ :name => "Уровень", :method => :method_lvl ],
[ :name => "Магия", :method => :method_mp],
[ :name => "Телепорт", :method => :method_teleport],
[ :name => "Статы", :method => :method_stats],
[ :name => "Вещи", :method => :method_items],
[ :name => "Оружие", :method => :method_weapons ],
[ :name => "Броня", :method => :method_armors ],
[ :name => "Навыки", :method => :method_skills],
[ :name => "Классы", :method => :method_classes],
[ :name => "Партия", :method => :method_formation]
]
end # module Game_Test_Module
class Extended_Settings_Scene < Scene_Base
def den_kyz_game_test_settings_method
SceneManager.call(Game_Test_Settings_Scene)
end
end # class Extended_Settings_Scene < Scene_Base
class Game_Test_Settings_Scene < Scene_Base
include Game_Test_Settings_Module
def start
super
@animation = false
@animation_type = 0
@window_activate = 0
create_command_window
create_info_window
create_control_window
end
def create_command_window
@create_command_window = Game_Test_Settings_Command_Window.new(0, 0)
COMMAND_LIST.each do |index|
@create_command_window.set_handler(index[0][:name].to_sym, method(:press_ok_command_window))
end
end
def create_info_window
@create_info_window = Game_Test_Settings_Info_Window.new(Graphics.width / 3, 0, Graphics.width * 2 / 3, Graphics.height)
end
def create_control_window
@create_control_window = Game_Test_Settings_Control_Window.new(Graphics.width / 3, 0)
@create_control_window.opacity = 0
@create_control_window.contents_opacity = 0
@create_control_window.deactivate
@create_control_window.set_handler(:increase, method(:next_layer))
@create_control_window.set_handler(:decrease, method(:next_layer))
@create_control_window.set_handler(:setup, method(:next_layer))
@create_control_window.set_handler(:all, method(:next_layer))
$game_party.members.each do |index|
@create_control_window.set_handler(index.name.to_sym, method(:next_layer))
end
$data_mapinfos.each do |index|
@create_control_window.set_handler(index[1].name.to_sym, method(:next_layer))
end
$data_system.terms.params.each do |index|
@create_control_window.set_handler(index.to_sym, method(:next_layer))
end
$data_items.each do |index|
next if index == nil
@create_control_window.set_handler(index.name.to_sym, method(:next_layer)) if index.name != ""
end
$data_weapons.each do |index|
next if index == nil
@create_control_window.set_handler(index.name.to_sym, method(:next_layer)) if index.name != ""
end
$data_armors.each do |index|
next if index == nil
@create_control_window.set_handler(index.name.to_sym, method(:next_layer)) if index.name != ""
end
@create_control_window.set_handler(:money, method(:change_money))
@create_control_window.set_handler(:hp, method(:change_hp))
@create_control_window.set_handler(:lvl, method(:change_lvl))
@create_control_window.set_handler(:mp, method(:change_mp))
@create_control_window.set_handler(:teleport, method(:teleport))
@create_control_window.set_handler(:stats, method(:change_stats))
@create_control_window.set_handler(:items, method(:change_items_weapons_armors))
@create_control_window.set_handler(:weapons, method(:change_items_weapons_armors))
@create_control_window.set_handler(:armors, method(:change_items_weapons_armors))
end
def next_layer # следующий уровень окна
reactivate_control_window(@create_control_window.layer + 1)
end
def change_money # Увеличиваем/уменьшаем деньги
case @create_control_window.cursor_layer_0
when 0
$game_party.gain_gold(@create_control_window.money)
when 1
$game_party.lose_gold(@create_control_window.money)
when 2
$game_party.lose_gold($game_party.gold)
$game_party.gain_gold(@create_control_window.money)
end
post_complete_process
end
def change_hp
case @create_control_window.cursor_layer_0
when 0 # увеличить
if @create_control_window.cursor_layer_1 == 0 # если для всей партии
$game_party.members.each do |index|
index.change_hp(@create_control_window.hp, false)
end
else
$game_party.members[@create_control_window.cursor_layer_1 - 1].change_hp(@create_control_window.hp, false)
end
when 1 # уменьшить
if @create_control_window.cursor_layer_1 == 0 # если для всей партии
$game_party.members.each do |index|
index.change_hp(-@create_control_window.hp, false)
end
else
$game_party.members[@create_control_window.cursor_layer_1 - 1].change_hp(-@create_control_window.hp, false)
end
when 2 # установить
if @create_control_window.cursor_layer_1 == 0 # если для всей партии
$game_party.members.each do |index|
index.change_hp(-$game_party.members[@create_control_window.cursor_layer_1 - 1].hp, false)
index.change_hp(@create_control_window.hp, false)
end
else
$game_party.members[@create_control_window.cursor_layer_1 - 1].change_hp(-$game_party.members[@create_control_window.cursor_layer_1 - 1].hp, false)
$game_party.members[@create_control_window.cursor_layer_1 - 1].change_hp(@create_control_window.hp, false)
end
end
post_complete_process
end
def change_lvl
case @create_control_window.cursor_layer_0
when 0 # увеличить
if @create_control_window.cursor_layer_1 == 0 # если для всей партии
$game_party.members.each do |index|
for i in 0..@create_control_window.lvl - 1
index.level_up
end
end
else # для кого-то из партии
for i in 0..@create_control_window.lvl - 1
$game_party.members[@create_control_window.cursor_layer_1 - 1].level_up
end
end
when 1 # уменьшить
if @create_control_window.cursor_layer_1 == 0 # если для всей партии
$game_party.members.each do |index|
for i in 0..@create_control_window.lvl - 1
index.level_down
end
end
else # для кого-то из партии
for i in 0..@create_control_window.lvl - 1
$game_party.members[@create_control_window.cursor_layer_1 - 1].level_down
end
end
when 2 # установить
if @create_control_window.cursor_layer_1 == 0 # для всей партии
$game_party.members.each do |index|
for i in 0..@create_control_window.lvl - 1
index.change_level(@create_control_window.lvl, false)
end
end
else # для кого-то из партии
$game_party.members[@create_control_window.cursor_layer_1 - 1].change_level(@create_control_window.lvl, false)
end
end
post_complete_process
end
def change_mp
case @create_control_window.cursor_layer_0
when 0 # увеличить
if @create_control_window.cursor_layer_1 == 0 # если для всей партии
$game_party.members.each do |index|
index.mp += @create_control_window.mp
end
else
$game_party.members[@create_control_window.cursor_layer_1 - 1].mp += @create_control_window.mp
end
when 1 # уменьшить
if @create_control_window.cursor_layer_1 == 0 # если для всей партии
$game_party.members.each do |index|
index.mp -= @create_control_window.mp
end
else
$game_party.members[@create_control_window.cursor_layer_1 - 1].mp -= @create_control_window.mp
end
when 2 # установить
if @create_control_window.cursor_layer_1 == 0 # если для всей партии
$game_party.members.each do |index|
index.mp = @create_control_window.mp
end
else
$game_party.members[@create_control_window.cursor_layer_1 - 1].mp = @create_control_window.mp
end
end
post_complete_process
end
def teleport
i = 0
$data_mapinfos.map.each do |index|
if i == @create_control_window.cursor_layer_0
$game_map.setup(index[0])
$game_player.moveto(@create_control_window.teleport_x, @create_control_window.teleport_y)
$game_player.refresh
end
i += 1
end
post_complete_process
end
def change_stats
case @create_control_window.cursor_layer_0
when 0 # увеличить
if @create_control_window.cursor_layer_1 == 0 # если всей партии
if @create_control_window.cursor_layer_2 == 0 # если все статы
i = 0
$data_system.terms.params.each do |index|
$game_party.members.each do |actor|
actor.add_param(i, @create_control_window.stats)
end
i += 1
end
else # если один стат всей партии
$game_party.members.each do |actor|
actor.add_param(@create_control_window.cursor_layer_2 - 1, @create_control_window.stats)
end
end
else # если один стат одному
$game_party.members[@create_control_window.cursor_layer_1 - 1].add_param(@create_control_window.cursor_layer_2 - 1, @create_control_window.stats)
end
when 1
if @create_control_window.cursor_layer_1 == 0 # если всей партии
if @create_control_window.cursor_layer_2 == 0 # если все статы
i = 0
$data_system.terms.params.each do |index|
$game_party.members.each do |actor|
actor.add_param(i, -@create_control_window.stats)
end
i += 1
end
else # если один стат всей партии
$game_party.members.each do |actor|
actor.add_param(@create_control_window.cursor_layer_2 - 1, -@create_control_window.stats)
end
end
else # если один стат одному
$game_party.members[@create_control_window.cursor_layer_1 - 1].add_param(@create_control_window.cursor_layer_2 - 1, -@create_control_window.stats)
end
when 2
if @create_control_window.cursor_layer_1 == 0 # если всей партии
if @create_control_window.cursor_layer_2 == 0 # если все статы
i = 0
$data_system.terms.params.each do |index|
$game_party.members.each do |actor|
actor.add_param(i, -actor.param(i))
actor.add_param(i, @create_control_window.stats)
actor.hp += @create_control_window.stats if i == 1
actor.mp += @create_control_window.stats if i == 2
end
i += 1
end
else # если один стат всей партии
$game_party.members.each do |actor|
actor.add_param(@create_control_window.cursor_layer_2 - 1, -actor.param(@create_control_window.cursor_layer_2 - 1))
actor.add_param(@create_control_window.cursor_layer_2 - 1, @create_control_window.stats)
actor.hp += @create_control_window.stats if @create_control_window.cursor_layer_2 == 1
actor.mp += @create_control_window.stats if @create_control_window.cursor_layer_2 == 2
end
end
else # если один стат одному
#выбрал нужного персонажа, добавляю ему выбранный параметр, отнимая, что уже есть
$game_party.members[@create_control_window.cursor_layer_1 - 1].add_param(@create_control_window.cursor_layer_2 - 1, -$game_party.members[@create_control_window.cursor_layer_1 - 1].param(@create_control_window.cursor_layer_2 - 1))
#выбрал персонажа, добавляю ему выбранный параметр
$game_party.members[@create_control_window.cursor_layer_1 - 1].add_param(@create_control_window.cursor_layer_2 - 1, @create_control_window.stats)
#восстанавливаем hp и mp
$game_party.members[@create_control_window.cursor_layer_1 - 1].hp += @create_control_window.stats if @create_control_window.cursor_layer_2 == 1
$game_party.members[@create_control_window.cursor_layer_1 - 1].hp += @create_control_window.stats if @create_control_window.cursor_layer_2 == 2
end
end
post_complete_process
end
def change_items_weapons_armors
case @create_command_window.current_index
when 6
array = $data_items
num = @create_control_window.items
when 7
array = $data_weapons
num = @create_control_window.weapons
when 8
array = $data_armors
num = @create_control_window.armors
end
array_index = @create_control_window.visible_items
layer_cursor = @create_control_window.cursor_layer_1
znak = 1 # прибавить вещь
znak *= -1 if @create_control_window.cursor_layer_0 == 1 # отнять вещь
$game_party.gain_item(array[array_index[layer_cursor]], num * znak)
post_complete_process
end
def post_complete_process # после добавления чего-либо вернуть 1 окно
@window_activate = 0
@animation = true
activate_window
update
end
def reactivate_control_window(layer) # Переактивируем окно и устанавливаем уровень
@create_control_window.layer = layer
@create_control_window.refresh
@create_control_window.select(0)
@create_control_window.activate
end
def press_ok_command_window
@animation = true
@animation_type = rand(4)
pre_animation_setting
@window_activate = 1
update_window_cursors
reactivate_control_window(0)
activate_window
update
end
def pre_animation_setting
@create_info_window.x = Graphics.width / 3
@create_info_window.y = 0
@create_control_window.opacity = 0
@create_control_window.contents_opacity = 0
@create_control_window.x = Graphics.width / 3
@create_control_window.y = 0
@create_control_window.x = Graphics.width if @animation_type == 2
end
def activate_window
case @window_activate
when 0
@create_command_window.activate
@create_control_window.deactivate
when 1
@create_command_window.deactivate
@create_control_window.activate
end
end
def update
update_window_cursors
super
if !@animation && Input.trigger?(:B) # обработка нажатия кнопки Esc
case @window_activate
when 0
Sound.play_cancel
return_scene
when 1
if @create_control_window.layer == 0
Sound.play_cancel
@window_activate = 0
activate_window
@animation = true
else
Sound.play_cancel
reactivate_control_window(@create_control_window.layer - 1)
end
end
end
animation_type if @animation
end
def update_window_cursors
if @window_activate == 0
@create_info_window.command = @create_command_window.current_index
else
@create_control_window.command = @create_command_window.current_index
end
end
def animation_type
case @animation_type
when 0 # первая анимация
case @window_activate # вернуть первое окно
when 0
@create_info_window.x -= ANIMATION_SPEED
@create_info_window.opacity += ANIMATION_SPEED
@create_info_window.contents_opacity += ANIMATION_SPEED
@create_control_window.opacity -= ANIMATION_SPEED
@create_control_window.contents_opacity -= ANIMATION_SPEED
if @create_control_window.opacity == 0
@animation = false
end
when 1 # показать второе окно
@create_info_window.x += ANIMATION_SPEED
@create_info_window.opacity -= ANIMATION_SPEED
@create_info_window.contents_opacity -= ANIMATION_SPEED
@create_control_window.opacity += ANIMATION_SPEED
@create_control_window.contents_opacity += ANIMATION_SPEED
if @create_control_window.opacity == 255
@animation = false
end
end
when 1
case @window_activate
when 0
@create_info_window.y -= ANIMATION_SPEED
@create_info_window.opacity += ANIMATION_SPEED
@create_info_window.contents_opacity += ANIMATION_SPEED
@create_control_window.opacity -= ANIMATION_SPEED
@create_control_window.contents_opacity -= ANIMATION_SPEED
if @create_control_window.opacity == 0
@animation = false
end
when 1
@create_info_window.y += ANIMATION_SPEED
@create_info_window.opacity -= ANIMATION_SPEED
@create_info_window.contents_opacity -= ANIMATION_SPEED
@create_control_window.opacity += ANIMATION_SPEED
@create_control_window.contents_opacity += ANIMATION_SPEED
if @create_control_window.opacity == 255
@animation = false
end
end
when 2 # вторая анимация
case @window_activate
when 0
@create_info_window.x += ANIMATION_SPEED
@create_info_window.opacity += ANIMATION_SPEED
@create_info_window.contents_opacity += ANIMATION_SPEED
@create_control_window.x += ANIMATION_SPEED
@create_control_window.opacity -= ANIMATION_SPEED
@create_control_window.contents_opacity -= ANIMATION_SPEED
if @create_info_window.x >= Graphics.width / 3
@create_info_window.x = Graphics.width / 3
@animation = false
end
when 1
@create_info_window.x -= ANIMATION_SPEED
@create_info_window.opacity -= ANIMATION_SPEED
@create_info_window.contents_opacity -= ANIMATION_SPEED
@create_control_window.x -= ANIMATION_SPEED
@create_control_window.opacity += ANIMATION_SPEED
@create_control_window.contents_opacity += ANIMATION_SPEED
if @create_control_window.x <= Graphics.width / 3
@create_control_window.x = Graphics.width / 3
@animation = false
end
end
when 3 # третья анимация
case @window_activate # вернуть первое окно
when 0
@create_info_window.opacity += ANIMATION_SPEED / 2
@create_info_window.contents_opacity += ANIMATION_SPEED / 2
@create_control_window.opacity -= ANIMATION_SPEED / 2
@create_control_window.contents_opacity -= ANIMATION_SPEED / 2
if @create_control_window.opacity == 0
@animation = false
end
when 1 # установить второе окно
@create_info_window.opacity -= ANIMATION_SPEED / 2
@create_info_window.contents_opacity -= ANIMATION_SPEED / 2
@create_control_window.opacity += ANIMATION_SPEED / 2
@create_control_window.contents_opacity += ANIMATION_SPEED / 2
if @create_control_window.opacity == 255
@animation = false
end
end
end
end
end # class Game_Test_Settings_Scene < Scene_Base
class Game_Test_Settings_Command_Window < Window_Command
include Game_Test_Settings_Module
def initialize(x, y)
super(x, y)
end
def window_width
Graphics.width / 3
end
def window_height
Graphics.height
end
def make_command_list
COMMAND_LIST.each do |index|
add_command(index[0][:name], index[0][:name].to_sym)
end
end
def current_index
for i in 0..@list.size-1
return i if @list[i][:symbol] == current_symbol
end
end
end # class Game_Test_Settings_Command_Window < Window_Command
class Game_Test_Settings_Info_Window < Window_Base
attr_accessor :command
def initialize(x, y, w, h)
@command = 0 # какая команда выбрана на окне команд
super(x, y, w, h)
end
def update
super
contents.clear
draw_text(0, 30, 450, 32, "Возможности:")
case @command
when 0
draw_text(0, 0, 450, 32, "Управление деньгами")
draw_text(0, 60, 450, 32, "1) Увеличить деньги")
draw_text(0, 90, 450, 32, "2) Уменьшить деньги")
draw_text(0, 120, 450, 32, "3) Установить определенный уровень")
when 1
draw_text(0, 0, 450, 32, "Управление здоровьем")
draw_text(0, 60, 450, 32, "1) Восстановить жизни")
draw_text(0, 90, 450, 32, "2) Отнять жизни")
draw_text(0, 120, 450, 32, "3) Установить определенный уровень")
when 2
draw_text(0, 0, 450, 32, "Управление уровнями")
draw_text(0, 60, 450, 32, "1) Прибавить уровень")
draw_text(0, 90, 450, 32, "2) Отнять уровень")
draw_text(0, 120, 450, 32, "3) Установить определенный уровень")
when 3
draw_text(0, 0, 450, 32, "Управление магией")
draw_text(0, 60, 450, 32, "1) Восстановить магию")
draw_text(0, 90, 450, 32, "2) Отнять магию")
draw_text(0, 120, 450, 32, "3) Установить определенный уровень")
when 4
draw_text(0, 0, 450, 32, "Управление телепортом")
draw_text(0, 60, 450, 32, "Телепортироваться на любую карту")
when 5
draw_text(0, 0, 450, 32, "Управление статами")
draw_text(0, 60, 450, 32, "1) Увеличить стат")
draw_text(0, 90, 450, 32, "2) Уменьшить стат")
draw_text(0, 120, 450, 32, "3) Установить определенный уровень")
when 6
draw_text(0, 0, 450, 32, "Управление вещами")
draw_text(0, 60, 450, 32, "1) Добавить вещь")
draw_text(0, 90, 450, 32, "2) Отнять вещь")
when 7
draw_text(0, 0, 450, 32, "Управление оружием")
draw_text(0, 60, 450, 32, "1) Добавить оружие")
draw_text(0, 90, 450, 32, "2) Отнять оружие")
when 8
draw_text(0, 0, 450, 32, "Управление броней")
draw_text(0, 60, 450, 32, "1) Добавить броню")
draw_text(0, 90, 450, 32, "2) Отнять броню")
when 9
draw_text(0, 0, 450, 32, "Управление навыками")
draw_text(0, 60, 450, 32, "1) Добавить навык")
draw_text(0, 90, 450, 32, "2) Отнять навык")
when 10
draw_text(0, 0, 450, 32, "Управление классами")
draw_text(0, 60, 450, 32, "Изменить класс персонажа")
when 11
draw_text(0, 0, 450, 32, "Управление партией")
draw_text(0, 60, 450, 32, "1) Добавить персонажа")
draw_text(0, 90, 450, 32, "2) Удалить персонажа")
end
draw_text(0, 150, 450, 32, "Внимание! Пока не работает!") if @command > 8
end
end # class Game_Test_Settings_Info_Window < Window_Base
class Game_Test_Settings_Control_Window < Window_Command
attr_accessor :layer
attr_accessor :money
attr_accessor :hp
attr_accessor :lvl
attr_accessor :mp
attr_accessor :teleport_x
attr_accessor :teleport_y
attr_accessor :stats
attr_accessor :items
attr_accessor :weapons
attr_accessor :armors
attr_accessor :visible_items
attr_accessor :cursor_layer_0
attr_accessor :cursor_layer_1
attr_accessor :cursor_layer_2
attr_accessor :command
def initialize(x, y)
@layer = 0 # уровень отображения кнопок
@money = 1 # деньги
@hp = 1 # жизни
@lvl = 1 # уровень
@mp = 1 # магия
@teleport_x = 0 # x для телепорта
@teleport_y = 0 # y для телепорта
@stats = 1 # статы
@items = 1 # вещи
@weapons = 1 # оружие
@armors = 1 # броня
@visible_items = [] # реальные индексы вещей в базе данных
@cursor_layer_0 = 0 # какая кнопка была нажата на layer == 0
@cursor_layer_1 = 0 # какая кнопка была нажата на layer == 1
@cursor_layer_2 = 0 # какая кнопка была нажата на layer == 2
@command = 0 # какая команда была выбрана из COMMAND_LIST
super(x, y)
end
def current_index
for i in 0..@list.size-1
return i if @list[i][:symbol] == current_symbol
end
end
def window_width
Graphics.width * 2 /3
end
def window_height
Graphics.height
end
def make_command_list
if @layer == 0 && @command != 4
add_command("Увеличить", :increase)
add_command("Уменьшить", :decrease)
add_command("Установить", :setup) if @command < 6
end
if @layer == 1 && (@command != 0 && @command != 4 && @command < 6 || @command == 9 || @command == 10) # 4 - телепорт, 5 - статы
add_command("Всей партии", :all)
$game_party.members.each do |index|
add_command(index.name, index.name.to_sym)
end
end
case @command
when 0
add_command(@money.to_s, :money) if @layer == 1
when 1
add_command(@hp.to_s, :hp) if @layer == 2
when 2
add_command(@lvl.to_s, :lvl) if @layer == 2
when 3
add_command(@mp.to_s, :mp) if @layer == 2
when 4
if @layer == 0
$data_mapinfos.each do |index|
add_command(index[1].name, index[1].name.to_sym)
end
end
if @layer == 1
add_command("x = " + @teleport_x.to_s, :teleport_x)
add_command("y = " + @teleport_y.to_s, :teleport_y)
add_command("Телепортироваться", :teleport)
end
when 5
if @layer == 2
add_command("Все статы", :all) # all ?
$data_system.terms.params.each do |index|
add_command(index.to_s, index.to_sym)
end
end
add_command(@stats.to_s, :stats) if @layer == 3
when 6..8
case @command
when 6
array = $data_items if @cursor_layer_0 == 0
array = $game_party.items if @cursor_layer_0 == 1
add_command(@items.to_s, :items) if @layer == 2
when 7
array = $data_weapons if @cursor_layer_0 == 0
array = $game_party.weapons if @cursor_layer_0 == 1
add_command(@weapons.to_s, :weapons) if @layer == 2
when 8
array = $data_armors if @cursor_layer_0 == 0
array = $game_party.armors if @cursor_layer_0 == 1
add_command(@armors.to_s, :armors) if @layer == 2
end
if @layer == 1
array.each do |index|
next if index == nil
@visible_items.push(index.id) if index.name != ""
add_command(index.name, index.name.to_sym) if index.name != ""
end
add_command("Ничего нет", :nothing) if array.size == 0
end
when 9
if @layer == 2
$data_skills.each do |index|
next if index == nil
next if index.id < 3 && @command == 9 # не включать навыки атаки и защиты
add_command(index.name, index.name.to_sym) if index.name != ""
end
end
#~ add_command(@skills.to_s, :skills) if @layer == 2
when 10
if @layer == 2
$data_classes.each do |index|
next if index == nil
add_command(index.name, index.name.to_sym) if index.name != ""
end
end
#~ add_command(@classes.to_s, :classes) if @layer == 2
#~ when 11
#~ if @layer == 1
#~ $data_actors.each do |index|
#~ next if index == nil
#~ add_command(index.name, index.name.to_sym) if index.name != ""
#~ end
#~ end
end
end
def refresh
@visible_items = [] if @layer < 2
super
draw_text(0, 0, 350, 32, "Выберите из списка", 1) if @layer == 0
case @command
when 0 # если выбраны деньги
draw_text(0, 0, 350, 32, "Введите сумму", 1) if @layer == 1
draw_text(0, 30, 350, 32, "У партии: " + $game_party.gold.to_s + " " + Vocab::currency_unit, 1)
when 1 # жизни
draw_text(0, 0, 350, 32, "Кому изменить жизни ?", 1) if @layer == 1
draw_text(0, 0, 350, 32, "Введите жизни", 1) if @layer == 2
draw_text(0, 30, 350, 32, "У " + $game_party.members[@cursor_layer_1 - 1].name + " " + $game_party.members[@cursor_layer_1 - 1].hp.to_s + " жизней", 1) if @layer == 2 && @cursor_layer_1 > 0
when 2 # уровни
draw_text(0, 0, 350, 32, "Кому изменить уровень ?", 1) if @layer == 1
draw_text(0, 0, 350, 32, "Введите уровень", 1) if @layer == 2
draw_text(0, 30, 350, 32, "У " + $game_party.members[@cursor_layer_1 - 1].name + " " + $game_party.members[@cursor_layer_1 - 1].level.to_s + " уровень", 1) if @layer == 2 && @cursor_layer_1 > 0
when 3 # магия
draw_text(0, 0, 350, 32, "Кому изменить магию ?", 1) if @layer == 1
draw_text(0, 0, 350, 32, "Введите магию", 1) if @layer == 2
draw_text(0, 30, 350, 32, "У " + $game_party.members[@cursor_layer_1 - 1].name + " " + $game_party.members[@cursor_layer_1 - 1].mp.to_s + " магии", 1) if @layer == 2 && @cursor_layer_1 > 0
when 4
draw_text(0, 0, 350, 32, "Введите координаты", 1) if @layer == 1
when 5
draw_text(0, 0, 350, 32, "Кому изменить стат ?", 1) if @layer == 1
draw_text(0, 0, 350, 32, "Выберите из списка", 1) if @layer == 2
draw_text(0, 0, 350, 32, "Введите стат", 1) if @layer == 3
# у этого такое стат на столько
if @layer == 3 && @cursor_layer_1 > 0 && @cursor_layer_2 > 0
actor = $game_party.members[@cursor_layer_1 - 1]
draw_text(0, 30, 350, 32, "У " + actor.name + " " + actor.param(@cursor_layer_2 - 1).to_s + " " + $data_system.terms.params[@cursor_layer_2 - 1], 1)
end
when 6..8
draw_text(0, 0, 350, 32, "Выберите из списка", 1) if @layer == 1
draw_text(0, 0, 350, 32, "Введите количество", 1) if @layer == 2
if @layer == 2 && @cursor_layer_0 == 1
case @command
when 6
array = $data_items
when 7
array = $data_weapons
when 8
array = $data_armors
end
item = array[@visible_items[@cursor_layer_1]]
text = $game_party.item_number(item)
draw_text(0, 30, 350, 32, "У партии " + text.to_s + " " + item.name, 1) if @layer == 2 && @cursor_layer_0 == 1
end
when 9..11
draw_text(0, 0, 350, 32, "Выберите из списка", 1) if @layer < 3
end
end
def item_rect(index) # 72 + (добавил)
rect = Rect.new
rect.width = item_width
rect.height = item_height
rect.x = index % col_max * (item_width + spacing)
rect.y = 72 + index / col_max * item_height
rect
end
def page_row_max # - 72 (добавил)
(height - padding - padding_bottom - 72) / item_height
end
def row_max # + 72 / item_height (добавил)
[(item_max + col_max - 1 + 72 / item_height) / col_max, 1].max
end
def current_index # не правильно работает, если одинаковые символы
for i in 0..@list.size-1
return i if @list[i][:symbol] == current_symbol
end
end
def call_ok_handler
@cursor_layer_0 = current_index if @layer == 0
@cursor_layer_1 = current_index if @layer == 1
@cursor_layer_2 = current_index if @layer == 2
super
end
def cursor_pagedown
return super if @layer == 0
case @command
when 0
@money += 10000
@money = $game_party.gold if @money > $game_party.gold && @cursor == 1
when 1
return super if @layer < 2
@hp += 1000
when 2
return super if @layer < 2
@lvl += 50
when 3
return super if @layer < 2
@mp += 1000
when 4
if current_index == 0
@teleport_x += 5
else
@teleport_y += 5
end
when 5
@stats += 50
when 6
@items += 50
when 7
@weapons += 50
when 8
@armors += 50
end
refresh
end
def cursor_pageup
return super if @layer == 0
case @command
when 0
@money -= 10000
@money = 0 if @money < 0
when 1
return super if @layer < 2
@hp -= 1000
@hp = 0 if @hp < 0
when 2
return super if @layer < 2
@lvl -= 50
@lvl = 0 if @lvl < 0
@lvl = 1 if @lvl < 1 && @cursor_layer_0 == 2
when 3
return super if @layer < 2
@mp -= 1000
@mp = 0 if @mp < 0
when 4
if current_index == 0
@teleport_x -= 5
@teleport_x = 0 if @teleport_x < 0
else
@teleport_y -= 5
@teleport_y = 0 if @teleport_y < 0
end
when 5
@stats -= 50
@stats = 1 if @stats < 1
when 6
@items -= 50
@items = 0 if @items < 0
when 7
@weapons -= 50
@weapons = 0 if @weapons < 0
when 8
@armors -= 50
@armors = 0 if @armors < 0
end
refresh
end
def cursor_up(wrap = false)
return super if @layer < 2 # == 0
case @command
when 0
@money += 100
@money = $game_party.gold if @money > $game_party.gold && @cursor == 1
when 1
#~ return super if @layer < 2
@hp += 20
when 2
#~ return super if @layer < 2
@lvl += 10
when 3
#~ return super if @layer < 2
@mp += 20
when 5
return super if @layer < 3
@stats += 10
when 6
#~ return super if @layer < 2
@items += 10
when 7
#~ return super if @layer < 2
@weapons += 10
when 8
#~ return super if @layer < 2
@armors += 10
else
return super
end
refresh
end
def cursor_down(wrap = false)
return super if @layer < 2 # == 0
case @command
when 0
@money -= 100
@money = 0 if @money < 0
when 1
#~ return super if @layer < 2
@hp -= 20
@hp = 0 if @hp < 0
when 2
#~ return super if @layer < 2
@lvl -= 10
@lvl = 0 if @lvl < 0
@lvl = 1 if @lvl < 1 && @cursor_layer_0 == 2
when 3
#~ return super if @layer < 2
@mp -= 20
@mp = 0 if @mp < 0
when 4
return super
when 5
return super if @layer < 3
@stats -= 10
@stats = 1 if @stats < 1
when 6
#~ return super if @layer < 2
@items -= 10
@items = 0 if @items < 0
when 7
#~ return super if @layer < 2
@weapons -= 10
@weapons = 0 if @weapons < 0
when 8
#~ return super if @layer < 2
@armors -= 10
@armors = 0 if @armors < 0
else
return super
end
refresh
end
def cursor_right(wrap = false)
return super if @layer < 2 # == 0
case @command
when 0
@money += 1
@money = $game_party.gold if @money > $game_party.gold && @cursor == 1
when 1
#~ return super if @layer < 2
@hp += 1
when 2
#~ return super if @layer < 2
@lvl += 1
when 3
#~ return super if @layer < 2
@mp += 1
when 4
if current_index == 0
@teleport_x += 1
else
@teleport_y += 1
end
when 5
#~ return super if @layer < 2
@stats += 1
when 6
#~ return super if @layer < 2
@items += 1
when 7
#~ return super if @layer < 2
@weapons += 1
when 8
#~ return super if @layer < 2
@armors += 1
end
refresh
end
def cursor_left(wrap = false)
return super if @layer < 2 # == 0
case @command
when 0
@money -= 1
@money = 0 if @money < 0
when 1
#~ return super if @layer < 2
@hp -= 1
@hp = 0 if @hp < 0
when 2
#~ return super if @layer < 2
@lvl -= 1
@lvl = 0 if @lvl < 0
@lvl = 1 if @lvl < 1 && @cursor_layer_0 == 2
when 3
#~ return super if @layer < 2
@mp -= 1
@mp = 0 if @mp < 0
when 4
if current_index == 0
@teleport_x -= 1
@teleport_x = 0 if @teleport_x < 0
else
@teleport_y -= 1
@teleport_y = 0 if @teleport_y < 0
end
when 5
#~ return super if @layer < 2
@stats -= 1
@stats = 1 if @stats < 1
when 6
#~ return super if @layer < 2
@items -= 1
@items = 0 if @items < 0
when 7
#~ return super if @layer < 2
@weapons -= 1
@weapons = 0 if @weapons < 0
when 8
#~ return super if @layer < 2
@armors -= 1
@armors = 0 if @armors < 0
end
refresh
end
end # class Game_Test_Settings_Control_Window < Window_Command |
Администратор запретил публиковать записи гостям.
|
Глобальные настройки в играх 9 года 10 мес. назад #77185
|
|
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: DK
|
Глобальные настройки в играх 9 года 10 мес. назад #77188
|
Вечером попробую сделать и доделаю остальные пункты. UPD. Можно сделать 2 способами: 1) просто фильтровать такие вещи; 2) сделать в виде подменю (выбираешь сначала воины, потом выпадает список бойцы, воры и т. д., а только потом список выбора)
|
Последнее редактирование: 9 года 10 мес. назад от DK. Причина: UPD
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: DeadElf79
|
Глобальные настройки в играх 9 года 10 мес. назад #77220
|
Обновил каркас. Что нового: немного преукрасил окно информации, но чуть позже добавлю больше.
Обновил игровые настройки. Что нового: Добавил возможность фильтровать вещи, оружие и броню по регулярному выражению. Эльф чуть выше писал об этом, как это работает. Настраивается в шапке скрипта. Хотя лично мне кажется, что лучше оставить без фильтрации, потому что сразу видно какая категория отображается. Яндекс.диск 1.07 |
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: DeadElf79
|
Глобальные настройки в играх 9 года 10 мес. назад #77281
|
Обновление 1.08.
Важное обновление! Что нового (каркас): Перенастроил немного каркас. Что нового (параметры игры): пока ничего, но доделаю оставшиеся команды. Что нового вообще: добавил новую настройку - настройку каркаса Теперь в самом каркасе можно настроить следующие параметры: можно отсортировать список команд в каркасе (для большей наглядности добавил, пока еще не работающий скрипт настройки Даты/Времени (скоро и им займусь)), возможность отключить/спрятать некоторые команды в каркасе, возможность отключить/включить анимацию каркаса. Все эти изменения сохраняются вместе с игрой. Для разработчиков (хотя мой каркас никому не нужен ): Обновил добавление своей команды в список (а именно добавил после символа :method символ :enabled, который должен быть true/false. Отвечает за показ вашей команды в списке каркаса. Собственно с помощью этого символа и можно включать/отключать команды в настройке. Настройки каркаса могут быть скрыты из списка, но все равно их можно вызвать кнопкой (настраивается в шапке скрипта). По умолчанию кнопка - D. Скрины настроек: Яндекс.диск 1.08 |
Администратор запретил публиковать записи гостям.
|
Глобальные настройки в играх 9 года 10 мес. назад #77287
|
Обновил игровые параметры.
Что нового: возможность менять классы персонажам, возможность добавлять/удалять персонажей в партии. Оказалось, что фильтрация вещей не совсем правильно работает. Исправлю в ближайшее время. Новые возможности писал и тестировал в 1 ночи, так что могут быть баги Отпишитесь, как работает) И пока что в списке на добавление персонажей в партию присутствуют и те, что уже в партии. Позже и это исправлю, а также добавлю навыки. Яндекс.диск 1.08 |
Администратор запретил публиковать записи гостям.
|
Глобальные настройки в играх 9 года 10 мес. назад #77354
|
Обновление.
Что нового(каркас): вынес в шапку скрипта описание для разработчиков, как добавить свою команду; Заменил символ :about на :description. Поэтому в архиве обновил все действующие скрипты. И что-то одно не будет работать со старой версией. Что нового(настройка каркаса): добавил возможность листать окно сортировки команд (если команд будет слишком много, а надо просмотреть весь список). По умолчанию кнопки Q и W. Что нового(игровые параметры): Добавил возможность изменять навыки персонажам. Также сделал, что в списке не будут отображаться навыки, которые уже есть у персонажа, также не будет отображаться класс персонажа при его изменении и в списке изменения партии не будут отображаться персонажи, которые уже в ней состоят (разумеется при увеличении партии). Вроде все. Пока больше не знаю, что добавить, так что займусь другими скриптами. Если найдете ошибки, пишите. Буду исправлять. Яндекс.диск 1.09 |
Администратор запретил публиковать записи гостям.
|
Глобальные настройки в играх 9 года 4 мес. назад #83334
|
Обновление до версии 1.1
Шапка обновлена |
Администратор запретил публиковать записи гостям.
|
Глобальные настройки в играх 9 года 3 мес. назад #83982
|
Новая версия. Шапку темы обновил.
|
Администратор запретил публиковать записи гостям.
|
Расширенные Настройки v. 2.0 Финальная Версия 9 года 1 мес. назад #85877
|
Финальная версия. Шапку обновил.
|
Администратор запретил публиковать записи гостям.
|
|
Модераторы: NeKotZima
Время создания страницы: 0.316 секунд