- Сообщений: 3
- Спасибо получено: 0
Правила раздела:
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 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
помогите настроить Instance Items [VX ace]
7 года 1 день назад - 7 года 1 день назад #111947
от truver
truver создал тему: помогите настроить Instance Items [VX ace]
Помогите пожалуйста разобраться со скриптом 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 базовой штукой [strike]вроде как[/strike] разобрался тег параметра из примера задается в коде после
Модуль управления шаблоном:
Поправьте,если утверждения выше не верны.
После этих махинаций скрипт работает и на всем оружии урон скачет на +1 - +50, но как сделать так, что бы на каждый шаблон(оружие,броню) указанный в базе данных был определенный разброс урона, что бы можно было таки достигнуть конечной цели при которой условный бронзовый клинок будет иметь урон от 50-75, а у мифрилового разброс будет
от 100-120 ?
P.S. Помогите оби ван киноби на вас вся надежда :Д
Исходник: Здесь
Скрипт для работы требует этого Core Equip Slots или этого Yanfly’s Ace Equip Engine.
Поставил это Yanfly’s Ace Equip Engine а вместе сним и Ace Core Engine v1.09 и даже заплатку Ace Equip Engine v1.06 на всякий случай, хотя она вроде убирает конфликт с другим скриптом.
Но ума разобраться в скрипте не хватило.
Пытался оперировать тем, что приводиться в примерах,что бы понять принцип действия,но скрипт выдает ошибку "неизвестный метод для класса модуль" вероятно я осуществляю ввод не в тех местах где положено...
C базовой штукой [strike]вроде как[/strike] разобрался тег параметра из примера задается в коде после
Code:
###
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
Модуль управления шаблоном:
Code:
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. Помогите оби ван киноби на вас вся надежда :Д
Последнее редактирование: 7 года 1 день назад пользователем truver.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 1 день назад #111952
от VarVarKa
VarVarKa ответил в теме помогите настроить Instance Items [VX ace]
Ещё бы понять, что ты хочешь от скрипта.
Свою функцию он выполняет, то создаёт разные экземпляры одного и того же предмета(оружия):
Поэтому, лучше их удалить)))
Свою функцию он выполняет, то создаёт разные экземпляры одного и того же предмета(оружия):
Скрипт не требует их, а может с ними конфликтовать (если они используются!), поэтому должен быть ниже их в списке скриптов. Это понятно даже яндексПереводом: Вы должны поместить это ниже любых сценариев, связанных с оборудованием, таких как my Core Equip слоты или туз Yanfly оборудовать двигатель.truver пишет: Скрипт для работы требует этого Core Equip Slots или этого Yanfly’s Ace Equip Engine.
Поставил это Yanfly’s Ace Equip Engine а вместе сним и Ace Core Engine v1.09 и даже заплатку Ace Equip Engine v1.06 на всякий случай, хотя она вроде убирает конфликт с другим скриптом.
Поэтому, лучше их удалить)))
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 1 день назад - 7 года 1 день назад #111953
от truver
truver ответил в теме помогите настроить Instance Items [VX ace]
Еще как нужны
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 скрипт
Спасибо за помощь..
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 скрипт
Спасибо за помощь..
Последнее редактирование: 7 года 1 день назад пользователем truver.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.099 секунд
