FF6 Hacking
FF6 Expansion Editor (FF6ExpED) - Printable Version

+- FF6 Hacking (https://www.ff6hacking.com/forums)
+-- Forum: Discussion Forums (https://www.ff6hacking.com/forums/forum-5.html)
+--- Forum: Magitek Research Facility (https://www.ff6hacking.com/forums/forum-9.html)
+--- Thread: FF6 Expansion Editor (FF6ExpED) (/thread-3173.html)

Pages: 1 2 3


RE: FF6 Expansion Editor (FF6ExpED) - seibaby - 04-13-2016

Wow, this is really neat. Goes a long way to make Steal more useful because you can give Steal a higher base success rate, add more items, and simply give the better items a lower chance of being Stolen. So you get more out of it, overall, even if it's just useless vendor loot. So Steal can have another purpose (increasing your wealth). Smile

By the way, Madsiur, as long as you're poking about in the Steal code, perhaps you can modify the way the Sneak Ring works. In vanilla, it doubles the StealValue.
Code:
StealValue = (Locke's Level + 50 - Enemy Level)


I always thought that was a silly way of doing it, because if a monster is 50 levels higher than Locke (as often is the case in an LLG), then StealValue becomes 0 and doubling it is useless. It would be much better if Sneak Ring doubled the value before subtracting the enemy's level, ie. StealValue becomes:
Code:
StealValue = (Locke's level * 2 + 100 - Enemy's level)

I'll likely get around to doing it myself someday. But I'm making the suggestion here so you can plan ahead and incorporate such a mod into your editor (if you so wish).


RE: FF6 Expansion Editor (FF6ExpED) - madsiur - 04-13-2016

(04-13-2016, 02:16 PM)seibaby Wrote:
Code:
StealValue = (Locke's level * 2 + 100 - Enemy's level)

I'll likely get around to doing it myself someday. But I'm making the suggestion here so you can plan ahead and incorporate such a mod into your editor (if you so wish).

That does look like a nice alternate formula. It's something I can make optional with a simple checkbox in the config menu. Same with steal formula, if anyone has a formula replacement that make sense, I can include it as optional.


RE: FF6 Expansion Editor (FF6ExpED) - seibaby - 04-14-2016

(04-13-2016, 10:42 PM)Madsiur Wrote: That does look like a nice alternate formula. It's something I can make optional with a simple checkbox in the config menu.

I just noticed that I made a mistake with that formula. It should be:
Code:
(Without Sneak Ring)
StealValue = (Locke's level + 50 - Enemy's level) (as in vanilla)
(With Sneak Ring
StealValue = (Locke's level * 2 + 100 - Enemy's level * 2)
Otherwise the Sneak Ring gets an unintended boost. The intended purpose of the Sneak Ring is to double the Steal chance; my amendment is only proposing to fix the formula so that the Sneak Ring doesn't become useless before taking it's own effect into account, as that can arguably be called a bug.

I would argue that the Sneak Ring does need a boost, but that's a discussion that goes beyond fixing bugs and into modification territory. Which brings us to:
(04-13-2016, 10:42 PM)Madsiur Wrote: [...]if anyone has a formula replacement that make sense, I can include it as optional.

One minor modification I'd like to see is to cap StealValue at a minimum of 1, so that there is always at least a chance of Stealing (Sneak Ring or not).

Otherwise, I'm kind of a fan of what FFXII did, and that is simply to do away with a Steal formula altogether. It just checks the probabilities for each slot (there are three; 55%, 10% and 3% without Thief's Cuffs, 80%, 30%, and 6% with them) when a Steal attempt is made. If nothing is stolen, the attempt is unsuccessful and you can try again.

The only thing I'd change with FFXII's approach is to allow you to try indefinitely to get all the items, but that depends on what your model is supposed to simulate. Are all mobs always carrying rare items, and it's just really difficult to get ahold of it by pickpocketing? Or are only a small percentage of enemies you face carrying rare items? I'm leaning towards the latter idea, except in the case of rare steals on bosses because bosses are unique while there's an endless supply of mobs. It'd be nice to have a flag for enemies that allows multiple successful steal attempts.


RE: FF6 Expansion Editor (FF6ExpED) - madsiur - 04-14-2016

(04-14-2016, 07:25 AM)seibaby Wrote: Otherwise, I'm kind of a fan of what FFXII did, and that is simply to do away with a Steal formula altogether. It just checks the probabilities for each slot (there are three; 55%, 10% and 3% without Thief's Cuffs, 80%, 30%, and 6% with them) when a Steal attempt is made. If nothing is stolen, the attempt is unsuccessful and you can try again.

I thought about getting rid of the steal formula (optionally). So basically stolen items would work like drops if the hacker wants. As you said I like to keep 1 stolen item per monster, I like rare steal/drops actually being rare.


RE: FF6 Expansion Editor (FF6ExpED) - seibaby - 04-14-2016

FFX does allow for multiple steals; each Steal slot is checked independently. You can steal between one or three items in one go, but you only get the one successful attempt.

Ok, I'm retarded.
Code:
(Attacker Level + 50 - Target Level) * 2
and
(Attacker Level * 2 + 100 - Target Level * 2)
are literally exactly the same and has exactly the same shortcoming.

I guess what I was trying to do was find a formula that effectively doubles the range of level difference where you still have a chance to Steal, while also staying close to an overall doubled Steal chance. Back to the drawing board for me.

In the meantime, my first suggestion (Attacker's Level * 2 + 100 - Target's Level) is the best I can come up with, since it allows Stealing at any relative level. Although it doesn't just double the Steal chance, it pretty much guarantees a Steal unless the level difference is more than 50.

Edit: D'oh. I guess what I'd like Sneak Ring to do is to simply give the Attacker 50 extra levels for the purpose of calculating Steal success. So pretty much just this:
Code:
StealValue = (Attacker Level + 100 - Target Level)



RE: FF6 Expansion Editor (FF6ExpED) - SSJ Rick - 04-14-2016

Wow this is just awesome madsiur great work


RE: FF6 Expansion Editor (FF6ExpED) - madsiur - 04-14-2016

(04-14-2016, 08:56 PM)Poco Loco Wrote: Wow this is just awesome madsiur great work

Thanks man I'm gonna do the same with sketch data and rages.


RE: FF6 Expansion Editor (FF6ExpED) - SSJ Rick - 04-15-2016

thats incredible


RE: FF6 Expansion Editor (FF6ExpED) - Imzogelmo - 05-06-2016

This looks awesome. I can't tell if it makes it possible to steal more than one item from a given monster though? I would assume that it does not, because that is one thing I had to tweak in Multi-Steal; you actually need some RAM to store the IDs of all the stolen items until the animation can get around to showing it. For those that don't know; before Locke ever jumps to the first enemy, the entire sequence of events is determined, and part of the original bug was that they did not have more than one RAM location for stolen items to go. I solved it by making 6 of them, so in theory you could get one per enemy. If the steal slots were treated independently, then you'd need #slots * #enemies locations (up to 8, since I don't suppose you're going to get more than 8 attempts in one turn).

Finding free RAM is always the hard part with stuff like that. It's also another source of potential worry over conflicts when applying multiple patches.


RE: FF6 Expansion Editor (FF6ExpED) - madsiur - 05-06-2016

(05-06-2016, 01:07 AM)Imzogelmo Wrote: This looks awesome. I can't tell if it makes it possible to steal more than one item from a given monster though? I would assume that it does not, because that is one thing I had to tweak in Multi-Steal; you actually need some RAM to store the IDs of all the stolen items until the animation can get around to showing it.

You can only steal one item per monster. I did some odd coding to make this work. Instead of using the stealable items RAM for items numbers and expanding RAM to 4 bytes per monster, I stored an offset there (monster ID * 8 because of 4 drops and 4 steals) instead of using other RAM (such as $144X) for monsters 4, 5,6 (this solution was expanding the code a lot). So when there's a successful steal I write #FFFF to the RAM bytes (formely for stealable items numbers) of the monster and check for #FFFF at beginning of steal routine to see if monster has already been stolen. I opted for that solution after realizing the stolen item RAM is only used in the steal routine at 2 or 3 places and nowhere else in the game. I instead just get the values from the steal / drop table.