Author Topic: [PSX/PC] General editor - Hades Workshop (0.41d)  (Read 543627 times)

gledson999

  • *
  • Posts: 66
  • Listem to my Story, this maybe our last chance ♪
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1600 on: 2019-10-25 13:00:22 »
So? Have you tried doing that?
But it can't be done for the PSX version. It's a modification of the game's engine, so it's for PC.

I understood, so the PSX version is impossible  :-( anyway thanks for reply and thanks for you impressive tool

Tirlititi

  • *
  • Posts: 728
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1601 on: 2019-10-25 14:30:37 »
About the frogs, it's in the scripts of the ponds:
1) In the "SpeakBTN" functions of the catchable frogs (Baby, Male, Female, Gold), there's a switch for the appearance of Quale:
Code: [Select]
            switchex 8 ( GetFrogAmount ) {
            case 2 ; 5 ; 9 ; 15 ; 23 ; 33 ; 45 ; 99:
                set VAR_GlobUInt8_64 = 2
                break
            default:
                break
            }
2) In the "Main_Loop", there's most of the cutscene's code, in particular the line "if ( GetFrogAmount == 99 ) {" triggering the battle.
The other rewards are also there, a bit after that line (in the "else" branch).

About the enemy targeting only Zombie characters, you can use that in an enemy script (the ATB function typically):
Code: [Select]
if ( ((GetRandom % 100) < 50) && ( FirstOf(SV_FunctionEnemy[MP]) >= 18 ) ) { // Example: 50% of chances to cast Life if there's a Zombie character and if the enemy has 18 MP or more
    set SV_Target = Matching( SV_PlayerTeam[STATUS_CURRENT_A], 64 ) // All the Zombie characters
    if ( #SV_Target ) { // Same as "if ( SV_Target ) {" or "if ( (#SV_Target) != 0 ) {"
        set SV_Target = RandomInTeam(SV_Target) // Pick only one of them
        Attack( ... ) // Cast Life
        return
    }
}
// etc... do something else if Life is not chosen for any reason
« Last Edit: 2019-10-25 14:32:08 by Tirlititi »

Clem Fandango

  • *
  • Posts: 37
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1602 on: 2019-10-26 23:20:08 »
This is great, thanks!

ApolloGrimoire

  • *
  • Posts: 23
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1603 on: 2019-11-02 21:08:06 »
It's me from the Steam forum. I've decided to take a shot at modding this with the AF Beatrix source files.

I'm reading up on the threads in the first post and I would like to make a mod that would make her permanetly playable (not optional) after you obtain the Blue Narciss. She would be present at Lindblum when Dagger can no longer speak.

What steps would I need to do to make this possible if at all?

Tirlititi

  • *
  • Posts: 728
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1604 on: 2019-11-03 10:00:51 »
It requires a lot of script writing. It's better if you are familiar with programing but in any case, you should read a bit about how to do simple things with scripts here, here and here for instance.

In order to add a character to the party without asking the player's opinion (like when Vivi joins in the Prima Vista), it's this line:
Code: [Select]
set AddParty(8)"8" is an ID for Beatrix's character slot (0 is for Zidane, etc... Marcus shares Eiko's character slot).
It works only if there are less than 4 characters already. You can remove a character beforehand using this:
Code: [Select]
RemoveParty(0)
In order to enable Beatrix in the party selection menu, you must add her in party's reserve:
Code: [Select]
set Setting_PartyReserve = 511
SetPartyReserve(Setting_PartyReserve)
Note that it's a bit flag list (it works just like SV_Target in battle scripts). Usually, this party reserve is set to 255 for all the eight normal characters, so adding 256 to that value adds Beatrix.
Party reserve is reseted at different points during the game (when characters are temporarily splitted apart, etc...) so you need to take that into account.
To display the party selection menu, it's this:
Code: [Select]
if ( IsInParty(0) ) {
    Party( 4, 1 ) // Form a party of 4 characters and lock Zidane inside
} else {
    Party( 4, 0 ) // Form a party of 4 characters without locking any character inside
}

ApolloGrimoire

  • *
  • Posts: 23
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1605 on: 2019-11-03 15:48:06 »
I'll give it a shot.

ApolloGrimoire

  • *
  • Posts: 23
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1606 on: 2019-11-08 21:49:03 »
Editing's going well though I seem to have an issue activating the rewards against Baku in Evil Forest.

He's supposed to give exp, gil and a drop, but only AP was given at the results screen.

I also unticked disabled rewards but that didn't work.

