Author Topic: [PSX/PC] Battle editor - Proud Clod (1.5.0/FINAL)  (Read 215821 times)

secondadvent

  • Insane poster
  • *
  • Posts: 287
  • Karma: 0
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #75 on: 2009-06-08 17:37:21 »
heh... i just ate not too ling ago, so i am set XD. i also made a guess as to the usage of the row? and sideattack flags, not quite sure if it is correct, just an immediate guess from what i saw in AB's script, you may know more than i do about it. if you know anything, i could use some help with completely understanding it's ai... the row thing is killing me >_>.

going to have to make a little test to see what the initial facing is, to better make sense of the code, and to see which row is which :P.

ok, it's starting facing is 1, so i think that i was right with the row layout. i will make cloud and barret use the same code to display their current value, to see if their row flag is the way i think they are.

cloud's starting facing is 0, and barret's is 1, so i think i got the middls part backwards... the back attack damage would happen in they have the SAME facing, since with different facings they'd be facing each other, or looking away from each other. gonna update the other post until i learn more...

also learned the back attack and ambush settings, so added them as well. pincer attacks are likely the middl person in your team facing a different direction while the other two face the opposite direction, i am not at a pincer attack area, so i do not know which sides are which, though the same thing applies.
« Last Edit: 2009-06-08 18:12:59 by secondadvent »

NFITC1

  • No life
  • *
  • Posts: 2906
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #76 on: 2009-06-08 18:20:34 »
You're straying from the "no AI discussion" request. ;)

I figured out why the test KERNEL wasn't working. It was a pointer mistake on my part. That really screws things up, doesn't it?

secondadvent

  • Insane poster
  • *
  • Posts: 287
  • Karma: 0
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #77 on: 2009-06-08 18:30:10 »
i never new there was a no ai discussion request... how else can i point out things regarding ai to possibly add to PrC :P?

yeah... a pointer not pointing right is never good >_<.

on the (not adding more ai stuff XD) topic of the facing flag, i am going to check and see which side of a side attack gets which value set... i'll take the info from my other post i have been updating here and add it to my thread, to abide by the rules of you thread >:D. going to update the dat file with names/better names for the flags and such i figure out, to make life easier later :P.

here is what i updated so far in my dat file:
2120|MagicCounter //counts how many times hit with magical attacks
4020|Flag:Invisible //makes the character invisible (dunno how to bring back :P... maybe setting an idle animation and turning it off?
4027|Flag:Facing //the current facing of the enemy
402C|Flag:NoDeathAnimation //prevents the normal death animation from occurring if true. used for setting custom death animations
402E|Flag:Intangible //unable to be hit when on

updated: setting the idle animation again on an invisible enemy doesnt work to bring them back <_<.
« Last Edit: 2009-06-08 19:11:00 by secondadvent »

NFITC1

  • No life
  • *
  • Posts: 2906
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #78 on: 2009-06-08 19:04:58 »
i never new there was a no ai discussion request... how else can i point out things regarding ai to possibly add to PrC :P?

That's what I meant by this. Although discussion of addresses is fine. I also don't mean to say that you've violated it, I meant to say we're getting close to off-topic-ness. :)

BTW- How would you like a resizable AI Editing window? I know I would. That works now too. :)
« Last Edit: 2009-06-08 19:14:57 by NFITC1 »

secondadvent

  • Insane poster
  • *
  • Posts: 287
  • Karma: 0
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #79 on: 2009-06-08 19:09:59 »
that was one of my early ideas for this program, since the resized version is still the same size, just in a bigger gray space XD. dunno if i ever posted about it or not... probably got lost in my massive posts.... i need to tye less or something :P.

the next release is going to be a good one >:D.

