Announcement: Be excellent to each other.


Caravel Forum : DROD RPG Boards : RPG Bugs : 1.2.3.70 - some high scores being rejected ((was not submitting highscores for The 'Neatherhood user hold))
Page 1 of 2
2
New Topic New Poll Post Reply
Poster Message
kieranmillar
Level: Smitemaster
Rank Points: 2670
Registered: 07-11-2014
IP: Logged
icon 1.2.3.70 - some high scores being rejected (0)  
The 'Neatherhood is a published user-made hold where highscores have never worked. The spider has always rejected them. I was heping Shick test a server-side change and came into a strange issue where 1.2.3.70 is just straight-up not even able to successfully sumbit a score for this hold. The Nth-place notification never pops up in-game and the server log is not showing any log of having received a score.

Note that this bug is NOT happening in the Steam beta, which is submitting just fine, and 1.2.3.70 is successfully submitting scores for Tendry's Tale. Very peculiar.

I can guarantee that it was definitely submitting scores back in 1.2.1.57, although they were ultimately be rejected by the spider anyway.

EDIT: The 'Neatherhood is my own hold, so perhaps this could be a problem? I'm using the same CaravelNet profile in 1.2.3.70 that made the hold, but I'm not doing so in the Steam beta. Actually, let me try importing this profile into the Steam beta and see what happens.

EDIT 2: OK, importing the other profile into the Steam beta causes submissions to work, but now that profile is not accepting numpad keyboard inputs. I'll post a thread about this in the Steam beta bug forum. The no-submission bug appears to be local to my 1.2.3.70 install.

EDIT 3: I exported my profile from the Steam beta, where the score submission was working, and imported it into 1.2.3.70. Using that profile the score submission is NOT working. Therefore this appears to be specifically 1.2.3.70 that is causing the issue, not just that particular player profile.

[Last edited by mrimer at 09-02-2020 03:48 PM]
01-05-2016 at 09:33 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5064
Registered: 02-04-2003
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (0)  
Hmm...if I understand you correctly, the 1.2.3.x Steam beta is submitting scores correctly, but the non-Steam build for 1.2.3.x is not?

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.
01-06-2016 at 12:50 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
kieranmillar
Level: Smitemaster
Rank Points: 2670
Registered: 07-11-2014
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (0)  
It appears to be that way for me, yes, only the non-Steam version.

I'd like to test other user-made holds in non-Steam 1.2.3.70 first when I have the time to play a bunch of them to their first scorepoint to test if this is some strange fluke with this particular hold or if there are multiple user holds it is happening too. Might help reveal a bit more about what is going on, probably.
01-06-2016 at 09:10 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5064
Registered: 02-04-2003
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (0)  
I'll try to provide a current non-Steam patch by tomorrow so you can help test this out.

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.
01-06-2016 at 11:00 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
kieranmillar
Level: Smitemaster
Rank Points: 2670
Registered: 07-11-2014
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+1)  
For what it might be worth, I have tested two other user holds (Castle Repton and Ten-minutes distraction) and score submissions have worked absolutely fine.

I'm thinking with the other issues that The 'Neatherhood has (no score verification, no room images, failing to tell the server when the ending level has been explored so it will appear in H&S etc.) that this is just another strange issue exclusive to this hold because as far as I know there should be nothing about 1.2.3.70 that should cause score submissions to be different to the Steam beta. Makes me wonder if something about the hold has corrputed or something.
01-07-2016 at 09:02 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Schik
Level: Legendary Smitemaster
Avatar
Rank Points: 5383
Registered: 02-04-2003
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+1)  
Since that is your hold - are you sure you're using the exact hold that was uploaded? You haven't inadvertently edited yours?

The room images seem to be fine, but if it's not tracking progress for you or verifying score points, the version you have installed being different might account for those issues.

How far is it to the first score point? I am terrible at RPG but if you give me a quick walkthrough to get to the first scorepoint I'll give it a shot and can try to better debug it.

