Current time: 24.04.2024, 17:58 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
FunLib
» Мод - библиотека функций для ERA
Author Message
Zur13 Offline

Posts: 223
Post: #2

Для начала, просто удобные расширения для работы с битмасками, вот мои реализации возможно несколько кривоватые, но проверенны и работают, если нужно могу подчистить:

Code:
********************************************************************************​
** Check specific bit(s) in the bitmask.
** Example if we need to know if monster in stack 0 is Alive and can Fly
**   Alive - decimal flag representation: 16
**   Fly - decimal flag representation: 2
** !VRy1:S16; [y1 bitmask for Alive (16) flag]
** !VRy1:+2;  [y1 bitmask for Alive (16) and Fly (2) flags (OPTIONAL step you may check only 1 flag or more then 2 flags)]
** !BM0:F?y2; [y2 Monster Flags of stack 0]
** !FU21005:Py2/y1/?y3; [y3 (=0: if monster in stack 0 is Alive and can Fly; <>0: otherwise]
********************************************************************************​
** x1 == bitmask to check (for example Monster Flags)
** x2 == bitmask with requested flags (mask with a requested flags which should be checked in x1)
** x3 == ?RESULT (0: all requested bits are 1 ; <>0: bitmask of a bits which are 0 in the x1 but 1 in x2)
!?FU(EraBitmaskCheck);
!!VRy1:Sx1;                            [y1 = x1]
!!VRy2:Sx2;                            [y2 = x2]

!!VRy1:&y2;                            [y1 = y1 & y2]
!!VRy1:Xy2;                            [y1 = (y1 & y2) XOR y2]

!!VRx3:Sy1;                            [x3 result]



********************************************************************************​
** Remove specific bits from the bitmask.
** Example if we need to remove Alive and can Fly flags from monster in stack 0
**   Alive - decimal flag representation: 16
**   Fly - decimal flag representation: 2
** !VRy1:S16; [y1 bitmask for Alive (16) flag]
** !VRy1:+2;  [y1 bitmask for Alive (16) and Fly (2) flags]
** !BM0:F?y2; [y2 Monster Flags of stack 0]
** !FU21006:Py2/y1/?y3; [y3 new monster flags bitmask without Alive and Fly abilities]
** !BM0:Fy3;  [change Monster Flags of stack 0]
********************************************************************************​
** x1 == bitmask to unset (for example Monster Flags)
** x2 == bitmask with requested flags (mask with a requested flags which should be checked in x1)
** x3 == ?RESULT x1 bitmask with all 1 bits from x2 set to 0 in x1
!?FU(EraBitmaskUnset);
!!VRy1:Sx1;                            [y1 = x1]
!!VRy2:Sx2;                            [y2 = x2]

!!VRy1:&y2;                            [y1 = y1 & y2]
!!VRy1:X-1;                            [y1 = INVERT(y1 & y2)]
!!VRy1:&x1;                            [y1 = INVERT(y1 & y2) AND x1]

!!VRx3:Sy1;                            [x3 result]

Дальше более специфические предложения, они вроде как нужны и могут оказаться полезными.

Вот например изменение текста описания монстра в бою, оно работает, основано на коде igrik, но в таком виде его нельзя в библиотеку. Для библиотеки нужно сделать версию которая не будет хранить ссылку на оригинальный текст, а будет ее возвращать при вызове, чтобы пользователь сам хранил ее чтобы передать в вызов функции вернуть как было.

Опять таки специфический функционал, отключить стандартные эффекты артефакта, вот, вопрос насколько это совместимо с разными модами.

Из этой темы функции для одновременной анимации стеков. Возможно нужна еще функция для синхронного проигрывания анимации стека (не одновременной)?

То что уже есть в FUN.erm экономия Z переменных и триггер-инициализация 7700.

Из дополнительного, возможно нужны функции для получения адреса-ссылки любой Z переменной включая ЕРТ.
20.04.2020 18:04
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Messages In This Thread
FunLib - Algor - 20.04.2020, 17:18
RE: FunLib - Zur13 - 20.04.2020 18:04
RE: FunLib - Algor - 20.04.2020, 18:33
RE: FunLib - Zur13 - 20.04.2020, 18:53
RE: FunLib - Zur13 - 20.04.2020, 21:28
RE: FunLib - Algor - 20.04.2020, 23:21
RE: FunLib - igrik - 20.04.2020, 23:40
RE: FunLib - Algor - 21.04.2020, 01:57
RE: FunLib - Berserker - 21.04.2020, 06:10
RE: FunLib - Algor - 21.04.2020, 10:21
RE: FunLib - Algor - 21.04.2020, 10:14
RE: FunLib - Berserker - 21.04.2020, 16:14
RE: FunLib - Zur13 - 21.04.2020, 16:25
RE: FunLib - Algor - 21.04.2020, 17:36
RE: FunLib - Berserker - 21.04.2020, 18:06
RE: FunLib - Zur13 - 21.04.2020, 19:01
RE: FunLib - Algor - 21.04.2020, 21:51
RE: FunLib - Berserker - 21.04.2020, 22:30
RE: FunLib - Zur13 - 21.04.2020, 23:20
RE: FunLib - Algor - 22.04.2020, 10:23
RE: FunLib - Algor - 22.04.2020, 10:29
RE: FunLib - Zur13 - 22.04.2020, 12:54
RE: FunLib - Zur13 - 25.04.2020, 03:03
RE: FunLib - Berserker - 22.04.2020, 16:50
RE: FunLib - ElfbI - 22.04.2020, 19:36
RE: FunLib - Berserker - 22.04.2020, 19:52
RE: FunLib - ElfbI - 22.04.2020, 21:13
RE: FunLib - igrik - 23.04.2020, 10:33
RE: FunLib - XEPOMAHT - 23.04.2020, 11:06
RE: FunLib - igrik - 23.04.2020, 10:52
RE: FunLib - Algor - 23.04.2020, 15:08
RE: FunLib - igrik - 23.04.2020, 11:16
RE: FunLib - Bes - 01.06.2020, 07:03
RE: FunLib - Berserker - 23.04.2020, 16:59
RE: FunLib - Raistlin - 23.04.2020, 23:48
RE: FunLib - Berserker - 25.04.2020, 06:12
RE: FunLib - Zur13 - 25.04.2020, 20:24
RE: FunLib - Berserker - 25.04.2020, 21:37
RE: FunLib - Zur13 - 01.05.2020, 17:38
RE: FunLib - Algor - 05.05.2020, 03:25
RE: FunLib - Algor - 18.05.2020, 16:39
RE: FunLib - slater777 - 12.12.2022, 11:48

Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group