Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Kefka

Pages: 1 [2] 3 4 5 6 7 ... 9
26
General Discussion / Re: [FFVII-R] 03.2020 - New Trailer
« on: 2019-09-15 08:54:13 »
It's like what they did in FF12 - where no-one who valued their sanity actually used the "turn based mode".  It was impossible to like it.  Having optional modes for battles seldom, if ever, works. Why?  Because common sense alone should tell you the amount of work needed to pull that off properly is insurmountable.

Actually, I did just that on my first FF12 playthrough, lol. I didn't like that new idea of my party acting automatically without me doing anything in combat, so I decided to turn off gambits entirely and try to play it the oldschool-way. But... it was just like you said, a real chore. Enemies would always go much faster than my own party. Naturally, because selecting actions manually takes time, whereas AI-controlled entities (be it enemies or characters) act instantly the moment their ATB gauge is full. As a manual player, you would always end up losing valuable seconds for command input, causing your party members to get way fewer turns than the enemy. And why? Because the game's battle system and difficulty were tailored towards the gambit system, and the developers were expecting players to make use of it. If you chose not to, the entire balance would be ruined, as a manually controlled party would always end up getting only about half (or even less) as many turns as a gambit-controlled party, with direct consequences regarding difficulty. I can't even remember how often I got pummeled to death simply due to a lack of turns. Once I replayed the game using gambits the second time through, the difference was astounding! It was almost too easy now.

The problem with multiple modes for battle systems is, like you said, that any battle system will be naturally geared towards one mode, and then the difficulty balance would be way off when chosing the other. If geared towards AI-controlled mode, then manual battling will be too hard. If geared towards manual mode, then auto-battling would make everything am breeze. At least that's what it was like in FF12. And I'm afraid in FFVII Remake it'll be similar...

27
Releases / Re: [FF7PC/PSX] FFVII Lost Wing (1.1)
« on: 2019-07-12 08:54:01 »
There's a large amount of tools for modding FF7 available on this forum, and thankfully most of them are created in a very userfriendly way that even non-programmers can easily make use of them. For what you want to do, you should definitely get Hojo, ProudClod, WallMarket and Makou Reactor, all of which can be found in the forum's "Tools" section.

Wallmarket is for editing all sorts of stuff related to your own party, like properties of magic spells, equipment, materia, and items, and initial equipment and stat growth curves of your party members.

Hojo is for editing enemy stats like HP, MP, strength, magic, elemental and status resistances & weaknesses, items that can be stolen/dropped/morphed etc.

ProudClod is for editing enemy attacks and AI scripts, and opens up a sheer unlimited potential for designing your favorite battles, although editing AI definitely requires some learning until you'll get the hang of it (took me a couple years to understand most of it, lol). You can give enemies new attacks, have them attack multiple times in a row, have them perform counter-attacks etc.

Makou Reactor is the tool for editing the field files, and with it you can do A LOT. This is where you can decide the contents of treasure chests and Materia, or place entirely new ones in places you like, but it goes much farther than that. You can also edit NPC dialogue, create new NPCs, change the rewards of minigames (Fort Condor, Battle Arena etc.), which monster formations appear as random encounters in a field and at what probability, change the music that plays in a given field or in certain battles, or even do some event editing like creating entirely new cutscenes altogether! However, the downside is that Makou Reactor is perhaps the most difficult tool to master, and that will definitely take some time, so be patient.

Unfortunately there's currently nothing out there that allows you to edit stuff on the world map, as far as I know. As well-documented as FF7 may be, the world map still remains a "black box" for the most part, sadly.

Anyway, the aforementioned tools should get you started on what you want to do. Oh, and welcome to the forum, btw.

28
General Discussion / Re: [FFVII-R] 03.2020 - New Trailer
« on: 2019-06-25 16:08:42 »
By the way, what are your thoughts on this specific point from the interview?

Famitsu - Nomura Interview. - More accurate translation

  • Nomura-san explains that the shadow that appears at the end of the latest trailer is something that has been added for the Remake. They are called "The Guardians of Destiny" (Unmei no Bannin 運命の番人, video) , and it’s a mysterious existence that appears in front of the party. He hopes that those who played the original game will enjoy these new elements.

"Guardians of Destiny"... if they're indeed what their name implies, then that would be a HUGE alteration to the entire FFVII universe, and not one for the better, I fear. So now there are some new higher beings/deities that control the characters' fate? Making sure they take a certain path in life? Like the Occuria from FFXII, or what? I must say, I'm honestly VERY worried about this...

29
https://www.dualshockers.com/final-fantasy-vii-remake-materia/amp/

Equipping system will likely remain unchanged, but Materia effects will change to accommodate the different combat system.

What Materia do you see needing a change? For me, E. Skill and Manipulate come to mind right away. I can't see that mechanic working in this combat system.

I can't say that I'm surprised, given the entirely different combat mechanics in the remake. It's only logical that certain materia effects cannot be tranferred 1:1 from the original.

I'd say most Magic materia can stay as they are, perhaps with some slight tweaks (maybe introducing a sort of 'casting time', like FFIV had, for example?).

The basic summon mechanic could be left intact as well, or they could make the summons appear as temporary additional combatants like in FFX or XII. My personal preference would be the classical one-time summons, but who knows what they might come up with.

Materia that definitely won't work in an action combat system are all those that relate to physical attacks, e.g. Double Cut (judging by the trailers, everyone and their mom already seems to have 4xCut or more as an innate ability, lol), Slash-All, Death Blow, Added Cut, Counterattack, Counter, Magic Counter. How will counterattacks be handled in an action-RPG anyway? I imagine the entire mechanic needs to undergo a huge change to still function properly.

Since there is no longer a change from 'field screen' to 'battle screen', Materia like Pre-emptive or Sneak Attack will also be among those that'll likely be either dramatically altered or scrapped altogether.

I can see them keeping All, Elemental and Added Effect, as those only define your targeting and elemental/status properties, so that shouldn't be a problem. All could likely be altered a little to encompass a certain area or 'effective range' for the spell, and that area could get bigger by leveling the materia.

Stat raising materia should be fine as well. I could even imagine them keeping Enemy Lure or Enemy Away, making them work by having the enemies move in on you/away from you as you go around exploring.

30
Ah, ok, then it makes some sense. Never played the retranslation, so I couldn't know. Or maybe they just didn't fix this in the later german translations?

31
It might also be possible that the sword is just an illusion created by Jenova (she's VERY good at illusion/halluzination stuff, as we know) to entice the party - especially Cloud - into following her. If I recall that scene correctly, no one ever touched that sword, so it's possible that there really is no sword there after all.

Anyway I still agree that it's rather poor writing regardless.

By the way, I've got a much bigger (or more obvious) plothole and didn't feel like opening a new thread just for that, so here goes:

At the end of Reactor No. 5, why does Tifa ask if Airbuster is a soldier? She met Zack and Sephiroth before, and at this point in the game everyone still believes Cloud to be a soldier too, so she knows that soldiers are human beings. That question makes zero sense. What were they thinking when they made this up?

32
General Discussion / Re: [FFVII-R] 03.2020 - New Trailer
« on: 2019-06-24 17:54:06 »
My thoughts on the remake so far:

Graphics and presentation overall are top-notch, but that was to be expected anyway, seeing as those are the points that SE has been focusing on in all of their main FF games for the last 10 or so years while neglecting more important things like gameplay and story (cough*FFXIII*cough). The character design doesn't look half-bad, save for a few design choices that really left me scratching my head. I understand Tifa's bra, but why would Barret need sun glasses in a city where you can't even see the sky most of the time (the slums being below the plate)?

Anyway, on to the more important points:

The battle system: Personally I would've preferred the classic ATB system, so when they first announced an action-oriented combat system for the remake I felt quite disappointed. I'm not saying that action-based systems are bad in general, but they're simply not my style. Their recent announcement that you should be able to choose between action mode or turn-based mode does make me feel a LITTLE better, at least, but as others have said already, it'll all depend on how they implement that. I can hardly imagine having two different combat systems in one and the same game, so I'll remain sceptical about this one... unfortunately it's impossible to judge the battle system just from watching trailers, as you can't see which/how many buttons the player needs to press in order to perform the actions on screen.

As for the episodic release, that was perhaps the biggest bummer to me when I first heard about it, leaving me with the same questions that so many others have asked already: how are they going to handle level-ups? Or the World Map? Will there even be one? I cannot imagine FFVII without one, yet at the same time, I don't see SE coming up with a world map again, seeing as they've scrapped that idea even for FFXV where such a thing was originally planned. How will data transfer from one episode to the next be handled (not just stats, materia and items, but also treasure chests openend, sidequest completed, dialogue choices i.e. love points for the Gold Saucer date)? Will it be possible to revisit locations from earlier episodes? They very much need to be, seeing as most of discs 2 and 3 in the original consisted of revisiting former towns and dungeons again. But that would mean that all locations have to be present on every blue-ray, and if that's truly the case the very choice of making the remake episodic in the first place becomes... questionable...

Finally, about the 'believability' discussion: I can understand what DLPB means. On older consoles, battles in RPGs were meant to be merely symbolic and not to be taken seriously. There has always been a clear differentiation of what a character can do in a battle, and what he's capable of in 'field mode'. Every fictional world, despite being a fantasy universe only, still has to follow its own inherent rules to maintain credibility within its story. The characters in FFVII were always supposed to represent regular people like you and me, and while their physical capabilities may exceed those of others due to some of them being martial artists and/or having undergone military training, it never went out of control in the original game.

That changed with the Compilation, starting with Advent children: I've only watched AC once, but I still somewhat remember that battle against Bahamut in Midgar. The one that ends with Cloud jumping/getting thrown endlessly high up in the air (you can see the city of Midgar waaaayy down below), slicing Bahamut, and then dropping back to earth and landing on his feet... unhurt! And those are the kind of scenes that rob the universe and its characters of any credibility, for no one can seriously buy that Cloud would ever be able to pull something like that off. It goes against the very nature of the FFVII universe. Or did you never ask yourself: if the party characters were indeed capable of jumping that high, why did they ever bother to climb the floors of the Shinra headquarter by foot? According to AC, they should've been able to just jump from the building's entrance to the top floor and be done with it.

And that's the entire point of the believability discussion. The original game had established a clear set of 'rules' for the FFVII universe (most of which follow the same rules as the real world as far as human physical capabilities go), and AC started to violate those. The characters of the original weren't any godlike superhumans, as they've never displayed any such skills outside of battles. They couldn't jump up to the high voltage pole in Junon on their own, they needed a dolphin to help them. They couldn't just smash through walls in buildings, they had to take the doors. They were meant to be normal, albeit physically well-trained people. Yet AC started to turn them into Dragonball characters, something that simply doesn't fit into this game, and quite frankly has no place in it.

The bottom line is: Anything that happens in battles is there merely for the player's entertainment and has no bearing on the games' respective universe, save for scripted battles that are specifically designed for story purposes (e.g. Tellah getting killed by Golbez, Galuf getting killed by Exdeath, General Leo getting killed by Kefka etc.).

33
Quote
But I don't know why, for some reason it keeps start the music battle... it's weird! :| I've also replaced the p0data2 and the AssemblyCSharp..so I really don't know! I've checked once, twice..I can check again..maybe I'm missing something but...

Ah, I knew I forgot something! A few pages back I was asking tirlititi about changing the music used in certain battle formations, and this was his response:

No, it's determined in a couple of .txt files of the "resources.assets" archive. The files are called "BtlEncountBGMMetaData.txt" (for battles on the field) and "WldBtlEncountBGMMetaData.txt" (for battles on the map).

The files present like this :
Code: [Select]
{
  "ID of Field": {
    "ID of Battle in the Field": "ID of Battle Music",
    ...
  },
  ...
}
Battles have the music ID "0" (for normal encounters), "35" (for bosses) and "111" (for Hunter's Chance). Some battles are not registered in these files, when they don't stop the music played in the field (the "Don't Stop Music" battle flag is also checked for them in the "Enemy" panel).

Now what you have to do is open Hades Workshop, but instead of opening the FF9_Launcher the normal way, go to Tools -> Unity Assets Viewer, and open the Launcher there. Then go to Archive -> Shared Assets -> resources. Now scroll until you find the "BtlEncountBGMMetaData.txt" and export it (a text file will be generated in the HadesWorkshopAssets folder). Open this text file, the format is the one described by tirlititi. The list of field IDs is the same as in Hades Workshop when the fields are NOT sorted. In our case, Pandemonium laboratory is field ID 2705. There you will see that battle formation 896 is listed with a "0", which means normal battle theme. You'll have to delete the "896": "0" entry from this field, save, and then import this text file back into the Unity Assets Viewer by right-clicking the "BtlEncountBGMMetaData.txt" and chosing 'Import Selection'.

That should do the trick. Keep in mind that this will keep the field music playing at any time battle formation 896 is triggered, so maybe remove it as a random encounter from that location.

34
General Discussion / Re: FF7 Remake Teaser
« on: 2019-05-12 18:59:07 »
Though, it would be funny to replace the models with the original chibi models. Probably the best mod ever for the remake.

Lol, that would be super funny indeed! Imagine the faces of certain SE staff if such a mod actually manages to become popular, lol! Unlikely, I know, but a hilarious thought nonetheless.

About the character model looks: I've never cared about the details of those super-realistic character models in the various compilation games, but I remember various design choices by Square Enix that just left me shaking my head. When I first saw the Advent Children Sephiroth, I wondered for a moment if that was really him, looking so very different from his in-game counterpart (same with some other AC characters as well). Barret's new sun glasses were another... awkward choice to me, to say the least. Didn't the original Barret look baddass enough already? So why was this necessary? It doesn't add anything whatsoever to his character, and only serves to enhance that pseudo-coolness-factor that Square Enix seems to be so fond of.

And now this new Jessie... makeover? I'm completely with mr_nygren on this one, this woman looks like a completely different person now. If I were to just look at that picture of her, and without knowledge of the rest of the trailer, I'd never be able to identify her as Jessie...

35
General Discussion / Re: FF7 Remake Teaser
« on: 2019-05-11 10:25:22 »
There eventually being mods available for the remake doesn't make me any happier, regardless of how easy or difficult it will be to mod this remake. The thing is, in order to apply mods to a certain game, you're gonna have to BUY said game first. And as long as Square-Enix is moving in their current direction they're not gonna get any money from me. I will keep my eye on this remake thingy and maybe watch a playthrough on youtube or whatever, but if the final game turns out to be the way many players fear at the moment, then I'm certainly not gonna support them in any way, shape or form.

36
Quote
Guys, I want to add a new battle in the "You're not alone Event" but I don't know how to start a battle without switch to field-battle music..how can I solve? Thanks for the help

What a coincidence, I did exactly the same for my mod last year! I've added a Malboro battle in the first screen that you're gonna fight with Vivi and Eiko in the party (always found it kinda sad/wierd that those two were left out of this string of battles in the vanilla game).

Here's an example from me, from the field 'Pandemonium, Laboratory', in the Main_Loop script. At the beginning of the script, right after the 'General_FieldEntrance = 65535', you have to add this code to add the party members that you want to have for the upcoming battle:

Quote
        set Setting_PartyReserve = 255
        SetPartyReserve( Setting_PartyReserve )
        RemoveParty( 0 )
        RemoveParty( 1 )
        RemoveParty( 2 )
        RemoveParty( 3 )
        RemoveParty( 4 )
        RemoveParty( 5 )
        RemoveParty( 9 )
        RemoveParty( 6 )
        RemoveParty( 10 )
        RemoveParty( 7 )
        RemoveParty( 11 )
        RemoveParty( 8 )
        set VAR_GlobBool_147 = AddParty(1)
        set VAR_GlobBool_147 = AddParty(0)
        set VAR_GlobBool_147 = AddParty(6)
        set VAR_GlobBool_147 = AddParty(65535)

You can simply copy/paste this piece of code from one of the other Pandemonium fields of the 'You're not alone' sequence and just change the 'set VAR_GlobBool_147 = AddParty()' to any party members you like, those in my example are Zidane (0), Vivi (1) and Eiko (6), as I said.

Next, the fight itself has to be added in the script of the respective field file at an appropriate point. In my case, it's also in the Main_Loop function:

Quote
RunAnimationEx( 7, 910 )
        Wait( 8 )
        WindowSyncEx( 7, 0, 128, 249 )
        Wait( 60 )
        MoveCamera( 160, 172, 60, 0 )
        Wait( 70 )
        Battle( 0, 897 )

        Wait( 30 )
        RunScript( 2, 12, 28 )
        Wait( 20 )
        WindowSyncEx( 12, 0, 128, 250 )
        RunScript( 2, 7, 28 )
        RunScript( 2, 6, 29 )
        MoveCamera( 160, 272, 100, 0 )

The two bold lines were added by me, in this case the battle triggers at the point after Vivi says "Oh, come on!", and Zidane takes a few steps to the south, and before Eiko says: "There he goes, being the tough guy... Look, Zidane... It's not just about you."

Lastly, the music and victory pose can be checked with the flags in the enemy formation that you want. Just check 'Don't stop music', 'No Victory animations' and 'Can't flee'.

Aaaaand... that should just about be it, if I didn't forget anything.

37
General Discussion / Re: FF7 Remake Teaser
« on: 2019-05-10 12:59:23 »
While it may be true that the classic turn-based battle systems of old-school RPGs were the result of technical limitations, it's also true (at least to me) that those systems made battles a lot more tactical than those modern "button mash" battle systems. In older RPGs, be they ATB-based or not, I had to think carefully about most of my moves, while in games from FFXII and onwards, I honestly don't even see some of my own moves anymore. When everybody, friend and foe alike, all perform their actions simultaneously, the entire screen just becomes an un-overseeable mess, and you can't really follow what's actually going on anymore. This is augmented by the fact that you don't (or worse, can't) enter your own party members' commands anymore. I've had a lot of battles in FFXIII that I won without even realizing it until the victory screen popped up. In older games, defeating a boss or winning a hard battle always gave me a sense of satisfaction, while in FFXII or FFXIII, I was mostly left wondering: just who defeated these enemies now? Was that really me? Somehow it didn't feel that way...

And so I whole-heartedly agree with paladin181 and DLPB: the technical possibilites may have become better over the years, yet somehow Square-Enix didn't manage to put them to good use, imho. Just because they can implement a very fast-paced, hectic battle system doesn't mean that that's necessarily the best approach for an RPG.

I'm also worried about what Covarr said. It really looks like you get the flower automatically, and if that's indeed the case, they are likely to have abandonded other dialogue choices that they deemed "unnecessary" as well... which saddens me, as this is yet another interactive gameplay element that goes down the drain, pushing the game further into the "movie-like" direction that FFXIII took...

38
Releases / Re: [FF8PC - Steam] New Threat Mod (v0.3)
« on: 2019-05-09 21:37:47 »
You're right, Doomtrain can indeed do that! For some reason I thought the code for limits would be in the exe, it never ocurred to me that it could be in the kernel. Yes, Doomtrain works with the german version, and I've been using it for a while already actually, but somehow it seems I never bothered with the last 'Miscellaneous' tab. Wow, I feel stupid now, lol. Anyway thanks, I'll tweak the various limit values a little bit and see how I like the results.

39
Another thing: does anybody know how to make it so that the Beatrix fights have no time/turn limit, so that you can only end them by depleting her HP and triggering her final move?

The turn count is a part of Beatrix' AI script. In her ATB script, at the beginning, you have this piece of code:

Code: [Select]
   
if ( VAR_LocUInt8_32 < 10 ) {
        set VAR_LocUInt8_32++
    } else {
        set VAR_LocUInt8_31 = 1
    }

The variable 'VAR_LocUInt8_32' represents the number of turns that need to pass for Beatrix to use her finishing move. It increases by 1 each turn, and once it reaches 10 it activates a different variable 'VAR_LocUInt8_31', the one responsible for telling Beatrix to use Stock Break / Climhazzard next. Now you can either change the value of '<10' that the variable  'VAR_LocUInt8_32' is comparing to to any number of turns you like, OR simply delete this portion of her script altogether. That way, the HP condition remains the only condition triggering her final move.

As for the shop problem, no idea, I've added items to shops as well and it seemed to work as intended. But then I didn't pay attention to the total number of items in a shop, so I don't know if it exceeded a certain number or not.

40
Awesome, thanks for the answer! Ok, so the "88 3D 48 00" is the pointer referring to the offset of the english exe, so I'll have to change it accordingly to whatever the offset in the german exe is. Thanks a ton, will try it as soon as I reach that point in the game where Angel Wing becomes available.

41
here is a patch that should do the trick:
Code: [Select]
0x483D67 - does the lookup
E8 B4 B2 00 00 25 FF 00 00 00 31 DB 31 C9 31 D2 8A 9A 88 3D 48 00 01 D9 42 39 C1 7E F3 B3 40 EB 70

0x483D88 - spell table
00 00 0B 00 00 0B 00 00 0A 06
00 06 06 30 30 10 20 20 12 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 06 00 00 00 06 00
00 00 00 00 00 00

0x483DC0 - tests for angel wing and skips inventory check if true
05 82 F0 CF 01 8D 2C 52 8D 2C AA C1 E5 04 F6 85 1B 7B D2 01 02 0f 85 65 9A 00 00 E9 27 9A 00 00

0x48D802 - jumps to angel wing test from start of inventory check
E9 B9 65 FF FF

not 100% sure I got the table right but give it a shot.

Great work JWP, I love this patch and would like to use it, too. But I'm using the german ff8.exe, and the offsets are a bit different there, so to make sure I'm inserting the patch in the correct places could you give me the original byte sequence that needs to be overwritten by your patch? Thanks.

42
Releases / Re: [FF8PC - Steam] New Threat Mod (v0.3)
« on: 2019-05-06 15:24:19 »
Thanks for the quick reply, and for sharing your documentation.

The Limit breaks are unfortunately one of the most difficult aspects of the battle system to rebalance. I actually like the idea of limited uses per battle as well, it would also restrict Aura over-abusing. I remember that FFVI had a similar mechanic with its desperation attacks, but that one was a bit too restrictive (only once per battle, only after a certain amount of time has passed, and only with less than 1/16th maxHP). Kinda like two extremes without a real middle path.

Another possibility might be tweaking the bonus numbers for dead party members, lost HP and negative statuses, or even the one for Aura. Do you by chance also know where to find those? Or could you give me a byte sequence to search for, since the offsets in the german exe are somewhat different from the english exe, as I've just realized.

43
FF8 Tools / Re: [PC] mwepon.bin editor - JunkShop (1.0d)
« on: 2019-05-06 06:59:36 »
Question, why does the max price seem to be limited to 2550 Gil? Is there a way to get rid of this limitation? I just find it strange that you can get even the best weapons in the game this cheap while other items like certain magazines cost between 30.000 and 50.000 Gil. Heck, even a simple Fuel is more expensive than the Lionheart, which seems very awkward to me...

44
Releases / Re: [FF8PC - Steam] New Threat Mod (v0.3)
« on: 2019-05-06 06:46:33 »
Hey Sega Chief, it's great to finally see some more FF8 mods emerging, but too bad that they don't work with the German version. However, there's one change in your mod that seems brilliant to me that Id like to also implement in my own mod, and that is this:

Quote
Limits have had the RNG removed from their check, meaning that milling turns will no longer have an effect. If a Limit does not proc when the character's ATB gauge fills, it means they cannot get a Limit until the battle conditions change (HP is lost, status is inflicted). This works both ways, and means that if a Limit does proc it will be available even if you swap control to another character and back again.

This has probably got to be one of if not the most important feature to prevent endless Limit spamming, so I'd like to ask you how exactly you did that? I'm guessing it involves hex-editing the exe. I'm not really a programmer myself, so if you don't mind could you post the necessary changes to implement this? Thanks in advance.

45
@Kefka: I don't know if you did it already, but you can add a "Stona-kill" like this:
Code: [Select]
case 12:
    if (FF9StateSystem.Battle.FF9Battle.add_status[(int)cALC_VAR.cmd.aa.AddNo]==2147483649u && btl_util.CheckEnemyCategory(target, CATEGORY_STONE))
    {
        if (btl_calc.CalcSub_12A(cALC_VAR)) // CheckPetrifyDeathMiss
        {
            btl_calc.SetEnforceHP0(target);
            UIManager.Battle.SetBattleFollowMessage(25, new object[0]); // "Became too soft to live."
        }
    } else {
        btl_calc.CalcSub_302(cALC_VAR); // DoRemoveSpellStatus
    }
With this, spells that cure exactly the statuses Petrify and Gradual Petrify will also kill stone enemies. Esuna will not.

For the duration of statuses, it's in the method "btl_stat::AlterStatus". Near the end of the method, you have this block:
Code: [Select]
if ((status & 4026466304u) != 0u)
{
short num6;
if ((status & 2601713664u) != 0u)
{
num6 = (short)(60 - btl.elem.wpr << 3);
}
else if ((status & 619446272u) != 0u)
{
num6 = (short)(btl.elem.wpr << 3);
}
else
{
num6 = (short)(60 - btl.elem.wpr << 2);
}
btl.stat.cnt.conti[(int)((UIntPtr)(num - 16u))] = (short)(status_data[(int)((UIntPtr)num)].conti_cnt * (ushort)num6);
}
That's the formulae to change for the duration. The first formula is for negative statuses, the second is for good ones and the last is the default (I think it's used for Berserk only). You can of course split the internal "if" blocks to have a formula specific to each status.