____________________________
The greatness of a nation and its moral progress can be judged by the way it treats its animals.
--Mahatma Gandhi
01-10-2016 at 04:14 AM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores Quote Reply
kieranmillar
Level: Smitemaster
Rank Points: 2670
Registered: 07-11-2014
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+2)  
Well Schik it seems that accidentally editing the hold may well be the culprit. I believed that that was not the case but I deleted the hold and redownloaded it from CaravelNet and now the first scorepoint has submitted! It still got rejected by the spider, but hey, progress!

This would probably also explain why the submission worked fine on the Steam version, as the copy of the hold there I had just downloaded from CaravelNet.

I can also confirm that I can now see the room images on H&S. I'll have to play through the hold again to see if it's successfully able to track that I've visited the ending level as that still doesn't show up on the level dropdown.

Here's a quick walkthrough to get you to the first scorepoint as fast as possible:
Press No to skip opening cutscene
1N: kill spider, get yellow key
2N: get small potion
2N1W: Open yellow door, get 8 small potions
1N2W: Kill wraithwing, get medium potion, atk gem, yellow key, large potion
2N2W: Get green key and large potion, spend yellow key on atk gem and 2 small potions
4N1W: Open green door, kill guard

01-10-2016 at 10:18 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Schik
Level: Legendary Smitemaster
Avatar
Rank Points: 5383
Registered: 02-04-2003
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+1)  
Hrm. It errors out because it can't find a scorepoint. Beyond that I think I have to defer to Mike on what's going on here and how to fix it...

____________________________
The greatness of a nation and its moral progress can be judged by the way it treats its animals.
--Mahatma Gandhi
01-10-2016 at 03:36 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5064
Registered: 02-04-2003
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (0)  
Thanks for investigating, Matt.
Schik wrote:
Hrm. It errors out because it can't find a scorepoint.
I'm not understanding what this means. Can you rephrase?

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.
01-11-2016 at 02:14 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
Schik
Level: Legendary Smitemaster
Avatar
Rank Points: 5383
Registered: 02-04-2003
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+1)  
Sure. The "Test" function that tests the validity of a demo returns that the demo was successfully validated, but does not return any score point information.

____________________________
The greatness of a nation and its moral progress can be judged by the way it treats its animals.
--Mahatma Gandhi
01-13-2016 at 02:09 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5064
Registered: 02-04-2003
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (0)  
Ah, got it. Thanks! What game version are you using for spider verification in this instance?

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.
01-13-2016 at 02:12 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
Schik
Level: Legendary Smitemaster
Avatar
Rank Points: 5383
Registered: 02-04-2003
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+1)  
I updated it to the latest in the repository as of the time I posted, but it was also a problem (presumably the same problem) in the last release.

____________________________
The greatness of a nation and its moral progress can be judged by the way it treats its animals.
--Mahatma Gandhi
01-14-2016 at 03:00 AM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5064
Registered: 02-04-2003
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (0)  
Wow, weird. I'm not sure how to troubleshoot this from my end. Any ideas?

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.
01-14-2016 at 04:35 AM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
kieranmillar
Level: Smitemaster
Rank Points: 2670
Registered: 07-11-2014
IP: Logged

File: The Neatherhood.drh (29.8 KB)
Downloaded 45 times.
License: Public Domain
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (0)  
So given that nobody has ever been able to figure out why every score submission to this hold gets rejected, I figured it might be worth resaving the hold under a new profile just incase there was something weird going on with the hold.

So here's a different version of the hold. I'm wondering if it's worth trying to just replace the copy on the server and that the spider has with this one, just to see if it fixes the issue. Its not like there are any pre-existing scores to worry about anyway.
11-12-2016 at 11:24 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
bbb
Level: Master Delver
Rank Points: 215
Registered: 10-07-2013
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (0)  
As a wild guess, I would conjecture that for some reason the spider kills the scripted monster (either when it is defeated, or at the 'Disappear' command) and doesn't run the end of the score scripts.

Is the source for the spider available? I would be interested in trying to solve this problem.
06-06-2017 at 10:46 AM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
greenscience
Level: Master Delver
Rank Points: 141
Registered: 02-27-2015
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+2)  
It definitely looks like there is a problem when the Score Checkpoint command is part of a boss monster's script instead of on another character who checks when boss monster is defeated or alternative conditions. Other checkpoints on the boss monster are either always rejected like with The 'Neatherhood or have corrupted scores that are either from a different scorepoint or look like the stats you have somewhere in the middle of a run. The following scorepoints are affected:

