Bug - Fixed Checkpoints not cleared on logoff

Theraze

Active member
When you log into a new character, your checkpoints from the prior character remain and going through the checkpoints in order using repeated executions of "outfit checkpoint" will eventually return you to the prior player's checkpoint, possibly involving purchasing expensive items from the mall if your settings are not done correctly.

Outfit checkpoints should be cleared when you log in a new character since, as you say, they are character specific. If this is not the case, file a bug report.

I personally have experienced it on a variety of scripts, but usually have seen it in the DailyDungeon script. Here is a log from Winterbay experiencing it using the Nemesis script:
Restoring initial settings...
Verifying ingredients for aerated diving helmet (1)...
You need 1 more bubblin' stone to continue.
Searching for "octopus's spade"...
Search complete.
Purchasing octopus's spade (1 @ 949)...
You acquire an item: octopus's spade
Purchases complete.
Wielding octopus's spade...
Equipment changed.
Searching for "glowing esca"...
Search complete.
Purchasing glowing esca (1 @ 2,000)...
You acquire an item: glowing esca
Purchases complete.
Holding glowing esca...
Equipment changed.
Searching for "greatest american pants"...
Search complete.
Stopped purchasing Greatest American Pants @ 6,500,000.
Using cached search results for Greatest American Pants...
Stopped purchasing Greatest American Pants @ 6,500,000.
You need 1 more Greatest American Pants to continue.
Putting on BGE pocket calendar...
Equipment changed.
You need 1 more Zinc Delta of Tranquility to continue.
You need 1 more Baron von Ratsworth's monocle to continue.
Searching for "gill rings"...
Search complete.
Purchasing gill rings (1 @ 8,950)...
You acquire an item: gill rings
Purchases complete.
Putting on gill rings...
Only a specific familiar type ( Grouper Groupie ) can equip this item.
Problem occured while opening the Volcano island, exiting...

You can see in this log that 6 of the items set by the checkpoint command weren't actually owned by that character...
 

Theraze

Active member
Thanks for the speedy fix, Veracity! I hadn't reported it before because I was thinking that the script restoring to a checkpoint not caused by it was a script bug (which I still somewhat hold to), but I suppose the script bug masks the issue that while it shouldn't be able to restore to a checkpoint not caused by it, it REALLY shouldn't be able to restore to someone else's checkpoint. :)
 

slyz

Developer
Apparently, each time pop() is used when doing "outfit checkpoint", the first item of the stack changes.

That mean that scripts that do several "outfit checkpoint" to restore the original outfit should always do a "checkpoint" immediately afterwards to re-save the outfit.
 

Veracity

Developer
Staff member
Yes, that is how stacks work.

Saving a checkpoint pushes the outfit, restoring a checkpoint pops it - and when you pop an item from a stack, it is no longer on the stack.
 

Theraze

Active member
The somewhat exception to this being that the checkpoint stack itself, once created, won't empty itself completely, correct?

If you make a checkpoint (1), and run outfit checkpoint 5 times, I believe it returns to that outfit (1) each time. If you make a checkpoint (1), change gear, make a new checkpoint (2), and restore checkpoint twice, you should be in original circumstances (outfit 1), but you passed through the second checkpoint to get there...

If you want to completely clear the stack, you either have to run checkpoint clear manually, or (now) logoff/login again.
 

Theraze

Active member
Ah... yeah, I'm getting it reporting now that it was successful in changing it, but that the stack is indeed clearing. Wonder what I was having happen before then.
> checkpoint

Internal checkpoint created.
Holding box turtle...
Equipment changed.

> ash outfit("checkpoint")

Holding box...
Equipment changed.
Returned: true
Holding box turtle...
Equipment changed.

> ash outfit("checkpoint")

Returned: true
Probably a sloppy script that sets a ton of checkpoints and doesn't actually use them when done.
 
Top