off topic: i have an idea... if the variable that is supposed to be limit level (you have a ? there), it could be possible to change limit levels in battle, and possible to make it so that you have to use a level 1 limit before it allows you to use a level 2 (as in it will start at level one, and work it's way up to 4, then go back to level 1, IF you have limits in those levels), making easy omnislashing out of the question, at least it could only be used every four attacks then. it could also be made so you have to use a limit level a few times before it allows you to use a higher level one, but that could make things overly complicated for the player. increased limit requirements, as well as increasing how much you need to be hurt to fill the bar, combined with only being able to use limits in order by level would make limits something that you have to work harder to gain, and to use... i just have to see what is up with the variable first :P.
« Last Edit: 2009-06-08 19:31:18 by secondadvent »

NFITC1

  • No life
  • *
  • Posts: 2906
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #80 on: 2009-06-08 20:25:45 »
I never tried actually changing that value.....Give it a try. :D

Has anyone noticed that on some scripts (usually quite long ones) that close to the end of the disassembly it just doesn't have any tabs on the lines anymore? I always thought that was weird. Now I know what was causing that and I fixed it. ;) This next version's going to have lots (and LOTS) of fixes in it.

secondadvent

  • Insane poster
  • *
  • Posts: 287
  • Karma: 0
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #81 on: 2009-06-08 20:34:43 »
how about an option to turn all statuses, targets, and elements on or off, so that you don't have to click all the damn boxes? it would make things even easier, and since it will have a resizing option, it should have more room to put stuff ^^.

yeah, i noticed it as well, and it always bugged me, but wasn't hurting anything, but at least it won't be there anymore >:D. after i finish AB (hopefully soon >_>) i will try out some of the variables to see what they all do... i found out the ones i did easily enough, so it shouldn't be too hard to find more. putting in debug messages (not to the actual debugger, but printed on screen) works pretty well, i just need to learn more about that to print the actual values instead of a message saying 1 if true, or 0 if false, because the larger than bit values will require it.

you work any towards a copy/paste ai ability yet? there are many times that it would have proven useful, and will be greatly helpful if i want to implement an enemy level-up-as-you-do script for each enemy, or just try to test out the different unknown variables on different enemies without retyping... or just copying an entire ai script from one enemy to another, massively useful there ;).
« Last Edit: 2009-06-08 20:54:46 by secondadvent »

NFITC1

  • No life
  • *
  • Posts: 2906
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #82 on: 2009-06-08 21:30:53 »
how about an option to turn all statuses, targets, and elements on or off, so that you don't have to click all the damn boxes? it would make things even easier, and since it will have a resizing option, it should have more room to put stuff ^^.

Done, but in a right-click menu in the empty spaces between the statuses and elements. Best you're going to get.

you work any towards a copy/paste ai ability yet? there are many times that it would have proven useful, and will be greatly helpful if i want to implement an enemy level-up-as-you-do script for each enemy, or just try to test out the different unknown variables on different enemies without retyping... or just copying an entire ai script from one enemy to another, massively useful there ;).

I've considered it, but I'm not sure the best way to do it. Not going to happen in this version.

EDIT: Another thing I'm adding is the attack index to the disassembled script. When multiple Attacks have the same name it gets confusing otherwise.
« Last Edit: 2009-06-08 21:41:21 by NFITC1 »

secondadvent

  • Insane poster
  • *
  • Posts: 287
  • Karma: 0
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #83 on: 2009-06-08 21:46:05 »
nice, and that's ok, this version will be awesome enough as it is... i might die from happiness if it got that as well XD.

by not knowing the best way to do it, do you mean what exactly will be copied, and how the user will do it, or do you just not know how to program it in? if you just don't know how to lay it out, it could be possible to make a right click option for the whole left side (the enemy and the specific ai fields), so that if you click a certain field and copy it, the entire contents would be copied (so if you clicked the mono drive and selected copy, it would copy the entire ai of mono drive, and the specific ai types in it (keeping track of what's in main, etc.), or if you clicked on just the ai type of an enemy, it'd copy only that segment of ai. when in an ai section, you could allow the user to highlight the ai by selecting the rows (enable more than one row to be selected, possibly for mass deletion as well) and right clicking -> copy.

