diff options
-rw-r--r-- | GNUmakefile | 3 | ||||
-rw-r--r-- | conf/.gitignore | 1 | ||||
-rw-r--r-- | conf/monitor_athena.conf | 82 | ||||
-rw-r--r-- | conf/monitor_local.conf.example | 1 | ||||
-rw-r--r-- | conf/tmwa-monitor.conf | 6 | ||||
-rw-r--r-- | login/conf/login_athena.conf | 24 | ||||
-rw-r--r-- | login/conf/tmwa-admin-old.conf | 6 | ||||
-rw-r--r-- | login/conf/tmwa-admin.conf | 7 | ||||
-rw-r--r-- | login/conf/tmwa-login-old.conf | 7 | ||||
-rw-r--r-- | login/conf/tmwa-login.conf | 9 | ||||
-rw-r--r-- | world/conf/char_athena.conf | 14 | ||||
-rw-r--r-- | world/conf/char_local.conf.example | 3 | ||||
-rw-r--r-- | world/conf/tmwa-char-old.conf | 8 | ||||
-rw-r--r-- | world/conf/tmwa-char.conf | 10 | ||||
-rw-r--r-- | world/map/conf/battle_athena.conf | 13 | ||||
-rw-r--r-- | world/map/conf/map_athena.conf | 3 | ||||
-rw-r--r-- | world/map/conf/map_local.conf.example | 2 | ||||
-rw-r--r-- | world/map/conf/tmwa-map.conf | 33 | ||||
-rw-r--r-- | world/map/db/item_db_chest.txt (renamed from world/map/db/chest_item_db.txt) | 0 | ||||
-rw-r--r-- | world/map/db/item_db_foot.txt (renamed from world/map/db/foot_item_db.txt) | 0 | ||||
-rw-r--r-- | world/map/db/item_db_generic.txt (renamed from world/map/db/generic_item_db.txt) | 0 | ||||
-rw-r--r-- | world/map/db/item_db_hand.txt (renamed from world/map/db/hand_item_db.txt) | 0 | ||||
-rw-r--r-- | world/map/db/item_db_head.txt (renamed from world/map/db/head_item_db.txt) | 0 | ||||
-rw-r--r-- | world/map/db/item_db_leg.txt (renamed from world/map/db/leg_item_db.txt) | 0 | ||||
-rw-r--r-- | world/map/db/item_db_offhand.txt (renamed from world/map/db/offhand_item_db.txt) | 0 | ||||
-rw-r--r-- | world/map/db/item_db_trinket.txt (renamed from world/map/db/trinket_item_db.txt) | 0 | ||||
-rw-r--r-- | world/map/db/item_db_use.txt (renamed from world/map/db/use_item_db.txt) | 0 | ||||
-rw-r--r-- | world/map/db/item_db_weapon.txt (renamed from world/map/db/weapon_item_db.txt) | 0 | ||||
-rw-r--r-- | world/map/db/mob_db_0_19.txt (renamed from world/map/db/0_19_mob_db.txt) | 0 | ||||
-rw-r--r-- | world/map/db/mob_db_20_39.txt (renamed from world/map/db/20_39_mob_db.txt) | 0 | ||||
-rw-r--r-- | world/map/db/mob_db_40_59.txt (renamed from world/map/db/40_59_mob_db.txt) | 0 | ||||
-rw-r--r-- | world/map/db/mob_db_60_79.txt (renamed from world/map/db/60_79_mob_db.txt) | 0 | ||||
-rw-r--r-- | world/map/db/mob_db_80_99.txt (renamed from world/map/db/80_99_mob_db.txt) | 0 | ||||
-rw-r--r-- | world/map/db/mob_db_over_100.txt (renamed from world/map/db/over_100_mob_db.txt) | 0 |
34 files changed, 149 insertions, 83 deletions
diff --git a/GNUmakefile b/GNUmakefile index c22fe72f..35036514 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -9,8 +9,9 @@ maps: cp "$|" "$@" conf: world/map/conf/magic-secrets.sex \ login/conf/login_local.conf login/conf/ladmin_local.conf login/save/gm_account.txt login/save/account.txt \ +world/conf/char_local.conf \ world/map/conf/map_local.conf world/map/conf/battle_local.conf world/map/conf/motd.txt world/map/conf/atcommand_local.conf world/map/db/const-debugflag.txt \ -world/conf/char_local.conf +conf/monitor_local.conf world/map/conf/magic-secrets.sex: world/map/conf/magic-secrets.sex.template world/map/conf/secrets-build cd world/map/conf && ./build-magic.sh diff --git a/conf/.gitignore b/conf/.gitignore new file mode 100644 index 00000000..2c43e911 --- /dev/null +++ b/conf/.gitignore @@ -0,0 +1 @@ +/*_local.conf diff --git a/conf/monitor_athena.conf b/conf/monitor_athena.conf new file mode 100644 index 00000000..68fe65f6 --- /dev/null +++ b/conf/monitor_athena.conf @@ -0,0 +1,82 @@ +// Athena Monitor configuration file. + +////////////////////////////////////////////////////////////////////// +// Some notes about the existence of this file: +// +// tmwa-monitor is unused in its current form, but plans are +// to resurrect it in *some* form. See below for what we do use. +// However, an alternative possibility would be to just install config +// files to integrate with some existing daemon-monitoring tool. +// +// THAT SAID, blindly restarting a server that exited in an unknown +// way is a really great way to get unrecoverable savefile corruption. +// For this reason, we only auto-restart the map server, which only +// persists some unimportant global variables such as high scores. +// Besides, the other servers are stable enough that they rarely crash. +// +// This monitor names three "server"s, but they are just arbitrary. +// This is not enough for the case of multiple worlds, +// and is too much for the case of worlds running as different users. +// +// Currently the server variables are pointing to local shell scripts +// (which are themselves deprecated and print a flashing message), +// which is necessary because the actual servers need to be run inside +// the appropriate dir to read conf and read/write savefiles from/to +// the correct location. This will get better once savefiles get put +// in $localstatedir (i.e. /var), but it's not yet known how that +// should interact with multiple worlds running at the same time. +// +// Likely, however, this will depend on the ability to pass a config +// file as an argument to the servers. +// +// The workdir setting would make a lot more sense if this file was +// installed in $sysconfdir (i.e. /etc) by tmwa's `make install`, +// which is still planned but hasn't happened yet, but makes *less* +// sense if the servers install their config there. +// +// And regardless, we need to allow per-server workdirs, including +// multiple instances, and possible pre/post scripts and exit/signal +// status handlers. But all that seems complicated, leading back to +// "shouldn't we just use an existing daemon manager?". +// +// Alternatively, we could act like an XDG application, which is +// admittedly somewhat odd if you're a daemon, but would at least +// clarify what happens if you run the servers as a user (which we +// do always. When an init script is written, it should run as +// somebody other than root!). +// +////////////////////////////////////////////////////////////////////// +// +// What we actually use instead of tmwa-monitor: +// +// On the main server, we run a tmux session, with one window +// for each server and for each bot. The servers are run directly +// from inside the appropriate directory. +// +// The test server is like the main server without bots, but instead +// of running `tmwa-map` directly, we use the tmwa-map-wrapper script +// from tools/, which restarts the server whenever it exits and merges +// tagged patches from github, except that it does no merges if the +// server exited too quickly after the restart. +// +// On local dev machines, we usually use the `./run-all` script from +// this repo. +// +////////////////////////////////////////////////////////////////////// + + +// Binary to use with message "forked login server". +login_server: ./login-server + +// Binary to use with message "forked char server". +char_server: ./char-server + +// Binary to use with message "forked map server". +map_server: ./map-server + +// Directory in which to run the servers. +// If never set, dynamically computed as $HOME/tmwserver +//workdir: /path/to/tmwa-server-data + +// local settings for this nonserver in this file +import: conf/monitor_local.conf diff --git a/conf/monitor_local.conf.example b/conf/monitor_local.conf.example new file mode 100644 index 00000000..32d168db --- /dev/null +++ b/conf/monitor_local.conf.example @@ -0,0 +1 @@ +// Athena Monitor local configuration file. diff --git a/conf/tmwa-monitor.conf b/conf/tmwa-monitor.conf new file mode 100644 index 00000000..db630d47 --- /dev/null +++ b/conf/tmwa-monitor.conf @@ -0,0 +1,6 @@ +// Master config file for The Mana World Athena (monitor component) +// This file is used since version 14.x.y, but major changes in 15.x.y + +// tmwa-monitor is deprecated, see comments in the below file + +monitor_conf: conf/monitor_athena.conf diff --git a/login/conf/login_athena.conf b/login/conf/login_athena.conf index 41b038a7..a14cfa6f 100644 --- a/login/conf/login_athena.conf +++ b/login/conf/login_athena.conf @@ -16,14 +16,6 @@ gm_account_filename_check_timer: 15 // General log. login_log_filename: log/login.log -// Log for unknown packets. -login_log_unknown_packets_filename: log/login_unknown_packets.log - -// Are unknown packets from the client saved? -// (unknown internal packets are always saved) -// This is not nice to your hard drive. -save_unknown_packets: no - // Print basic header information about incoming client packets. // Also print a little more about client or char auth attempts. display_parse_login: no @@ -41,22 +33,6 @@ display_parse_fromchar: 0 // 0: all players, 1-99: GM level at least this. min_level_to_connect: 0 -// Behavior of relative time adjustments for unlimited accounts. -// If true, ladmin timeadd will first set the limit to right now. -// If false, ladmin timeadd will do nothing on unlimited accounts. -// In either case, you can use ladmin timeset. -add_to_unlimited_account: off - -// Time, in seconds, that a new account has before it expires. -// Set to -1 for unlimited time. -// Use of this setting is not condoned by The Mana World. -//start_limited_time: -1 - -// Check that a player has the same IP when switching from login to char. -// To use this, your lan_support.conf files MUST be correct. -// Disabling this setting is not supported. -check_ip_flag: yes - // How the IP allow/deny lists (below) are interpreted. // Possible values: // "deny, allow" (default): diff --git a/login/conf/tmwa-admin-old.conf b/login/conf/tmwa-admin-old.conf new file mode 100644 index 00000000..7670b002 --- /dev/null +++ b/login/conf/tmwa-admin-old.conf @@ -0,0 +1,6 @@ +// Master config file for The Mana World Athena (admin component) +// This file is used since version 14.x.y + +version-lt: 15.1.23 + +import: conf/ladmin_athena.conf diff --git a/login/conf/tmwa-admin.conf b/login/conf/tmwa-admin.conf index 4584fa13..69f333d9 100644 --- a/login/conf/tmwa-admin.conf +++ b/login/conf/tmwa-admin.conf @@ -1,4 +1,7 @@ // Master config file for The Mana World Athena (admin component) -// This file is used since version 14.x.y +// This file is used since version 14.x.y, but major changes in 15.x.y -import: conf/ladmin_athena.conf +import: conf/tmwa-admin-old.conf +version-ge: 15.1.23 + +admin_conf: conf/ladmin_athena.conf diff --git a/login/conf/tmwa-login-old.conf b/login/conf/tmwa-login-old.conf new file mode 100644 index 00000000..907ada2e --- /dev/null +++ b/login/conf/tmwa-login-old.conf @@ -0,0 +1,7 @@ +// Master config file for The Mana World Athena (login component) +// This file is used since version 14.x.y + +version-lt: 15.1.23 + +import: conf/login_athena.conf +import: conf/lan_support.conf diff --git a/login/conf/tmwa-login.conf b/login/conf/tmwa-login.conf index 89eb61ae..44e3adfe 100644 --- a/login/conf/tmwa-login.conf +++ b/login/conf/tmwa-login.conf @@ -1,5 +1,8 @@ // Master config file for The Mana World Athena (login component) -// This file is used since version 14.x.y +// This file is used since version 14.x.y, but major changes in 15.x.y -import: conf/login_athena.conf -import: conf/lan_support.conf +import: conf/tmwa-login-old.conf +version-ge: 15.1.23 + +login_conf: conf/login_athena.conf +login_lan_conf: conf/lan_support.conf diff --git a/world/conf/char_athena.conf b/world/conf/char_athena.conf index 73aab23c..ee2cba1b 100644 --- a/world/conf/char_athena.conf +++ b/world/conf/char_athena.conf @@ -5,11 +5,6 @@ // of just under 1024 per server (but a world may be many servers). max_connect_user: 0 -// Check that a player has the same IP when switching from char to map. -// To use this, your lan_support.conf files MUST be correct. -// Disabling this is not supported. -check_ip_flag: yes - // Interval, in seconds, between saves of the flatfile databases. autosave_time: 300 @@ -23,15 +18,6 @@ start_point: 029-2.gat,22,24 // Log Filename char_log_filename: log/char.log -// Manage possible letters/symbol in the name of charater. -// Control character (0x00-0x1f) are never accepted. Possible values are: -// 0: no restriction (builtin default, but please don't use) -// 1: only letters/symbols in 'char_name_letters' option -// 2: Letters/symbols in 'char_name_letters' option are forbidden. -// All others are possible (please don't use this). -// Setting this to anything but 1 is not recommended. -char_name_option: 1 - // Set the letters/symbols that you want use with 'char_name_option'. // This is a cumulative option; specify nothing to reset it. // Note: if you want to add a space, it can't be at the beginning or end. diff --git a/world/conf/char_local.conf.example b/world/conf/char_local.conf.example index 4beab7c9..920d7892 100644 --- a/world/conf/char_local.conf.example +++ b/world/conf/char_local.conf.example @@ -7,9 +7,6 @@ passwd: p1 // Server name, no more than 19 characters server_name: The Mana World -// Wisp name for server: used to send wisp from server to players (between 4 to 23 characters) -wisp_server_name: Server - // Login Server IP login_ip:127.0.0.1 // Login Server Port diff --git a/world/conf/tmwa-char-old.conf b/world/conf/tmwa-char-old.conf new file mode 100644 index 00000000..b7e37735 --- /dev/null +++ b/world/conf/tmwa-char-old.conf @@ -0,0 +1,8 @@ +// Master config file for The Mana World Athena (char component) +// This file is used since version 14.x.y + +version-lt: 15.1.23 + +import: conf/char_athena.conf +import: conf/lan_support.conf +import: conf/inter_athena.conf diff --git a/world/conf/tmwa-char.conf b/world/conf/tmwa-char.conf index a55cff1f..84213139 100644 --- a/world/conf/tmwa-char.conf +++ b/world/conf/tmwa-char.conf @@ -1,6 +1,8 @@ // Master config file for The Mana World Athena (char component) -// This file is used since version 14.x.y +// This file is used since version 14.x.y, but major changes in 15.x.y -import: conf/char_athena.conf -import: conf/lan_support.conf -import: conf/inter_athena.conf +import: conf/tmwa-char-old.conf +version-ge: 15.1.23 +char_conf: conf/char_athena.conf +char_lan_conf: conf/lan_support.conf +inter_conf: conf/inter_athena.conf diff --git a/world/map/conf/battle_athena.conf b/world/map/conf/battle_athena.conf index 8288601d..6e80b1e7 100644 --- a/world/map/conf/battle_athena.conf +++ b/world/map/conf/battle_athena.conf @@ -99,8 +99,8 @@ monster_max_aspd: 199 // set to 'Yes', Normal players (gm level 0) can never use a GM command even if you set the command level to 0. atcommand_gm_only: no -// [GM] Can equip anything? (No or minimum GM level, can cause client errors.) -gm_all_equipment: no +// [GM] Can equip anything? (0 to disable, or minimum GM level, can cause client errors.) +gm_all_equipment: 0 // Should GMs be given a hashed IP instead of the real one? mask_ip_gms: 1 @@ -131,9 +131,6 @@ natural_healhp_interval: 6000 // The time interval for SP to restore naturally. (in milliseconds) natural_healsp_interval: 8000 -// Automatic healing skill's time interval. (in milliseconds) -natural_heal_skill_interval: 10000 - // The maximum weight for a character to carry when the character stops healing naturally. (in %) natural_heal_weight_rate: 50 @@ -211,12 +208,6 @@ prevent_logout: yes // If skill fails by delay, should it display or not. (Note 1) display_delay_skill_fail: yes -// Is a monster summoned via dead branch aggresive? (Note 1) -dead_branch_active: yes - -// If someone loots, show name in party? (Note 1) -show_steal_in_same_party: no - // How to count the number of the enemies who do an agi penalty... // 1 or less: It is a count altogether. // 2: Full evasion exclusion diff --git a/world/map/conf/map_athena.conf b/world/map/conf/map_athena.conf index f03c0123..f0f59fd7 100644 --- a/world/map/conf/map_athena.conf +++ b/world/map/conf/map_athena.conf @@ -6,9 +6,6 @@ autosave_time: 60 // Message of the day file, when a character logs on, this message is displayed. motd_txt: conf/motd.txt -// When @help or @h is typed when you are a gm, this is displayed for helping new gms understand gm commands. -help_txt: conf/help.txt - mapreg_txt: save/mapreg.txt import: npc/scripts.conf diff --git a/world/map/conf/map_local.conf.example b/world/map/conf/map_local.conf.example index 894a43d3..d4270347 100644 --- a/world/map/conf/map_local.conf.example +++ b/world/map/conf/map_local.conf.example @@ -15,4 +15,4 @@ map_ip: 127.0.0.1 map_port: 5122 // Log of map actions, disabled by default because this is huge. -//map_log: log/map.log +//log_file: log/map.log diff --git a/world/map/conf/tmwa-map.conf b/world/map/conf/tmwa-map.conf index 44ac5757..10dd615e 100644 --- a/world/map/conf/tmwa-map.conf +++ b/world/map/conf/tmwa-map.conf @@ -5,7 +5,6 @@ // Older server versions hard-coded the loaders in (mostly) this order, // and there may still be code dependencies. -// The plan is to turn some of these into just plain 'import' eventually? map_conf: conf/map_athena.conf battle_conf: conf/battle_athena.conf atcommand_conf: conf/atcommand_athena.conf @@ -15,22 +14,22 @@ const_db: db/const-quest.txt const_db: db/const-mapflags.txt const_db: db/const-debugflag.txt -item_db: db/chest_item_db.txt -item_db: db/foot_item_db.txt -item_db: db/generic_item_db.txt -item_db: db/hand_item_db.txt -item_db: db/head_item_db.txt -item_db: db/leg_item_db.txt -item_db: db/offhand_item_db.txt -item_db: db/trinket_item_db.txt -item_db: db/use_item_db.txt -item_db: db/weapon_item_db.txt -mob_db: db/0_19_mob_db.txt -mob_db: db/20_39_mob_db.txt -mob_db: db/40_59_mob_db.txt -mob_db: db/60_79_mob_db.txt -mob_db: db/80_99_mob_db.txt -mob_db: db/over_100_mob_db.txt +item_db: db/item_db_chest.txt +item_db: db/item_db_foot.txt +item_db: db/item_db_generic.txt +item_db: db/item_db_hand.txt +item_db: db/item_db_head.txt +item_db: db/item_db_leg.txt +item_db: db/item_db_offhand.txt +item_db: db/item_db_trinket.txt +item_db: db/item_db_use.txt +item_db: db/item_db_weapon.txt +mob_db: db/mob_db_0_19.txt +mob_db: db/mob_db_20_39.txt +mob_db: db/mob_db_40_59.txt +mob_db: db/mob_db_60_79.txt +mob_db: db/mob_db_80_99.txt +mob_db: db/mob_db_over_100.txt mob_skill_db: db/mob_skill_db.txt skill_db: db/skill_db.txt diff --git a/world/map/db/chest_item_db.txt b/world/map/db/item_db_chest.txt index de94086c..de94086c 100644 --- a/world/map/db/chest_item_db.txt +++ b/world/map/db/item_db_chest.txt diff --git a/world/map/db/foot_item_db.txt b/world/map/db/item_db_foot.txt index e86be1c2..e86be1c2 100644 --- a/world/map/db/foot_item_db.txt +++ b/world/map/db/item_db_foot.txt diff --git a/world/map/db/generic_item_db.txt b/world/map/db/item_db_generic.txt index efae1569..efae1569 100644 --- a/world/map/db/generic_item_db.txt +++ b/world/map/db/item_db_generic.txt diff --git a/world/map/db/hand_item_db.txt b/world/map/db/item_db_hand.txt index d57062b5..d57062b5 100644 --- a/world/map/db/hand_item_db.txt +++ b/world/map/db/item_db_hand.txt diff --git a/world/map/db/head_item_db.txt b/world/map/db/item_db_head.txt index 922ea4b3..922ea4b3 100644 --- a/world/map/db/head_item_db.txt +++ b/world/map/db/item_db_head.txt diff --git a/world/map/db/leg_item_db.txt b/world/map/db/item_db_leg.txt index 95fb53b4..95fb53b4 100644 --- a/world/map/db/leg_item_db.txt +++ b/world/map/db/item_db_leg.txt diff --git a/world/map/db/offhand_item_db.txt b/world/map/db/item_db_offhand.txt index a36e1778..a36e1778 100644 --- a/world/map/db/offhand_item_db.txt +++ b/world/map/db/item_db_offhand.txt diff --git a/world/map/db/trinket_item_db.txt b/world/map/db/item_db_trinket.txt index f3b77bc9..f3b77bc9 100644 --- a/world/map/db/trinket_item_db.txt +++ b/world/map/db/item_db_trinket.txt diff --git a/world/map/db/use_item_db.txt b/world/map/db/item_db_use.txt index b2b13008..b2b13008 100644 --- a/world/map/db/use_item_db.txt +++ b/world/map/db/item_db_use.txt diff --git a/world/map/db/weapon_item_db.txt b/world/map/db/item_db_weapon.txt index a16425f8..a16425f8 100644 --- a/world/map/db/weapon_item_db.txt +++ b/world/map/db/item_db_weapon.txt diff --git a/world/map/db/0_19_mob_db.txt b/world/map/db/mob_db_0_19.txt index 36169593..36169593 100644 --- a/world/map/db/0_19_mob_db.txt +++ b/world/map/db/mob_db_0_19.txt diff --git a/world/map/db/20_39_mob_db.txt b/world/map/db/mob_db_20_39.txt index b0d1d096..b0d1d096 100644 --- a/world/map/db/20_39_mob_db.txt +++ b/world/map/db/mob_db_20_39.txt diff --git a/world/map/db/40_59_mob_db.txt b/world/map/db/mob_db_40_59.txt index a27c015c..a27c015c 100644 --- a/world/map/db/40_59_mob_db.txt +++ b/world/map/db/mob_db_40_59.txt diff --git a/world/map/db/60_79_mob_db.txt b/world/map/db/mob_db_60_79.txt index 5dd9231a..5dd9231a 100644 --- a/world/map/db/60_79_mob_db.txt +++ b/world/map/db/mob_db_60_79.txt diff --git a/world/map/db/80_99_mob_db.txt b/world/map/db/mob_db_80_99.txt index d6cdde0c..d6cdde0c 100644 --- a/world/map/db/80_99_mob_db.txt +++ b/world/map/db/mob_db_80_99.txt diff --git a/world/map/db/over_100_mob_db.txt b/world/map/db/mob_db_over_100.txt index 3644b4dc..3644b4dc 100644 --- a/world/map/db/over_100_mob_db.txt +++ b/world/map/db/mob_db_over_100.txt |