Fix quest item ID for Of Fathers and Fusions (Part 3 of 3)#21
Fix quest item ID for Of Fathers and Fusions (Part 3 of 3)#21yungcomputerchair wants to merge 1 commit intoOpenFusionProject:masterfrom
Conversation
|
Did an in-game repro of all three missions in the questline to see how it behaves. Thought the mission would get stuck, but it completed just fine. Upon a closer look at the mission tasks you've listed, I can see that the current behavior of the OpenFusion server implementation is that the wrong qitem (875) is given out, then the right one (231) taken away, but because 231's presence is never checked for on the client nor the server implementation the mission continues, and the server treats the removal of the non-existent 875 as a no-op. The outcome is that the invalid 875 remains as cruft in each player's quest item inventory after completing the questline. This is consistent with a quick check of the number of 875 qitems on our public servers, which both total ~2700 for all players and only ~40 for players which actually have the two tasks in this mission in which you're supposed to have it. Query for total 875 qitem count: select
-- *
count(*)
from QuestItems
--join RunningQuests ON QuestItems.PlayerID = RunningQuests.PlayerID
where QuestItems.id = 875 --and RunningQuests.TaskID IN (875, 876)Query for would-be-valid 875 qitem count: select
-- *
count(*)
from QuestItems
join RunningQuests ON QuestItems.PlayerID = RunningQuests.PlayerID
where QuestItems.id = 875 and RunningQuests.TaskID IN (875, 876)I'd say the qitem leak qualifies this as a tangible bug worth modifying the XDT dumps for, despite us having kept those clean so far. So I'm in favor of merging. But we should wait to actually apply a fixup to the DB to delete the post-mission instances of the qitem and transmute the ongoing mission qitem into the proper one, so as not to break the mission for players that currently have it. It's a simple fix, so I'll go ahead and do this this weekend or earlier. This also highlights the possibility of checking public server DB quest item counts for signs of similar bugs. We should look into that. |
|
Here's a list of similarly likely leaked qitem IDs for your convenience, though note that some of these might be specific to defects in the current state of the OF server's mission implementation. SELECT id, count(Players.PlayerID)
FROM QuestItems
LEFT JOIN Players ON Players.PlayerId = QuestItems.PlayerID
GROUP BY id
ORDER BY count(Players.PlayerID) DESC
LIMIT 10;
Frequency for the first 7 is consistent between Original and Academy servers. |
|
I did some analysis on the 104 XDT and looks like these leaks are present (in the success-only paths, at least): The QItem from this PR is in there and it looks like there is a lot of overlap with your findings from the DB. Edit: I got these numbers with roughly this reduction for each task: |
Task 875 in the XDT (both 104 and 1013) grants the wrong quest item on start. It should grant Fusion Override Module (231) but instead grants an unnamed quest item that isn't used anywhere else in the questline. Dev probably put in the task number by mistake but this will fuck up serverside quest item logic. Don't think the client is impacted at all.