FatalBlade | Дата: Пятница, 05 Августа 2011, 14:26:54 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Все знают что за скилл? Если нет вкратце обьясню. Этот скилл пассивка, улучшает заданные абилки, с первой на вторую. Т.е. задаются 2 абилки. Ну там можно сделать 4 апгрейда, так что для каждого апгрейда 2 абилки, и того 8. Так вот, сделал как бы покупку скиллов герою, на выбор 3 из 9, по линейкам. Сделал нейтральный невидимый магазин с абилками пустышками с иконками нужных абилок героя, и когда герой тыкает на 1 из абилок, то из магазина удаляется выбранная абилка + остальные 2 абилки которые можно было бы выбрать вместо выбранное. И у героя появляется нужная абилка, прокачиваемая. Создаётся 3 геройские абилки пустышки, которые по умолчанию есть у всех героев (задано ещё в ВЕ), назовём их Spell1, Spell2, Spell3. Создаётся 3 абилки Механики, в каждой из которых уровней = количество героев * 3. На каждый лвл своя геройская абилка. Когда герой выбирает в магазине абилку (пустышку), то герою даётся Механика, соответствующая слоту самой геройской абилки. То есть герой должен выбрать 3 абилки, он получает 3 механики. В механике, каждый лвл выставляется в строке Ability Upgrade 2 абилки, первая эта пустышка Spell1 или Spell2 или Spell3 (опять же в зависимости от слота). Вторая, это сама геройская абилка. То есть в итоге Механика апгрейдит пустышку на нужную геройскую абилку, и та появляется у героя в Learn Skills.
Весь алгоритм уже реализован, и прекрасно работает. Сделано через хэш. Проблема в самой Механике. Оказывается там можно апгрейдить абилку только на похожую абилку. Например если Spell1 на основе Канала, то и та геройская абилка на которую она должна апгрейдится, тоже должна быть на основе Канала (ID канала не важен). Иначе Spell1 пропадёт, а нужная абилка не появится. Я попробовал сделать Spell1 пассивкой, так он тоже принимает только пассивки на основе этой же. А ведь у меня спеллы на основе многих скиллов... Что делать? Как схитрить и обойти это, или как по другому реализовать то что я сделал?
Я попробовал альтернативу - в хэш сохранять равкоды геройских абилок, и потом когда герой покупает абилку в магазине, то дать герою ту самую геройскую абилку которая сидит в хэше под номером абилки из магазина. Ну и сохраняются ещё и другие абилки в том же слоте, которые должны удаляться с магазина, и то же потом удаляются. Тут тоже всё работает в плане алгоритма, но UnitAddAbility не даёт прокачиваемую абилку герою. Она даёт абилку определённого лвла, и её нельзя прокачивать. Что делать?
|
|
|
|
SirNikolas | Дата: Пятница, 05 Августа 2011, 14:52:27 | Сообщение # 2 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| А зачем вторую тему создавать?
|
|
|
|
Mep3aB4uK | Дата: Пятница, 05 Августа 2011, 15:14:45 | Сообщение # 3 |
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды: 0
Репутация: 135
Блокировки:
| Много букофф, и если понял то делай если уровень покупаемой абилки равно 0 то дать абилку иначе добавить уровень способности.
|
|
|
|
SirNikolas | Дата: Пятница, 05 Августа 2011, 15:18:09 | Сообщение # 4 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Mep3aB4uK, зайди в соседний раздел (GUI/JASS).
|
|
|
|
FatalBlade | Дата: Пятница, 05 Августа 2011, 15:20:13 | Сообщение # 5 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Закройте тему модеры, я просто не там создал тему, так потом создал в другом разделе.
|
|
|
|