for pasting, right click on a field/row in a section and select paste with insert above/below, or overwrite (adding the ability to insert it above or below the row would be nice if a row was selected, or inserting above/below the current selected section's code, meaning if right clicking on main and pasting above, it'd make the first row where the code begins and push everything else down. an overwrite paste would be nice as well, completely overwriting the current code, though it wouldn't be too hard to just delete the old code later) would be pretty nice little ways of doing it. if you were to select the entire code of an enemy (enemy copy), it should only be able to be pasted onto another enemy, so that bugs wouldnt occur when trying to paste multiple sections into one ai section.

but if you just don't know how to program it to add a copy/paste feature, then i have no idea what to do XD.

yeah, i noticed that when looking at AB's two bodyblow/rear gun attacks... i had to look between the coded portion and the attack's index to tell them apart.

... it would be cool if an enemy could steal the skeleton/model of another enemy in battle, as well as it's animations, because that could have some usage with an enemy that can mimic other people (create an ffvii gogo, or metamorph enemy like in v), and "could" have some potential elsewhere, especially if the color can be changed as well, since it could be possible to give the MP enemy a grenade attack for instance by swapping the entire model and animations. i doubt it, but there is a way to change their size, so it could be possible.
« Last Edit: 2009-06-08 21:53:34 by secondadvent »

Seifer Almasy

  • Guest
Official Proud Clod 1.0 Topic
« Reply #84 on: 2009-06-08 21:50:17 »
I see you have renamed a lot of the monsters correct names :P  Have you done this yourself or have you been following our project

Jst wondering :P


secondadvent

  • Insane poster
  • *
  • Posts: 287
  • Karma: 0
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #85 on: 2009-06-08 21:57:25 »
what do you mean? if you are talking about in PrC then it is because it shows the current enemy names used in your scene.bin, so it would be keeping track of your project :P. not quite sure who you were talking to  :?

Seifer Almasy

  • Guest
Official Proud Clod 1.0 Topic
« Reply #86 on: 2009-06-08 22:10:43 »
sefer etc are nor called that in the original scene bin?  Or are they?  Was to the mod maker :)  I just lwant to know how he came about choosing certain names esp Midgar Sormr as that is a vote for it in my book.  (having a little vote on certain names)

Sorry I am offtopic here, also I was curious if they were named because he had some japanese insight or if the game already contained the data
« Last Edit: 2009-06-08 22:12:29 by Seifer Almasy »

secondadvent

  • Insane poster
  • *
  • Posts: 287
  • Karma: 0
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #87 on: 2009-06-08 22:18:25 »
this thread is about Proud Clod, an ai and enemy move editor, not a mod (unless nfitc1 is doing one on the side...), so i think either you are in the wrong thread, or i am just very confused :P.

yay for an epic fail on the first counter ai script for air buster... but i think i can fix it (dunno why his death animation happened... but i think i can fix it easily)

ok, i have a new one for you, but sadly cannot tell yo the cause. my attempt was a fail, only partly because of my ai (little tweaking will fix it), but the entire ai script for air buster (except my counter ai), and the special combatant with it were completely wiped clean. i now have a blank ai scene but with the general counter (thankfully) in tact. i have no idea what caused this, and now i have to take the scene.bin files apart and replace the entire scene manually so that i dont have to retype the whole ai >_<.

well, it is redone now, and works (hopefully perfectly), so i am happy anyway :P.

ok, nfiitc1, how exactly do you have the disassembler lain out in regards to the way it creates the if statements, indentation and bracketing, because i was wondering if i could help tweak it more (not the actual programming help, but idea help :P), but i'd need to know how it is right now, like how exactly it follows the logic.
« Last Edit: 2009-06-08 23:27:20 by secondadvent »

Seifer Almasy

  • Guest
Official Proud Clod 1.0 Topic
« Reply #88 on: 2009-06-08 23:29:06 »
sefer etc are nor called that in the original scene bin?  Or are they?  Was to the editor maker :)  I just lwant to know how he came about choosing certain names esp Midgar Sormr as that is a vote for it in my book.  (having a little vote on certain names)

Sorry I am offtopic here, also I was curious if they were named because he had some japanese insight or if the game already contained the data

NFITC1

  • No life
  • *
  • Posts: 2906
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #89 on: 2009-06-09 00:39:04 »
ok, nfiitc1, how exactly do you have the disassembler lain out in regards to the way it creates the if statements, indentation and bracketing, because i was wondering if i could help tweak it more (not the actual programming help, but idea help :P), but i'd need to know how it is right now, like how exactly it follows the logic.

No. Not because I don't want help, but just because I mostly don't remember. It's not like I don't have ideas on how it SHOULD work, but the scripts are so badly coded that it's impossible to get it to look much better than it does automatically. Well, I shouldn't say impossible. I just don't want to take the time to program it the way it should look.

sefer etc are nor called that in the original scene bin?  Or are they?  Was to the editor maker :)  I just lwant to know how he came about choosing certain names esp Midgar Sormr as that is a vote for it in my book.  (having a little vote on certain names)

Sorry I am offtopic here, also I was curious if they were named because he had some japanese insight or if the game already contained the data

Huh? Why'd you quote yourself? Don't do that. I don't have a clue what you're asking anyway.

Seifer Almasy

  • Guest
