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 - Leythalknight

Pages: [1]
Try replacing the script in the Counter tab with "return" (no quotes) and see if it compiles. If so, you can then add battle.var60 += 1 back to the Counter script afterward if you want.

Around seek location 1853831 in Mngrp there's special bytes around ribbon that hide it till unlocked. unless someone plays chocobo world to unlock it it'll never show. Maybe you could do something similar to the seed tests.

Thanks for the suggestion. Haven't made any progress yet, but I'll keep trying.

I also got the idea to search mngrp for a way to change which menu the TEST option leads to. I found a way to change this for things in the Information section, but so far I haven't found anything similar for the SeeD tests. I wonder if that's handled by the exe, as everything I've found related to those menus in mngrp seems to be for text only.

Hi. I'm getting pretty close to releasing a gameplay mod for FFVIII, but there are a few issues I'm having trouble solving. If anyone could help out, I'd really appreciate it.

1. My mod gives each party member a single GF while keeping all of the GF boss battles. At first I thought that removing the givegf() command in their AI scripts would suffice, but I've run into an issue with Diabolos and Cactuar. If I use the Magical Lamp and defeat Diabolos, the fight ends like normal but hitting any face button triggers the fight again, presumably because the player didn't acquire the GF. Jumbo Cactuar simply fails to disappear from the world map after being defeated. In Diabolos' case, the check seems to be tied to the Magical Lamp's item type itself, as this happens even when changing a non-Magical Lamp item into a trigger for a non-Diabolos battle.

2. I'd like to disable SeeD tests while keeping the salary. Is it possible to remove that option from the menu or to change the value of the variable used to track test progress such that the game thinks you've completed every test?

Less important issues that I'd nonetheless like to change:

3. I'd like to lower the effect of Med Data from 2x to 1.3x, or failing that, 1.5x. 

4. Change Defend's physical damage reduction to 50% instead of nullifying it altogether.

5. Make Devour and Card give experience points.

I made a list of what the Unnamed entries in the Enemy Attacks list are. Many of them are used for dialogue, and when I wasn't sure which line an attack triggered I wrote down the conditions for its activation instead.

