Player: Investigate minimum Actor Level and other off-by-one's

Created on 13 Aug 2017  路  5Comments  路  Source: EasyRPG/Player

In COLORS: Lost Memories the initial actor level is 1 and this gets decreased in the intro by 1, so is effectively 0, RPG_RT allows that. We cap this to 1 in Game_Actor::SetLevel().
This can be seen when looking at savegames created by RPG_RT and Player for this game.

We might have similar problems with attributes such as Atk, Def, Agi, etc.

Savegames

Most helpful comment

This is caused by a manual database edit. The initial_level is set to 0.
Seems that RPG_RT accepts any level for this field and uses stats of 0 and EXP of 0 when the level is invalid.

Adding EXP works as expected (when you have 1 EXP you become LV1) and Level ups, too. But when the new level is below 1 showing the "level up message" will hang RPG_RT. Without the message everything works fine.

Supporting Level 0 and doing a silent sanity log through Output::Debug should be feasible.

All 5 comments

The number shown in the savegame scene is wrong in RPGRT (for easyrpg saves) in general. The Deep8 dev told me that all values are shown as 1 and when loading e.g. a OFF save in RPGRT the SP are 1 in battle.

Upon further investigation I do not know what this game is doing.
I created a testcase in 2k and 2k3, decreased the level and HP as this game does and both do not allow 0.
However, in this game it is possible (even when I replace the RPG_RT).

20170815-040002

Your sanity check branch yields:

Warning: Actor 1: Invalid level 0
Debug: Actor 2: Removing invalid item 18 (of type 0) from equipment slot 1 (needs type 1)
Debug: Actor 3: Removing invalid item 18 (of type 0) from equipment slot 1 (needs type 1)
Debug: Actor 4: Removing invalid item 18 (of type 0) from equipment slot 1 (needs type 1)
Warning: Actor 5: Invalid level 0
Warning: Actor 7: Invalid level 0

This is caused by a manual database edit. The initial_level is set to 0.
Seems that RPG_RT accepts any level for this field and uses stats of 0 and EXP of 0 when the level is invalid.

Adding EXP works as expected (when you have 1 EXP you become LV1) and Level ups, too. But when the new level is below 1 showing the "level up message" will hang RPG_RT. Without the message everything works fine.

Supporting Level 0 and doing a silent sanity log through Output::Debug should be feasible.

Are you sure about the "Level 1 to 0 decrease"? Even when I set the initial level to 0 I can't decrease again to this level with RPG_RT.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

carstene1ns picture carstene1ns  路  4Comments

scoot404 picture scoot404  路  4Comments

Ghabry picture Ghabry  路  4Comments

Ghabry picture Ghabry  路  3Comments

kakurasan picture kakurasan  路  4Comments