Показано с 1 по 5 из 5

Тема: Аддоны к Глобальные Настройки (Extended Settings)

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #2

    По умолчанию Настройки для Глобальные Настройки

    Дополнение Настройки для Глобальные Настройки
    Автор: Я (Денис Кузнецов)
    Версия: 1.3 от 12.08.15
    Тип: Добавляющий возможности

    Скриншоты:
    Спойлер Скриншоты:


    Рекомендован к установке!

    Данное дополнение позволяет настроить скрипт Глобальные Настройки

    Спойлер Код:
    Код:
    =begin
    ###############################################################################
    #                                                                             #
    #          								Аддон к Extended Settings                           #
    #                                                                             #
    ###############################################################################	
    	
    Автор: Денис Кузнецов (http://vk.com/id8137201)
    Группа ВК: https://vk.com/scriptsrpgmakervxace
    Зависимости: 
    Extended_Settings (Глобальные настройки) by Denis Kyznetsov (версия 1.2)
    
    Установка: разместить ниже зависимостей
    
    =end
    
    $Extended_Settings_Command_List.push({ :command_name => "Настройки скрипта", :command_symbol => :den_kyz_extended_settings_settings_command_symbol, 
    		:method => :den_kyz_extended_settings_settings_method, :enabled => true, :author => "Денис Кузнецов", :version => "1.3", :date => "12.08.15", 
    		:description => "Настройки главного скрипта VX ACE\nВы можете настроить следующие\nпараметры:\nСортировка списка, управление\nсписком, настройка анимации" })
    
    module Extended_Settings_Settings
    	
    	# Начало настройки скрипта
    	
    	# Символ кнопки, которая вызывает этот скрипт в настройках
    	EXTENDED_SETTINGS_SETTINGS_BUTTON = :Z
    	
    	# Конец настройки скрипта
    	
    	EXTENDED_SETTINGS_SETTINGS_COMMAND_LIST = [ "Сортировка списка", "Отображение списка", "Прочее" ]
    	
    end # module Extended_Settings_Settings
    
    class Extended_Settings_Scene < Scene_Base
    	
    	def den_kyz_extended_settings_settings_method
    		SceneManager.call(Extended_Settings_Settings_Scene)
    	end
    	
    	alias den_kyz_extended_settings_settings_update update
    	def update
    		den_kyz_extended_settings_settings_update
    		den_kyz_extended_settings_settings_method if Input.trigger?(Extended_Settings_Settings::EXTENDED_SETTINGS_SETTINGS_BUTTON)
    	end
    	
    end # class Extended_Settings_Scene < Scene_Base
    
    class Extended_Settings_Settings_Scene < Scene_Base
    	
    	include Extended_Settings_Settings
    	
    	def start
    		@animation = 0
    		super
    		create_command_window
    		create_info_window
    	end
    	
    	def create_command_window
    		@create_command_window = Extended_Settings_Settings_Command_Window.new
    		@create_command_window.set_handler(:cancel, method(:return_scene))
    		@create_command_window.set_handler(EXTENDED_SETTINGS_SETTINGS_COMMAND_LIST[0].to_sym, method(:create_control_command_window))
    		@create_command_window.set_handler(EXTENDED_SETTINGS_SETTINGS_COMMAND_LIST[1].to_sym, method(:create_control_command_window))
    		@create_command_window.set_handler(EXTENDED_SETTINGS_SETTINGS_COMMAND_LIST[2].to_sym, method(:setup_enable_settings))
    	end
    	
    	def create_info_window
    		@create_info_window = Extended_Settings_Settings_Info_Window.new(@create_command_window)
    	end
    	
    	def create_control_command_window
    		dispose_control_command_window
    		@create_control_command_window = Extended_Settings_Settings_Control_Command_Window.new(@create_command_window, @create_info_window)
    		@create_control_command_window.set_handler(:cancel, method(:deactivate_control_window))
    		$Extended_Settings_Command_List.each do |index|
    			@create_control_command_window.set_handler((index[:command_name] + "sort").to_sym, method(:setup_extended_list_sort))
    		end
    		$Extended_Settings_Command_List.each do |index|
    			@create_control_command_window.set_handler((index[:command_name] + "activate").to_sym, method(:setup_extended_list_enabled))
    		end
    		@create_control_command_window.x = Graphics.width
    		@create_command_window.deactivate
    		@animation = 1
    	end
    	
    	def deactivate_control_window
    		if @create_control_command_window.sort_index != -1
    			@create_control_command_window.sort_index = -1
    			return
    		end
    		@create_command_window.activate
    		@animation = 2
    		while @animation != 0
    			update
    		end
    		dispose_control_command_window
    	end
    	
    	def dispose_control_command_window
    		return if @create_control_command_window.nil?
    		@create_control_command_window.dispose
    		@create_control_command_window = nil
    	end
    	
    	# метод сортировки списка
    	def setup_extended_list_sort
    		if @create_control_command_window.sort_index == -1
    			@create_control_command_window.sort_index = @create_control_command_window.index
    		else
    			list_sort(@create_control_command_window.sort_index, @create_control_command_window.index)
    			@create_control_command_window.sort_index = -1
    		end
    		@create_info_window.force_update
    	end
    	
    	# вызывается в методе сортировки списка. перестановка выбранных команд
    	def list_sort(one, two)
    		temp = $Extended_Settings_Command_List[one]
    		$Extended_Settings_Command_List[one] = $Extended_Settings_Command_List[two]
    		$Extended_Settings_Command_List[two] = temp
    	end
    	
    	# вкл / выкл выбранную команду
    	def setup_extended_list_enabled
    		index = @create_control_command_window.index
    		$Extended_Settings_Command_List[index][:enabled] = !$Extended_Settings_Command_List[index][:enabled]
    		@create_control_command_window.activate
    		@create_info_window.force_update
    	end
    	
    	# вкл / выкл настройки
    	def setup_enable_settings
    		$Extended_Settings_Command_List.each do |index|
    			index[:enabled] = !index[:enabled] if index[:command_symbol] == :den_kyz_extended_settings_settings_command_symbol
    		end
    		@create_command_window.activate
    		@create_info_window.force_update
    	end
    	
    	def update
    		super
    		play_animation if @animation != 0
    	end
    	
    	# 0 - выключена, 1 - смещение влево, 2 - смещение вправо
    	def play_animation
    		if @animation == 1
    			@create_info_window.width -= 15
    			@create_info_window.animation_update
    			@create_control_command_window.x -= 15
    			if @create_control_command_window.x <= Graphics.width / 5 * 3
    				@create_info_window.width = Graphics.width / 5 * 3
    				@create_info_window.animation_update
    				@create_control_command_window.x = Graphics.width / 5 * 3
    				@animation = 0
    			end
    		else
    			@create_info_window.width += 15
    			@create_info_window.animation_update
    			@create_control_command_window.x += 15
    			if @create_control_command_window.x >= Graphics.width
    				@create_info_window.width = Graphics.width
    				@create_info_window.animation_update
    				@create_control_command_window.x = Graphics.width
    				@animation = 0
    			end
    		end
    	end
    	
    end # class Extended_Settings_Settings_Scene < Scene_Base
    
    class Extended_Settings_Settings_Command_Window < Window_HorzCommand
    	
    	include Extended_Settings_Settings
    	
    	def initialize
    		super(0, 0)
    	end
    	
    	def col_max
    		3
    	end
    	
    	def window_width
    		Graphics.width
    	end
    	
    	def make_command_list
    		EXTENDED_SETTINGS_SETTINGS_COMMAND_LIST.each do |index|
    			add_command(index, index.to_sym)
    		end
    	end
    	
    end # class Extended_Settings_Settings_Command_Window < Window_Command
    
    class Extended_Settings_Settings_Info_Window < Window_Base
    	
    	def initialize(create_command_window)
    		@create_command_window = create_command_window
    		super(0, line_height * 2, Graphics.width, Graphics.height - line_height * 2)
    	end
    	
    	def animation_update
    		create_contents
    		force_update
    	end
    	
    	def force_update
    		@create_command_window_last_index = -1
    		update
    	end
    	
    	def update
    		return if @create_command_window_last_index == @create_command_window.index
    		@create_command_window_last_index = @create_command_window.index
    		contents.clear
    		static_text = ""
    		dynamic_text = ""
    		case @create_command_window.index
    		when 0
    			static_text = "\\c[14]Отсортируйте список команд\\c[0]\n\nСписок активных команд:\n"
    			i = 1
    			$Extended_Settings_Command_List.each do |index|
    				dynamic_text += i.to_s + ") " + index[:command_name] + "\n" if index[:enabled]
    				i += 1 if index[:enabled]
    			end
    		when 1
    			static_text = "\\c[14]Отображение команд списка\\c[0]\n\nСписок команд:\n"
    			i = 1
    			$Extended_Settings_Command_List.each do |index|
    				command_enable = index[:enabled]
    				dynamic_text += i.to_s + ") " + index[:command_name]
    				dynamic_text += " (" + on_off_text_color(command_enable, command_enable) + on_off_text(command_enable) + ")" + "\n"
    				i += 1
    			end
    		when 2
    			static_text = "\\c[14]Отображение настроек в списке\\c[0]\n\nВы всегда можете вызвать их с помощью кнопки,\nнастроенной в скрипте\n\nОтображение: "
    			command_enable = extended_settings_settings_enabled_in_list
    			dynamic_text = on_off_text_color(command_enable, true) + on_off_text(true) + " " + on_off_text_color(command_enable, false) + on_off_text(false)
    		end
    		draw_text_ex(0, 0, static_text + dynamic_text)
    	end
    	
    	def on_off_text_color(enable1, enable2)
    		return "\\c[3]" if  enable1 && enable2
    		return "\\c[2]" if !enable1 && !enable2
    		return "\\c[0]"
    	end
    	
    	def on_off_text(enable)
    		return "Вкл.\\c[0]" if enable
    		return "Выкл.\\c[0]"
    	end
    	
    	# информация о текущем скрипте в списке команд
    	def extended_settings_settings_enabled_in_list
    		array = $Extended_Settings_Command_List
    		array.each_index do |i|
    			return array[i][:enabled] if array[i][:command_symbol] == :den_kyz_extended_settings_settings_command_symbol
    		end
    	end
    	
    end # class Extended_Settings_Settings_Info_Window < Window_Base
    
    class Extended_Settings_Settings_Control_Command_Window < Window_Command
    	
    	attr_accessor :sort_index
    	
    	def initialize(create_command_window, create_info_window)
    		@create_command_window = create_command_window
    		@create_info_window = create_info_window
    		@sort_index = -1 # индекс первой команды для начала сортировки
    		super(0, line_height * 2)
    	end
    	
    	def sort_index=(sort_index)
    		@sort_index = sort_index
    		refresh
    		activate
    	end
    	
    	def window_width
    		Graphics.width / 5 * 2 + 4
    	end
    	
    	def window_height
    		Graphics.height - line_height * 2
    	end
    	
    	def draw_item(index)
    		if index == @sort_index
    			color = text_color(24)
    		else
    			color = normal_color
    		end
    		change_color(color, command_enabled?(index))
    		draw_text(item_rect_for_text(index), command_name(index), alignment)
    	end
    	
    	def make_command_list
    		case @create_command_window.index
    		when 0
    			$Extended_Settings_Command_List.each do |index|
    				add_command(index[:command_name], (index[:command_name] + "sort").to_sym)
    			end
    		when 1
    			$Extended_Settings_Command_List.each do |index|
    				add_command(index[:command_name], (index[:command_name] + "activate").to_sym)
    			end
    		end
    	end
    	
    	def cursor_pageup
    		@create_info_window.oy += line_height
    		@create_info_window.oy = 0 if @create_info_window.oy > 0
    	end
    	
    	def cursor_pagedown
    		@create_info_window.oy -= line_height
    	end
    	
    end # class Extended_Settings_Settings_Control_Command_Window < Window_Command
    
    module DataManager
    	
    	class << self
    		alias den_kyz_extended_settings_settings_make_save_contents make_save_contents
    		alias den_kyz_extended_settings_settings_extract_save_contents extract_save_contents
    	end
    	
    	def self.make_save_contents
    		contents = den_kyz_extended_settings_settings_make_save_contents
    		contents[:Extended_Settings_Command_List] = $Extended_Settings_Command_List
    		contents
    	end
    	
    	def self.extract_save_contents(contents)
    		denis_kyznetsov_dt_mngr_extract_save_contents(contents)
    		$Extended_Settings_Command_List = contents[:Extended_Settings_Command_List]
    	end
    	
    end # module DataManager
    Последний раз редактировалось DK; 22.08.2015 в 13:33.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Аддоны к Глобальные Настройки (Extended Settings)