Page 1 of 1

The Matchmaker Spec

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

Generally, there are no commands for players when using matchmaker code; they just go RP with a recommended match and will receive 5 QP after earning +300 familiarity with their match. However, they can toggle the matchmaker code off if they do not wish to receive suggestions. Only staff can toggle off whether OTHER people receive suggestions to go RP with them.

Code: Select all

Syntax : automatch

iSyntax: matchmaker list
         matchmaker match <name1> to <name2>
         matchmaker delete <name>
         matchmaker report
         matchmaker nomatch <name>
         who nomatch
         nomatch list
Automatch is the player command to toggle off receiving match suggestions for other players. This means that they will not be told that they can get some QP for RPing with other players, but it does NOT prevent other players from being suggested to go RP with them.

Matchmaker list shows a staff member all matches that have been sent in the last 7 OOC days, ordered with the most recent ones first, and any matches the code plans to send in the next hour, provided no one in the system logs off. (See Screen Mockups for example output)

Matchmaker match <name1> to <name2> will queue a message to be sent to Name1 with a target of Name2. IE, 'matchmaker match Kinaed to Azarial' will suggest to Kinaed that she will get a bonus for going to RP with Azarial. Using this command will overwrite any pending, unsent matches to Azarial in the system.

Matchmaker delete <name> will delete a pending match in the queue. It cannot delete matches already sent.

Matchmaker report will show a small report to tell us how many people have accepted the challenge, how many people have abandoned it, etc. This will tell us if this command is working or if it needs to be revamped. (See Screen Mockups for example output)

Matchmaker nomatch <name> is a toggle that will stop a character from being either the recipient of suggestions OR the matched party. Essentially, they are skipped entirely until the flag is removed.

Who nomatch shows all characters online with a nomatch flag. Also, nomatch should show in the character's stat information.

Nomatch list shows all characters in game who have the nomatch flag placed against the character.

Re: The Matchmaker Spec

Posted: Thu Sep 27, 2018 6:40 am
by Niamh
Calculations

CREATING THE MATCHMAKER POOL

As people login to TI, exit RP, or return from AFK, they should be checked to see if they fit the criteria to be added to the matchmaker pool as follows:

- Not in the new player zone (200 vnum range)
- Is not currently in RP
- Has an Online time to RP ratio of < 50% for the last 7 days
- Is not whoinvis
- Has no 'nomatch' flag
- Has less than 2 hours RP time for the daily cycle

As people log off, enter RP, or go AFK, remove them from both the matchmaker and wholist pool.

CREATING THE WHOLIST POOL

As people log in or exit RP, they should be randomly added to the wholist pool. As they log off or enter RP, they should be removed from the wholist pool.

PROCESSING THE MATCHES

Once every 10-30 minutes (random), process the matchmaker pool as follows:

1. If the matchmaker pool is empty, abort.
2. If the matchmaker pool is larger than 1, shuffle the matchmaker pool to randomize who is processed first.
3. Select the top character in the matchmaker pool.
4. Shuffle the wholist pool to randomize who the Selected matchmaker character is tested against.
5. Select the top person in the wholist pool.
6. Test the Selected matchmaker character against the selected wholist member.
A. Are they both cyan? If yes, do they have a familiarity < 500? MATCH
Else, select the next person in the wholist pool until the entire pool is processed, and we go to test priority B.
B. Are they both cyan? MATCH
"" "" go to priority C.
C. Is selected player cyan, but the other player not?
"" "" go to priority D.
D. Any other case will then match.
7. Issue an invitation to the wholist character who is matched against the selected character and start the timer to earn the necessary familiarity for QP.
8. Delete both characters from both the wholist and matchmaker pools.

NOTE:
- If a character logs off with an active invitation, send a message to the
receiving character from the wholist pool:

Kinaed has logged out without RPing with Azarial. Invitation cancelled.