Congrats for modifying the damage formula of these other spells :)

Thanks for the reply, tirlititi! Your suggestion for the Stona spell works like a charm! I didn't know that it was possible to add checks for which statuses are cured exactly, so I hesitated about altering the Cure Status formula for fear of screwing up other status curing spells like Esuna or Antidote.

But concerning the status duration formulas, I still got a few questions:

1) Why does Berserk have a separate duration formula? For all I know, Berserk is a permanent status, isn't it?

2) About the last line from that code you posted:

Code: [Select]
btl.stat.cnt.conti[(int)((UIntPtr)(num - 16u))] = (short)(status_data[(int)((UIntPtr)num)].conti_cnt * (ushort)num6);
At first I wasn't sure how to read this exactly, but then I found an older post from you from last year when we were first talking about this topic (it was on page 40 of this thread). There you posted the following (back then we didn't have DnSpy so I tried to do it via Hades Workshop's Cil code instead):

Quote
However, for the durations of the statuses, they are in 2 spots and it is not possible to edit either of them :/
- In "btl_stat::AlterStatus", a page before the end, there are 3 similar formulas "Duration = (60 - spirit) << 3" (for bad statuses and jump), "Duration = spirit << 3" for good ones and "Duration = spirit << 2" by default (it doesn't seem to be used). You can't edit this method because it's too big and CIL editing tends to bug with big methods.
- In FF9BattleDB (.ctor), there is the setup of "STAT_DATA", a class for status informations, including a multiplier used after the formulas I gave above. You can't modify the method because it's too big and anyway it is one of the few methods that are specially handled by HW and modified by other means.

I've looked into this FF9BattleDB::status_data with DnSpy, and there's a list of 32 statuses. Unfortunately they aren't labeled, so I don't know for sure which order they are in, but I noticed that the third byte is 0 for the first 16 statuses, and then has a value for the following 16 statuses. Not sure about the other bytes, but I'm guessing that this third byte is that multiplier you were referring to, and that would mean that the first 16 statuses in that list are the permanent status effects and the following 16 statuses are the temporary ones, right?

So the complete formula for calculating status duration should be:

Status-specific multiplier * that "num6" value from above (the one that uses the Spirit stat)

And that is the number of frames (or "ticks") that have to pass before the status wears off.

Are my assumptions correct so far? I've already playtested a bit and successfully increased the duration of both positive and negative statuses, now it's only a matter of finding a fair balance for each.

3) Onto my last question: it bugged me a bit when I re-read in your older post that Jump was also a "status effect", that might be a bit annoying. I wanted to increase the usefulness of spells like Protect and Shell, but I don't want jumping to take forever so I'd like to lower the multiplier of that one. You don't happen to know which of these statuses in the list in FF9BattleDB::status_data refers to the Jump status, do you? I guess I could find out through trial and error, though. Anyway, many thanks for guiding me so far, you've been a great help!

