Server icon indicating copy to clipboard operation
Server copied to clipboard

Teleport bind shouldn't allow unkeyed toons to zone

Open mackal opened this issue 7 years ago • 7 comments

So if you can bind in a keyed/locked zone, teleport bind will allow you to bring unkeyed/flagged toons into the zone. I don't think this should work like this.

mackal avatar Jan 15 '18 20:01 mackal

But how are the non keyed people bound in a zone they cant enter? Is the teleport a group spell?

daerath avatar Jan 15 '18 22:01 daerath

Teleport Bind is a group spell. There seems to be more to this since someone did try sebilis and it did block them. Another zone didn't.

mackal avatar Jan 15 '18 22:01 mackal

Which zone worked?

daerath avatar Jan 15 '18 23:01 daerath

I think I know the "problem". The spell Teleport and the two Teleport Bind spell effects (5953, 16441) work properly. They do not override the zone flags in the database allowing entry to a zone that requires flags when the spell targets don't have those flags.

However, the problem is that some zones are not marked with required flags even though you need a key to enter them. For example, I can bind my character in Veeshan's Peak, and then using 5953 or 16441, send a character there even if they are not keyed for that zone. The zone record for Veeshan's Peak doesn't specify a flag which is why this works. If you try to click into VP from Skyfire and you don't have the key, you will see a message that you lack the will (or whatever the message says).

Sebilis on the other hand does have a flag requirement in the database which is why it cannot be accessed with Teleport Bind.

So the only fix here is to update the database with the proper flag entries for any zone that requires a key to click into.

This issue really is "Zones that can only be accessed with a key are not marked as requiring a flag in the database"

daerath avatar Jan 22 '18 11:01 daerath

I think the only two missing flag entries are Veeshan's Peak and Vex Thal. Well, up until OoW, but I'm not sure what level of implementation exists there yet. Wouldn't it also need a PL/LUA for actually flagging you when you click the first time, or can the name of the key be added to skip a script file?

**Update; interestingly, the click into Veeshan's Peak isn't a door. It's done in a script and supports the old and new keys. So that could become a generic flag that is granted by clicking in the first time and would accomplish the same thing. I'm not sure why that isn't a door click (I'm sure there's a reason though) because there is a door object (the script references one at any rate)

daerath avatar Jan 23 '18 11:01 daerath

VP is a door that's scripted.

mackal avatar Jan 23 '18 18:01 mackal

so did some checking and the flags make more sense now. Having the key, even if the key name matches the value of flag_needed doesn't actually get you into a zone. The quest file for Emperor Ganak gives you the key, which gets you through the door, but simply having the key means nothing. The quest file also adds the sebilis zone flag. Also, the actual value of the flag_needed field can be anything you want. As long as it isn't empty it triggers the lookup against your zone_flags, which is just a match against zone ID

And... Vex Thal doesn't have a flag entry because none of the quest files set one. It's also nobind = 0 so you can't bind there anyway, making the flag somewhat pointless since the only way in is via the door, which does have a key requirement.

So, I'm not really sure there's much to be done here. The only zone that seems like you could still bypass it is Veeshan's Peak since the caster can bind themselves there if I'm interpreting the can_bind value of 1 to mean "I can bind myself, but nobody else"

So the fix is either to add the flag to the zone, and then add the SetFlag call to the player script in skyfire, or to remove the ability to bind in veeshan's peak (but that could be different from live). The actual flag checking code is pretty straightforward and I don't see where it could be broken in this instance.

daerath avatar Jan 24 '18 14:01 daerath