From The Mana World
 
(9 intermediate revisions by the same user not shown)
Line 2: Line 2:
* There is a set of one on one PvP arena maps
* There is a set of one on one PvP arena maps
** PvP arena maps have the no_save flag set
** 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
*** 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
** one on one maps are 50 x 50 tiles
** There are 4 possible start positions on a one on one map
** There are 4 possible start positions on a one on one map
*** 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 money
* You can play for fame or a practice match
** You can play for 0 money as 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
* 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 ===
=== Registration ===
Line 17: 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
* Their PLAYED_ONE_ON_ONE_MONEY_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 and their new ELO is calculated differently)
*** Newbies are not shown on the ladder, even though they have a real ELO
*** Newbies can only challenge newbies
*** After 20 fame matches a player is ranked and shows up on the ladder


=== Challenging ===
=== Challenging ===
 
* @pvp_check <nick>
* @challenge <nick> <map> <'fame'|amount_money>
** Returns rank ELO played won lost
* @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
*** Challenged player does not have enough money for the money challenge
*** Either player already has a challenge currently (bool CHALLENGED ?)
*** Both players are not in the same newbie/ranked status
*** Both players are not on the Hurnscald map
*** 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 and money matches
** 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 43: Line 43:


=== A challenge is accepted ===
=== A challenge is accepted ===
* If any ladder maps are currently free (recheck every 1min)
* 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
** 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
** Upon succesfully starting a match, set the appropriate LAST_PLAYED_*_MATCH (YYYY-MM-DD) for both players
*** Set PLAYED_*_MATCHES++
*** Set PLAYED_*_MATCHES++
** Give a countdown of 10 seconds to both players as whispers and warp them to the map
** 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
*** Start a countdown of 5 minutes upon the match starting


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

Latest revision as of 16:07, 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
  • 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