46
Hey tirlititi,

I just realised I haven't bothered you with detailed questions for a while, so here I go again, lol!

Anyway, I've been playing around with DnSpy again and I tried altering the damage calculation formulas for Frog Drop, Thievery, and Dragon Crest to also factor in the target's defense. Here's my code:

Code: [Select]
case 66:
{
CALC_VAR calc_VAR37 = calc_VAR;
calc_VAR37.tg_flags |= 1;
calc_VAR.df_pow = (short)target.defence.p_def;
if (ff.frog_no - calc_VAR.df_pow / 2 > 0)
{
if (calc_VAR.at_num < 1)
{
calc_VAR.at_num = 1;
}
int num22;
if (ff.frog_no != 0)
{

if ((num22 = (short)(caster.level * (ff.frog_no - calc_VAR.df_pow / 2))) > 9999)
{
num22 = 9999;
}
else
{
num22 = (short)(caster.level * (ff.frog_no - calc_VAR.df_pow / 2));
}
}
else
{
num22 = 1;
}
calc_VAR.tg_hp = (short)num22;
}
break;
}
case 67:
{
CALC_VAR calc_VAR38 = calc_VAR;
calc_VAR38.tg_flags |= 1;
calc_VAR.df_pow = (short)target.defence.p_def;
if (ff.steal_no - calc_VAR.df_pow > 0)
{
if (calc_VAR.at_num < 1)
{
calc_VAR.at_num = 1;
}
int num23;
if ((num23 = (ff.steal_no - calc_VAR.df_pow) * (short)caster.elem.dex / 2) > 9999)
{
num23 = 9999;
}
else
{
num23 = (short)((ff.steal_no - calc_VAR.df_pow) * (short)caster.elem.dex / 2);
}
calc_VAR.tg_hp = (short)num23;
}
break;
}
case 68:
{
CALC_VAR calc_VAR39 = calc_VAR;
calc_VAR39.tg_flags |= 1;
calc_VAR.df_pow = (short)target.defence.p_def;
if (ff.dragon_no - calc_VAR.df_pow > 0)
{
if (calc_VAR.at_num < 1)
{
calc_VAR.at_num = 1;
}
int num24;
if ((num24 = (ff.dragon_no - calc_VAR.df_pow) * ff.dragon_no) > 9999)
{
num24 = 9999;
}
else
{
num24 = (short)((ff.dragon_no - calc_VAR.df_pow) * ff.dragon_no);
}
calc_VAR.tg_hp = (short)num24;
}
break;

It's working fine so far except for one thing: When the enemy's defense is higher than the Number of steals/dragons/frogs, I experience some sort of 'damage underflow bug' and start dealing really wierd 10-digit damage numbers (or was it 12 digits? Don't remember.). Do you by chance know how to avoid this? If the enemy's defense is higher, I'd like the damage to be 0. I've copied the basic outline of the script from other attacks that deal 0 damage when the enemy's defense is too high, like Lancer, Drain or Osmose, and then merely adjusted the parameters accordingly to match my formulas. But I must be missing something important.

Edit: Nevermind, I figured it out! The code I posted turned out to be fine after all, but in my file I had an older version of the code, probably due to not saving properly last time.

47
Hello guys, I've got some more questions about stuff I'd like to edit in the source code with DnSpy and hope you can help me with that:

1) The item Soft instantly kills stone-type enemies, but the spell Stona does not. I always found that wierd. According to the BtlCalc file the soft item checks for the monster's category(case 62). Is there a way to make the Stona spell also kill stone enemies? I've tried changing the spell's formula from "Cure status" to "item:soft" in Hades Workshop, but that didn't help.

2) A loooong time ago, we were talking about altering the duration time of status effects, as they expire way to soon, as well as changing the poison/regen intervals (to make the combination of Auto-Haste and Auto-Regen less overpowered). Back then we didn't have a way to do anything about it, but what about now with DnSpy? Does anybody happen to know where this data is stored? I've looked through the Assembly_CSharp.dll and found some files that look promising according to their names, but I'm not sure as I can't read them properly. Inside the "btl_stat" folder, there are several entries related to status effects, named "CheckStatusLoop", or "RemoveStatuses" and such. I suppose there isn't a "readable" version of these somewhere around like there is for the BtlCalc file?

