Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: помогите настроить Instance Items [VX ace]

помогите настроить Instance Items [VX ace] 4 года 11 мес. назад #111947

  • truver
  • truver аватар
  • Вне сайта
  • Путник
  • Сообщений: 3
Помогите пожалуйста разобраться со скриптом Instance Items версия мукера VX ace.
Исходник: Здесь
Скрипт для работы требует этого Core Equip Slots или этого Yanfly’s Ace Equip Engine.
Поставил это Yanfly’s Ace Equip Engine а вместе сним и Ace Core Engine v1.09 и даже заплатку Ace Equip Engine v1.06 на всякий случай, хотя она вроде убирает конфликт с другим скриптом.
Но ума разобраться в скрипте не хватило.
Пытался оперировать тем, что приводиться в примерах,что бы понять принцип действия,но скрипт выдает ошибку "неизвестный метод для класса модуль" вероятно я осуществляю ввод не в тех местах где положено...

C базовой штукой вроде как разобрался тег параметра из примера задается в коде после
 
### 
 
module RPG
 
  class BaseItem
 
    # List of all attributes that are shared instance variable
    _instance_attr = [:name, :params, :price, :features, :note, :icon_index,
                      :description]
 
    #---------------------------------------------------------------------------
    # Define methods for all shared variables
    #---------------------------------------------------------------------------
    _instance_refresh = "def refresh"
    _instance_attr.each do |ivar|
      _instance_refresh << ";refresh_#{ivar}"
 
      eval(
        "def refresh_#{ivar}
          var = InstanceManager.get_template(self).#{ivar}
          @#{ivar} = make_#{ivar}(InstanceManager.make_full_copy(var))
        end
 
        def make_#{ivar}(#{ivar})
          #{ivar}
        end
        "
      )
    end
    _instance_refresh << ";end"
    eval(_instance_refresh)
 
  end
 
  class Item < UsableItem
    attr_accessor :template_id
 
    def is_template?
      return self.template_id == self.id
    end
 
    def template_id
      @template_id = @id unless @template_id
      return @template_id
    end
  end
 
  class EquipItem < BaseItem    
    attr_accessor :template_id
 
    def is_template?
      self.template_id == self.id
    end
 
    def template_id
      @template_id = @id unless @template_id
      return @template_id
    end
  end
end
#
# здесь добавляем свои варианты
#
   class RPG::Weapon < RPG::EquipItem
     def attack_bonus
       50
     end
   end
#
# Продолжение скрипта...
#   
module DataManager
 


Модуль управления шаблоном:
module InstanceManager
 
  class << self
    attr_accessor :weapons
    attr_accessor :armors
    attr_accessor :items
    attr_reader :template_counts
  end
 
  def self.setup
    @template_counts = {}
    @template_counts[:weapon] = $data_weapons.size
    @template_counts[:armor] = $data_armors.size
    @template_counts[:item] = $data_items.size
  end
  #-----------------------------------------------------------------------------
  # Stores the instance objects for game saving purpose
  # Хранит объекты экземпляров для сохренений игры
  #-----------------------------------------------------------------------------
  def self.create_game_objects
    @weapons = {}
    @armors = {}
    @items = {}
  end
 
  #-----------------------------------------------------------------------------
  # Full copy of the template object so we don't have any reference issues
  #-----------------------------------------------------------------------------
  def self.make_full_copy(obj)
    return Marshal.load(Marshal.dump(obj))
  end
 
  def self.instance_enabled?(obj)
    return TH::Instance_Items::Enable_Items if obj.is_a?(RPG::Item)
    return TH::Instance_Items::Enable_Weapons if obj.is_a?(RPG::Weapon)
    return TH::Instance_Items::Enable_Armors if obj.is_a?(RPG::Armor)
    return false
  end
 
  def self.is_template?(obj)
    return obj.id >= @template_counts[:item] if obj.is_a?(RPG::Item)
    return obj.id >= @template_counts[:weapon] if obj.is_a?(RPG::Weapon)
    return obj.id >= @template_counts[:armor] if obj.is_a?(RPG::Armor)
  end
 
  #-----------------------------------------------------------------------------
  # create an instance from the template. Basically just a full copy.
  #-----------------------------------------------------------------------------
  def self.make_instance(obj)
    new_obj = make_full_copy(obj)
    new_obj.template_id = new_obj.id
    return new_obj
  end
 
  #-----------------------------------------------------------------------------
  # Return the database table that the obj belongs in
  #-----------------------------------------------------------------------------
  def self.get_tables(obj)
    return @items, $data_items if obj.is_a?(RPG::Item)
    return @weapons, $data_weapons if obj.is_a?(RPG::Weapon)
    return @armors, $data_armors if obj.is_a?(RPG::Armor)
  end
 
  def self.get_template(obj)
    return $data_items[obj.template_id] if obj.is_a?(RPG::Item)
    return $data_weapons[obj.template_id] if obj.is_a?(RPG::Weapon)
    return $data_armors[obj.template_id] if obj.is_a?(RPG::Armor)
  end
 
  #-----------------------------------------------------------------------------
  # Returns an instance of the object, assuming it is a valid object, it
  # supports instances, and it's not a template
  #-----------------------------------------------------------------------------
  def self.get_instance(obj)
    return obj if obj.nil? || !instance_enabled?(obj) || !obj.is_template?
    new_obj = make_instance(obj)
    container, table = get_tables(obj)
    id = table.size
 
    new_obj.id = id
    # Setup the instance object as required
    setup_instance(new_obj)
 
    # Add to database and container
    container[id] = new_obj
    table[id] = new_obj
    return new_obj
  end
 
  #-----------------------------------------------------------------------------
  # Set up our new instance object. This is meant to be aliased
  #-----------------------------------------------------------------------------
  def self.setup_instance(obj)
    setup_equip_instance(obj) if obj.is_a?(RPG::EquipItem)
    setup_item_instance(obj) if obj.is_a?(RPG::Item)
  end
 
  #-----------------------------------------------------------------------------
  # Apply any equip-specific logic. This is meant to be aliased.
  # Note the same object is passed to the appropriate setup method depending
  # on whether it's a weapon or armor, so be careful not to apply the same
  # changes multiple times.
  #-----------------------------------------------------------------------------
  def self.setup_equip_instance(obj)
    setup_weapon_instance(obj) if obj.is_a?(RPG::Weapon)
    setup_armor_instance(obj) if obj.is_a?(RPG::Armor)
  end
 
  #-----------------------------------------------------------------------------
  # Apply any weapon-specific logic. This is meant to be aliased.
  #-----------------------------------------------------------------------------
  def self.setup_weapon_instance(obj)
  end
 
  #-----------------------------------------------------------------------------
  # Apply any armor-specific logic. This is meant to be aliased.
  #-----------------------------------------------------------------------------
  def self.setup_armor_instance(obj)
  end
 
  #-----------------------------------------------------------------------------
  # Apply any item-specific logic. This is meant to be aliased.
  #-----------------------------------------------------------------------------
  def self.setup_item_instance(obj)
  end
