Думаю, стоит копать в сторону возможности писать свой код в Lunatic mode. Там есть такие параметры:
- <Learn Show Eval> позволяет написать код, который будет определять, показывается умение (value = true) или скрывается (value = false) — сюда, видимо, можно приписать возможность скрыть Навык А после изучения Навыка Б),
- <Learn Require Eval> позволяет написать код, который будет определять, доступно ли умение для изучения (value = true) или недоступно (value = false) — сюда, видимо, можно приписать код, который запрещает изучать навык Б без знания навыка А,
- <Learn Cost Eval> позволяет написать код, который будет выполняться при изучении умения — сюда, возможно, надо приписать «забывание» навыка А после изучения навыка Б (в моём примере это не выполняется, если нужно, то можно потом дописать).
ВОЗМОЖНО что-то такое может подойти:
У умения А припишем:
<Learn Show Eval>
if (user.isLearnedSkillRaw(ID_УМЕНИЯ_Б)) {
value = false;
}
</Learn Show Eval>
У умения Б припишем:
<Learn Require Eval>
if (user.isLearnedSkillRaw(ID_УМЕНИЯ_А)) {
value = false;
}
</Learn Show Eval>
Этот код
не проверялся и, возможно, не будет работать. Проверьте, пожалуйста, сами. Если будет выдаваться ошибка — скажите, какая, я поправлю.