REQ: Enhancing the cost.homeinviteteleport
Farsinuce opened this issue · 8 comments
UPDATE (Dec.9)
TL;DR: The owner of a home invitation could receive a percentage of credits each time another player uses it. E.g.: Home invites cost 10 credits to use; owner receive 5 credits per use.
Description
I would like to reward players who are building farms and impressive creations for the public playerbase to use. A way could be by paying a home owner a small amount of money each time an invited player uses this home. The visiting player would e.g. spend 10 credits to use the home, and a portion of this would be sent to the home's owner.
Scenario#1 "Money to home owner":
Experiencend Player A creates an impressive build for everyone to enjoy.
He sets a public home.
Now as players visits his build, they 1) are deducted ten credits for using a permanent home invitation and 2) some of these credits (let's say "two") goes to Experienced Player A, rewarding him for his impressive creation.
Scenario#2 "Money based on rank":
Experienced Player A is motivated both from the players visiting his former build, and from the credits he has earned through the public home, so he choose to create yet another impressive build.
In the meantime, though, Experienced Player A has ranked up, so as his new build is ready and players start to use his new public home to get there, he now earns five credits pr player visit instead of only two, because of his higher rank.
Regards,
Sinuce
Hi again Andune,
I thought of an idea for further extending the before mentioned suggestion:
"The possibility for players to set a price for their home invites."
/hi {player|public} [name] [time] [cost]
E.g.: /hi public enderfarm 1d 10
This home would be publically accessible for one day, costing 10 credits per visit (plus whatever amount specified in the config for using home invitations in general).
When a player wants to visit that home, he would receive a confirmation notice letting him know the cost; typing the command again to confirm.
If this is not really the path you would like take HSP in, just disregard the idea and close this issue :)
Thank you for reading,
Sinuce
Much of HSP is admin-configurable, including by-world and by-permission. But these configurations are only known only by the admin and not exposed to the player. My assumption to date has been that admins provide some sort of documentation to their players to explain why things work as they do, that's certainly what I did when I was running a server.
One thought is players would probably be happy to be receiving money at all, regardless of the amount, since they don't receive any today. If you felt it was important they understood why they received differing amounts, you could document that on your web page, and then use HSP's customized messages to include a short URL link (ie. tinyurl, goo.gl, etc) to the message they receive, linking to your documentation explaining how you have set things up.
First of all:
I agree both with your statement regarding admins providing documentation, and that players first and foremost would be happy receiving money regardless of the amount compared to today.
Secondly:
I am sad to report that I am forced to close down my servers. This due to economical issues and a lack of time, single-handedly administrating my servers whilst trying to focus on my Master's thesis.
Thank you for all the time and effort you have put into HomeSpawnPlus, and for actively responding to my suggestions.
I hope that your fellow server owners are enjoying HSP as much as I did.
I wish you good luck onwards,
Best regards,
Sinuce // Asger Møller
PS.
HomeSpawnPlus was used to manage homes for thousands of Danes in a 1:1 scale replica of the entire country of Denmark.
Images from the server hosting Copenhagen on Sjælland in Denmark:
Just so this isn't left hanging, I've given this some thought and even started some code along these lines in a branch. The idea is fine, although the suggestion of players being able to set a price will require a DB modification, something I'm loathe to do because DB updates always cause me pain and loads of testing.
The other challenge is that there is no mechanism to accept on the invitee end and adding one to prevent abuse would be a lot of work. ie. imagine this scenario:
/hi public CoolHouse perm 10
[a few days pays, lots of people enjoy going to cool house and paying 10 is totally reasonable. Then owner of CoolHouse deletes the old invite and re-issues this one]
/hi public CoolHouse perm 5000
Now the next player(s) to use the HomeInvite, which just the day before only cost 10, unwittingly pay 5000 for the chance to go and they have no recourse since they have no way to check the price ahead of time.
Again, I like the idea, I think it's a really cool way to reward people for building homes and setting up invites, but it is definitely not on the easier side of features to implement just because of the number of issues that have to be thought through and implemented for this to be a solid feature. I'll keep thinking on it and certainly appreciate any feedback for ways to narrow scope that might help get something implemented faster.
Without giving a whole lot of thought to the implementation, although this would certainly be much more straightforward than the previous suggestion, here my quick thought for one way to do it. Appreciate your feedback as to whether or not this would meet your goals for this feature.
In the example config below, here is how some example scenarios would play out:
Player George is a newbie (no rank) and has a public invite to his home “GeorgeHouse"
Player Sarah is rank2 and has a public invite to her home “SarahHouse"
Player Evan is rank3 and has a public invite to his home “EvanHouse"
Player Beth is rank4
Player George types “/hit SarahHouse”. He pays 100 for this command (default amount) and 20% of it goes to Sarah (because rank2 gets a 20% cut).
Player Sarah types “/hit EvanHouse”. She pays 80 for this command (rank2’s /hit cost) and 40% of it goes to George (because rank3 gets a 40% cut).
Player Evan types “/hit GeorgeHouse”. He pays 50 for this command (rank3’s /hit cost) and 10% of it goes to George (default homeInviteOwnerPercent, since George has no rank).
Player Beth types "/hit GeorgeHouse". She pays 40 for this command (rank4's /hit cost) and 100% of it goes to George.
Note in Beth's case, this is because for rank4 we have defined "homeInviteTeleporterPercent" at 100. When HSP checks that teleport, it gets two values: George's "OwnerPercent" of 10 and Beth's "TeleporterPercent" of 100. HSP will choose the higher of the two values.
This lets you mix up Owner/Teleporter percent as you like. In this contrived example, maybe we think it's a big deal if a Rank4 visits a build and so we give out 100% of the cost to the owner.
cost:
homeinviteteleport: 100
# This is the percentage of the "/hit" cost that the owner
# will receive. For example, if you've set the cost of
# "/homeinviteteleport" to 50 above and you set this value
# to 20%, then when a player teleports, the owner will
# receive a credit of 10 to their account. (20% of 50)
#
# Note that if you want to use permissions for this (for
# example to give players of higher ranks get a bigger cut),
# this ONLY works if your permission system supports
# offline permissions. PEX, GroupManager and perhaps
# others do, stock Bukkit does not.
homeInviteOwnerPercent: 10
# This is the percentage of the "/hit" cost that is sent
# to the owner of that home. Notice that if you don't
# have a permission system that supports offline
# permissions, you can use this to base the percent
# cut on the teleporter’s rank instead. In the event you
# have defined both an “OwnerPercent” and a
# “TeleporterPercent”, the highest value will be used.
homeInviteTeleporterPercent: 0
permission:
rank2:
permissions: [rank2]
homeinviteteleport: 80
homeInviteOwnerPercent: 20
rank3:
permissions: [rank3]
homeinviteteleport: 50
homeInviteOwnerPercent: 40
rank4:
permissions: [rank4]
homeinviteteleport: 40
homeInviteTeleporterPercent: 100
I definitely understand the problem that you mention.
Hmm...
What if we took another route for this? What if the value/percentage that the player gains is instead defined in the config?
I have played on a server called "Winthier", where I experienced that a certain, relatively low rank received [N] amount of cash when other players used his public home invite, and players at a higher rank received a higher [M] percentage.
What I'm trying to get at here is this: What if you took the cost out of the command and had it predefined in the config instead? That would cause less confusion whilst using the commands, and take out the exploit you mention.
I think this is an interesting subject.
Thank you for spending time with this :)
If I am not making myself clear, let me know. Then I'll try to provide a more detailed description.
Kind regards,
Sinuce // Asger
Nice and through explanation.
You went even further and made "homeInviteTeleporterPercents" customizable, taking a visitor's rank into account as well.
I can see this working.
And the config nodes are comprehensible.
The only thing that I am unable to bend my mind around is the usability factor for the players in-game: "How can this be made transparent enough for the player to understand the different costs and percentages?"
-> A user should never end up in frustration over not understanding why some visitors grant him a higher payment for visits than others.
- Would this be solved by sending explanations to the home invite owner?
- immediately when a visit takes place?
- when the owner logs in (if he was offline at the time of the visit)?
- Do you have an idea to the look and detail level of such messages?
I feel a solution is getting closer.
Let me know if I can provide you with more feedback, or if you need something tested :)