Posts: 69
Threads: 2
Joined: Oct 2014
12-26-2014, 09:56 AM
(This post was last modified: 07-18-2021, 09:50 PM by Archer-Dante.)
Hello everybody~
This thread is originaly translated from Russian LFF Topic
Now i'm working on some kind of merging Alkarter's Exe и Silva's and folks DLL framework.
And also wanna ask you to forgive me 'bout mistakes. If u can tell me what i'm said here wrong way then PM me, please, and i'll fix that issue.
Let's do some introduce.
I call this project Neora by mixing from "Neo" (as New) and "Ra" (from rarara.dll project). If fact it's just DLL-project for PDK (Alkarter's Base) Engine, because it's much more useful than regular DLL project or LDK stuff. By the way i'm really miss some old DLL features, and as long it's not only i am.
I decided to learn ASM, reversing and kinda stuff to do all that by myself. That's the story
Neora is Basement for mods. And it's alsolutly compatible with all existing mods based on PDK 1.2+
You can just do exe replace from your mod project and use Neora stuff as you want. You don't need to rewrite your old DC codes, everything is compatible.
- State 8xxx is reworked. Now it won't add +140 pic shift to object after transform. For original characters from LF2 there is ID exceptions those adds 'em +140 pic shift.
- New State 3xxyzzz for Time Stop
—— xx - chance of Time Stop (0 = 100%)
—— zzz - time of Time Stop
—— y - Time Stop Type:
————— 0 - stops EVERYTHING, except TS user
————— 1 - stops EVERYTHING, except characters and objects with same team as TS user
————— 2 - stops EVERY object, except characters
- New State 2xxxyyy, ХХХ - mana value, with one you compares. If there is enough mana, then characters goes to "Next:". But if there is not enough - he goes to YYY frame.
- New States for "facing" change:
————— State 30 - object turns to the left
————— State 31 - object turns to the right
- State 9ххх. If object made any attack with ITR, it goes to the XXX frame. XXX must be between 0 and 799 (frame limit).
- Original "bdy: 1xxx" is reworked, now the "criminal-object" takes the team on his saviour! Also now you can use "bdy 1xxx" with any ID, not only Criminal.dat (ID 300). And now this body allows you transfer object to 0 frame.
- New "bdy: 2xxx", that works same as 1xxx, but without Shaking.
- New "bdy: 3xxx", that works like 1xxx, but allows even the enemy team (Stage Team) trigger this objects. Yet this bdy can be triggered by any ball or item (any type).
- New "bdy: 4xxx", that works same as 3xxx, but without Shaking.
- New "bdy 50", allows the character to take damage and don't go to the Injury or DOP frames. Unintrerruptable bdy!
- New complex "bdy: 1xxyyyzzzw":
————— XX - probability chance in % (0 = 100%)
————— YYY - frame where Target goes on hit (bdy owner)
————— ZZZ - frame where Attacker goes on hit
————— W - additional effect on trigger:
—————————— Without Shaking:
—————————— 0 ~ no effect
—————————— 1 ~ Target will take Attacker's team
—————————— 2 ~ Target will recieve Damage
—————————— 3 ~ Target will take Attacker's team and recieve Damage
—————————— With Shaking:
—————————— 4 ~ no effect
—————————— 5 ~ Target will take Attacker's team
—————————— 6 ~ Target will recieve Damage
—————————— 7 ~ Target will take Attacker's team and recieve Damage
- New "Body Kind 1XXYYYZ":
————— XX - probability chance (0 = 100%)
————— YYY - % of damage that Attacker will take back in self
————— Z - Damage Type (This cell is just template, for now there is no use expect "0" value)
(The Armor works BEFORE this "bdy", so till armor is up, bdy will not triggers. Works only with Type-0 attacker and target)
- New Itr\Kind 8 variations:
————— 800 - dvx, X-pos (standart, same as ik8, type 0)
————— 801 - dvx, X-pos, Y-pos (type 0)
————— 802 - dvx, Y-pos (type 0)
————— 803 - X-pos (type 0)
————— 804 - X-pos, Y-pos (type 0)
————— 805 - Y-pos (type 0)
————— 806 - dvx (type 0)
————— 810 - dvx, X-pos (type 1)
————— 811 - dvx, X-pos, Y-pos (type 1)
————— 812 - dvx, Y-pos (type 1)
————— 813 - X-pos (type 1)
————— 814 - X-pos, Y-pos (type 1)
————— 815 - Y-pos (type 1)
————— 816 - dvx (type 1)
————— 820 - dvx, X-pos (type 2)
————— 821 - dvx, X-pos, Y-pos (type 2)
————— 822 - dvx, Y-pos (type 2)
————— 823 - X-pos (type 2)
————— 824 - X-pos, Y-pos (type 2)
————— 825 - Y-pos (type 2)
————— 826 - dvx (type 2)
————— 830 - dvx, X-pos (type 3)
————— 831 - dvx, X-pos, Y-pos (type 3)
————— 832 - dvx, Y-pos (type 3)
————— 833 - X-pos (type 3)
————— 834 - X-pos, Y-pos (type 3)
————— 835 - Y-pos (type 3)
————— 836 - dvx (type 3)
————— 840 - dvx, X-pos (type 4)
————— 841 - dvx, X-pos, Y-pos (type 4)
————— 842 - dvx, Y-pos (type 4)
————— 843 - X-pos (type 4)
————— 844 - X-pos, Y-pos (type 4)
————— 845 - Y-pos (type 4)
————— 846 - dvx (type 4)
————— 850 - dvx, X-pos (type 5)
————— 851 - dvx, X-pos, Y-pos (type 5)
————— 852 - dvx, Y-pos (type 5)
————— 853 - X-pos (type 5)
————— 854 - X-pos, Y-pos (type 5)
————— 855 - Y-pos (type 5)
————— 856 - dvx (type 5)
————— 860 - dvx, X-pos (type 6)
————— 861 - dvx, X-pos, Y-pos (type 6)
————— 862 - dvx, Y-pos (type 6)
————— 863 - X-pos (type 6)
————— 864 - X-pos, Y-pos (type 6)
————— 865 - Y-pos (type 6)
————— 866 - dvx (type 6)
————— 870 - dvx, X-pos (type 1, 2, 4, 6)
————— 871 - dvx, X-pos, Y-pos (type 1, 2, 4, 6)
————— 872 - dvx, Y-pos (type 1, 2, 4, 6)
————— 873 - X-pos (type 1, 2, 4, 6)
————— 874 - X-pos, Y-pos (type 1, 2, 4, 6)
————— 875 - Y-pos (type 1, 2, 4, 6)
————— 876 - dvx (type 1, 2, 4, 6)
- New "Itr\Kind: 1000" for instant move to X, Y and Z coordinates
To set them use "x:", "y:" и "z:" inside ITR.
Set "Injury:" to change Frame instantly after transfer.
All 4 attributes can be set to "-1" for skipping. Additional things:
——— "dvx:" - minimum HP requirement for transfer
——— "dvy:" - minimum MP requirement for transfer
(HP and MP substracts only if both of them is enough)
——— Effect 50, makes no sound and doesn't force the Target go to Injury frames.
——— Effect 1XXX - Attacker loses XXX HP on effect, can kill Attacker.
——— Effect 2XXX - Attacker gains XXX HP on effect with type-0
——— Effect 3XXX - Attacker gains XXX HP on effect with any type
——— Effect 4XXX - Attacker loses XXX MP on effect
——— Effect 5XXX - Attacker gains XXX MP on effect with type-0
——— Effect 6XXX - Attacker gains XXX MP on effect with any type
——— Effect 7XXX - Target loses XXX MP
——— Effect 8XXX - Target loses XXX MP and Attacker recieves it
——— Effect 9ХХХ - Target with Type-0 will be trasfered to XXX frame
With thouse Effects you can use "sound:" attribute with value:
——— 0 - regular hit sound
——— 1 - hit to the block or Julian's armor
——— 2 - strong hit sound
——— 3 - stone hit sound
——— 4 - stick sound
——— 5 - step sound
——— 6 - falling body sound
——— 7 - dash sound
——— 8 - t3 hit sound
——— 9 - broken stone sound
——— 10 - Henry's arrow sound
——— 11 - silent slice sound
——— 12 - bright slice sound
——— 13 - hitting baseball with stick sound
——— 14 - freezing sound
——— 15 - breaking ice sound
——— 16 - firing sound
——— 17 - Louis or Knight 's armor hit sound
- New attribute "shp:" (start health power) for setting hp on game start. Must be set between <bmp_begin> and <bmp_end>
- New attribute "smp:" (start mana power) for setting mp on game start. Must be set between <bmp_begin> and <bmp_end>
- "hiden:" now can be used as "hidden:"
- "confus:" now can be used as "confuse:"
- "manacle:" now can be used as "silence:"
- "delay:" now can be used as "slow:"
- "respond:" replaced to "sound:" and used for making sound for "effect"
- Now you can use Randomizer of summoned object in Stages for optional purpore. Use "1xxxxx" for making object appears on level WITHOUT LF2 random. And if you're interested to use Random, then use regular values below "100000".
Example:
x: 100300 ~ makes object appears correctly in that place
x: 300 ~ allows the game randomize this position for a like +\- 100
- "act: zzz" have less limits. Now it can be used for type 0 \ 1 \ 2 \ 3 \ 4 \ 5 \ 6.
- "act:" is reworked. You can use "act: xxxyyyzz":
xxx - the object appears in this frame if CHANCE is FAILED
yyy - the object appears in this frame if CHANCE is SUCCEED
zz - probability chance.
- You can set up in what Game Modes F6, F7, F8 and F9 is allowed. Сustomizable thro DLL.
- Now F7 ressurects dead characters after round finished, like it was in LF 1.9
- F7 now cures Poison, Slow, Confuse and Silence effects from PDK engine
- F9 is reworked, now it doen't killing enemy characters if used in mode different from VS. Also there is filter for making some object in game unbrekable by F9, for example if you're using items for Level Design.
- Last version of PDK with all features included (exe from Al'Karter)
- All exe pictures now located in path \sprite\UI\ and stored in PNG format
- Enabled transparency in different interface elements and alike (RFace.png, *_s.bmp, FRAME.png, e.c.t.)
- Replays now will work even there are from out-of-dated version of mod. Enabled by default.
- Fixed high MP regen missing with Julian and Firzen from PDK
- With Neora archive there is right data files with enabled armor for Louis, Knight и Julian as like in original LF2
- Fixed cursor dissapear after pressing Start Game (PDK original bug =\)
- The feature of choosing team in Stage Modes is back! Like in old LF2 versions. Enabled by default.
- CRAZY! mode now can be used even in Battle Mode. Enabled by default.
- Mana regen is reworked. Now it's truly have a MP regen increasing if owner lost some HP in percentage. Original code always calculate it relative 500 value. But as long as Bosses and Characters in Neora can have much more max HP, they are now getting additional MP regen only relative % of wantage HP.
- Added Slow Motion on last hit on Round or Stage. Enabled by default (FPS_rework proc)
- Now you can change Window Title of your game. Open in DLL project "lf2.asm", find "GameName" variable and change it as you want. Compile and enjoy
- The debug info in-game in left up corner with "u0 d0 l0 r0" or alike is now removed.
- Rewrited code to manipulate HP\MP Regen with ID binding. Demo added to ID 55.
- Added function for permanent replays validation. Now you can run replays from old Mod versions. Enabled by default.
- Wrapped code for start coordinates:
——— Opportunity to turn on the Random X-coord spawn of characters in Stage mode, like in VS mode.
——— Opportunity to set accurate spawn point of characters in Stage mode, by X \ Z .
- Wrapped code for start MP value for different Modes:
——— Opportunity to set start MP value for Players in different modes (by default it's 200 for VS and 500 for Stage). Can be used for special ID.
——— Opportunity to set start MP value for Com-Players in different modes (by default it's 200 for VS and 500 for Stage). Can be used for special ID.
- Added reset code for setting CHARMENU-image in 0.0 coordinates. For activation just remove comments ";" for "ResetCoord" procedure invoke.
- A way to enable "Independent" team for all players for Stage Mode instead Team 1. Everyone can hurt everyone! THIS IS HARDCORE!! (btw it's disabled by default )
- Method to use custom HP-bars for characters. Demo is enabled for Julian, try it out!
- heavy_* attributes from character's <bmp_begin\end> doesn't works.
- Dropbox v.3+ loves to break PDK engine in weird way
- Strange jump with turning (or kinda)
- Ability can't be reset by pressing any movement keys if character is lying
- No AI for Julian, Justin and some stage characters.
艾爾卡特 (Alkarter) - developer of engine that was called PDK in LFF
Drakken - Creating DLL-prototype
Lord Silva - Rework of DLL for LF2 needs
1477 - a lot of functions that i looks at for example and some of them even ported
Surik - some things and help me for understanding ASM-logic
Archer-Dante - rework of old DLL features and adding more new
DOWNLOADS
Neora 2.09 - ☢ | Download |
‽ - Experimental version
✔ - Stable version. Recommend it.
Thanks given by: Silverthorn , Electric2Shock , mfc , Dragon5 , Ariel , Deep , hkmnhkmn , Ariyan , bashscrazy , Dr. Time , empirefantasy , FerZ , darkfiren , Alinz
Posts: 4,878
Threads: 162
Joined: Mar 2008
Wow, speaking of Christmas :p
Gave it a quick shot. I totally dig the png-support! For those unaware of the impact: this actually allows you to give transparency to a character without relying on transparency-masks/grids. Load a sprite up, drag its opacity down to, let's say 50%, and it becomes truly translucent :D
What I'm not so sure about yet is whether the loading for each screen is so great or not (for creating chars, there is no doubt about its awesomeness, for pure gameplay, it might become annoying after some time). Either way, it's definitely something I've wanted to see for a while now!
Armor! The dreaded ID-dependent thing that forced the generic DCer to create a full mod for an armed char. But behold:
DC-Code:
<armor>
sound1: data\002.wav
sound2: data\002.wav
type: 1 ratio: 15 decrease: 10 mp: 0 fall: -1 bdefend: -1 injury: -1 delay: -1
id: 208 id: 214
<armor_end>
|
(for explanation, the IDs 208 and 214 are Henry's superarrow and John's disk, respectively)
Implications --> :woah:
Stage-Bosses! Gone are the times where you'd have to play half an hour to make it up to stage x-5, only to fail there. Behold thine eyes:
DC-Code:
<stage_information>
id: 2
name: Stage_3
file: data\stage\stage3.dat
<stage_information_end>
<stage_information>
id: 3
name: Stage_3_LouisEX <boss>
file: data\stage\stage3boss.dat
<stage_information_end>
|
The boss-stages actually get color-highlighted in the selection-menu. Which is dope.
Survival was missing in the originally released stage.dat, but the file is already in the data\stage-folder. Adding another fixed it for me. Kind of.
And this is really my only point of critique: the current Survival stage is not displayed*). Essentially, you'll have to keep track of when new waves spawn or just know these stages so well that you know who appears where. If the counter from the original survival-stage could be brought back, it'd be absolutely great!
This is the code I added, please inform me if there is a special tag to be added to make it work and I take everything aforementioned back :p
DC-Code:
<stage_information>
id: 8
name: SRUVEL
file: data\stage\survival.dat
<stage_information_end>
|
So far, I haven't had the opportunity to test the other elements. But, oh boy, I am excited. Thank you for sharing this! :)
Silverthorn / Blue Phoenix
~ Breaking LFE since 2008 ~
"Freeze, you're under vrest!" - Mark, probably.
» Gallery | » Sprites | » DeviantArt
Posts: 69
Threads: 2
Joined: Oct 2014
12-26-2014, 12:04 PM
(This post was last modified: 12-26-2014, 12:10 PM by Archer-Dante.)
Quote:the loading for each screen is so great or not
1. It's from Alkarter's deal. Yea.
2. It's loading only dats, images and sound that going to be used in fight. So that like lower RAM use. We did tests :3
Quote:And this is really my only point of critique: the current Survival stage is not displayed
Ah, yeah. This PDK feature again.
Alkarter removed Survival, but changes of stage system now allow anybody create stage mode up to 500 substages. I guess thats good reason to forgive this one
All this stuff is really serious reason to rework and build dll for this
Maybe i'll rework dat of stages to bring survival back. Dunno.
Quote:Wow, speaking of Christmas
A-a-and...CORRECT!
Posts: 60
Threads: 12
Joined: Jul 2011
How do I change the background that appears the "Loading"? I found nothing in the "menu" folder or the "UI"
Thanks given by:
Posts: 9
Threads: 1
Joined: Dec 2012
Quote:How do I change the background that appears the "Loading"? I found nothing in the "menu" folder or the "UI"
sprite\loading\1.lfi
Posts: 233
Threads: 13
Joined: Oct 2008
12-28-2014, 10:00 PM
(This post was last modified: 12-28-2014, 10:16 PM by Dragon5.)
I downloaded it with high hopes until I remembered what PDK was. The new features are great, but I faced the same bug that detracted me: You always dash in the direction you're facing instead of the way your momentum is going (unless you hold a direction).
For example, on the original LF2 if you jump and turn around, you dash backwards. On PDK/Neora, you do the same and you dash forward instead.
I'll keep an eye on this though. Hopefully that will be fixed as well from PDK.
Edit: Is there a way to modify how many TUs it takes for regeneration? Just curious.
To live a life of power, you must have faith that what you believe is right, even if others tell you you're wrong.
The first thing you must do to live a life of power is to find courage. You must reach beyond the boundaries of time itself.
And to do that, all you need is the will to take that first step...
Ask not what others can do for you, but what you can do for others.
Thanks given by:
Posts: 69
Threads: 2
Joined: Oct 2014
Quote:On PDK/Neora, you do the same and you dash forward instead.
Yup, already got report about this. Maybe someday i'll fix that, cuz now i don't really know what the real reason of that possible to be.
For me it's looks like press-reading dissapear in couple states. For example, yet you can't reset special ability while lying, there in no control-reading comparing with original LF2.
Sounds same... control loss.
Quote:Edit: Is there a way to modify how many TUs it takes for regeneration? Just curious.
So...the engine of LF2 works like Every TU code doing something. HP/MP regen works the same way.
Naturaly there is no way to do regen less than 1 point per TU.
But it's kinda possible if make some TU counter. Like this logic: "Add 1 Point to Health when TU counter reaches 30, then reset it to 0".
With this logic 1 HP will regen per 1 second. It lowers original logic, but will works, i guess
So yea, it's kinda possible and even not too hard to make.
Thanks given by:
Posts: 233
Threads: 13
Joined: Oct 2008
(12-29-2014, 08:52 AM)Archer-Dante Wrote: For me it looks like press-reading disappear in a couple states. For example, yet you can't reset special ability while lying, there in no control-reading comparing with original LF2.
Sounds same... control loss.
If you're talking about what I'm thinking, I think it's an improvement. The original LF2 has an invisible "button press" limit that was like 5 inputs or something, so pressing D>D>A would not result in a special move. PDK's exe allows you to do the same input and the special move would be registered.
Also it wouldn't hurt to include some of the features PDK provides in a spoiler post or a txt file in the download. One example is that DJJ and DAA are now legitimately inputtable special moves now as hit_jj and hit_aa. It would be good for people who aren't as familiar with PDK.
To live a life of power, you must have faith that what you believe is right, even if others tell you you're wrong.
The first thing you must do to live a life of power is to find courage. You must reach beyond the boundaries of time itself.
And to do that, all you need is the will to take that first step...
Ask not what others can do for you, but what you can do for others.
Posts: 69
Threads: 2
Joined: Oct 2014
Quote:If you're talking about what I'm thinking, I think it's an improvement. The original LF2 has an invisible "button press" limit that was like 5 inputs or something, so pressing D>D>A would not result in a special move. PDK's exe allows you to do the same input and the special move would be registered.
Mmm! I really appreciate you told me about 5-keys limit register!
Quote:Also it wouldn't hurt to include some of the features PDK provides in a spoiler post or a txt file in the download. One example is that DJJ and DAA are now legitimately inputtable special moves now as hit_jj and hit_aa. It would be good for people who aren't as familiar with PDK.
I guess we'll make PDK feature list in future. It is exist even now, but just translation from chinese, where is a lot of not really correct info, or leaked details. When its been complete and closely correct, then i'll make english feature list ^^
Thanks given by:
Posts: 233
Threads: 13
Joined: Oct 2008
It also doesn't register when you do an input like DD>A. Now that I look into this, it seems like there's a 3-button limit.
Someone could probably can explain this better than me, but from what I found, pressing defend triggers LF2 to start buffering inputs. So pressing defend again registers as part of the input. A direction after the second defend ends the buffer.
In simple words, D>D>A registers as D>D and then >A, both of which do nothing; DD>A registers DD> and then A.
Like I said, PDK's changes regarding move inputs are an improvement over the regular LF2 as pressing Defend starts the buffer every time.
To live a life of power, you must have faith that what you believe is right, even if others tell you you're wrong.
The first thing you must do to live a life of power is to find courage. You must reach beyond the boundaries of time itself.
And to do that, all you need is the will to take that first step...
Ask not what others can do for you, but what you can do for others.
|