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

lyokoffx

  • *
  • Posts: 27
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1425 on: 2019-02-17 16:55:43 »
Thank you for your support

1- I downloaded several msvcrt.dll on the net and copied them in the same directory but with the same error

is there a solution ?

2- thank you very much for "FF9 Reverse" and for your franchise for spell models

And thank you in advance
« Last Edit: 2019-02-17 16:57:33 by lyokoffx »

resinate

  • *
  • Posts: 96
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1426 on: 2019-02-18 03:05:15 »
im trying to add this to a boss on disc 3 and getting this error code - " - Not enough space : data is 32 bytes too heavy"

    while ( VAR_LocUInt8_80 > 0 ) {
        if ( #( SV_FunctionEnemy[HP] <=$ 10000 ) ) {
            set VAR_LocUInt8_80--
            set SV_FunctionEnemy[HP] =$ FirstOf(SV_FunctionEnemy[MAX_HP])
        }
        Wait( 1 )
    }
« Last Edit: 2019-02-18 05:55:10 by resinate »

Tirlititi

  • *
  • Posts: 874
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1427 on: 2019-02-18 16:26:28 »
@lyokoffx: Are you sure that you downloaded the good DLL? There are several DLLs with nearly the same name.
What's your error?

@resinate: That's because of the PSX space limitations :/
You need to compress the code a bit in order to regain those 32 bytes. Which enemy is your boss based on?
Most of the time, in the ATB function, there are lines like this:
Code: [Select]
set #( SV_Target = ... )You can turn them to this to gain a little space:
Code: [Select]
set SV_Target = ... Other space optimisations depend on the code, that's why I ask what is the base enemy.

Kefka

  • *
  • Posts: 202
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1428 on: 2019-02-18 19:59:15 »
@Kefka: I don't know if you did it already, but you can add a "Stona-kill" like this:
Code: [Select]
case 12:
    if (FF9StateSystem.Battle.FF9Battle.add_status[(int)cALC_VAR.cmd.aa.AddNo]==2147483649u && btl_util.CheckEnemyCategory(target, CATEGORY_STONE))
    {
        if (btl_calc.CalcSub_12A(cALC_VAR)) // CheckPetrifyDeathMiss
        {
            btl_calc.SetEnforceHP0(target);
            UIManager.Battle.SetBattleFollowMessage(25, new object[0]); // "Became too soft to live."
        }
    } else {
        btl_calc.CalcSub_302(cALC_VAR); // DoRemoveSpellStatus
    }
With this, spells that cure exactly the statuses Petrify and Gradual Petrify will also kill stone enemies. Esuna will not.

For the duration of statuses, it's in the method "btl_stat::AlterStatus". Near the end of the method, you have this block:
Code: [Select]
if ((status & 4026466304u) != 0u)
{
short num6;
if ((status & 2601713664u) != 0u)
{
num6 = (short)(60 - btl.elem.wpr << 3);
}
else if ((status & 619446272u) != 0u)
{
num6 = (short)(btl.elem.wpr << 3);
}
else
{
num6 = (short)(60 - btl.elem.wpr << 2);
}
btl.stat.cnt.conti[(int)((UIntPtr)(num - 16u))] = (short)(status_data[(int)((UIntPtr)num)].conti_cnt * (ushort)num6);
}
That's the formulae to change for the duration. The first formula is for negative statuses, the second is for good ones and the last is the default (I think it's used for Berserk only). You can of course split the internal "if" blocks to have a formula specific to each status.

Congrats for modifying the damage formula of these other spells :)

Thanks for the reply, tirlititi! Your suggestion for the Stona spell works like a charm! I didn't know that it was possible to add checks for which statuses are cured exactly, so I hesitated about altering the Cure Status formula for fear of screwing up other status curing spells like Esuna or Antidote.

But concerning the status duration formulas, I still got a few questions:

1) Why does Berserk have a separate duration formula? For all I know, Berserk is a permanent status, isn't it?

2) About the last line from that code you posted:

Code: [Select]
btl.stat.cnt.conti[(int)((UIntPtr)(num - 16u))] = (short)(status_data[(int)((UIntPtr)num)].conti_cnt * (ushort)num6);
At first I wasn't sure how to read this exactly, but then I found an older post from you from last year when we were first talking about this topic (it was on page 40 of this thread). There you posted the following (back then we didn't have DnSpy so I tried to do it via Hades Workshop's Cil code instead):