2016 Year of RPG Compilation : Elder Slayer no more!
2018 Year of RPG Compilation : Exponenti-slayer!
Escape from Monster Jail! : Defeated Cultist
Get Your Stuff Back : Lesser Guard Defeated!
Get Your Stuff Back : Harold Defeated!
Get Your Stuff Back : chAos eXarCh Defeated!

[Last edited by greenscience at 08-01-2020 09:55 PM]
08-01-2020 at 06:45 AM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
kieranmillar
Level: Smitemaster
Rank Points: 2670
Registered: 07-11-2014
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+1)  
Yep, looks like you've figured it out. Nicely done.

Looking at other scorepoints that have weird verification issues, it seems that most of them have the Score Checkpoint command on the monster itself. More examples:

Break Out of Jail! : Cell Keeper Beaten!
Nameless Fortress : Guardian defeated!
Nameless Fortress : Kekkaijin defeated!
(Probably some more in Nameless Fortress)

Interestingly, this one is also broken despite the command not being present on the monster:

Break Out of Jail! : Alternative Ending!
08-01-2020 at 12:09 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
greenscience
Level: Master Delver
Rank Points: 141
Registered: 02-27-2015
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (0)  
I don't have access to the scripts for those holds yet but I figured Cell Keeper Beaten! and Guardian defeated! could be related from looking at older threads. One of them suggested that Alternative Ending! and Item Swap Complete! might bug out depending on Pickaxe usage.
08-01-2020 at 12:59 PM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
kieranmillar
Level: Smitemaster
Rank Points: 2670
Registered: 07-11-2014
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+3)  
I've been able to determine a bit more about whats going on, why some scorepoints are rejected outright while others show the scores of some other scorepoint.

When the scorepoint is triggered via an unkillable monster's death, it seems that the move list that is sent to the server is the one for the previous scorepoint that you have reached in that hold that doesn't also have the same problem. If there aren't any such scorepoints (such as it being the first scorepoint in the hold, or in the case of The 'Neatherhood, because every scorepoint is constructed in this manner), then I assume no moves are being sent at all, so the demo is thrown out.

Meanwhile if you have previously reached a valid scorepoint in the hold that does not have the issue, the spider will verify the movelist of that scorepoint instead. To prove this, I went to 2016 Year of RPG, beat the Herpaderp entry (scores here: https://forum.caravelgames.com/rpgscores.php?action=pointscores&id=13147 ) and then cleared the entry with the problem scorepoint in the same playthrough: https://forum.caravelgames.com/rpgscores.php?action=pointscores&id=13155 As you can see, the problem scorepoint now has against me the same score and stats as Herpaderp.
08-02-2020 at 08:57 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Meta
Level: Master Delver
Rank Points: 106
Registered: 12-06-2016
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+4)  
The scorepoint "2nd boss defeated" of Great Place has the same issue.

Let us read the source code and see how it happens.

DRODLib/Character.cpp: line 2617
This is where the Score Checkpoint command is handled. We can see that, after reaching Score Checkpoint, the game will:
1. Report a CID_ScoreCheckpoint CueEvent (line 2626);
2. Write a temporary save and upload it to CaravelNet (line 2628 and DRODLib/CurrentGame.cpp line 7440);
3. Check the existence of CID_ScoreCheckpoint, and then display the scorepoint (DRODLib/GameScreen.cpp line 6456). Note that this happens before the monster dies.

So, we know that the move list sent to the server should be complete.

Now, let us see how the spider works (I assume that the spider uses the same code).

DRODLib/Db.cpp: line 277
The spider will replay all the moves. Whenever it encounters a CID_ScoreCheckpoint CueEvent (line 327), it stores the checkpoint as the latest checkpoint.

From the info we know, it seems that the issue is that the CueEvent CID_ScoreCheckpoint got deleted some time after the character is defeated, so that the spider cannot see the CueEvent and recognize the scorepoint.

