Author Topic: [PSX/PC] General editor - Hades Workshop (0.50b)  (Read 959507 times)

g_west

  • *
  • Posts: 31
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1950 on: 2023-06-01 07:00:42 »
Thank you. One of these days I'll get a good enough computer to play the steam version of this game with the moguri mod. When that day comes, will I be able to load the .HWS file I've been working on with the PSX version of the game and change the Steam version? I'd made a significant amount of changes and I hate to have to do it all over again.

Also, my new current problem is trying to find the scrip for the frog catching awards. I want to change some of the items but I can't find it anywhere.
« Last Edit: 2023-06-06 16:02:14 by g_west »

Tirlititi

  • *
  • Posts: 883
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1951 on: 2023-06-01 07:44:14 »
The frog rewards are in the functions "Main_Loop" of the relevant marsh fields. It's a long function that handles many things, so try to search for the lines:
Code: [Select]
if ( GetFrogAmount == 99 ) {or
Code: [Select]
Battle( 1, 330 )or
Code: [Select]
switchex 6 ( GetFrogAmount ) {
case 2:
set VAR_GlobUInt16_66 = 254
break
case 5:
set VAR_GlobUInt16_66 = 238
break
case 9:
set VAR_GlobUInt16_66 = 169
break
case 15:
set VAR_GlobUInt16_66 = 239
break
case 23:
set VAR_GlobUInt16_66 = 82
break
case 33:
set VAR_GlobUInt16_66 = 83
break
default:
set VAR_GlobUInt16_66 = 197
break
}
(all of these are close to each other)

The rewards are setup in this last "switchex" block: these numbers are item IDs. So for instance, the reward after 2 frogs is the item 254 (Ore), the reward after 5 frogs is 238 (Ether) etc...
If you want to add rewards at other steps, you'll also need to add these steps in the different "Frog_XXX_SpeakBTN" functions; there's the list of rewarding steps near the end of these functions in another "switchex" block.

You should have no problem importing your .hws from the PSX version to the Steam version, except for texts. I never did a proper "PSX text format -> PC text format" converter so it will most likely bug if you let the "including texts" boxes ticked when importing your .hws in the Steam version.

g_west

  • *
  • Posts: 31
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1952 on: 2023-06-01 11:58:34 »
Would I be able to import the text and then just go through and manually spell check/fix the bugs, or do you think it's going to completely scramble everything? Realistically, how much of the text would I have to rewrite or copy/paste? 100%?

Tirlititi

  • *
  • Posts: 883
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1953 on: 2023-06-01 17:23:50 »
Expect 100%. It's not impossible that there are situations in which the conversion would be easier, but don't count on it.
You can however use Text Batching (export/import) that eases the process for the Text panel.

g_west

  • *
  • Posts: 31
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1954 on: 2023-06-01 17:38:17 »
Expect 100%. It's not impossible that there are situations in which the conversion would be easier, but don't count on it.
You can however use Text Batching (export/import) that eases the process for the Text panel.

I'm not entirely sure what the second half of this statement means? Eases the process for the Text panel? Are you implying some of the text would translate if done that way?

stir472

  • *
  • Posts: 18
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1955 on: 2023-06-02 19:24:52 »
Hello tirlititi i have another question, its possible increase or delimit the max level of the characters?

Tirlititi

  • *
  • Posts: 883
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1956 on: 2023-06-02 22:37:44 »
@g_west: No, it's only that it's easier to copy/paste a lot of different texts in a .txt file (especially if you have a good text editor) rather than copy/pasting them in Hades Workshop.

@stir472: Hello. No, there are 99 levels and that cannot be changed, at least yet.

g_west

  • *
  • Posts: 31
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1957 on: 2023-06-03 05:01:27 »
Got it. So when I go to Batch and chose the two different export text options, all I see is an option for what I assume are in game dialogue and reading signs and such, as well as an option for the various UI menus. I don't see a way to export all of the spell/item names and their 'help' descriptions. Those are what I've changed the most.

edit: Ah, never-mind. Those are in fact under UI it seems.
« Last Edit: 2023-06-03 06:20:46 by g_west »

g_west

  • *
  • Posts: 31
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1958 on: 2023-06-06 15:38:01 »
Hey Tirlititi,

I know I've been asking a lot lately, so I apologize if I'm coming off as pushy or demanding. It's not my intention.

I've been strongly considering making the switch from the PSX version of the game to the Steam version, as I believe my laptop is new enough to handle it. I was reading on the Steam page that Memoria isn't compatible with Hades workshop, but I think that may be outdated information? Could you possibly direct me where to go so I could read up on using Hades, Memoria and Moguri all together. I've never used or modded a game with Steam, and the task of getting started seems a bit daunting.

On a related note, I was wondering if HW is capable of editing spells animations? I'd like to use Magnitude 8, but whenever I use it the ground shakes underneath the player team and not the enemies targeted. It's the earthquake animation used by Hilgigars.

Thank you for your time and all your responses, it's been much appreciated.

Tirlititi

  • *
  • Posts: 883
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1959 on: 2023-06-06 17:56:04 »
Hi,

If the questions are easy and take me 5 minutes to answer, that's fine. If you happen to ask more complicated questions, I'll delay my answer to take more time writing it. Don't worry about it ;)

It is indeed outdated information. The Moguri mod was made using Hades Workshop amongst other tools. From my point of view, it's way easier to mod a PC game instead of the emulated version, for many reasons. I guess it can be more disturbing for you but the latest versions of Hades Workshop / Memoria make it very easy to create and apply the mods (it's even easier to do it if you have Memoria installed than modding the base game).
You'll find your marks in any case.

