sixer reports: when protecting area, you some ... #4145
Labels
No Label
1. kind/balancing
1. kind/breaking
1. kind/bug
1. kind/construction
1. kind/documentation
1. kind/enhancement
1. kind/griefing
1. kind/invalid
1. kind/meme
1. kind/node limit
1. kind/other
1. kind/protocol
2. prio/controversial
2. prio/critical
2. prio/elevated
2. prio/good first issue
2. prio/interesting
2. prio/low
3. source/art
3. source/client
3. source/engine
3. source/ingame
3. source/integration
3. source/lag
3. source/license
3. source/mod upstream
3. source/unknown
3. source/website
4. step/approved
4. step/at work
4. step/blocked
4. step/discussion
4. step/help wanted
4. step/needs confirmation
4. step/partially fixed
4. step/question
4. step/ready to deploy
4. step/ready to QA test
4. step/want approval
5. result/cannot reproduce
5. result/duplicate
5. result/fixed
5. result/maybe
5. result/wontfix
ugh/petz
ugh/QA main
ugh/QA NOK
ugh/QA OK
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: your-land/bugtracker#4145
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
sixer reports a bug:
Player position:
Player look:
Player information:
Player meta:
Log identifier
Profiler save:
Status:
Teleport command:
Compass command:
This could be fixed by improving the logic to have more informative messages when protecting - at least stating distance of the other area and direction to it
I can fix the code and send PR to print more informative message and possibly also add another command that would just check the status on nearby areas (based on area_pos1, area_pos2) without protecting an area - to avoid loop of protecting area, removing area, adjusting coords and trying again.
Is the code to be fixed in a publicly-available code (areas), or is it specific to your-land? I'd be guessing yl_areas ....
yeah i think it's part of yl_areas_addons, if you want to submit a PR, i think alias would probably happily give you access.
There are plans to change the distance code to opt-in. During this change we need to add a couple of other changes as well.
yl_areas_addons does not contain secrets, so we could have anyone take a look and help improve it.
@sixer : If you want, I'll write up the changes I'd like to be done, so you or any volunteer could give it a try? No need to implement them all, but when one is already over one change, might be a god idea to add the others, too.
If the addon source would be available to me (or available in general, not sure how much you wish to open it), I can try to add some other changes along as well ....
yl_areas_addons is meant to be made available anyways and doesn't contain any secrets. If you wish to try your hand, I'll add you to the repo and write some spec :)
Ok, I might take a look at the code.
I think it would be usable also to add some command that merely checks for nearby areas within some distance (like 450? 300 city limit + 150 your limit for expansion), which would give output like:
Area Name1 of Player A is 230 nodes to north (ok).
Area Name2 of Player B is 248 nodes to south (ok).
City area XYZ is 289 nodes to west (collision).
This command would make it easier to find a suitable area (in the example above you immediately see that moving 13 nodes to east and extending area eastward from there would likely get you a usable spot) instead of trying to protect something, fail, iterate with moving or making smaller area and in the end finding that you do not have enough space to expand in the future.
(I can add that once I'll be modifying the code)
Area detectors: Rather no. It is already simple enough to find quest areas that are meant to stay hidden.
Here is a related issue: #4331
Since both have some discussion, they need to be kept open until the feature is OK
If you want to implement, here's a basic spec:
Please notify me if anyone would like to pick this up, I#ll give you access to the relevant repo.
The area detectors could then exclude quest areas from their output.
Currently, if you do /protect_this close to quest area, you get message "Do NOT build here, unless invited by Quest" ... which gives away its presence. Also, it seems that now the distance is 150 for quest areas (or at lest for the one near my base), is that supposed to raise to 300? That would make its detection this way easier, when it is about 100 nodes away, you often see it on the map and with your own eyes anyway, unless hidden somehow.
Not giving at least some hint where to move will make creation of new areas in any somewhat crowded area a nightmare. Imagine a newbie landing via catapult somewhere, trying to protect area, finding that it intersects something. He would have no idea if he has just to shift borders a bit, or if the area is just right next to him. He would also have no idea in which direction to go to get away from that area to get far enough.
There is also question how this should work for areas that currently violate those condition, but there may be some agreement between the owners.
For this, non-uniform distance may be useful, something like "50 to the north, 150 in other directions" (internally stored as 4 numbers)
If the areas are separated with 120 distance in X and 130 distance in Z, should euclidean distance be used (which would be 176), or min-distance be used (which would be 120)?
Recently I encountered another issue that could be avoided if there was possibility to detect protected areas from a distance - I starter building a tunnel to connect two points, but after about 500 meters I encountered an unexpected protected area.
I guess somebody built an underground base or reserved space for expanding? That area was not apparent when examining the planned tunnel path from the surface.
Now I'll have to try to find some way around, but part of the tunnel is wasted effort and without visibility of the areas (land register shows size only of the one right next to me) I do not know if there are any more areas that may block me, or in which direction to try the detour.
Not only Quest has good cause for privacy and non-detection.
Yes, that's unfortunate, but I can't tell people to go away, after they were not informed that there's a questarea nearby.
If it is "somewhere in 300 distance", it is much harder to determine where exactly.
This makes a good PRO case. If wedging in into an already crowded area is hard, then we achieved our goal. Move elsewhere.
Yes. If it doesn't work on multiple occasions, then this means the area is crowded and he must move away. Like ... far away.
If there is a way to detect those constellations, all the better.
Sounds interesting, but it's much harder to understand than a uniform distance. I already wonder how to tell people to "temporarily lower the distance if they want their friend settle nearby". I'd rather stay with one distance.
You mean in the staff command? Could be both, it's more informational, most staff can teleport to an area to see where it's actually located, if need be. Staff is not meant to be a handy area detector, only when it becomes apparent there may be something wrong.
At that point the existence of area is no longer a secret. For privacy, use locked doors or walls or fences. In open land, anybody can walk over open parts of your property.
Detecting may actually help with privacy, as you often want to avoid others, so if you detect somebody in planned path/spot, you move away. Without detection, you usually detect them by suddenly ending at edge of their property with your road (oh ... this block is protected ... )
Detectors can also help with case where you want more room. You may be able by luck/unluck to get a nice area without anybody nearby on first attempt (yay! I'll build here) .. just to realize later there are people 152 nodes away and you have minimal place to expand.
Not really ... go in random direction and retry detection every 30 nodes or so. Once you stop detecting it, it is 300 nodes behind your back. Or if you suddenly get different message (about intersecting protection with the area) ... you found it.
But even without this, once you know something is 300 nodes from you and not elsewhere on 64Kx64K plane, with crystal boots and sprinting you scout the nearby area fairly fast to find it.
So it may be slightly harder to pinpoint its exact location, but you are able to detect its vicinity from double the distance. As a result, definitely easier to find one, not harder.
For newbies, that "far away" may be often another server :)
Newbies do not have crystal boots and walk slowly and free usable spots near ship or airship destinations are no more ... so unless there would be well visible option for newbies to catapult to a truly random place anywhere in map (and therefore minimal chance of landing near somebody else's property), this rule will cause them headache.
Could be doable by script parsing and analyzing current file with areas.
But there is no way to auto-detect any existing agreements. They could be via chat, internal mail, discord, or e-mail or other kind of private communication not visible to the server ...
There could be use-case to add people to the exclusion list for this distance, i.e. friend X can ignore my distance rules (so I don't have to fiddle with distances in my area again if he wants to expand), for others I have lowered it to 120.
I mean for all distance measurements.
I thought of another type of privacy-preserving area detector, when you run the command it would:
check if there are no areas within the limits (32+150 for normal areas, 32+300 for special ones) - with 32 being half of area size, assuming area that would be available by "protect_this"
if current place is unsuitable due to conflicts, it will try to find a free space within 500 nodes that could hold 64x64 area while satisfying the rules, preferring to find rather a closer area than a distant one. Based on result of this search, output one of:
When locating free space, perform some sanity check of area fitness - the middle and at least one of the corners must not be water (64x64 sea area is unsuitable for building a base)
The values 80 and 500 could be replaced with different fitting values, those are only suggested defaults by me.
Such command would help with finding a suitable area significantly, while not revealing any information about any neighboring areas.
What do you think of such command?