[PSX/PC] General editor - Hades Workshop (0.50b)

  • Thread starter Thread starter Tirlititi
  • Start date Start date
Status
Not open for further replies.
Thanks again for you kind help Tirlititi, now I'm checkin!
 
Last edited:
Tirlititi  the error comes from 0.40 version only 0.30 works fine as long as u dont apply ppf patches to the discs for field loadings.

also u know anything about code for frogs in swamps, i wanna make em spawn like 10x faster lol
 
Hi Resinate, thank you for telling me the version that bug comes from.

Unfortunatly, the frog respawn is a mystery to me. I tried to understand what was all the variables doing but I failed to interpret things correctly...
On top of that, there is no "GetTime" call in any of the marsh fields, so I guess it means that the respawn doesn't depend on the time but on something else...
 
Hi Tirlititi, so I'm trying to "familiarize" with Variables.. but I need more help, as always..

So..now I create a new Variable, called "VARL_GenBool_8000"

And on the Evil forest Swamp I made something like that

>Code: [Select]
Code:
  0xA9( 250 )        FadeFilter( 6, 24, VAR_GlobUInt8_17, 255, 255, 255 )        Wait( 25 )        if ( VAR_GlobBool_167 == 1 ) {            RunSoundCode( 265, 65535 )            set VAR_GlobBool_167 = 0        }        if ( VAR_GlobBool_162 == 0 ) {            if ( VAR_GenUInt8_13 < 9 ) {                set VAR_GenUInt8_13 = 3            }            RunSoundCode1( 20864, 655, 0 )        }        if ( VAR_GlobBool_163 == 0 ) {        }        set VARL_GenBool_8000 = 0        set General_FieldEntrance = 27        Field( 250 )    }    return

Then, on the Field 250 I want that Blank was playable on this Field and at this point, so I made something like this in the Main Init

Code: [Select]
Code:
   } else {        set VAR_GlobUInt8_30 = 0        InitObject( 10, 0 )        InitRegion( 8, 0 )        InitRegion( 9, 0 )    }    if ( !VARL_GenBool_8000 ) {        InitObject( 17, 0 )        InitRegion( 8, 0 )        InitRegion( 9, 0 )

I missing something? For sure I did...!! Sorry to bother again..but I tried to understand the problem but I seriously don't know what's my error..

It' sure that I have to intervene also in other codes..but.. I  hope you can guide me!
 
Last edited:
Tirlititi did u ever make a patch for psx version to enable marcus to equip ability stones?
 
@ToraCarol: Your code is not what I suggested to do.
- You have a line "set General_FieldEntrance = 27": I suggest to replace it by "set General_FieldEntrance = 10".
- I suggested to use the following in the field 250:
Code: [Select]
Code:
    } else {        set VAR_GlobUInt8_30 = 0        if ( General_FieldEntrance != 10 ) {            InitObject( 10, 0 )            InitRegion( 8, 0 )            InitRegion( 9, 0 )        } else {            InitObject( 17, 0 )        }    }// Instead of what you have//    } else {//        set VAR_GlobUInt8_30 = 0//        InitObject( 10, 0 )//        InitRegion( 8, 0 )//        InitRegion( 9, 0 )//    }//    if ( !VARL_GenBool_8000 ) {//        InitObject( 17, 0 )//        InitRegion( 8, 0 )//        InitRegion( 9, 0 )//    }
You may do things differently than I suggested, but with the little piece of changes that I suggested, you should already get to the entrance of the Evil Forest and have Blank showing up after the Plant Brain cinematic.

There, you say that you have an error but you don't say what is not working!
Is it HW that tells you that there is an error? Is there a crash in-game? Is it that nothing changes?

@resinate: No, sorry. It deals with MIPS code and I completly deserted that.
 