However, the modding of spell animations is limited and what you're asking for is not currently possible (and it won't be in a foreseeable future).

paky-outsider

  • *
  • Posts: 11
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1960 on: 2023-08-05 18:01:46 »
That's correct.

Yes, the "SetCharacterData" is almost a "one-time event" (actually not one time but 2 or 3 times depending on the character), ie. it is triggered once when the character is initialised and if the character was initialised with the "temporary" flag, that character will keep that flag for the rest of the game or until it gets re-initialised.

=> If you load a save in which the character was already initialised with this flag, it will keep this flag, no matter what change you did to the event scripts of "Prima Vista".
=> Also, the temporary characters are re-initialised a couple of time: Blank is re-initialised right before the Plant Brain battle (there's a line "SetCharacterData" for Blank a bit above the line that triggers the Plant Brain battle in its nest) / Marcus is re-initialised before the 2nd fight against Black Waltz 3 battle / Beatrix is initialised once in Queen's Chamber before fighting Bandersnatches and is re-initialised in Alexandria's marketplace during Bahamut's attack.

=> You are able remove that "temporary" flag even in your end-game saves if you add new "SetCharacterData" lines at places where there wasn't before. For example, you can add a "SetCharacterData" at the end of a "Main_Init" function of any place so that it removes the flag. Make sure that you use the equipement set "255", which is the value for "don't touch the equipment", otherwise you could lose/duplicate pieces of equipments.

Thanks for the tips. I'll try soon to put tantalus and/or Beatrix in the party by this way on psx.

Now, for trance issue (softlock in game for Blank and the others no trance guys) I got the answer: I remove the lines "change model" from the [Trance_activate]. It does this: no trance model for anybody, so everyone simply is lighting up after trasformation, battle menĂ¹ changes correctly, maybe the bad status have the same rate that affect the normal model. When trance are finished, characters stop lighting up, trasformations are ok. I've tried this on Tantalus and Beatrix, they without trance bar, have a trance menu that works fine, and if you set trance abilities, like i do, they work as well. Even if no trance bar, they trance off after two or three moves, like the normal trance guys, because of the trance formula i think.

Such a great job is HW!!!

Question:
1-Is it possible to add in some point, a npc that changes the party, allowing to put in Beatrix or Tantalus? (I think it's impossible to have for example amarant and blank, 'cause they share the same code in psx, correct?)

2-Or maybe, npc, allowing to switch between Eiko-Marcus, Quina-Cinna, Amarant-Blank, someoneelse-Beatrix?

I can do that by gameshark codes, but i ask for permanent changes.

Any other tips?

Tirlititi

  • *
  • Posts: 883
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1961 on: 2023-08-05 20:26:40 »
Hi.

It's not easy to add a brand new NPC even with minimal interaction, but it is possible to add Beatrix in the party, even in the PSX version. Indeed it's impossible to have both Blank and Amarant simultaneously because they share a common slot. It'd also be problematic to switch between Blank and Amarant back and forth because it would lose some of Amarant's datas in the process.
Basically, you need to add this kind of function to a NPC in a field script. You can add a NPC that normally doesn't appear by adding an entry, but beware that 3D models are field-dependant on the PSX version and you can't have a NPC appearing in a field in which they would never appear otherwise.
Code: [Select]
Function Man_SpeakBTN
    ifnot ( IsMovementEnabled ) {
        return
    }
    set VAR_GlobBool_158 = 0
    if ( VAR_GlobBool_159 == 1 ) {
        DisableMove(  )
        if ( VAR_GlobBool_144 == 0 ) {
            DisableMenu(  )
        } else {
            Wait( 1 )
        }
    }
    SetTriangleFlagMask( 127 )
    WindowSync( 2, 128, XXX ) // Use whatever dialog line you want, like "Hello, here's a Beatrix for your party."
    set Setting_PartyReserve = 511 // 511 is "all the usual party members + Beatrix
    Party( 4, 1 ) // Open the party menu to allow the player to place Beatrix in
    set VAR_GlobBool_158 = 1
    if ( VAR_GlobBool_159 == 1 ) {
        if ( VAR_GlobBool_156 == 0 ) {
            EnableMove(  )
            SetTriangleFlagMask( 255 )
            if ( VAR_GlobBool_144 == 0 ) {
                EnableMenu(  )
            }
        }
    }
    return
You can add things like "TurnTowardObject( 250, 32 ) / WaitTurn(  )" to make add fanciness, but the main line is changing the "Setting_PartyReserve". Also, if you use this code before Beatrix joined your party the first time, you need a line like "SetCharacterData( 8, 1, 13, 22, 15 )" as well.

By the way, whether it's Blank or Amarant in your party depends on the flag "temporary character" in the corresponding "SetCharacterData" line that was last used on their shared slot.
Code: [Select]
SetCharacterData( 11, 1, 10, 21, 12 ) // Setup Blank
SetCharacterData( 7, 0, 7, 5, 7 ) // Setup Amarant instead

Arthandas

  • *
  • Posts: 17
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1962 on: 2023-08-10 18:17:09 »
Hi, is it possible to use your tool to swap the fmvs of the psx version with PC ones?

Tirlititi

  • *
  • Posts: 883
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1963 on: 2023-08-10 20:21:13 »
Hi. I wished I have this kind of almighty power ^^'
No, it is not possible to increase the data size of the PSX version to my knowledge, so inserting the heavy FMVs of the PC version in the PSX disc image is out of reach, even before considering format discrepancies.

If you want to do the other way around, it might be possible with other tools. You should be able to extract FMVs from the disc image using generic PSX ISO tools (something like that). And then surely video editing tools should be able to change the format of whatever you extracted from PSX into an OGG video, which can then replace the OGG videos used for the PC version (the audio tracks of FMVs are not as easily accessible on PC but are archived in p0data62.bin; more infos there).

Arthandas

  • *
  • Posts: 17
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1964 on: 2023-08-10 20:34:22 »
Hi. I wished I have this kind of almighty power ^^'
No, it is not possible to increase the data size of the PSX version to my knowledge, so inserting the heavy FMVs of the PC version in the PSX disc image is out of reach, even before considering format discrepancies.
I had to ask :) I know it won't run on original psx even if I managed to swap them but I'm hoping it's somehow possible when emulating in RetroArch for example.