Spoiler: show
001 - Used by Trauma (involved in summoning monsters?)
002 - Basic physical attack (used by most enemies)
003 - Griever basic physical attack
004 - Ultimecia(3) basic physical attack
024 - Belhelmel dialogue/form change
030 - Cockatrice attack
040 - Fastitocalon form change
041 - Fastitocalon(2) form change
042 - Fastitocalon attack
043 - Fastitocalon(2) attack
044 - Biggs HP < 50%
046 - Snow Lion attack
047 - Snow Lion attack
050 - Armadodo attack
051 - Armadodo-related ("Armadodo falls over!" text or unused?)
052 - Armadodo gets up
075 - Gayla attack
078 - Adamantoise attack
081 - Righty attack
082 - Bomb enlarges once
083 - Bomb enlarges twice
087 - Vysage attack
092 - Blue Dragon attack
101 - Grendel attack
104 - Forbidden's HP < 20%
105 - Appears in Forbidden's ability list but appears to be unused?
115 - Funguar laser
116 - Biggs(2) attack
117 - BGH251F2(2) attack
119 - BGH251F2(2) death
132 - Torama stands up
134 - Thrustaevis attack
156 - Cerberus/Jumbo Cactuar/Seifer/Gargantua/"Sorceress"(3)/Ultimecia(2)/Ultimecia(3)/Seifer(4)/Slapper crit attack
160 - Base Leader HP < 50%
167 - Iron Giant/Red Giant attack
170 - Escaped... (Cactuar)
171 - Imp flies
172 - Abyss Worm rise
173 - Abyss Worm recede
178 - Used by Elastoid (involved with its use of Reflect Beam)
179 - Used by Elastoid (involved with its use of Reflect Beam?)
186 - Seifer(1) death
187 - Abadon stands
188 - Abadon returns to normal
189 - Abadon attack
190 - Abadon attack
191 - Abadon death
195 - Ochu attack
196 - Seifer(1) Turn count = 4
197 - Seifer(1) HP < 50%
198 - Seifer(1) HP < 50% (counter)
202 - Red Giant attack
203 - Red Giant death
205 - Edea(1) turn taken (initial dialogue?)
206 - Edea(1) - >= 1 ally dead
207 - Edea(1) HP < 100% / allies dead >= 1
208 - Raijin(1) death
209 - Raijin(2) death / Fujin alive
217 - Fujin(1) turn count = 4 dialogue ("ELLONE, WHERE?" ?)
218 - Fujin(1) death / Raijin dead
219 - Fujin(2) death / Raijin alive
221 - Tonberry falls over...
224 - Tonberry advances
228 - In Tonberry King's movelist, but unused?
229 - In Tonberry King's movelist, but unused?
232 - "Jumbo Cactuar is hesitating..." ?
241 - Catoblepas death
258 - Used by Sphinxaur upon death
259 - Sphinxara death
260 - Tri-Point death
264 - Edea(1) death
265 - Gargantua appearance?
266 - Gargantua death
267 - Raijin(2) / Fujin dead
268 - Raijin(2) used before using a heal
269 - Raijin(2) "I don't hit girls, ya know?"
270 - Blitz attack
275 - Odin death
277 - Krysta death animation
278 - Krysta counter
279 - Krysta counter
286 - Mobile Type 8 death
290 - Used by Trauma (involved in summoning monsters?)
291 - Trauma death
294 - Raijin(3) attack
296 - Fujin(2) pre-Meteor dialogue?
297 - Fujin(2) death
298 - Raijin(3) moved
299 - Raijin(3) death
300 - Raijin(3) HP > 50% (counter) Squall-related dialogue?
301 - Raijin(3) counter dialogue?
302 - Raijin(3) pre-Aura dialogue?
303 - Raijin(3) dialogue
304 - Raijin(3) dialogue ("I won't take it easy on ya!" ?)
306 - Tiamat death
313 - UFO? death
320 - Adel (Squall dialogue)
321 - Adel (Zell dialogue)
322 - Adel (Selphie dialogue)
323 - Adel (Quistis dialogue)
324 - Rinoa dialogue (Adel fight)
325 - Cerberus HP  20%
326 - Cerberus death
330 - Seifer(4) death (Gilgamesh)
331 - Seifer(2) turn count = 3
332 - Seifer(2) HP < 40% (counter)
333 - Seifer(2) death
334 - Seifer(2) Demon Slice on Squall ("I'll show you who's the better man!" ?)
335 - Ultimecia's GF instakill
340 - Seifer(4) - involved in Odin/Gilgamesh event?
341 - Seifer(4) death (normal)
342 - Seifer(3) death
343 - Edea(2) death
344 - Seifer(3) turn count = 1
345 - Seifer(3) turn count = 4
346 - PuPu-related ("Elixir please"?)
347 - PuPu-related ("More Elixir"?)
348 - PuPu "death"
349 - Edea(2) turn taken (first dialogue?)
361 - Helix attack
363 - Ultimecia(2) - involved in using Great Attractor?
366 - "Sorceress"(1) attack
367 - "Sorceress"(2) attack
368 - Griever death (changes music?)
370 - BGH251F2(1) HP < 60% counter/death
371 - BGH251F2(1) HP < 40% counter/death
372 - Elite Soldier - all allies alive (during BGH251F2 battle)
374 - Used by Helix on init
376 - Ultimecia(2) summons Helix
382 - Unused
383 - Unused

The PSHN_L 118 means the Cerberus battle, but how would I put the code to recognize this? Just putting it below SETBATTLEMUSIC? Or theres something else I'm not seeing?

It uses the Opcode BATTLE.

Alright, with Deling only...
Is there a post that teaches how to do so? To trigger a music in a specific battle group?

PSHN_L      X

Where "X" is the number of the music track (512 in your case), but I think you'd need to add another entity to the field. Deling doesn't have that functionality, so you'd have to find another way to do it. Unfortunately, I can't help you with that. The only workaround I can think of is repurposing existing entities into triggers for battles. Editing Draw Points would be least invasive, though I've never tried anything like this before.

You mean the only way is using 'SETBATTLEMUSIC' inside a enemy AI, putting it in 'Init' tab?

Nah, with Deling. That's why it has to be something you trigger in a field map.

Since the last boss fights use enemy attacks to change the music, I assume there's no "change music" command for enemy AI.

If the fight is triggered through interacting with something on the field (like Cerberus, Bahamut, etc.), you can use the opcode SETBATTLEMUSIC to change what music plays.

The only other way I can think of would involve using enemy attacks programmed to change the music, like those used in the final boss fight series.

I've opened the mngrp.bin and there was any info text of RF abilities, all it had was main menu stuff, like Junction, Magic, Items, GF, Abilities, Config.... But nothing about "Converts 1x for 10x Curaga". These ones are Hextedit only?

Unless I'm misunderstanding what you mean, the text you're looking for is in Formula1, Formula2, etc. near the bottom of the program's dropdown box.

You can use GFRefine to change what refines into what: You can change where each refinement ability begins and ends reading data with Doomtrain (Abilities --> Menu, Start Entry and End Entry), but from my understanding, GFRefine won't work properly if you change this.

Unknown (0x0A, X) is a check for certain actions. For example, Diabolos' counter data checks to see if the last command was Magic, and if true, checks if the last spell cast was Demi and counters with Curaga if the conditions are true. Below that, it checks to see if the last spell was Scan and does nothing if that condition is true. Based on the limited info available, command checks seem to be numbered according to the list of battle commands in Doomtrain (where Magic is 2), and the spells are in the same order as Doomtrain's spell list.

I've also been unable to modify these or create my own without getting an error. I assume it's due to a flaw in the editor.

Hummm... Good to know (and yeah I've changed everything about Bahamut's AI so this is certainly not being used)
Im gonna try it out and post here the results!

Question about the changestat, the value on arg2 is a bonus or is an exact value? For example: changestat(0, 20) <= is it adding 20 STR or putting it exactly to 20?

It's percentage-based, but I'm not sure of the exact values. According to FFVIII guides out there, Raijin's STR is doubled when in Aura status, which would mean a changestat value of 15 doubles a stat.

edit: Judging from GIM52A's AI, it may be that

10 = 100%
15 = 150%
20 = 200%

Thats gonna be extremely hard... The thing is, theres alot of Unnamed Enemy Attacks around the Doomtrain program, but I know some of then are still being used. The problem is knowing which one I can use.

I'm know there are others, but I'm pretty sure that #235, Barrier Change, is never actually used despite being in Bahamut's list of abilities. You'd have to use Carbuncle to change its name though.

Something odd happened (and kinda funny xD)

