summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-04-22Fix Wformat-zero-length warningsFedja Beader3-5/+0
Squash with: remove empty lines
2024-04-22Fix -Wformat warningsFedja Beader2-5/+5
2024-04-21DB/npc_free_internal: Use ancient approachFreeyorp2-7/+12
C++11 was a really long time ago, huh?
2024-04-21DB: Maybe fix concurrent modificationFreeyorp2-7/+7
2024-04-20getmapmaxx getmapmaxyHoraK-FDF1-0/+26
2024-04-20npc: Deregister events with `ev_db` on freeFreeyorp1-0/+12
In serverdata@c3b7fe59a, `magic-knuckles` made use of temporary copies of the spell NPC via `puppet`/`destroy` to provide additional functionality. This implementation was correct with respect to tmwa behaviour as documented. However, `puppet` and `destroy` doesn't quite return the server to a clean prior state. In `builtin_puppet`, events with the fresh new copy of NPC are registered into the global `ev_db` map to track named events, such as `OnDischarge`, which might be triggered later. However, these registrations are not reversed with `destroy`, leaving `ev_db` to retain references to now invalid and destroyed NPCs. serverdata@c3b7fe59a revealed this oversight through an intersection of rare conditions: - An NPC that is routinely cloned and destroyed - Having a variety of events - Including one that can be triggered during a search for the event over ALL NPCs when `#discharge` is cast. To reproduce, compile with `-fsanitize=address -fsanitize=undefined` to more reliably catch use of invalid memory, cast `magic-knuckles`, log out the character which cast `magic-knuckles` to destroy the NPC, log back in, then cast `#discharge`. The server will then crash. Special thanks to SystemError for testing out this theory. Currently lacking a test environment of my own, this would not have been possible without his patience and diligence.
2024-04-12Add battle_config.max_rate limit (500). GMs cannot go above thisFedja Beader2-28/+36
Blame Ledmitz (:
2024-04-10Add server-wide drop rates modifierFedja Beader3-3/+29
2024-04-10Split @exprate into @bexprate and @jexprateFedja Beader1-0/+44
Preserve @exprate as a shortcut for both & because scripts in serverdata call it
2024-04-10Report (hardcoded) drop rates on same line as base/job exp, reword messages.Fedja Beader1-6/+6
2024-03-18Add CI test stageFedja Beader1-1/+40
+Pass artifacts (well, the whole repo) to test stage +YAML syntax error. Since I saw a glimpse of the repo being reinitialised two tries ago, perhaps it saves everything tracked and just adding untracked files should be enough.
2024-03-18Workaround "Function... not defined in.." (breakpoints not found) (GDB bug)Fedja Beader1-1/+14
Function "_Z13do_breakpointIN4tmwa3map11script_dataEEvRKT_PKc" not defined in "/builds/specing/tmwa/src/debug-debug/map-script-persist.cpp". Breakpoint 1 (/builds/specing/tmwa/src/debug-debug/map-script-persist.cpp:'_Z13do_breakpointIN4tmwa3map11script_dataEEvRKT_PKc') pending. void do_breakpoint<tmwa::map::script_data>(tmwa::map::script_data const&, char const*); Thanks to ssbssa@#gdb for pointing this out.
2024-03-13Several updates to the README.mdThorbjørn Lindeijer1-50/+18
It's no longer maintained by o11c since many years now, so an update was long due. Also updated some outdated links. Finally, who can say for sure that The Mana World will never run on Manaserv?
2024-03-08Add googletest-1.8.1 as a submodule - gtest-1.14 shipped by my distro ↵Fedja Beader3-1/+10
requires C++14.
2024-03-08Correct issue with GTEST_DIR not being passed properly.Fedja Beader1-2/+9
Note how gcc uses /usr/include/gtest (default search path) as the -I for GTEST_DIR is not on the gcc command line: System-wide gtest is 1.14 and requires C++14 while provided one is 1.8.1. GTEST_DIR="$PWD/deps/googletest/googletest" ./configure --user make[1]: Leaving directory '/data/users/tmwa/proj/tmw/classic/tmwa' find: ‘doc-gen/’: No such file or directory g++ -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -fvisibility=hidden -MG -MM \ -MT 'ast/item_test := ' \ -MF obj/ast/item_test.d src/ast/item_test.cpp In file included from /usr/include/gtest/gtest-message.h:57, from /usr/include/gtest/gtest-assertion-result.h:46, from /usr/include/gtest/gtest.h:64, from src/ast/item_test.cpp:21: /usr/include/gtest/internal/gtest-port.h:270:2: error: #error C++ versions less than C++14 are not supported. 270 | #error C++ versions less than C++14 are not supported. | ^~~~~ Makefile:331: obj/ast/item_test.d: No such file or directory
2024-03-06Restored README.md visibilityThorbjørn Lindeijer1-28/+2
* Removed the <details> tag used to hide the main contents. * Removed deprecation notice, since we're still running this server and will need to maintain it until it has been replaced. * Deleted the section about tmwa-monitor, since the tool is not just deprecated but actually was deleted in 53a91a3fbf0929a99abcdfea23126f978c3ce71a. This partly reverts da50c517000391c83305ff704e3059c900f28d5b.
2024-02-22Update test cases for addition of Item Mode fieldFedja Beader1-8/+10
See "Item Mode" commit from Apr 3 2023
2024-02-20Merge branch 'py2CI' into 'master'Led Mitz1-0/+52
Enable GitLab CI See merge request legacy/tmwa!259
2024-02-20Merge branch 'generate-client-code' into 'master'Led Mitz1-5/+62
tools/protocol.py: Added generation of client code See merge request legacy/tmwa!258
2024-02-20tools/protocol.py: Added generation of client codeThorbjørn Lindeijer1-5/+62
This helps with keeping the protocol in the Mana client up to date. ****
2024-02-13Enable GitLab CIFedja Beader1-0/+52
+Add meway's Ubuntu +Add python -> python2 symlink +Separate python/python2 into INSTALL_PACKAGES
2024-02-13Merge branch 'extra_stat_update_fix' into 'master'Jesusalva Jesusalva1-1/+1
Fix bug whereby stat updates were not sent to client after equipping +1 stat... See merge request legacy/tmwa!257
2024-02-01Fix bug whereby stat updates were not sent to client after equipping +1 stat ↵Fedja Beader1-1/+1
pt item when base stat is 1. What is funnier is that it sent updates for all other 5 (unchanged stats). Example, amethyst ring +1 dex: Sending update for stat 0: saved: 0+1, new: 0+0 (str?) Sending update for stat 1: saved: 0+1, new: 0+0 (agi?) Sending update for stat 2: saved: 0+1, new: 0+0 (vit?) Sending update for stat 3: saved: 0+1, new: 0+0 (int?) Sending update for stat 5: saved: 0+1, new: 0+0 (luk?)
2024-01-31Transfer something from local/ to live repository so there are less conflictsJesusaves1-2/+2
2023-11-27Merge branch 'activity_checks' into 'master'Led Mitz12-126/+318
activity checks and status cleanup See merge request legacy/tmwa!252
2023-11-27activity checks and status cleanupHoraK-FDF12-126/+318
2023-11-12Merge branch 'submodule_update' into 'master'Led Mitz1-1/+1
Update ProprietaryHub link. git:// was likely waiting indefinetely for user to login. See merge request legacy/tmwa!253
2023-11-12Update ProprietaryHub link. git:// was likely waiting indefinetely for user ↵Fedja Beader1-1/+1
to login.
2023-11-08Merge branch 'matkpot' into 'master'Led Mitz1-5/+7
SC_MATKPOT See merge request legacy/tmwa!251
2023-11-08SC_MATKPOTHoraK-FDF1-5/+7
2023-08-28Merge branch 'magic_delay' into 'master'Led Mitz1-9/+9
Revert magic attack delay to original behaviour See merge request legacy/tmwa!250
2023-08-28Revert magic attack delay to original behaviourv23.10.22Led Mitz1-9/+9
2023-08-03Merge branch 'atk_delays' into 'master'Led Mitz9-44/+81
weapon base attack delay standardization See merge request legacy/tmwa!249
2023-08-03weapon base attack delay standardizationHoraK-FDF9-44/+81
2023-06-10Merge branch 'maxlvl' into 'master'v23.6.10Led Mitz1-16/+27
Backport Maxlvl See merge request legacy/tmwa!248
2023-06-10Backport MaxlvlHoraK-FDF1-16/+27
2023-04-17Merge branch 'sc_cooldown_upmarmu' into 'master'Led Mitz3-0/+4
SC_COOLDOWN_UPMARMU See merge request legacy/tmwa!247
2023-04-04SC_COOLDOWN_UPMARMUHoraK-FDF3-0/+4
2023-04-03Merge branch 'item_mode' into 'master'Led Mitz9-1/+47
Item mode See merge request legacy/tmwa!246
2023-04-03Item modeHoraK-FDF9-1/+47
2023-02-09Merge branch 'bonus' into 'master'Jesusalva Jesusalva5-126/+190
bAllStats, bAgiVit, bAgiDexStr, bDeadlyStrikeRate, bDeadlyStrikeAddRate See merge request legacy/tmwa!245
2023-02-09bAllStats, bAgiVit, bAgiDexStr, bDeadlyStrikeRate, bDeadlyStrikeAddRateHoraK-FDF5-126/+190
2023-01-22Merge branch 'bonus' into 'master'Jesusalva Jesusalva3-1/+15
bSpeedCap See merge request legacy/tmwa!244
2023-01-22bSpeedCapHoraK-FDF3-1/+15
2023-01-06Make clear we do NOT accept AGPL contributions.Jesusalva Jesusalva1-0/+1
2022-12-23mesn was missing, but now the three minimum functions are here!Jesusaves1-0/+18
2022-12-22Fix a typoJesusaves1-0/+1
2022-12-22Merge branch 'mobs_and_drops' into 'master'Jesusalva Jesusalva7-49/+98
mobs critical_def + 10 drops + storage 500 See merge request legacy/tmwa!242
2022-12-16mobs critical_def + 10 drops + storage 500HoraK-FDF7-49/+98
2022-12-15Merge branch 'hello-chat-exploit-securityfix' into 'master'Jesusalva Jesusalva1-0/+11
Hello=). Someone said its up to GMs to deal with users exploiting their servers. See merge request legacy/tmwa!241