Oh my! Forgive me!! I totally forgot this step  :-[ :-[ :-[ :-[

Code: [Select]
Code:
  if ( General_FieldEntrance != 10 ) {
Now I've changed. So the code is exactly like that.

And yes.. forgive me about that too! The error is nothing related to HWS but inside the game

you should already get to the entrance of the Evil Forest and have Blank showing up after the Plant Brain cinematic
The problem is right here, when there's the fadeout from the Cinematic to the Field 250 there's simply a black screen, so..no Blank or else is showing! Why? What did or didn't I do? :| 

Nothing particular is touched. Now what I have is just the code you suggested me, the Blank entry and the Field changed after the cinematic on the Swamp.

ps: And another quick question.. meanwhile I was waiting for the reply I just started to work on the other Fields, on the Blue Narciss I put the scripts from my Steam Project.. and everything is cool to HWS too, every  entry is set right, and every script is at his place..

Code: [Select]
Code:
 RunScript( 2, 2, 15 )        Wait( 3 )        WindowSyncEx( 2, 0, 128, 86 )        RunScript( 2, 4, 14 ) <-- This script does not react        WindowSyncEx( 4, 0, 128, 276 )

The function is a simple animation of Zidane, so is strange, because as I said everything, entry and functions are in their own place and on Steam works fine!
 
Last edited:
im looking around, how does one change a chars level and exp. im trying to change npc on disc 3 where u show card from instead of renaming u can reset chars for boosting stats

from testing stuff i have few chars working but i need help with rest of the op codes if ANYONE can pls help me

SetCharacterData( 0, 1, 255, 9, 0 )i found this so far
but i cannot find code for level and exp
 
Last edited:
@ToraCarol: I don't know what could prevent the field to load (or the fading to happening). Have you properly setup Blank's init function?
The script not reacting can be because Zidane is already moving, which cancels his animation to play? If he's walking and you use a "RunAnimation", I think that it doesn't work. You can also try to replace this line by a "RunAnimationEx( 4, ... )".

@resinate: It is not possible to have a real control over the level and experience of the characters through scripts, unfortunatly.
Fortunatly, it is possible to reset someone to lvl 1: you need to use that "SetCharacterData" line but with an empty party reserve.
It would be like this:
Code: [Select]
Code:
set Setting_PartyReserve = 0SetPartyReserve( Setting_PartyReserve )SetCharacterData( 0, 1, 255, 255, 255 ) // Using 255 prevents unwanted changesSetCharacterData( 1, 1, 255, 255, 255 )SetCharacterData( 2, 1, 255, 255, 255 )// etc... for each characterset Setting_PartyReserve = 255 // Use 511 instead if Beatrix should be availableSetPartyReserve( Setting_PartyReserve )
 
Heres the script everything works BUT zidane vivi and quina
case 1 and 2 are switched cuz of how they coded the text box in game.

Function Entry16_Init
    set VAR_GenUInt16_21 = 0
    SetPartyReserve( VAR_GenUInt16_21 )
    switch 8 ( GetDialogChoice ) from 0 {
    case +0:
        SetCharacterData( 0, 1, 255, 255, 255 )
        break
    case +1:
        SetCharacterData( 2, 1, 255, 255, 255 )
        break
    case +2:
        SetCharacterData( 1, 1, 255, 255, 255 )
        break
    case +3:
        SetCharacterData( 3, 1, 255, 255, 255 )
        break
    case +4:
        SetCharacterData( 4, 1, 255, 255, 255 )
        break
    case +5:
        SetCharacterData( 5, 1, 255, 255, 255 )
        break
    case +6:
        SetCharacterData( 6, 1, 255, 255, 255 )
        break
    case +7:
        SetCharacterData( 7, 1, 255, 255, 255 )
        break
    }
    set VAR_GenUInt16_21 = 255
    SetPartyReserve( VAR_GenUInt16_21 )
    TerminateEntry( 255 )
    return


whats the psx variable of "set Setting_PartyReserve = 0"
some reason 16_19 and 16_21 do same thing
 
Last edited:
Thank you Tirlititi, and sorry again..I'll check the problem and let you know


ps: And another quick question.. meanwhile I was waiting for the reply I just started to work on the other Fields, on the Blue Narciss I put the scripts from my Steam Project.. and everything is cool to HWS too, every  entry is set right, and every script is at his place..

Code: [Select]
Code:
 RunScript( 2, 2, 15 )        Wait( 3 )        WindowSyncEx( 2, 0, 128, 86 )        RunScript( 2, 4, 14 ) <-- This script does not react        WindowSyncEx( 4, 0, 128, 276 )

The function is a simple animation of Zidane, so is strange, because as I said everything, entry and functions are in their own place and on Steam works fine!
Any idea about this STRANGE problem?
 
yea for some reason "SetPartyReserve" doesnt effect zidane vivi and quina thats on disc 4 other 6 chars work 100% fine
 
@resinate: No idea. Those characters don't have any special traitment :o
"VAR_GenUInt16_21" and "Setting_PartyReserve" are synonymous indeed ("Setting_PartyReserve" appeared in more recent versions of HW but you can still use "VAR_GenUInt16_21").

@ToraCarol: I answered that about it.
The script not reacting can be because Zidane is already moving, which cancels his animation to play? If he's walking and you use a "RunAnimation", I think that it doesn't work. You can also try to replace this line by a "RunAnimationEx( 4, ... )".
 
still trying to figure it out, as it seems i was wrong that ONLY eiko can be reset to lvl 1 no one can, just updates their levels

well i guess ff9 has its limits, really sucks u cant level reset anyone in game had some huge potential with this...... seeing ppl only responding once a day everyones has a busy plate lol
 
Last edited:
yea after hours of researching there is no possible way to change a chars levels after obtaining them.

if anyone knows a method lemme know, all i know is eiko is only char in ff9 that can be reseted.
 
Last edited:
@resinate: No idea. Those characters don't have any special traitment :o
"VAR_GenUInt16_21" and "Setting_PartyReserve" are synonymous indeed ("Setting_PartyReserve" appeared in more recent versions of HW but you can still use "VAR_GenUInt16_21").

@ToraCarol: I answered that about it.
Oh sorry.. mistake of mine
 
tril have u had a chance to find out why eiko is only char in ff9 that can be reseted back to level 1? wish someone would talk to me in discord lol i really wanna figure this out

i need help in finding a way to reset this code block to zero, if i can do that i can reset chars back to level 1 with it.

        if ( ( ( VAR_GenUInt16_19 >> 0 ) & 1 ) == 0 ) {
            SetCharacterData( 0, 1, 0, 9, 0 )
            set VAR_GenUInt16_19 |= 1
        }

how do i set int16_19  back to 0?
 
Last edited:
Ok.
I've double-checked what the "update level" option does and it can't be used to level down the characters...
Code: [Select]
Code:
if (update_lv) { int num = ff9play.FF9Play_GetAvgLevel(slot_no); int lv; if (pLAYER.info.serial_no == 10 || pLAYER.info.serial_no == 11)  lv = num; else  lv = Mathf.Max((int)pLAYER.level, num); ff9play.FF9Play_Build(slot_no, lv, null, false);}
Except for the character serial number 10 and 11, which is indeed Eiko (she has 2 different serial numbers because she can wear two different kinds of weapons, flutes and rackets), the script is not allowed to reduce the level in any way.

In the Steam version, you can use the tool dnSpy (or even HW's CIL code modding for this) to edit the code above and remove that "take the max" line. It's in the class "ff9play" and its method "FF9Play_Change".
 
what about dagger? she can use 2 weapons also and she doesnt reset

closest ive gotten so far was using party 512 or 1024 and it does set everyone's level to that level, prob is i cant reset those 2 levels lol.

only method i can see is trying to unregister the chars

btw whats this lol FF9Play_ChangeLevel

if ur here can u look up what these are.

        0xA3( 0, 0, 0, 0 )
        0x76( 0, 0 )
        0x77( 0, 0 )
        0xC3( 0, 0 )
        0xC9( 0, 0, 0, 0, 0 )

i found this         0xDB( 0, 0 ) which 1st aug is char id but no clue what 2nd is
 
Last edited:
Status
Not open for further replies.
Back
Top