Tirlititi

  • *
  • Posts: 728
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1607 on: 2019-11-08 22:34:59 »
He's surely not defeated by the battle ending script (there's surely a line like "RunBattleCode( EndBattle, VICTORY )") so the reward specific to Baku is not given, only the reward of the group.
Make sure to flag him as defeated right before that line ending the battle:
Code: [Select]
set SV_FunctionEnemy[DEFEATED_ON] =$ 1You could also kill him for good with "set SV_FunctionEnemy[HP] =$ 0" but that would trigger other things like his death cry (I don't think he has one though), his death animation and fading... so that's a less good option.

ApolloGrimoire

  • *
  • Posts: 23
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1608 on: 2019-11-09 06:47:55 »
Thanks, it works pefect.  :)

ApolloGrimoire

  • *
  • Posts: 23
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1609 on: 2019-11-10 20:23:58 »
Meant perfect/ ::)

Anyway, I'm trying to add some black magic spells to Dagger with this guide.

Code: [Select]
new rdata.FF9COMMAND(89, 349, 8276, 1, 16, 192UL)
It's not working as I'm getting that error.

Is there more I need to change to get it working?

I plan to make her a Red Mage.

Tirlititi

  • *
  • Posts: 728
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1610 on: 2019-11-10 22:10:25 »
You didn't show the error.
Maybe that's a missing comma.
Maybe that's caused by a non-automatic type conversion: dnSpy does that a lot, you need to add type conversion to many places, like:
Code: [Select]
varshort = something + 16; // Error
varshort = (short)(something + 16); // Use this instead if the compiler complains: write the required converted type and wrap the computation inside parentheses

ApolloGrimoire

  • *
  • Posts: 23
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1611 on: 2019-11-11 07:11:42 »
I never saw that error in dnspy. It complied just fine.

It was in HW when I was trying to add more spells to Dagger's magic command.  Despite following the guide, it says I can't add anymore spells to what she already has. :?

Hope that cleared the confusion

Tirlititi

  • *
  • Posts: 728
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1612 on: 2019-11-11 16:14:53 »
You can't add many spells inside commands in HW. Using dnSpy and the guide you linked is meant to bypass the limit in HW. Since you're using the Beatrix mod, I guess, that limit is already reached and that's why you need to use dnSpy.

ApolloGrimoire

  • *
  • Posts: 23
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1613 on: 2019-11-11 17:42:22 »
I am using the Beatrix mod, but not her Shiroken Trance abilities. I made her a third dualcaster with her white magic.

In dnspy, her code is:

Code: [Select]
new rdata.FF9COMMAND(89, 349, 8276, 1, 16, 8UL)Like in your guide, I changed the last number to 192.

I changed the 16 to 24 so she could gain new spells. But HW still says I can't add anymore commands.

Tirlititi

  • *
  • Posts: 728
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1614 on: 2019-11-11 18:05:25 »
You can't use HW after doing that modification; that's something you have to do last.
Well, actually, I'm not sure of what are the consequences of using HW after doing that engine modification... But the limit is hardcoded in HW and the program can't catch that the limit was increased with dnSpy.

If her White Magic and her trance command use the same spells, you can avoid using dnSpy though. Simply select either one of these commands and link it to the other: doing this saves up spell slots.

ApolloGrimoire

  • *
  • Posts: 23
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1615 on: 2019-11-11 19:32:04 »
I have to be more specific in future, sorry. ::)

I want Dagger to learn more spells, not Beatrix.

Beatrix's commands will stay the same.
« Last Edit: 2019-11-11 19:43:54 by ApolloGrimoire »

Tirlititi

  • *
  • Posts: 728
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1616 on: 2019-11-11 19:55:31 »
Still, if you link Beatrix's commands, it saves up space for adding more spells to another command.

ApolloGrimoire

  • *
  • Posts: 23
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1617 on: 2019-11-11 20:14:31 »
That's what I've done for Beatrix, Dualcast with her White spells.

All I can do for now is leave Dagger with 6 white and 10 black spells until later.

ApolloGrimoire

  • *
  • Posts: 23
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1618 on: 2019-11-13 21:49:54 »
Is there a way to increase or decrease the time limit when getting to Dagger at Alexandria?

Tirlititi

  • *
  • Posts: 728
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1619 on: 2019-11-14 10:34:31 »
Yes. In the script of "Environment -> Fields -> A. Castle/East Tower", there are these lines near the 2 thirds of the function "Zidane_Loop":
Code: [Select]
        ChangeTimerTime( 1801 )
        ShowTimer( 1 )
        RunTimer( 1 )
1800 seconds = 30 x 60 seconds = 30 minutes. Just put any number you want there to change the initial time limit.
Then, while it is running, you may use a line like "ChangeTimerTime( GetTimerTime + 60 )" to give a time bonus or whatever, for instance after defeating Tantarian in the Library.