If you want to do the other way around, it might be possible with other tools.
Why would I want to swap those high res movies? xD
Anyway, thanks for your time :)

Tirlititi

  • *
  • Posts: 883
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1965 on: 2023-08-26 21:39:32 »
Update to v0.50
-------------------


- Added compatibility with many of Memoria's features when it is installed:
-- You can create new spells, supporting abilities, commands, playable characters, sword magic sets, (key) items, (synthesis) shops, with custom IDs. Many limitations are also removed, like the number of abilities taught by items, the recipe ingredient count for synthesised items, etc...
-- Many numerical values or IDs are not capped anymore. This doesn't apply to the datas for enemies as they still use the native binary format, even when modding with Memoria. To bypass these limits, you need to manually use Memoria's BattlePatch.txt feature.
-- You can attach weapon / armor / usable effects to any item, so weapons and jewels can increase defensive stats and exotic items can have multiple usages.
-- HW provides an interface to multiple recent Memoria features (boosted supporting abilities, custom textures for weapons...).
-- When adding custom playable characters, you can setup various datas that are required for them to be full-fledged characters. That includes the set of battle animations that they use. However, this isn't magic: you still need to create animations for them as they will have a limited set of animations available from the base game anyway. On top of that, Memoria doesn't like it if you use the same battle animation for two different logical animations (eg. if you use the same animation for "stand" and "stand weak"). The solution for now is to duplicate these animations (using eg. the Unity Assets Viewer) and just give another name to the duplicate. Eventually, Memoria will do that automatically I guess. Also, you'll most likely need to use Memoria's Model Viewer to see at least the skeleton and know which bone ID corresponds to which part of the model.
-- The CSV generated entries are now compared with Memoria's default database and only the new entries and the modified entries are kept. For example, if you only change Thunder Slash's effect, the corresponding CSV will only contain Thunder Slash's entry. This improves mod compatibility and can also help for writing down a description of your mod (keeping track of what you've modified more easily). The same goes for the .mes files (which contain entry names and descriptions).
-- Added a feature for completing the scripting system with custom functions. That's not really something you can use for now but it will be used in the future when Memoria accept new functions to be used in scripts (like, for example, a function "SetCharacterLevel" or "GetTetraMasterRank" to be used in cutscenes). It will allow me to implement support for these functions without having to update the tool each time.