Another thing I notice is that the spider will not check if the reported scorepoint is the actual scorepoint. This opens a door to cheat the spider by reporting a late scorepoint as an early scorepoint. The network portion of the code is not open sourced, but I do not think it would be a challenge to a determined cheater.

Kieran, do you want to modify the script of your hold The 'Neatherhood? Since there are no accepted demos at this point, I do not see many objections to such an update from the HAs.

[Last edited by Meta at 08-14-2020 01:32 PM]
08-14-2020 at 11:29 AM
View Profile Send Private Message to User Send Email to User Show all user's posts This architect's holds Quote Reply
kieranmillar
Level: Smitemaster
Rank Points: 2670
Registered: 07-11-2014
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+2)  
Nice investigating. I wonder if theres a possible timing issue involved too, given the checkpoint is being triggered in the same turn as a fight, but after the fight, it could be so late in the turn that something is being missed. It might be something like double placements in regular drod, where stepping on the potion registers that you want to place a mimic but the actual placement happens after everything else has finished processing.

Regarding updating the hold now we know what causes this issue, I could do that, but I'd rather hold out hope for a proper engine fix for two reasons: 1) Other holds have the same issue and more may be made scripted this way in the future, and checking every incoming hold for this sounds like a pain. 2) If an engine fix is eventually made, the scores sent under the old hold version may desync and all be considered invalid when they are eventually all reprocessed on release of the new version, which would be a shame.

But updating is something to consider if future RPG development is ever confirmed as dead.
08-14-2020 at 02:27 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Meta
Level: Master Delver
Rank Points: 106
Registered: 12-06-2016
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+3)  
You are right that there is a timing issue. The checkpoint is triggered too early.

If I am not mistaken, the spider checks the existence of a scorepoint (CueEvent CID_ScoreCheckpoint) after one turn, namely, processing everything caused by a player move. On the other hand, the engine will handle a scorepoint immediately after seeing a scorepoint (command Score Checkpoint), even when it is in the middle of a turn.

This difference actually leads to possibly another bug: if there exists any stats change following the scorepoint but before the turn end, the engine would think the scorepoint has the stats before the stats change, while the spider would use the stats after the stats change.

Given the fact that the source code of the spider is lost, I do not know if it is possible to do an engine fix.

The engine (as part of the game) is already doing what it is supposed to do, sending the correct move list to the spider. On the other hand, the engine (as part of the spider) did not handle the scorepoint correctly.

Therefore, although this is an engine bug, any (straightforward) engine fix would require the spider to switch to the new engine code, which could be either very easy to do, if the engine is dynamically linked to the spider, or difficult otherwise. There are some workarounds, but all those workarounds I can think of require much more effort.

Regarding the script update, if you can do it in a way that any move list for the old hold is still valid for the new hold, then I think even the current spider can verify all the demos had been submitted.

Let us wait for Mike and let him confirm how much of what we suspect is correct.

[Last edited by Meta at 08-14-2020 03:30 PM]
08-14-2020 at 03:10 PM
View Profile Send Private Message to User Send Email to User Show all user's posts This architect's holds Quote Reply
Schik
Level: Legendary Smitemaster
Avatar
Rank Points: 5383
Registered: 02-04-2003
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+3)  
The spider is basically another project that links to all of the things the DROD project links to. It's currently running the latest code that has ever been committed - 1.2.7.330.

Updating the spider to run new, fixed code would be easy.

I do not know enough to be confident in making any changes to how this stuff is processed while ensuring that I don't break anything.

____________________________
The greatness of a nation and its moral progress can be judged by the way it treats its animals.
--Mahatma Gandhi
08-14-2020 at 04:58 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5064
Registered: 02-04-2003
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+2)  
Meta wrote:
You are right that there is a timing issue. The checkpoint is triggered too early.

If I am not mistaken, the spider checks the existence of a scorepoint (CueEvent CID_ScoreCheckpoint) after one turn, namely, processing everything caused by a player move. On the other hand, the engine will handle a scorepoint immediately after seeing a scorepoint (command Score Checkpoint), even when it is in the middle of a turn.
...
The engine (as part of the game) is already doing what it is supposed to do, sending the correct move list to the spider. On the other hand, the engine (as part of the spider) did not handle the scorepoint correctly.