Tip: this kind of setting, done in a cutscene, is usually either in the "Main_Loop" function of the cutscene's field or inside a function of the character doing the action at the same time the setup occurs. There, Zidane is the one speaking ("Yeah! We've got 30 minutes...") when the timer shows up, so that's in his function.

ApolloGrimoire

  • *
  • Posts: 23
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1620 on: 2019-11-14 14:49:14 »
Thanks. It worked fine.

I'm almost at the point where I have to fight Beatrix for the last time and I want her special boss theme to play instead of the regular one.

Do I need to go into the Field tab for the Queen's Chamber or dnspy for this?

Tirlititi

  • *
  • Posts: 728
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1621 on: 2019-11-14 15:13:53 »
You need to use the Unity Assets Viewer for that.
Open the resources.assets archive, search for the file "BtlEncountBgmMetaData.txt", export it, modify it and then re-import it.
Inside that file, there's a list of field IDs (so the Queen's Chamber in which you fight Beatrix is 1223) and for each field, a list of battles that can trigger in that field with the music ID of the battle ran. If a battle is missing there, the ambiant music doesn't stop when entering a battle.

So just find the field (1223), the battle (73) and put the correct music ID for it (117, "The Wavering Blade").

Here's a list of music IDs. I don't think that you can actually see it in Hades Workshop (only in the UAV when you open the music archive p0data62).
Code: [Select]
music033 -> A Place to Call Home (internal ID: 58)
music078 -> A Song from Her Memory (internal ID: 106)
music083 -> Aboard the Hilda Garde (internal ID: 112)
music012 -> Aloha De Chocobo (internal ID: 24)
music005 -> Amarant's Theme (internal ID: 2)
music117 -> Another Nightmare (internal ID: 45)
music122 -> Assault of the Silver Dragons (internal ID: 147)
music102 -> Awaking Song (internal ID: 77)
music070 -> Bahamut is Summoned (internal ID: 98)
music006 -> Battle (internal ID: 0)
music071 -> Before the Altar (internal ID: 99)
music043 -> Beyond the Twilight (internal ID: 67)
music054 -> Black Mage Village (internal ID: 82)
music024 -> Boss Battle (internal ID: 35)
music059 -> Bran Bal, the Soulless Village (internal ID: 87)
music114 -> Broken Spell, Healed Hearts (internal ID: 146)
music044 -> Burmecia (internal ID: 68)
music077 -> Chamber of a Thousand Faces (internal ID: 105)
music097 -> Cid's Theme (internal ID: 133)
music049 -> Cleyra Settlement (internal ID: 80)
music064 -> Cleyra's Trunk (internal ID: 92)
music062 -> Conde Petie (internal ID: 90)
music037 -> Court Jesters (internal ID: 53)
music087 -> Crystal World (internal ID: 121)
music093 -> Daguerreo, the Hermit's Library (internal ID: 129)
music003 -> Danger in the Forest (internal ID: 4)
music057 -> Dark City Treno (internal ID: 85)
music098 -> Dark Messenger (internal ID: 134)
music067 -> Desert Palace (internal ID: 96)
music069 -> Devil's Ambition (internal ID: 97)
music030 -> Distant Memory (internal ID: 59)
music121 -> Doga and Une (internal ID: 148)
music050 -> Eidolon Wall (internal ID: 81)
music060 -> Eiko's Theme (internal ID: 88)
music113 -> Esto Gaza (internal ID: 144)
music055 -> Eternal Harvest (internal ID: 83)
music014 -> Eye to Eye (internal ID: 20)
music038 -> Faerie Battle (internal ID: 61)
music101 -> Final Battle (internal ID: 71)
music013 -> Find the Princess (internal ID: 27)
music053 -> Fleeting Life (internal ID: 76)
music116 -> Foolproof Love Letter Scheme (internal ID: 141)
music048 -> Fossil Roo (internal ID: 79)
music011 -> Freya's Theme (internal ID: 32)
music001 -> Game Over (internal ID: 6)
music063 -> Gargan Roo (internal ID: 91)
music010 -> Garnet's Theme (internal ID: 29)
music105 -> Girl of Madain Sari (internal ID: 139)
music118 -> Guardians (internal ID: 72)
music082 -> Hunter's Chance (internal ID: 111)
music111 -> I Want to be Your Canary (internal ID: 145)
music031 -> Ice Cavern (internal ID: 60)
music080 -> Iifa, the Ancient Tree of Life (internal ID: 109)
music112 -> Inseparable Hearts (internal ID: 142)
music075 -> Ipsen's Castle (internal ID: 103)
music115 -> Kiss of Betrayal (internal ID: 41)
music066 -> Kuja's Theme (internal ID: 95)
music088 -> Light of Destiny (internal ID: 124)
music047 -> Lindblum (internal ID: 74)
music058 -> Look Back, See the Frog! (internal ID: 86)
music092 -> Master of Time (internal ID: 118)
music084 -> Melodies of Life (internal ID: 113)
music096 -> Memoria (internal ID: 132)
music046 -> Moogle's Theme (internal ID: 73)
music081 -> Mount Gulug (internal ID: 110)
music061 -> Mourning in the Sky (internal ID: 89)
music025 -> Oeilvert (internal ID: 36)
music027 -> Out of the Frying Pan (internal ID: 49)
music026 -> Outlaws (internal ID: 44)
music045 -> Over the Hill (internal ID: 69)
music056 -> Pandemonium (internal ID: 84)
music106 -> Peaceful City (internal ID: 138)
music120 -> Prelude (internal ID: 156)
music041 -> Prima Vista Orchestra (internal ID: 65)
music089 -> Protecting My Devotion (internal ID: 125)
music032 -> Qu's Marsh (internal ID: 57)
music009 -> Quina's Theme (internal ID: 15)
music036 -> RUN! (internal ID: 52)
music090 -> Roses of May (internal ID: 116)
music052 -> Rufus' Welcoming Ceremony (internal ID: 75)
music094 -> Ruins of Madain Sari (internal ID: 130)
music079 -> South Gate (internal ID: 108)
music110 -> Star-Crossed Lovers (internal ID: 143)
music039 -> Steiner's Delusion (internal ID: 62)
music007 -> Steiner's Theme (internal ID: 10)
music017 -> Swords of Fury (internal ID: 18)
music095 -> Terra (internal ID: 131)
music042 -> Tetra Master (internal ID: 66)
music109 -> The Black Waltz (internal ID: 140)
music020 -> The Evil Within (internal ID: 30)
music108 -> The Extraction (internal ID: 7)
music016 -> The Fateful Hour (internal ID: 17)
music073 -> The Four Mirrors (internal ID: 101)
music018 -> The Meeting (internal ID: 12)
music091 -> The Wavering Blade (internal ID: 117)
music021 -> Thy Warmth (internal ID: 33)
music022 -> Tragic Love (internal ID: 25)
music072 -> Ukulele de Chocobo (internal ID: 100)
music029 -> Unforgettable Silhouette (internal ID: 50)
music004 -> Unforgettable Sorrow (internal ID: 1)
music051 -> Unrequited Love (internal ID: 70)
music015 -> Vamo Alla Flamenco (internal ID: 22)
music000 -> Victory Fanfare (internal ID: 5)
music002 -> Village of Dali (internal ID: 3)
music008 -> Vivi's Theme (internal ID: 9)
music068 -> Wicked Melody (internal ID: 94)
music028 -> You're Not Alone (internal ID: 48)
music085 -> Zidane and Dagger's Song (internal ID: 115)
music023 -> Zidane's Theme (internal ID: 34)
« Last Edit: 2020-08-24 07:44:37 by Tirlititi »

ApolloGrimoire

  • *
  • Posts: 23
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1622 on: 2019-11-14 19:33:09 »
I've changed it, but it won't let me import it back in.

The text for it is greyed out.


NM, I saw I had to close the launcher and import it that way. :-[

Works fine. :-D
« Last Edit: 2019-11-14 21:32:56 by ApolloGrimoire »

ApolloGrimoire

  • *
  • Posts: 23
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1623 on: 2019-11-16 21:29:12 »
OK, I'm nearing the end of disc 2 and one of my major changes is to add another hopeless boss fight.

I plan to add Kuja and end the battle against the party with Flare Star.
Down the line I plan to the same with Steiner and Beatrix face him at Alexandria for another hopeless fight.

I know I need to do a few changes in the fields tab to trigger the fight, but how do I add him as a boss in the enemy tab?

Tirlititi

  • *
  • Posts: 728
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.41c)
« Reply #1624 on: 2019-11-17 10:10:47 »
You can't add new battles unfortunatly.
However, there are a few dummied battles (that's what I've used to add the 4 extra bosses):
- 2 dummy vices that have nonsensical names (the names are actually raw japanese glyphs),
- 1 Zorn/Thorn battle that is dummied (it doesn't have the "Marthym" dialogs and only dummy attacks).
Also, you may delete a few redundant battles (Grand Dragons...) and replace them in the World maps battle lists. The two Ozma battles are also nearly the same as the only difference is the "Out of reach" flag, etc...

You can copy/paste single enemies and single attacks with a right-click (so right-clicking "Kuja" -> copy -> go to a dummied battle -> right-click -> paste).