- The list of equipments that each character can equip can now be modified both in the "Inventory -> Items" panel and in the "Party -> Stats" panel. This makes it easier depending on whether you want to think of equipment availability as a per character or per item feature. The equipment availability of custom characters may only be changed in the "Party -> Stats" panel.

- Fixed a couple of errors when de-compiling scripts (AI scripts, field and world map scripts): in some situations, a "break" keyword was added outside of any breakable block. It made it impossible to recompile directly the concerned functions. Sometimes, that "break" was only an extra line that should have just been removed, but sometimes it was a symptom of a more problematic error in the de-compilation of switch(ex) blocks. Now, a commented "// JMP(0)" line is written as placeholders for these exotic situations. Example of functions that were concerned are:
-- "Blue_Narciss_Loop" in World Map scripts, and similar functions for the other transport vehicles,
-- A couple of functions in Scarlet Hair's script (also in a fight against Zorn & Thorn if I recall correctly),
-- A couple of model "Init" functions in fields that just had an extra "break" line where it shouldn't.

- Reworked the way that argument expressions (and "set" expressions) are parsed: they now take operation priority into account so you less need to add parentheses everywhere to force the priority. For example, the expression "set x = 3 * 2 + 5" now parses as "set x = ((3 * 2) + 5)" instead of "set x = (3 * (2 + 5))".

- Fixed a bad practice in my C++ coding that lead the executable's size (and the compilation time!) to be much bigger than it should have (approx. x4).