Official Proud Clod 1.0 Topic
« Reply #90 on: 2009-06-09 01:04:46 »
never mind....  I figured it out.  No wonder I am not making sense when I have got the damn cold :(  That was probably most stupid thing I have ever wrote   :lol:  I better go bed and get some damn sleep....

I totally forgot that I had already altered scene bin myself and hadnt moved it like I was supposed to.  I am afraid a bad cold knocks you a bit  :-P

Sorry....
« Last Edit: 2009-06-09 01:11:18 by Seifer Almasy »

secondadvent

  • Insane poster
  • *
  • Posts: 287
  • Karma: 0
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #91 on: 2009-06-09 01:17:26 »
no prob nfitc1, i just wanted to know, and it's ok to not want to tackle a coding mess XD. i just finished AB's ai (still some minor tweaking), so i know what you mean by that... i chopped off so much useless crap it is unreal (not repetitive stuff that needed optimized, like eligor, just unused stuff... at least 100 bytes worth). if you ever feel like it, tell me though :P.

gjoerulv

  • No life
  • *
  • Posts: 1158
  • Karma: 35
  • me
    • View Profile
    • My Youtube
Official Proud Clod 1.0 Topic
« Reply #92 on: 2009-06-09 01:35:50 »
Hey NFITC1, if it's not too much to ask, could you make a copy method that copies attacks? I could imagine a button named "Copy to equal ID". The button would copy the attack through the entire Scene to attacks with equal ID. All it really should check fot is the attack ID, as there are no similar attack IDs with different effects by default. At least as far as I know. You should have a warning box popping up to confirm the action though (imo).

You could also have simple Copy-Paste methods. Then you don't have to worry about the ID, unless you paste it to an unused attack.

NFITC1

  • No life
  • *
  • Posts: 2906
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #93 on: 2009-06-09 13:54:35 »
Hey NFITC1, if it's not too much to ask, could you make a copy method that copies attacks? I could imagine a button named "Copy to equal ID". The button would copy the attack through the entire Scene to attacks with equal ID. All it really should check fot is the attack ID, as there are no similar attack IDs with different effects by default. At least as far as I know. You should have a warning box popping up to confirm the action though (imo).

You could also have simple Copy-Paste methods. Then you don't have to worry about the ID, unless you paste it to an unused attack.

Those actually sound easy compared to the AI copy-paste function. I should probably even make a "Sync with KERNEL.BIN" function as well (I'm still not sure which trumps which).

I also added a search by attack index that acts like the enemy search. But it won't jump to a scene because you have to be in a scene to search for the attack. Here's an example:

Quote
Attack Bolt3 with index of 35 [0023h] found in the following scenes:

0, 2, 221, 226, 228, 230, 232, 233, 247, 249

So the Attack's name, the index in Decimal and Hexadecimal, and the scene indexes are reported to the user. There will also have to be a "find Unused indexes" function that I'll add to the top menu.
« Last Edit: 2009-06-09 15:51:58 by NFITC1 »

gjoerulv

  • No life
  • *
  • Posts: 1158
  • Karma: 35
  • me
    • View Profile
    • My Youtube
Official Proud Clod 1.0 Topic
« Reply #94 on: 2009-06-09 16:00:42 »
It would certainly save time. If you're up for it that is. I'm not an expert on this particular part, but as far as I know the kernel kinda contains the scenes as a look-up files. Each bank has a particular length. You prob knew this though.  :-P

NFITC1

  • No life
  • *
  • Posts: 2906
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #95 on: 2009-06-09 16:39:43 »
blank attack indexes in the vanilla scene.bin include:

Code: [Select]
0100, 0101, 0102, 0165, 0166, 0167, 0168, 01B2,
0244, 0250, 0265, 0266, 0267, 026C, 0286, 02D1,
02D4, 02DC, 02DD, 0302, 0316, 0317, 0318, 031A,
031B, 0324, 0326, 0327, 0329, 032A, 0335, 0350,
037F, 0380, 0381, 0382, 0386, 03A0, 03A1, 03AD,
03C1, 03C2, >03E2

I don't know how high they're allowed. I assume they could go up to FFFE if you wanted them too.

gjoerulv

  • No life
  • *
  • Posts: 1158
  • Karma: 35
  • me
    • View Profile
    • My Youtube
Official Proud Clod 1.0 Topic
« Reply #96 on: 2009-06-09 17:47:45 »
blank attack indexes in the vanilla scene.bin include:

Code: [Select]
0100, 0101, 0102, 0165, 0166, 0167, 0168, 01B2,
0244, 0250, 0265, 0266, 0267, 026C, 0286, 02D1,
02D4, 02DC, 02DD, 0302, 0316, 0317, 0318, 031A,
031B, 0324, 0326, 0327, 0329, 032A, 0335, 0350,
037F, 0380, 0381, 0382, 0386, 03A0, 03A1, 03AD,
03C1, 03C2, >03E2

I don't know how high they're allowed. I assume they could go up to FFFE if you wanted them too.

Yeah, you prob could go as high as you want. Anyone wanna test? lol

A simple copy-paste function should only include the attack data though. The data you paste should not overwrite the ID. If you copy an attack to a blank, unused field (FFFFFFFFFFFFFFF...etc). Then the would be ID  FFFF anyway and not included in the AI. The user have to come up with the ID him/herself then assign it to the enemies and their AIs. The user must just make any similar IDs in the same scene.

The trouble with copying to all equal IDs is equal IDs can be different from each other in different scenes. An example: ID 0101h in scene 5 could be a fire-based attack physical attack, while the same ID, 0101h, in scene 6 could be a thunder-based magical attack.

EDIT: oh and there is no harm in copying the attack name of course  :-D
« Last Edit: 2009-06-09 17:49:25 by gjoerulv »

NFITC1

  • No life
  • *
  • Posts: 2906
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #97 on: 2009-06-09 18:53:29 »
A simple copy-paste function should only include the attack data though. The data you paste should not overwrite the ID. If you copy an attack to a blank, unused field (FFFFFFFFFFFFFFF...etc). Then the would be ID  FFFF anyway and not included in the AI. The user have to come up with the ID him/herself then assign it to the enemies and their AIs. The user must just make any similar IDs in the same scene.

The trouble with copying to all equal IDs is equal IDs can be different from each other in different scenes. An example: ID 0101h in scene 5 could be a fire-based attack physical attack, while the same ID, 0101h, in scene 6 could be a thunder-based magical attack.

EDIT: oh and there is no harm in copying the attack name of course  :-D

An attack copy will take the attack data, name, and index along with it. There's no reason not to. This is mostly to help keep straight enemies that exist in different scenes, but you want them to function the same.

Also, I'm not syncing ALL the attack IDs to ALL the attacks. Just one that the user selects. If you don't want to use it, fine, don't. But pretty much the same deal here. If you change one enemy's attack in one scene and that enemy exists in multiple scenes, just sync it so you don't have to remember all the changes you made before.

secondadvent

  • Insane poster
  • *
  • Posts: 287
  • Karma: 0
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #98 on: 2009-06-09 20:04:40 »
i don't know if you didn't think of this, or what, but this is how i now have the absorb/null element variable, spit into flags instead of just one variable:
Code: [Select]
4130|AbsorbFire
4131|AbsorbIce
4132|AbsorbLightning
4133|AbsorbEarth
4134|AbsorbPoison
4135|AbsorbGravity
4136|AbsorbWater
4137|AbsorbWind
4138|AbsorbHoly
4139|AbsorbRestorative
413A|AbsorbCut
413B|AbsorbHit
413C|AbsorbPunch
413D|AbsorbShoot
413E|AbsorbShout
413F|AbsorbHidden

42A0|NullFire
42A1|NullIce
42A2|NullLightning
42A3|NullEarth
42A4|NullPoison
42A5|NullGravity
42A6|NullWater
42A7|NullWind
42A8|NullHoly
42A9|NullRestorative
42AA|NullCut
42AB|NullHit
42AC|NullPunch
42AD|NullShoot
42AE|NullShout
42AF|NullHidden

addendum (elemental check could be shorter, but elemental resistance alone would be confusing, people may think that
it sets a resistance to the element, when it just checks for one):
4050|ElemResistCheckFire
4051|ElemResistCheckIce
4052|ElemResistCheckLightning
4053|ElemResistCheckEarth
4054|ElemResistCheckPoison
4055|ElemResistCheckGravity
4056|ElemResistCheckWater
4057|ElemResistCheckWind
4058|ElemResistCheckHoly
4059|ElemResistCheckRestorative
405A|ElemResistCheckCut
405B|ElemResistCheckHit
405C|ElemResistCheckPunch
405D|ElemResistCheckShoot
405E|ElemResistCheckShout
405F|ElemResistCheckHidden
having it like this both works, and makes it easier to edit the specific values instead of figuring out what hex value would turn on a specific resistance. i am looking for a halve/weak/etc. version for this in the ai, so i will see what i can find. these should be accurate too, i tested ice and cut, and they are in the same order as usual.

ok, a question, why do you have certain unknowns in the dat file as flags, or as dwords, how did you determine that they are indeed those types, or were you just guessing?

edit: the 4050-405f flags (you have it as elemental defense?, the check sephy uses iirc) are enabled when the character has some sort of elemental resistance (at least null, i will test others as well to see).

going to check the 4050-405f more real quick ok, as i thought, it works for absorption as well, after (if) i find ones for the other element types i will recheck the way the flags are set in regards to the resist check.

now, with sephy's checking for the earth element, the 96 should check to see if the value given is active in the mask given (in his case it checks against 08, the hex value for earth, though it should work the same i you put:
02   20a0 (or whichever)
00   4053 (earth resist check)
80
60   01
96

and this should push a true value onto the stack if the target is resistant to earth. i am saying this because your editor doesn't show anything in the disassembler about the 96's popped value in the next if statement. i will check in-game to see if my little method works to check resistance (but for ice, since i dont feel like editing the kernel constantly, and i already have steal :P), and get back with the results. if this works then 96 could be an opcode that could have some nice functionality, since checking for resistances would be great for enemies to have when attacking.
« Last Edit: 2009-06-09 20:44:50 by secondadvent »

NFITC1

  • No life
  • *
  • Posts: 2906
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #99 on: 2009-06-09 20:43:23 »
i don't know if you didn't think of this, or what, but this is how i now have the absorb/null element variable, spit into flags instead of just one variable:
Code: [Select]
4130|AbsorbFire
4131|AbsorbIce
4132|AbsorbLightning
4133|AbsorbEarth
4134|AbsorbPoison
4135|AbsorbGravity
4136|AbsorbWater
4137|AbsorbWind
4138|AbsorbHoly
4139|AbsorbRestorative
413A|AbsorbCut
413B|AbsorbHit
413C|AbsorbPunch
413D|AbsorbShoot
413E|AbsorbShout
413F|AbsorbHidden

42A0|NullFire
42A1|NullIce
42A2|NullLightning
42A3|NullEarth
42A4|NullPoison
42A5|NullGravity
42A6|NullWater
42A7|NullWind
42A8|NullHoly
42A9|NullRestorative
42AA|NullCut
42AB|NullHit
42AC|NullPunch
42AD|NullShoot
42AE|NullShout
42AF|NullHidden

addendum (elemental check could be shorter, but elemental resistance alone would be confusing, people may think that
it sets a resistance to the element, when it just checks for one):
4050|ElemResistCheckFire
4051|ElemResistCheckIce
4052|ElemResistCheckLightning
4053|ElemResistCheckEarth
4054|ElemResistCheckPoison
4055|ElemResistCheckGravity
4056|ElemResistCheckWater
4057|ElemResistCheckWind
4058|ElemResistCheckHoly
4059|ElemResistCheckRestorative
405A|ElemResistCheckCut
405B|ElemResistCheckHit
405C|ElemResistCheckPunch
405D|ElemResistCheckShoot
405E|ElemResistCheckShout
405F|ElemResistCheckHidden
having it like this both works, and makes it easier to edit the specific values instead of figuring out what hex value would turn on a specific resistance. i am looking for a halve/weak/etc. version for this in the ai, so i will see what i can find. these should be accurate too, i tested ice and cut, and they are in the same order as usual.

ok, a question, why do you have certain unknowns in the dat file as flags, or as dwords, how did you determine that they are indeed those types, or were you just guessing?

edit: the 4050-405f flags (you have it as elemental defense?, the check sephy uses iirc) are enabled when the character has some sort of elemental resistance (at least null, i will test others as well to see).

going to check the 4050-405f more real quick

Most of the sizes are guesses or just placeholders for later testing. Your first two groups are correct, but it seems that the third is incorrect. At least, according to Akari, 4058 is mostly untouched until the command 96 comes along and sets it based on the element it is given. Here's a snippet from the updated help file (not yet uploaded).

Quote
Code: [Select]
0006: 02 20A0 PSHA (20A0) Type (02)
0009: 60 08 PUSH (08) Type (01)
000B: 96 EDEF
000C: 12 2070 PUSH (2070) Type (12)
000F: 02 2070 PSHA (2070) Type (02)
0012: 01 4058 PSHA (4058) Type (01)
0015: 80 MASK
0016: 60 05 PUSH (05) Type (01)
0018: 42 GEQU
0019: 90 STRA

What it is doing is going through all the targets in the second pop and checking the elemental modifiers of the element reference in the first pop. In this case, this is element 08h which is Earth (because the third bit is active). Then for every target in the mask that has a modifier OTHER than three (which is normal damage) it puts that target into the script owner's target address (2070h). Then it stores whatever modifier it finds for that element in that targets' resistance data (4058h).
That explains the next part of the script. It checks all the targets in the target mask and sees if their greatest elemental modifier is greater than or equal to 5. So it detected a monster that either nullifies or heals from earth elemental damage. It then puts this information back into the target address (2070h) for further use.

Resist is technically anything with a modifier of greater than 3. This is halve, nullify, absorb, full-heal. So if there's flags for one of those modifiers, there's probably flags for all of them. That is to say, there isn't flags for any of them.