#
# Здесь вводим свои значения
#
    class << self
       alias :th_random_weapon_bonus_setup_weapon_instance :setup_weapon_instance
     end
 
     def self.setup_weapon_instance(obj)
       template_obj = get_template(obj)
       th_random_weapon_bonus_setup_weapon_instance(obj)
       obj.params[2] += rand(template_obj.attack_bonus)
     end
 
#
# Здесь вводим свои значения
#

end
 
#
# Продолжение скрипта...
#
module RPG
 

Поправьте,если утверждения выше не верны.

После этих махинаций скрипт работает и на всем оружии урон скачет на +1 - +50, но как сделать так, что бы на каждый шаблон(оружие,броню) указанный в базе данных был определенный разброс урона, что бы можно было таки достигнуть конечной цели при которой условный бронзовый клинок будет иметь урон от 50-75, а у мифрилового разброс будет
от 100-120 ?



P.S. Помогите оби ван киноби на вас вся надежда :Д
Последнее редактирование: 4 года 11 мес. назад от truver.
Администратор запретил публиковать записи гостям.

помогите настроить Instance Items [VX ace] 4 года 11 мес. назад #111952

  • VarVarKa
  • VarVarKa аватар
  • Вне сайта
  • Мастер
  • Сообщений: 230
  • Спасибо получено: 678
  • Проект месяца 2 местоТестерОрганизатор конкурсовВетеранПроект месяца 1 местоПроект месяца 3 место
Ещё бы понять, что ты хочешь от скрипта.
Свою функцию он выполняет, то создаёт разные экземпляры одного и того же предмета(оружия):
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

truver пишет:
Скрипт для работы требует этого Core Equip Slots или этого Yanfly’s Ace Equip Engine.
Поставил это Yanfly’s Ace Equip Engine а вместе сним и Ace Core Engine v1.09 и даже заплатку Ace Equip Engine v1.06 на всякий случай, хотя она вроде убирает конфликт с другим скриптом.
Скрипт не требует их, а может с ними конфликтовать (если они используются!), поэтому должен быть ниже их в списке скриптов. Это понятно даже яндексПереводом: Вы должны поместить это ниже любых сценариев, связанных с оборудованием, таких как my Core Equip слоты или туз Yanfly оборудовать двигатель.
Поэтому, лучше их удалить)))
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: yuryol, Noxmils

помогите настроить Instance Items [VX ace] 4 года 11 мес. назад #111953

  • truver
  • truver аватар
  • Вне сайта
  • Путник
  • Сообщений: 3
Еще как нужны
Installation

In the script editor, place this script below Materials and above Main

You should place this below any equip-related scripts, such as my Core Equip Slots or Yanfly’s Ace Equip Engine.

Источник:
himeworks.com/2014/01/instance-items/

Вопрос я переформулировал
И да я в курсе,что приоритет скриптов имеет значение и что адоны надо помешать под core скрипт

Спасибо за помощь..
Последнее редактирование: 4 года 11 мес. назад от truver.
Администратор запретил публиковать записи гостям.
Время создания страницы: 0.268 секунд