- Improved a bit (or at least tried) the interface for a couple of panels. The IDs of entries are shown directly when selecting them, which makes things easier in specific situations in which a number corresponds to an ID (eg. for the effect of the Blue Magic "Angel's Snack" in which the spell's power corresponds to the ID of the item used).

- Added a bit of readability for the World Map functions that trigger on specific areas: the region concerned is now shown on the minimap. Also, the keyword "forward" is now used in these scripts instead of having an empty function. It means "use the same code as the one in the next function" and it can only be used if it's the only line of the function.

- Fixed batch script importing not working correctly depending on the Unicode encoding of the .txt.

- Various small bug and typo fixes.


For the first time ever, I could successfully batch export all the field scripts of the game and batch import (and thus compile) them back with no problem. I did that with multiple steps because it gets very slow and very long if you batch-import just one huge file containing all the scripts of the game, but it worked flawlessly. Until now, there was always a couple of rare functions that had a de-compilation problem and required manual fixes.

On the downside, I do not guarantee the Randomizer embedded tool to work correctly if you have more spells than the base 192 spell slots or things like that.

Most of "Creating new spell / command / etc" features are accessible only with a right-click: don't hesitate to try right-clicking on lists to see if you can add or remove entries.
When adding new supporting abilities, you need to manually create an effect for them in AbilityFeatures.txt: that part cannot be done inside Hades Workshop.

EDIT: Updated with a hotfix to remove the error message when "ScriptAPI.txt" doesn't exist.
« Last Edit: 2023-08-27 20:02:57 by Tirlititi »

stir472

  • *
  • Posts: 18
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50)
« Reply #1966 on: 2023-08-29 00:08:33 »
Thank you very much for this update, in an incredible job that you are doing, during Saturday and Sunday I will test

Arthandas

  • *
  • Posts: 17
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50)
« Reply #1967 on: 2023-09-08 17:09:55 »
What a great tool, I used it on the psx version to set the lv 2 required exp to 9999999 to enforce a lv1 challenge :) Thanks!

Tirlititi

  • *
  • Posts: 883
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #1968 on: 2023-09-14 17:03:01 »
Update to v0.50b:
- Fix shops having trailing hammers to sell in some situations.
- Fix "ObjectUID_" in scripts so they adapt if you add or remove entrie.
- Add a copy/paste feature for texts. Only enemy, world map and field texts can use this feature.
- Text files (.mes) are not generated anymore if they are empty.
- item icon colors are not limited to just 15 anymore, but the color 15 should still be used solely for the "disabled" icon of the kind.
- Add a couple of interface improvements (mainly some more IDs are displayed).
- Add a couple of functions that can be used in scripts with Memoria.

The new available script functions will only work in-game when using the latest commit of Memoria. So that's something going on together with Memoria updates. For now, the new functionalities are these:
- "SetCharacterEquipment / GetCharacterEquipment" => control over individual pieces of equipements within scripts, so you are not restricted by "initial equipement sets" anymore.
- "SetCharacterLevel / SetCharacterExp / GetCharacterLevel / GetCharacterExp / GetLevelExperience" => control over character experience and levels.
- "AddShopItem / AddShopSynthesis / IsItemInShop / IsSynthesisInShop" => dynamically add or remove items that are sold by specific shops. I was thinking of a kind of synthesis recipe system in which you can find key items that unlock new items/synthesis to be bought.
- "WalkEx / TurnTowardObjectEx / SetLogicalAnimationEx" => more flexible control for cutscenes. Using these should make it easier as more cutscene code can be written in a single function and not splitted apart.
- "CardWinCount / CardLossCount / CardDrawCount / GetCardPoints / GetCardRank / GetTreasureHunterPoints" => access some mini-game points in scripts.
- "ConvertRegularItemId" / etc... => some utility functions required because of the fact you can add items over the 256 limitation.
- "GetPartyMember" => know which characters are in the party, a bit different from the existing "IsInParty".
- "GetItemFullCount" => the number of items of a specific type taking the equipped ones into account as well.
- "IsAbilityLearnt / IsSupportEnabled" => know more about what the party members can do combat-wise.


EDIT: I made a short video showing some of these script possibilities in action.
Link to video
Link to the corresponding script code

EEDIT: I made another small update (still calling it v0.50b) to fix a crash that happened sometimes when selecting negative numbers in the script editor.
« Last Edit: 2023-09-22 10:11:23 by Tirlititi »

