Forgot password?
login to RetroAchievements:
User: 
Pass: 


Suggestion: new flag: Don'tUnlockIf

AuthorMessage

Alfex
Posted: 15 May, 2019 23:27
Last Edit: 15 May, 2019 23:28
Are there still any plans to change ResetIf so that it only resets hits on its group? I'm suggesting a flag which would be made to have a hit count and not unlock the achievement if that number of hits is reached (the difference between this and PauseIf would be that it wouldn't prevent ResetIfs from working). Currently, "Defeat X boss without taking damage" achievements are coded like this, if I'm not wrong:
- Boss' HP = 0
- PauseIf Delta player's HP < player's HP, 1 hit
- ResetIf player isn't in boss' room
The reason why I want that change for ResetIf is because, for example, while I was making the achievement , it didn't work because one of the ResetIf conditions was always true. I was trying to code it so that it worked whether you defeated the head or the tail first so I coded it like this:
Core:
- Condition that's always true (I was making the achievements compatible with both US and EU ROMs, and every single memory address is different)
Alts: (1 for each ROM)
- ResetIf player isn't in boss' room (this was always true in either alt)
- Head's HP = 0, 1 hit
- Tail's HP = 0, 1 hit
In the end, I coded it in a different way, with 4 alts and deltas (US head first, US tail first, EU head first, EU tail first)

rabbids4eva
Posted: 15 May, 2019 23:29
I am sure it can be very useful, especially for missable achievements.

kdecks
Posted: 15 May, 2019 23:57
Last Edit: 16 May, 2019 01:39
Put your reset in an alt group, and it will still work.

I've previously suggested a resetGroup flag.

https://github.com/RetroAchievements/RAIntegration/issues/152

Jamiras
Posted: 16 May, 2019 13:26
There are many existing achievements that rely on the ResetIf affecting all groups. There's no way we could change it now.

I'm unclear as to why you need to reset only part of the achievement. It sounds like you just want one alt group active at a time, so resetting the others should be irrelevant. If you're concerned about the others resetting the active group, you can disable them with PauseIf:

Alt1: PauseIf not ROM1; ROM1 logic
Alt2: PauseIf not ROM2; ROM2 logic
...

Alfex
Posted: 16 May, 2019 21:36
The cartridge header, which never changes when playing and is always different between ROMs, can't be accessed with memory inspector, and when I try to put it as a condition, it tells me the address is out of range. Or maybe what you're suggesting is just reversing the conditions with no flags and putting pauseIf (I guess it' s very unlikely that the hits will unpause with so many PauseIfs), but then, it might not reset when you wanted it to, making the hits conditions useless (specifically with , I had to put deltas in all the boss achievements, because otherwise the achievements triggered at the wrong time).

login

login to RetroAchievements:
User: 
Pass: 
or create a new account