lune unlimited skill tree скрипт на дерево навыков

Больше
11 года 6 мес. назад - 11 года 6 мес. назад #75625 от =DREAMER=
RPG MAKER VX ACE

В поисках нормального скрипта на дерево навыков для своей игры наткнулся вот на это
lune unlimited skill tree
В принципе как создается само дерево я разобрался а вот как сделать чтобы у каждого персонажа было отдельное дерево ввело меня в тупик. Разработчик указал что это возможно но не рассказал как. Сам скрипт начинаеться
для персонажа вот так

Actor[8][0] = {
# Images of the skill trees, put as many as wanted
# if you do not wish to have images, put '' on the name place
'Tree_Images' => 'Имя картинки дерева', 'Имя картинки дерева2',
# Position of the cursors that change between the trees.
'Tree_Shift' => 400, 50], [400, 80,
}
#=========================================================================
# Actor 8 => Skill 1 -> Fire
#=========================================================================
Actor[8][1] = {
'Skill_id' => 51, # Skill ID in the Database
'Maxlevel' => 10, # Skill Maximum Level
<<<Прочие настройки скила>>>
'Desc3' => '', # Description 3
}

Из этого следует вывод что чтобы сделать дерево для следующего персонажа надо просто поменять ID в скрипте и
продолжить работу. Но это не работает! Новое дерево не добавляется, а изменяется старое, то есть все равно для всех персонажей работает только 1 дерево, то, которое создали первым. Помогите ветераны, те кто разбирается в скриптах, потому спросить мне больше некого.
Последнее редактирование: 11 года 6 мес. назад пользователем =DREAMER=.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект года 3 место Проект года 2 место Разработчик Проект месяца 1 место
Больше
11 года 6 мес. назад #75627 от JackCL
Чтоб поменять дерево, кроме ID надо еще и картинку дерева прописать для каждого актера тоже, например:
Code:
Actor[9][0] = { # Images of the skill trees, put as many as wanted # if you do not wish to have images, put '' on the name place 'Tree_Images' => 'Имя картинки дерева для 9 актера', 'Имя картинки дерева 2 для 9 актера', # Position of the cursors that change between the trees. 'Tree_Shift' => 400, 50], [400, 80, }

Сперва ее, канешн, нарисовать в фотошопе например.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
11 года 6 мес. назад - 11 года 6 мес. назад #75629 от =DREAMER=
Спасибо вам за быстрый ответ но это не поможет так как я уже делал это. Суть в том что если ввести как вы сказали и нарисовать новое дерево, дерево 1 персонажа замениться на дерево 2 персонажа, вот такая вот незадача. :(

Actor[9][0] = {
# Images of the skill trees, put as many as wanted
# if you do not wish to have images, put '' on the name place
'Tree_Images' => 'Имя 2 дерева', 'Имя 2 дерева2',
# Position of the cursors that change between the trees.
'Tree_Shift' => 400, 50], [400, 80,
}
#=========================================================================
# Actor 9 => Skill 1 -> Fire
#=========================================================================
Actor[9][1] = {
'Skill_id' => 49, # Skill ID in the Database
>>>>>> Прочие настойки <<<<<
'Desc1' => 'ыыыы', # Description 1
'Desc2' => 'Requirements: Level 1 + 2x Skill Level', # Description 2
'Desc3' => '', # Description 3
}

В демка автора я добавил 2ого персонажа и прописал ему в скрипте новое дерево с одним скилом
с названием "ыыыыы". Этот скил "ыыыы" теперь стал вместо "Fire" 1 персонажа а также картинка дерева 2 персонажа стало вместо картинки 1ого.
Последнее редактирование: 11 года 6 мес. назад пользователем =DREAMER=.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект года 3 место Проект года 2 место Разработчик Проект месяца 1 место
Больше
11 года 6 мес. назад #75630 от JackCL
Случай конечно интересный, в основном потому, что такая же проблема проговаривалась на нескольких англоязычных форумах и везде автор скрипта на этот вопрос покрывался одеялом и старался незаметно отползти в сторону ближайшего укрытия. Это неудивительно, потому что там адова чума и сам автор вряд ли понимал как с этим потом работать.

Ну вот как-то так:
Code:
Actor[9][0] = { # Images of the skill trees, put as many as wanted # if you do not wish to have images, put '' on the name place 'Tree_Images' => ['fundo save', 'fundo save2', 'fundo save'], # Position of the cursors that change between the trees. 'Tree_Shift' => [[400, 50], [400, 80], [400, 110]], } #========================================================================= # Actor 8 => Skill 13 -> Magic UP #========================================================================= Actor[9][14] = { 'Skill_id' => 51, # Skill ID in the Database 'Maxlevel' => 10, # Skill Maximum Level 'Multiply' => 30, # Effect Multiplier in %, 100 = 100% 'Level' => 1, # Necessary level to add points on the skill 'Level_Add' => 2, # Level Restriction for every point on the skill 'Tree' => 3, # The tree that this skill is on 'Left' => 0, # Skill to the left, 0 for none 'Right' => 0, # Skill to the right, 0 for none 'Down' => 0, # Skill below, 0 for none 'Up' => 0, # Skill above, 0 for none 'X' => 30, # Icon Position in X 'Y' => 50, # Icon Position in Y 'Image' => 'Fire', # Icon Image, for default icons put '' 'Req_skills' => [], # Needed skills to open this skill, any quantity 'Req_levels' => [], # Same as above, but with the levels of each skill 'Desc1' => 'Помидора', # Description 1 'Desc2' => 'Requirements: Level 1 + 2x Skill Level', # Description 2 'Desc3' => '', # Description 3 }

Ключевой момент - мы должны добавить
Code:
'Tree_Shift' => [[400, 50], [400, 80], [400, 110]]
- для 9 персонажа переход на третье дерево навыков.

И в новом навыке прописать что он находится именно там
Code:
'Tree' => 3, # The tree that this skill is on

Обрати также внимание, что номер навыка должен быть новым, иначе он как раз заменит навык предыдущему актеру.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
11 года 6 мес. назад - 11 года 6 мес. назад #75631 от =DREAMER=
Мда походу проблема в самом скрипте, обидно. Спасибо за коекакие зацепки , то что вы предложили , это создать третье дерево. Завозка в том что у нас будут 3 дерева развития которые смогут вкачать все персонажи, то есть проблема не решена. Колдунья сможет в качать приемы меча а суровый вояка научиться лечить и кастовать фаерболы, так как деревья не принадлежащие персонажу всеравно будут ему доступны. Может все таки мы где то не досмотрели?
Последнее редактирование: 11 года 6 мес. назад пользователем =DREAMER=.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект года 3 место Проект года 2 место Разработчик Проект месяца 1 место
Больше
11 года 6 мес. назад - 11 года 6 мес. назад #75632 от JackCL

=DREAMER= пишет: Завозка в том что у нас будут 3 дерева развития которые смогут вкачать все персонажи, то есть проблема не решена.


Агась. Там, кстати, же в демке есть еще подложка для экрана выбора актера, но она не используется почему-то.

=DREAMER= пишет: Может все таки мы где то не досмотрели?


Может. Но утешает тот факт, что в этом случае не мы одни оказались в этом тупике.
Придут скриптеры и, может быть, смогут понять где собака порылась.
Последнее редактирование: 11 года 6 мес. назад пользователем JackCL.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
11 года 6 мес. назад - 11 года 6 мес. назад #75633 от Amphilohiy
Сидел, смотрел код раз на десять, примерно прикидывал в чем соль ведь... И только в конце догадался посмотреть на инициализацию массива :(
16 строка
Было:
Code:
Actor = Array.new($data_actors.size, Array.new)
Стало:
Code:
Actor = Array.new($data_actors.size) {Array.new}
Если интересно, то я объясню принципиальную разницу этих строк.

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Последнее редактирование: 11 года 6 мес. назад пользователем Amphilohiy.
Спасибо сказали: JackCL

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
11 года 6 мес. назад #75637 от Cerberus
Я, кажется, понял. В первом случае new вызывается один раз, а дальше ставятся копии, а во втором - new вызывается для каждого элемента.

Жуть болотная, на лапках, в тапках и с пулемётом...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
11 года 6 мес. назад #75639 от Amphilohiy

Cerberus пишет: Я, кажется, понял. В первом случае new вызывается один раз, а дальше ставятся копии, а во втором - new вызывается для каждого элемента.

Идею ты понял, сформулировал чутка не так. Там не просто копии а один и тот же объект в принципе. Поэтому записи для любого актора меняли все один и тот же массив, отсюда и перезаписи.

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
11 года 6 мес. назад - 11 года 5 мес. назад #75658 от =DREAMER=
Спасибо большое за помощь Amphilohiy :whistle: Уже начинаю интегрировать систему в свою игру. Единственно что непонятно - это то что каждому персонажу надо прописать в дереве минимум 10 способностей
и заклинаний. Если напишешь 9 или меньше - игра вылетает по непонятным причинам. :blink:
Последнее редактирование: 11 года 5 мес. назад пользователем =DREAMER=.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.119 секунд
Работает на Kunena форум