paky-outsider

  • *
  • Posts: 11
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.43)
« Reply #1969 on: 2023-10-16 10:22:50 »
Stuck in the marsh.

Hi Tirlititi,
I've an issue with my psx mod.
I'm trying to replace Quina, Eiko and Amarant by Cinna, Marcus and Blank with their own trance, obtained by removing change model line in the trance activate spell animation, and their own support abilities, by a trick in the beginning of the game.
CD1 works fine: for example in Burmesia, with this code for Cinna 5,1,255,21,8 the game thinks Quina is in the party, so on field and on the cinematic scenes she is present, but in the menĂ¹ and in battle Cinna is on. (In the Marsh, i've to modify in some fields the lines isinparty(5) to isinparty(9) 'cause only like this you can start the frog game, for some reason in these fields the game "see" Cinna and not Quina, with the code 5,1,255,21,8.
Now in cd2 the issue is this.
I'm going to start Fossil Roo sequence.
To do that, after destroyed lindblum, i've to go to qu's Mars, and find the enter of Fossil Roo.
Now...the game with that code for Quina/Cinna, thinks i'm with Cinna...so the quina's find fossil roo entrance sequence is triggered and i cant find it, so i'm stuck in the marsh.
So many tries to use RemoveParty lines before that point of the game but useless, the game see Cinna's code like yet.
So I've tried, but with no working results, to modify field region range code for fields 0655, 0660... to directly access to the Fossil Roo entrance in field 0662...
(Isinparty check moved from 5 to 9 in 0655 and in 0660, no results ; in 0660 field change the region that allow the access to 0655 field, moved from 0655 to 0662, no results).

Can you help me to do that?
Or suggest other options?


Hi.

It's not easy to add a brand new NPC even with minimal interaction, but it is possible to add Beatrix in the party, even in the PSX version. Indeed it's impossible to have both Blank and Amarant simultaneously because they share a common slot. It'd also be problematic to switch between Blank and Amarant back and forth because it would lose some of Amarant's datas in the process.
Basically, you need to add this kind of function to a NPC in a field script. You can add a NPC that normally doesn't appear by adding an entry, but beware that 3D models are field-dependant on the PSX version and you can't have a NPC appearing in a field in which they would never appear otherwise.
Code: [Select]
Function Man_SpeakBTN
    ifnot ( IsMovementEnabled ) {
        return
    }
    set VAR_GlobBool_158 = 0
    if ( VAR_GlobBool_159 == 1 ) {
        DisableMove(  )
        if ( VAR_GlobBool_144 == 0 ) {
            DisableMenu(  )
        } else {
            Wait( 1 )
        }
    }
    SetTriangleFlagMask( 127 )
    WindowSync( 2, 128, XXX ) // Use whatever dialog line you want, like "Hello, here's a Beatrix for your party."
    set Setting_PartyReserve = 511 // 511 is "all the usual party members + Beatrix
    Party( 4, 1 ) // Open the party menu to allow the player to place Beatrix in
    set VAR_GlobBool_158 = 1
    if ( VAR_GlobBool_159 == 1 ) {
        if ( VAR_GlobBool_156 == 0 ) {
            EnableMove(  )
            SetTriangleFlagMask( 255 )
            if ( VAR_GlobBool_144 == 0 ) {
                EnableMenu(  )
            }
        }
    }
    return
You can add things like "TurnTowardObject( 250, 32 ) / WaitTurn(  )" to make add fanciness, but the main line is changing the "Setting_PartyReserve". Also, if you use this code before Beatrix joined your party the first time, you need a line like "SetCharacterData( 8, 1, 13, 22, 15 )" as well.

By the way, whether it's Blank or Amarant in your party depends on the flag "temporary character" in the corresponding "SetCharacterData" line that was last used on their shared slot.
Code: [Select]
SetCharacterData( 11, 1, 10, 21, 12 ) // Setup Blank
SetCharacterData( 7, 0, 7, 5, 7 ) // Setup Amarant instead

Tirlititi

  • *
  • Posts: 883
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #1970 on: 2023-10-16 12:05:43 »
Hi paky-outsider,

Wouldn't it work to just replace all the occurences of "IsInParty(5)" by "IsInParty(9)", as you've started to do?
You can batch-export the field scripts and do some "search & replace" operation. Normally, you should even be able to batch-reimport the scripts easily then, even though I've not tested with the PSX version and it may bug if there are too many scripts.

The problem with making links to other fields in the PSX version is that it doesn't work well as the game needs to preload some datas. I wouldn't try to hijack the field exits like that in the PSX version.

paky-outsider

  • *
  • Posts: 11
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #1971 on: 2023-10-16 17:55:05 »
Thanks for the fast reply Tirlititi.
Tonight I'll make a couple of tries to figure it out by replacing isinparty(9) all over marsh's fields.

In order the HW's new features in yours recent posts, is possible to use them with psx version?

EDIT: In my previous attempts I've missed one single isinparty's check, exactly in 0655 field, function main. Now it works.


Hi paky-outsider,

Wouldn't it work to just replace all the occurences of "IsInParty(5)" by "IsInParty(9)", as you've started to do?
You can batch-export the field scripts and do some "search & replace" operation. Normally, you should even be able to batch-reimport the scripts easily then, even though I've not tested with the PSX version and it may bug if there are too many scripts.

The problem with making links to other fields in the PSX version is that it doesn't work well as the game needs to preload some datas. I wouldn't try to hijack the field exits like that in the PSX version.
« Last Edit: 2023-10-17 16:27:10 by paky-outsider »

g_west

  • *
  • Posts: 31
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #1972 on: 2023-10-24 17:42:08 »
Hey Tirlititi,

Fist off, thank you for the awesome update. I didn't even realize you were still working on it.

I had a question. I know you edited the game so that Quan's Dwelling scene couldn't be done until disc four, and I was wondering if I could do something similar. I wanted to edit the colored stone deposit shrine on the Conde Petie Mountain Path (1554: Mountain Path/Roots) so that you can't deposit the items on disc 2, only on disc 3. I was hoping to simply edit the message that pops up if you try to do it on disc two with something along the lines "looks like it's not working."

If this is too difficult, or not possible, it occurred to me that I can just hide one of the stones somewhere else in the world only available in disc three, and make the player come back later.

g_west

  • *
  • Posts: 31
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #1973 on: 2023-10-24 17:47:44 »
Hey Tirlititi,

Fist off, thank you for the awesome update. I didn't even realize you were still working on it.

I had a question. I know you edited the game so that Quan's Dwelling scene couldn't be done until disc four, and I was wondering if I could do something similar. I wanted to edit the colored stone deposit shrine on the Conde Petie Mountain Path (1554: Mountain Path/Roots) so that you can't deposit the items on disc 2, only on disc 3. I was hoping to simply edit the message that pops up if you try to do it on disc two with something along the lines "looks like it's not working."

If this is too difficult, or not possible, it occurred to me that I can just hide one of the stones somewhere else in the world only available in disc three, and make the player come back later.

I just thought of something. The easiest solution would be replacing one of the stones with an ore. The other solution would be having a message pop up at one of the stone shrines that says "it seems to be empty," and then placing the stone somewhere else. My only problem is I have no idea how to go about doing that.

Tirlititi

  • *
  • Posts: 883
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #1974 on: 2023-11-05 11:05:27 »
@paky-outsider: No, they are mostly done for the PC version and even for the PC version that is modded with the Memoria Engine Mod.
These 3 points apply to the PSX version as well, but that's pretty much it.
- Fix "ObjectUID_" in scripts so they adapt if you add or remove entries.
- Add a copy/paste feature for texts. Only enemy, world map and field texts can use this feature.
- Add a couple of interface improvements (mainly some more IDs are displayed).


@g_west: These are handled by the field scripts (in "Environment -> Fields -> Edit Script" windows).

The functions that are relevant to this side-quest are mostly those:
1) Picking up the Red Stone: Field Mountain Path/Trail (1550), Function Zidane_48
2) Picking up the Blue Stone: Field Mountain Path/Trail (1551), Function Zidane_15
3) Picking up the Yellow Stone: Field Mountain Path/Roots (1555), Function Zidane_22
4) Picking up the Green Stone: Field Mountain Path/Roots (1557), Function Zidane_14
5) Placing all the stones: Field Mountain Path/Roots (1554), Function Zidane_16

