Login Location Persistence (#1009)

* database tables and persistence entities; attempt to retrieve values from database and apply them to the player avatar character; resolve spawn options in sanctuary in different manner

* minor database table field adjustments; saving to database when account persistence ends; properly loading from and initializing with data queried from the database; suicide better supported

* converting the zoning method/status tokens; better support of zoning handling of persistent locations; messages that explain the consequences of login-spawning into an invalid location

* adding triggers for the 'saved char' message, both those prompted by game activity and a 'reassurance' message; also, actually save the char data sometimes

* intervals for timing charsaved message set by configuration file now

* corrections to spawn tests and tables

* random sanctuary spawn in more places than one
This commit is contained in:
Fate-JH 2022-10-11 11:16:12 -04:00 committed by GitHub
parent 190a897dd5
commit 1369da22f0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 918 additions and 195 deletions

View file

@ -147,6 +147,36 @@ game {
# When set, however, the next zone unlock is carried out regardless of the amount of time remaining
force-rotation-immediately = false
}
saved-msg = {
# A brief delay to the @charsaved message, in seconds.
# Use this when the message should display very soon for any reason.
short = {
# This delay always occurs
fixed = 5
# This delay is applied partially - fixed + [0,delay)
variable = 5
}
# A delay to the @charsaved message whenever a previous message has been displayed, in seconds.
# Used as the default interval between messages.
# It should provide assurance to the player even if nothing happened.
# Actual database interaction not assured.
renewal = {
fixed = 300
variable = 600
}
# A delay to the @charsaved message
# whenever an action that would cause actual database interaction occurs, in seconds.
# Actual database interaction not assured.
# The variability, in this case, serves the purpose of hedging against other activity by the player
# that would trigger the message again in a short amount of time.
interrupted-by-action = {
fixed = 15
variable = 30
}
}
}
anti-cheat {