Therefore, although this is an engine bug, any (straightforward) engine fix would require the spider to switch to the new engine code, which could be either very easy to do, if the engine is dynamically linked to the spider, or difficult otherwise. There are some workarounds, but all those workarounds I can think of require much more effort.
...
Let us wait for Mike and let him confirm how much of what we suspect is correct.
I appreciate the investigation into this admittedly opaque issue. I read carefully through these posts and I think I followed the discussion, but I'm not sure whether a root cause has been identified (please correct me if I missed it).

I'm happy to collaborate on identifying, developing, and deploying a fix. Now that the TLP project is officially done, my time investment into that project is generally completed except for ongoing support and the like, and I can focus my attention on point issues like this one, one at a time. I also have texture updates and additions next on my radar.

From my reading of this thread, my intuition is that there's some de-sync between game engine versions, but my intuition could be wrong. I understand the latest Steam version is 1.2.7.330, while the latest Caravel version is 1.2.7.316. However, from the dredges of my memory, IIRC, the only differences between the two are Steam-specific fixes. This assertion may not be correct.

To get me up to speed on the current state of this issue, can someone help with answers to these questions, to ensure I'm on the same page as to what you are experiencing?

Q1: The Caravel build (316) is submitting high scores for 'Neatherhood?
Q1a: The Caravel scores are being rejected for this scorepoint?
Q2: The Steam build (330) is submitting high scores for 'Neatherhood?
Q2a: The Steam scores are being rejected for this scorepoint?
Q3: Do we think there's a difference between the Caravel and Steam versions in submitting or accepting high scores for score points like this one, or is this issue present for both the Steam and Caravel game engine builds?

Is there value in me providing y'all a new Caravel test executable of v330 to experiment with, to see if the issue is resolved in that build?

Are the steps listed in Kieran's post from 01-10-2016 above to reproduce the issue still valid in the latest Caravel build?

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.

[Last edited by mrimer at 08-18-2020 02:19 PM]
08-18-2020 at 02:12 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
Dragon Fogel
Level: Smitemaster
Rank Points: 2435
Registered: 06-21-2014
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+1)  
I've been using the Steam version and checking this on occasion. I can confirm that the scorepoint submits and gets rejected.

This seems to be the root of the issue:

Meta wrote:
From the info we know, it seems that the issue is that the CueEvent CID_ScoreCheckpoint got deleted some time after the character is defeated, so that the spider cannot see the CueEvent and recognize the scorepoint.

My guess would be that the deletion happens at the time of the character's death. So the fix would be to make it happen consistently with when it happens with a character that does not die. I don't know the details on that, but that's probably something you can check if you know what to look for?
08-18-2020 at 03:01 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Meta
Level: Master Delver
Rank Points: 106
Registered: 12-06-2016
IP: Logged

File: scorepoint bug.drh (884 bytes)
Downloaded 41 times.
License: Public Domain
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+2)  
I have not tested the 'Neatherhood myself yet, but my experience with other scorepoints with the same issues implies that the answers to Q1, Q1a are affirmative.

I still think that the issue is that CID_ScoreCheckpoint got lost at some point. I am not familiar with the engine enough to identify the exact location where it happens.

We can test if my suspicion is correct as follows. (I do not know how to use Visual Studio, and I am unable to compile DROR RPG, hence unable to test myself. Actually I cannot even compile a hello world program successfully with VS.) I am attaching a minimal hold for the test.

1. Reach a problematic scorepoint.
2. Save.
3. Add some debug code to CDb::ValidateMoveSequence() and let it report the ending stats after processing the whole move list (line 411).
3. Run CDb::ValidateSavedGame() on the save, and see what the ending stats are and what the output stats (ps) are.

If my guess on the cause of the issue is correct, (and maybe even when my guess is incorrect), below is one way to fix the bug.

1. DRODLib/CurrentGame.h
Add the following members to the class CCurrentGame.
WSTRING latestScoreCheckpointName = ""; // We need to rewrite this using the implementation of WSTRING
PlayerStats latestScoreCheckpointPlayerStats;
These two members are only supposed to be read by the spider, hence it should not cause any compatibility issue.

