New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate minimum Actor Level and other off-by-one's #1248

Closed
carstene1ns opened this Issue Aug 13, 2017 · 5 comments

Comments

Projects
None yet
2 participants
@carstene1ns
Member

carstene1ns commented Aug 13, 2017

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.

@carstene1ns carstene1ns added this to the 0.5.4 milestone Aug 13, 2017

@Ghabry

This comment has been minimized.

Member

Ghabry commented Aug 14, 2017

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.

@Ghabry Ghabry added the Savegames label Aug 14, 2017

@carstene1ns

This comment has been minimized.

Member

carstene1ns commented Aug 15, 2017

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

@carstene1ns

This comment has been minimized.

Member

carstene1ns commented Nov 26, 2017

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
@Ghabry

This comment has been minimized.

Member

Ghabry commented Nov 28, 2017

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.

@Ghabry

This comment has been minimized.

Member

Ghabry commented Nov 29, 2017

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.

Ghabry added a commit to Ghabry/easyrpg-player that referenced this issue Nov 29, 2017

Add exception in the sanity check and special handling for Level 0 wh…
…ich is used by COLORS: Lost Memories.

Replace GetData().level calls with GetLevel().

Fix EasyRPG#1248
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment