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 money
    • You can play for 0 money as 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

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
  • Their PLAYED_ONE_ON_ONE_MONEY_MATCHES is 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'|amount_money>
    • Fails if
      • Challenged player does not exist
      • Challenged player is not at least lvl80
      • Either player already has a challenge currently (bool CHALLENGED ?)
      • Challenged player does not have enough money for the money challenge
      • Both players are not on the Hurnscald map
      • 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 and money 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 any ladder maps are currently free (recheck every 1min)
    • Their status in the queue for the particular map should be announced to them every 1min
    • 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
      • 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
  • 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