From The Mana World
Line 7: | Line 7: | ||
*** They should be somewhat equally far from each other | *** They should be somewhat equally far from each other | ||
*** A player is warped to a random start position on the map | *** A player is warped to a random start position on the map | ||
* You can play for fame or | * You can play for fame or a practice match | ||
** Only one fame match per day per character | ** Only one fame match per day per character | ||
* You can only invoke the related atcommands only from the Hurnscald map | * You can only invoke the related atcommands only from the Hurnscald map | ||
Line 21: | Line 20: | ||
* Their ELO is set to 1000 | * Their ELO is set to 1000 | ||
* Their PLAYED_ONE_ON_ONE_FAME_MATCHES is set to 0 | * Their PLAYED_ONE_ON_ONE_FAME_MATCHES is set to 0 | ||
* | ** Similarly WON_* and LOST_* are set to 0 | ||
** They are considered a newbie until they have played 20 fame matches (this 20 match separation comes from the ELO specification) | ** They are considered a newbie until they have played 20 fame matches (this 20 match separation comes from the ELO specification) | ||
*** Newbies are not shown on the ladder, even though they have a real ELO | *** Newbies are not shown on the ladder, even though they have a real ELO | ||
Line 28: | Line 27: | ||
=== Challenging === | === Challenging === | ||
* @challenge <nick> <map> <'fame'| | * @challenge <nick> <map> <'fame'|'practice'> | ||
** Fails if | ** Fails if | ||
*** Challenged player does not exist | *** Challenged player does not exist | ||
*** Challenged player is not currently seen by your character | |||
*** Challenged player is not at least lvl80 | *** Challenged player is not at least lvl80 | ||
*** Either player already has a challenge currently (bool CHALLENGED ?) | *** Either player already has a challenge currently (bool CHALLENGED ?) | ||
*** Either player has LAST_PLAYED_ONE_ON_ONE_FAME_MATCH == today | *** Either player has LAST_PLAYED_ONE_ON_ONE_FAME_MATCH == today | ||
** The challenged player is notified by a server message of challenging player rank, ELO (fame) and amount of played fame | ** The challenged player is notified by a server message of challenging player rank, ELO (fame) and amount of played/won/lost fame matches | ||
** The challenged player has 5min to respond to the challenge or the challenge expires | ** The challenged player has 5min to respond to the challenge or the challenge expires | ||
*** The server message to the challenged player repeats every minute | *** The server message to the challenged player repeats every minute | ||
Line 49: | Line 47: | ||
** Their status in the queue for the particular map should be announced to them every 1min | ** Their status in the queue for the particular map should be announced to them every 1min | ||
*** If either player is disconnected during queueing, a static -10 fame (ELO) penalty is applied to that player | *** If either player is disconnected during queueing, a static -10 fame (ELO) penalty is applied to that player | ||
**** | **** Match is cancelled and both players are removed from the queue | ||
**** No bonus fame (ELO) for the other player | **** No bonus fame (ELO) for the other player | ||
** Upon succesfully starting a match, set the appropriate LAST_PLAYED_*_MATCH (YYYY-MM-DD) for both players | ** Upon succesfully starting a match, set the appropriate LAST_PLAYED_*_MATCH (YYYY-MM-DD) for both players | ||
Line 59: | Line 57: | ||
=== End of battle === | === End of battle === | ||
* After result calculation, announcement and a 30 second wait period, warp players out and free the map lock | * After result calculation, announcement and a 30 second wait period, warp players out and free the map lock | ||
** Set appropriate WON_* and LOST_* | |||
* If 5 minutes are full and both players are alive | * If 5 minutes are full and both players are alive | ||
** -100 ELO (fame) static penalty for both, no real ELO calculation | ** -100 ELO (fame) static penalty for both, no real ELO calculation | ||
* A player disconnects or times out or dies | * A player disconnects or times out or dies | ||
** Remaining player wins, count new ELO (fame) for both | ** Remaining player wins, count new ELO (fame) for both | ||
** Announce the result and ELO + ladder rank changes to both players with a 30s delay so they get the results when they're back in the normal game and not in the arena anymore |
Revision as of 15:15, 18 October 2010
Assumptions
- There is a set of one on one PvP arena maps
- PvP arena maps have the no_save flag set
- This means if someone dies or disconnects there, they will not get back into the game there and cannot disrupt future matches
- one on one maps are 50 x 50 tiles
- There are 4 possible start positions on a one on one map
- They should be somewhat equally far from each other
- A player is warped to a random start position on the map
- PvP arena maps have the no_save flag set
- You can play for fame or a practice match
- Only one fame match per day per character
- You can only invoke the related atcommands only from the Hurnscald map
- The ladder is viewable as a .txt on the web server
- If a player has not played a match for 30 days, there is a -100 fame (ELO) static penalty
- This repeats every 30 days if no matches are played
- This penalty cannot take you under 1000 fame ELO
Registration
Players are registered for the PVP ladder automatically at lvl80
- Their ELO is set to 1000
- Their PLAYED_ONE_ON_ONE_FAME_MATCHES is set to 0
- Similarly WON_* and LOST_* are set to 0
- They are considered a newbie until they have played 20 fame matches (this 20 match separation comes from the ELO specification)
- Newbies are not shown on the ladder, even though they have a real ELO
- After 20 fame matches a player is ranked and shows up on the ladder
Challenging
- @challenge <nick> <map> <'fame'|'practice'>
- Fails if
- Challenged player does not exist
- Challenged player is not currently seen by your character
- Challenged player is not at least lvl80
- Either player already has a challenge currently (bool CHALLENGED ?)
- Either player has LAST_PLAYED_ONE_ON_ONE_FAME_MATCH == today
- The challenged player is notified by a server message of challenging player rank, ELO (fame) and amount of played/won/lost fame matches
- The challenged player has 5min to respond to the challenge or the challenge expires
- The server message to the challenged player repeats every minute
- Fails if
Accepting / declining a challenge
- @accept_challenge (@ac ?)
- @decline_challenge (@dc ?)
A challenge is accepted
- If the requested ladder map is currently free (recheck every 1min)
- Their status in the queue for the particular map should be announced to them every 1min
- If either player is disconnected during queueing, a static -10 fame (ELO) penalty is applied to that player
- Match is cancelled and both players are removed from the queue
- No bonus fame (ELO) for the other player
- If either player is disconnected during queueing, a static -10 fame (ELO) penalty is applied to that player
- Upon succesfully starting a match, set the appropriate LAST_PLAYED_*_MATCH (YYYY-MM-DD) for both players
- Set PLAYED_*_MATCHES++
- Give a countdown of 10 seconds to both players as whispers and warp them to the map
- Lock the map for the duration of the match
- Start a countdown of 5 minutes upon the match starting
- Their status in the queue for the particular map should be announced to them every 1min
End of battle
- After result calculation, announcement and a 30 second wait period, warp players out and free the map lock
- Set appropriate WON_* and LOST_*
- If 5 minutes are full and both players are alive
- -100 ELO (fame) static penalty for both, no real ELO calculation
- A player disconnects or times out or dies
- Remaining player wins, count new ELO (fame) for both
- Announce the result and ELO + ladder rank changes to both players with a 30s delay so they get the results when they're back in the normal game and not in the arena anymore