2. DRODLib/Character.cpp: line 2617
Write the stats of the scorepoint to this->pCurrentGame.

3. DRODLib/Db.cpp: line 326 - line 339
Remove these lines.

4. DRODLib/Db.cpp: line 411
Add the following code.
if (bGood) {
scoreCheckpointName = pGame->latestScoreCheckpointName;
ps = pGame->latestScoreCheckpointPlayerStats;
bGood = scoreCheckpointName != ""; // We need to rewrite this using the implementation of WSTRING
}

5. Repeat the test procedure above and see if this fixes the bug.

6. Link the spider to the fix.

I also have two remarks about this fix.

a. This fix only requires updates on the server side. There is no need to update the client.

b. Even with this fix, there are still some bugs remaining. Say, if two or more scorepoints are triggered in one turn, then the spider can only recognize the latter one. However, supporting more scorepoints could require rewriting both the engine and the spider, and I do not see any use cases of more scorepoints in one turn.


08-18-2020 at 03:25 PM
View Profile Send Private Message to User Send Email to User Show all user's posts This architect's holds Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5064
Registered: 02-04-2003
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (0)  
Ah, okay! I think I understand now.

Will look into this and report back asap.

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.
08-18-2020 at 05:59 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
kieranmillar
Level: Smitemaster
Rank Points: 2670
Registered: 07-11-2014
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+2)  
To add some clarity, the title of this thread is inaccurate now we have a better understanding of what is going on. It is not that scores are failing to submit, they do get submitted to the spider, rather once the spider tries to verify them it fails to do so and rejects the score.

The problem seems to stem from the way the scorepoints are triggered from the monsters themselves upon death. If you look at the boss monsters in The 'Neatherhood (example rooms: 4N1W, 7N), they are monsters with Imperative Unkillable followed by the command "Wait for defeat". This allows the monster to execute more script commands immediately after it dies, on the same turn, and it is here that the score checkpoint is triggered.

The reason for doing this was to allow the score checkpoint to appear immediately upon death of the enemy, rather than the more traditional method of having a second character check for something like "Wait for event monster stabbed", which only triggers on the following turn.
08-18-2020 at 06:49 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5064
Registered: 02-04-2003
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (0)  
I'm looking into this issue now.
Schik wrote:
Sure. The "Test" function that tests the validity of a demo returns that the demo was successfully validated, but does not return any score point information.
Hi, I don't think this is correct. The Test function in RPG doesn't even look at scorepoint information. Are you maybe referring to CDb::ValidateSavedGame()? This is the only method in the code that returns score point info in the form of a score point name.

(Feel free to reassign the topic back to me after you've responded.)

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.

[Last edited by mrimer at 10-23-2020 03:10 PM]
10-23-2020 at 03:09 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
Schik
Level: Legendary Smitemaster
Avatar
Rank Points: 5383
Registered: 02-04-2003
IP: Logged
icon Re: 1.2.3.70 not submitting highscores for The 'Neatherhood user hold (+1)  
mrimer wrote:
Are you maybe referring to CDb::ValidateSavedGame()? This is the only method in the code that returns score point info in the form of a score point name.
Sure. Apparently 4 years ago I was going off of memory and not looking at the code. ValidateSavedGame().


____________________________
The greatness of a nation and its moral progress can be judged by the way it treats its animals.
--Mahatma Gandhi
10-23-2020 at 03:15 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores Quote Reply
Page 1 of 2
2
New Topic New Poll Post Reply
Caravel Forum : DROD RPG Boards : RPG Bugs : 1.2.3.70 - some high scores being rejected ((was not submitting highscores for The 'Neatherhood user hold))
Surf To:


Forum Rules:
Can I post a new topic? No
Can I reply? No
Can I read? Yes
HTML Enabled? No
UBBC Enabled? Yes
Words Filter Enable? No

Contact Us | CaravelGames.com

Powered by: tForum tForumHacks Edition b0.98.8
Originally created by Toan Huynh (Copyright © 2000)
Enhanced by the tForumHacks team and the Caravel team.