Quote
However, for the durations of the statuses, they are in 2 spots and it is not possible to edit either of them :/
- In "btl_stat::AlterStatus", a page before the end, there are 3 similar formulas "Duration = (60 - spirit) << 3" (for bad statuses and jump), "Duration = spirit << 3" for good ones and "Duration = spirit << 2" by default (it doesn't seem to be used). You can't edit this method because it's too big and CIL editing tends to bug with big methods.
- In FF9BattleDB (.ctor), there is the setup of "STAT_DATA", a class for status informations, including a multiplier used after the formulas I gave above. You can't modify the method because it's too big and anyway it is one of the few methods that are specially handled by HW and modified by other means.

I've looked into this FF9BattleDB::status_data with DnSpy, and there's a list of 32 statuses. Unfortunately they aren't labeled, so I don't know for sure which order they are in, but I noticed that the third byte is 0 for the first 16 statuses, and then has a value for the following 16 statuses. Not sure about the other bytes, but I'm guessing that this third byte is that multiplier you were referring to, and that would mean that the first 16 statuses in that list are the permanent status effects and the following 16 statuses are the temporary ones, right?

So the complete formula for calculating status duration should be:

Status-specific multiplier * that "num6" value from above (the one that uses the Spirit stat)

And that is the number of frames (or "ticks") that have to pass before the status wears off.

Are my assumptions correct so far? I've already playtested a bit and successfully increased the duration of both positive and negative statuses, now it's only a matter of finding a fair balance for each.

3) Onto my last question: it bugged me a bit when I re-read in your older post that Jump was also a "status effect", that might be a bit annoying. I wanted to increase the usefulness of spells like Protect and Shell, but I don't want jumping to take forever so I'd like to lower the multiplier of that one. You don't happen to know which of these statuses in the list in FF9BattleDB::status_data refers to the Jump status, do you? I guess I could find out through trial and error, though. Anyway, many thanks for guiding me so far, you've been a great help!

Tirlititi

  • *
  • Posts: 874
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1429 on: 2019-02-19 19:34:47 »
1) You are right, Berserk is permanent, my bad. It's not that it would have had a "special treatment", it's more that there is a duration formula for bad statuses, another one for good statuses and a default formula (that is never used then, if I'm not mistaken).

2) Yes exactly. I thought that this status-specific multiplier was the same for all the statuses, I remembered wrongly.
The order of the statuses in that list is the same as the order in HW when it's displayed in rows of 4 statuses (so starting with Petrify, Venom, Virus, Silence, Darkness...).
The different numbers there are "byte priority, byte opr_cnt, ushort conti_cnt, uint clear, uint invalid" (the class is defined in FF9/STAT_DATA). "opr_cnt" defines the rate of occurence for Regen/Poison/Venom, "clear" is a byte-list of statuses that are removed when the status in inflicted and "invalid" is another byte-list of statuses that can't be inflicted afterward (it is used to prevent a permanent status to be inflicted twice for instance).
"priority" seems unused.

Below that status setup, you can see the definition of "add_status" which corresponds to the Status Sets inside HW.

3) Jump is the second to last status (the 31th) so it's the line "new STAT_DATA(0, 0, 10, 0u, 3221225471u),".
It's integer ID is 2^30 = 1073741824u.

ToraCarol

  • *
  • Posts: 120
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1430 on: 2019-02-20 19:44:10 »
Hello Tirlititi! It's a long time I don't write something here, and I'm so happy to join again with...a new problem to solve  :evil:

Sooo, I decided to try to apply the "Blank Mod" also on the PSX file. So I started with a new clean project, but for some reason I really don't know why everytime I try to check the Fields the program gave me this error


The .bin file is the Italian version of the game. The rest (Enemies, Party, Inventory, Battle Scenes, World Map etc) work perfectly, but the Field not.. and it's the same for all the discs...so..why?

Thank you again so much for all the kind help
« Last Edit: 2019-02-20 19:49:20 by ToraCarol »

Tirlititi

  • *
  • Posts: 874
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1431 on: 2019-02-20 19:52:29 »
I think that the loading of fields is bugged for the PSX version. If I recall correctly, it loads without crashing the fields of the japanese discs but completly scramble the field names.

I have no other solution than to try with older versions of HW and find one before that bug appeared, sorry.

lyokoffx

  • *
  • Posts: 27
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1432 on: 2019-02-20 20:29:11 »
Thank you for your support

here is my mistake




all I have to download the .dll is wearing this no



and thank you in advance
« Last Edit: 2019-02-20 20:57:44 by lyokoffx »

ToraCarol

  • *
  • Posts: 120
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1433 on: 2019-02-21 08:29:21 »
I think that the loading of fields is bugged for the PSX version. If I recall correctly, it loads without crashing the fields of the japanese discs but completly scramble the field names.

I have no other solution than to try with older versions of HW and find one before that bug appeared, sorry.

