From The Mana World
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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
  • 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 for the player in question if still 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 and their new ELO is calculated differently)

Challenging

  • @pvp_check <nick>
    • Returns rank ELO played won lost
  • @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

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
    • 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

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