Плохо! Плохо!:  0
Страница 3 из 7 ПерваяПервая 12345 ... ПоследняяПоследняя
Показано с 21 по 30 из 62

Тема: Open RGSS3: Разработка

  1. #21
    Познающий Аватар для mephis
    Информация о пользователе
    Регистрация
    27.01.2011
    Адрес
    Новосибирск
    Сообщений
    330
    Записей в дневнике
    8
    Репутация: 34 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Equilibrium Keeper Посмотреть сообщение
    Хммммм... а ты проверял? Мне кажется, что params - это массив, и передастся он именно как массив, а не как набор параметров. Ну и для градиентной заливке решение не подойдет.
    Хм, действительно этот метод не сработает. Но по другой причине: из-за того, что нельзя после переменного количества аргументов вставлять обычный. Вот если в начале можно было Color воткнуть — тогда бы прошло.

    А касаемо аргументы как массив. Тут вычитал, что массив можно превращать в последовательность аргументов, например так:
    Код:
    def foo(x, y, z)
      p x + y + z
    end
    
    a = [1, 2, 3]
    
    foo(*a)   # Выведет 6
    Ну, так или иначе, как эти методы реализовать — решать тебе. Я тут лезть не буду. Пока что Сейчас надо бы по-подробнее посмотреть что там в MACL и SDK. Наверняка есть что-то интересное.

  2. #22

    По умолчанию

    Интересно! Не знал. Поглядим.

  3. #23

    По умолчанию

    Ммм... а что если так:
    Код:
    def clear_rect(*params)
      params.push(Color.new(0, 0, 0, 0))
      self.fill_rect(*params)
    end

  4. #24

    По умолчанию

    Код:
    #==============================================================================
    # ** RPG::Armor
    #------------------------------------------------------------------------------
    #  Класс с данными брони.
    #==============================================================================
    module RPG
      ##
      # Класс с данными брони.
      ##
      class Armor < BaseItem
        #==========================================================================
        #                                Атрибуты
        #========================================================================== 
        
        # Тип брони.
        # @note 0: щит, 1: шлем, 2: доспех, 3: аксессуар.
        # @return [Integer] 
        attr_accessor :kind
        
        # Стоимость предмета.
        # @return [Integer] 
        attr_accessor :price
        
        # Бонус к увороту.
        # @return [Integer] 
        attr_accessor :eva    
        
        # Бонус к атаке.
        # @note Используется в VX.
        # @return [Integer] 
        attr_accessor :atk
        
        # Бонус к защите.
        # @note Используется в VX.
        # @return [Integer] 
        attr_accessor :def
        
        # Бонус к духу.
        # @note Используется в VX.
        # @return [Integer] 
        attr_accessor :spi
        
        # Бонус к скорости.
        # @note Используется в VX.
        # @return [Integer] 
        attr_accessor :agi
        
        # Бонус к физической защите.
        # @note Используется в XP.
        # @return [Integer] 
        attr_accessor :pdef
        
        # Бонус к магической защите.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :mdef
        
        # Бонус к силе.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :str_plus 
        
        # Бонус к ловкости.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :dex_plus 
        
        # Бонус к скорости.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :agi_plus 
        
        # Бонус к интеллекту.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :int_plus
        
        # Флаг активности опции [Защита от критических ударов].
        # @note Используется в VX.
        # @return [Bool]
        attr_accessor :prevent_critical
        
        # Флаг активности опции [Половина ОМ].
        # @note Используется в VX.
        # @return [Bool]
        attr_accessor :half_mp_cost
        
        # Флаг активности опции [Удвоение опыта].
        # @note Используется в VX.
        # @return [Bool]
        attr_accessor :double_exp_gain
        
        # Флаг активности опции [Авто-регенерация].
        # @note Используется в VX.
        # @return [Bool]
        attr_accessor :auto_hp_recover
        
        # ID состояния, накладываемого при экипировке предмета
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :auto_state_id
        
        # Список ID элементов, к которым приобретается устойчивость.
        # @note Используется в VX.
        # @return [Array<Integer>]
        attr_accessor :element_set
        
        # Список ID состояний, к которым приобретается устойчивость.
        # @note Используется в VX.
        # @return [Array<Integer>]
        attr_accessor :state_set
        
        # Список ID элементов, к которым приобретается устойчивость.
        # @note Используется в XP.
        # @return [Array<Integer>]
        attr_accessor :guard_element_set
        
        # Список ID состояний, к которым приобретается устойчивость.
        # @note Используется в XP.
        # @return [Array<Integer>]
        attr_accessor :guard_state_set
        
        #==========================================================================
        #                                 Методы
        #==========================================================================
        
        ##
        # Инициализирует переменные класса, присваивает им значения по умолчанию
        # @note Вызывается автоматически при создании нового экземпляра
        # @return [NilClass]
        ## 
        def initialize
          super
          @kind = 0
          @price = 0
          @eva = 0
          @atk = 0
          @def = 0
          @pdef = 0
          @mdef = 0
          @spi = 0
          @agi = 0
          @str_plus = 0
          @dex_plus = 0
          @agi_plus = 0
          @int_plus = 0
          @prevent_critical = false
          @half_mp_cost = false
          @double_exp_gain = false
          @auto_hp_recover = false
          @auto_state_id = 0
          @element_set = []
          @state_set = []
          @guard_element_set = []
          @guard_state_set = []
        end
        #--------------------------------------------------------------------------
      end
      #----------------------------------------------------------------------------
    end
    #==============================================================================

  5. #25

    По умолчанию

    Код:
    #==============================================================================
    # ** RPG::Weapon
    #------------------------------------------------------------------------------
    #  Класс с данными оружия.
    #==============================================================================
    module RPG
      ##
      # Класс с данными оружия.
      ##
      class Weapon < BaseItem
        #==========================================================================
        #                                Атрибуты
        #========================================================================== 
        
        # ID анимации удара.
        # @note Используется в VX.
        # @return [Integer] 
        attr_accessor :animation_id
        
        # ID анимации удара.
        # @note Используется в XP.
        # @return [Integer] 
        attr_accessor :animation1_id
        
        # ID анимации на актере.
        # @note Используется в XP.
        # @return [Integer] 
        attr_accessor :animation2_id
        
        # Стоимость предмета.
        # @return [Integer] 
        attr_accessor :price
        
        # Вероятность воздействия эффекта.
        # @note Используется в VX.
        # @return [Integer]
        attr_accessor :hit
        
        # Бонус к атаке.
        # @note Используется в VX.
        # @return [Integer] 
        attr_accessor :atk
        
        # Бонус к защите.
        # @note Используется в VX.
        # @return [Integer] 
        attr_accessor :def
        
        # Бонус к духу.
        # @note Используется в VX.
        # @return [Integer] 
        attr_accessor :spi
        
        # Бонус к скорости.
        # @note Используется в VX.
        # @return [Integer] 
        attr_accessor :agi
        
        # Бонус к физической защите.
        # @note Используется в XP.
        # @return [Integer] 
        attr_accessor :pdef
        
        # Бонус к магической защите.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :mdef
        
        # Бонус к силе.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :str_plus 
        
        # Бонус к ловкости.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :dex_plus 
        
        # Бонус к скорости.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :agi_plus 
        
        # Бонус к интеллекту.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :int_plus
        
        # Флаг активности опции [Двуручное].
        # @note Используется в VX.
        # @return [Bool]
        attr_accessor :two_handed
        
        # Флаг активности опции [Двуручное].
        # @note Используется в VX.
        # @return [Bool]
        attr_accessor :two_handed
    
        # Флаг активности опции [Быстрый атака].
        # @note Используется в VX.
        # @return [Bool]
        attr_accessor :fast_attack
        
        # Флаг активности опции [Двойная атака].
        # @note Используется в VX.
        # @return [Bool]
        attr_accessor :dual_attack
        
        # Флаг активности опции [Критический удар].
        # @note Используется в VX.
        # @return [Bool]
        attr_accessor :critical_bonus
        
        # Список ID элементов атаки.
        # @note Используется в VX.
        # @return [Array<Integer>]
        attr_accessor :element_set
        
        # Список ID состояний, накладываемых при атаке.
        # @note Используется в VX.
        # @return [Array<Integer>]
        attr_accessor :state_set
        
        # Список ID состояний, накладываемых при атаке.
        # @note Используется в XP.
        # @return [Array<Integer>]
        attr_accessor :plus_state_set 
        
        # Список ID состояний, снимаемых при атаке.
        # @note Используется в XP.
        # @return [Array<Integer>]
        attr_accessor :minus_state_set
        
        #==========================================================================
        #                                 Методы
        #==========================================================================
        
        ##
        # Инициализирует переменные класса, присваивает им значения по умолчанию
        # @note Вызывается автоматически при создании нового экземпляра
        # @return [NilClass]
        ## 
        def initialize
          super
          @animation_id = 0
          @animation1_id = 0
          @animation2_id = 0
          @price = 0
          @hit = 95
          @atk = 0
          @def = 0
          @spi = 0
          @agi = 0
          @pdef = 0
          @mdef = 0
          @str_plus = 0
          @dex_plus = 0
          @agi_plus = 0
          @int_plus = 0
          @two_handed = false
          @fast_attack = false
          @dual_attack = false
          @critical_bonus = false
          @element_set = []
          @state_set = []
          @plus_state_set = []
          @minus_state_set = []
        end
        #--------------------------------------------------------------------------
      end
      #----------------------------------------------------------------------------
    end
    #==============================================================================

  6. #26

    По умолчанию

    Код:
    #==============================================================================
    # ** RPG::Item
    #------------------------------------------------------------------------------
    #  Класс с данными предмета.
    #==============================================================================
    module RPG
      ##
      # Класс с данными предмета.
      ##
      class Item < UsableItem
        #==========================================================================
        #                                Атрибуты
        #========================================================================== 
        
        # Стоимость предмета.
        # @return [Integer]
        attr_accessor :price
        
        # Флаг, определяющий исчезает ли предмет после использования.
        # @return [Bool]
        attr_accessor :consumable
        
        # Процент восстановливаемых ОЖ.
        # @note Используется в VX.
        # @return [Integer]
        attr_accessor :hp_recovery_rate
        
        # Количество восстановливаемых ОЖ.
        # @note Используется в VX.
        # @return [Integer]
        attr_accessor :hp_recovery
        
        # Процент восстановливаемых ОМ.
        # @note Используется в VX.
        # @return [Integer]
        attr_accessor :mp_recovery_rate
        
        # Количество восстановливаемых ОМ.
        # @note Используется в VX.
        # @return [Integer]
        attr_accessor :mp_recovery
        
        # Процент восстановливаемых ОЖ.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :recover_hp_rate
        
        # Количество восстановливаемых ОЖ.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :recover_hp
        
        # Процент восстановливаемых ОМ.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :recover_sp_rate
        
        # Количество восстановливаемых ОМ.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :recover_sp
    
        # Номер характеристики, на которую влияет использование предмета.
        # @note XP: (0: нет, 1: максимальные ОЖ, 2: максимальные ОМ, 3: сила, 4: ловкость, 5: проворство, 6: интеллект).
        #       VX: (0: нет, 1: максимальные ОЖ, 2: максимальные ОМ, 3: атака, 4: защита, 5: дух, 6: скорость).
        # @return [Integer]
        attr_accessor :parameter_type
        
        # Значение, на которое увеличивается характеристика parameter_type.
        # @return [Integer]
        attr_accessor :parameter_points
        
        #==========================================================================
        #                                 Методы
        #==========================================================================
        
        ##
        # Инициализирует переменные класса, присваивает им значения по умолчанию
        # @note Вызывается автоматически при создании нового экземпляра
        # @return [NilClass]
        ## 
        def initialize
          super
          @scope = 7
          @price = 0
          @consumable = true
          @hp_recovery_rate = 0
          @hp_recovery = 0
          @mp_recovery_rate = 0
          @mp_recovery = 0
          @recover_hp_rate = 0
          @recover_hp = 0
          @recover_sp_rate = 0
          @recover_sp = 0
          @parameter_type = 0
          @parameter_points = 0
        end
        #--------------------------------------------------------------------------
      end
      #----------------------------------------------------------------------------
    end
    #==============================================================================

  7. #27

    По умолчанию

    Код:
    #==============================================================================
    # ** RPG::Skill
    #------------------------------------------------------------------------------
    #  Класс с данными навыков.
    #==============================================================================
    module RPG
      ##
      # Класс с данными навыков.
      ##
      class Skill < UsableItem
        #==========================================================================
        #                                Атрибуты
        #========================================================================== 
        
        # Стоимость ОМ.
        # @note Используется в VX.
        # @return [Integer]
        attr_accessor :mp_cost
        
        # Стоимость ОМ.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :sp_cost
        
        # Мощь навыка.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :power
        
        # Сообщение №1 при использовании навыка.
        # @note Используется в VX.
        # @return [String]
        attr_accessor :message1
        
        # Сообщение №2 при использовании навыка.
        # @note Используется в VX.
        # @return [String]
        attr_accessor :message2
        
        # Звук, проигрываемый при использовании навыка из меню.
        # @note Используется в XP.
        # @return [RPG::AudioFile]
        attr_accessor :menu_se    
    
        #==========================================================================
        #                                 Методы
        #==========================================================================
        
        ##
        # Инициализирует переменные класса, присваивает им значения по умолчанию
        # @note Вызывается автоматически при создании нового экземпляра
        # @return [NilClass]
        ## 
        def initialize
          super
          @scope = 1
          @mp_cost = 0
          @sp_cost = 0
          @hit = 100
          @power = 0
          @message1 = ""
          @message2 = ""
          @menu_se = RPG::AudioFile.new("", 80)
        end
        #--------------------------------------------------------------------------
      end
      #----------------------------------------------------------------------------
    end
    #==============================================================================

  8. #28

    По умолчанию

    Проверил:
    Код:
    def clear_rect(*params)
        params.push(Color.new(0, 0, 0, 0))
        self.fill_rect(*params)
      end
    Работает.

    Беру RPG::AudioFile

  9. #29

    По умолчанию

    Код:
    #==============================================================================
    # ** RPG::AudioFile
    #------------------------------------------------------------------------------
    #  Сверхкласс с данными аудио файлов для BGM, BGS, ME, SE.
    #==============================================================================
    module RPG
      ##
      # Сверхкласс с данными аудио файлов для BGM, BGS, ME, SE.
      ##
      class AudioFile
        #==========================================================================
        #                                Атрибуты
        #========================================================================== 
        
        # Имя аудиофайла.
        # @return [String]
        attr_accessor :name
        
        # Громкости проигрывания (0..100).
        # @return [Integer]
        attr_accessor :volume
        
        # Скорость воспроизведения (50..150).
        # @return [Integer]
        attr_accessor :pitch
    
        #==========================================================================
        #                                 Методы
        #==========================================================================
        
        ##
        # Инициализирует переменные класса, присваивает им значения по умолчанию
        # @param [String] name - имя аудиофайла.
        # @param [Integer] volume - громкости проигрывания (0..100).
        # @param [Integer] pitch - скорость воспроизведения (50..150).
        # @note Вызывается автоматически при создании нового экземпляра
        # @return [NilClass]
        ## 
        def initialize(name = "", volume = 100, pitch = 100)
          @name = name
          @volume = volume
          @pitch = pitch
        end
        #--------------------------------------------------------------------------
      end
      #----------------------------------------------------------------------------
    end
    #==============================================================================
    Беру БГМ\БГС

  10. #30

    По умолчанию

    Заметил, что кое-что упустил в RPG::UsableItem - методы. Проблема в следующем, для XP они будут выглядеть так:
    Код:
    def for_opponent?
          return [1, 2].include?(@scope)
        end
        #--------------------------------------------------------------------------
        def for_friend?
          return [3, 4, 5, 6].include?(@scope)
        end
        #--------------------------------------------------------------------------
        def for_dead_friend?
          return [5, 6].include?(@scope)
        end
        #--------------------------------------------------------------------------
        def for_user?
          return [7].include?(@scope)
        end
        #--------------------------------------------------------------------------
        def for_one?
          return [1, 3, 5, 7].include?(@scope)
        end
        #--------------------------------------------------------------------------
        def for_all?
          return [2, 4, 6].include?(@scope)
        end
        #--------------------------------------------------------------------------
        def need_selection?
          return [1, 3, 5].include?(@scope)
        end
        #--------------------------------------------------------------------------
        def battle_ok?
          return [0, 1].include?(@occasion)
        end
        #--------------------------------------------------------------------------
        def menu_ok?
          return [0, 2].include?(@occasion)
        end
    В VX 12 типов... намек понятен? Шо делаем? Пора придумывать способ определения IsXP? IsVX? Ваши предложения?

Страница 3 из 7 ПерваяПервая 12345 ... ПоследняяПоследняя

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

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

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

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

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

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Open RGSS3: Разработка