Current time: 18.05.2024, 07:18 Hello There, Guest! (LoginRegister)
Language: english | russian  

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

Posts: 2814
Post: #1

Кстати, подскажите что такое бит на программном уровне?
Например:
Можно ли ли y1=95, где я установил сам y1=1+2+4+8+16+32+64 проверить на бит &32?
Я установил, что в стеке 0 есть монстр который меня интересует, поэтому y1=1;
во втором стеке тоже есть, поэтому y1=Sy1 +2; и т.д.
Могу ли я как-то проверить слот №1 (0...6), через &2, что во втором слоте есть монстр, который меня интересует?


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

Posts: 7107
Post: #2

(18.09.2015 00:34)igrik Wrote:  Кстати, подскажите что такое бит на програмном уровне?
Можно сказать, что это элементарное значение составного логического типа (пример - те же флаги существ).
(18.09.2015 00:34)igrik Wrote:  Можно ли ли y1=95, где я установил сам y1=1+2+4+8+16+32+64 проверить на бит &32?
Можно, но 1+2+4+8+16+32+64=127, а 95=1+2+4+8+16+64.
(18.09.2015 00:34)igrik Wrote:  Я установил, что в стеке 0 есть монстр который меня интересует, поэтому y1=1;
во втором стеке тоже есть, поэтому y1=Sy1 +2; и т.д.
Могу ли я как-то проверить слот №1 (0...6), через &2, что во втором слоте есть монстр, который меня интересует?
Получаешь y1&2 и если это не 0 (то есть это 2), то бит 1 установлен. Соответственно, для бита n проверять нужно уже y1&2n.


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

Posts: 2814
Post: #3
Лампочка 
Как правильно вычитать флаги монстров в бою? Нужно отобрать флаг двойного удара (32768)


game bug fixes extended.dll || My Plugins || My GitHub
07.12.2015 01:56
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #4

|32768 -32768


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
07.12.2015 01:59
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2814
Post: #5

я правильно понял?
дать

отобрать


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

Posts: 5422
Post: #6

!!BMy5:F?i;
!!VRi:&-32769;
!!BMy5:Fi;

не?! Unsure я за неимением практики мог ошибиться
07.12.2015 02:33
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #7

(07.12.2015 02:07)igrik Wrote:  отобрать
Если ты уверен, что он есть. Но лучше делать как написал Algor или bugyboy.


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

Posts: 2814
Post: #8

Quote:не?! Unsure я за неимением практики мог ошибиться
Вот и я такой же, да и никогда с ними дела толком не имел. Сделал вот так. Хз. Присмотрюсь на счет багов


game bug fixes extended.dll || My Plugins || My GitHub
07.12.2015 16:49
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #9

(07.12.2015 02:07)igrik Wrote:  я правильно понял?

Не совсем:

дать

отобрать


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
07.12.2015 23:55
Visit this user's website Find all posts by this user Quote this message in a reply
fatsawhorse Offline

Posts: 1014
Post: #10

Здравствуйте... А скажите пожалуйста, а почему таким образом флаг нельзя отобрать?

!!BMy5:F?i;
!!VRi:-32768;
!!BMy5:Fi;

Я всегда считал, что если "+" даёт, то "-" тогда отнимает флаг

Неужели обязательно ставить таким образом

!!BMy5:F?i;
!!VRi:|32768 -32768;
!!BMy5:Fi;
10.12.2015 02:10
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #11

(10.12.2015 02:10)fatsawhorse Wrote:  А скажите пожалуйста, а почему таким образом флаг нельзя отобрать?
Потому что это небезопасно. Как и + для установки флага.


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

Posts: 2814
Post: #12

Граждане математики, как получить квадратный корень от числа на ерм?


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

Posts: 622
Post: #13

(10.12.2015 02:10)fatsawhorse Wrote:  Здравствуйте... А скажите пожалуйста, а почему таким образом флаг нельзя отобрать?

!!BMy5:F?i;
!!VRi:-32768;
!!BMy5:Fi;

Я всегда считал, что если "+" даёт, то "-" тогда отнимает флаг

Неужели обязательно ставить таким образом

!!BMy5:F?i;
!!VRi:|32768 -32768;
!!BMy5:Fi;
потому что если флага у существа не будет, то + и - превратят остальные флаги в кашу

(10.12.2015 03:32)igrik Wrote:  Граждане математики, как получить квадратный корень от числа на ерм?
у меня есть три варианта, и все отвратительные
один - реализация чего-то из вычмата, например, ряда Тейлора (или Маклорена), приду домой, посмотрю в справочнике
второй - дллка, которая будет экспортить sqrt()
третий - 0x5f3759df, но это если из флоата считать надо

ну и, конечно, табличками
(This post was last modified: 10.12.2015 17:10 by feanor.)
10.12.2015 15:32
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #14

Мне уже однажды не хватало в ЕРМ интерфейса для мат. сопроцессора. Очень неудобно работать с функциями, возвращающими действительное значение.
Кстати, третий, менее отвратительный вариант тоже есть: найти функцию корня в ехе и написать в память код для её вызова, который вызвать через SN:E.


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

Posts: 622
Post: #15

Кстати да, оно ж там есть, вместе с приличной частью математической и строковой либы. По крайней мере, ида опознает sqrt, хоть и не скажу сейчас адрес.
10.12.2015 19:10
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