The picking-up functions all look roughly the same. Something like that:
Code: [Select]
Function Zidane_48
    TimedTurn( Angle(2000, 850), 32 )
    WaitTurn(  )
    SetStandAnimation( 2605 ) // Crouch
    RunAnimation( 2607 ) // Idle crouching
    WaitAnimation(  )
    SetTextVariable( 0, 300 ) // "Red Stone"
    WindowSync( 0, 0, 143 ) // "[Item] is set on the stone. Take it out Leave it alone"
    if ( !GetDialogChoice ) {
        Wait( 10 )
        RunSoundCode3( 53248, 1340, 0, -128, 125 ) // Play Sound
        Wait( 10 )
    }
    SetStandAnimation( 200 ) // Idle
    RunAnimation( 2591 ) // Stand up
    if ( !GetDialogChoice ) {
        RunSoundCode3( 53248, 108, 0, -128, 125 ) // Play Sound
        AddItem( 300, 1 ) // Add the Red Stone key item
        SetTextVariable( 0, 300 ) // "Red Stone"
        if ( 1 ) {
            WindowSync( 7, 0, 58 ) // "  Received [Item]!  "
        } else {
            WindowSync( 7, 0, 59 ) // Unused - "  Received [Item] Card!  "
        }
        set VARL_GenBool_2864 = 1
    }
    WaitAnimation(  )
    return
