Wake of Gods Forum | Форум Во Имя Богов

Full Version: Логические/математические операции на ЕРМ
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4
Кстати, подскажите что такое бит на программном уровне?
Например:
Можно ли ли y1=95, где я установил сам y1=1+2+4+8+16+32+64 проверить на бит &32?
Я установил, что в стеке 0 есть монстр который меня интересует, поэтому y1=1;
во втором стеке тоже есть, поэтому y1=Sy1 +2; и т.д.
Могу ли я как-то проверить слот №1 (0...6), через &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.
Как правильно вычитать флаги монстров в бою? Нужно отобрать флаг двойного удара (32768)
|32768 -32768
я правильно понял?
дать

отобрать
!!BMy5:F?i;
!!VRi:&-32769;
!!BMy5:Fi;

не?! Unsure я за неимением практики мог ошибиться
(07.12.2015 02:07)igrik Wrote: [ -> ]отобрать
Если ты уверен, что он есть. Но лучше делать как написал Algor или bugyboy.
Quote:не?! Unsure я за неимением практики мог ошибиться
Вот и я такой же, да и никогда с ними дела толком не имел. Сделал вот так. Хз. Присмотрюсь на счет багов
(07.12.2015 02:07)igrik Wrote: [ -> ]я правильно понял?

Не совсем:

дать

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

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

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

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

!!BMy5:F?i;
!!VRi:|32768 -32768;
!!BMy5:Fi;
(10.12.2015 02:10)fatsawhorse Wrote: [ -> ]А скажите пожалуйста, а почему таким образом флаг нельзя отобрать?
Потому что это небезопасно. Как и + для установки флага.
Граждане математики, как получить квадратный корень от числа на ерм?
(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, но это если из флоата считать надо

ну и, конечно, табличками
Мне уже однажды не хватало в ЕРМ интерфейса для мат. сопроцессора. Очень неудобно работать с функциями, возвращающими действительное значение.
Кстати, третий, менее отвратительный вариант тоже есть: найти функцию корня в ехе и написать в память код для её вызова, который вызвать через SN:E.
Кстати да, оно ж там есть, вместе с приличной частью математической и строковой либы. По крайней мере, ида опознает sqrt, хоть и не скажу сейчас адрес.
Pages: 1 2 3 4
Reference URL's