I've used this code on T-Rexaur
Code: [Select]
if (self.status == CONFUSION) {
if (self.status == BLIND) {
if (self.status != BERSERK) {
self.varDD += 1
if (self.varDD >= 5) {
changestat(6, 255)
if (rand() % 3 == 0) {
else {

He acts normally, attacking and using tail attack sometimes and all... When I use Blind I counted 5 turns and he did uses Berserk, but then he had an inverted effect ROFL instead of running around like crazy trying to bite then all, he decided to just stay put, give a look to one party member, say "good day sir" AND CONTINUE TO JUST STAND THERE LMAO
Seriously, he just turn to one party members direction and thats it, I was like "wth is going on? whys he so passive? did he became a gentlemen????"

Is it the changestat? I dont know if 6 is the HIT stat, I know these:
0 = STR
1 = VIT
2 = MAG
3 = SPR
4 = SPD
5 = LUK
Or am I wrong somewhere?

I don't think there's a way to modify Hit using changestat since hit percentages for enemy attacks are calculated using Attack Parameter in the moves' data. T-Rexaur will either have to heal its Blindness or you'll have to use the psuedo-Berserk effect and make it use an attack that always hits instead of its normal ones. You can modify an unused enemy attack for this.

Thats some pretty interesting ideas.
I was thinking about Esuna if I ran out of ideas for too long as well but was letting it as last resort.

The monster in question is the T-Rexaur. In the mod I was planning to give a big surprise to players who think this game is the same, so I was putting him to give a surprise react: when blinded for too long, he enters in a rage mode and start attacking with higher SPD.

Since we cant remove the status then the HIT 255 is a good choice, I liked it
Whats this unknown05(15)? Sorry my ignorance, I'm still learning new codes for these AIs

I think that's a neat idea. I really dislike how Blind cripples physical attackers.

unknown05(15) is something included in Elvoret's AI before it calls the Storm Breath animation that takes Biggs and Wedge out of the battle. Not even those JP AI scripts I linked you know what it does, but I included it since it may have something to do with calling the magicid. I've used it in an enemy's AI before and it didn't cause any problems, at least.

If nothing else works, you could achieve a similar effect by using magicid to make the Berserk animation play on the enemy, changestat to increase its ATK, and making it spam an attack with 255 Hit after being Blinded for X turns.

Edit: Made a simple AI script for this. Should work, though you'd have to add in the other abilities the monster uses beneath the if self.varDE == 0.

Code: [Select]
if (self.varDE == 0) {
    if (rand() % 3 == 0) {
if (self.status == BLIND) {
    self.varDD += 1
if (self.varDD >= 5) {
    if (self.varDE == 0) {
        changestat(0, 15)
        self.varDD = 0
        self.varDE = 1
if (self.varDE == 1) {

Edit 2: This script will make the enemy cast Esuna on itself after 5 turns of being Blinded, then fill its ATB and make it cast Berserk on itself:

Code: [Select]
if (self.status == BLIND) {
    self.varDD += 1
if (self.varDD >= 5) {
    if (self.varDE == 0) {
        domoveid([Esuna # goes here])
        self.varDD = 0
        self.varDE = 1
if (self.varDE == 1) {
    domoveid([Berserk # goes here])
    self.varDE = 0

You can change Berserk's condition to a self.varDE of 3 if you'd prefer. Remedy/Eye Drops also work in place of Esuna if the enemy can be Silenced.

Thank you very much! This saved my day!! +1 Like

Happy to help. I added some more info to my post.

A while back, someone posted a link to a JP website that had the AI scripts for each enemy in the game. Can't find the link, so I re-upped the archive here:!FGwCzA7I!oE5sYXmEqdPUDXhDHhT7Y8fqlqFJ5bf8kZIOipSH72o

It has data on each targetadv as well as the unknowns in Ifrit's AI editor, so it may help you figure it out. For example, the targetadv in the second Seifer battle selects for the character with the lowest Fire resistance.

edit: Comparing Ifrit to the txt files and it seems that arg2 is indeed the target.

200 - enemy (a player character)
201 - ally (another enemy)
It seems they can also choose to target a specific type of enemy; for instance, Elite Soldiers can specifically target G-Soldiers (enemy 87).

On the subject of enemies targeting specific enemies, I looked through enemy AI and came up with this list:

0 = Squall*
1 = Zell*
2 = Irvine*
3 = Quistis*
4 = Rinoa*
5 = Selphie*
6 = Seifer*
7 = Edea*
8 = Laguna*
9 = Kiros
10 = Ward
17 = GIM52A
23 = SAM08G
55 = Lefty
56 = Righty
87 = G-Soldier
88 = Elite Soldier
111 = Granaldo
112 = Raldo
124 = Paratrooper
143 = Ultimecia (Draw Point)

*Not actually referred to as such in Ifrit's AI editor, but Kiros and Ward follow the character order used elsewhere, so I assume these numbers are right.

Starting from 17 (or 16, counting Dummy?), the enemy order follows the order of the com files. So 18 is Blobra, 19 is Thrustaevis, etc. I don't know what 11-15 are used for.

A 3 in arg3 seems to be checking to see if a condition doesn't apply, such as not having a status effect.

Edit 3/3/19: I had the idea to compare the arg4 list I made earlier in this thread to the list of text strings for status effects and found that they more or less match up. Did some testing with the enemy AI to make sure these were accurate. Updated list (new entries marked with *):

0 = KO
1 = Poison
2 = Petrify*
3 = Blind
4 = Silence
5 = Berserk
6 = Zombie
8 = HP is < 1/4
9 = HP is < 1/2
16 = Sleep
17 = Haste*
18 = Slow*
19 = Stop
20 = Regen*
21 = Protect
22 = Shell
23 = Reflect
24 = Aura
25 = Curse*
26 = Doom
27 = Invincible*
28 = Petrifying*
29 = Float*
30 = Confusion
33 = Double*
34 = Triple*
35 = Defend*
36 = Physical attack ineffective (all physical attacks do 0 damage)
37 = Magic attack ineffective (magic attacks miss)
38 = Charged*
39 = Back Attack*
40 = Vit0
41 = Angel Wing*
42 =
43 =
44 =
45 =
46 = Has Magic
47 = Summoning
200 = Male
201 = Female
202 = ? (Crashed the game)
203 = Highest HP
204 = lowest HP
205 = Highest Strength
206 = Highest Defense
207 = Highest Magic
208 = Highest Spirit
209 = Highest Speed
210 = Highest Luck
211 = Highest Evade
212 = Highest Hit
213 = Lowest Strength
214 = Lowest Vitality
215 = Lowest Magic
216 = Lowest Spirit
217 = Lowest Speed
218 = Lowest Luck
219 = Lowest Evade
220 = Lowest Hit
221-228 = Highest [Fire, Ice, Thunder, Earth, Poison, Wind, Water, Holy] resistance
229-236 = Lowest [Fire, Ice, Thunder, Earth, Poison, Wind, Water, Holy] resistance
237-238 = ? (Crashed the game)

Interestingly, the strings for the two blank spots after Defend say "physical attack ineffective" and "magic ineffective". These match up with the two blank status effect spaces after Defend, so perhaps they planned these two statuses before scrapping them? Then again, other strings are filled with things that seem totally irrelevant, so they could be used elsewhere.

This is just a guess, but what makes an attack hit multiple times may be tied to its animation data. It makes sense, as Lion Heart, Wishing Star, etc. add extra hits at certain moments in their animations, rather than dumping every hit at the end or something. If that's the case, I wonder what is the point of the Hit Count info in the file. I could be wrong, though.

Thats an interesting point there, i'm gonna try it right away!
The animation is Command Data's Magic ID or Battle Command's Ability Data ID?

It's Command Data's Magic ID.

Are you still using Treatment's animation for the ability? That may be the issue. Try changing it to the animation of an ability that normally affects the whole party, such as Full-Cure, and see if that works (with the target set to 8 as mentioned earlier in the thread).

Pages: [1]