Don't worry! I solved with the .38 version! Thanks a bunch!

ToraCarol

  • *
  • Posts: 120
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1434 on: 2019-02-21 09:09:27 »
I know that it's not exactly related to HWS, but also it is.  ;)

Everyone knows where can I find some ready saved data for PSX (Emulator)? It's useful to me for testing without begin from the start..!  :|


Nevermind! I found everything I need  ;D
« Last Edit: 2019-02-21 11:53:01 by ToraCarol »

Tirlititi

  • *
  • Posts: 874
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1435 on: 2019-02-21 21:14:48 »
Ah, no idea then, lyokoffx, sorry...
That's a strange error. I guess it is because of a version compatibility... maybe try to run the converter as administrator or with Windows XP compatibility? There should be these options somewhere if you right-click on it.

ToraCarol

  • *
  • Posts: 120
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1436 on: 2019-02-22 14:02:57 »
I don't know if everyone asked of this before but...what about if I want to transport the character on a different Field?

I explain better... I want that in the "Evil Forest" when Zidane is going to rescue Garnet, in the end of Field 254 and the start of 256, the Field "teleports" somehow, in another part... in this case at the start of the evil Forest (250), where Blank is looking for Zidane... when he'll goes through the Fountain (after a kind of cutscene i guess) everything will be back on Zidane and his friends on the Field 256.

I don't know alot about Variables..I've seen that I have to work on Region1_Range.. but I really don't know what to do exactly without mess everything..can I have a hint?

I hope this question is clear enough  :-[
« Last Edit: 2019-02-22 14:04:41 by ToraCarol »

lyokoffx

  • *
  • Posts: 27
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1437 on: 2019-02-22 15:00:35 »
Thank you for your support

1-

maybe try to run the converter as administrator or with Windows XP compatibility? There should be these options somewhere if you right-click on it.

unfortunately I already tried the administrator mode and the same problem and also the VirtualBox virtual machine with Windows 10 and Windows 8.1
I do not know why

2-I wonder if I can start using HW

or I have to find tutorial

what is the programming language used on this program

which is less tiring to produce code unity3d or HW

My project is to produce a sequel to ff9 is this HW is Qualified for my project


and thank you for everything and thank you
« Last Edit: 2019-02-22 15:04:41 by lyokoffx »

Tirlititi

  • *
  • Posts: 874
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1438 on: 2019-02-23 12:31:09 »
@ToraCarol: Making a cutscene is never quite easy but it is possible.
It indeed begins in a "Region" function of the field 254 (Swamp). There are two regions: one going forward to field 256 (Trail) and one going back to field 253 (Spring). You want to make it so that the first time that one gets to 256, a cutscene occurs. You may do it like that in general:
Code: [Select]
// A variable that is not used ; I think that you can take 60000 and the followings for booleans (it corresponds to 7500 for the other types of variable)
if ( !VARL_GenBool_XXX ) {
    set VARL_GenBool_XXX = 1
    // Do whatever you want as a one-time event
} else {
    // Do whatever you want to be the default (in this case, going to field 256 normally)
}
You can see that there is already a code like this in the function "Region1_Range" because there's already a one-time cinematic playing when you go there for the first time. You can simply use it and change the destination field of the first case to 250 instead of 256, so you get there after the cinematic showing the Plant Brain.
There is a variable, "General_FieldEntrance" that can be used to comunicate simply between fields. Most of the time, it is used to say "where should the player appears on the field". You may also use it to say that you are not entering the field 250 normally but as a cutscene.

So change that variable to something unused ("set General_FieldEntrance = 10" for instance) and code what it should trigger inside the code of the field 250.

First, in the function "Main_Init", you want to prevent Zidane from appearing. So for these lines:
Code: [Select]
    if ( ( General_ScenarioCounter == 2010 ) && ( !VARL_GenBool_2432 ) ) {
        set VAR_GlobUInt8_30 = 1
        InitObject( 10, 0 )
        InitObject( 7, 0 )
        InitCode( 6, 0 )
        InitRegion( 8, 0 )
        InitRegion( 9, 0 )
        set VARL_GenBool_2432 = 1
    } else {
        set VAR_GlobUInt8_30 = 0
        InitObject( 10, 0 )
        InitRegion( 8, 0 )
        InitRegion( 9, 0 )
    }
Put a condition for initializing Zidane (and, while we are at it, the exiting regions):
Code: [Select]
    } else {
        set VAR_GlobUInt8_30 = 0
        if ( General_FieldEntrance != 10 ) {
            InitObject( 10, 0 )
            InitRegion( 8, 0 )
            InitRegion( 9, 0 )
        } else {
            // Init the object corresponding to Blank, like "InitObject( 17, 0 )"
        }
    }
