igrik, ну, мой код оказался немного другим. Но он исправно работает
Столкнулся с тем, что в событии FU(OnUnequipArt), при обновлении экрана, происходит краш.
А ведь игрок может одевать/снимать арт сколько угодно раз, даже для прикола, так как я в этом квесте меняю не только уровень героя, но и его имя и портрет. Потому обновление экрана необходимо.
Для обновления экрана героя и всех прочих изменений, при снятии арта (это Шлем Белого Единорога с изменённым дэфом), пришлось вызывать функцию из FU(OnHeroScreenMouseClick).
Вот собственно сам код. Для краткости строчек (да и мне так привычнее)) кое-где не использую константы.
- !?FU(OnHeroScreenMouseClick);
- !!CM:F?(flag:y)I?(place:y)S?(subtype:y);
- !!FU(HelmUnicornUneqip)&(flag)=0/(place)=2/(subtype)=12:P;
- !?FU(HelmUnicornUneqip);
- !!HE-1:A2/(ART_HELM_OF_THE_ALABASTER_UNICORN)/d/?(helm:y);
- !!FU&(helm)=0:E;
- !!HE(CURRENT_HERO):E?(exp:y)/d/1;
- !!re i/0/75;
- !!VR(data:y):Si*4 +8002732;
- !!UN:C(data)/4/?(must:y);
- !!VR(difference:y):S(must)-(exp);
- !!br&(difference)>0;
- !!en;
- !!VR(level:y):Si +1;
- !!HE(CURRENT_HERO):Ed/(level);
- !!SN:D;
P.S. Теперь попробую протестировать твой код. Если пойму что к чему