млин, чеж я сразу то не догадался в иде глянуть
Code:
v115 = (long double)a3;
v112 = sqrt(v115 * 0.05 + 1.0);
v115 = (long double)v117;
v115 = sqrt(v115 * 0.05 + 1.0) * v112 * a2;
call sqrt = 0x00618154 double (_cdecl *)(double)
Ток вот теперь назрел вопрос. Зам я значение вот так !!SN:E6390100/1/
25;
А как правильно то его получить.
Можно же перевести во флоат (SN:Xe1 X?y1), а как перевести из флоат? Да и v1 правильно ли примет значение после !!SN:E6390100/1/
25;
Меня вот интересует, почему я не догадался глянуть в иде (этак за два года!) на strtok, strstr и тому подобные нормальные строковые функции. Массаракш.
Будет свободный вечор, надо будет перегнать их в SNE
Quote:а как перевести из флоат?
если я правильно помню, надо прибавить +4 к второму параметру SN:E и результат вернется в e1
(10.12.2015 19:57)feanor Wrote: [ -> ]если я правильно помню, надо прибавить +4 к второму параметру SN:E и результат вернется в e1
Надо же, я и не знал про такое. Ну тогда и напрямую можно вызвать.
(10.12.2015 20:09)igrik Wrote: [ -> ]Quote:если я правильно помню, надо прибавить +4 к второму параметру SN:E и результат вернется в e1
Это как?
к тому, который calling conventions
не 0..3, а 4..7
но хз, я не гонял
Должно работать, я в исходниках глянул.
(20.01.2016 21:40)Barin Wrote: [ -> ]Например, я заменил деф "1-гексового Громовержца" на "моего 2-гексового бехолдера" и на этом всё, не могу изменять абилки этого монстра (№152).
2-х гексовым не могу сделать бехолдера.
!!MA:X152/?v724;
!!VRv724:+1; широкий на 2 клетки
!!MA:X152/v724;
!!VRv724:S0;
Летать не хочет.
!!MA:X152/?v724;
!!VRv724:+2; летает
!!MA:X152/v724;
!!VRv724:S0;
1) не правильно работаешь с флагами. Хотя тут еще нужно видеть, в каком триггере ты используешь этот участок кода (такой код правильно сработает до битвы, но не в битве). Но все же верно устанавливать флаги так (тем более обнулять):
(20.01.2016 23:04)Barin Wrote: [ -> ]Неправильно или не компактно? Делаю по примеру из справочника.
У меня так:
и т.д
имхо, некорректно
надо просто приучать себя делать как правильнее.
а вдруг каким-то образом у того твоего монстра уже не будет этого флага полёта? (ты уверен что мод будет без прочих скриптов не твоих?) а ты ещё и отнимешь 2 бита... можно словить неуловимый баг
будешь потом голову ломать откуда ноги растут...
Спасибо за инфу, раньше не видел подобный пример.
(20.01.2016 22:35)igrik Wrote: [ -> ]
|2 (летать)значит установится если у монстра нету этого флага, а как отбирать флаг чтобы не летал? Не придумал куда минус поставить.
(21.01.2016 11:28)igrik Wrote: [ -> ]Вот так
Принял на вооружение, однако есть сомнения что это лучший вариант с точки зрения RPG карты, где не будет сторонних скриптов кроме моих:
Вот что происходит:
1) Если методом по ERM-справочнику:
2-х гексовую Виверну заменил на новый
1-гексовый def "Зубастик"
!!MA:X108/?v724;
!!VRv724:-1; не широкий
!!MA:X108/v724;
!!VRv724:S0;
Итог: зубастик 1-гексовый и летает, как мне и нужно.
2) Если методом |(или):
!!VRy1:S0 |1 -1;
!!MA:X108/y1; не широкий
Итог: зубастик 1-гексовый
но уже не летает, как мне и нужно. Почему полёт исчезает, видать что-то затирается.
Приходится дописывать:
!!VRy1:S0 |2; летает
!!MA:X108/y1;
Что же получается, в 1-м случае я получаю сразу то что хотел, не затрагивая другие флаги, а во 2-м случае мне приходится восстанавливать задетые флаги. Разве это безопасный путь?
p.s чебрец полный:
Громовержец перестал стрелять методом |(или):
!!VRy1:S0 |1;
!!MA:X152/y1; широкий на 2 клетки
!!VRy1:S0 |2;
!!MA:X152/y1; летает
Надо восстанавливать флаг стрельбы.
А если так, всё как надо:
!!MA:X154/?v724;
!!VRv724:-1; не широкий
!!MA:X154/v724;
!!VRv724:S0;
Громовержец широкий, летает + стреляет.
да ты чё!??? ты же спрашивал про обнуление. Я и написал тебе
S0!!!! Конечно он не летает, конечно он не стреляет. А еще он не Кинг 1, а еще у него иммунитета к заклинаниям разума. Ты разберись с основами то сначала.
Quote:Думал так можно сделать этого юнита чистым от всего и появится возможность его править.
Твои же слова. Я и дал тебе то что ты просил. Или тогда правильней формулируй свои вопросы.
То что в данном случае "!!VRy1:S0; полностью удаляет все флаги" - ты просто обязан понимать. Или тогда я даже не представляю что у тебя там в моде творится.
Если тебе нужно просто убрать например полет, то так и спрашивай "мне нужно убрать полет".
Это делается так:
Если тебе нужно убрать полет(2) и стрелбу (4), то вот так делать НЕ надо!
а надо так
(21.01.2016 17:36)igrik Wrote: [ -> ]Ты разберись с основами то сначала.
Ты чего, у него же нет времени и желания разбираться. Надо кампанию доделывать.

(21.01.2016 17:36)igrik Wrote: [ -> ]Если тебе нужно убрать полет(2) и стрелбу (4), то вот так делать НЕ надо!
Почему это? С небольшой поправкой "где 6=2|4".
(21.01.2016 19:17)gamecreator Wrote: [ -> ] (21.01.2016 17:36)igrik Wrote: [ -> ]Если тебе нужно убрать полет(2) и стрелбу (4), то вот так делать НЕ надо!
Почему это? С небольшой поправкой "где 6=2|4".
НЕ НАДО так делать даже с поправкой. И пусть с математической точки зрения все верно, это плохой стиль.
6=2|4 довольно просто, а вот 884736 (мертвый, бьющий дважды всех вокруг без ответа) - ни фига не очевидно.