So you need to create a new entry that is linked to Blank's 3D model. You are very lucky there because I think that Blank is one of the few models that can be accessed in any field in the PSX version (you won't be able to use a lot of animations though). The Steam version is incredibly better for that, but it's still possible...
So, right-click on the function list and add a new function. You can use the entry 17 that is reserved for the 8th player character normally (it is the slot used by Blank before Amarant joins; it doesn't have a lot of importance here anyway). Use a function of type "0" (for initialization) and put a code like this inside:
Code: [Select]
    SetModel( 5467, 87 )
    CreateObject( POSITION_X, POSITION_Y )
    TurnInstant( ANGLE )
    SetStandAnimation( 462 )
    SetWalkAnimation( 5225 )
    SetRunAnimation( 5222 )
    SetLeftAnimation( 5223 )
    SetRightAnimation( 5224 )
    SetObjectLogicalSize( 20, 20, 30 )
    SetAnimationStandSpeed( 14, 16, 18, 20 )
    SetHeadAngle( 96, 61 )
    return
Then add a "Loop" function for him (add function of type "1") and code a cutscene there...
At the end of the cutscene (either in that field or in another), you should put the following lines to give the control back to Zidane in the field 256:
Code: [Select]
set General_FieldEntrance = 27
Field( 256 )
Check this tutorial for a detailed example of how you can do cutscenes.

You can see that, up to there, you didn't need to declare or use any new variable. You can do a lot with just the variables that are already used by the game, especially when you want to do standard things like moving to another field for a cutscene. Eventually though, you need to use new variables in most cases. Here is how to declare local and global variables. You can use general variables without declaring them but you should be sure to use one that the game doesn't use already (as said, the variables with an ID higher than 7500 should be fine).

@lyokoffx: I don't really understand what you say...
Hades Workshop is coded in C++ and the source code is available here.
I can't say if HW is "qualified" to create a sequel to FF9 because I don't know what you are thinking of... It depends of how different the game would be.

lyokoffx

  • *
  • Posts: 27
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1439 on: 2019-02-23 14:08:21 »
Thank you for your support

so where should I find the tutorial in these sites to get good started

During my game changes, do I have to type C ++?

And thank you in advance

Tirlititi

  • *
  • Posts: 874
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1440 on: 2019-02-23 14:20:54 »
I don't know, I mostly learned programing at school and as an autodidact.
C++ is kind of a difficult and tedious language but also reliable and very widespread. I am not sure if it would be the best choice for starting a game nowadays. But again, I am not quite sure of what you want to do.

You can send me a PM in french if that helps to say things more clearly.

ToraCarol

  • *
  • Posts: 120
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1441 on: 2019-02-23 18:20:25 »
Thanks again for you kind help Tirlititi, now I'm checkin!
« Last Edit: 2019-02-23 18:43:14 by ToraCarol »

resinate

  • *
  • Posts: 96
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1442 on: 2019-02-24 04:33:44 »

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

Tirlititi

  • *
  • Posts: 874
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1443 on: 2019-02-24 11:20:02 »
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...

ToraCarol

  • *
  • Posts: 120
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1444 on: 2019-02-25 12:00:31 »
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]
  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]
   } 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 Edit: 2019-02-25 21:31:06 by ToraCarol »

resinate

  • *
  • Posts: 96
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1445 on: 2019-02-25 12:50:16 »
Tirlititi did u ever make a patch for psx version to enable marcus to equip ability stones?

Tirlititi

  • *
  • Posts: 874
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1446 on: 2019-02-25 19:06:40 »
@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]
    } 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.

ToraCarol

  • *
  • Posts: 120
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1447 on: 2019-02-25 21:29:38 »
 Oh my! Forgive me!! I totally forgot this step  :-[ :-[ :-[ :-[

Code: [Select]
  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

Quote
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]
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 Edit: 2019-02-27 09:25:08 by ToraCarol »

resinate

  • *
  • Posts: 96
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1448 on: 2019-02-27 04:45:46 »
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 Edit: 2019-02-27 08:37:22 by resinate »

Tirlititi

  • *
  • Posts: 874
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1449 on: 2019-02-27 20:32:24 »
@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]
set Setting_PartyReserve = 0
SetPartyReserve( Setting_PartyReserve )
SetCharacterData( 0, 1, 255, 255, 255 ) // Using 255 prevents unwanted changes
SetCharacterData( 1, 1, 255, 255, 255 )
SetCharacterData( 2, 1, 255, 255, 255 )
// etc... for each character
set Setting_PartyReserve = 255 // Use 511 instead if Beatrix should be available
SetPartyReserve( Setting_PartyReserve )