Compare commits

...

212 Commits

Author SHA1 Message Date
Aleos
ca73989ae1 Merge branch 'master' into cleanup/removeonchangemap 2022-12-12 14:59:25 -05:00
Takius
a1798f7094 Fix skill SO_VARETYR_SPEAR (#7425)
* Corrects the hit type resulting in a variance of damage.
2022-12-12 10:53:40 -05:00
Singe Horizontal
1f1b5fe4a0 Restores Dispell removing NPC_AGIUP (#7479)
Fixes #7478
2022-12-11 11:06:07 +07:00
lighta
f7dbe79c34 Fix wedding skill checks (#5579)
* Fixes #5576 and fixes #7475.
* Fix WE_CALLPARTNER, WE_CALLPARENT and WE_CALLBABY fallthrough check.
* Adds usage of packet struct.
* Add autotrade check for WE_CALLPARTNER.
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: aleos <aleos89@users.noreply.github.com>
2022-12-10 16:16:52 -05:00
Aleos
aa2bbaa31f Update GitHub workflows (#7477)
* Updates gcc to work on Ubuntu 22.04.
* Force clang to use Ubuntu 20.04 until some build errors are resolved in the environment.
* Adds a concurrency check to disable any active prior runs when pushing a new commit.
2022-12-09 14:53:25 -05:00
eppc0330
7bfae25c74 Fix grade upgrade fail announcement (#7189)
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-12-05 09:55:58 +01:00
rosald
5549ad2ac2 Update agit_start_se.txt (#7448) 2022-11-30 22:07:43 +01:00
Jittapan Pluemsumran
c9f23e691a Follow up to 4e638838de (#7468) 2022-11-30 15:11:25 +07:00
idk-whoami
795414de4f Removed duplicates list of menu items (#7459)
(from ghost palace exchange npc)
2022-11-29 14:24:24 +01:00
Jittapan Pluemsumran
4e638838de Corrected server response when adding an item to a trade session fails. (#7462)
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-11-29 13:24:34 +07:00
Vincent Stumpf
4661016445 Generate Reputation UI bson files (#7340) 2022-11-27 00:53:54 -08:00
Jittapan Pluemsumran
bc4934373d Implemented itemmoveinfov5.txt generator (#7457) 2022-11-26 17:33:27 +07:00
Atemo
9398f698fc Added missing etcs and equips items up to 22 11 2022 (#7453) 2022-11-24 18:35:21 +01:00
Atemo
4353ec3fec Added missing items usable/cash (#7456)
* Added several usable (container) and cash items
* Corrected some aegis item name
* Commented items with rate 0 for subgroup > 0
2022-11-24 13:58:26 +01:00
Aleos
3024d08a39 Fixes a crash from script command searchitem (#7446) 2022-11-19 08:54:47 -05:00
eppc0330
0e1285a94b Remove range & path check for NPC's skill cast (#7422) 2022-11-19 08:06:40 -05:00
Atemo
526a3fa048 Added close3 script command (#7439)
Thanks to @aleos89 @Lemongrass3110 @vstumpf !
2022-11-18 15:39:00 +01:00
Lemongrass3110
eb8587f5b5 Removed the strange ACK function concept (#7404)
Cleans up packet database a little more.
Turned some more packets into structs.

Co-authored-by: Vincent Stumpf <vincents.995@gmail.com>
2022-11-17 22:09:12 +01:00
Atemo
cc5770eda4 Removed deprecated script command "unitemote" (#7443) 2022-11-16 23:00:53 +01:00
Atemo
77aed690ea Small clean-up and correction in item_db / combo DB (#7442) 2022-11-16 23:00:39 +01:00
Livia Medeiros
129ce465b0 Adjust installation and service scripts (#7407)
* Fix install in directory with spaces

* Use $() notation instead of legacy backticks

* Fix help->start enlog message

* Fix typo

* Whitespace cleanup

* Fix restart delay

* Make get_status robust
2022-11-16 13:04:26 -08:00
Atemo
5d8e034868 Added HelpMeShorty dynamic npc and quest (#7415)
* Short quest to allow the player to summon, via an item, a dynamic NPC that gives basic game information.
* After level 30, the player can get a costume in exchange for the item.

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-11-16 14:42:53 +01:00
Aleos
15e27b3567 Updates the db README (#7436)
Updates the db README
Updates a couple examples from TXT to YML.
Wrap examples in code blocks
2022-11-15 23:31:07 +01:00
mazvi
9512eb81ca Added roulette command documentation (#7438)
Added roulette command atcommands.yml

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-11-15 22:47:08 +01:00
Atemo
c415b51b88 isdead script command (#7434)
* return true if a player is dead else false

Thanks to @aleos89 and @Lemongrass3110
2022-11-15 14:45:09 +01:00
Lemongrass3110
a090a0a7ba Added an atcommand for roulette (#7433) 2022-11-14 21:32:10 +01:00
violent01
03f04ed507 Fixed a small typo in Poring Village Instance (#7432) 2022-11-12 19:04:17 +01:00
Jittapan
3f7155bf84 Revert "Bumped db version"
This reverts commit 9db030fcc6.
2022-11-12 12:13:53 +07:00
Jittapan
9db030fcc6 Bumped db version 2022-11-12 12:12:57 +07:00
Balfear
a3703495a0 New Achievements & first aid starter pack (#7414)
Fixes #7406
2022-11-12 00:18:02 +01:00
SapitoSucio
55d3c1578c Itemlink command and integration (#7291)
Co-authored-by: Akkarinage <mike.langford@industrial-illusions.net>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
Co-authored-by: cydh<cydh@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: secretdataz<secretdataz@users.noreply.github.com>
2022-11-11 18:04:41 +01:00
Lemongrass3110
96efb0e426 Block dynamic NPCs in instances (#7429)
Fixes #7420

Thanks to @attackjom
2022-11-10 22:14:42 +01:00
Balfear
4cb1af31f8 Don't show attendance UI (#7424) 2022-11-10 13:35:27 +01:00
Livia Medeiros
d5bb710eb3 Fix typos (#7421) 2022-11-09 15:59:40 +07:00
Atemo
3515285f43 Correction of getpetinfo parameter in item db (#7401)
Fixed #7398

Thanks to @idk-whoami @kaninhot004 and @Lemongrass3110 !
2022-11-08 22:51:44 +01:00
Lemongrass3110
a763ad0629 Implemented dynamic NPCs (#7402)
This is required for features like #6640
Added COLOR_LIGHT_YELLOW
Cleaned up color definitions, its useless to store them as string first.
Dynamic NPCs will stay when you switch map and come back in time.
Dynamic NPCs will be removed instantly when you log out.
You can only create one dynamic NPC at a time.

Thanks to @Atemo!
2022-11-07 00:41:10 +01:00
Lemongrass3110
774d4ca2e8 Follow up to 99faa58
Thanks to @Singe-Horizontal
2022-11-06 22:51:36 +01:00
idk-whoami
8d536e7ffe Corrected script for some item #12 (#7399)
Thanks to @Atemo
2022-11-06 17:36:21 +01:00
Vietlubu
b351e40070 Fix item script for Paradise Luxury Suit (#7409) 2022-11-06 17:32:13 +01:00
Livia Medeiros
63c3e67d93 Fix typos in Renewal scripts (#7408) 2022-11-06 16:53:23 +01:00
Lemongrass3110
a76e7b8818 Cleanup for guild position change (#7405)
Fixes #7387
This not really fully fixes it, but it makes it more clear.
Additionally changed to structs.

Thanks to @MrAntares
2022-11-05 17:27:02 +01:00
Vincent Stumpf
bf2b62bc9c Fix an issue when running map-server-generator in opt mode (#7378) 2022-11-04 21:00:58 -07:00
Joam
9c0d574787 Adds reputation script command (#7374) 2022-11-03 18:30:58 +01:00
Jittapan
b28eac7b56 Cleaned up CZ_PC_SELL_ITEMLIST and its related functions
* Added a validation check for remaining item amount
2022-11-03 22:08:36 +07:00
HAO YAN
88d6d798c7 Minor fixes to plagiarize script commands (#7394)
* Fix plagiarizeskillreset unable to reset.
* Update plagiarizeskill documentation.
2022-11-02 13:50:18 -04:00
Aleos
66b348c547 Fixes NPC_COMET duration (#7388)
* Fixes #7355.
* Follow up to 2993c0b.
* Resolves an issue with the duration of Burning overlapping with the duration of NPC_COMET.
Thanks to @sonniez and @OptimusM!
2022-11-02 13:01:19 -04:00
idk-whoami
0018c39965 Locations correction of item ID 480023 (#7396) 2022-11-01 12:43:56 +07:00
eppc0330
2896ae21b0 Fix NPC_MAXPAIN skill mechanism (#5820)
* Max Pain will deal reflect damage to all characters on screen.
* Caster of Max Pain will get damaged.
* Max Pain will reflect both weapon and magic damage.
* Max Pain damages as special physical melee attack. PR_KYRIE, MG_SAFETYWALL, etc. can block the damage.
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Daegaladh <Daegaladh@users.noreply.github.com>
2022-10-31 13:54:53 -04:00
idk-whoami
73112801c6 Corrected script for some item (#7392)
* Added missing ; on active_transform and various fixes

Fixed #7382

Thanks to @kaninhot004 !
2022-10-29 23:33:45 +02:00
userid0
086a757235 Add navigenerator.bat to gitignore (#7386) 2022-10-26 08:20:48 -04:00
eppc0330
d0e39fbea7 Remove ASC_EDP nosave flag (#7384) 2022-10-25 15:55:09 +07:00
userid0
4836e09199 Fix compiler warning C4244. (#7295) 2022-10-24 10:02:27 -04:00
Pokye
de00e03bd9 Added Missing Shops Script (#7362)
* Added Character Position Change Coupon seller
* Added Emperium Seller

Thanks @aleos89 @Atemo @Balferian @Everade @secretdataz !
2022-10-23 13:54:16 +02:00
HAO YAN
9bf012d297 Update plagiarism script command name (#7377) 2022-10-22 15:11:17 -04:00
Atemo
59432412be Added missing SubType for item ID 1998 (#7373)
Fixed #7371

Thanks to @kaninhot004 !
2022-10-22 12:58:22 +02:00
Atemo
53d5fc609a Updated damagetaken (#7372)
Save damagetaken in mob_data for mob controller
2022-10-22 12:57:46 +02:00
Aleos
4a5b8e33dc Follow up to c3a171d (#7375)
* Fixes a compile warning.
2022-10-21 10:44:17 -04:00
HAO YAN
a001e1c6e3 Add Player Fame script commands (#7310)
* Add the ability to update and retrieve fame info of a character.
2022-10-20 13:05:39 -04:00
HAO YAN
07c18f248b Add getrandmobid script command (#7309)
* Used to generate random monster ID in NPC scripts.
2022-10-20 12:25:49 -04:00
HAO YAN
c3a171da81 Add skill_plagiarism script commands (#6304)
* Allow players to copy skills with script command skill_plagiarism.
* Plagiarized skills can be cleared with script command skill_plagiarism_reset.
2022-10-20 11:16:46 -04:00
HAO YAN
7d19b4bbdd Add cap_value script command (#7307)
* Supports int64.
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-10-20 10:33:20 -04:00
Aleos
8073d4e084 Adds EndOnEnd node to status database (#7313)
* Any status defined under EndOnEnd will be removed when the status becomes inactive.
* Renames End to EndOnStart.
* Removes some hard coded statuses.
* Includes YamlUpgrade Tool update to rename End -> EndOnStart.
Thanks to @Lemongrass3110!
2022-10-20 10:04:00 -04:00
Atemo
bc2afbdfc2 SubType correction of item ID 28141 (#7368)
Fixed #7366

Thanks to @kaninhot004
2022-10-19 02:08:41 +02:00
Balfear
067ecbdeb4 Okolnir quest (missed warp coordinates) (#7286)
Added official warp coordinates in the quest
2022-10-17 11:34:01 +02:00
Atemo
43036926cf Added new items up to october 2022 (#7357)
* Removed duplicate combos and sorted the item ID in item_db_etc.yml
* Updated etc items
* Added equip items
2022-10-16 12:53:16 +02:00
Pokye
e95eb0ad84 Minor fix script Carbonated Water Vending Machine (#7361)
* Minor fix script Carbonated Water Vending Machine
* Added Atemo suggestion.

Fixed #7360
2022-10-15 12:05:05 +02:00
Aleos
d7bf5ebb58 Adds support for macro detection (#7315)
* Adds the official client macro detection system.
* Includes the ability to load imagery at server boot.
* See doc/captcha_db.txt for more information!
Thanks to @Asheraf and @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-10-14 10:54:19 -04:00
Atemo
750c7d72de Permanent mob spawn definition update (#7352)
* Added support for mob name (sprite) as parameter in mob permanent spawn definition

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-10-13 23:44:26 +02:00
Aleos
8138281d90 Fixes a possible size mismatch for isspace() (#7311)
* Fixes #5928.
* Passing a char type argument to isspace() could result in unpredictable results.
Thanks to @hyunji-Hong and @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-10-13 11:05:43 -04:00
Atemo
bbc516a4d5 Deprecated itemdb_exists (#7353)
Deprecated itemdb_exists to use item_db.exists() or item_db.find() instead

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-10-13 16:39:40 +02:00
Aleos
a9a47dcde4 Updates the cooldowns for new guild skills (#7306)
* Fixes #6184.
* Adjusts the cooldown of Charge Shout Flag to 15 minutes.
* Adjusts the cooldown of Charge Shout Beating to 15 minutes.
* Adjusts the cooldown of Emergency Move to 1 minute.
Thanks to @Everade and Dia!
2022-10-13 09:49:23 -04:00
Vincent Stumpf
64959d30cd Add custom depenencies for atcommand, script, and battle (#7274) 2022-10-13 15:06:00 +02:00
Aleos
fba0f4ee70 Fixes SA_DRAGONOLOGY MATK behavior (#7328)
* The MATK bonus should only be doubled versus Dragons, not quadrupled like the other bonuses.
* Confirmed the behaviors between pre-renewal and renewal.
Thanks to @mrjnumber1!
2022-10-13 08:26:42 -04:00
Atemo
e56694f161 Updated mapcache (#7354) 2022-10-13 12:22:30 +02:00
HAO YAN
f6633b5e7d Update Autopot NPC (#7308)
Fix delay shouldn't go below the `.MinDelay` or above `.MaxDelay`.
2022-10-12 23:27:24 +02:00
Aleos
7f82194eca Adds SC_WEAPONBREAKER status (#7265)
* Fixes #6915.
* Adds the SC_WEAPONBREAKER status which is applied via NPC_WEAPONBRAKER's self cast ability.
* Adds a chance to break a target's weapon at 2 * skill_lv% for 30 seconds.
Thanks to @Playtester!
2022-10-12 16:53:49 -04:00
Lemongrass3110
5b396bf7f1 Fixed some more hardcoded directions (#7317)
Replaced hardcoded numbers with their respective constants to increase maintainability and readability.
2022-10-12 22:38:22 +02:00
Lemongrass3110
e4e4ba1af0 Removed a debug message in web-server (#7305)
Fixes #7194
If a character/account logs in the first time, we silently store the default configuration in the foreseen tables now.
Fixes the problem that the client does not call account configuration save in newer versions and therefore always triggers the debug message.

Thanks to @idk-whoami
2022-10-12 21:44:03 +02:00
Vincent Stumpf
e28fb93f1e Fix warning when sending party message (#7350)
Fixes #7344
Thanks @24msz6eo
2022-10-12 21:04:51 +07:00
Lemongrass3110
311cda80af Fixed an invalid primary key in web.sql (#7304)
Fixes #7290

Thanks to @Tolimatoi
2022-10-11 23:41:08 +07:00
Aleos
3d3a5159e3 Updates NPC_SIEGEMODE comment to known behavior (#7327) 2022-10-11 08:03:30 -04:00
Vincent Stumpf
7b2a682c47 Fix pet_endautobonus crash (#7342)
Fixes #7292
2022-10-11 15:04:15 +07:00
idk-whoami
323a44ad86 Corrected rockridge shop name (#7341) 2022-10-11 00:04:24 +02:00
Atemo
7649947d50 Initial release of Juno monster society (#7323)
Thanks to @Daegaladh !
2022-10-11 00:03:13 +02:00
Jittapan Pluemsumran
43f5094620 Fixed "Unequip All" button not working on main server clients. Fixes #7337 (#7338) 2022-10-10 11:06:23 +07:00
Jittapan Pluemsumran
fa36ae27dd Fixed zero-length packet warning on party member logoff. Fixes #7324 (#7339)
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-10-09 18:21:57 +07:00
Vincent Stumpf
6bb29c0743 add nlohmann json to better support web service (#7325) 2022-10-08 20:18:04 -07:00
Aleos
7d09041018 Updates the script command doc min/max int value (#7329) 2022-10-08 08:03:50 -04:00
Vincent Stumpf
0de6ff37f7 Add map-server-generator to gitignore (#7331) 2022-10-07 21:16:59 -07:00
Aleos
4ae56ba94c Fixes Marine Sphere behavior (#7333)
* Fixes #7332.
* Resolves an issue where Marine Sphere were not casting their skills after being hit.
Thanks to @violent01 and @Daegaladh!
2022-10-07 15:54:07 -04:00
Jittapan Pluemsumran
9d0fa3523e Allow Blacksmith Blessing usage on level 5 weapons and level 2 armors (#7326) 2022-10-07 22:28:27 +07:00
Kasper Sandin
b568f2fb11 Remove unclosed npc script code blocks (#7330) 2022-10-07 13:47:57 +07:00
mazvi
1b0c50ad01 Update bug_report.yml (#7294)
* Include command line steps to retrieve git hash.
Thanks to @Lemongrass3110
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-10-05 13:19:21 -04:00
Lemongrass3110
99faa588ad Fixed names of two timer functions (#7319)
Blame it on me in 01f61cfa
2022-10-05 16:31:03 +02:00
Atemo
79bb537fa2 Initial release of the Poring village instance (#7293)
* Initial release of the Poring village instance

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-10-04 21:19:48 +02:00
JohnnyPlayy
85a938ecce Implementing the Script Gemstone Bagger! (#7318)
* Adding The Gem Bagging!

* Adding suggestion from @aleos89 
* Adding suggestion from @Atemo
2022-10-04 21:18:06 +02:00
idk-whoami
48f1493747 Corrected script for some item #11 (#7277)
Thanks to @Atemo
Thanks to @Balferian
2022-10-04 19:47:57 +02:00
Atemo
edc7137176 Fixed several item scripts (#7316) 2022-10-04 16:05:28 +02:00
Jittapan Pluemsumran
19fe27932f Implemented refine result broadcast packet (#7301) 2022-10-04 15:27:25 +07:00
Jittapan Pluemsumran
6fc3a07247 Follow up to 588f321d08
[ci skip]
2022-10-03 14:36:48 +07:00
Jittapan Pluemsumran
588f321d08 Follow up to 39b3e5fe29 2022-10-03 12:46:07 +07:00
Jittapan Pluemsumran
39b3e5fe29 Jewelers across the server now sells more jewel items (#7320)
Follow-up for enchantgrade feature.
2022-10-03 12:36:32 +07:00
Sader Fawall
9c2576f47a duplicate npc command script (#5960)
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-10-01 22:58:53 +02:00
Everade
c7ec076a6c Database entries for Episode 16.1 and 16.2 Memorial Dungeons (#7297)
Half Moon In The Daylight, Weekend Dungeon, Friday Dungeon
2022-10-01 04:03:46 +02:00
Vincent Stumpf
47c9a36215 Refactor generator to support future features (#7214)
Co-authored-by: Akkarinage <mike.langford@industrial-illusions.net>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-09-25 00:37:21 -07:00
Aleos
c2e19bcf06 Fixes to Lullaby, Pang Voice, and Wink of Charm (#7264)
* Fixes #6916.
* Corrects the interval of Lullaby to every 4 seconds in pre-renewal.
* Corrects the success chance of Lullaby to INT * 0.2 + rand(10%, 30%) for Sleep.
* Corrects the duration of Lullaby's Sleep to 18 + 2 seconds in renewal and 30 seconds in pre-renewal.
* Corrects the success chance of Pang Voice to 70% for Confusion.
* Corrects the success chance of Wink of Charm versus players to 10% for Confusion.
* Corrects the success chance of Wink of Charm versus monsters to [(srcBaseLevel - tarBaseLevel) + 40]% for Charm.
Thanks to @Playtester and @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-09-22 13:25:30 -04:00
Aleos
1e970ff1af Fixes the EXP, Drop, and Penalty message at login (#7266)
* Fixes #6165 and fixes #6170.
* Fixes the death penalty message not displaying the proper rate between normal and VIP players.
* Fixes the EXP message not displaying the proper rate for VIP players.
Thanks to @violent01 and @zdurexz!
2022-09-22 13:03:54 -04:00
Aleos
701d2c88c6 Fixes Skill Damage Database reflecting damage (#7258)
* Fixes #7248.
* Resolves an issue where skills defined in the Skill Damage Database would always reflect at least 1 damage even when no reflective gear or skills are active.
Thanks to @dev1-juan!
2022-09-22 12:38:14 -04:00
munkrej
4800b5bf72 adds missing mob skill conditions MSC_GROUNDATTACKED and MSC_DAMAGEDGT (#7138) 2022-09-22 15:30:17 +02:00
Lemongrass3110
fa4666d7af Fixed some packets for 2022 clients (#7276)
Migrates a few packets from FIFO to structs.
Migrates friendlist to struct and fixed invalid version check.
Added a new guild related packet that does nothing for the time being.
Synced to latest Hercules' packet definitions.
Fixed name of ZC_SOULENERGY.

Thanks to @Dia and @Pokye.
2022-09-22 01:50:24 +02:00
Null il3ol2ed
5ea44e7c0e Nemo patch ExtendOldCashShopPreview (#7281) 2022-09-22 01:23:27 +02:00
Lemongrass3110
ba9770ce95 Fixed caching of databases during runtime (#7275)
* Fixes #7268
Thanks to @jmsngls
2022-09-19 22:22:09 -04:00
Aleos
4c42bcbb34 Fixes petautobonus issues (#7272)
* Fixes #7271.
* Fixes a missing check that looks to see if the bonus already exists before adding it again to the vector.
* Fixes the removal of pet autobonuses.
Thanks to @mazvi, @vstumpf, and @Lemongrass3110!
2022-09-19 16:35:42 -04:00
Aleos
c9f075b8c6 Adds support for the new form for issues (#7278)
* Adds support for the new GitHub form templates for issues and feature requests.
* Makes hard requirements for details we need before being able to submit issues.
* Disables empty bug reports.
Thanks to @Lemongrass3110!
2022-09-19 16:17:45 -04:00
Akkarinage
56280c6da0 Added the Code of Conduct document (#7243)
* Added the Code of Conduct document

Because apparently this is a Github Community thing, and they want us to play nice.

* Apply suggestions from code review
2022-09-17 10:20:54 +01:00
Aleos
f8cd4aa8c7 Implements petautobonus script commands (#7053)
* Fixes #7038.
* Implements script commands: petautobonus, petautobonus2, and petautobonus3.
* This allows pets to utilize the same autobonus features that players can use without having to check for the equipped item position.
Thanks to @EditorFc's suggestion and @Lemongrass3110!
2022-09-16 12:46:53 -04:00
Jittapan Pluemsumran
ee5ba2d889 Fixed potential crash via skill GN_FIRE_EXPANSION. (#7267) 2022-09-16 00:40:26 +07:00
idk-whoami
17cb93909e Just fixed a typo (#7263) 2022-09-13 13:11:04 +02:00
Aleos
05923b3ded Adds a battle config for Guild Skill saving (#7262)
* Fixes #7256.
* Adds battle config guild_skill_relog_type to allow the ability to save Guild Skill cooldowns on relog or reset them.
* Adjusts the check to account for any new Guild Skills.
Thanks to @Xypr0 and @Lemongrass3110!
2022-09-12 16:57:46 -04:00
Lemongrass3110
38b8d5a994 Initial release of item package selection (#7239)
Thanks to @aleos89 and @Atemo

Co-authored-by: Atemo <capucrath@gmail.com>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-09-12 22:06:04 +02:00
Kanin Temsrisuk
421e49e1c4 Check for invalid Reject Sword cases (#7174)
* If the target is dead, break out of the remaining checks and calculations.
Thanks to @Lemongrass3110!
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-09-12 12:36:49 -04:00
Atemo
f490aeb6fa Updated mapcache (#7260) 2022-09-12 16:29:47 +02:00
idk-whoami
58a7f36c92 Corrected script for some item #10 (#7177)
* Corrected script for some item #10
* add some items JRO costume

Thanks to @Atemo
2022-09-12 14:29:08 +02:00
Akkarinage
4a4cc26252 Modified the Bug Report Issue Template (#7242)
Maybe if it's easier to read, it may get filled out properly? Maybe. I live in hope.

The final output from the template is unchanged except for slight formatting - but the hidden text that gives instructions to the users is now laid out in a way that should cause them to flow from one question to the next. Hopefully.
2022-09-12 10:58:54 +01:00
Akkarinage
df46dd9455 Updated Gunslinger Job Change Quest Reward Items (#7223)
* Checked against reliable source to confirm items.

Added a check instead of a separate file as only the items have changed between Pre-RE and RE.
2022-09-12 10:49:04 +01:00
Lemongrass3110
96e3981c68 Fixed some issue with clif_loadConfirm (#5204)
Fixes #5203
Fixes #5278
Fixes #5376

Thanks to @aleos89 for his help and everyone else involved in reporting, commenting and testing.
2022-09-11 20:49:31 +02:00
Aleos
a38b65da49 Fixes Lif - Brain Surgery SP bonus (#7257)
* Fixes #7221.
* Corrects the SP bonus of Lif's Brain Surgery to be skill_lv%.
Thanks to @Daraen1!
2022-09-09 12:11:19 -04:00
Atemo
a53d8604c9 Updated the english name of some items (#7254) 2022-09-07 18:54:41 +02:00
Atemo
75ab6738e0 Added missing status flag for Active_Monster_Transform and Monster_Transform (#7253)
Fixed #7247

Thanks to @jmsngls !
2022-09-07 18:52:30 +02:00
Aleos
4a43856271 Adjusts Enchanting Shadow behavior (#7124)
* Fixes #7104.
* Implements Shadow Scar as a timer on units.
* Implements the official packet for Shadow Scar counter.
* Enchanting Shadow can now be triggered by skills as well as melee.
* Removes the hit count limit.
* Adjusts the damage rate of Shadow Wounds to increase by 3%.
* Adjusts the duration of Shadow Scar from 30 seconds to 15.
Thanks to @eppc0330 and @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-09-06 17:05:19 -04:00
Aleos
534bc706d0 Fixes Offertorium and Magnificat stacking (#7249)
* Fixes #7241.
* Offertorium and Magnificat are able to cancel each other out.
Thanks to @LadyNanuia!
2022-09-06 09:45:01 -04:00
Singe Horizontal
957efd823f Several status fixes (#7216)
* Fixes #7215.
* Fixes endows not being removed on death and staying while switching weapon.
* Fixes some statuses that must disappear when logging off: Strip skills, Asura SP Regen Malus, Critical Explosion, NPC Change Undead.
* Monsters in StoneWait are correctly prevented from attacking.
2022-09-06 08:52:27 -04:00
Lemongrass3110
8629c6445a Initial release of item enchant UI (#7186)
Thanks to @aleos89, @Atemo @idk-whoami
2022-09-05 00:52:37 +02:00
Lemongrass3110
3c43669425 Added some missing ifdefs for old clients (#7237)
Fixes #7236

Thanks to @Akkarinage
2022-09-03 22:52:21 +02:00
Lemongrass3110
c29fef7323 Fixed billing slots (#7219)
The login-server ignored the value stored in the `character_slots` column of the `login` table.
Also some additional logic fixes and safeguards.

Thanks to @Pokye
2022-09-03 19:41:19 +02:00
Lemongrass3110
df57b5b7d4 Added mob name support to some script commands (#7228)
Thanks to @Atemo for the idea.
2022-09-03 19:07:28 +02:00
Aleos
02a4831728 Fixes a compile error for older clients (#7235) 2022-09-03 12:42:37 -04:00
Aleos
0f3d5f8dbd Fixes pre-re item table loading (#7232)
* Follow up to 17751aa and 33fb756.
* Reverts 33fb756.
* Moves Gradable index check to renewal mode.
2022-09-03 10:33:31 -04:00
Atemo
6542df071f Added several missing items (#7213)
* Added several missing items according to KRO item description up to august 2022
* Updated the gradable part of the new items
* Added missing grade on Thanos helmets
2022-09-03 12:32:13 +02:00
Aleos
6b7d6e6841 Fixes an issue with whisper unblocks (#7231)
* When attempting to unblock players via /in, players with short names would sometimes not get unblocked.
Thanks to @Tokeiburu!
2022-09-02 11:02:43 -04:00
Jittapan Pluemsumran
33fb75684a Fixed a crash caused by wrong attribute ordering. Fixes #7229 (#7230) 2022-09-02 20:30:23 +07:00
Lemongrass3110
6cb5b5bac6 Implemented the /call command (#7225)
Fixes #7139.
Thanks to @idk-whoami
2022-09-01 16:01:13 -04:00
Atemo
9be64f55dc laphine_synthesis script command update (#7222)
* Added the item ID/name as parameter for laphine_synthesis script command

Thanks to @Lemongrass3110 !
2022-08-31 21:39:34 +02:00
Atemo
177d57ee68 getmonsterinfo update (#7227)
* Added the constant MOB_ID to getmonsterinfo script command
* Added the possibility to use the monster name as argument

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-08-31 21:35:01 +02:00
Aleos
a2ce09fd56 Resolves spawn direction not saving at relog (#7210)
* Fixes #7195.
* Adds a new save field for battle config spawn_direction which was not working for players who log out and in.
Thanks to @SapitoSucio and @Lemongrass3110!
2022-08-30 12:50:50 -04:00
Lemongrass3110
329158ac93 Better error message for YAML syntax errors (#7217)
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-08-30 11:15:26 +02:00
Atemo
7c3bb6124a Added missing increase of the versioning (#7220)
Follow up 17751aa4d7
2022-08-29 16:28:54 +02:00
Atemo
17751aa4d7 Added 'Gradable' in item DB (#7218)
* Added 'Gradable' in item DB
** The field defines if the item can be graded (renewal). (Default: false)

Thanks to @attackjom, @Lemongrass3110 !
2022-08-29 13:28:09 +02:00
Lemongrass3110
5f4fd5c98b Fixed some more SC_STONEWAIT issues (#7212)
Fixed PR_STRECOVERY not clearing SC_STONEWAIT
Fixed that ending SC_STONEWAIT manually still triggered SC_STONE

Thanks to @Singe-Horizontal and @aleos89
2022-08-28 17:02:37 +02:00
Vincent Stumpf
c751ca6b74 Client Navigation Generator (#6023)
Creates navigation files for the client.
2022-08-26 21:31:45 -07:00
Lemongrass3110
b1b371f4b8 Cleaned up status_change_end (#7211)
* Removed leftover old debug info that made it necessary to the hide the real function behind a define.
* Introduced a C++ default argument for timer id, as the timer id is only needed a single time, when the status expires naturally.
* Replaced all currently existing calls that had INVALID_TIMER as argument and made use of the new default argument.
2022-08-26 22:23:40 -04:00
Singe Horizontal
a03644fc53 Fix Aspersio not removing scroll enchant (#7203)
Fixes #7202
2022-08-24 23:09:19 +02:00
Null il3ol2ed
44d3edf99d Updated runserver.bat (#7206) 2022-08-24 22:43:04 +02:00
Lemongrass3110
a0eb9d5ee2 Initial release of item reform UI (#7185)
Thanks to @idk-whoami, @Benq28021997, @datawulf, @Atemo and @aleos89

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-08-24 22:24:13 +02:00
Lemongrass3110
b68e59f743 Updates github CI version for Ubuntu (#7204)
Changed clang minimum version to version 6
Removed unsupported clang versions from version matrix
2022-08-23 08:53:39 +02:00
Atemo
a2747b2023 Script command for enchantgrade (#7180)
* Added several commands to manage the enchantment grade of equipment
* Added grade atcommand
** Works like refine atcommand for grade system

Thanks to @Lemongrass3110 !
2022-08-22 22:41:40 +02:00
Balfear
798e09e8c9 Update enchan_rockridge.txt (#7193)
Armor dealer should sell Granpa_Beard not Granpa_Beard_F.
Added custom restock every week.
2022-08-20 17:03:38 +02:00
Lemongrass3110
ae74eb8404 Initial release of reputation UI (#7184)
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-08-18 17:50:40 +02:00
Aleos
e90fa9e8f7 Allow PK damage modifiers to affect flat damage (#7126) 2022-08-17 19:19:40 -04:00
Lemongrass3110
a88e25a8e3 Fixed returned mails from deleted chars (#7181)
Fixes #7161

Thanks to @Pokye
2022-08-18 00:44:23 +02:00
Lemongrass3110
df9ef6fa79 Fixed memory consumption of caches (#7064)
Thanks to @aleos89
2022-08-18 00:06:47 +02:00
Singe Horizontal
846dfd9bb4 Fixes after song visual effect bug (#7190)
* Fixes #7163.
* Resolves an issue where the Moonlight effect would be displayed when ending a dance/song.
2022-08-17 12:17:13 -04:00
Aleos
9759909f82 Add checks to ignore renewal DEF (#7150)
* Fixes #7143.
* Resolves an issue where Dragon Breath, Dragon Breath - Water, Cart Cannon, and Arms Cannon were not properly reducing damage based on the target's defense.
Thanks to @LadyNanuia, @Lemongrass3110, @attackjom!
2022-08-16 15:32:07 -04:00
Lemongrass3110
25f104c50d Added sql upgrade file for web-server 2022-08-16 17:53:56 +02:00
Vincent Stumpf
0ac52d0bb4 Initial support for web service for newer clients (#5731)
Co-authored-by: Jittapan Pluemsumran <secret@rathena.org>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-08-16 15:10:18 +02:00
Vincent Stumpf
5d105b5736 cleanup a bit of cbasetypes (#7179) 2022-08-15 10:26:10 +02:00
Atemo
33e080545a Added training zone (#7176)
* Removed Dummy mobs in prontera
* Truncated the name of the mobs in the training area, the name being too long only the relevant information is kept

Thanks to @Balferian !
2022-08-14 20:49:12 +02:00
Aleos
77b4b3ccea Fixes a couple mob skill conditions (#7151)
* Fixes #7141.
* Follow up to 36b9b94.
* Fixes an issue with mob skill conditions closedattacked and longrangeattacked not triggering for skills with no aMotion.
Thanks to @datawulf!
2022-08-12 15:13:26 -04:00
Aleos
3418221dba Fixes skill_keep_using timer mismatch (#7127)
* Fixes #7095.
* Resolves an issue where skill_keep_using was not resetting the timer ID after the timer ends.
* Cleans up the check when applying the timer to confirm a timer doesn't already exist.
Thanks to @eppc0330!
2022-08-12 14:55:21 -04:00
Aleos
365439943a Cleans up Dancing cancellation (#7166)
* Follow up to 724257e.
* Fixes an issue where the val4 value was cleared too early resulting in the move state not being cleared properly.
2022-08-11 08:36:26 -04:00
idk-whoami
df3d7d4bd1 Corrected script for some item #9 (#7115)
Thanks to @Atemo
2022-08-10 14:53:51 +02:00
Kanin Temsrisuk
3587ef6923 Adds missing MaxAPrate constant (#7169)
* Adds missing constant to script_constants.hpp.
2022-08-10 08:16:32 -04:00
Lemongrass3110
c06492def6 Implemented map specific drops (#7156)
Thanks to @Atemo and @aleos89.
2022-08-09 19:15:13 +02:00
Atemo
c5031982d2 Allow the player to stand on a cell occupied by disabled/hidden npc (#7154)
Fixed #7153
2022-08-07 21:54:53 +02:00
Aleos
e3c2db65c4 Updates the behavior of Overheat (#7157)
* Overheat is now triggered via damage received, not damage dealt.
* Corrects an issue where the HP damage would not trigger because the Overheat status would end too early.
* Damage will no longer cause a flinch.
* General cleanups.
2022-08-06 21:55:20 -04:00
Aleos
724257ee1a Fixes pre-renewal duet dancing (#7160)
* Fixes #7134.
* Resolves an issue where duet songs resulted in the partner not being able to move when canceling the song early.
Thanks to @hnomkeng!
2022-08-05 10:02:15 -04:00
Keitenai
cda284f123 Cleaned up (#7164)
minor follow up to 7336058
2022-08-05 11:47:55 +02:00
Atemo
c6c534a3eb Correction of the item script of the item "Hourglass Necklace" (#7159)
Fixed #7155

Thanks to @kujourin !
2022-08-02 21:46:24 +02:00
Atemo
498c4fe2b3 Removed duplicate combos (#7158)
Removed the duplicate combos introduced in e3cb3fa01f
2022-08-02 17:46:38 +02:00
Aleos
922d309643 Fixes script command rentalcountitem (#7122)
* Fixes #7121.
* Fixes an issue with normal items getting mixed into the rental count.
Thanks to @Cukinaru and @Lemongrass3110!
2022-08-02 08:51:24 -04:00
Aleos
a0bc2c0c3d Fixes script command equip (#7149)
* Fixes #7144.
* Follow up to 8038e71.
* Fixes an inverted check.
Thanks to @voyfmyuh!
2022-08-01 10:45:40 -04:00
Aleos
97b5f3b4ac Fixes a RENEWAL_CAST compile warning (#7137)
* Fixes a compile warning when RENEWAL is enabled but RENEWAL_CAST is disabled.
Thanks to @Pokye and @Lemongrass3110!
2022-07-28 12:56:04 -04:00
munkrej
84d295e784 Adds new mob skill condition MSC_MOBNEARBYGT (#7130)
* Adds new mob skill condition MSC_MOBNEARBYGT as on official some monsters trigger skills when specific amount of other monsters are nearby.
2022-07-25 11:11:20 -04:00
Aleos
322709f78d Adjusts Extended Ammunition default sell prices (#7125)
* Fixes #7098.
* Adjusts the Extended Ammunition NPCs to use the default prices set via the item database.
Thanks to @Badarosk0!
2022-07-23 09:43:33 -04:00
Aleos
8038e71322 Speed up item and mob information commands (#7084)
* Fixes #7081.
* Small refactor of the atcommands: iteminfo, mobinfo, whodrops, and idsearch.
* Item information gathering is now sped up.
* Refactored itemdb_searchname_array to store results in a std::map so that the data is sorted by ID automatically.
* Cleanups across the board to remove extra calls for itemdb_exists().
Thanks to @voyfmyuh, @CairoLee, and @Lemongrass3110!
2022-07-22 15:11:44 -04:00
Joam
e3cb3fa01f Renewal Physical damage cleanup (#6997)
Corrected bAtkRate item bonus behavior to be the same as official.
Correction order of calculation of physical attack
Enchant Deadly Poison now grants 25% poison pseudo elemental bonus. also Magnum break also grants 20% fire pseudo elemental damage.
Advanced Katar Mastery bonus formula is corrected.
Critical attacks now always use max attack value like Maximize Power-buffed attacks.
Correction item-script of many items/combo from bAddClass,Class_All to bAtkRate according to official sources.

Co-authored-by: Daegaladh <4557962+Daegaladh@users.noreply.github.com>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Jittapan Pluemsumran <nightsheep@outlook.com>
2022-07-21 16:29:42 +07:00
Aleos
78b4f4420d Fixes AddEffWhenHit not triggering Magic or Misc (#5628)
* Fixes #5623.
* Fixes an issue with AddEffWhenHit not triggering on Magic or Misc type attacks.
Thanks to @24msz6eo and @Atemo!
2022-07-18 13:46:41 -04:00
Aleos
c2303c8f65 Resolves a mapflag overlap warning with PK Mode (#7109)
* Fixes #7099.
* Hides a warning message when PK Mode is enabled and a Battleground mapflag is attempted to overwrite the PvP mapflag.
Thanks to @LolyAll!
2022-07-18 11:08:44 -04:00
eppc0330
caa5cdd678 Fix displayed attack when missed (#7093)
Fix miss when a unit dodges attack from player
2022-07-17 06:58:46 +07:00
eppc0330
85454cc7ae Minor change of TF_BACKSLIDING behavior (#7094)
Fix Backsliding blow only when a character is moved by the skill.

If wall is placed behind the character, skill will show casting animation.

Thanks to @Haydrich!
2022-07-17 06:57:38 +07:00
Vincent Stumpf
595fc925e3 Fix an invalid access (#7102) 2022-07-15 20:08:02 -07:00
Vincent Stumpf
ca740549e2 Fix va_arg in getareausers (#7108) 2022-07-15 20:07:40 -07:00
idk-whoami
b2feb2e9b0 Corrected script for some item (#7091)
Fixed #7073
2022-07-15 19:33:12 +02:00
Atemo
6637f0a73c Updated laphine datas (#7110) 2022-07-15 19:26:19 +02:00
Atemo
bb16e43d87 Added missing DropEffect for some items (#7107) 2022-07-15 15:00:22 +02:00
idk-whoami
03b40f7101 Corrected script for some item #8 (#7044)
* Fixed item IDs 19669 Costume Reginleif Hairband
* Fixed items locations IDs 28310 and 28311
2022-07-15 14:58:35 +02:00
Balfear
ec659d576a Added robe for monster avail feature (#7103)
* Added robe to mob avail.
2022-07-14 14:08:29 -04:00
Atemo
f6bc10bfb1 Mob quest target (#7071)
* Added functionality to select monsters that increase the quest counter
* Removed the extra conditions on Id
* Added an example in quest_db.yml for MapMobTargets
* Clean-up the docs
* Added the possibility to define "All" to Location

Thanks to @aleos89 !
2022-07-14 19:00:48 +02:00
Atemo
0fa3e6a672 Fixed a bug with the random options (#7100)
Fixed an issue in the current random option system when the options are re-applied.
2022-07-12 22:32:16 +02:00
Atemo
961951108c Implemented 17.2 items (#7101)
Credits to @crazy-arashi, @JohnnyPlayy and @Everade
2022-07-12 01:34:07 +02:00
Aleos
66c441d765 Fixes itemskill use items being blocked (#7077)
* Fixes #7075.
* Adjusts the skill status check to look for OPT1 flags again instead of cant.cast as this is value is checked later on.
* Resolves items like Fly Wing not working when Silenced.
Thanks to @LadyNanuia!
2022-07-08 08:52:17 -04:00
idk-whoami
8bdff8002c Corrected script for Payon Soldier Card (#7090)
* Fixes #7085.
* Corrected script for Payon Soldier Card.
2022-07-08 08:43:53 -04:00
Daegaladh
15a5bcb2cf Fixed Baphomet Jr. pet Stun resistance (#7079) 2022-07-01 00:30:31 +02:00
Daegaladh
b2cbf263de Fixed MATK rate on pre-re staffs (#7074) 2022-06-30 19:40:04 +02:00
Balfear
79b97bdc51 Auto Spell rate fix (#7068)
* Updates the check for Auto Spell rate values to range from -1000~1000.
Thanks to @Balferian!
2022-06-30 12:40:27 -04:00
eppc0330
56a47cd0a5 Partial revert of #7072 (#7078)
* Baphomet Jr's stun resistance should increase, not decrease.
* Glorious Holy Avenger has been confirmed to give +6 INT.
Thanks to @eppc0330 and @Daegladh!
2022-06-30 12:38:34 -04:00
Aleos
fe60611892 Fixes some bonus inconsistencies (#7072)
* Fixes #7031.
* Resolves Glorious Holy Avenger giving an extra 6 INT in renewal.
* Also cleans up the refine checks for Glorious Holy Avenger in pre-renewal.
* Baphomet Jr pet should now reduce resistance to stun in renewal.
Thanks to @Melk3000!
2022-06-30 09:55:00 -04:00
Aleos
394dab1237 Cleans up Thief's Double Attack item bonuses (#7070)
* Items that grant TF_DOUBLE now no longer require bDoubleRate.
* Adds pc_checkskill_flag() to return a skill's flag value.
Thanks to @eppc0330 and @secretdataz!
2022-06-28 12:01:57 -04:00
Aleos
0cd106f9f7 Merge branch 'master' into cleanup/removeonchangemap 2022-05-17 16:48:52 -04:00
aleos
0fce50bc9e Syncs up NoSave flag for several statuses 2022-05-17 12:19:07 -04:00
aleos
5e1fbcbefa Reverts unit_remove_map() static function change
* Reverts unit_remove_map() back to a macro as the preprocessors will point to the static function instead of the calling function.
* Adds third argument to unit_remove_map() macro for changing zone identification.
2022-05-16 15:24:46 -04:00
aleos
d637ecd967 Corrects zone change status removal behavior
* Removes the SCF_REMOVEONCHANGEMAP status flag as statuses with the SCF_NOSAVE flag are removed on zone changes.
* Adds the ability to check for zone changes in unit_remove_map().
* All unit types except for players have their SCF_REMOVEONMAPWARP statuses cleared in unit_remove_map().
* Removes the hardcode for Cloaking and Cloaking Exceed.
2022-05-16 13:15:54 -04:00
303 changed files with 149255 additions and 9150 deletions

View File

@@ -1,38 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: type:bug
assignees: ''
---
<!-- NOTE: Anything within these brackets will be hidden on the preview of the Issue. -->
* **rAthena Hash**:
<!-- Please specify the rAthena [GitHub hash](https://help.github.com/articles/autolinked-references-and-urls/#commit-shas) on which you encountered this issue.
How to get your GitHub Hash:
1. cd your/rAthena/directory/
2. git rev-parse --short HEAD
3. Copy the resulting hash.
-->
* **Client Date**:
<!-- Please specify the client date you used. -->
* **Server Mode**:
<!-- Which mode does your server use: Pre-Renewal or Renewal? -->
* **Description of Issue**:
* Result: <!-- Describe the issue that you experienced in detail. -->
* Expected Result: <!-- Describe what you would expect to happen in detail. -->
* How to Reproduce: <!-- If you have not stated in the description of the result already, please give us a short guide how we can reproduce your issue. -->
* Official Information: <!-- If possible, provide information from official servers (kRO or other sources) which prove that the result is wrong. Please take into account that iRO (especially iRO Wiki) is not always the same as kRO. -->
<!-- * _NOTE: Make sure you quote ``` `@atcommands` ``` just like this so that you do not tag uninvolved GitHub users!_ -->
* **Modifications that may affect results**:
<!-- * Please provide any information that could influence the expected result. -->
<!-- * This can be either configurations you changed, database values you changed, or even external source modifications. -->

81
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,81 @@
name: Bug Report
description: Create an Issue that details broken or unexpected behaviour
labels: ["type:bug"]
body:
- type: input
id: hash
attributes:
label: rAthena Hash
description: |
Please specify the rAthena [GitHub hash](https://help.github.com/articles/autolinked-references-and-urls/#commit-shas) on which you encountered this issue.
One way to get your hash is to type `git rev-parse --short HEAD` on your console.
validations:
required: true
- type: input
id: date
attributes:
label: Client Date
description: Specify the client date you are using when this Issue occured.
placeholder: YYYY-MM-DD
validations:
required: true
- type: dropdown
id: mode
attributes:
label: Server Mode
description: Specify the server-mode you are using when this Issue occured.
multiple: true
options:
- Pre-Renewal
- Renewal
validations:
required: true
- type: textarea
id: result
attributes:
label: Result
description: Describe the issue that you experienced in detail.
placeholder: |
1. In this environment...
2. With this config...
3. Trigger event '...'
4. See error...
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant Log Output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: Shell
validations:
required: false
- type: textarea
id: expected
attributes:
label: Expected Result
description: Describe what you would expect to happen in detail.
validations:
required: true
- type: textarea
id: howto
attributes:
label: How to Reproduce
description: If you have not stated in the description of the result already, please give us a short guide how we can reproduce your issue.
validations:
required: true
- type: textarea
id: info
attributes:
label: Official Information
description: If possible, provide information from official servers (kRO or other sources) which prove that the result is wrong. Please take into account that iRO (especially iRO Wiki) is not always the same as kRO.
validations:
required: true
- type: textarea
id: modifications
attributes:
label: Modifications that may affect results
description: |
If you are using any modifications, especially in /src/, you must type them here.
Even the smallest changes can cause things to break. We need to know what you have customized.
This can be either configurations you changed, database values you changed, or even external source modifications.

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: rAthena Community Support
url: https://rathena.org/board/forum/3-support-releases/
about: Please ask and answer questions here in our forum.
- name: rAthena Discord
url: https://rathena.org/board/discord/
about: Chat with us in the Discord support channel.

View File

@@ -1,35 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: type:enhancement
assignees: ''
---
<!-- NOTE: Anything within these brackets will be hidden on the preview of the Feature Request. -->
**Is your request related to a missing feature?**
<!--
Provide a clear and concise description of what the feature pertains to.
-->
**Describe the solution you'd like**
<!--
Provide a clear and concise description of what you want to happen.
-->
**Describe alternatives you've considered**
<!--
Let us know about other solutions you've tried or researched.
-->
**Additional context**
<!--
Is there anything else you can add about the proposal?
You might want to link to related issues here if you haven't already.
-->

View File

@@ -0,0 +1,32 @@
name: Feature Request
description: Suggest an idea for this project
labels: ["type:enhancement"]
body:
- type: dropdown
id: missing
attributes:
label: Is your request related to a missing official feature?
options:
- "Yes"
- "No"
validations:
required: true
- type: textarea
id: solution
attributes:
label: Describe the solution you'd like
description: Provide a clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Describe alternatives you've considered
description: Let us know about other solutions you've tried or researched.
- type: textarea
id: context
attributes:
label: Additional context
description: |
Is there anything else you can add about the proposal?
You might want to link to related issues here if you haven't already.

View File

@@ -1,6 +1,10 @@
name: Build servers with Clang
# build_servers_clang.yml
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
@@ -22,11 +26,11 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# The ubuntu-latest label currently points to ubuntu-18.04.
# Available: ubuntu-20.04, ubuntu-18.04
os: [ubuntu-18.04]
# The ubuntu-latest label currently points to ubuntu-22.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-20.04]
# Version list can be found on https://github.com/marketplace/actions/install-clang
clang: ['3.9', '4.0', '5.0', '6.0', '7', '8', '9', '10', '11'] #, '12', '13']
clang: ['6.0', '7', '8', '9', '10', '11'] #, '12', '13']
steps:
- uses: actions/checkout@v2

View File

@@ -1,6 +1,10 @@
name: Build servers with CMake
# build_servers_cmake.yml
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
@@ -22,8 +26,8 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# The ubuntu-latest label currently points to ubuntu-18.04.
# Available: ubuntu-20.04, ubuntu-18.04
# The ubuntu-latest label currently points to ubuntu-22.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-latest]
steps:

View File

@@ -1,6 +1,10 @@
name: Build servers with GCC
# build_servers_gcc.yml
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
@@ -22,11 +26,11 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# The ubuntu-latest label currently points to ubuntu-18.04.
# Available: ubuntu-20.04, ubuntu-18.04
# The ubuntu-latest label currently points to ubuntu-22.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-latest]
# Older versions of GCC are not available via unaltered aptitude repo lists.
gcc: ['7', '8', '9', '10']
gcc: ['9', '10', '11']
steps:
- uses: actions/checkout@v2

View File

@@ -1,6 +1,10 @@
name: Build servers in Pre-Renewal and Renewal
# build_servers_modes.yml
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
@@ -22,11 +26,11 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# The ubuntu-latest label currently points to ubuntu-18.04.
# Available: ubuntu-20.04, ubuntu-18.04
# The ubuntu-latest label currently points to ubuntu-22.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-latest]
# Older versions of GCC are not available via unaltered aptitude repo lists.
gcc: ['10']
gcc: ['11']
# We run build checks for both Renewal and PRE-Renewal
mode: ['PRE','RE']

View File

@@ -1,6 +1,10 @@
name: Build servers with MSVS
# build_servers_msbuild.yml
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:

View File

@@ -1,6 +1,10 @@
name: Build servers with different packet versions
# build_servers_packetversions.yml
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
@@ -22,11 +26,11 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# The ubuntu-latest label currently points to ubuntu-18.04.
# Available: ubuntu-20.04, ubuntu-18.04
# The ubuntu-latest label currently points to ubuntu-22.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-latest]
# Older versions of GCC are not available via unaltered aptitude repo lists.
gcc: ['10']
gcc: ['11']
# We run build checks for both Renewal and PRE-Renewal
mode: ['PRE','RE']
# Check build success for different packet-versions

View File

@@ -1,6 +1,10 @@
name: Build servers in VIP mode
# build_servers_vip.yml
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
@@ -22,11 +26,11 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# The ubuntu-latest label currently points to ubuntu-18.04.
# Available: ubuntu-20.04, ubuntu-18.04
# The ubuntu-latest label currently points to ubuntu-22.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-latest]
# Older versions of GCC are not available via unaltered aptitude repo lists.
gcc: ['10']
gcc: ['11']
# We run build checks for both Renewal and PRE-Renewal
mode: ['PRE', 'RE']

View File

@@ -4,6 +4,10 @@ name: Validate NPC Scripts and DB Changes
# For NPC and DB validation we only need two builds: one of Renewal and one for Pre-Renewal checks.
# NPC scripts and database files are not platform dependent, so we can achieve this validation using only a simple linux setup.
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
@@ -25,11 +29,11 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# The ubuntu-latest label currently points to ubuntu-18.04.
# Available: ubuntu-20.04, ubuntu-18.04
# The ubuntu-latest label currently points to ubuntu-22.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-latest]
# Only a single version of GCC is required for validating NPC scripts and database changes.
gcc: ['10']
gcc: ['11']
# We run build checks for both Renewal and PRE-Renewal
mode: ['PRE', 'RE']

20
.gitignore vendored
View File

@@ -1,6 +1,5 @@
/autom4te.cache/output.0
/autom4te.cache/requests
/autom4te.cache/traces.0
autom4te.cache/
#Global
.vscode
.Apple*
@@ -40,8 +39,10 @@ Thumbs.db
/Makefile
/Makefile.cache
/map-server
/map-server-generator
/mapcache
/nbproject
/web-server
/yaml2sql
/yamlupgrade
@@ -56,6 +57,10 @@ Thumbs.db
# /3rdparty/yaml-cpp/
/3rdparty/yaml-cpp/Makefile
# /3rdparty/httplib/
/3rdparty/httplib/Makefile
/3rdparty/httplib/obj
# /db/
/db/import
@@ -92,6 +97,10 @@ Thumbs.db
/src/map/obj_sql
/src/map/pcre.hpp
# /src/web
/src/web/Makefile
/src/web/obj
# /src/tool/
/src/tool/Makefile
/src/tool/obj_all
@@ -125,8 +134,10 @@ Thumbs.db
/mapserv.bat
/runserver.bat
/serv.bat
/webserv.bat
/yaml2sql.bat
/yamlupgrade.bat
/navigenerator.bat
# dlls
/libmysql.dll
@@ -135,3 +146,6 @@ Thumbs.db
# CMakeFiles
/CMakeFiles/
# generated files
generated

View File

@@ -47,6 +47,8 @@ macro( CONFIGURE_WITH_LOCAL_OR_SYSTEM name )
endmacro( CONFIGURE_WITH_LOCAL_OR_SYSTEM )
add_subdirectory( httplib )
add_subdirectory( json )
add_subdirectory( libconfig )
add_subdirectory( mysql )
add_subdirectory( pcre )

2
3rdparty/README.txt vendored
View File

@@ -1,7 +1,9 @@
This folder contains everything related to 3rdparty code or tools.
cmake - scripts for the cmake build system (http://www.cmake.org)
httplib - library for http web service (https://github.com/yhirose/cpp-httplib/commit/a9cf09795170a72372cbeb3feef3851b859c0e33)
libconfig - library for processing structured configuration files (http://www.hyperrealm.com/libconfig/)
mysql - library for MySQL Community Server (http://www.mysql.com)
pcre - library for Perl Compatible Regular Expressions (http://www.pcre.org)
zlib - library for DEFLATE lossless compression algorithm (http://www.zlib.net)
json - library for nlohmann json (https://github.com/nlohmann/json/tree/4b2c8ce6bcfe7f39f2bb9e680c1e7a4d67c2dd48)

38
3rdparty/httplib/CMakeLists.txt vendored Normal file
View File

@@ -0,0 +1,38 @@
cmake_minimum_required(VERSION 2.8)
if ( NOT ENABLE_WEB_SERVER )
return()
endif( NOT ENABLE_WEB_SERVER )
SET (this_target httplib)
PROJECT(${this_target})
find_path ( HTTPLIB_INCLUDE_DIRS "httplib.h"
PATHS "${CMAKE_CURRENT_SOURCE_DIR}"
NO_DEFAULT_PATH )
find_path ( HTTPLIB_SOURCE_DIR "httplib.cc"
PATHS "${CMAKE_CURRENT_SOURCE_DIR}"
NO_DEFAULT_PATH )
mark_as_advanced( HTTPLIB_INCLUDE_DIRS )
mark_as_advanced( HTTPLIB_SOURCE_DIR )
set ( HTTPLIB_HEADERS
"${HTTPLIB_INCLUDE_DIRS}/httplib.h"
CACHE INTERNAL "httplib headers" )
set ( HTTPLIB_SOURCES
"${HTTPLIB_SOURCE_DIR}/httplib.cc"
CACHE INTERNAL "httplib sources" )
set ( HTTPLIB_DEFINITIONS
"-std=c++11"
CACHE INTERNAL "http definitions" )
include_directories( ${HTTPLIB_INCLUDE_DIRS} ${HTTPLIB_SOURCE_DIR} )
ADD_LIBRARY( ${this_target} STATIC ${HTTPLIB_SOURCES} )
if (NOT WIN32)
target_compile_definitions(${this_target} PUBLIC "CPPHTTPLIB_SEND_FLAGS=MSG_NOSIGNAL")
endif()

43
3rdparty/httplib/Makefile.in vendored Normal file
View File

@@ -0,0 +1,43 @@
HTTPLIB_OBJ = $(shell find * -type f -name "*.cc" | sed -e "s/\.cc/\.o/g")
HTTPLIB_DIR_OBJ = $(HTTPLIB_OBJ:%=obj/%)
HTTPLIB_H = $(shell find * -type f -name "*.h")
HTTPLIB_AR = obj/httplib.a
CXXFLAG =-std=c++11
HTTPLIB_DEPENDS=httplib
@SET_MAKE@
#####################################################################
.PHONY : all clean help httplib
all: $(HTTPLIB_DEPENDS)
clean:
@echo " CLEAN httplib"
@rm -rf obj *.o
help:
@echo "possible targets are 'all' 'clean' 'help'"
@echo "'httplib' - build $(HTTPLIB_AR)
@echo "'all' - builds $(HTTPLIB_DIR_OBJ)"
@echo "'clean' - deletes $(HTTPLIB_DIR_OBJ)"
@echo "'help' - outputs this message"
#####################################################################
obj:
@echo " MKDIR obj"
@mkdir -p obj
obj/%.o: %.cc $(HTTPLIB_H)
@echo " CXX $<"
@@CXX@ $(CXXFLAG) @CFLAGS_AR@ @CPPFLAGS@ -DCPPHTTPLIB_SEND_FLAGS=MSG_NOSIGNAL -g -c $(OUTPUT_OPTION) $<
httplib: obj $(HTTPLIB_DIR_OBJ) $(HTTPLIB_AR)
$(HTTPLIB_AR): $(HTTPLIB_DIR_OBJ)
@echo " AR $@"
@@AR@ rcs obj/httplib.a $(HTTPLIB_DIR_OBJ)

6482
3rdparty/httplib/httplib.cc vendored Normal file

File diff suppressed because it is too large Load Diff

1904
3rdparty/httplib/httplib.h vendored Normal file

File diff suppressed because it is too large Load Diff

160
3rdparty/httplib/httplib.vcxproj vendored Normal file
View File

@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClInclude Include="httplib.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="httplib.cc" />
</ItemGroup>
<PropertyGroup Label="Globals">
<Keyword>Win32Proj</Keyword>
<RootNamespace>libconfig</RootNamespace>
<ProjectGuid>{7A1A25BC-2CF7-44B2-8CAF-B4273B510FC6}</ProjectGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir).vs\build\</OutDir>
<IntDir>$(SolutionDir).vs\build\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir).vs\build\</OutDir>
<IntDir>$(SolutionDir).vs\build\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir).vs\build\</OutDir>
<IntDir>$(SolutionDir).vs\build\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir).vs\build\</OutDir>
<IntDir>$(SolutionDir).vs\build\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;_LIB;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="httplib.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="httplib.cc">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

7
3rdparty/json/CMakeLists.txt vendored Normal file
View File

@@ -0,0 +1,7 @@
cmake_minimum_required(VERSION 2.8)
set (JSON_INCLUDE_DIRS
"${CMAKE_CURRENT_SOURCE_DIR}/include"
CACHE INTERNAL "json include dir" )
mark_as_advanced( JSON_INCLUDE_DIRS )

21
3rdparty/json/LICENSE.MIT vendored Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2013-2022 Niels Lohmann
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

24641
3rdparty/json/include/nlohmann/json.hpp vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,177 @@
// __ _____ _____ _____
// __| | __| | | | JSON for Modern C++
// | | |__ | | | | | | version 3.11.2
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
//
// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>
// SPDX-License-Identifier: MIT
#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
#define INCLUDE_NLOHMANN_JSON_FWD_HPP_
#include <cstdint> // int64_t, uint64_t
#include <map> // map
#include <memory> // allocator
#include <string> // string
#include <vector> // vector
// #include <nlohmann/detail/abi_macros.hpp>
// __ _____ _____ _____
// __| | __| | | | JSON for Modern C++
// | | |__ | | | | | | version 3.11.2
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
//
// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>
// SPDX-License-Identifier: MIT
// This file contains all macro definitions affecting or depending on the ABI
#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK
#if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH)
#if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 2
#warning "Already included a different version of the library!"
#endif
#endif
#endif
#define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum)
#define NLOHMANN_JSON_VERSION_MINOR 11 // NOLINT(modernize-macro-to-enum)
#define NLOHMANN_JSON_VERSION_PATCH 2 // NOLINT(modernize-macro-to-enum)
#ifndef JSON_DIAGNOSTICS
#define JSON_DIAGNOSTICS 0
#endif
#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
#define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0
#endif
#if JSON_DIAGNOSTICS
#define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag
#else
#define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS
#endif
#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
#define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp
#else
#define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON
#endif
#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION
#define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0
#endif
// Construct the namespace ABI tags component
#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b
#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \
NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b)
#define NLOHMANN_JSON_ABI_TAGS \
NLOHMANN_JSON_ABI_TAGS_CONCAT( \
NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \
NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON)
// Construct the namespace version component
#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \
_v ## major ## _ ## minor ## _ ## patch
#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \
NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)
#if NLOHMANN_JSON_NAMESPACE_NO_VERSION
#define NLOHMANN_JSON_NAMESPACE_VERSION
#else
#define NLOHMANN_JSON_NAMESPACE_VERSION \
NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \
NLOHMANN_JSON_VERSION_MINOR, \
NLOHMANN_JSON_VERSION_PATCH)
#endif
// Combine namespace components
#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b
#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \
NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)
#ifndef NLOHMANN_JSON_NAMESPACE
#define NLOHMANN_JSON_NAMESPACE \
nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \
NLOHMANN_JSON_ABI_TAGS, \
NLOHMANN_JSON_NAMESPACE_VERSION)
#endif
#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN
#define NLOHMANN_JSON_NAMESPACE_BEGIN \
namespace nlohmann \
{ \
inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \
NLOHMANN_JSON_ABI_TAGS, \
NLOHMANN_JSON_NAMESPACE_VERSION) \
{
#endif
#ifndef NLOHMANN_JSON_NAMESPACE_END
#define NLOHMANN_JSON_NAMESPACE_END \
} /* namespace (inline namespace) NOLINT(readability/namespace) */ \
} // namespace nlohmann
#endif
/*!
@brief namespace for Niels Lohmann
@see https://github.com/nlohmann
@since version 1.0.0
*/
NLOHMANN_JSON_NAMESPACE_BEGIN
/*!
@brief default JSONSerializer template argument
This serializer ignores the template arguments and uses ADL
([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl))
for serialization.
*/
template<typename T = void, typename SFINAE = void>
struct adl_serializer;
/// a class to store JSON values
/// @sa https://json.nlohmann.me/api/basic_json/
template<template<typename U, typename V, typename... Args> class ObjectType =
std::map,
template<typename U, typename... Args> class ArrayType = std::vector,
class StringType = std::string, class BooleanType = bool,
class NumberIntegerType = std::int64_t,
class NumberUnsignedType = std::uint64_t,
class NumberFloatType = double,
template<typename U> class AllocatorType = std::allocator,
template<typename T, typename SFINAE = void> class JSONSerializer =
adl_serializer,
class BinaryType = std::vector<std::uint8_t>, // cppcheck-suppress syntaxError
class CustomBaseClass = void>
class basic_json;
/// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document
/// @sa https://json.nlohmann.me/api/json_pointer/
template<typename RefStringType>
class json_pointer;
/*!
@brief default specialization
@sa https://json.nlohmann.me/api/json/
*/
using json = basic_json<>;
/// @brief a minimal map-like container that preserves insertion order
/// @sa https://json.nlohmann.me/api/ordered_map/
template<class Key, class T, class IgnoredLess, class Allocator>
struct ordered_map;
/// @brief specialization that maintains the insertion order of object keys
/// @sa https://json.nlohmann.me/api/ordered_json/
using ordered_json = basic_json<nlohmann::ordered_map>;
NLOHMANN_JSON_NAMESPACE_END
#endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_

View File

@@ -226,6 +226,10 @@ endif()
message( STATUS "Detecting networking library (socket/nsl/ws2_32) - done" )
endif()
#
# enable web server?
#
option( ENABLE_WEB_SERVER "Build web-server (default=ON)" ON )
#
# Test for big endian

126
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,126 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, posting on the forums with an account in a Staff group, or acting as an appointed representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement via
the Report Center on our forums. All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. In the event that a user is uncontactable through normal means, the offending content will be hidden. A second infraction from a user with no means of communication will result in immediate Temporary Ban. See section 3.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[Contributor Covenant](https://www.contributor-covenant.org)
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

View File

@@ -4,11 +4,12 @@ HAVE_MYSQL=@HAVE_MYSQL@
OMAP=@OMAP@
ifeq ($(HAVE_MYSQL),yes)
ALL_DEPENDS=server tools
SERVER_DEPENDS=common login char map import
SERVER_DEPENDS=common login char map web import
COMMON_DEPENDS=libconfig rapidyaml yaml-cpp
LOGIN_DEPENDS=libconfig common
CHAR_DEPENDS=libconfig common rapidyaml
MAP_DEPENDS=libconfig common rapidyaml
WEB_DEPENDS=libconfig common yaml-cpp httplib
else
ALL_DEPENDS=needs_mysql
SERVER_DEPENDS=needs_mysql
@@ -16,6 +17,7 @@ else
LOGIN_DEPENDS=needs_mysql
CHAR_DEPENDS=needs_mysql
MAP_DEPENDS=needs_mysql
WEB_DEPENDS=needs_mysql
endif
@@ -25,6 +27,7 @@ endif
login \
char \
map \
web \
tools \
import \
clean help \
@@ -49,11 +52,15 @@ char: $(CHAR_DEPENDS)
map: $(MAP_DEPENDS)
@$(MAKE) -C src/map server
web: $(WEB_DEPENDS)
@$(MAKE) -C src/web server
libconfig:
@$(MAKE) -C 3rdparty/libconfig
tools:
@$(MAKE) -C src/tool
@$(MAKE) -C src/map tools
rapidyaml:
@$(MAKE) -C 3rdparty/rapidyaml
@@ -61,6 +68,9 @@ rapidyaml:
yaml-cpp:
@$(MAKE) -C 3rdparty/yaml-cpp
httplib:
@$(MAKE) -C 3rdparty/httplib
import:
# 1) create conf/import folder
# 2) add missing files
@@ -81,9 +91,11 @@ clean:
@$(MAKE) -C 3rdparty/libconfig $@
@$(MAKE) -C 3rdparty/rapidyaml $@
@$(MAKE) -C 3rdparty/yaml-cpp $@
@$(MAKE) -C 3rdparty/httplib $@
@$(MAKE) -C src/login $@
@$(MAKE) -C src/char $@
@$(MAKE) -C src/map $@
@$(MAKE) -C src/web $@
@$(MAKE) -C src/tool $@
help:
@@ -93,9 +105,11 @@ help:
@echo "'libconfig' - builds object files of libconfig"
@echo "'rapidyaml' - builds object files of rapidyaml"
@echo "'yaml-cpp' - builds object files of yaml-cpp"
@echo "'httplib' - builds object files of httplib"
@echo "'login' - builds login server"
@echo "'char' - builds char server"
@echo "'map' - builds map server"
@echo "'web' - builds web server"
@echo "'tools' - builds all the tools in src/tools"
@echo "'import' - builds conf/import, conf/msg_conf/import and db/import folders from their template folders (x-tmpl)"
@echo "'all' - builds all the above targets"

View File

@@ -20,8 +20,7 @@ print_start() {
get_status(){
PIDFILE=.$1.pid
if [ -e ${PIDFILE} ]; then
ISRUN=$(ps ax | grep $(cat ${PIDFILE}) | grep $1)
PSRUN=$(echo "$ISRUN" | awk '{ print $1 }')
PSRUN=$(pgrep -F ${PIDFILE})
fi
#return ${PSRUN} #seems to cause an issue for some os
}
@@ -36,11 +35,11 @@ start_serv(){
echo "stat_serv, log is enabled"
echo "My logfile=${LOGFILE}"
if [ -z ${PSRUN} ]; then
if [ -e ./${FIFO} ]; then rm "$FIFO"; fi
if [ -e ./${FIFO} ]; then rm "$FIFO"; fi
mkfifo "$FIFO"; tee "$LOGRUN" < "$FIFO" & "./$1" > "$FIFO" 2>&1 & PID=$!
#"./$1" > >(tee "$LOGRUN") 2>&1 & PID=$! #bash only
echo "$PID" > .$1.pid
echo "Server '$1' started at `date +"%m-%d-%H:%M-%S"`" | tee ${LOGFILE}
echo "Server '$1' started at $(date +"%m-%d-%H:%M-%S")" | tee ${LOGFILE}
else
echo "Cannot start '$1', because it is already running p${PSRUN}" | tee ${LOGFILE}
fi
@@ -48,7 +47,7 @@ start_serv(){
if [ -z ${PSRUN} ]; then
./$1&
echo "$!" > .$1.pid
echo "Server '$1' started at `date +"%m-%d-%H:%M-%S"`"
echo "Server '$1' started at $(date +"%m-%d-%H:%M-%S")"
else
echo "Cannot start '$1', because it is already running p${PSRUN}"
fi
@@ -61,25 +60,25 @@ watch_serv(){
#now checking status and looping
count=0;
while true; do
for i in ${L_SRV} ${C_SRV} ${M_SRV}
for i in ${L_SRV} ${C_SRV} ${M_SRV} ${W_SRV}
do
LOGFILE="$LOG_DIR/$i.launch.log"
LOGRUN="$LOG_DIR/$i.log"
FIFO=$i"_fifo"
get_status $i
get_status ${i}
#echo "Echo id of $i is ${PSRUN}"
if [ -z ${PSRUN} ]; then
count=$((count+1))
#echo "fifo=$FIFO"
echo "server '$i' is down"
echo "server '$i' is down" >> ${LOGFILE}
echo "restarting server at time at `date +"%m-%d-%H:%M-%S"`"
echo "restarting server at time at `date +"%m-%d-%H:%M-%S"`" >> ${LOGFILE}
echo "restarting server at time at $(date +"%m-%d-%H:%M-%S")"
echo "restarting server at time at $(date +"%m-%d-%H:%M-%S")" >> ${LOGFILE}
if [ -e $FIFO ]; then rm $FIFO; fi
mkfifo "$FIFO"; tee "$LOGRUN" < "$FIFO" & "./$i" > "$FIFO" 2>&1 & PID=$!
echo "$PID" > .$i.pid
if [ $2 ] && [ $2 -lt $count ]; then break; fi
if [ $2 ] && [ $2 -lt $count ]; then break; fi
fi
done
sleep $1
@@ -89,7 +88,7 @@ watch_serv(){
restart(){
$0 stop
if [ $1 ]; then sleep $1; fi
for i in ${L_SRV} ${C_SRV} ${M_SRV}
for i in ${L_SRV} ${C_SRV} ${M_SRV} ${W_SRV}
do
FIFO="$1_fifo"
while true; do
@@ -101,11 +100,11 @@ restart(){
fi
done
done
$0 start
$0 start
}
case $1 in
'start')
'start')
print_start
check_files
echo "Check complete."
@@ -117,26 +116,26 @@ case $1 in
else
echo "Logging is disabled"
fi
for i in ${L_SRV} ${C_SRV} ${M_SRV}
for i in ${L_SRV} ${C_SRV} ${M_SRV} ${W_SRV}
do
start_serv $i $ENLOG
done
echo "rAthena was started."
;;
'watch')
'watch')
if [ ! -d "$LOG_DIR" ]; then mkdir -p $LOG_DIR; fi
if [ -z $2 ]; then Restart_count=10; else Restart_count=$2; fi
if [ -z $3 ]; then Restart_sleep=3; else Restart_sleep=$3; fi
echo "Going to watch rAthena for restart_count = $Restart_count, restart_sleep = $Restart_sleep"
for i in ${L_SRV} ${C_SRV} ${M_SRV}
for i in ${L_SRV} ${C_SRV} ${M_SRV} ${W_SRV}
do
start_serv $i 1
done
watch_serv $Restart_count $Restart_sleep
echo "Watching rAthena now."
;;
;;
'stop')
for i in ${M_SRV} ${C_SRV} ${L_SRV}
for i in ${W_SRV} ${M_SRV} ${C_SRV} ${L_SRV}
do
PIDFILE=.${i}.pid
if [ -e ./${PIDFILE} ]; then
@@ -155,23 +154,23 @@ case $1 in
done
;;
'restart')
restart
restart "$@"
;;
'status')
for i in ${L_SRV} ${C_SRV} ${M_SRV}
for i in ${L_SRV} ${C_SRV} ${M_SRV} ${W_SRV}
do
get_status ${i}
if [ ${PSRUN} ]; then echo "'${i}' is running p${PSRUN}"; else echo "'${i}' seems to be down"; fi
done
;;
'val_runonce')
for i in ${L_SRV} ${C_SRV} ${M_SRV}
for i in ${L_SRV} ${C_SRV} ${M_SRV} ${W_SRV}
do
valgrind --leak-check=full --show-leak-kinds=all ./$i --run-once > "log/$i.runonce.leak"
done
;;
'valchk')
for i in ${L_SRV} ${C_SRV} ${M_SRV}
for i in ${L_SRV} ${C_SRV} ${M_SRV} ${W_SRV}
do
valgrind --leak-check=full --show-leak-kinds=all ./$i > "log/$i.runonce.leak"
done
@@ -181,7 +180,7 @@ case $1 in
'start')
echo "syntax: 'start {--enlog}'"
echo "This option will start the servers"
echo "--enlog will write all terminal output into a log/$servname.log file"
echo "--enlog will write all terminal output into a log/\$servname.log file"
;;
'stop')
echo "This option will shut the servers down"
@@ -205,11 +204,11 @@ case $1 in
;;
'val_runonce')
echo "syntax: 'val_runonce'"
echo "This option will run valgrin with run-once to check the servers"
echo "This option will run valgrind with run-once to check the servers"
;;
'valchk')
echo "syntax: 'valchk'"
echo "This option will run valgrin with the servers"
echo "This option will run valgrind with the servers"
;;
*)
echo "Please specify a command you would like more info on { start | stop | restart | status | watch }"

View File

@@ -664,6 +664,9 @@ Body:
- Command: refine
Help: |
Params: <equip position> <+/- amount>
- Command: grade
Help: |
Params: <equip position> <+/- amount>
- Command: produce
Help: |
Params: <equip name or equip ID> <element> <# of very's>
@@ -1013,6 +1016,9 @@ Body:
- Command: enchantgradeui
Help: |
Opens the enchantgrade UI.
- Command: roulette
Help: |
Opens the roulette UI.
Footer:
Imports:

View File

@@ -118,12 +118,6 @@ client_reshuffle_dice: yes
// NOTE: Enabling this option degrades performance.
client_sort_storage: no
// Do we allow to change guilde emblem during woe_time?
emblem_woe_change: yes
// How many transparent pixel can be found in emblem before detected as invalid? (Note 2)
emblem_transparency_limit: 80
// Update enemy position while in invisible state? (Note 1)
// NOTE: Set to 'no' will make client won't update enemy position unless the players have "Intravision" effect.
// So that will help client handling WPE - Maya Purple Hack stuff.
@@ -154,3 +148,13 @@ show_skill_scale: yes
// Note: Enabling this is known to cause problems on clients that make use of REST API calls.
// Official: no
drop_connection_on_quit: no
// Macro Detector retries
// Number of times someone can fail the macro detection before being banned.
// Official: 3 (minimum: 1)
macro_detection_retry: 3
// Macro Detector timeout
// Amount of time in milliseconds before the macro detection will fail and the user will be banned.
// Official: 60000
macro_detection_timeout: 60000

View File

@@ -56,7 +56,7 @@ feature.autotrade_head_direction: 0
// 1 = Sitting
feature.autotrade_sit: 1
// Delay in miliseconds to open vending/buyingsotre after player logged in.
// Delay in milliseconds to open vending/buyingsotre after player logged in.
feature.autotrade_open_delay: 5000
// Battlegrounds queue interface. Makes it possible to queue for a battleground anywhere using the battle menu.
@@ -119,3 +119,26 @@ feature.barter: on
// Extended Barter Shop System (Note 1)
// Requires: 2019-11-06RagexeRE or later
feature.barter_extended: on
// The timeout in milliseconds when a dynamic NPC will be despawned if not used.
// Default: 60000 (60s)
feature.dynamicnpc_timeout: 60000
// The x range in which the dynamic NPC will be spawned relative to the player.
// Default: 2
feature.dynamicnpc_rangex: 2
// The y range in which the dynamic NPC will be spawned relative to the player.
// Default: 2
feature.dynamicnpc_rangey: 2
// Should the dynamic NPCs look into the direction of the player? (Note 1)
// Default: no
feature.dynamicnpc_direction: no
// Itemlink System on informational related commands (Note 1)
// Generates <ITEML> string for an item and can be used for npctalk, message,
// dispbottom, and broadcast commands. The result is clickable-item name just
// like from SHIFT+Click from player's inventory/cart/equipment window.
// Requires: 2010-00-00RagexeRE or later
feature.itemlink: on

View File

@@ -17,7 +17,13 @@ guild_exp_limit: 50
guild_max_castles: 0
// Activate guild skills delay by relog?
// Official setting is 5 minutes (300000 ms), otherwise allow guild leaders to relog to cancel the 5 minute delay.
// 0 - Save cooldown and resume on relog.
// 1 - Don't save cooldown and restart the timer on relog.
// Default on official servers: 1 for Pre-renewal, 0 for Renewal
//guild_skill_relog_type: 0
// Delay in milliseconds that are applied to guild skills.
// Official setting is 5 minutes (300000 ms).
// Note: This was changed in renewal in favor of individual skill cooldown.
guild_skill_relog_delay: 300000

View File

@@ -116,7 +116,7 @@ default_bind_on_equip: 4
allow_bound_sell: 0x0
// Hide n last characters of player's name with asterisk (*) when the player
// obtained an item with special broadcast flag.
// obtained an item with special broadcast flag or refined an item at a level with broadcast flag.
// Note: Players with short names can be fully converted to asterisks if this
// config value is set high.
broadcast_hide_name: 2

View File

@@ -121,7 +121,8 @@ start_point_doram: lasa_fild01,48,297
// Format: <id>,<amount>,<position>{:<id>,<amount>,<position>...}
// To auto-equip an item, include the position where it will be equipped; otherwise, use zero.
// NOTE: For Doram, this requires client 20151001 or newer.
start_items: 1201,1,2:2301,1,16
start_items: 1201,1,2:2301,1,16:23484,1,0
start_items_pre: 1201,1,2:2301,1,16
start_items_doram: 1681,1,2:2301,1,16
// Starting zeny for new characters

View File

@@ -216,6 +216,7 @@ Body:
hack_info: true
any_warp: true
view_hpmeter: true
macro_detect: true
- Id: 99
Name: Admin
Level: 99
@@ -238,6 +239,7 @@ Body:
item_unconditional: false
bypass_stat_onclone: true
bypass_max_stat: true
macro_register: true
#all_permission: true
Footer:

View File

View File

@@ -15,6 +15,12 @@ party_share_level: 15
// Amount of status points a new character will start with
start_status_points: 48
// Do we allow to change guild emblem during woe_time?
emblem_woe_change: yes
// How many transparent pixel can be found in emblem before detected as invalid? (Note 2)
emblem_transparency_limit: 80
// You can specify the codepage to use in your MySQL tables here.
// (Note that this feature requires MySQL 4.1+)
//default_codepage:
@@ -58,6 +64,13 @@ map_server_id: ragnarok
map_server_pw: ragnarok
map_server_db: ragnarok
// MySQL Web Server
web_server_ip: 127.0.0.1
web_server_port: 3306
web_server_id: ragnarok
web_server_pw: ragnarok
web_server_db: ragnarok
// MySQL Log Database
log_db_ip: 127.0.0.1
log_db_port: 3306
@@ -152,6 +165,14 @@ market_table: market
roulette_table: db_roulette
guild_storage_log: guild_storage_log
// Web Database Tables
// NOTE: The web server reads the login (login) and char (guild) tables, so it needs
// the ability to connect to those databases.
guild_emblems: guild_emblems
user_configs: user_configs
char_configs: char_configs
merchant_configs: merchant_configs
// Use SQL item_db, mob_db and mob_skill_db for the map server? (yes/no)
use_sql_db: no

View File

@@ -167,6 +167,11 @@ client_hash_check: off
// This is required for new clients that get data via an additional API over HTTP
use_web_auth_token: yes
// Delay (in milliseconds) disabling webtoken after character logs off
// There's a race condition when the client logs off. The char-server could revoke the token before
// the client can save the changed configs.
disable_webtoken_delay: 10000
// Client MD5 hashes
// The client with the specified hash can be used to log in by players with
// a group_id equal to or greater than the given value.

View File

@@ -1503,5 +1503,60 @@ map: 1@jorchs
map: 1@jorlab
map: 1@whl
// Extended Jobs
map: 1@exhn
map: 1@exds
map: 2@exds
map: 1@exse
map: 1@exnw
map: 1@exsr
map: 1@exsh
// Varmundt's Biosphere
map: bl_grass
map: bl_lava
map: bl_ice
map: bl_death
// Clock Tower: Unknown Basement
map: clock_01
// Ragnarok Festival
map: rag_fes
map: rag_fes_a
// 20th Anniversary
map: memohall
map: 1@dime
// Fantasy maps
map: prt_elib
map: 1@vrcas
map: 1@vrev
map: 1@vrgen
map: 1@vrpo
// ??
map: 1@pdb
map: airplane2
map: vr_bob
// Heroria
map: hero_dun1
map: hero_ent1
map: hero_ent2
map: hero_ent3
map: hero_in1
map: hero_in2
map: hero_in3
map: hero_in4
map: hero_lb
map: hero_out1
map: hero_out2
map: hero_out3
map: hero_out4
map: hero_tra
map: herosria
//------------------------- Clone Maps ---------------------------
//------------------------- Extra Maps ---------------------------

View File

@@ -924,7 +924,10 @@
// General packet version check messages
828: This command requires packet version %s or newer.
//829-899 free
// Enchant UI
829: Enchanting is not possible for your item's enchant grade.
//830-899 free
//------------------------------------
// More atcommands message
@@ -1786,5 +1789,9 @@
1517: Cannot add fame to class '%s'.
1518: %d points were added to '%s'.
// @grade
1519: Please enter a position and an amount (usage: @grade <equip position> <+/- amount>).
1520: %d items have been graded.
//Custom translations
import: conf/msg_conf/import/map_msg_eng_conf.txt

View File

@@ -0,0 +1,3 @@
// rAthena msg_athena.conf
// Message Configuration of web-server
// -----------------------

56
conf/web_athena.conf Normal file
View File

@@ -0,0 +1,56 @@
// rAthena Web Server configuration file.
// Note: "Comments" are all text on the right side of a double slash "//"
// Whatever text is commented will not be parsed by the servers, and serves
// only as information/reference.
// The web server listens on the interface with this IP address.
// NOTE: This allows you to run multiple servers on multiple interfaces
// while using the same ports for each server.
//bind_ip: 127.0.0.1
// Web Server Port
web_port: 8888
//Time-stamp format which will be printed before all messages.
//Can at most be 20 characters long.
//Common formats:
// %I:%M:%S %p (hour:minute:second 12 hour, AM/PM format)
// %H:%M:%S (hour:minute:second, 24 hour format)
// %d/%b/%Y (day/Month/year)
//For full format information, consult the strftime() manual.
//timestamp_format: [%d/%b %H:%M]
//If redirected output contains escape sequences (color codes)
stdout_with_ansisequence: no
//Makes server log selected message types to a file in the /log/ folder
//1: Log Warning Messages
//2: Log Error and SQL Error messages.
//4: Log Debug Messages
//Example: "console_msg_log: 7" logs all 3 kinds
//Messages logged by this overrides console_silent setting
console_msg_log: 0
// File path to store the console messages above
console_log_filepath: ./log/web-msg_log.log
//Makes server output more silent by omitting certain types of messages:
//1: Hide Information messages
//2: Hide Status messages
//4: Hide Notice Messages
//8: Hide Warning Messages
//16: Hide Error and SQL Error messages.
//32: Hide Debug Messages
//Example: "console_silent: 7" Hides information, status and notice messages (1+2+4)
console_silent: 0
// Print requests and responses?
// This is useful for debugging purposes, it will print the entire
// request and response for each transaction.
print_req_res: off
// Allow GIF images to be uploaded as guild emblem?
allow_gifs: yes
import: conf/import/web_conf.txt

149
configure vendored
View File

@@ -1,5 +1,5 @@
#! /bin/sh
# From configure.in Revision.
# From configure.ac Revision.
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69.
#
@@ -642,6 +642,7 @@ ac_ct_CC
CFLAGS
CC
SET_MAKE
OWEB
OMAP
OCHR
OLOG
@@ -674,6 +675,7 @@ infodir
docdir
oldincludedir
includedir
runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -712,6 +714,7 @@ with_maxconn
with_outputlogin
with_outputchar
with_outputmap
with_outputweb
with_mysql
with_MYSQL_CFLAGS
with_MYSQL_LIBS
@@ -768,6 +771,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE}'
@@ -1020,6 +1024,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
-runstatedir | --runstatedir | --runstatedi | --runstated \
| --runstate | --runstat | --runsta | --runst | --runs \
| --run | --ru | --r)
ac_prev=runstatedir ;;
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
| --run=* | --ru=* | --r=*)
runstatedir=$ac_optarg ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1157,7 +1170,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir
libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1310,6 +1323,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -1367,9 +1381,10 @@ Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-maxconn[=ARG] optionally set the maximum connections the core can
handle. By default the system header value will be used.
This will only be the compile time limit, make sure
you set the correct limit with ulimit on your OS.
handle. By default the system header value will be
used. This will only be the compile time limit, make
sure you set the correct limit with ulimit on your
OS.
--with-outputlogin[=ARG]
Specify the login-serv output name (defaults to
login-server)
@@ -1377,6 +1392,8 @@ Optional Packages:
char-server)
--with-outputmap[=ARG] Specify the map-serv output name (defaults to
map-server)
--with-outputweb[=ARG] Specify the web-serv output name (defaults to
web-server)
--with-mysql[=ARG] optionally specify the path to the mysql_config
executable
--with-MYSQL_CFLAGS=ARG specify MYSQL_CFLAGS manually (instead of using
@@ -1718,44 +1735,6 @@ $as_echo "$ac_res" >&6; }
} # ac_fn_cxx_check_header_compile
# ac_fn_c_try_compile LINENO
# --------------------------
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then :
ac_retval=0
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_compile
# ac_fn_cxx_try_link LINENO
# -------------------------
# Try to link conftest.$ac_ext, and return whether this succeeded.
@@ -1802,6 +1781,44 @@ fi
} # ac_fn_cxx_try_link
# ac_fn_c_try_compile LINENO
# --------------------------
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then :
ac_retval=0
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_compile
# ac_fn_cxx_check_func LINENO FUNC VAR
# ------------------------------------
# Tests whether FUNC exists, setting the cache variable VAR accordingly
@@ -2740,12 +2757,14 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
ac_config_files="$ac_config_files Makefile src/common/Makefile"
ac_config_files="$ac_config_files 3rdparty/libconfig/Makefile 3rdparty/yaml-cpp/Makefile 3rdparty/rapidyaml/Makefile"
ac_config_files="$ac_config_files 3rdparty/libconfig/Makefile 3rdparty/yaml-cpp/Makefile 3rdparty/rapidyaml/Makefile 3rdparty/httplib/Makefile"
ac_config_files="$ac_config_files src/char/Makefile src/login/Makefile"
ac_config_files="$ac_config_files src/map/Makefile src/tool/Makefile"
ac_config_files="$ac_config_files src/web/Makefile"
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
@@ -3284,11 +3303,10 @@ rm -f core conftest.err conftest.$ac_objext \
$as_echo "$have_linux_epoll" >&6; }
fi
if test x$enable_epoll,$have_linux_epoll = xyes,no; then
as_fn_error $? "epoll support explicitly enabled but not available" "$LINENO" 5
as_fn_error $? "epoll support explicitly enabled but not available" "$LINENO" 5
fi
#
# debug
#
@@ -3464,18 +3482,24 @@ fi
#
# Optionally set the max number of network conenctions
# the core will be support
# Optionally set the maximum number of network connections
# the core will be able to handle
#
# Check whether --with-maxconn was given.
if test "${with_maxconn+set}" = set; then :
withval=$with_maxconn;
if ! test "$withval" -ge 0 -o "$withval" -lt 0 2>&- ; then
as_fn_error $? "Invalid argument --with-maxconn=$withval ... stopping" "$LINENO" 5
else
CPPFLAGS="$CPPFLAGS -DMAXCONN=$withval"
fi
if ! test "$withval" -ge 0 -o "$withval" -lt 0 2>&- ; then
as_fn_error $? "Invalid argument --with-maxconn=$withval ... stopping" "$LINENO" 5
else
CPPFLAGS="$CPPFLAGS -DMAXCONN=$withval"
fi
else
CPPFLAGS="$CPPFLAGS"
fi
@@ -3520,6 +3544,18 @@ OMAP=$output_map
# Check whether --with-outputweb was given.
if test "${with_outputweb+set}" = set; then :
withval=$with_outputweb; output_web="$withval"
else
output_web="web-server"
fi
OWEB=$output_web
#
# Optionally specify the path to mysql_config
#
@@ -7027,7 +7063,6 @@ fi
#
# Host specific stuff
#
@@ -7092,8 +7127,8 @@ $as_echo "$as_me: CFLAGS_AR= $CFLAGS_AR" >&6;}
$as_echo "$as_me: LDFLAGS= $LDFLAGS" >&6;}
#AC_MSG_NOTICE([PROD_WARN= $PROD_WARN])
#AC_MSG_NOTICE([EXTRA_WARN= $EXTRA_WARN])
{ $as_echo "$as_me:${as_lineno-$LINENO}: output name = $output_login, $output_char, $output_map" >&5
$as_echo "$as_me: output name = $output_login, $output_char, $output_map" >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: output name = $output_login, $output_char, $output_map, $output_web" >&5
$as_echo "$as_me: output name = $output_login, $output_char, $output_map, $output_web" >&6;}
###############################################################################
cat >confcache <<\_ACEOF
@@ -7807,10 +7842,12 @@ do
"3rdparty/libconfig/Makefile") CONFIG_FILES="$CONFIG_FILES 3rdparty/libconfig/Makefile" ;;
"3rdparty/yaml-cpp/Makefile") CONFIG_FILES="$CONFIG_FILES 3rdparty/yaml-cpp/Makefile" ;;
"3rdparty/rapidyaml/Makefile") CONFIG_FILES="$CONFIG_FILES 3rdparty/rapidyaml/Makefile" ;;
"3rdparty/httplib/Makefile") CONFIG_FILES="$CONFIG_FILES 3rdparty/httplib/Makefile" ;;
"src/char/Makefile") CONFIG_FILES="$CONFIG_FILES src/char/Makefile" ;;
"src/login/Makefile") CONFIG_FILES="$CONFIG_FILES src/login/Makefile" ;;
"src/map/Makefile") CONFIG_FILES="$CONFIG_FILES src/map/Makefile" ;;
"src/tool/Makefile") CONFIG_FILES="$CONFIG_FILES src/tool/Makefile" ;;
"src/web/Makefile") CONFIG_FILES="$CONFIG_FILES src/web/Makefile" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac

View File

@@ -8,9 +8,10 @@ AC_LANG([C++])
AC_LANG_COMPILER_REQUIRE
AC_CONFIG_SRCDIR([src/common/cbasetypes.hpp])
AC_CONFIG_FILES([Makefile src/common/Makefile])
AC_CONFIG_FILES([3rdparty/libconfig/Makefile 3rdparty/yaml-cpp/Makefile 3rdparty/rapidyaml/Makefile])
AC_CONFIG_FILES([3rdparty/libconfig/Makefile 3rdparty/yaml-cpp/Makefile 3rdparty/rapidyaml/Makefile 3rdparty/httplib/Makefile])
AC_CONFIG_FILES([src/char/Makefile src/login/Makefile])
AC_CONFIG_FILES([src/map/Makefile src/tool/Makefile])
AC_CONFIG_FILES([src/web/Makefile])
AC_GNU_SOURCE
@@ -46,7 +47,7 @@ AC_ARG_ENABLE(
[packetver],
AC_HELP_STRING(
[--enable-packetver=ARG],
[Sets the PACKETVER define. (see src/common/mmo.h)]
[Sets the PACKETVER define. (see src/common/mmo.hpp)]
),
[enable_packetver="$enableval"],
[enable_packetver=""]
@@ -302,7 +303,8 @@ AC_ARG_WITH(
[maxconn],
AC_HELP_STRING(
[--with-maxconn@<:@=ARG@:>@],
[optionally set the maximum connections the core can handle. By default the system header value is used.]
[optionally set the maximum connections the core can handle. By default the system header value will be used.
This will only be the compile time limit, make sure you set the correct limit with ulimit on your OS.]
),
[
if ! test "$withval" -ge 0 -o "$withval" -lt 0 2>&- ; then
@@ -353,6 +355,17 @@ AC_ARG_WITH(
)
AC_SUBST([OMAP],$output_map)
AC_ARG_WITH(
[outputweb],
AC_HELP_STRING(
[--with-outputweb@<:@=ARG@:>@],
[Specify the web-serv output name (defaults to web-server)]
),
[output_web="$withval"],
[output_web="web-server"]
)
AC_SUBST([OWEB],$output_web)
#
# Optionally specify the path to mysql_config
@@ -635,7 +648,7 @@ if test "$enable_lto" != "no" ; then
fi
AC_DEFUN(AC_CHECK_COMPILER_WFLAG,
AC_DEFUN([AC_CHECK_COMPILER_WFLAG],
[
AC_MSG_CHECKING([whether $CC supports -W$1])
OLD_CFLAGS="$CFLAGS"
@@ -670,7 +683,7 @@ AC_DEFUN(AC_CHECK_COMPILER_WFLAG,
]
)
AC_DEFUN(AC_CHECK_COMPILER_WNOFLAG,
AC_DEFUN([AC_CHECK_COMPILER_WNOFLAG],
[
AC_MSG_CHECKING([whether $CC supports -Wno-$1])
OLD_CFLAGS="$CFLAGS"
@@ -1301,7 +1314,6 @@ AC_SUBST([PCRE_VERSION])
AC_SUBST([PCRE_LIBS])
AC_SUBST([PCRE_CFLAGS])
#
# Host specific stuff
#
@@ -1356,7 +1368,7 @@ AC_MSG_NOTICE([CFLAGS_AR= $CFLAGS_AR])
AC_MSG_NOTICE([LDFLAGS= $LDFLAGS])
#AC_MSG_NOTICE([PROD_WARN= $PROD_WARN])
#AC_MSG_NOTICE([EXTRA_WARN= $EXTRA_WARN])
AC_MSG_NOTICE([output name = $output_login, $output_char, $output_map])
AC_MSG_NOTICE([output name = $output_login, $output_char, $output_map, $output_web])
###############################################################################
AC_OUTPUT

37
db/captcha_db.yml Normal file
View File

@@ -0,0 +1,37 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Captcha Database Table
###########################################################################
#
# Captcha Database Settings
#
###########################################################################
# - Id Index value.
# Filename Name of the BMP image file (with location).
# Answer Correct answer for the captcha (case-sensitive).
# Bonus Bonus Script ran on success. (Default: Level 10 Blessing and Increase Agility)
###########################################################################
Header:
Type: CAPTCHA_DB
Version: 1
Footer:
Imports:
- Path: db/import/captcha_db.yml

View File

@@ -30,7 +30,9 @@
# Refine Required refine level.
# Chance Base chance of success out of 0~10000.
# Bonus Enchantgrade bonus. (Default: 0)
# Announce Announce if someone tries to increase the enchantgrade. (Default: true)
# AnnounceSuccess Announce on upgrade success. (Default: true)
# AnnounceFail Announce on upgrade failure. (Default: false)
# Announce Announce on upgrade success and failure.
# Catalyst: Catalyst item to increase chance of success.
# Item The item that can be used.
# AmountPerStep Amount of Item needed.
@@ -49,7 +51,7 @@
Header:
Type: ENCHANTGRADE_DB
Version: 1
Version: 2
Footer:
Imports:

View File

@@ -0,0 +1,33 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Captcha Database Table
###########################################################################
#
# Captcha Database Settings
#
###########################################################################
# - Id Index value.
# Filename Name of the BMP image file (with location).
# Answer Correct answer for the captcha (case-sensitive).
# Bonus Bonus Script ran on success. (Default: Level 10 Blessing and Increase Agility)
###########################################################################
Header:
Type: CAPTCHA_DB
Version: 1

View File

@@ -30,7 +30,9 @@
# Refine Required refine level.
# Chance Base chance of success out of 0~10000.
# Bonus Enchantgrade bonus. (Default: 0)
# Announce Announce if someone tries to increase the enchantgrade. (Default: true)
# AnnounceSuccess Announce on upgrade success. (Default: true)
# AnnounceFail Announce on upgrade failure. (Default: false)
# Announce Announce on upgrade success and failure.
# Catalyst: Catalyst item to increase chance of success.
# Item The item that can be used.
# AmountPerStep Amount of Item needed.
@@ -49,4 +51,4 @@
Header:
Type: ENCHANTGRADE_DB
Version: 1
Version: 2

View File

@@ -44,6 +44,7 @@
# EquipLevelMin Minimum required level to equip. (Default: 0)
# EquipLevelMax Maximum level that can equip. (Default: 0)
# Refineable If the item can be refined. (Default: false)
# Gradable If the item can be graded. (Default: false)
# View View sprite of an item. (Default: 0)
# AliasName Another item's AegisName that will be sent to the client instead of this item's AegisName. (Default: null)
# Flags: Item flags. (Default: null)
@@ -85,7 +86,7 @@
Header:
Type: ITEM_DB
Version: 2
Version: 3
#Body:
# THQ Quest Items

View File

@@ -0,0 +1,72 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Item Enchant Database
###########################################################################
#
# Item Enchant Settings
#
###########################################################################
# - Id Client side LUA index.
# TargetItems: List of possible target items.
# <item name> Item name of possible target item.
# MinimumRefine Minimum refine of the target item. (Default: 0)
# MinimumEnchantgrade Minimum enchant grade of the target item. (Default: 0)
# AllowRandomOptions Enable random options in the target item. (Default: true)
# Reset: Reset options. (Default: null)
# Chance Chance of successful reset. (Default: 0)
# Price Price for resetting enchants. (Default: 0)
# Materials: Items required for resetting enchants. (Default: null)
# - Material Item name of the required item.
# Amount Amount of the required item. (Default: 1)
# Order: Order in which the slots can be enchanted.
# Overwriting via import will clear the currently defined order.
# - Slot Number of the slot (0-3).
# Slots: Enchant options.
# - Slot Number of the slot (0-3).
# Price Price required for the normal enchant process. (Default: 0)
# Materials: Items required for the normal enchant process. (Default: null)
# - Material Item name of the required item.
# Amount Amount of the required item. (Default: 1)
# Chance Base chance for the normal enchant process. (Default: 100000)
# EnchantgradeBonus: Additional bonus chance increase per enchant grade. (Default: null)
# - Enchantgrade Enchant grade required for the bonus.
# Chance Additional chance that is added to the base chance.
# Enchants: Available enchants for the normal enchant process per enchant grade. (Default: null)
# - Enchantgrade Enchant grade of the item to be enchanted.
# Items: Available enchants for the normal enchant process on the given enchant grade. (Default: null)
# - Item Item name of the available enchant item.
# Chance Chance to get this specific enchant item.
# PerfectEnchants: Available perfect enchants (100% chance + selectable) for this slot. (Default: null)
# - Item Item name of the available enchant item.
# Price Price required for this perfect enchant. (Default: 0)
# Materials: Items required for this perfect enchant. (Default: null)
# - Material Item name of the required item.
# Amount Amount of the required item. (Default: 1)
# Upgrades: Available enchant upgrades for this slot. (Default: null)
# - Enchant Item name of the enchant item available for upgrade.
# Upgrade Item name of the enchant it can be upgrade to.
# Price Price required for this enchant upgrade. (Default: 0)
# Materials: Items required for this enchant upgrade (Default: null)
# - Material Item name of the required item.
# Amount Amount of the required item. (Default: 1)
###########################################################################
Header:
Type: ITEM_ENCHANT_DB
Version: 1

View File

@@ -0,0 +1,39 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Item Package Database
###########################################################################
#
# Item Package Settings
#
###########################################################################
# - Item Item that triggers Item Package Selection.
# Groups: Groups that can be selected.
# - Group Group ID that can be selected (has to match the client's LUA file).
# Items: Items that will be given out.
# - Item Item that will be given out.
# Amount Amount of the item. (Default: 1)
# To remove an item via import set amount to 0.
# RentalHours Rental time in hours. (Default: 0)
# Refine Refine level of the item. (Default: 0)
# RandomOptionGroup Name of the random option group that will be applied. (Default: none)
###########################################################################
Header:
Type: ITEM_PACKAGE_DB
Version: 1

View File

@@ -0,0 +1,44 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Item Reform Database
###########################################################################
#
# Item Reform Settings
#
###########################################################################
# - Item Item that triggers Item Reform UI.
# BaseItems: Items that can be reformed.
# - BaseItem Item that can be reformed.
# MinimumRefine Minimum refine level of the required items. (Default: 0)
# MaximumRefine Maximum refine level of the required items. (Default: MAX_REFINE)
# RequiredRandomOptions Amount of random options have to be in the item. (Default: 0)
# CardsAllowed Allow cards in the target item. (Default: true)
# Materials: Additional items needed for the reformation. (Default: none)
# - Material Material item that is needed.
# Amount Amount of the material item that is needed. (Default: 1)
# ResultItem Item after the reform.
# ChangeRefine Increase or decrease the refine during reformation. (Default: 0)
# RandomOptionGroup Name of the random option group that will be applied. (Default: none)
# ClearSlots Remove cards and socket enchants during reformation. (Default: false)
# RemoveEnchantgrade Remove enchantgrade during reformation. (Default: false)
###########################################################################
Header:
Type: ITEM_REFORM_DB
Version: 1

View File

@@ -0,0 +1,44 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Map Drop Database
###########################################################################
#
# Map Drop Settings
#
###########################################################################
# - Map Name of the map.
# GlobalDrops Drops for all monsters on this map. (Default: empty)
# These drops are unaffected by server drop rate and cannot be stolen.
# - Index Unique index of the drop.
# Item Item name.
# Rate Drop rate of item.
# RandomOptionGroup Random Option Group applied to item on drop. (Default: None)
# SpecificDrops Drops for specific monsters on this map. (Default: empty)
# - Monster Monster name.
# Drops Drops for this specific monster. (Default: empty)
# These drops are unaffected by server drop rate and cannot be stolen.
# - Index Unique index of the drop.
# Item Item name.
# Rate Drop rate of item.
# RandomOptionGroup Random Option Group applied to item on drop. (Default: None)
###########################################################################
Header:
Type: MAP_DROP_DB
Version: 1

View File

@@ -33,6 +33,7 @@
# HeadTop Item name of headgear (if Sprite is a player). (Default: 0)
# HeadMid Item name of headgear (if Sprite is a player). (Default: 0)
# HeadLow Item name of headgear (if Sprite is a player). (Default: 0)
# Robe Item name of robe (if Sprite is a player). (Default: 0)
# PetEquip Item name of pet equipment (if Mob is a valid pet). (Default: 0)
# Options: Set an option for an object. (Optional)
# <Option>: bool
@@ -68,6 +69,7 @@ Header:
# HeadTop: Sahkkat
# HeadMid: Sunglasses
# HeadLow: Cigar
# Robe: Archangel_Wing
# Options:
# Falcon: true
# Valaris Worshiper

View File

@@ -43,6 +43,9 @@
// afterskill After mob casts the specified skill.
// casttargeted When a target is in cast range (no condition value).
// rudeattacked When mob is rude attacked (no condition value).
// mobnearbygt When monsters in range become greater than specified number.
// groundattacked When mob is hit by ground targeted skill (no condition value).
// damagedgt When single attack deals greater damage than specified number.
//
// Status abnormalities specified through the statuson/statusoff system:
// anybad (any type of state change) / stone / freeze / stun / sleep /

View File

@@ -22,37 +22,29 @@
# Quest Settings
#
###########################################################################
# - Id Quest ID.
# Title Quest title.
# TimeLimit Amount of time before the quest expires. (Default: 0)
# Use a number following by "d" for day(s), "h" for hour(s), "mn" for minute(s), and "s" for second(s).
# Specify with "+" for how long until the quest expires.
# Specify without "+" for the exact time the quest expires using "d" (optional), [0-23]"h" (required), [0-59]"mn" (optional), [0-59]"s" (optional) format.
# Please note the number before "d" only shift the exact timer to the given day(s).
# Targets: Quest objective target. (Default: null)
# The target can be a couple of node Mob/Count or of Id/Race/Size/Element/MinLevel/MaxLevel.
# If Mob is supplied, Count is required and the other fields are ignored.
# If Id is supplied, at least one other field of Race/Size/Element/MinLevel/MaxLevel is required.
# If Id is supplied, Count is required for each new entry.
# - Mob Monster to kill (aegis monster name).
# Count Amount of monsters to kill. Set to 0 to skip the target on import.
# Id Unique target index for the quest Id. Requires a positive number.
# Race Monster race target (default All). Valid races are Angel, Brute, DemiHuman, Demon, Dragon, Fish, Formless, Insect, Plant, Undead, All.
# Size Monster size target (default All). Valid sizes are Small, Medium, Large, All.
# Element Monster element target (default All). Valid elements are Dark, Earth, Fire, Ghost, Holy, Neutral, Poison, Undead, Water, Wind, All.
# MinLevel Minimum monster level target. If not supplied but MaxLevel defined, MinLevel is 1. Set to 0 to ignore MinLevel on import. (Default: 0)
# MaxLevel Maximum monster level target. Set to 0 to ignore MaxLevel on import. (Default: 0)
# Location Map name where kills are counted. (Default any location)
# On normal maps only kills of permanently spawned monsters increase the counter.
# On instance maps all monster kills increase the counter.
# MapName Displayed map name in quest UI. (Default: empty string)
# Drops: Quest item drop targets. (Default: null)
# - Mob Monster to kill. 0 will apply to all monsters. (Default: 0)
# Item Item to drop.
# Count Amount of items that will drop. Non-stackable items default to 1. (Default: 1)
# Rate Item drop rate. (10000 = 100%)
# - Id Quest ID.
# Title Quest title.
# TimeLimit Amount of time before the quest expires. (Default: 0)
# Targets: Quest objective target. (Default: null)
# - Mob Name of monster to kill.
# Count Amount of monsters to kill. Set to 0 to skip the target on import.
# Id Unique target index for the quest Id. Requires a positive number.
# Race Monster race target. (Default: All)
# Size Monster size target. (Default: All)
# Element Monster element target. (Default: All)
# MinLevel Minimum monster level target. If not supplied but MaxLevel defined, MinLevel is 1. Set to 0 to ignore MinLevel on import. (Default: 0)
# MaxLevel Maximum monster level target. Set to 0 to ignore MaxLevel on import. (Default: 0)
# Location Map name where kills are counted. (Default: All)
# MapName Displayed map name in quest UI. (Default: empty string)
# MapMobTargets List of monster names. Only names in the list will increase the kill counter. Only active when Id is used. (Default: all monsters)
# <name>: <bool> Monster name and whether the monster is added or removed from the list.
# Drops: Quest item drop targets. (Default: null)
# - Mob Monster to kill. 0 will apply to all monsters. (Default: 0)
# Item Item to drop.
# Count Amount of items that will drop. Non-stackable items default to 1. (Default: 1)
# Rate Item drop rate. (10000 = 100%)
###########################################################################
Header:
Type: QUEST_DB
Version: 2
Version: 3

View File

@@ -30,6 +30,8 @@
# Bonus Refinement bonus. (Default: 0)
# RandomBonus Extra refinement bonus of 0~RandomBonus stacked on Bonus. (Default: 0)
# BlacksmithBlessingAmount Amount of Blacksmith Blessing required. (Default: 0)
# BroadcastSuccess Broadcast to the whole server when a refine attempt at this level succeeds. (Default: false)
# BroadcastFailure Broadcast to the whole server when a refine attempt at this level fails. (Default: false)
# Chances: Success chance based on cost type. (Default: null)
# - Type Refinement cost type based on ore used.
# Rate Chance of success out of 0~10000. (Default: 0)
@@ -41,7 +43,7 @@
Header:
Type: REFINE_DB
Version: 1
Version: 2
###########################################################################
# Event Refine Rates

View File

@@ -0,0 +1,34 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Reputation Database
###########################################################################
#
# Reputation Settings
#
###########################################################################
# - Id Client side index.
# Name Name of the reputation type.
# Variable Name of the variable that will store the reputation. (Default: RepPoints<id>)
# Minimum Minimum amount of points. (Default: INT64_MIN)
# Maximum Maximum amount of points. (Default: INT64_MAX)
###########################################################################
Header:
Type: REPUTATION_DB
Version: 1

View File

@@ -0,0 +1,33 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Reputation Group Database
###########################################################################
#
# Reputation Group Settings
#
###########################################################################
# - Id Client side group index.
# ScriptName Unused? Used for "ID" in client
# Name Visible name in window
# ReputeList List of Reputations
###########################################################################
Header:
Type: REPUTATION_GROUP_DB
Version: 1

View File

@@ -35,10 +35,11 @@
# MinRate Minimum rate after status change reduction (10000 = 100%). (Default: 0)
# MinDuration Minimum duration in milliseconds after status change reduction. (Default: 1)
# Fail: List of Status Changes that causes the status to fail to activate. (Optional)
# End: List of Status Changes that will end when the status activates. (Optional)
# EndOnStart: List of Status Changes that will end when the status activates. (Optional)
# EndReturn: List of Status Changes that will end when the status activates and won't give its effect. (Optional)
# EndOnEnd: List of Status Changes that will end when the status becomes inactive. (Optional)
###########################################################################
Header:
Type: STATUS_DB
Version: 2
Version: 3

View File

@@ -44,6 +44,7 @@
# EquipLevelMin Minimum required level to equip. (Default: 0)
# EquipLevelMax Maximum level that can equip. (Default: 0)
# Refineable If the item can be refined. (Default: false)
# Gradable If the item can be graded. (Default: false)
# View View sprite of an item. (Default: 0)
# AliasName Another item's AegisName that will be sent to the client instead of this item's AegisName. (Default: null)
# Flags: Item flags. (Default: null)
@@ -85,7 +86,7 @@
Header:
Type: ITEM_DB
Version: 2
Version: 3
Footer:
Imports:

78
db/item_enchant.yml Normal file
View File

@@ -0,0 +1,78 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Item Enchant Database
###########################################################################
#
# Item Enchant Settings
#
###########################################################################
# - Id Client side LUA index.
# TargetItems: List of possible target items.
# <item name> Item name of possible target item.
# MinimumRefine Minimum refine of the target item. (Default: 0)
# MinimumEnchantgrade Minimum enchant grade of the target item. (Default: 0)
# AllowRandomOptions Enable random options in the target item. (Default: true)
# Reset: Reset options. (Default: null)
# Chance Chance of successful reset. (Default: 0)
# Price Price for resetting enchants. (Default: 0)
# Materials: Items required for resetting enchants. (Default: null)
# - Material Item name of the required item.
# Amount Amount of the required item. (Default: 1)
# Order: Order in which the slots can be enchanted.
# Overwriting via import will clear the currently defined order.
# - Slot Number of the slot (0-3).
# Slots: Enchant options.
# - Slot Number of the slot (0-3).
# Price Price required for the normal enchant process. (Default: 0)
# Materials: Items required for the normal enchant process. (Default: null)
# - Material Item name of the required item.
# Amount Amount of the required item. (Default: 1)
# Chance Base chance for the normal enchant process. (Default: 100000)
# EnchantgradeBonus: Additional bonus chance increase per enchant grade. (Default: null)
# - Enchantgrade Enchant grade required for the bonus.
# Chance Additional chance that is added to the base chance.
# Enchants: Available enchants for the normal enchant process per enchant grade. (Default: null)
# - Enchantgrade Enchant grade of the item to be enchanted.
# Items: Available enchants for the normal enchant process on the given enchant grade. (Default: null)
# - Item Item name of the available enchant item.
# Chance Chance to get this specific enchant item.
# PerfectEnchants: Available perfect enchants (100% chance + selectable) for this slot. (Default: null)
# - Item Item name of the available enchant item.
# Price Price required for this perfect enchant. (Default: 0)
# Materials: Items required for this perfect enchant. (Default: null)
# - Material Item name of the required item.
# Amount Amount of the required item. (Default: 1)
# Upgrades: Available enchant upgrades for this slot. (Default: null)
# - Enchant Item name of the enchant item available for upgrade.
# Upgrade Item name of the enchant it can be upgrade to.
# Price Price required for this enchant upgrade. (Default: 0)
# Materials: Items required for this enchant upgrade (Default: null)
# - Material Item name of the required item.
# Amount Amount of the required item. (Default: 1)
###########################################################################
Header:
Type: ITEM_ENCHANT_DB
Version: 1
Footer:
Imports:
- Path: db/re/item_enchant.yml
Mode: Renewal
- Path: db/import/item_enchant.yml

45
db/item_packages.yml Normal file
View File

@@ -0,0 +1,45 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Item Package Database
###########################################################################
#
# Item Package Settings
#
###########################################################################
# - Item Item that triggers Item Package Selection.
# Groups: Groups that can be selected.
# - Group Group ID that can be selected (has to match the client's LUA file).
# Items: Items that will be given out.
# - Item Item that will be given out.
# Amount Amount of the item. (Default: 1)
# To remove an item via import set amount to 0.
# RentalHours Rental time in hours. (Default: 0)
# Refine Refine level of the item. (Default: 0)
# RandomOptionGroup Name of the random option group that will be applied. (Default: none)
###########################################################################
Header:
Type: ITEM_PACKAGE_DB
Version: 1
Footer:
Imports:
- Path: db/re/item_packages.yml
Mode: Renewal
- Path: db/import/item_packages.yml

50
db/item_reform.yml Normal file
View File

@@ -0,0 +1,50 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Item Reform Database
###########################################################################
#
# Item Reform Settings
#
###########################################################################
# - Item Item that triggers Item Reform UI.
# BaseItems: Items that can be reformed.
# - BaseItem Item that can be reformed.
# MinimumRefine Minimum refine level of the required items. (Default: 0)
# MaximumRefine Maximum refine level of the required items. (Default: MAX_REFINE)
# RequiredRandomOptions Amount of random options have to be in the item. (Default: 0)
# CardsAllowed Allow cards in the target item. (Default: true)
# Materials: Additional items needed for the reformation. (Default: none)
# - Material Material item that is needed.
# Amount Amount of the material item that is needed. (Default: 1)
# ResultItem Item after the reform.
# ChangeRefine Increase or decrease the refine during reformation. (Default: 0)
# RandomOptionGroup Name of the random option group that will be applied. (Default: none)
# ClearSlots Remove cards and socket enchants during reformation. (Default: false)
# RemoveEnchantgrade Remove enchantgrade during reformation. (Default: false)
###########################################################################
Header:
Type: ITEM_REFORM_DB
Version: 1
Footer:
Imports:
- Path: db/re/item_reform.yml
Mode: Renewal
- Path: db/import/item_reform.yml

Binary file not shown.

50
db/map_drops.yml Normal file
View File

@@ -0,0 +1,50 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Map Drop Database
###########################################################################
#
# Map Drop Settings
#
###########################################################################
# - Map Name of the map.
# GlobalDrops Drops for all monsters on this map. (Default: empty)
# These drops are unaffected by server drop rate and cannot be stolen.
# - Index Unique index of the drop.
# Item Item name.
# Rate Drop rate of item.
# RandomOptionGroup Random Option Group applied to item on drop. (Default: None)
# SpecificDrops Drops for specific monsters on this map. (Default: empty)
# - Monster Monster name.
# Drops Drops for this specific monster. (Default: empty)
# These drops are unaffected by server drop rate and cannot be stolen.
# - Index Unique index of the drop.
# Item Item name.
# Rate Drop rate of item.
# RandomOptionGroup Random Option Group applied to item on drop. (Default: None)
###########################################################################
Header:
Type: MAP_DROP_DB
Version: 1
Footer:
Imports:
- Path: db/re/map_drops.yml
Mode: Renewal
- Path: db/import/map_drops.yml

View File

@@ -1161,7 +1161,45 @@ air_if
1@jorchs
1@jorlab
1@whl
1@exhn
1@exds
2@exds
1@exse
1@exnw
1@exsr
1@exsh
bl_grass
bl_lava
bl_ice
bl_death
clock_01
rag_fes
rag_fes_a
memohall
1@dime
prt_elib
1@vrcas
1@vrev
1@vrgen
1@vrpo
1@pdb
airplane2
vr_bob
hero_dun1
hero_ent1
hero_ent2
hero_ent3
hero_in1
hero_in2
hero_in3
hero_in4
hero_lb
hero_out1
hero_out2
hero_out3
hero_out4
hero_tra
herosria
//======================================================================================
// - Other/Extra maps -

View File

@@ -126,6 +126,26 @@ Body:
Dialog: This is the truth! Hahahahah!
- Id: 58 # !todo Unknown dialogue
Dialog: Attack!
- Id: 60
Dialog: Go !! Ultra Critical Bash EX !!
- Id: 61
Dialog: Come on!! Hell's Fireball !!
- Id: 62
Dialog: Kneel before me!! The vast power of capitalism !!
- Id: 63
Dialog: You can't run from me!! Double Strafe, pierce through my enemies !!
- Id: 64
Dialog: I'm gonna make you sick!!! Ultimate generational Envenom !!
- Id: 65
Dialog: I'll roll over you!! Ultimate Decrease Agility GX !!
- Id: 67
Dialog: Dark cast that narrows the field of vision! It can only be removed with a green potion!
- Id: 68
Dialog: A poison that continuously lowers HP for a certain period of time! But it is not released with a green herb!
- Id: 69
Dialog: Let's start with recovery!
- Id: 70
Dialog: Silence that cannot use skills! You can only escape by eating green potions!
Footer:
Imports:

View File

@@ -67,7 +67,7 @@ Body:
- Id: 3
Name: Orc's Memory
Enter:
Map: 1@orcs
Map: 1@orcs
X: 179
Y: 15
AdditionalMaps:

View File

@@ -44,6 +44,7 @@
# EquipLevelMin Minimum required level to equip. (Default: 0)
# EquipLevelMax Maximum level that can equip. (Default: 0)
# Refineable If the item can be refined. (Default: false)
# Gradable If the item can be graded. (Default: false)
# View View sprite of an item. (Default: 0)
# AliasName Another item's AegisName that will be sent to the client instead of this item's AegisName. (Default: null)
# Flags: Item flags. (Default: null)
@@ -85,7 +86,7 @@
Header:
Type: ITEM_DB
Version: 2
Version: 3
Footer:
Imports:

View File

@@ -44,6 +44,7 @@
# EquipLevelMin Minimum required level to equip. (Default: 0)
# EquipLevelMax Maximum level that can equip. (Default: 0)
# Refineable If the item can be refined. (Default: false)
# Gradable If the item can be graded. (Default: false)
# View View sprite of an item. (Default: 0)
# AliasName Another item's AegisName that will be sent to the client instead of this item's AegisName. (Default: null)
# Flags: Item flags. (Default: null)
@@ -85,7 +86,7 @@
Header:
Type: ITEM_DB
Version: 2
Version: 3
Body:
- Id: 1101
@@ -844,7 +845,6 @@ Body:
Refineable: true
Script: |
skill "TF_DOUBLE",5;
bonus bDoubleRate,25;
bonus2 bAddRace,RC_DemiHuman,5;
bonus2 bAddRace,RC_Player_Human,5;
- Id: 1131
@@ -10432,8 +10432,9 @@ Body:
bonus bDex,1;
bonus bAtkEle,Ele_Undead;
bonus bMatkRate,20;
bonus3 bAutoSpellWhenHit,"NPC_WIDECURSE",5,10+getrefine();
if (getrefine()>=9) {
.@r = getrefine();
bonus3 bAutoSpellWhenHit,"NPC_WIDECURSE",5,10+.@r;
if (.@r>=9) {
bonus bMatkRate,3;
bonus bMaxSP,300;
}
@@ -10485,8 +10486,9 @@ Body:
Script: |
bonus bInt,4;
bonus bMatkRate,15;
bonus2 bIgnoreMdefClassRate,Class_Normal,10+getrefine();
bonus2 bIgnoreMdefClassRate,Class_Boss,10+getrefine();
.@r = getrefine();
bonus2 bIgnoreMdefClassRate,Class_Normal,10+.@r;
bonus2 bIgnoreMdefClassRate,Class_Boss,10+.@r;
- Id: 1627
AegisName: Staffy
Name: Staffy
@@ -10781,9 +10783,10 @@ Body:
bonus bInt,3;
bonus bDex,3;
bonus bMatkRate,20;
bonus2 bIgnoreMdefClassRate,Class_Normal,getrefine();
bonus2 bIgnoreMdefClassRate,Class_Boss,getrefine();
bonus bDelayRate,-(getrefine()*3/2);
.@r = getrefine();
bonus2 bIgnoreMdefClassRate,Class_Normal,.@r;
bonus2 bIgnoreMdefClassRate,Class_Boss,.@r;
bonus bDelayRate,-(.@r*3/2);
- Id: 1637
AegisName: Eraser
Name: Eraser
@@ -10908,12 +10911,14 @@ Body:
NoMail: true
NoAuction: true
Script: |
bonus bMatkRate,15;
bonus2 bMagicAddRace,RC_DemiHuman,15;
bonus2 bMagicAddRace,RC_Player_Human,15;
bonus2 bIgnoreMdefRaceRate,RC_DemiHuman,25 + ((getrefine()>5) ? 5 : 0);
bonus2 bIgnoreMdefRaceRate,RC_Player_Human,25 + ((getrefine()>5) ? 5 : 0);
.@r = getrefine();
bonus2 bIgnoreMdefRaceRate,RC_DemiHuman,25 + ((.@r>5) ? 5 : 0);
bonus2 bIgnoreMdefRaceRate,RC_Player_Human,25 + ((.@r>5) ? 5 : 0);
bonus bUnbreakableWeapon;
if (getrefine()>8) {
if (.@r>8) {
bonus bCastrate,-5;
bonus bDelayRate,-5;
bonus bMatkRate,5;
@@ -10948,17 +10953,19 @@ Body:
NoMail: true
NoAuction: true
Script: |
bonus bMatkRate,15;
bonus bHealPower,14;
bonus bDelayRate,-10;
bonus bUnbreakableWeapon;
if (getrefine()>5) {
.@r = getrefine();
if (.@r>5) {
bonus2 bIgnoreMdefRaceRate,RC_DemiHuman,5;
bonus2 bIgnoreMdefRaceRate,RC_Player_Human,5;
bonus bHealPower,5+(getrefine()-5)*2;
bonus bHealPower,5+(.@r-5)*2;
}
if (getrefine()>8)
if (.@r>8)
bonus5 bAutoSpellOnSkill,"AL_HEAL","AL_HEAL",10,100,1;
if (getrefine()>9) {
if (.@r>9) {
bonus bHealPower,10;
}
- Id: 1642
@@ -11016,10 +11023,11 @@ Body:
EquipLevelMin: 70
Refineable: true
Script: |
bonus bMatk,15;
bonus bMatkRate,15;
bonus bInt,4;
if (getrefine()>5) {
bonus bInt,getrefine()-5;
.@r = getrefine();
if (.@r>5) {
bonus bInt,.@r-5;
bonus bMaxHP,-200;
bonus bMaxSP,-100;
}
@@ -11057,8 +11065,9 @@ Body:
Script: |
bonus bInt,4;
bonus bMatkRate,15;
bonus2 bIgnoreMdefClassRate,Class_Normal,10+getrefine();
bonus2 bIgnoreMdefClassRate,Class_Boss,10+getrefine();
.@r = getrefine();
bonus2 bIgnoreMdefClassRate,Class_Normal,10+.@r;
bonus2 bIgnoreMdefClassRate,Class_Boss,10+.@r;
- Id: 1645
AegisName: Lich_Bone_Wand_M
Name: Lich's Bone Wand
@@ -11096,8 +11105,9 @@ Body:
bonus bDex,1;
bonus bAtkEle,Ele_Undead;
bonus bMatkRate,20;
bonus3 bAutoSpellWhenHit,"NPC_WIDECURSE",5,10+getrefine();
if (getrefine()>=9) {
.@r = getrefine();
bonus3 bAutoSpellWhenHit,"NPC_WIDECURSE",5,10+.@r;
if (.@r>=9) {
bonus bMatkRate,3;
bonus bMaxSP,300;
}
@@ -11125,9 +11135,10 @@ Body:
Script: |
bonus bInt,4;
bonus bMatkRate,15;
bonus bMdef,getrefine();
bonus2 bSkillAtk,"WZ_STORMGUST",getrefine();
if (getrefine()>9)
.@r = getrefine();
bonus bMdef,.@r;
bonus2 bSkillAtk,"WZ_STORMGUST",.@r;
if (.@r>9)
bonus2 bCastrate,"WZ_STORMGUST",-8;
- Id: 1647
AegisName: Croce_Staff
@@ -14223,11 +14234,12 @@ Body:
EquipLevelMin: 80
Refineable: true
Script: |
bonus bMatkRate,25+getrefine()/2;
.@r = getrefine();
bonus bMatkRate,25+(.@r/2);
bonus bInt,3;
bonus bAgi,10;
bonus bUseSPrate,(getrefine()*2);
bonus3 bAutoSpellWhenHit,"WZ_JUPITEL",5,(getrefine()*20);
bonus bUseSPrate,(.@r*2);
bonus3 bAutoSpellWhenHit,"WZ_JUPITEL",5,(.@r*20);
bonus2 bCastrate,"HW_MAGICPOWER",-50;
- Id: 2001
AegisName: Divine_Cross
@@ -14281,19 +14293,20 @@ Body:
NoMail: true
NoAuction: true
Script: |
bonus bMatkRate,getrefine();
.@r = getrefine();
bonus bMatkRate,15 + .@r;
bonus2 bMagicAddRace,RC_DemiHuman,15;
bonus2 bMagicAddRace,RC_Player_Human,15;
bonus2 bIgnoreMdefRaceRate,RC_DemiHuman,25;
bonus2 bIgnoreMdefRaceRate,RC_Player_Human,25;
bonus bUnbreakableWeapon;
if (getrefine()>5) {
bonus2 bMagicAddRace,RC_DemiHuman,(getrefine()-5)*2;
bonus2 bMagicAddRace,RC_Player_Human,(getrefine()-5)*2;
bonus2 bIgnoreMdefRaceRate,RC_DemiHuman,5+(getrefine()-5)*2;
bonus2 bIgnoreMdefRaceRate,RC_Player_Human,5+(getrefine()-5)*2;
if (.@r>5) {
bonus2 bMagicAddRace,RC_DemiHuman,(.@r-5)*2;
bonus2 bMagicAddRace,RC_Player_Human,(.@r-5)*2;
bonus2 bIgnoreMdefRaceRate,RC_DemiHuman,5+(.@r-5)*2;
bonus2 bIgnoreMdefRaceRate,RC_Player_Human,5+(.@r-5)*2;
}
if (getrefine()>8) {
if (.@r>8) {
bonus5 bAutoSpellOnSkill,"WZ_STORMGUST","MG_SAFETYWALL",10,200,1;
bonus5 bAutoSpellOnSkill,"WZ_METEOR","MG_SAFETYWALL",10,200,1;
bonus5 bAutoSpellOnSkill,"WZ_VERMILION","MG_SAFETYWALL",10,200,1;
@@ -14326,11 +14339,12 @@ Body:
NoMail: true
NoAuction: true
Script: |
bonus bMatkRate,25+getrefine()/2;
.@r = getrefine();
bonus bMatkRate,25+(.@r/2);
bonus bInt,3;
bonus bAgi,10;
bonus bUseSPrate,(getrefine()*2);
bonus3 bAutoSpellWhenHit,"WZ_JUPITEL",5,(getrefine()*20);
bonus bUseSPrate,(.@r*2);
bonus3 bAutoSpellWhenHit,"WZ_JUPITEL",5,(.@r*20);
bonus2 bCastrate,"HW_MAGICPOWER",-50;
- Id: 2004
AegisName: Kronos
@@ -14353,9 +14367,10 @@ Body:
EquipLevelMin: 50
Refineable: true
Script: |
.@r = getrefine();
bonus bMatkRate,20;
bonus bInt,3+(getrefine()/2);
bonus bMaxHP,300+(50*getrefine()/2);
bonus bInt,3+(.@r/2);
bonus bMaxHP,300+(50*.@r/2);
autobonus "{ bonus bMatkRate,12; bonus buseSPRate,20; }",1,5000,BF_MAGIC,"{ specialeffect2 EF_ENHANCE; }";
- Id: 2005
AegisName: Dea_Staff
@@ -14384,29 +14399,6 @@ Body:
bonus bInt,6;
bonus bVit,2;
autobonus3 "{ }",20,1000,"AL_HEAL","{ specialeffect2 EF_MAGICALATTHIT; heal 0,200; }";
- Id: 2006
AegisName: G_Staff_Of_Light
Name: Staff Of Light
Type: Weapon
SubType: 2hStaff
Buy: 20
Weight: 1900
Attack: 80
Range: 1
Jobs:
Mage: true
Sage: true
SoulLinker: true
Wizard: true
Locations:
Both_Hand: true
WeaponLevel: 4
EquipLevelMin: 60
Refineable: true
Script: |
/* bonus bMatk,150;
*/ bonus bAtkEle,Ele_Holy;
bonus bInt,6;
- Id: 2101
AegisName: Guard
Name: Guard
@@ -24702,7 +24694,6 @@ Body:
Script: |
bonus bMaxSP,100;
skill "TF_DOUBLE",3;
bonus bDoubleRate,15;
skill "TF_STEAL",1;
skill "TF_HIDING",1;
skill "TF_POISON",1;
@@ -29767,7 +29758,6 @@ Body:
bonus bMaxHP,50;
bonus bMaxSP,50;
skill "TF_DOUBLE",2;
bonus bDoubleRate,10;
bonus2 bSubRace,RC_DemiHuman,3;
bonus2 bSubRace,RC_Player_Human,3;
- Id: 5284
@@ -31728,7 +31718,6 @@ Body:
NoGuildStorage: true
Script: |
skill "TF_DOUBLE",5;
bonus bDoubleRate,25;
- Id: 5389
AegisName: Angel_Spirit
Name: Angel Spirit
@@ -34171,9 +34160,7 @@ Body:
View: 525
Script: |
bonus bDex,2;
.@bonus = max(getskilllv("TF_DOUBLE"), 5);
skill "TF_DOUBLE",.@bonus;
bonus bDoubleRate,.@bonus * 5;
skill "TF_DOUBLE",5;
- Id: 5532
AegisName: Pirate_Dagger_J
Name: Pirate Dagger
@@ -39963,7 +39950,6 @@ Body:
WeaponLevel: 4
Script: |
skill "TF_DOUBLE",5;
bonus bDoubleRate,25;
bonus2 bAddRace,RC_DemiHuman,40;
bonus2 bAddRace,RC_Player_Human,40;
- Id: 13408
@@ -40350,14 +40336,16 @@ Body:
NoMail: true
NoAuction: true
Script: |
bonus bInt,getrefine()-5;
.@r = getrefine();
bonus bInt,6;
bonus bInt,.@r-5;
bonus bMatkRate,10;
bonus bUnbreakableWeapon;
if (getrefine()>5)
if (.@r>5)
bonus bUseSPrate,-10;
if (getrefine()>8)
if (.@r>8)
bonus4 bAutoSpellOnSkill,"PA_PRESSURE","PR_LEXAETERNA",1,1000;
if (getrefine()>9)
if (.@r>9)
bonus bInt,5;
- Id: 13419
AegisName: Holy_Saber

View File

@@ -44,6 +44,7 @@
# EquipLevelMin Minimum required level to equip. (Default: 0)
# EquipLevelMax Maximum level that can equip. (Default: 0)
# Refineable If the item can be refined. (Default: false)
# Gradable If the item can be graded. (Default: false)
# View View sprite of an item. (Default: 0)
# AliasName Another item's AegisName that will be sent to the client instead of this item's AegisName. (Default: null)
# Flags: Item flags. (Default: null)
@@ -85,7 +86,7 @@
Header:
Type: ITEM_DB
Version: 2
Version: 3
Body:
- Id: 670
@@ -4026,7 +4027,6 @@ Body:
BuyingStore: true
Script: |
skill "TF_DOUBLE",1;
bonus bDoubleRate,5;
- Id: 4118
AegisName: Petit_Card
Name: Earth Petite Card

View File

@@ -44,6 +44,7 @@
# EquipLevelMin Minimum required level to equip. (Default: 0)
# EquipLevelMax Maximum level that can equip. (Default: 0)
# Refineable If the item can be refined. (Default: false)
# Gradable If the item can be graded. (Default: false)
# View View sprite of an item. (Default: 0)
# AliasName Another item's AegisName that will be sent to the client instead of this item's AegisName. (Default: null)
# Flags: Item flags. (Default: null)
@@ -85,7 +86,7 @@
Header:
Type: ITEM_DB
Version: 2
Version: 3
Body:
- Id: 501

View File

@@ -44,6 +44,9 @@
// afterskill After mob casts the specified skill.
// casttargeted When a target is in cast range (no condition value).
// rudeattacked When mob is rude attacked (no condition value).
// mobnearbygt When monsters in range become greater than specified number.
// groundattacked When mob is hit by ground targeted skill (no condition value).
// damagedgt When single attack deals greater damage than specified number.
//
// Status abnormalities specified through the statuson/statusoff system:
// anybad (any type of state change) / stone / freeze / stun / sleep /
@@ -714,8 +717,8 @@
1141,Marina@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
1141,Marina@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,19,,,,,,
1141,Marina@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,0,,,,,,6,
1142,Marine Sphere@NPC_RANDOMMOVE,idle,331,1,10000,0,30000,no,target,alchemist,,,,,,,,
1142,Marine Sphere@NPC_SELFDESTRUCTION,idle,173,1,10000,3000,0,no,self,alchemist,,,,,,,,
1142,Marine Sphere@NPC_RANDOMMOVE,idle,331,1,10000,0,30000,no,master,alchemist,,,,,,,,
1142,Marine Sphere@NPC_SELFDESTRUCTION,idle,173,1,10000,3000,0,no,self,afterskill,331,,,,,,,
1142,Marine Sphere@NPC_SELFDESTRUCTION,idle,173,1,500,2000,5000,no,self,myhpltmaxrate,99,,,,,,,
1142,Marine Sphere@NPC_SELFDESTRUCTION,idle,173,1,10000,2000,5000,no,self,skillused,173,,,,,,,
1142,Marine Sphere@NPC_SPEEDUP,idle,332,1,10000,0,700,yes,target,always,,,,,,,,

View File

@@ -22,40 +22,32 @@
# Quest Settings
#
###########################################################################
# - Id Quest ID.
# Title Quest title.
# TimeLimit Amount of time before the quest expires. (Default: 0)
# Use a number following by "d" for day(s), "h" for hour(s), "mn" for minute(s), and "s" for second(s).
# Specify with "+" for how long until the quest expires.
# Specify without "+" for the exact time the quest expires using "d" (optional), [0-23]"h" (required), [0-59]"mn" (optional), [0-59]"s" (optional) format.
# Please note the number before "d" only shift the exact timer to the given day(s).
# Targets: Quest objective target. (Default: null)
# The target can be a couple of node Mob/Count or of Id/Race/Size/Element/MinLevel/MaxLevel.
# If Mob is supplied, Count is required and the other fields are ignored.
# If Id is supplied, at least one other field of Race/Size/Element/MinLevel/MaxLevel is required.
# If Id is supplied, Count is required for each new entry.
# - Mob Monster to kill (aegis monster name).
# Count Amount of monsters to kill. Set to 0 to skip the target on import.
# Id Unique target index for the quest Id. Requires a positive number.
# Race Monster race target (default All). Valid races are Angel, Brute, DemiHuman, Demon, Dragon, Fish, Formless, Insect, Plant, Undead, All.
# Size Monster size target (default All). Valid sizes are Small, Medium, Large, All.
# Element Monster element target (default All). Valid elements are Dark, Earth, Fire, Ghost, Holy, Neutral, Poison, Undead, Water, Wind, All.
# MinLevel Minimum monster level target. If not supplied but MaxLevel defined, MinLevel is 1. Set to 0 to ignore MinLevel on import. (Default: 0)
# MaxLevel Maximum monster level target. Set to 0 to ignore MaxLevel on import. (Default: 0)
# Location Map name where kills are counted. (Default any location)
# On normal maps only kills of permanently spawned monsters increase the counter.
# On instance maps all monster kills increase the counter.
# MapName Displayed map name in quest UI. (Default: empty string)
# Drops: Quest item drop targets. (Default: null)
# - Mob Monster to kill. 0 will apply to all monsters. (Default: 0)
# Item Item to drop.
# Count Amount of items that will drop. Non-stackable items default to 1. (Default: 1)
# Rate Item drop rate. (10000 = 100%)
# - Id Quest ID.
# Title Quest title.
# TimeLimit Amount of time before the quest expires. (Default: 0)
# Targets: Quest objective target. (Default: null)
# - Mob Name of monster to kill.
# Count Amount of monsters to kill. Set to 0 to skip the target on import.
# Id Unique target index for the quest Id. Requires a positive number.
# Race Monster race target. (Default: All)
# Size Monster size target. (Default: All)
# Element Monster element target. (Default: All)
# MinLevel Minimum monster level target. If not supplied but MaxLevel defined, MinLevel is 1. Set to 0 to ignore MinLevel on import. (Default: 0)
# MaxLevel Maximum monster level target. Set to 0 to ignore MaxLevel on import. (Default: 0)
# Location Map name where kills are counted. (Default: All)
# MapName Displayed map name in quest UI. (Default: empty string)
# MapMobTargets List of monster names. Only names in the list will increase the kill counter. Only active when Id is used. (Default: all monsters)
# <name>: <bool> Monster name and whether the monster is added or removed from the list.
# Drops: Quest item drop targets. (Default: null)
# - Mob Monster to kill. 0 will apply to all monsters. (Default: 0)
# Item Item to drop.
# Count Amount of items that will drop. Non-stackable items default to 1. (Default: 1)
# Rate Item drop rate. (10000 = 100%)
###########################################################################
Header:
Type: QUEST_DB
Version: 2
Version: 3
Body:
- Id: 1000

View File

@@ -30,6 +30,8 @@
# Bonus Refinement bonus. (Default: 0)
# RandomBonus Extra refinement bonus of 0~RandomBonus stacked on Bonus. (Default: 0)
# BlacksmithBlessingAmount Amount of Blacksmith Blessing required. (Default: 0)
# BroadcastSuccess Broadcast to the whole server when a refine attempt at this level succeeds. (Default: false)
# BroadcastFailure Broadcast to the whole server when a refine attempt at this level fails. (Default: false)
# Chances: Success chance based on cost type. (Default: null)
# - Type Refinement cost type based on ore used.
# Rate Chance of success out of 0~10000. (Default: 0)
@@ -41,7 +43,7 @@
Header:
Type: REFINE_DB
Version: 1
Version: 2
Body:
- Group: Armor

View File

@@ -8272,7 +8272,7 @@ Body:
Hit: Single
HitCount: 1
Duration1: 60000
Duration2: 15000
Duration2: 30000
Requires:
SpCost: 20
Weapon:
@@ -8281,7 +8281,7 @@ Body:
Unit:
Id: Lullaby
Layout: 4
Interval: 6000
Interval: 4000
Target: Enemy
Flag:
Ensemble: true
@@ -9325,15 +9325,13 @@ Body:
Name: NPC_WEAPONBRAKER
Description: Break weapon
MaxLevel: 10
Type: Weapon
TargetType: Attack
TargetType: Self
Flags:
IsNpc: true
Range: 9
Hit: Single
HitCount: 1
Element: Weapon
Status: BrokenWeapon
Duration: 30000
Status: WeaponBreaker
- Id: 344
Name: NPC_ARMORBRAKE
Description: Break armor

File diff suppressed because it is too large Load Diff

View File

@@ -22,40 +22,32 @@
# Quest Settings
#
###########################################################################
# - Id Quest ID.
# Title Quest title.
# TimeLimit Amount of time before the quest expires. (Default: 0)
# Use a number following by "d" for day(s), "h" for hour(s), "mn" for minute(s), and "s" for second(s).
# Specify with "+" for how long until the quest expires.
# Specify without "+" for the exact time the quest expires using "d" (optional), [0-23]"h" (required), [0-59]"mn" (optional), [0-59]"s" (optional) format.
# Please note the number before "d" only shift the exact timer to the given day(s).
# Targets: Quest objective target. (Default: null)
# The target can be a couple of node Mob/Count or of Id/Race/Size/Element/MinLevel/MaxLevel.
# If Mob is supplied, Count is required and the other fields are ignored.
# If Id is supplied, at least one other field of Race/Size/Element/MinLevel/MaxLevel is required.
# If Id is supplied, Count is required for each new entry.
# - Mob Monster to kill (aegis monster name).
# Count Amount of monsters to kill. Set to 0 to skip the target on import.
# Id Unique target index for the quest Id. Requires a positive number.
# Race Monster race target (default All). Valid races are Angel, Brute, DemiHuman, Demon, Dragon, Fish, Formless, Insect, Plant, Undead, All.
# Size Monster size target (default All). Valid sizes are Small, Medium, Large, All.
# Element Monster element target (default All). Valid elements are Dark, Earth, Fire, Ghost, Holy, Neutral, Poison, Undead, Water, Wind, All.
# MinLevel Minimum monster level target. If not supplied but MaxLevel defined, MinLevel is 1. Set to 0 to ignore MinLevel on import. (Default: 0)
# MaxLevel Maximum monster level target. Set to 0 to ignore MaxLevel on import. (Default: 0)
# Location Map name where kills are counted. (Default any location)
# On normal maps only kills of permanently spawned monsters increase the counter.
# On instance maps all monster kills increase the counter.
# MapName Displayed map name in quest UI. (Default: empty string)
# Drops: Quest item drop targets. (Default: null)
# - Mob Monster to kill. 0 will apply to all monsters. (Default: 0)
# Item Item to drop.
# Count Amount of items that will drop. Non-stackable items default to 1. (Default: 1)
# Rate Item drop rate. (10000 = 100%)
# - Id Quest ID.
# Title Quest title.
# TimeLimit Amount of time before the quest expires. (Default: 0)
# Targets: Quest objective target. (Default: null)
# - Mob Name of monster to kill.
# Count Amount of monsters to kill. Set to 0 to skip the target on import.
# Id Unique target index for the quest Id. Requires a positive number.
# Race Monster race target. (Default: All)
# Size Monster size target. (Default: All)
# Element Monster element target. (Default: All)
# MinLevel Minimum monster level target. If not supplied but MaxLevel defined, MinLevel is 1. Set to 0 to ignore MinLevel on import. (Default: 0)
# MaxLevel Maximum monster level target. Set to 0 to ignore MaxLevel on import. (Default: 0)
# Location Map name where kills are counted. (Default: All)
# MapName Displayed map name in quest UI. (Default: empty string)
# MapMobTargets List of monster names. Only names in the list will increase the kill counter. Only active when Id is used. (Default: all monsters)
# <name>: <bool> Monster name and whether the monster is added or removed from the list.
# Drops: Quest item drop targets. (Default: null)
# - Mob Monster to kill. 0 will apply to all monsters. (Default: 0)
# Item Item to drop.
# Count Amount of items that will drop. Non-stackable items default to 1. (Default: 1)
# Rate Item drop rate. (10000 = 100%)
###########################################################################
Header:
Type: QUEST_DB
Version: 2
Version: 3
Footer:
Imports:

View File

@@ -1784,6 +1784,12 @@ Body:
Rewards:
TitleId: 1034
Score: 10
- Id: 130005 # TODO (Terra Gloria: give achievement when player visit the coronation ceremony)
Group: Chatting
Name: Who made the king
Rewards:
TitleID: 1046
Score: 10
- Id: 170000
Group: Chatting
Name: Song chamber is not an accident
@@ -1902,7 +1908,7 @@ Body:
Name: Elite Adventurer! (1)
Condition: " Class >= JOB_RUNE_KNIGHT && Class <= JOB_GUILLOTINE_CROSS "
Rewards:
Item: Abrasive_Box_10
Item: E_Abrasive_Box10
Script: " specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,30000,10; "
Score: 50
- Id: 200012
@@ -1910,7 +1916,7 @@ Body:
Name: Transcendentaler! (1)
Condition: " Class >= JOB_RUNE_KNIGHT_T && Class <= JOB_GUILLOTINE_CROSS_T "
Rewards:
Item: Abrasive_Box_10
Item: E_Abrasive_Box10
Script: " specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,30000,10; "
Score: 60
- Id: 200013
@@ -1918,7 +1924,7 @@ Body:
Name: Elite Adventurer! (2)
Condition: " Class >= JOB_ROYAL_GUARD && Class <= JOB_SHADOW_CHASER "
Rewards:
Item: Abrasive_Box_10
Item: E_Abrasive_Box10
Script: " specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,30000,10; "
Score: 50
- Id: 200014
@@ -1926,7 +1932,7 @@ Body:
Name: Transcendentaler! (2)
Condition: " Class >= JOB_ROYAL_GUARD_T && Class <= JOB_SHADOW_CHASER_T "
Rewards:
Item: Abrasive_Box_10
Item: E_Abrasive_Box10
Script: " specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,30000,10; "
Score: 60
- Id: 200015
@@ -1941,7 +1947,7 @@ Body:
Name: This is My way!
Condition: " Class == JOB_STAR_GLADIATOR || Class == JOB_SOUL_LINKER || Class == JOB_KAGEROU || Class == JOB_OBORO || Class == JOB_REBELLION "
Rewards:
Item: Abrasive_Box_10
Item: E_Abrasive_Box10
Script: " specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,30000,10; "
Score: 20
- Id: 200017
@@ -2021,7 +2027,7 @@ Body:
Name: Incarnation of Love and Hate
Condition: " BaseLevel == 99 && Class == JOB_NOVICE "
Rewards:
Item: Abrasive_Box_10
Item: E_Abrasive_Box10
Script: " specialeffect2 EF_BLESSING; sc_start SC_BLESSING,30000,10; "
Score: 30
- Id: 200030
@@ -2029,7 +2035,7 @@ Body:
Name: I really love it!
Condition: " BaseLevel == 99 && (Class >= JOB_SWORDMAN && Class <= JOB_THIEF) "
Rewards:
Item: Bubble_Gum_Box_10
Item: E_Bubble_Gum_Box
Script: " specialeffect2 EF_BLESSING; sc_start SC_BLESSING,30000,10; "
Score: 30
- Id: 200031
@@ -2037,30 +2043,38 @@ Body:
Name: Reborn in Valhalla!
Condition: " Class == JOB_NOVICE_HIGH "
Rewards:
# Item: Adventurer_Box_1
Item: Adventurer_Box_1
Script: " specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,30000,10; "
Score: 10
- Id: 200032
Group: Goal_Level
Name: The start of another adventure!
Condition: " BaseLevel == 100 "
#Rewards:
# Item: Rebeginer_Box_100
Rewards:
Item: Rebeginer_Box_100
Score: 10
- Id: 200033
Group: Goal_Level
Name: With a new mind!(1)
Condition: " BaseLevel == 170 && (Class >= JOB_RUNE_KNIGHT && Class <= JOB_GUILLOTINE_CROSS_T) "
#Rewards:
# Item: Costume_Ticket
Rewards:
Item: Costume_Ticket
Score: 50
- Id: 200034
Group: Goal_Level
Name: With a new mind!(2)
Condition: " BaseLevel == 170 && (Class >= JOB_ROYAL_GUARD && Class <= JOB_SHADOW_CHASER_T) "
#Rewards:
# Item: Costume_Ticket
Rewards:
Item: Costume_Ticket
Score: 50
- Id: 200035
Group: Goal_Level
Name: Level 200 achieved!
Condition: " BaseLevel == 200 "
Rewards:
Item: C_Magestic_Goat2
Script: " specialeffect2 EF_BLESSING; sc_start SC_BLESSING,30000,10; "
Score: 100
- Id: 220000
Group: Chatting_Create
Name: Community begin

View File

@@ -30,7 +30,9 @@
# Refine Required refine level.
# Chance Base chance of success out of 0~10000.
# Bonus Enchantgrade bonus. (Default: 0)
# Announce Announce if someone tries to increase the enchantgrade. (Default: true)
# AnnounceSuccess Announce on upgrade success. (Default: true)
# AnnounceFail Announce on upgrade failure. (Default: false)
# Announce Announce on upgrade success and failure.
# Catalyst: Catalyst item to increase chance of success.
# Item The item that can be used.
# AmountPerStep Amount of Item needed.
@@ -49,7 +51,7 @@
Header:
Type: ENCHANTGRADE_DB
Version: 1
Version: 2
Body:
- Type: Armor
@@ -98,6 +100,7 @@ Body:
Refine: 11
Chance: 5000
Bonus: 50
AnnounceFail: true
Catalyst:
Item: Blessed_Etel_Dust
AmountPerStep: 5
@@ -117,6 +120,7 @@ Body:
Refine: 11
Chance: 4000
Bonus: 100
AnnounceFail: true
Catalyst:
Item: Blessed_Etel_Dust
AmountPerStep: 7
@@ -178,6 +182,7 @@ Body:
Refine: 11
Chance: 5000
Bonus: 50
AnnounceFail: true
Catalyst:
Item: Blessed_Etel_Dust
AmountPerStep: 5
@@ -197,6 +202,7 @@ Body:
Refine: 11
Chance: 4000
Bonus: 100
AnnounceFail: true
Catalyst:
Item: Blessed_Etel_Dust
AmountPerStep: 7

View File

@@ -0,0 +1,43 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Reputation Database
###########################################################################
#
# Reputation Settings
#
###########################################################################
# - Id Client side index.
# Visibility Always = Always show
# Never = Never show
# Exist = Only show if greater than 0
###########################################################################
Header:
Type: REPUTATION_DB
Version: 1
Body:
- Id: 1
Visibility: Always
- Id: 2
Visibility: Always
- Id: 3
Visibility: Exist
- Id: 4
Visibility: Exist

View File

@@ -0,0 +1,51 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Reputation Group Database
###########################################################################
#
# Reputation Group Settings
#
###########################################################################
# - Id Client side group index.
# ScriptName Unused? Used for "ID" in client
# Name Visible name in window
# ReputeList List of Reputations
###########################################################################
Header:
Type: REPUTATION_GROUP_DB
Version: 1
Body:
- Id: 1
ScriptName: MonsterGroup1
Name: Monster Friends
ReputeList:
- 1
- 2
- Id: 2
ScriptName: Arunafelts
Name: Arunafeltz
ReputeList:
- 3
- Id: 3
ScriptName: Isgard
Name: Isgard
ReputeList:
- 4

View File

@@ -67,7 +67,7 @@ Body:
- Id: 3
Name: Orc's Memory
Enter:
Map: 1@orcs
Map: 1@orcs
X: 179
Y: 15
AdditionalMaps:
@@ -345,3 +345,33 @@ Body:
Map: 1@cor
X: 176
Y: 169
- Id: 44
Name: Half Moon In The Daylight
TimeLimit: 7200
Enter:
Map: 1@pop1
X: 47
Y: 133
AdditionalMaps:
1@pop2: true
1@pop3: true
- Id: 45
Name: Weekend Dungeon
TimeLimit: 3600
Enter:
Map: 1@md_pay
X: 240
Y: 29
- Id: 46
Name: Friday Dungeon
TimeLimit: 7200
Enter:
Map: 1@md_gef
X: 106
Y: 129
- Id: 47
Name: Poring Village
Enter:
Map: 1@begi
X: 100
Y: 22

File diff suppressed because it is too large Load Diff

View File

@@ -44,6 +44,7 @@
# EquipLevelMin Minimum required level to equip. (Default: 0)
# EquipLevelMax Maximum level that can equip. (Default: 0)
# Refineable If the item can be refined. (Default: false)
# Gradable If the item can be graded. (Default: false)
# View View sprite of an item. (Default: 0)
# AliasName Another item's AegisName that will be sent to the client instead of this item's AegisName. (Default: null)
# Flags: Item flags. (Default: null)
@@ -85,7 +86,7 @@
Header:
Type: ITEM_DB
Version: 2
Version: 3
Footer:
Imports:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

18096
db/re/item_enchant.yml Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

531
db/re/item_packages.yml Normal file
View File

@@ -0,0 +1,531 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Item Package Database
###########################################################################
#
# Item Package Settings
#
###########################################################################
# - Item Item that triggers Item Package Selection.
# Groups: Groups that can be selected.
# - Group Group ID that can be selected (has to match the client's LUA file).
# Items: Items that will be given out.
# - Item Item that will be given out.
# Amount Amount of the item. (Default: 1)
# To remove an item via import set amount to 0.
# RentalHours Rental time in hours. (Default: 0)
# Refine Refine level of the item. (Default: 0)
# RandomOptionGroup Name of the random option group that will be applied. (Default: none)
###########################################################################
Header:
Type: ITEM_PACKAGE_DB
Version: 1
Body:
- Item: Select_Example1
Groups:
- Group: 0
Items:
- Item: Cotton_Shirt
Refine: 7
# RandomOptionGroup: TODO <insert random option group name>
- Item: Shoes
Refine: 5
# RandomOptionGroup: TODO <insert random option group name>
- Item: Muffler
Refine: 3
# RandomOptionGroup: TODO <insert random option group name>
- Item: Event_Pierrot_Nose
RentalHours: 24
# RandomOptionGroup: TODO <insert random option group name>
- Group: 1
Items:
- Item: Red_Potion
Amount: 100
- Item: Orange_Potion
Amount: 50
- Item: White_Potion
Amount: 10
- Group: 2
Items:
- Item: Jellopy
Amount: 10
- Item: Hinalle
- Item: Yellow_Gemstone
Amount: 3
- Item: Azure_Jewel
- Item: Spore_Doll
Amount: 2
- Item: Select_Example2
Groups:
- Group: 0
Items:
- Item: Knife
Refine: 4
# RandomOptionGroup: TODO <insert random option group name>
- Item: Cotton_Shirt
Refine: 4
# RandomOptionGroup: TODO <insert random option group name>
- Item: Red_Potion
Amount: 100
- Item: Ring
RentalHours: 24
# RandomOptionGroup: TODO <insert random option group name>
- Group: 1
Items:
- Item: Tsurugi
Refine: 5
# RandomOptionGroup: TODO <insert random option group name>
- Item: Padded_Armor
Refine: 5
# RandomOptionGroup: TODO <insert random option group name>
- Item: Yellow_Potion
Amount: 50
- Group: 2
Items:
- Item: Sword
Refine: 20
# RandomOptionGroup: TODO <insert random option group name>
- Item: Guard
RentalHours: 168
Refine: 5
# RandomOptionGroup: TODO <insert random option group name>
- Item: White_Herb
Amount: 100
- Group: 3
Items:
- Item: Fabre_Card
- Item: Pupa_Card
- Item: Drops_Card
- Item: Poring__Card
- Item: Lunatic_Card
- Item: Pecopeco_Egg_Card
- Item: Picky_Card
- Item: Chonchon_Card
- Item: Wilow_Card
- Item: Picky__Card
- Item: Thief_Bug_Egg_Card
- Item: Andre_Egg_Card
- Item: Roda_Frog_Card
- Item: Condor_Card
- Item: Thief_Bug_Card
- Item: Savage_Babe_Card
- Item: Andre_Larva_Card
- Item: Hornet_Card
- Item: Farmiliar_Card
- Item: Rocker_Card
- Group: 4
Items:
- Item: Poring_Card
- Group: 5
Items:
- Item: LI_Nyangvine_Box3_26
Amount: 5
- Group: 6
Items:
- Item: C_Hair_Of_The_Strong
# RandomOptionGroup: TODO <insert random option group name>
- Item: C_Imp_Hat
# RandomOptionGroup: TODO <insert random option group name>
- Group: 7
Items:
- Item: C_Classical_Fhat
- Group: 8
Items:
- Item: Wing_Of_Fly
Amount: 3
RentalHours: 24
- Item: Wing_Of_Butterfly
Amount: 5
RentalHours: 168
- Item: Old_Blue_Box
RentalHours: 1
- Group: 9
Items:
- Item: Red_Potion
Amount: 10
- Item: Red_Potion
Amount: 5
- Item: Red_Potion
- Item: Red_Potion
Amount: 3
RentalHours: 1
- Group: 10
Items:
- Item: Guard_
- Item: Guard_
- Item: Guard_
- Group: 11
Items:
- Item: Orange_Potion
Amount: 800
- Item: Boost_Armor_Box
Groups:
- Group: 0
Items:
- Item: Atker_Plate
- Item: Atker_Manteau
- Item: Atker_Greave
- Item: Atker_Ring
- Item: Boost_Up_1
Amount: 3
- Group: 1
Items:
- Item: Ran_Suits
- Item: Ran_Manteau
- Item: Ran_Boots
- Item: Ran_Brooch
- Item: Boost_Up_1
Amount: 3
- Group: 2
Items:
- Item: Ele_Robe
- Item: Ele_Muffler
- Item: Ele_Shoes
- Item: Ele_Earing
- Item: Boost_Up_1
Amount: 3
- Group: 3
Items:
- Item: Defn_Robe
- Item: Defn_Muffler
- Item: Defn_Shoes
- Item: Defn_Earing
- Item: Boost_Up_1
Amount: 3
- Item: Special_Coin_Pack
Groups:
- Group: 0
Items:
- Item: EP17_1_EVT39
Amount: 3
- Item: EP17_1_EVT02
Amount: 18
- Group: 1
Items:
- Item: BarMealTicket
Amount: 20
- Group: 2
Items:
- Item: Ep18_Amethyst_Fragment
Amount: 20
- Group: 3
Items:
- Item: Ep19_Snow_Flower
Amount: 20
- Item: Metal_W_Box
Groups:
- Group: 0
Items:
- Item: Metal_Two_Hand_Sword
Refine: 7
- Group: 1
Items:
- Item: Metal_Lance
Refine: 7
- Group: 2
Items:
- Item: Metal_Mace
Refine: 7
- Group: 3
Items:
- Item: Metal_Two_Handed_Axe
Refine: 7
- Group: 4
Items:
- Item: Metal_Dagger
Refine: 7
- Group: 5
Items:
- Item: Metal_Book
Refine: 7
- Group: 6
Items:
- Item: Metal_Staff
Refine: 7
- Group: 7
Items:
- Item: Metal_Katar
Refine: 7
- Group: 8
Items:
- Item: Metal_Bow
Refine: 7
- Group: 9
Items:
- Item: Metal_Revolver
Refine: 7
- Group: 10
Items:
- Item: Metal_Foxtail
Refine: 7
- Item: Memento_Box
Groups:
- Group: 0
Items:
- Item: Booster_Mask_A
- Group: 1
Items:
- Item: Booster_Mask_B
- Group: 2
Items:
- Item: Booster_Mask_C
- Item: P_Memento_Box
Groups:
- Group: 0
Items:
- Item: Booster_Scarf_A
- Group: 1
Items:
- Item: Booster_Scarf_B
- Group: 2
Items:
- Item: Booster_Scarf_C
- Item: Booster_Hat_Box
Groups:
- Group: 0
Items:
- Item: C_Pretty_Rabbit_Hood_E
- Group: 1
Items:
- Item: C_Black_Cat_Hood_kr
- Group: 2
Items:
- Item: C_Squirrel_Ear_Hat_Kr
- Group: 3
Items:
- Item: C_Black_Moon_Cat_kr
- Item: Booster_Back_Box
Groups:
- Group: 0
Items:
- Item: C_School_Bag_RD_E
- Group: 1
Items:
- Item: C_School_Bag_BL
- Group: 2
Items:
- Item: C_School_Bag_BU
- Group: 3
Items:
- Item: C_School_Bag_PU
- Item: aegis_101470
Groups:
- Group: 0
Items:
- Item: Minus_Str
Amount: 6
- Group: 1
Items:
- Item: Minus_Agi
Amount: 6
- Group: 2
Items:
- Item: Minus_Vit
Amount: 6
- Group: 3
Items:
- Item: Minus_Int
Amount: 6
- Group: 4
Items:
- Item: Minus_Dex
Amount: 6
- Group: 5
Items:
- Item: Minus_Luk
Amount: 6
- Group: 6
Items:
- Item: Minus_Str
- Item: Minus_Agi
- Item: Minus_Vit
- Item: Minus_Int
- Item: Minus_Dex
- Item: Minus_Luk
- Item: aegis_101471
Groups:
- Group: 0
Items:
- Item: Fire_Bottle
Amount: 50
- Group: 1
Items:
- Item: Acid_Bottle
Amount: 50
- Group: 2
Items:
- Item: MenEater_Plant_Bottle
Amount: 50
- Group: 3
Items:
- Item: Coating_Bottle
Amount: 50
- Group: 4
Items:
- Item: Mini_Bottle
Amount: 50
- Item: aegis_101542
Groups:
- Group: 0
Items:
- Item: aegis_101543
- Group: 1
Items:
- Item: aegis_101544
- Group: 2
Items:
- Item: aegis_101545
- Group: 3
Items:
- Item: aegis_101546
- Item: aegis_101547
Groups:
- Group: 0
Items:
- Item: aegis_101548
- Group: 1
Items:
- Item: aegis_101549
- Group: 2
Items:
- Item: aegis_101550
- Group: 3
Items:
- Item: aegis_101551
- Item: aegis_101552
Groups:
- Group: 0
Items:
- Item: aegis_101553
- Group: 1
Items:
- Item: aegis_101554
- Item: aegis_101555
Groups:
- Group: 0
Items:
- Item: aegis_101556
- Group: 1
Items:
- Item: aegis_101557
- Item: aegis_101563
Groups:
- Group: 0
Items:
- Item: Ignis_CapK
- Group: 1
Items:
- Item: Phantom_Cap
- Group: 2
Items:
- Item: Stripe_Hat
- Group: 3
Items:
- Item: Clock_Casket_RD
- Group: 4
Items:
- Item: Large_Sorcerer_Crown
- Group: 5
Items:
- Item: Scorpio_Diadem_K
- Group: 6
Items:
- Item: Sagittarius_DiademK
- Item: aegis_101565
Groups:
- Group: 0
Items:
- Item: Class_Sha_R_M_Melee
- Group: 1
Items:
- Item: Class_Sha_R_M_Magic
- Group: 2
Items:
- Item: Skill_Sha_R_M_Melee
- Group: 3
Items:
- Item: Skill_Sha_R_M_Magic
- Item: aegis_101654
Groups:
- Group: 0
Items:
- Item: aegis_101655
- Group: 1
Items:
- Item: aegis_101656
- Item: aegis_101657
Groups:
- Group: 0
Items:
- Item: aegis_101658
- Group: 1
Items:
- Item: aegis_101659
- Group: 2
Items:
- Item: aegis_101660
- Group: 3
Items:
- Item: aegis_101661
- Item: aegis_101662
Groups:
- Group: 0
Items:
- Item: aegis_101663
- Group: 1
Items:
- Item: aegis_101664
- Item: aegis_101727
Groups:
- Group: 0
Items:
- Item: aegis_101717
- Group: 1
Items:
- Item: aegis_101718
- Group: 2
Items:
- Item: aegis_101719
- Group: 3
Items:
- Item: aegis_101720
- Item: aegis_101728
Groups:
- Group: 0
Items:
- Item: aegis_101721
- Group: 1
Items:
- Item: aegis_101722
- Group: 2
Items:
- Item: aegis_101723
- Group: 3
Items:
- Item: aegis_101724
- Item: aegis_101729
Groups:
- Group: 0
Items:
- Item: aegis_101725
- Group: 1
Items:
- Item: aegis_101726

View File

@@ -83,7 +83,7 @@ Body:
- Id: 13
Option: VAR_ATKPERCENT
Script: |
bonus2 bAddClass,Class_All,getrandomoptinfo(ROA_VALUE);
bonus bAtkRate,getrandomoptinfo(ROA_VALUE);
- Id: 14
Option: VAR_MAGICATKPERCENT
Script: |

6894
db/re/item_reform.yml Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

44
db/re/map_drops.yml Normal file
View File

@@ -0,0 +1,44 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Map Drop Database
###########################################################################
#
# Map Drop Settings
#
###########################################################################
# - Map Name of the map.
# GlobalDrops Drops for all monsters on this map. (Default: empty)
# These drops are unaffected by server drop rate and cannot be stolen.
# - Index Unique index of the drop.
# Item Item name.
# Rate Drop rate of item.
# RandomOptionGroup Random Option Group applied to item on drop. (Default: None)
# SpecificDrops Drops for specific monsters on this map. (Default: empty)
# - Monster Monster name.
# Drops Drops for this specific monster. (Default: empty)
# These drops are unaffected by server drop rate and cannot be stolen.
# - Index Unique index of the drop.
# Item Item name.
# Rate Drop rate of item.
# RandomOptionGroup Random Option Group applied to item on drop. (Default: None)
###########################################################################
Header:
Type: MAP_DROP_DB
Version: 1

View File

@@ -611,3 +611,69 @@ Body:
Skills:
- Name: MER_INVINCIBLEOFF2
MaxLevel: 1
- Id: 3569
AegisName: POPE_MD_H_MERC_NORMAL
Name: Official Pope
Level: 120
Hp: 120000
Sp: 200
Attack: 123
Defense: 999
MagicDefense: 105
Str: 2
Vit: 400
Int: 10
Dex: 110
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Demihuman
Element: Neutral
ElementLevel: 3
WalkSpeed: 100
AttackDelay: 576
AttackMotion: 750
DamageMotion: 384
Skills:
- Name: MER_MAGNIFICAT
MaxLevel: 1
- Name: MER_DECAGI
MaxLevel: 1
- Name: MER_TENDER
MaxLevel: 1
- Name: MER_BLESSING
MaxLevel: 3
- Id: 3570
AegisName: POPE_MD_H_MERC_CASUAL
Name: Casual Pope
Level: 120
Hp: 120000
Sp: 200
Attack: 123
Defense: 999
MagicDefense: 105
Str: 2
Vit: 400
Int: 10
Dex: 110
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Demihuman
Element: Neutral
ElementLevel: 3
WalkSpeed: 100
AttackDelay: 576
AttackMotion: 750
DamageMotion: 384
Skills:
- Name: MER_MAGNIFICAT
MaxLevel: 1
- Name: MER_DECAGI
MaxLevel: 1
- Name: MER_TENDER
MaxLevel: 1
- Name: MER_BLESSING
MaxLevel: 3

Some files were not shown because too many files have changed in this diff Show More