Current time: 30.11.2024, 00:39 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Логические/математические операции на ЕРМ
» операции с флагами монстров и др.
Author Message
igrik Offline

Posts: 2819
Post: #16

млин, чеж я сразу то не догадался в иде глянуть
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;


game bug fixes extended.dll || My Plugins || My GitHub
10.12.2015 19:42
Visit this user's website Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 624
Post: #17

Меня вот интересует, почему я не догадался глянуть в иде (этак за два года!) на strtok, strstr и тому подобные нормальные строковые функции. Массаракш.

Будет свободный вечор, надо будет перегнать их в SNE

Quote:а как перевести из флоат?
если я правильно помню, надо прибавить +4 к второму параметру SN:E и результат вернется в e1
(This post was last modified: 10.12.2015 20:00 by feanor.)
10.12.2015 19:57
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #18

Quote:если я правильно помню, надо прибавить +4 к второму параметру SN:E и результат вернется в e1
Это как?


game bug fixes extended.dll || My Plugins || My GitHub
10.12.2015 20:09
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #19

(10.12.2015 19:57)feanor Wrote:  если я правильно помню, надо прибавить +4 к второму параметру SN:E и результат вернется в e1
Надо же, я и не знал про такое. Ну тогда и напрямую можно вызвать.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
10.12.2015 21:26
Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 624
Post: #20

(10.12.2015 20:09)igrik Wrote:  
Quote:если я правильно помню, надо прибавить +4 к второму параметру SN:E и результат вернется в e1
Это как?
к тому, который calling conventions
не 0..3, а 4..7

но хз, я не гонял
(This post was last modified: 11.12.2015 00:56 by feanor.)
11.12.2015 00:50
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #21

Должно работать, я в исходниках глянул.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
11.12.2015 01:41
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #22

(20.01.2016 21:40)Barin Wrote:  Например, я заменил деф "1-гексового Громовержца" на "моего 2-гексового бехолдера" и на этом всё, не могу изменять абилки этого монстра (№152).

1) не правильно работаешь с флагами. Хотя тут еще нужно видеть, в каком триггере ты используешь этот участок кода (такой код правильно сработает до битвы, но не в битве). Но все же верно устанавливать флаги так (тем более обнулять):


game bug fixes extended.dll || My Plugins || My GitHub
20.01.2016 22:35
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #23

(20.01.2016 23:04)Barin Wrote:  Неправильно или не компактно? Делаю по примеру из справочника.
У меня так:
и т.д


имхо, некорректно
надо просто приучать себя делать как правильнее.
а вдруг каким-то образом у того твоего монстра уже не будет этого флага полёта? (ты уверен что мод будет без прочих скриптов не твоих?) а ты ещё и отнимешь 2 бита... можно словить неуловимый баг
будешь потом голову ломать откуда ноги растут...
21.01.2016 01:35
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #24

(21.01.2016 01:35)bugyboy Wrote:  а ты ещё и отнимешь 2 бита
1 бит*


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
21.01.2016 02:34
Find all posts by this user Quote this message in a reply
Barin Offline

Posts: 804
Post: #25

Спасибо за инфу, раньше не видел подобный пример.
(20.01.2016 22:35)igrik Wrote:  

|2 (летать)значит установится если у монстра нету этого флага, а как отбирать флаг чтобы не летал? Не придумал куда минус поставить.
(This post was last modified: 21.01.2016 03:54 by Barin.)
21.01.2016 03:40
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #26



game bug fixes extended.dll || My Plugins || My GitHub
21.01.2016 11:28
Visit this user's website Find all posts by this user Quote this message in a reply
Barin Offline

Posts: 804
Post: #27

(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 чебрец полный:
(This post was last modified: 21.01.2016 16:54 by Barin.)
21.01.2016 16:07
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #28

да ты чё!??? ты же спрашивал про обнуление. Я и написал тебе S0!!!! Конечно он не летает, конечно он не стреляет. А еще он не Кинг 1, а еще у него иммунитета к заклинаниям разума. Ты разберись с основами то сначала.
Quote:Думал так можно сделать этого юнита чистым от всего и появится возможность его править.
Твои же слова. Я и дал тебе то что ты просил. Или тогда правильней формулируй свои вопросы.
То что в данном случае "!!VRy1:S0; полностью удаляет все флаги" - ты просто обязан понимать. Или тогда я даже не представляю что у тебя там в моде творится.
Если тебе нужно просто убрать например полет, то так и спрашивай "мне нужно убрать полет".
Это делается так:

Если тебе нужно убрать полет(2) и стрелбу (4), то вот так делать НЕ надо!

а надо так


game bug fixes extended.dll || My Plugins || My GitHub
21.01.2016 17:36
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #29

(21.01.2016 17:36)igrik Wrote:  Ты разберись с основами то сначала.
Ты чего, у него же нет времени и желания разбираться. Надо кампанию доделывать. 96-copy

(21.01.2016 17:36)igrik Wrote:  Если тебе нужно убрать полет(2) и стрелбу (4), то вот так делать НЕ надо!
Почему это? С небольшой поправкой "где 6=2|4".


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
21.01.2016 19:17
Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #30

(21.01.2016 19:17)gamecreator Wrote:  
(21.01.2016 17:36)igrik Wrote:  Если тебе нужно убрать полет(2) и стрелбу (4), то вот так делать НЕ надо!
Почему это? С небольшой поправкой "где 6=2|4".

НЕ НАДО так делать даже с поправкой. И пусть с математической точки зрения все верно, это плохой стиль.
6=2|4 довольно просто, а вот 884736 (мертвый, бьющий дважды всех вокруг без ответа) - ни фига не очевидно.


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
21.01.2016 23:34
Visit this user's website Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group