Не помню, был уже или нет от меня такой вопрос...
Короче, еще раз задача: известен равкод геройской абилки.
Задача: дать ее герою, у которой в РО этой абилки изначально нет, и именно ВЫУЧИТЬ ее, при этом при первом выучивании она должна быть ПЕРВОГО уровня, иначе не получается, у меня на этом все завязано.
Про спеллбуки xgm.guru/p/wc3/abilities пункт 24 наркомания, раскурить никак окончательно не могу - т. е. надо для каждой добавляемой так абилки свой спеллбук пилить? Это ж ппц. Имхо неудобный вариант.
Пока все-таки основная надежда на мемхак:
Раз из поля можно читать, не вижу причин, почему бы в него нельзя было и писать.
Только вот такой вопрос именно для тех, кто уже знает (драколича и др.) - допустим, есть в поле 5 геройских абилок для выучивания. Первая УЖЕ прокачана на 2 уровня (примем, что она и в перечне в редакторе объектов первая, и фактически первая). Мы вместо нее вписываем в поле геройских абилок что-то другое.
Те два уровня имевшейся первой абилы, которые УЖЕ выучены, никуда не пропадут?
И ок, допустим, выучили мы новую абилку добавленную сколько надо, переписали поле обратно. Два уровня исходной первой абилы всё ещё так и останутся? Новая выученная никуда не пропадет?
И вообще все это не зафаталит нахрен? =)

Принятый ответ

просто втупую смени ид и должно сработать, если условия у абилки такие же, как в начале (ну требуемый уровень, макс уровень и тп)
2
16
7 лет назад
2
у меня не получилось адекватно заменить в реальной симуляции, что-то упустил, возможно. но весь скилл изучения существует лишь для интерфейса. изученные абилки добавляются и никуда не отнимаются впоследствии, так что можешь просто сменить ид изучаемой, такой подход точно работает
0
21
7 лет назад
0
DracoL1ch, первое предложение понять не могу. Что именно не получилось?
Ок, изученные абилки добавляются и не убираются - это понятно (хотя в принципе и было мало сомнений), спасибо.
///////////////////////////////
Уточняю на всякий случай.
В событиях:
call TriggerRegisterAnyUnitEventBJ( HeroSkills, EVENT_PLAYER_HERO_SKILL )
В кондишенах (для каждой абилы):
if ( not ( GetLearnedSkillBJ() == 'id выучиваемой способности' ) ) then
return false
endif
if ( not ( GetUnitAbilityLevelSwapped('id выучиваемой способности', GetTriggerUnit()) == 1 ) ) then
return false
endif
return true
У меня после вот этого создаются триггеры на абилу для выучившего и только для него
Мне надо, чтоб абила через это проходила при ее добавке
Ятп, можно
2
16
7 лет назад
2
просто втупую смени ид и должно сработать, если условия у абилки такие же, как в начале (ну требуемый уровень, макс уровень и тп)
Принятый ответ
0
32
7 лет назад
0
Слушай, а нахера нам вручать герою абилки в игре? Можно же добавить все абилки какие только есть одному герою (в ро это жутко неудобно, лучше в слк таблице) Ну и запрещять\разрешать их для игрока?
0
21
7 лет назад
0
quq_CCCP, а ты пробовал? По-моему, больше 5 не получится в РО точно даже через шифт (просто не покажутся), слк напрямую пока редактировать попыток не было... А так-то да, если это возможно, то было бы лучше всего...
0
16
7 лет назад
0
ну епт, там 5 слотов под абилки, вы че, упрлс чтоли?
0
21
7 лет назад
0
DracoL1ch, это не я, это рысь )
Ну ладно, ятп, можно записать в слот новую абилку, выучить сколько надо ее лвлов, начиная с первого, и записать обратно прежнюю и количество выученных лвлов и той и другой сохранится. Попробую, когда придет время писать код, если что, апну тему. Всем спасибо.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.