Return Home/Tutorial button issues
This bug was already reported here: http://www.peqtgc.com/phpBB3/viewtopic.php?f=17&t=14123
The issue exists in Client::HandleEnterWorldPacket() from world/client.cpp. So, from what little research I have done, it looks like the return home code is triggered if either button is clicked at the character selection screen. That is, ew->return_home > 0 even if you click Tutorial and not Return Home which causes this if statement block to execute either way: @line 712 of world/client.cpp Code:
if(!pZoning && ew->return_home) I haven't used a packet sniffer or anything, but this is what I've found: If Tutorial is clicked: ew->return_home == 256 ew->tutorial == 1 If Return Home is clicked: ew->return_home == 257 ew->tutorial == 0 If Enter World is clicked: ew->return_home == 0 ew->tutorial == 0 Temporary fix: Code:
--- client.cpp 2013-09-30 13:17:34.767489537 -0700 To get this to work, I had to remove the two returns since I don't really know why you'd want to return after confirming that the player can enter tutorial/return home. (Again, I've done little research, so I may be missing something.) Magic numbers are scary, so if anyone here that is knowledgeable of the zoning system and opcodes could find a more permanent solution, then that would be great. |
If all clients act as you've stated, I think the best solution would be.
Code:
diff --git a/world/client.cpp b/world/client.cpp |
I've only done these tests on the supported RoF client, so it would be great if someone could test this on other clients.
Yeah, that code looks/works better:D |
Titanium:
Tutorial button from char select screen works correctly. Return home button from char select works correctly. Tutorial button from create char screen still sends to home town. SoD: Tutorial button from char select screen works correctly. Return home button from char select works correctly. Tutorial button from create char screen works correctly. |
I think for Titanium they do something weird in the case that is failing. If I had to guess, it is related to the StartInTutorial variable, which at least is appearing to be always false :P
Code:
case OP_World_Client_CRC1: EDIT: Okay, this should be working now. |
I looked into the "Tutorial" issue a little bit more and could not come to a solution...
I know there are two rules to allow/disallow the use of the [Enter Tutorial] and [Go Home] buttons, and that the server is coded to make use of these. However, I'm not completely sure we're using them appropriately since I can't verfiy their behavior on live. "What we do" (I think..based on in-game observations...) Code:
WORLD SERVER: "What we should probably do" (Or something akin to this...) Code:
WORLD SERVER: The way this is setup, the only way to exit tutorial status is to click the [Go Home] button from the 'Character Select' screen. These rules may need to be adjusted or changed to reflect a more appropriate behavior. Titanium DOES support the world server tutorial rule, so we should be able to condense the code. The only thing that I'm aware of that isn't supported is the alternative home city (Crescent Reach) and we can bypass that. Again, this is only a concept based on my observations and may not reflect live-like behavior. I WILL NOT develop or implement this without feedback or suggestions. |
All times are GMT -4. The time now is 06:34 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.