Closed DarkRisings closed 7 years ago
Not sure about guild wars being formally declared. It can be really fluid... but I think it would also really help us negotiating roleless PK. Need a personal reason unless in formal guild war, in which case have at one another.
It sounds like we need a guild apply command for people seeking to join a guild. It would complement the guild info command.
How would someone approve a new member from the applicants?
Otherwise it looks good, and I think would help us in moving to player run guilds.
Some of the commands you were talking about I updated the comment with.
I agree about guild war, might not be the best for DR
Awesome, looks good. I think we need a discussion about formal guild wars, which may be a part of a larger discussion about PK.
Just to be clear, this is about using the guilds and not clans right? Because we have existing areas using mprogs with guild checks in the mprogs.
Guild Deny is about removing an existing member from the guild? Also does this person have to be logged to remove them from the guild?
Will Guild Deputy and Leader be toggles (Set Bit / Unset Bit), and will the player have to be logged into the game to be promoted / demoted.
To answer your questions: The way that I plan to do it will not affect the mprogs. If an mprog's code says "if guild = arcaenum" and you start a guild and name it arcaenum - that mprog will work. I'm going to use the same data. Think of it as less a new change, and more a complete overhaul of how guilds work.
Guild deny will do as you say. The person does not have to be logged, only has to be in the guild. Same with deputy. The leader would have to be logged, since the previous two functions are only functions you'd ever perform on players that exist in a guild, I can just reference the guild file.
Something to also keep in mind, yes we are DR but, no we are not at the same time. So something that might not be "good for DR" could be good for us.
Okay guys, https://github.com/DarkRisings/src/blob/guilds/guilds.c is where the majority of the new guild code lives.
Since we decided to hold off on the idea of "guild wars" for now, I've dropped that command as well as ally / enemy commands since there really isn't a need.
Implemented commands so far:
guild who
guild establish
guild apply
guild approve - imm command
guild info
guild accept - leaders
guild defect
guild expel - leaders
guild disband - leaders
rank
Things to note: As I promised before, the new guilds use the same data slots on the character object and therefore are compatible with the old lookup stuff, which means any existing mprogs will still work.
The guild table is a different table however, so I was able to write a small piece of code in the character loading routine that removes the guild reference from players when they log in. This prevents some possible crazy shit where players may end up in a random guild (think, your guild slot is pointing to guild #10, but guild #10 is not the same guild now). TLDR: All old guilds are effectively gone.
The new guilds never really "go away" but they do enter a sort of stasis mode when they are first created and not approved yet, or when they are disbanded. So we should be able to establish a guild for each existing guild and then disband them so that those names are reserved for players who want to claim them.
left to do: right now this all works well. there are some minor additions I would like to implement but really so much of the infrastructure is done at this point that everything I add is really easy.
guild decline I just forgot to add this. there needs to be a way to decline an applicant.
guild prospects there needs to be a command to show leaders a list of applicants
guild promote
Immortal commands:
If you guys see anything I missed or have any comments/concerns PLEASE LET ME KNOW!!
Would there be a notification to the guildie that got declined, or would it be stealth to the applicant?
I'd prefer stealth, it allows for secretive guilds to stay secretive, and forces people to interact and tell one another if they're declining members (hopefully). A good way to cause conflict and keep things moving.
Another command I might add
I can make the declining of applicants quiet. Declining applicants and expelling members can even be done when the affected player isn't logged in, since I wrote an update routine that checks the guild file to make sure they're still a member/applicant when they log in.
I think we'd need the they're-not-around functionality, to get around people avoiding the problem or time zone issues. That's a good idea.
Yes, guild leaders should be able to update the guild symbol. I don't wanna do it.
I met it half way and decided to only let them update the symbol while the guild is unapproved
Lynne M. Kirsch M: 607.342.5016
On Wed, Jul 5, 2017 at 9:47 AM, figgers3036 notifications@github.com wrote:
I think we'd need the they're-not-around functionality, to get around people avoiding the problem or time zone issues. That's a good idea.
Yes, guild leaders should be able to update the guild symbol. I don't wanna do it.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/DarkRisings/src/issues/9#issuecomment-313107883, or mute the thread https://github.com/notifications/unsubscribe-auth/ACBTgo8cboY0vZQykKKuFB25mbsrayTzks5sK5PzgaJpZM4OKr8i .
Progress:
I'll put the outline for the new guild system here.
MORTAL COMMANDS
guild propose [guild name] [guild symbol] This command will initiate the mortal creation of a guild.
Requirments: Any mortal char
guild help This allows the mortal to design a help file for their guild
Requirements: Be a leader of a guild or be starting a new guild
guild submit This submits the guild for admin approval
Requirements: Have an in-progress guild that you are proposing.
guild deputy [name] This command makes another guild member a deputy of the guild, which allows that member to approve new members.
Requirements: Be a leader of a guild
guild accept [name] Accepts a player into the guild
Requirements: Be a deputy or leader of a guild
guild deny [name] denies a player from the guild
Requirements: Be a deputy or leader of a guild
guild apply [guild name] apply to a guild
Requirements: Not be in a guild
guild disband This disbands a guild
Requirements: Be the leader of a guild
guild ally [guild name] This makes another guild an ally of your guild
Requirements: Be the leader of a guild
guild unally [guild name] Removes ally status from an ally
Requirements: Be the leader of a guild
guild info This displays info about your guild. If pending approval will show status, otherwise will show members and applicants.
Requirements: be in a guild (displays different info for leader/deputy/member)
? guild war [guild name] Sets your guild at war with another guild. There was some upper management hesitation to make this a thing.
Requirements: be the leader of a guild
guild list Lists all the guilds.
Requirements: none
guild who [guild] Lists members in a specific guild
Requirements: none
gdt modify a bit, maybe? may be able to stay exactly the same.
IMMORTAL COMMANDS
guild establish [guild name] Approves and creates a guild
guild pending Lists guilds waiting approval
ACTION PLAN
I think my overall goal is to clean up the existing guild code and convert it to be all player initiated, I will take from coalition.c and clans.c as needed but the end goal will be for them to go away, being replaced by a "guilds.c" that houses all the guild related shit (some of which is currently hard coded).