Page 1 of 1

The Roles Spec

Posted: Thu Sep 27, 2018 6:45 am
by Niamh
Guild Commands

Code: Select all

Syntax: role add <name> <role vnum>
        role add <target> list
        deguild <name>
        guildlist

Staff:  role delete <name> <vnum>
With the new addition of roles, things have to change about how GLs, staff, and guild members view roles.

New Guildlist:

Code: Select all

                         Guildlist for Troubadours
    Name    | Guild Role            | Rank | Act |       Last Promoted
===============================================================================
*Audric      Poet Laudate             99    Y0          Feb 07 2015 17:13
   Kinaed      Staff                     0    Y0          Feb 08 2015 16:12
   Azarial     Staff                     0    N2          Feb 01 2015 04:12

Members found: 8/14 (57% active)
(OOC: The Troubadours guild currently requires 2 sponsors for membership.)
NOTES:
- Guild Rank becomes Guild Role
- Rank is added, and this is Rank in the role.
- Act is the current Y/N active. The number next to it is the inactivity timer.
- The * before the name, and the Cyan highlight is a guildleader.
- The last promoted is the timestamp for when their guild role last changed.
- Generally, the colors (Cyan for leaders, Dark for inactives, and plain white for active, non-GLs) should remain.
- The promote and subrank commands are removed and unnecessary. Role filters and lists will display them instead.

Role add <target> list will show all roles a GL can put on a member.

Role add <name> <role vnum> bestows a role on a player. This is both a staff and a GL command, and it replaces the old 'guild <name> <guild>' command.

Deguild <name> sets all active guild roles as inactive (ie, historical) on a player, and completely removes the player from the guild.

Role remove <name> <vnum> sets a role as inactive on a player (ie, historical). If it removes all guild roles on a player, the player will be completely deguilded.

Role delete <name> <vnum> is a staff command that will remove a role completely from a player, including their history, as if the player never had or held the role

Re: The Roles Spec

Posted: Thu Sep 27, 2018 6:45 am
by Niamh
New Player Views

Code: Select all

Syntax: roles list
        roles list all
        roles match <string>
        roles filter <aspect> <string>
        roles review #
        roles review # prereq
Roles list provides a list of roles available to a character to purchase.

Roles list all provides a list of all roles the character has permission to see.

Roles match <string> searches for any role that contains a matching string in any of the fields, similar to "help match <string>".

Roles filter <aspect> <string> will check any of the specific aspects of the roles list, as entered in the POLCA, and display all the roles that match.

Roles review # will allow a player to view the role in full as it is in the POLCA. roles review # prereq will display a role's preprequisites.

SEE ROLE LIST OUTPUT for example output.

Re: The Roles Spec

Posted: Thu Sep 27, 2018 6:47 am
by Niamh
Prerequisites

Code: Select all

Vnum         : <auto-generated, defaults and unchangable, 4 digits>
Role         : <defaults to the title entered, 30 chars max>
Description  : <editor for the GL/staff to describe the role, 10 lines> 
Powers       : <defaults to None, auto-populated by Flags, often commands>  
Population   : <defaults to unique, unlimited or a %>
Income       : <defaults 0, auto-set weekly gpay from guild or imm, can be negative> 
Purchaseable : <Always available/Never purchaseable/Chargen only/Pre-req required>
Cost         : <if purchaseable yes, defaults to 0 xp>
Pre-reqs     : <if pre-reqs required, list of role vnums required in a char's past>
Editable     : <Y/N, defaults to Yes, if yes, GLs can edit>
Exclusions   : <default None, guilds or roles mutually exclusive>
Pre-reqs     : <default None, activity levels, xp, birthclass, precedence, other roles, etc>
Guild Level  : <default 1, specifies the role's precedence in its guild>
Flags        : <defaults none, See ROLE POLCA DEFINITIONS>
Mail Access  : <defaults none, can be any guild mail profile>
Guild Kit    : <list of objs that will be loaded to a rank kit>
Precedence   : <#, staff settable only, precedence tier>
Influence    : <how much influence the player gets weekly for the role>
Support      : <Additional support slots gained by the role>
Prerequsiites

Code: Select all

   Roles: <list of previously required vnums>
   Birthclass
   # of supporters
   support of a particular role
   influence
   money
   age
   assets
   stats
   currentclass
   gender
   mage/non-mage
   kills
   skills
   item
   knowledge of a secret
   addiction to something
   a known spell or ritual
   a particular subverter
   # of subversions
   marriage
   title
   race
   faith
   tax status
   criminal status (warranted)
   blacklist status

Re: The Roles Spec

Posted: Thu Sep 27, 2018 6:50 am
by Niamh
POLCA

Code: Select all

Syntax: roles 
        roles purchase <vnum>
        SEE NEW PLAYER COMMANDS
        SEE GUILD COMMANDS

Staff:  roles create <title>
        roles edit <vnum>
        roles review <vnum>
        roles delete <vnum>
        roles deactivate <vnum>
Roles replace guild ranks, the game shop roster, and professions. Roles can be linked to a guild. If they are, then the player will get access to all related guild related channels, the ability to see seekers, and will appear in the guildleader's guildlist.

Players who have a role that is flagged 'guildleader' will appear in the guildleader command. They will also be able to add roles their guild roles to other players.

Code: Select all

                          Role Management

Vnum         : <auto-generated, defaults and unchangable, 4 digits>
Role         : <defaults to the title entered, 30 chars max>
Description  : <editor for the GL/staff to describe the role, 3200 chars> 
Powers       : <defaults to None, SEE POWERS>  
Income       : <defaults to 0, auto-set weekly gpay from owner guild, can be negative> 
Purchaseable : <Always/Never/Chargen/Pre-reqs>
Cost         : <if purchaseable yes, defaults to 0 xp>
Editable     : <Y/N, defaults to Yes, if yes, GLs can edit>
Population   : <defaults to unique, unlimited or a %>
Exclusions   : <default None, guilds or role vnums mutually exclusive>
Prereqs      : <default No, Yes opens a Prereqs section of the POLCA>
Guild        : <defaults none, else all guilds the role is a member of>
Rank         : <default 0, can be any whole number, but no duplicates in a guild>
Mail Access  : <defaults none, can be any mail profile name>
EQKit        : <objs vnums that load with the @owner set to the player if in chargen>
Precedence   : <#, staff settable only, precedence in format "Tier 1-3" "Tier 2-2">
Influence    : <# weekly IP, defaults 0>
Support      : <# bonus support slots gained>
Flags        : <defaults none, see ROLE FLAGS below>

Type "done" to post the role or "cancel" to abort.
Roles alone will list the roles that a player currently has active as well as those in the past. SEE ROLES FORMAT

Roles create puts a staff member in the POLCA to create a new role.

Roles edit # puts a staff member in the POLCA to edit an existing role.

Roles review # just outputs the polca to the staff member.

Roles delete # deletes the role completely.

Roles deactive # toggles the open flag on the role.

Roles add <target> list will show all roles a GL can promote a given player to (usually the list of all guild roles that the target char has the pre-reqs for>.

Roles add <target> <vnum> will deactivate the target's current active guild role (if any) and set/activate this guild role on the character.

NOTES:
- Players may only have 3 roles active at a time.
- Players may only have 1 role active in a given guild at a time.
- Players without a role in a guild are automatically set to a staff-built guild role 'Retired', whichever role is guild level 0.
- Inactive players in a guild are automatically set to a staff-built guild role 'Retired', whichever role is guild level 0.
- If the role has an income, but it is not a guild-role, set up income from the Immortal Guild. Otherwise, the income should come from the guild's account. This is true even for negative income.
- Population:
Unique: only one person in the game can hold the role
% : the role only shows the number of active players with this role is below the %
Unlimited: No population limits on the role.
- Deguilding a character will deactivate their current guild roles and remove them from the guild.
- Mail Access says which header/footers chars assigned this role can automatically access/use when they type 'mail profile list' or use when mailing others.
- Purchasable:
Always :can be viewed/purchased at any time so long as the player meets all prereqs.
Never :the role must be set on the player by staff or a GL.
Chargen:the role can only be viewed/purchased in chargen.
- Roles can have multiple guild flags.

ROLE FLAGS:
- Flags can be:
+ Open: this role is now visible to eligible players in the roles list.
+ Roster: this role is a rostered role.
+ Default: only one role in a guild should be default, this is the rank inactive and guilded characters without a role will default to. Typically staff will set this as "Retired" and is the rank that newly guilded characters will be set to. The code will need to check if there is a default role in a guild before allowing a staffer to set this flag.
+ Leader: this flag can only be set by staff, allows a player with this role to create roles for the guild this role is flagged with.
+ Leader_Edit: The role is editable by the leader of a guild.
+ <command>: This role has access to the specified command, such as bank, promote, burn, execute, bounty strike, blacklist, etc.
+ Gnotes: This role can see gnotes for any guild it's in.

ROLES FORMAT

Code: Select all

Vnum    Title                    Status      Mail Key    Purchased
1012    Grand Inquisitor         Current     GI12        12 Dec 2013
1010    High Inquisitor          Past        HI10        10 Oct 2013
1009    Priest                   Past        PR9         07 Jun 2013
NOTES:
- Roles are sorted on activity, then on date purchased, so active roles show at the top and then more recently purchased roles at the top.
- Add the Role Level to Gnotes so that gnotes can only be accessed by someone of that role level or higher.