So you see, by changing the ID "300" to something else, you can change the item given at these statues. It also shows how items are given to the player so you can do something similar later on on disk 3.

The function for placing the stones is a bit more complicated (in particular, it uses a variable "VARL_GenUInt8_358" with bitwise operations to keep track of which stones are already placed). It could be done to add another stone requirement (like a custom made "White Stone" or whatever) that would only be picked up in disk 3, but indeed the easiest is to change the reward in one of the pickup spot above + add the missing stone later on in disk 3.

In order to give the missing stone later on, check how to change a chest content that I wrote a long time ago. Most of the time, you'll want to search for the "Chest" functions in field scripts or possibly the "Zidane_XX" functions when the items are placed on the floor and not inside a chest.
It is also possible to add a whole new chest, so you don't replace any other treasure. For that, you mostly need to:
1) Create a new entry in the "Edit Entries" window, of type "Object" (because it will be linked to a chest 3D object).
2) Add functions for that new entry, at least a "Init" (a function of type 0) and a "Range" (a function of type 2). Adding functions is done by right-clicking on the list of functions in the script window. These two functions should be like the functions for existing chests. The "Init" function for instance could look like that:
Code: [Select]
Function ChestA_Init
    SetModel( 75, 0 ) // The model of "ChestA"
    CreateObject( [COORDINATES: Chest position on the field] )
    TurnInstant( [ANGLE: Chest facing angle on the field] )
    SetObjectLogicalSize( 1, 40, 45 )
    SetStandAnimation( 7340 ) // Dummy Close
    SetWalkAnimation( 7340 ) // Dummy Close
    SetRunAnimation( 7340 ) // Dummy Close
    SetObjectFlags( 5 )
    SetHeadFocusMask( 2, 0 )
    if ( [CONDITION: Chest content already picked up] ) {
        SetStandAnimation( 7338 ) // Dummy Open
    } else {
        SetStandAnimation( 7339 ) // Dummy Close
    }
    SetObjectFlags( 49 )
    EnableHeadFocus( 0 )
    return
3) Add a line "InitObject" next to the others in the function "Main_Init" to actually create the chest object when entering the field.


Sorry for the late answers.