48
It's true, you can check for yourself with WallMarket. However, don't confuse magic spell's elements with a Materia's element, these are two different things. The Materia's element is only relevant for combination with the "Element" Materia to determine elemental attack or defense for the equipped party member. It has nothing to do with the magic spells that the Materia in question possesses.

49
@Kefka: So, you are definitely doing something wrong (or maybe there was a bug in a previous version of HW and I don't remember fixing it and you are still using that old version of HW).

In your .hws file, there was no script update at all. There was only an unconfigured "Abadon + Amdusias" battle and 4 unconfigured "Hecteyes + Ring Leader" battles. When I say "unconfigured", it means that there was no entry added for the new enemy and no change in the "Main_Init" function. The enemy's stats and attacks were properly copied to the new battle and the group was properly setup. However, there was no proper script for him and it lacked its battle animations for some reason.

So you need:
- To do the steps 6) and 7) described there. Maybe you did on your end but shared an old .hws because none of these steps were put in the file you provided (and it cannot just be a bug with the entry: even your "Main_Init" function was not modified).
- To add the animations required to cast spells. The Ring Leader only uses 3 animations: select him, click on "Edit Resources", then "Add Animation" x3 and change them to "Cast Init", "Cast Loop" and "Cast End". Alternatively, changing the enemy's model ID to something else and switching it back will reset the resources (and thus automatically add these 3 animations).

After this fix, it was all good on my end. However, the other battles were you added more enemies (you have battles with 4 Ring Leaders) are not working correctly because you didn't add any "InitObject" line in those battles' script either.

Sorry for the late reply, but it turned out that my hws file had somehow become corrupted, forcing me to redo most of my work from scratch. I certainly did follow all of the steps in your aformentioned post, and those battles with the 4 Ring Leaers have always worked flawlessly for me. Don't know at which point my hws file got screwed up, but after bringing my new one up to date again I took your advice for updating the animations by switching the enemy model to something else and back again. Along with a few tweaks to the AI, this seemed to do the trick, and now it works as it should. Anyway thanks again for your help.

50
Great, thanks a lot for your help! I've uploaded my hws file to Drop Box here:

https://www.dropbox.com/s/dbewj4ygzf4k67o/FF9%20Steam%20Enemies.hws?dl=0

The enemy in question is Ring Leader which I've packed into the same battle along Hecteyes in Terra.

Also, I've tried your loop function and the display of a battle message works fine. So I wonder why the enemy doesn't act even though its ATB bar apparently works correctly. Hmm...

Pages: 1 [2] 3 4 5 6 7 ... 9