Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Guild Hall: Functionality: Guild hall doors don't open from the inside for players who don't own that hall #703

Open
jrotunda opened this issue May 6, 2024 · 1 comment

Comments

@jrotunda
Copy link

jrotunda commented May 6, 2024

There's a new issue that was introduced in the last patch when Guild Hall alliances were reverted back to their original design, which allowed Allied Guilds to share one another's guild halls, use the doors and go in and out on their as long as they were above the lowest rank (Initiate).

If a player who is not in the guild is in the hall, past the entrance door (examples below), this player will not be able to open the front door to get out - effectively locking them inside.

This has resulted in situations where players have snuck into a hall and gotten locked in, or allied players getting locked in to their allies guild hall. This bug affects all Guild Halls.

This did not occur before - and the following behavior is expected:

Expectation:

  • A player who is inside a guild hall can open the front door from the inside
  • Allied players who go inside a guild hall belonging to their allies (Rank 2 and above) should be able to open the front doors ( alliance once featured being able to share halls without this issue) so they can get out

How to Reproduce:

Guildmasters of Mature Guilds can purchase a Guild Hall from Frular the Guild Master (GMHall) in South Barloque.

Once they own a Guild hall, all entrances and all inside doors including the guild chest, guild news, and other rooms within the hall will open for Guildmaster and all members of the guild from Rank 2 (2, in this use - being the level just past Initiate, under the level of 'Member', which adds the Guild invite / initiation functionality.) There is no issue with these users being able to use their hall or navigate it.

Create a guild. Make the guild mature using the admin commands or by putting 3 members in the guild.

Create an alliance with another guild.

Purchase any Guild Hall with the 1st guild.

Place the allied guild members inside the hall, and place a non allied player above 30 hit points in the hall.

Try to open the door with the outside of guild players.

@Gar103
Copy link
Contributor

Gar103 commented May 6, 2024

From what I remember, I definitely experienced this back in the day, and it has something to do with the game mistakenly thinking the player has not legally entered. Exiting and re-entering repeatedly eventually gets it right. The current system for detecting illegal entry is extremely rough and gets it wrong 70-80% of the time. That system needs to be ripped out & replaced because we have much better tools now.

Elsewhere, I fixed this system by putting a hard stop on movement out of the 'foyer' coordinates box unless this move is attempted in a window of time - starting from the 'time stamp' of the door being opened legally, plus however long it takes to close (which is already defined in each hall), plus an extra second for lag and animation times. This completely prevented wallhacks of any kind, since the server itself simply refuses to recognize the illegal move, and I also added protection so that players and objects inside the hall cannot be attacked or interacted with in any way illegally. E.g. oh you want to attack this guy in the hall, but the server says you're in the foyer? Then no. Also, every time the player tries this, a 'guild hall violation' counter goes up. At some number (I think it was 3) of violations, the player is automatically oog'd. In ten years, this guild hall violation never went off mistakenly once, so I feel it's a good system.

Oh, there was an exception for Sewer Hideout, Bookmaker's, and Konima's of course, since you can legally attack from the foyer into the hall in those cases. Those require custom checks.

I did a few other things too, but that's basically how far we have to go to really fix the guildhall situation. Currently, I'm pretty sure guild halls are not safe to be in on 101, as I distinctly remember going AFK in a hall many years ago and coming back to find myself in the Underworld because an Infinity member wallhacked in and attacked me. He couldn't steal the hall, but he could certainly attack my character. So I know it's definitely possible - and I don't see any changes to this.

I tried to include my code but it looked awful. You can find it in IsMoveOk here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants