Compare commits

...

85 Commits

Author SHA1 Message Date
aleos
60cff8aa0c Fixes an issue with weapon swapping and statuses
* Resolves statuses ending early when swapping weapons of the same type.
* Removes a duplicate check.
Thanks to @Aristeus09!
2022-09-27 11:24:12 -04: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
215 changed files with 59450 additions and 4090 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. -->

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

@@ -0,0 +1,79 @@
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.
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

@@ -22,11 +22,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-20.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-latest]
# 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

@@ -22,8 +22,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-20.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-latest]
steps:

View File

@@ -22,8 +22,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-20.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']

View File

@@ -22,8 +22,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-20.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']

View File

@@ -22,8 +22,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-20.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']

View File

@@ -22,8 +22,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-20.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']

View File

@@ -25,8 +25,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-20.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']

18
.gitignore vendored
View File

@@ -1,6 +1,5 @@
/autom4te.cache/output.0
/autom4te.cache/requests
/autom4te.cache/traces.0
autom4te.cache/
#Global
.vscode
.Apple*
@@ -42,6 +41,7 @@ Thumbs.db
/map-server
/mapcache
/nbproject
/web-server
/yaml2sql
/yamlupgrade
@@ -56,6 +56,10 @@ Thumbs.db
# /3rdparty/yaml-cpp/
/3rdparty/yaml-cpp/Makefile
# /3rdparty/httplib/
/3rdparty/httplib/Makefile
/3rdparty/httplib/obj
# /db/
/db/import
@@ -92,6 +96,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,6 +133,7 @@ Thumbs.db
/mapserv.bat
/runserver.bat
/serv.bat
/webserv.bat
/yaml2sql.bat
/yamlupgrade.bat
@@ -135,3 +144,6 @@ Thumbs.db
# CMakeFiles
/CMakeFiles/
# generated files
generated

View File

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

1
3rdparty/README.txt vendored
View File

@@ -1,6 +1,7 @@
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)

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>

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

@@ -61,7 +61,7 @@ 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"
@@ -89,7 +89,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
@@ -117,7 +117,7 @@ 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
@@ -128,7 +128,7 @@ case $1 in
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
@@ -136,7 +136,7 @@ case $1 in
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
@@ -158,20 +158,20 @@ case $1 in
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

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>

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.

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

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,44 @@ 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
//------------------------- 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

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

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

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

@@ -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,30 @@ 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
//======================================================================================
// - Other/Extra maps -

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

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

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 /

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

View File

@@ -79,6 +79,7 @@ Body:
DurationLookup: NPC_PETRIFYATTACK
States:
NoCast: true
NoAttack: true
Opt1: StoneWait
Flags:
SendOption: true
@@ -352,6 +353,8 @@ Body:
DurationLookup: AS_ENCHANTPOISON
CalcFlags:
Atk_Ele: true
Flags:
RemoveOnUnequipWeapon: true
End:
Aspersio: true
Fireweapon: true
@@ -494,6 +497,7 @@ Body:
Earthweapon: true
Shadowweapon: true
Ghostweapon: true
Enchantarms: true
- Status: Benedictio
Icon: EFST_BENEDICTIO
DurationLookup: PR_BENEDICTIO
@@ -519,8 +523,6 @@ Body:
FailedMado: true
NoSave: true
SuperNoviceAngel: true
Fail:
Offertorium: true
- Status: Gloria
Icon: EFST_GLORIA
DurationLookup: PR_GLORIA
@@ -751,6 +753,7 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
NoSave: true
- Status: Stripshield
Icon: EFST_NOEQUIPSHIELD
DurationLookup: RG_STRIPSHIELD
@@ -762,6 +765,7 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
NoSave: true
- Status: Striparmor
Icon: EFST_NOEQUIPARMOR
DurationLookup: RG_STRIPARMOR
@@ -773,6 +777,7 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
NoSave: true
- Status: Striphelm
Icon: EFST_NOEQUIPHELM
DurationLookup: RG_STRIPHELM
@@ -784,6 +789,7 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
NoSave: true
- Status: Cp_Weapon
Icon: EFST_PROTECTWEAPON
DurationLookup: AM_CP_WEAPON
@@ -931,6 +937,7 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
NoSave: true
- Status: Explosionspirits
Icon: EFST_EXPLOSIONSPIRITS
DurationLookup: MO_EXPLOSIONSPIRITS
@@ -942,6 +949,7 @@ Body:
Flags:
Debuff: true
NoClearance: true
NoSave: true
- Status: Combo
Flags:
NoClearbuff: true
@@ -978,7 +986,7 @@ Body:
CalcFlags:
Atk_Ele: true
Flags:
NoRemoveOnDead: true
RemoveOnUnequipWeapon: true
End:
Encpoison: true
Aspersio: true
@@ -993,7 +1001,7 @@ Body:
CalcFlags:
Atk_Ele: true
Flags:
NoRemoveOnDead: true
RemoveOnUnequipWeapon: true
End:
Encpoison: true
Aspersio: true
@@ -1008,7 +1016,7 @@ Body:
CalcFlags:
Atk_Ele: true
Flags:
NoRemoveOnDead: true
RemoveOnUnequipWeapon: true
End:
Encpoison: true
Aspersio: true
@@ -1023,7 +1031,7 @@ Body:
CalcFlags:
Atk_Ele: true
Flags:
NoRemoveOnDead: true
RemoveOnUnequipWeapon: true
End:
Encpoison: true
Aspersio: true
@@ -1325,6 +1333,7 @@ Body:
Flags:
Debuff: true
NoClearance: true
NoSave: true
End:
Blessing: true
Increaseagi: true
@@ -5445,6 +5454,7 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
SendVal1: true
NoForcedEnd: true
- Status: Angel_Protect
Icon: EFST_ANGEL_PROTECT
@@ -6106,6 +6116,7 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
SendVal1: true
NoForcedEnd: true
- Status: Ljosalfar
Icon: EFST_LJOSALFAR

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

View File

@@ -26140,7 +26140,7 @@ Body:
SubGroups:
- SubGroup: 0
List:
- Item: Sea_Otter_Mini_Fan
- Item: SeeOtter_Fan
RandomOptionGroup: FAN_UPGRADE_KIT
- Group: SUIT_UPGRADE_KIT
SubGroups:
@@ -26637,9 +26637,9 @@ Body:
SubGroups:
- SubGroup: 1
List:
- Item: S_Almighty_Earring
- Item: S_AllMighty_Earring
Rate: 1
- Item: S_Almighty_Pendant
- Item: S_AllMighty_Pendant
Rate: 1
- Group: GEMSTONESHADOW_MIX
SubGroups:
@@ -26748,12 +26748,12 @@ Body:
SubGroups:
- SubGroup: 0
List:
- Item: S_Kingbird_Ancient_Armor
- Item: S_KingbirdAncient_Armor
- Group: CRITICALHIT_MIX
SubGroups:
- SubGroup: 0
List:
- Item: S_Cri_Hit_Armor
- Item: S_CriticalHit_Armor
- Group: BS_ITEM_M_S_2
SubGroups:
- SubGroup: 0
@@ -26907,7 +26907,7 @@ Body:
List:
- Item: SurviveOrb_K
Rate: 1
- Item: Survive_Circlet_
- Item: Survive_Circlet_K
Rate: 1
- Group: BS_ITEM_M_S_28
SubGroups:
@@ -27509,7 +27509,7 @@ Body:
SubGroups:
- SubGroup: 0
List:
- Item: Wickebines_Black_Cat_Ears
- Item: Whikebain_Ears_K
- Group: ENCHANTSTONE_RECIPE_9M
SubGroups:
- SubGroup: 1
@@ -27850,9 +27850,9 @@ Body:
Rate: 4
- Item: S_Bearer's_Shoes_II
Rate: 4
- Item: S_Almighty_Earring
- Item: S_AllMighty_Earring
Rate: 4
- Item: S_Almighty_Pendant
- Item: S_AllMighty_Pendant
Rate: 4
- Item: S_All_Race_Shoes
Rate: 4
@@ -27920,7 +27920,7 @@ Body:
Rate: 4
- Item: S_Hard_Champion_Shoes
Rate: 4
- Item: S_Kingbird_Ancient_Armor
- Item: S_KingbirdAncient_Armor
Rate: 4
- Item: S_Rebellion_Armor
Rate: 4
@@ -29413,14 +29413,14 @@ Body:
SubGroups:
- SubGroup: 0
List:
- Item: Up_Thousand_Sun
- Item: Up_OneSkyOneSun
RefineMinimum: 7
RefineMaximum: 7
- Group: SPIRIT_PENDULUM_CUBE
SubGroups:
- SubGroup: 0
List:
- Item: Up_Spirit_Pendulum_
- Item: Up_SoulWeight
RefineMinimum: 7
RefineMaximum: 7
- Group: CRIMSON_ROSE_CUBE
@@ -29441,21 +29441,21 @@ Body:
SubGroups:
- SubGroup: 0
List:
- Item: Up_Golden_Lord_Launcher
- Item: Up_Golden_L_Launcher
RefineMinimum: 7
RefineMaximum: 7
- Group: THE_BLACK_CUBE
SubGroups:
- SubGroup: 0
List:
- Item: Up_The_Black
- Item: Up_The_Black_Gatling
RefineMinimum: 7
RefineMaximum: 7
- Group: DEMON_SLAYER_SHOT_CUBE
SubGroups:
- SubGroup: 0
List:
- Item: Up_Demon_Slayer_Shot
- Item: Up_Demon_S_Shot
RefineMinimum: 7
RefineMaximum: 7
- Group: RUNE_CRAFT_MATERIALS
@@ -31074,7 +31074,7 @@ Body:
Rate: 100
- Item: Avenger
Rate: 100
- Item: Aeon_Staff
- Item: Iron_Staff
Rate: 100
- Item: Oriental_Sword
Rate: 100
@@ -31125,25 +31125,353 @@ Body:
List:
- Item: Blacksmith_Blessing
Amount: 2
- Group: Bs_Item_M_S_53
- Group: BS_ITEM_M_S_53
SubGroups:
- SubGroup: 0
List:
- Item: Shadow_Refine_Hammer
Amount: 2
- Group: Bs_Item_M_S_54
- Group: BS_ITEM_M_S_54
SubGroups:
- SubGroup: 0
List:
- Item: Mightysoul_Essence
- Group: Bs_Item_M_S_55
- Group: BS_ITEM_M_S_55
SubGroups:
- SubGroup: 0
List:
- Item: M_Dimension_Essence
- Group: Bs_Item_M_S_56
- Group: BS_ITEM_M_S_56
SubGroups:
- SubGroup: 0
List:
- Item: Enchant_Ticket
Amount: 2
- Group: ENCHANT_STONE_BOX28
SubGroups:
- SubGroup: 1
List:
- Item: M_PATKStone_Robe
Rate: 10
- Item: R_PATKStone_Robe
Rate: 10
- Item: POWStone_Robe_D
Rate: 10
- Item: ConStone_Robe_D
Rate: 10
- Item: Critical_Stone_Robe
Rate: 20
- Item: SPdrainStone_Robe_D
Rate: 40
- Item: SPdrainStone_Top
Rate: 80
- Item: CastStone_Robe
Rate: 80
- Item: ASPDStone_Top
Rate: 150
- Item: ASPDStone_Robe_D
Rate: 80
- Item: HPdrainStone_Robe_D
Rate: 80
- Item: GreenFloor_Bottom
Rate: 160
- Item: ExplodingEffect_Middle
Rate: 160
- Item: StarEmperorStone_Garment
Rate: 80
- Item: GunslingerStone_Robe
Rate: 80
- Item: SoulReaperStone_Robe
Rate: 80
- Item: StarStone_Top3
Rate: 80
- Item: StarStone_Middle3
Rate: 80
- Item: StarStone_Bottom3
Rate: 80
- Item: RebelStone_Top3
Rate: 80
- Item: RebelStone_Middle3
Rate: 80
- Item: RebelStone_Bottom3
Rate: 80
- Item: ReaperStone_Top3
Rate: 80
- Item: ReaperStone_Middle3
Rate: 80
- Item: ReaperStone_Bottom3
Rate: 80
- Item: aegis_100465
Rate: 160
- Item: aegis_100495
Rate: 160
- Item: Magic_Stone_Top
Rate: 240
- Item: Magic_Stone_Middle
Rate: 240
- Item: Magic_Stone_Bottom
Rate: 240
- Item: StarGladiatorStone_Top
Rate: 150
- Item: StarGladiatorStone_Middle
Rate: 150
- Item: StarGladiatorStone_Bottom
Rate: 150
- Item: GunslingerStone_Top
Rate: 150
- Item: GunslingerStone_Middle
Rate: 150
- Item: GunslingerStone_Bottom
Rate: 150
- Item: SoulLinkerStone_Top
Rate: 150
- Item: SoulLinkerStone_Middle
Rate: 150
- Item: SoulLinkerStone_Bottom
Rate: 150
- Item: Melee_Stone_Top
Rate: 240
- Item: Melee_Stone_Middle
Rate: 240
- Item: Melee_Stone_Bottom
Rate: 240
- Item: Range_Stone_Top
Rate: 240
- Item: Range_Stone
Rate: 240
- Item: Range_Stone_Bottom
Rate: 240
- Item: aegis_100496
Rate: 360
- Item: aegis_100497
Rate: 360
- Item: aegis_100498
Rate: 360
- Item: aegis_100499
Rate: 360
- Item: aegis_100500
Rate: 360
- Item: aegis_100501
Rate: 360
- Item: CastingStone_Top
Rate: 360
- Item: CastingStone_Middle
Rate: 360
- Item: CastingStone_Bottom
Rate: 360
- Item: Critical_Stone
Rate: 360
- Item: Critical_Stone_Top
Rate: 360
- Item: Critical_Stone_Bottom
Rate: 360
- Group: S_FULLPENE_EARRING
SubGroups:
- SubGroup: 0
List:
- Item: S_FullPene_Earring
RefineMinimum: 7
RefineMaximum: 10
- Group: S_FULLPENE_PENDANT
SubGroups:
- SubGroup: 0
List:
- Item: S_FullPene_Pendant
RefineMinimum: 7
RefineMaximum: 10
- Group: S_FULLPENE_ARMOR
SubGroups:
- SubGroup: 0
List:
- Item: S_FullPene_Armor
RefineMinimum: 7
RefineMaximum: 10
- Group: S_FULLPENE_SHOES
SubGroups:
- SubGroup: 0
List:
- Item: S_FullPene_Shoes
RefineMinimum: 7
RefineMaximum: 10
- Group: S_FULLTEMP_EARRING
SubGroups:
- SubGroup: 0
List:
- Item: S_FullTemp_Earring
RefineMinimum: 7
RefineMaximum: 10
- Group: S_FULLTEMP_PENDANT
SubGroups:
- SubGroup: 0
List:
- Item: S_FullTemp_Pendant
RefineMinimum: 7
RefineMaximum: 10
- Group: S_FULLTEMP_ARMOR
SubGroups:
- SubGroup: 0
List:
- Item: S_FullTemp_Armor
RefineMinimum: 7
RefineMaximum: 10
- Group: S_FULLTEMP_SHOES
SubGroups:
- SubGroup: 0
List:
- Item: S_FullTemp_Shoes
RefineMinimum: 7
RefineMaximum: 10
- Group: S_DURABLE_WEAPON
SubGroups:
- SubGroup: 0
List:
- Item: S_Durable_Weapon
RefineMinimum: 7
RefineMaximum: 10
- Group: S_DURABLE_SHIELD
SubGroups:
- SubGroup: 0
List:
- Item: S_Durable_Shield
RefineMinimum: 7
RefineMaximum: 10
- Group: S_CLEVER_WEAPON
SubGroups:
- SubGroup: 0
List:
- Item: S_Clever_Weapon
RefineMinimum: 7
RefineMaximum: 10
- Group: S_CLEVER_SHIELD
SubGroups:
- SubGroup: 0
List:
- Item: S_Clever_Shield
RefineMinimum: 7
RefineMaximum: 10
- Group: S_ALLMIGHTY_EARRING
SubGroups:
- SubGroup: 0
List:
- Item: S_AllMighty_Earring
RefineMinimum: 7
RefineMaximum: 10
- Group: S_ALLMIGHTY_PENDANT
SubGroups:
- SubGroup: 0
List:
- Item: S_AllMighty_Pendant
RefineMinimum: 7
RefineMaximum: 10
- Group: S_TRUEGEM_EARRING
SubGroups:
- SubGroup: 0
List:
- Item: S_TrueGem_Earring
RefineMinimum: 7
RefineMaximum: 10
- Group: S_TRUEGEM_PENDANT
SubGroups:
- SubGroup: 0
List:
- Item: S_TrueGem_Pendant
RefineMinimum: 7
RefineMaximum: 10
- Group: S_TRUEGEM_SHOES
SubGroups:
- SubGroup: 0
List:
- Item: S_TrueGem_Shoes
RefineMinimum: 7
RefineMaximum: 10
- Group: S_TRUEGEM_ARMOR
SubGroups:
- SubGroup: 0
List:
- Item: S_TrueGem_Armor
RefineMinimum: 7
RefineMaximum: 10
- Group: S_PERFECTSIZE_WEAPON
SubGroups:
- SubGroup: 0
List:
- Item: S_PerfectSize_Weapon
RefineMinimum: 7
RefineMaximum: 10
- Group: S_PERFECTSIZE_ARMOR
SubGroups:
- SubGroup: 0
List:
- Item: S_PerfectSize_Armor
RefineMinimum: 7
RefineMaximum: 10
- Group: S_M_MAMMOTH_EARRING
SubGroups:
- SubGroup: 0
List:
- Item: S_M_Mammoth_Earring
RefineMinimum: 7
RefineMaximum: 10
- Group: S_M_MAMMOTH_PENDANT
SubGroups:
- SubGroup: 0
List:
- Item: S_M_Mammoth_Pendant
RefineMinimum: 7
RefineMaximum: 10
- Group: S_M_MAMMOTH_ARMOR
SubGroups:
- SubGroup: 0
List:
- Item: S_M_Mammoth_Armor
RefineMinimum: 7
RefineMaximum: 10
- Group: S_M_MAMMOTH_SHOES
SubGroups:
- SubGroup: 0
List:
- Item: S_M_Mammoth_Shoes
RefineMinimum: 7
RefineMaximum: 10
- Group: S_SPELLCASTER_EARRING
SubGroups:
- SubGroup: 0
List:
- Item: S_SpellCaster_Earring
RefineMinimum: 7
RefineMaximum: 10
- Group: S_SPELLCASTER_PENDANT
SubGroups:
- SubGroup: 0
List:
- Item: S_SpellCaster_Pendant
RefineMinimum: 7
RefineMaximum: 10
- Group: S_SPELLCASTER_ARMOR
SubGroups:
- SubGroup: 0
List:
- Item: S_SpellCaster_Armor
RefineMinimum: 7
RefineMaximum: 10
- Group: S_SPELLCASTER_SHOES
SubGroups:
- SubGroup: 0
List:
- Item: S_SpellCaster_Shoes
RefineMinimum: 7
RefineMaximum: 10
- Group: S_ABSORB_WEAPON
SubGroups:
- SubGroup: 0
List:
- Item: S_Absorb_Weapon
RefineMinimum: 7
RefineMaximum: 10
- Group: S_ABSORB_SHIELD
SubGroups:
- SubGroup: 0
List:
- Item: S_Absorb_Shield
RefineMinimum: 7
RefineMaximum: 10

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: Attacker_Booster_Plate_
- Item: Attacker_Booster_Manteau_
- Item: Attacker_Booster_Greaves_
- Item: Attacker_Booster_Ring
- Item: Boost_Up_1
Amount: 3
- Group: 1
Items:
- Item: Ranger_Booster_Suits_
- Item: Ranger_Booster_Manteau_
- Item: Ranger_Booster_Boots_
- Item: Range_Booster_Brooch
- Item: Boost_Up_1
Amount: 3
- Group: 2
Items:
- Item: Elemental_Booster_Robe_
- Item: Elemental_Booster_Muffler_
- Item: Elemental_Booster_Shoes_
- Item: Elemental_Booster_Earring
- Item: Boost_Up_1
Amount: 3
- Group: 3
Items:
- Item: Defender_Booster_Robe_
- Item: Defender_Booster_Muffler_
- Item: Defender_Booster_Shoes_
- Item: Defender_Booster_Earring
- 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

View File

@@ -364,8 +364,8 @@ Body:
- Item: S_Gemstone_Shield_II
- Item: S_Bearer's_Armor_II
- Item: S_Bearer's_Shoes_II
- Item: S_Almighty_Earring
- Item: S_Almighty_Pendant
- Item: S_AllMighty_Earring
- Item: S_AllMighty_Pendant
- Item: S_Tempest_Shield
- Item: S_Tempest_Shoes
- Item: S_Magic_Executioner_Holy_Water_Armor
@@ -416,8 +416,8 @@ Body:
- Item: S_Magical_Armor
- Item: S_Immune_Athena_Shield
- Item: S_Hard_Champion_Shoes
- Item: S_Kingbird_Ancient_Armor
- Item: S_Cri_Hit_Armor
- Item: S_KingbirdAncient_Armor
- Item: S_CriticalHit_Armor
- Item: S_Rebellion_Armor
- Item: S_Kagerou_Armor
- Item: S_Oboro_Armor
@@ -1853,7 +1853,7 @@ Body:
- Item: Fan_Upgrade_Kit
RewardGroup: FAN_UPGRADE_KIT
Requirements:
- Item: Sea_Otter_Mini_Fan
- Item: SeeOtter_Fan
- Item: Suit_Upgrade_Kit
RewardGroup: SUIT_UPGRADE_KIT
Requirements:
@@ -3202,7 +3202,7 @@ Body:
RewardGroup: IRON_STAFF_CUBE
MinimumRefine: 9
Requirements:
- Item: Aeon_Staff
- Item: Iron_Staff
- Item: Blue_Crystal_Staff_Cube
RewardGroup: BLUE_CRYSTAL_STAFF_CUBE
MinimumRefine: 9
@@ -3696,8 +3696,8 @@ Body:
# - Item: S_Gemstone_Shield_II
# - Item: S_Bearer's_Armor_II
# - Item: S_Bearer's_Shoes_II
# - Item: S_Almighty_Earring
# - Item: S_Almighty_Pendant
# - Item: S_AllMighty_Earring
# - Item: S_AllMighty_Pendant
# - Item: S_Tempest_Shield
# - Item: S_Tempest_Shoes
# - Item: S_Magic_Executioner_Holy_Water_Armor
@@ -3748,8 +3748,8 @@ Body:
# - Item: S_Magical_Armor
# - Item: S_Immune_Athena_Shield
# - Item: S_Hard_Champion_Shoes
# - Item: S_Kingbird_Ancient_Armor
# - Item: S_Cri_Hit_Armor
# - Item: S_KingbirdAncient_Armor
# - Item: S_CriticalHit_Armor
# - Item: S_Rebellion_Armor
# - Item: S_Kagerou_Armor
# - Item: S_Oboro_Armor

View File

@@ -494,8 +494,8 @@ Body:
- Item: S_Gemstone_Shield_II
- Item: S_Bearer's_Armor_II
- Item: S_Bearer's_Shoes_II
- Item: S_Almighty_Earring
- Item: S_Almighty_Pendant
- Item: S_AllMighty_Earring
- Item: S_AllMighty_Pendant
- Item: S_All_Race_Shoes
- Item: S_All_Race_Shield
- Item: S_Blitz_Weapon
@@ -550,8 +550,8 @@ Body:
- Item: S_Magical_Armor
- Item: S_Immune_Athena_Shield
- Item: S_Hard_Champion_Shoes
- Item: S_Kingbird_Ancient_Armor
- Item: S_Cri_Hit_Armor
- Item: S_KingbirdAncient_Armor
- Item: S_CriticalHit_Armor
- Item: S_Thief_earring
- Item: S_Archer_earring
- Item: S_Rebellion_Armor
@@ -1226,8 +1226,8 @@ Body:
- Item: S_Gemstone_Shield_II
- Item: S_Bearer's_Armor_II
- Item: S_Bearer's_Shoes_II
- Item: S_Almighty_Earring
- Item: S_Almighty_Pendant
- Item: S_AllMighty_Earring
- Item: S_AllMighty_Pendant
- Item: S_All_Race_Shoes
- Item: S_All_Race_Shield
- Item: S_Blitz_Weapon
@@ -1282,8 +1282,8 @@ Body:
- Item: S_Magical_Armor
- Item: S_Immune_Athena_Shield
- Item: S_Hard_Champion_Shoes
- Item: S_Kingbird_Ancient_Armor
- Item: S_Cri_Hit_Armor
- Item: S_KingbirdAncient_Armor
- Item: S_CriticalHit_Armor
- Item: S_Tempest_Weapon
- Item: S_Tempest_Armor
- Item: S_PerfectSize_Weapon
@@ -2036,8 +2036,8 @@ Body:
- Item: S_Gemstone_Shield_II
- Item: S_Bearer's_Armor_II
- Item: S_Bearer's_Shoes_II
- Item: S_Almighty_Earring
- Item: S_Almighty_Pendant
- Item: S_AllMighty_Earring
- Item: S_AllMighty_Pendant
- Item: S_All_Race_Shoes
- Item: S_All_Race_Shield
- Item: S_Blitz_Weapon
@@ -2092,8 +2092,8 @@ Body:
- Item: S_Magical_Armor
- Item: S_Immune_Athena_Shield
- Item: S_Hard_Champion_Shoes
- Item: S_Kingbird_Ancient_Armor
- Item: S_Cri_Hit_Armor
- Item: S_KingbirdAncient_Armor
- Item: S_CriticalHit_Armor
- Item: S_Thief_earring
- Item: S_Archer_earring
- Item: S_Rebellion_Armor
@@ -2496,7 +2496,7 @@ Body:
- Item: Magic_Sword
- Item: Sword_Of_Bluefire
- Item: Avenger
- Item: Aeon_Staff
- Item: Iron_Staff
- Item: Oriental_Sword
- Item: Undine_Spear_K
- Item: Exoricists_Bible_
@@ -2554,12 +2554,12 @@ Body:
- Item: Up_Fog_Dew_Sword
- Item: Up_Humma_Clear
- Item: Up_Master_Soul_Rifle
- Item: Up_Golden_Lord_Launcher
- Item: Up_The_Black
- Item: Up_Demon_Slayer_Shot
- Item: Up_Golden_L_Launcher
- Item: Up_The_Black_Gatling
- Item: Up_Demon_S_Shot
- Item: Up_Crimson_Rose
- Item: Up_Thousand_Sun
- Item: Up_Spirit_Pendulum_
- Item: Up_OneSkyOneSun
- Item: Up_SoulWeight
- Item: Ancient_Hero_Wisdom
RandomOptionGroup: ANCIENT_HERO_WISDOM
TargetItems:
@@ -2570,7 +2570,7 @@ Body:
- Item: Magic_Sword
- Item: Sword_Of_Bluefire
- Item: Avenger
- Item: Aeon_Staff
- Item: Iron_Staff
- Item: Oriental_Sword
- Item: Undine_Spear_K
- Item: Exoricists_Bible_
@@ -2628,12 +2628,12 @@ Body:
- Item: Up_Fog_Dew_Sword
- Item: Up_Humma_Clear
- Item: Up_Master_Soul_Rifle
- Item: Up_Golden_Lord_Launcher
- Item: Up_The_Black
- Item: Up_Demon_Slayer_Shot
- Item: Up_Golden_L_Launcher
- Item: Up_The_Black_Gatling
- Item: Up_Demon_S_Shot
- Item: Up_Crimson_Rose
- Item: Up_Thousand_Sun
- Item: Up_Spirit_Pendulum_
- Item: Up_OneSkyOneSun
- Item: Up_SoulWeight
- Item: Boost_Up_1
ResultRefine: 10
MaximumRefine: 9
@@ -3881,7 +3881,7 @@ Body:
- Item: Magic_Sword
- Item: Sword_Of_Bluefire
- Item: Avenger
- Item: Aeon_Staff
- Item: Iron_Staff
- Item: Oriental_Sword
- Item: Undine_Spear_K
- Item: Exoricists_Bible_
@@ -4215,12 +4215,12 @@ Body:
# - Item: Up_Fog_Dew_Sword
# - Item: Up_Humma_Clear
# - Item: Up_Master_Soul_Rifle
# - Item: Up_Golden_Lord_Launcher
# - Item: Up_The_Black
# - Item: Up_Demon_Slayer_Shot
# - Item: Up_Golden_L_Launcher
# - Item: Up_The_Black_Gatling
# - Item: Up_Demon_S_Shot
# - Item: Up_Crimson_Rose
# - Item: Up_Thousand_Sun
# - Item: Up_Spirit_Pendulum_
# - Item: Up_OneSkyOneSun
# - Item: Up_SoulWeight
# - Item: Great_Hero_Wisdom
# TargetItems:
# - Item: Up_Oriental_Sword
@@ -4252,12 +4252,12 @@ Body:
# - Item: Up_Fog_Dew_Sword
# - Item: Up_Humma_Clear
# - Item: Up_Master_Soul_Rifle
# - Item: Up_Golden_Lord_Launcher
# - Item: Up_The_Black
# - Item: Up_Demon_Slayer_Shot
# - Item: Up_Golden_L_Launcher
# - Item: Up_The_Black_Gatling
# - Item: Up_Demon_S_Shot
# - Item: Up_Crimson_Rose
# - Item: Up_Thousand_Sun
# - Item: Up_Spirit_Pendulum_
# - Item: Up_OneSkyOneSun
# - Item: Up_SoulWeight
- Item: Vampire_Box_IL
ResultRefineMinimum: 7
ResultRefineMaximum: 10

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

@@ -75054,7 +75054,7 @@ Body:
DamageMotion: 420
Ai: 04
Drops:
- Item: Shard_of_Gray
- Item: Gray_Shard
Rate: 1000
- Item: Decayed_Nail
Rate: 3000
@@ -75088,7 +75088,7 @@ Body:
DamageMotion: 384
Ai: 04
Drops:
- Item: Shard_of_Gray
- Item: Gray_Shard
Rate: 1000
- Item: Mementos
Rate: 2500
@@ -75126,7 +75126,7 @@ Body:
Modes:
Detector: true
Drops:
- Item: Shard_of_Gray
- Item: Gray_Shard
Rate: 1000
- Item: Withered_Flower
Rate: 2500
@@ -75164,7 +75164,7 @@ Body:
Modes:
Detector: true
Drops:
- Item: Shard_of_Gray
- Item: Gray_Shard
Rate: 1000
- Item: Sticky_Mucus
Rate: 3000
@@ -75202,7 +75202,7 @@ Body:
Modes:
Detector: true
Drops:
- Item: Shard_of_Gray
- Item: Gray_Shard
Rate: 1000
- Item: Immortal_Heart
Rate: 2500
@@ -75236,7 +75236,7 @@ Body:
DamageMotion: 192
Ai: 04
Drops:
- Item: Shard_of_Gray
- Item: Gray_Shard
Rate: 1000
- Item: Decayed_Nail
Rate: 3000
@@ -75270,7 +75270,7 @@ Body:
DamageMotion: 576
Ai: 04
Drops:
- Item: Shard_of_Gray
- Item: Gray_Shard
Rate: 1000
- Item: Horrendous_Mouth
Rate: 3500
@@ -75306,7 +75306,7 @@ Body:
DamageMotion: 504
Ai: 04
Drops:
- Item: Shard_of_Gray
- Item: Gray_Shard
Rate: 1000
- Item: Skel_Bone
Rate: 3500
@@ -75342,7 +75342,7 @@ Body:
DamageMotion: 396
Ai: 04
Drops:
- Item: Shard_of_Gray
- Item: Gray_Shard
Rate: 1000
- Item: Immortal_Heart
Rate: 2000
@@ -75378,7 +75378,7 @@ Body:
DamageMotion: 480
Ai: 04
Drops:
- Item: Shard_of_Gray
- Item: Gray_Shard
Rate: 1500
- Item: Realgar_Wine
Rate: 5000
@@ -75416,7 +75416,7 @@ Body:
Modes:
Detector: true
Drops:
- Item: Shard_of_Gray
- Item: Gray_Shard
Rate: 1500
- Item: Tendon
Rate: 2500
@@ -75452,9 +75452,9 @@ Body:
DamageMotion: 360
Ai: 04
Drops:
- Item: Shard_of_Gray
- Item: Gray_Shard
Rate: 10000
- Item: Shard_of_Gray
- Item: Gray_Shard
Rate: 10000
- Item: Evil_Horn
Rate: 2000
@@ -75516,9 +75516,9 @@ Body:
Drops:
- Item: Evil_Horn
Rate: 2000
- Item: Shard_of_Gray
- Item: Gray_Shard
Rate: 10000
- Item: Shard_of_Gray
- Item: Gray_Shard
Rate: 10000
# - Id: 2962
# AegisName: E_DEVILING
@@ -76132,7 +76132,7 @@ Body:
Rate: 200
- Item: Fruit_Of_Mastela
Rate: 200
- Item: Morocc's_Minion_Card
- Item: MinionOfMorocc_Card
Rate: 1
StealProtected: true
- Id: 3000
@@ -77138,7 +77138,7 @@ Body:
Rate: 10000
- Item: Fruit_Of_Mastela
Rate: 200
- Item: Grim_Reaper_Ankou_Card
- Item: ReaperAnkou_Card
Rate: 1
StealProtected: true
# - Id: 3030
@@ -93927,52 +93927,521 @@ Body:
# AegisName: MD_AIRBOAT_BOSS3
# - Id: 21063
# AegisName: MD_AIRBOAT_BOSS4
# - Id: 21064
# AegisName: S_DUMMY_100_SMALL
# - Id: 21065
# AegisName: S_DUMMY_100_MEDIUM
# - Id: 21066
# AegisName: S_DUMMY_100_LARGE
# - Id: 21067
# AegisName: S_DUMMY_100_NOTHING
# - Id: 21068
# AegisName: S_DUMMY_100_DRAGON
# - Id: 21069
# AegisName: S_DUMMY_100_ANIMAL
# - Id: 21070
# AegisName: S_DUMMY_100_HUMAN
# - Id: 21071
# AegisName: S_DUMMY_100_INSECT
# - Id: 21072
# AegisName: S_DUMMY_100_FISH
# - Id: 21073
# AegisName: S_DUMMY_100_DEMON
# - Id: 21074
# AegisName: S_DUMMY_100_PLANT
# - Id: 21075
# AegisName: S_DUMMY_100_ANGEL
# - Id: 21076
# AegisName: S_DUMMY_100_UNDEAD
# - Id: 21077
# AegisName: S_DUMMY_100_NOTHING2
# - Id: 21078
# AegisName: S_DUMMY_100_WATER
# - Id: 21079
# AegisName: S_DUMMY_100_GROUND
# - Id: 21080
# AegisName: S_DUMMY_100_FIRE
# - Id: 21081
# AegisName: S_DUMMY_100_WIND
# - Id: 21082
# AegisName: S_DUMMY_100_POISON
# - Id: 21083
# AegisName: S_DUMMY_100_SAINT
# - Id: 21084
# AegisName: S_DUMMY_100_DARKNESS
# - Id: 21085
# AegisName: S_DUMMY_100_TELEKINESIS
# - Id: 21086
# AegisName: S_DUMMY_100_UNDEAD2
- Id: 21064
AegisName: S_DUMMY_100_SMALL
Name: Training Dummy (Small)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Small
Race: Formless
Element: Neutral
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21065
AegisName: S_DUMMY_100_MEDIUM
Name: Training Dummy (Medium)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Formless
Element: Neutral
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21066
AegisName: S_DUMMY_100_LARGE
Name: Training Dummy (Large)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Large
Race: Formless
Element: Neutral
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21067
AegisName: S_DUMMY_100_NOTHING
Name: Training Dummy (Neutral)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Formless
Element: Neutral
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21068
AegisName: S_DUMMY_100_DRAGON
Name: Training Dummy (Dragon)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Dragon
Element: Neutral
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21069
AegisName: S_DUMMY_100_ANIMAL
Name: Training Dummy (Brute)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Brute
Element: Neutral
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21070
AegisName: S_DUMMY_100_HUMAN
Name: Training Dummy (Human)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Demihuman
Element: Neutral
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21071
AegisName: S_DUMMY_100_INSECT
Name: Training Dummy (Insect)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Insect
Element: Neutral
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21072
AegisName: S_DUMMY_100_FISH
Name: Training Dummy (Fish)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Fish
Element: Neutral
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21073
AegisName: S_DUMMY_100_DEMON
Name: Training Dummy (Demon)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Demon
Element: Neutral
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21074
AegisName: S_DUMMY_100_PLANT
Name: Training Dummy (Plant)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Plant
Element: Neutral
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21075
AegisName: S_DUMMY_100_ANGEL
Name: Training Dummy (Angel)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Angel
Element: Neutral
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21076
AegisName: S_DUMMY_100_UNDEAD
Name: Training Dummy (Undead)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Undead
Element: Neutral
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21077
AegisName: S_DUMMY_100_NOTHING2
# Name: Training Dummy (Neutral Lv1)
Name: Dummy (Neutral Lv1)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Formless
Element: Neutral
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 482
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21078
AegisName: S_DUMMY_100_WATER
# Name: Training Dummy (Water Lv1)
Name: Dummy (Water Lv1)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Formless
Element: Water
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21079
AegisName: S_DUMMY_100_GROUND
# Name: Training Dummy (Earth Lv1)
Name: Dummy (Earth Lv1)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Formless
Element: Earth
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21080
AegisName: S_DUMMY_100_FIRE
# Name: Training Dummy (Fire Lv1)
Name: Dummy (Fire Lv1)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Formless
Element: Fire
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21081
AegisName: S_DUMMY_100_WIND
# Name: Training Dummy (Wind Lv1)
Name: Dummy (Wind Lv1)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Formless
Element: Wind
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21082
AegisName: S_DUMMY_100_POISON
# Name: Training Dummy (Poison Lv1)
Name: Dummy (Poison Lv1)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Formless
Element: Poison
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21083
AegisName: S_DUMMY_100_SAINT
# Name: Training Dummy (Holy Lv1)
Name: Dummy (Holy Lv1)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Formless
Element: Holy
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21084
AegisName: S_DUMMY_100_DARKNESS
# Name: Training Dummy (Dark Lv1)
Name: Dummy (Dark Lv1)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Formless
Element: Dark
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21085
AegisName: S_DUMMY_100_TELEKINESIS
# Name: Training Dummy (Ghost Lv1)
Name: Dummy (Ghost Lv1)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Formless
Element: Ghost
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
- Id: 21086
AegisName: S_DUMMY_100_UNDEAD2
# Name: Training Dummy (Undead Lv1)
Name: Dummy (Undead Lv1)
Level: 100
Hp: 2000000000
Attack: 10
Attack2: 10
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Formless
Element: Undead
ElementLevel: 1
WalkSpeed: 1000
AttackDelay: 1672
AttackMotion: 672
DamageMotion: 480
Class: Boss
Modes:
NoRandomWalk: true
TeleportBlock: true
# - Id: 21087
# AegisName: S_DUMMY_100_HUMANP
# - Id: 21088

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 /
@@ -171,6 +174,7 @@
1038,Osiris@NPC_DARKBREATH,attack,202,5,500,0,5000,no,target,always,0,,,,,,9,
1038,Osiris@NPC_DARKBREATH,chase,202,5,500,0,5000,no,target,always,0,,,,,,9,
1038,Osiris@NPC_POISONATTACK,attack,188,5,2000,0,5000,no,target,always,0,,,,,,9,
1038,Osiris@NPC_ALLHEAL,attack,687,1,10000,0,100000,yes,self,damagedgt,50000,,,,,,,
1038,Osiris@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1522,,,,,,
1038,Osiris@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1522,,,,,,
1038,Osiris@NPC_SUMMONSLAVE,idle,196,7,10000,0,0,no,self,onspawn,0,1029,,,,,,
@@ -199,6 +203,7 @@
1039,Baphomet@WZ_VERMILION,attack,85,21,2000,500,2000,no,target,always,0,,,,,,29,
1039,Baphomet@WZ_VERMILION,chase,85,21,5000,500,2000,no,target,skillused,18,,,,,,29,
1039,Baphomet@WZ_VERMILION,chase,85,21,2000,500,2000,no,target,always,0,,,,,,29,
1039,Baphomet@NPC_ALLHEAL,attack,687,1,10000,3000,100000,no,self,damagedgt,50000,,,,,,,
1039,Baphomet@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
1040,Golem@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,,,,,,
1040,Golem@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,6,
@@ -862,6 +867,7 @@
1159,Phreeoni@AL_HEAL,idle,28,11,10000,0,5000,yes,self,mystatuson,hiding,,,,,,,
1159,Phreeoni@WZ_HEAVENDRIVE,chase,91,5,10000,0,5000,no,target,skillused,18,,,,,,19,
1159,Phreeoni@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
1159,Phreeoni@NPC_ALLHEAL,attack,687,1,10000,1000,120000,no,self,damagedgt,50000,,,,,,,
1160,Piere@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,19,,,,,,
1160,Piere@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,6,
1161,Plankton@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
@@ -1786,6 +1792,7 @@
1389,Dracula@NPC_INVISIBLE,chase,353,1,2000,200,5000,yes,self,always,0,,,,,,,
1389,Dracula@NPC_SILENCEATTACK,attack,178,5,2000,0,5000,no,target,always,0,,,,,,,
1389,Dracula@NPC_SILENCEATTACK,chase,178,5,2000,0,5000,no,target,always,0,,,,,,,
1389,Dracula@SA_LANDPROTECTOR,attack,288,3,3000,0,5000,yes,self,groundattacked,0,,,,,,,
1389,Dracula@NPC_SUMMONSLAVE,attack,196,16,10000,700,5000,no,self,slavele,5,1419,,,,,,
1389,Dracula@NPC_SUMMONSLAVE,idle,196,16,10000,700,5000,no,self,slavele,5,1419,,,,,,
1389,Dracula@NPC_ENERGYDRAIN,chase,200,1,10000,0,0,yes,target,skillused,18,,,,,,,
@@ -1989,6 +1996,7 @@
1418,Evil Snake Lord@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
1418,Evil Snake Lord@MG_FROSTDIVER,attack,15,40,2000,0,5000,yes,target,always,0,,,,,,,
1418,Evil Snake Lord@MG_FROSTDIVER,chase,15,40,2000,0,0,yes,target,always,0,,,,,,,
1418,Evil Snake Lord@NPC_ALLHEAL,attack,687,1,5000,1500,60000,no,self,damagedgt,30000,,,,,,20,
1418,Evil Snake Lord@NPC_SHIELDBRAKE,attack,346,10,2000,0,0,yes,target,always,0,,,,,,2,
1418,Evil Snake Lord@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
1418,Evil Snake Lord@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
@@ -2590,6 +2598,7 @@
1511,Amon Ra@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1511,Amon Ra@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1511,Amon Ra@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
1511,Amon Ra@WZ_STORMGUST,idle,89,10,3000,0,0,yes,target,groundattacked,0,,,,,,9,
1512,Hyegun@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,,
1512,Hyegun@AS_SONICBLOW,attack,136,5,500,1000,30000,no,target,always,0,,,,,,,
1512,Hyegun@NPC_CRITICALSLASH,attack,170,1,500,0,5000,yes,target,always,0,,,,,,,
@@ -3812,6 +3821,7 @@
1719,Detale@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
1719,Detale@AL_HEAL,attack,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
1719,Detale@AL_HEAL,chase,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
1719,Detale@NPC_COMET,attack,708,5,5000,2000,60000,no,target,groundattacked,0,,,,,,29,
1720,Hydro@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1720,Hydro@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
1720,Hydro@AL_HEAL,attack,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
@@ -7818,6 +7828,7 @@
2251,Gioia@NPC_EARTHQUAKE,chase,653,5,10000,500,20000,no,self,myhpltmaxrate,40,,,,,,,
2251,Gioia@NPC_EARTHQUAKE,attack,653,5,10000,500,20000,no,self,myhpltmaxrate,40,,,,,,,
2251,Gioia@NPC_PULSESTRIKE,attack,661,5,10000,0,15000,yes,self,myhpltmaxrate,60,,,,,,,
2251,Gioia@NPC_ALLHEAL,attack,687,1,10000,1500,120000,no,self,damagedgt,50000,,,,,,,
2251,Gioia@NPC_DRAGONFEAR,attack,659,5,10000,0,10000,yes,self,always,0,,,,,,,
2251,Gioia@NPC_DRAGONFEAR,chase,659,5,10000,0,10000,yes,self,always,0,,,,,,,
2251,Gioia@WZ_METEOR,idle,83,9,10000,0,5000,yes,target,always,0,,,,,,,
@@ -8216,6 +8227,7 @@
2362,Nightmare Amon Ra@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
2362,Nightmare Amon Ra@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
2362,Nightmare Amon Ra@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
2362,Nightmare Amon Ra@WZ_STORMGUST,idle,89,10,3000,0,0,yes,target,groundattacked,0,,,,,,9,
// Eclage
2363,Menblatt@KN_PIERCE,attack,56,10,500,700,5000,no,target,always,0,,,,,,6,
@@ -12589,6 +12601,7 @@
20340,EL-A17T@NPC_CRITICALSLASH,attack,170,1,2000,500,5000,no,target,always,0,,,,,,,
20340,EL-A17T@AS_SONICBLOW,attack,136,10,1000,0,10000,yes,target,always,0,,,,,,2,
20340,EL-A17T@NPC_AGIUP,chase,350,5,2000,0,60000,no,self,always,0,,,,,,6,
20340,EL-A17T@SA_LANDPROTECTOR,attack,288,3,10000,500,150000,no,self,groundattacked,0,,,,,,,
20341,E-EA1L@AL_DECAGI,attack,30,1,500,1000,5000,no,target,always,0,,,,,,29,
20341,E-EA1L@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,9,
20341,E-EA1L@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,9,
@@ -12735,3 +12748,51 @@
20836,ABR_MOTHER_NET@ABR_NET_SUPPORT,attack,8604,1,10000,500,5000,yes,self,always,0,,,,,,,
20837,ABR_INFINITY@ABR_INFINITY_BUSTER,chase,8605,1,10000,500,5000,yes,target,always,0,,,,,,,
20837,ABR_INFINITY@ABR_INFINITY_BUSTER,attack,8605,1,10000,500,5000,yes,target,always,0,,,,,,,
// Training Ground outside Prontera
21064,S_DUMMY_100_SMALL@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21064,S_DUMMY_100_SMALL@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21065,S_DUMMY_100_MEDIUM@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21065,S_DUMMY_100_MEDIUM@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21066,S_DUMMY_100_LARGE@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21066,S_DUMMY_100_LARGE@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21067,S_DUMMY_100_NOTHING@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21067,S_DUMMY_100_NOTHING@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21068,S_DUMMY_100_DRAGON@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21068,S_DUMMY_100_DRAGON@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21069,S_DUMMY_100_ANIMAL@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21069,S_DUMMY_100_ANIMAL@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21070,S_DUMMY_100_HUMAN@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21070,S_DUMMY_100_HUMAN@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21071,S_DUMMY_100_INSECT@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21071,S_DUMMY_100_INSECT@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21072,S_DUMMY_100_FISH@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21072,S_DUMMY_100_FISH@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21073,S_DUMMY_100_DEMON@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21073,S_DUMMY_100_DEMON@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21074,S_DUMMY_100_PLANT@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21074,S_DUMMY_100_PLANT@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21075,S_DUMMY_100_ANGEL@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21075,S_DUMMY_100_ANGEL@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21076,S_DUMMY_100_UNDEAD@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21076,S_DUMMY_100_UNDEAD@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21077,S_DUMMY_100_NOTHING2@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21077,S_DUMMY_100_NOTHING2@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21078,S_DUMMY_100_WATER@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21078,S_DUMMY_100_WATER@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21079,S_DUMMY_100_GROUND@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21079,S_DUMMY_100_GROUND@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21080,S_DUMMY_100_FIRE@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21080,S_DUMMY_100_FIRE@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21081,S_DUMMY_100_WIND@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21081,S_DUMMY_100_WIND@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21082,S_DUMMY_100_POISON@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21082,S_DUMMY_100_POISON@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21083,S_DUMMY_100_SAINT@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21083,S_DUMMY_100_SAINT@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21084,S_DUMMY_100_DARKNESS@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21084,S_DUMMY_100_DARKNESS@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21085,S_DUMMY_100_TELEKINESIS@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21085,S_DUMMY_100_TELEKINESIS@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21086,S_DUMMY_100_UNDEAD2@NPC_ALLHEAL,attack,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,
21086,S_DUMMY_100_UNDEAD2@NPC_ALLHEAL,idle,687,1,10000,0,500,no,self,myhpltmaxrate,90,,,,,,,

View File

@@ -877,9 +877,9 @@ Body:
.@i = getpetinfo(PETINFO_INTIMATE);
if (.@i >= PET_INTIMATE_LOYAL) {
autobonus "{ bonus2 bSubEle,Ele_Neutral,2; heal 100,0; }",100,5000,BF_SHORT|BF_NORMAL;
petautobonus "{ bonus2 bSubEle,Ele_Neutral,2; heal 100,0; }",100,5000,BF_SHORT|BF_NORMAL;
} else if (.@i >= PET_INTIMATE_CORDIAL) {
autobonus "{ bonus2 bSubEle,Ele_Neutral,2; heal 100,0; }",100,3000,BF_SHORT|BF_NORMAL;
petautobonus "{ bonus2 bSubEle,Ele_Neutral,2; heal 100,0; }",100,3000,BF_SHORT|BF_NORMAL;
}
- Mob: MEDUSA
TameItem: Splendid_Mirror
@@ -1511,15 +1511,15 @@ Body:
if (.@i >= PET_INTIMATE_LOYAL) {
bonus bCritical,6;
bonus bHit,6;
autobonus "{ bonus2 bHPRegenRate,500,1000; bonus2 bSPRegenRate,20,1000; }",30,5000,BF_WEAPON|BF_SHORT;
petautobonus "{ bonus2 bHPRegenRate,500,1000; bonus2 bSPRegenRate,20,1000; }",30,5000,BF_WEAPON|BF_SHORT;
} else if (.@i >= PET_INTIMATE_CORDIAL) {
bonus bCritical,5;
bonus bHit,5;
autobonus "{ bonus2 bHPRegenRate,400,1000; bonus2 bSPRegenRate,10,1000; }",30,5000,BF_WEAPON|BF_SHORT;
petautobonus "{ bonus2 bHPRegenRate,400,1000; bonus2 bSPRegenRate,10,1000; }",30,5000,BF_WEAPON|BF_SHORT;
} else if (.@i >= PET_INTIMATE_NEUTRAL) {
bonus bCritical,4;
bonus bHit,4;
autobonus "{ bonus2 bHPRegenRate,300,1000; }",20,5000,BF_WEAPON|BF_SHORT;
petautobonus "{ bonus2 bHPRegenRate,300,1000; }",20,5000,BF_WEAPON|BF_SHORT;
} else {
bonus bCritical,3;
bonus bHit,3;
@@ -1667,11 +1667,11 @@ Body:
if (.@i >= PET_INTIMATE_LOYAL) {
bonus bCritical,5;
bonus bHit,5;
autobonus "{ bonus2 bHPRegenRate,400,1000; }",20,5000,BF_WEAPON|BF_SHORT;
petautobonus "{ bonus2 bHPRegenRate,400,1000; }",20,5000,BF_WEAPON|BF_SHORT;
} else if (.@i >= PET_INTIMATE_CORDIAL) {
bonus bCritical,4;
bonus bHit,4;
autobonus "{ bonus2 bHPRegenRate,300,1000; }",20,5000,BF_WEAPON|BF_SHORT;
petautobonus "{ bonus2 bHPRegenRate,300,1000; }",20,5000,BF_WEAPON|BF_SHORT;
} else if (.@i >= PET_INTIMATE_NEUTRAL) {
bonus bCritical,3;
bonus bHit,3;
@@ -1780,10 +1780,10 @@ Body:
if (.@i >= PET_INTIMATE_LOYAL) {
bonus bMaxSP,150;
autobonus "{ bonus2 bSPRegenRate,40,1000; }",30,5000,BF_MAGIC;
petautobonus "{ bonus2 bSPRegenRate,40,1000; }",30,5000,BF_MAGIC;
} else if (.@i >= PET_INTIMATE_CORDIAL) {
bonus bMaxSP,150;
autobonus "{ bonus2 bSPRegenRate,30,1000; }",30,5000,BF_MAGIC;
petautobonus "{ bonus2 bSPRegenRate,30,1000; }",30,5000,BF_MAGIC;
} else if (.@i >= PET_INTIMATE_NEUTRAL) {
bonus bMaxSP,100;
} else {

56
db/re/reputation.yml Normal file
View File

@@ -0,0 +1,56 @@
# 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
Body:
- Id: 1
Name: Orc Village
Variable: RepPointsOrc
Minimum: -3000
Maximum: 3000
- Id: 2
Name: Goblin Village
Variable: RepPointsGoblin
Minimum: -3000
Maximum: 3000
- Id: 3
Name: Grey Wolf Village
Variable: RepPointsWolf
Minimum: -5000
Maximum: 5000
- Id: 4
Name: Isgard
Variable: RepPointsIsgard
Minimum: -3000
Maximum: 3000

View File

@@ -8661,7 +8661,7 @@ Body:
SplashArea: 4
CastTime: 1000
Duration1: 60000
Duration2: 15000
Duration2: 18000
Cooldown: 20000
Requires:
SpCost: 40
@@ -37451,7 +37451,7 @@ Body:
CastCancel: true
AfterCastActDelay: 500
Duration1: 180000
Duration2: 30000
Duration2: 15000
Cooldown: 150000
FixedCastTime: 2000
Requires:
@@ -42468,7 +42468,7 @@ Body:
- Level: 10
Amount: 16
SpCost: 30
Status: Watk_Element
Status: Sub_Weaponproperty
- Id: 8203
Name: MS_BOWLINGBASH
Description: Bowling_Bash

View File

@@ -80,6 +80,7 @@ Body:
DurationLookup: NPC_PETRIFYATTACK
States:
NoCast: true
NoAttack: true
Opt1: StoneWait
Flags:
SendOption: true
@@ -363,6 +364,8 @@ Body:
DurationLookup: AS_ENCHANTPOISON
CalcFlags:
Atk_Ele: true
Flags:
RemoveOnUnequipWeapon: true
End:
Aspersio: true
Fireweapon: true
@@ -532,7 +535,7 @@ Body:
FailedMado: true
NoSave: true
SuperNoviceAngel: true
Fail:
End:
Offertorium: true
- Status: Gloria
Icon: EFST_GLORIA
@@ -767,6 +770,7 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
NoSave: true
- Status: Stripshield
Icon: EFST_NOEQUIPSHIELD
DurationLookup: RG_STRIPSHIELD
@@ -778,6 +782,7 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
NoSave: true
- Status: Striparmor
Icon: EFST_NOEQUIPARMOR
DurationLookup: RG_STRIPARMOR
@@ -789,6 +794,7 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
NoSave: true
- Status: Striphelm
Icon: EFST_NOEQUIPHELM
DurationLookup: RG_STRIPHELM
@@ -800,6 +806,7 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
NoSave: true
- Status: Cp_Weapon
Icon: EFST_PROTECTWEAPON
DurationLookup: AM_CP_WEAPON
@@ -947,6 +954,7 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
NoSave: true
- Status: Explosionspirits
Icon: EFST_EXPLOSIONSPIRITS
DurationLookup: MO_EXPLOSIONSPIRITS
@@ -958,6 +966,7 @@ Body:
Flags:
Debuff: true
NoClearance: true
NoSave: true
- Status: Combo
Flags:
NoClearbuff: true
@@ -994,7 +1003,7 @@ Body:
CalcFlags:
All: true
Flags:
NoRemoveOnDead: true
RemoveOnUnequipWeapon: true
End:
Encpoison: true
Aspersio: true
@@ -1009,7 +1018,7 @@ Body:
CalcFlags:
All: true
Flags:
NoRemoveOnDead: true
RemoveOnUnequipWeapon: true
End:
Encpoison: true
Aspersio: true
@@ -1024,7 +1033,7 @@ Body:
CalcFlags:
All: true
Flags:
NoRemoveOnDead: true
RemoveOnUnequipWeapon: true
End:
Encpoison: true
Aspersio: true
@@ -1039,7 +1048,7 @@ Body:
CalcFlags:
All: true
Flags:
NoRemoveOnDead: true
RemoveOnUnequipWeapon: true
End:
Encpoison: true
Aspersio: true
@@ -1341,6 +1350,7 @@ Body:
Flags:
Debuff: true
NoClearance: true
NoSave: true
End:
Blessing: true
Increaseagi: true
@@ -2650,7 +2660,6 @@ Body:
- Status: Inchealrate
Icon: EFST_HEALPLUS
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
@@ -6050,27 +6059,16 @@ Body:
- Status: 2011rwc_Scroll
Icon: EFST_2011RWC_SCROLL
CalcFlags:
Str: true
Agi: true
Vit: true
Int: true
Dex: true
Luk: true
Batk: true
Matk: true
Aspd: true
MaxHp: true
MaxSp: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
End:
Food_Str_Cash: true
Food_Agi_Cash: true
Food_Vit_Cash: true
Food_Int_Cash: true
Food_Dex_Cash: true
Food_Luk_Cash: true
- Status: Jp_Event04
Icon: EFST_JP_EVENT04
Flags:
@@ -8157,3 +8155,248 @@ Body:
NoClearance: true
Fail:
S_Manapotion: true
- Status: Sub_Weaponproperty
Flags:
NoBanishingBuster: true
NoDispell: true
NoClearance: true
NoRemoveOnDead: true
NoClearbuff: true
End:
Sub_Weaponproperty: true
- Status: Almighty
Icon: EFST_ALMIGHTY
CalcFlags:
Str: true
Agi: true
Vit: true
Int: true
Dex: true
Luk: true
Batk: true
Matk: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
End:
Food_Str_Cash: true
Food_Agi_Cash: true
Food_Vit_Cash: true
Food_Int_Cash: true
Food_Dex_Cash: true
Food_Luk_Cash: true
UltimateCook: true
- Status: UltimateCook
Icon: EFST_ULTIMATECOOK
CalcFlags:
Str: true
Agi: true
Vit: true
Int: true
Dex: true
Luk: true
Batk: true
Matk: true
Flags:
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
End:
Food_Str_Cash: true
Food_Agi_Cash: true
Food_Vit_Cash: true
Food_Int_Cash: true
Food_Dex_Cash: true
Food_Luk_Cash: true
Almighty: true
- Status: M_DefScroll
Icon: EFST_M_DEFSCROLL
CalcFlags:
Def: true
Mdef: true
Flags:
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: Infinity_Drink
Icon: EFST_INFINITY_DRINK
CalcFlags:
All: true
Flags:
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: Mental_Potion
Icon: EFST_TARGET_ASPD
CalcFlags:
All: true
Flags:
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: Limit_Power_Booster
Icon: EFST_LIMIT_POWER_BOOSTER
CalcFlags:
All: true
Flags:
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: Combat_Pill
Icon: EFST_GM_BATTLE
CalcFlags:
All: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: Combat_Pill2
Icon: EFST_GM_BATTLE2
CalcFlags:
All: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: MysticPowder
Icon: EFST_MYSTICPOWDER
CalcFlags:
Luk: true
Flee: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: SparkCandy
Icon: EFST_STEAMPACK
CalcFlags:
All: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: MagicCandy
Icon: EFST_MAGIC_CANDY
CalcFlags:
All: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: Acaraje
Icon: EFST_ACARAJE
CalcFlags:
Hit: true
Aspd: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: PopeCookie
Icon: EFST_POPECOOKIE
CalcFlags:
All: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: Vitalize_Potion
Icon: EFST_VITALIZE_POTION
CalcFlags:
All: true
Flags:
NoClearbuff: true
NoBanishingBuster: true
NoClearance: true
- Status: Cup_Of_Boza
Icon: EFST_CUP_OF_BOZA
CalcFlags:
All: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: SKF_MATK
Icon: EFST_SKF_MATK
CalcFlags:
Matk: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: SKF_ATK
Icon: EFST_SKF_ATK
CalcFlags:
Batk: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: SKF_ASPD
Icon: EFST_SKF_ASPD
CalcFlags:
Aspd: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: SKF_CAST
Icon: EFST_SKF_CAST
CalcFlags:
All: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: Beef_Rib_Stew
Icon: EFST_BEEF_RIB_STEW
CalcFlags:
All: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: Pork_Rib_Stew
Icon: EFST_PORK_RIB_STEW
CalcFlags:
All: true
Flags:
NoRemoveOnDead: true
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true

40
db/reputation.yml Normal file
View File

@@ -0,0 +1,40 @@
# 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
Footer:
Imports:
- Path: db/re/reputation.yml
Mode: Renewal
- Path: db/import/reputation.yml

View File

@@ -729,6 +729,23 @@ Refines an equipped item by the specified amount.
---------------------------------------
@grade <equip position> <+/- amount>
Enchantgrade an equipped item by the specified amount.
0: All Equipment
1: Lower Headgear
2: Right Hand
4: Garment
8: Left Accessory
16: Body Armor
32: Left Hand
64: Shoes
128: Right Accessory
256: Top Headgear
512: Mid Headgear
---------------------------------------
@repairall
Repairs all broken items in your inventory.

View File

@@ -125,7 +125,7 @@ Atk/Def
bonus bBaseAtk,n; Basic attack power + n
bonus bAtk,n; ATK + n (unofficial)
bonus bAtk2,n; ATK2 + n
bonus bAtkRate,n; Attack power + n% (unofficial)
bonus bAtkRate,n; ATK + n% that won't interfere with Damage modifier and SC_EDP (renewal mode only)
bonus bWeaponAtkRate,n; Weapon ATK + n%
bonus bMatk,n; Magical attack power + n
bonus bMatkRate,n; Magical attack power + n%

View File

@@ -219,6 +219,10 @@ Refineable: Defines if the item can be refined.
---------------------------------------
Gradable: Defines if the item can be graded.
---------------------------------------
View: For normal items, defines a replacement view-sprite for the item.
---------------------------------------

View File

@@ -0,0 +1,26 @@
# Map Server Generator
This is a tool to generate files that are hard to manually create.
Only navigation files can be generated at this time.
## How to run
### Linux
Run `make tools`.
This creates a new binary called `map-server-generator`.
It can be ran with: `./map-server-generator`
### Windows
It can be ran with `./map-server-generator.exe`, or with the provided `.bat` files.
## Available options
On Linux, prefix with `--`
On Windows, prefix with `/`
option | feature
---|---
generate-navi | create navigation files

View File

@@ -978,6 +978,11 @@ Only the special labels which are not associated with any script command are
listed here. There are other kinds of labels which may be triggered in a similar
manner, but they are described with their associated commands.
OnNaviGenerate:
This special label triggers when running the map-server-generator binary. It is used
in combination with 'naviregisterwarp' to register extra warps for an npc.
On<label name>:
These special labels are used with Mob scripts mostly, and script commands
@@ -3578,14 +3583,15 @@ This command does not count skills which are set as flag 4 (permament granted) (
---------------------------------------
*getmonsterinfo(<mob ID>,<type>)
*getmonsterinfo(<mob name>,<type>)
This function will look up the monster with the specified ID number in the
mob database and return the info set by TYPE argument.
This function will look up the monster with the specified <mob ID> or <mob name> in the
mob database and return the info set by <type> argument.
It will return -1 if there is no such monster (or the type value is invalid),
or "null" if you requested the monster's name.
Valid types are:
MOB_NAME - monster's name, if there is no such monster "null" is returned
MOB_NAME - monster's japanese name, if there is no such monster "null" is returned
MOB_LV - monster's level
MOB_MAXHP - monster's maximum hp
MOB_BASEEXP - monster's base experience
@@ -3610,6 +3616,7 @@ Valid types are:
MOB_ELEMENT - monster's element(doesn't return the element level, only the element ID)
MOB_MODE - monster's mode
MOB_MVPEXP - monster's mvp experience
MOB_ID - monster's ID
For more details, see the sample in 'doc/sample/getmonsterinfo.txt'.
@@ -4748,6 +4755,8 @@ quite a few item scripts. For more examples check just about any official script
*getitem2 "<item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<account ID>};
*getitem3 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account ID>};
*getitem3 "<item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account ID>};
*getitem4 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<grade>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account ID>};
*getitem4 "<item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<grade>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account ID>};
This command will give an amount of specified items to the invoking character.
If an optional account ID is specified, and the target character is currently
@@ -4838,6 +4847,14 @@ this really cause.
<RandomValueArray> : Array variable of item random option's value.
<RandomParamArray> : Array variable of item random option's param.
'getitem4' is advance version of 'getitem3' that also use the grade as additional values.
Valid grades are:
ENCHANTGRADE_NONE - No grade
ENCHANTGRADE_D - Grade D
ENCHANTGRADE_C - Grade C
ENCHANTGRADE_B - Grade B
ENCHANTGRADE_A - Grade A
Example to get Crimson Weapon with Ghost property:
// +9 Crimson Dagger [2]
setarray .@OptID[0],RDMOPT_WEAPON_ATTR_TELEKINESIS;
@@ -4867,6 +4884,8 @@ Valid bound types are:
*getitembound2 "<item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<bound type>{,<account ID>};
*getitembound3 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<bound type>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account ID>};
*getitembound3 "<item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<bound type>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account ID>};
*getitembound4 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<bound type>,<grade>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account ID>};
*getitembound4 "<item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<bound type>,<grade>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account ID>};
This command behaves identically to 'getitem2', but the items created will be
bound to the target character as specified by the bound type. All items created
@@ -4880,6 +4899,14 @@ For a list of bound types see 'getitembound'.
<RandomValueArray> : Array variable of item random option's value.
<RandomParamArray> : Array variable of item random option's param.
'getitembound4' is advance version of 'getitembound3' that also use the grade as additional values.
Valid grades are:
ENCHANTGRADE_NONE - No grade
ENCHANTGRADE_D - Grade D
ENCHANTGRADE_C - Grade C
ENCHANTGRADE_B - Grade B
ENCHANTGRADE_A - Grade A
Example to get Crimson Weapon with Ghost property:
// +9 Crimson Dagger [2]
setarray .@OptID[0],RDMOPT_WEAPON_ATTR_TELEKINESIS;
@@ -4935,6 +4962,8 @@ Note: 'countitem' will not count any item with a rental timer. Use 'rentalcounti
*rentitem2 "<item name>",<time>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<account_id>};
*rentitem3 <item id>,<time>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account_id>};
*rentitem3 "<item name>",<time>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account_id>};
*rentitem4 <item id>,<time>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<grade>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account_id>};
*rentitem4 "<item name>",<time>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<grade>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account_id>};
Creates a rental item in the attached character's inventory. The item will expire
in <time> seconds and be automatically deleted. See 'rentitem' for further details.
@@ -4946,6 +4975,14 @@ See 'getitem2' for an explanation of the expanded parameters.
<RandomValueArray> : Array variable of item random option's value.
<RandomParamArray> : Array variable of item random option's param.
'rentitem4' is advance version of 'rentitem3' that also use the grade as additional values.
Valid grades are:
ENCHANTGRADE_NONE - No grade
ENCHANTGRADE_D - Grade D
ENCHANTGRADE_C - Grade C
ENCHANTGRADE_B - Grade B
ENCHANTGRADE_A - Grade A
Example to get Crimson Weapon with Ghost property:
// +9 Crimson Dagger [2]
setarray .@OptID[0],RDMOPT_WEAPON_ATTR_TELEKINESIS;
@@ -4975,6 +5012,8 @@ If <canShowEffect> flag is set to true, it will show a pillar effect on the grou
*makeitem2 "<item name>",<amount>,"<map name>",<X>,<Y>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<canShowEffect>};
*makeitem3 <item id>,<amount>,"<map name>",<X>,<Y>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<canShowEffect>};
*makeitem3 "<item name>",<amount>,"<map name>",<X>,<Y>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<canShowEffect>};
*makeitem4 <item id>,<amount>,"<map name>",<X>,<Y>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<grade>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<canShowEffect>};
*makeitem4 "<item name>",<amount>,"<map name>",<X>,<Y>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<grade>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<canShowEffect>};
This command will create an item on the specified cell of a map. See 'makeitem' for
further details.
@@ -4986,6 +5025,14 @@ See 'getitem2' for an explanation of the expanded parameters.
<RandomValueArray> : Array variable of item random option's value.
<RandomParamArray> : Array variable of item random option's param.
'makeitem4' is advance version of 'makeitem3' that also use the grade as additional values.
Valid grades are:
ENCHANTGRADE_NONE - No grade
ENCHANTGRADE_D - Grade D
ENCHANTGRADE_C - Grade C
ENCHANTGRADE_B - Grade B
ENCHANTGRADE_A - Grade A
Example to get Crimson Weapon with Ghost property:
// 0.5% chance to get +0 Valkyrie Shield [1]
// with Neutral Resistance +10% and 5% damage reduction from Demi-Human or Player
@@ -5063,6 +5110,8 @@ If player is not in a guild or storage is open, 'guildstoragedelitem' will retur
*delitem2 "<item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<account ID>};
*delitem3 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account ID>};
*delitem3 "<item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account ID>};
*delitem4 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<grade>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account ID>};
*delitem4 "<item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<grade>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account ID>};
This command will remove a specified amount of items from the invoking/target character.
See 'getitem2' for an explanation of the expanded parameters.
@@ -5072,6 +5121,8 @@ See 'getitem2' for an explanation of the expanded parameters.
<RandomValueArray> : Array variable of item random option's value.
<RandomParamArray> : Array variable of item random option's param.
'delitem4' is advance version of 'delitem3' that also use the grade as criteria.
---------------------------------------
*delitemidx <index>{,<amount>{,<char id>}}
@@ -5154,6 +5205,8 @@ If player is not in a guild or storage is open, 'guildstoragecountitem' will ret
*countitem2("<item name>",<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<accountID>})
*countitem3(<item id>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<accountID>})
*countitem3("<item name>",<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<accountID>})
*countitem4(<item id>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<grade>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<accountID>})
*countitem4("<item name>",<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<grade>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<accountID>})
Expanded version of 'countitem' function, used for created/carded/forged items.
@@ -5166,6 +5219,8 @@ See 'getitem2' for an explanation of the expanded parameters.
<RandomValueArray> : Array variable of item random option's value.
<RandomParamArray> : Array variable of item random option's param.
'countitem4' is advance version of 'countitem3' that also use the grade as criteria.
---------------------------------------
*cartcountitem2(<item id>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<accountID>})
@@ -5195,6 +5250,8 @@ invoking character has in the inventory.
*rentalcountitem2("<item name>",<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<accountID>})
*rentalcountitem3(<item id>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<accountID>})
*rentalcountitem3("<item name>",<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<accountID>})
*rentalcountitem4(<item id>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<grade>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<accountID>})
*rentalcountitem4("<item name>",<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<grade>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<accountID>})
Expanded version of 'rentalcountitem' function, used for created/carded/forged items.
@@ -5207,6 +5264,8 @@ See 'getitem2' for an explanation of the expanded parameters.
<RandomValueArray> : Array variable of item random option's value.
<RandomParamArray> : Array variable of item random option's param.
'rentalcountitem4' is advance version of 'rentalcountitem3' that also use the grade as criteria.
---------------------------------------
*countbound({<bound type>{,<char_id>}})
@@ -6117,9 +6176,7 @@ kind in 'doc/item_bonus.txt'.
*autobonus3 <bonus script>,<rate>,<duration>,<skill id>,{<other script>};
*autobonus3 <bonus script>,<rate>,<duration>,"<skill name>",{<other script>};
These commands are meant to be used in item scripts. They will probably work
outside item scripts, but the bonus will not persist for long. They, as
expected, refer only to an invoking character.
These commands are meant to be used in item scripts only! See 'petautobonus' for pet usage.
What these commands do is 'attach' a script to the player which will get
executed on attack (or when attacked in the case of autobonus2).
@@ -6473,12 +6530,14 @@ Examples:
---------------------------------------
*monster "<map name>",<x>,<y>,"<name to show>",<mob id>,<amount>{,"<event label>",<size>,<ai>};
*monster "<map name>",<x>,<y>,"<name to show>","<mob name>",<amount>{,"<event label>",<size>,<ai>};
*areamonster "<map name>",<x1>,<y1>,<x2>,<y2>,"<name to show>",<mob id>,<amount>{,"<event label>",<size>,<ai>};
*areamonster "<map name>",<x1>,<y1>,<x2>,<y2>,"<name to show>","<mob name>",<amount>{,"<event label>",<size>,<ai>};
This command will spawn a monster on the specified coordinates on the specified
map. If the script is invoked by a character, a special map name, "this", will
be recognized to mean the name of the map the invoking character is located at.
This command works fine in the item scripts.
This command will spawn <amount> monsters with <mob id> or <mob name> on the specified
coordinates on the specified map. If the script is invoked by a character, a special
<map name>, "this", will be recognized to mean the name of the map the invoking character
is located at. This command works fine in item scripts.
The same command arguments mean the same things as described above in the
beginning of this document when talking about permanent monster spawns. Monsters
@@ -6557,11 +6616,13 @@ For more good examples see just about any official 2-1 or 2-2 job quest script.
*areamobuseskill "<map name>",<x>,<y>,<range>,<mob id>,<skill id>,<skill level>,<cast time>,<cancelable>,<emotion>,<target type>;
*areamobuseskill "<map name>",<x>,<y>,<range>,<mob id>,"<skill name>",<skill level>,<cast time>,<cancelable>,<emotion>,<target type>;
*areamobuseskill "<map name>",<x>,<y>,<range>,"<mob name>",<skill id>,<skill level>,<cast time>,<cancelable>,<emotion>,<target type>;
*areamobuseskill "<map name>",<x>,<y>,<range>,"<mob name>","<skill name>",<skill level>,<cast time>,<cancelable>,<emotion>,<target type>;
This command will make all monsters of the specified mob ID in the specified
area use the specified skill. Map name, x, and y define the center of the area,
This command will make all monsters of the specified <mob id> or <mob name> in the specified
area use the specified skill. <map name>, <x>, and <y> define the center of the area,
which extending <range> cells in each direction (ex: a range of 3 would create
a 7x7 square). The skill can be specified by skill ID or name. <cast time> is in
a 7x7 square). The skill can be specified by <skill id> or <skill name>. <cast time> is in
milliseconds (1000 = 1 second), and the rest should be self-explanatory.
<target type> can be:
@@ -8140,14 +8201,14 @@ This feature requires packet version 2015-11-04 or newer.
---------------------------------------
*laphine_synthesis()
*laphine_synthesis({<item id>})
*laphine_synthesis({<"item name">})
Opens the laphine synthesis UI for the attached player.
Opens the laphine synthesis UI for <item ID> or <item name> for the attached player.
If run from within an item script <item ID> or <item name> is optional.
This feature requires packet version 2016-06-01 or newer.
This function is intended for use in item scripts.
---------------------------------------
*laphine_upgrade()
@@ -8174,6 +8235,40 @@ Opens the enchantgrade UI for the attached character or the player given by the
This command requires packet version 2020-07-24 or newer.
---------------------------------------
*set_reputation_points(<type>,<points>{,<char id>})
Sets the reputation points via <points> for reputation group <type> for the attached player or the given character ID.
<type> is the client side index as stored in the Id field of the reputation.yml database files.
---------------------------------------
*get_reputation_points(<type>{,<char id>})
Gets the reputation points for reputation group <type> for the attached player or the given character ID.
<type> is the client side index as stored in the Id field of the reputation.yml database files.
---------------------------------------
*item_reform({<item id>{,<char id>}})
*item_reform({<"item name">{,<char id>}})
Opens the item reform UI for <item ID> or <item name> for the attached player or the given character ID.
If run from within an item script <item ID> or <item name> is optional.
This feature requires packet version 2021-11-03 or newer.
---------------------------------------
*item_enchant(<client side LUA index>{,<char ID>});
Opens the enchant UI for the attached character or the player given by the <char ID> parameter.
If the player exceeds 70% weight the client will not open the enchant UI and will trigger an
error message instead.
This command requires packet version 2021-11-03 or newer.
---------------------------------------
\\
6,1.- Unit-related commands
@@ -9370,6 +9465,20 @@ with the given character id.
---------------------------------------
*naviregisterwarp("<Name of Link>", "<dest_map>", <dest_x>, <dest_y>)
Only useful when using the map-server-generator. Registers an extra warp from this
npc to the destination map/x/y for the generated client files.
---------------------------------------
*navihide
Only useful when using the map-server-generator. Hides this npc and all links from
this npc in the navigation generation.
---------------------------------------
========================
|7.- Instance commands.|
========================
@@ -10202,6 +10311,15 @@ Value of 'rate' is between 1 and 100. 100 = 100%
---------------------------------------
*petautobonus <bonus script>,<rate>,<duration>{,<flag>,{<other script>}};
*petautobonus2 <bonus script>,<rate>,<duration>{,<flag>,{<other script>}};
*petautobonus3 <bonus script>,<rate>,<duration>,<skill id>,{<other script>};
*petautobonus3 <bonus script>,<rate>,<duration>,"<skill name>",{<other script>};
See 'autobonus' for more details.
---------------------------------------
===========================
|11.- Homunculus commands.|
===========================

View File

@@ -27,6 +27,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)

View File

@@ -80,6 +80,7 @@ CREATE TABLE `item_db2_re` (
`equip_level_min` tinyint(3) unsigned DEFAULT NULL,
`equip_level_max` tinyint(3) unsigned DEFAULT NULL,
`refineable` tinyint(1) unsigned DEFAULT NULL,
`gradable` tinyint(1) unsigned DEFAULT NULL,
`view` smallint(5) unsigned DEFAULT NULL,
`alias_name` varchar(50) DEFAULT NULL,
`flag_buyingstore` tinyint(1) unsigned DEFAULT NULL,

View File

@@ -80,6 +80,7 @@ CREATE TABLE `item_db_re` (
`equip_level_min` tinyint(3) unsigned DEFAULT NULL,
`equip_level_max` tinyint(3) unsigned DEFAULT NULL,
`refineable` tinyint(1) unsigned DEFAULT NULL,
`gradable` tinyint(1) unsigned DEFAULT NULL,
`view` smallint(5) unsigned DEFAULT NULL,
`alias_name` varchar(50) DEFAULT NULL,
`flag_buyingstore` tinyint(1) unsigned DEFAULT NULL,

View File

@@ -1,12 +1,13 @@
L_SRV=login-server
C_SRV=char-server
M_SRV=map-server
W_SRV=web-server
INST_PATH=/opt
PKG=rathena
PKG_PATH=$INST_PATH/$PKG
check_files() {
for i in ${L_SRV} ${C_SRV} ${M_SRV}
for i in ${L_SRV} ${C_SRV} ${M_SRV} ${W_SRV}
do
if [ ! -f ./$i ]; then
echo "$i does not exist... exiting..."

View File

@@ -526,6 +526,707 @@ S9: Restrict("RE");
Go("paramk",97,17);
S10: Go("turbo_room",99,114);
OnNaviGenerate:
// for non-prontera warpers, just give it warp to prontera
// this cuts down the number of links considerably
if (strnpcinfo(4) != "prontera") {
naviregisterwarp("Warper > Prontera", "prontera", 155, 183);
end;
}
naviregisterwarp("Warper > Prontera", "prontera", 155, 183);
naviregisterwarp("Warper > Alberta", "alberta", 28, 234);
naviregisterwarp("Warper > Al De Baran", "aldebaran", 140, 131);
naviregisterwarp("Warper > Amatsu", "amatsu", 198, 84);
naviregisterwarp("Warper > Ayothaya", "ayothaya", 208, 166);
naviregisterwarp("Warper > Einbech", "einbech",63,35);
naviregisterwarp("Warper > Einbroch", "einbroch",64,200);
naviregisterwarp("Warper > Geffen", "geffen",119,59);
naviregisterwarp("Warper > Hugel", "hugel",96,145);
naviregisterwarp("Warper > Izlude", "izlude",128,(checkre(3)?146:114));
naviregisterwarp("Warper > Jawaii", "jawaii",251,132);
naviregisterwarp("Warper > Juno", "yuno",157,51);
naviregisterwarp("Warper > Kunlun", "gonryun",160,120);
naviregisterwarp("Warper > Lighthalzen", "lighthalzen",158,92);
naviregisterwarp("Warper > Luoyang", "louyang",217,100);
naviregisterwarp("Warper > Lutie", "xmas",147,134);
naviregisterwarp("Warper > Manuk", "manuk",282,138);
naviregisterwarp("Warper > Midgarts Expedition Camp", "mid_camp",210,288);
naviregisterwarp("Warper > Morocc", "morocc",156,93);
naviregisterwarp("Warper > Moscovia", "moscovia",223,184);
naviregisterwarp("Warper > Nameless Island", "nameless_n",256,215);
naviregisterwarp("Warper > Niflheim", "niflheim",202,174);
naviregisterwarp("Warper > Payon", "payon",179,100);
naviregisterwarp("Warper > Rachel", "rachel",130,110);
naviregisterwarp("Warper > Splendide", "splendide",201,147);
naviregisterwarp("Warper > Thor Camp", "thor_camp",246,68);
naviregisterwarp("Warper > Umbala", "umbala",97,153);
naviregisterwarp("Warper > Veins", "veins",216,123);
if (checkre(0)) {
naviregisterwarp("Warper > Brasilis", "brasilis", 196, 217);
naviregisterwarp("Warper > Dewata", "dewata",200,180);
naviregisterwarp("Warper > Eclage", "ecl_in01",48,53);
naviregisterwarp("Warper > El Dicastes", "dicastes01",198,187);
naviregisterwarp("Warper > Lasagna", "lasagna",193,182);
naviregisterwarp("Warper > Malangdo", "malangdo",140,114);
naviregisterwarp("Warper > Malaya", "malaya",231,200);
naviregisterwarp("Warper > Mora", "mora",55,146);
}
// fields
naviregisterwarp("Warper > Amatsu Field", "ama_fild01", 190, 197);
naviregisterwarp("Warper > Ayothaya Field", "ayo_fild01", 173, 134);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Ayothaya Field", "ayo_fild02", 212, 150);
}
if (checkre(0)) {
naviregisterwarp("Warper > Bifrost Field", "bif_fild01", 193, 220);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Bifrost Field", "bif_fild02", 220, 187);
}
naviregisterwarp("Warper > Brasilis Field", "bra_fild01", 74, 32);
}
naviregisterwarp("Warper > Comodo Field", "cmd_fild01", 180, 178);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Comodo Field", "cmd_fild02", 231, 160);
naviregisterwarp("Warper > Comodo Field", "cmd_fild03", 191, 172);
naviregisterwarp("Warper > Comodo Field", "cmd_fild04", 228, 194);
if (!checkre(0)) {
naviregisterwarp("Warper > Comodo Field", "cmd_fild05", 224, 203);
}
naviregisterwarp("Warper > Comodo Field", "cmd_fild06", 190, 223);
naviregisterwarp("Warper > Comodo Field", "cmd_fild07", 234, 177);
naviregisterwarp("Warper > Comodo Field", "cmd_fild08", 194, 175);
naviregisterwarp("Warper > Comodo Field", "cmd_fild09", 172, 172);
}
if (checkre(0)) {
naviregisterwarp("Warper > Dewata Field", "dew_fild01", 371, 212);
naviregisterwarp("Warper > Eclage Field", "ecl_fild01", 97, 314);
}
naviregisterwarp("Warper > Einbroch Field", "ein_fild01", 142, 225);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Einbroch Field", "ein_fild03", 187, 228);
naviregisterwarp("Warper > Einbroch Field", "ein_fild04", 185, 173);
naviregisterwarp("Warper > Einbroch Field", "ein_fild05", 216, 173);
naviregisterwarp("Warper > Einbroch Field", "ein_fild06", 195, 148);
naviregisterwarp("Warper > Einbroch Field", "ein_fild07", 272, 220);
naviregisterwarp("Warper > Einbroch Field", "ein_fild08", 173, 214);
naviregisterwarp("Warper > Einbroch Field", "ein_fild09", 207, 174);
if (!checkre(0)) {
naviregisterwarp("Warper > Einbroch Field", "ein_fild02", 182, 141);
naviregisterwarp("Warper > Einbroch Field", "ein_fild10", 196, 200);
}
}
if (checkre(0)) {
naviregisterwarp("Warper > El Dicastes Field", "dic_fild01", 143, 132);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > El Dicastes Field", "dic_fild02", 143, 217);
}
}
naviregisterwarp("Warper > Geffen Field 0", "gef_fild00", 46, 199);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Geffen Field 1", "gef_fild01", 213, 204);
naviregisterwarp("Warper > Geffen Field 2", "gef_fild02", 195, 212);
naviregisterwarp("Warper > Geffen Field 3", "gef_fild03", 257, 192);
naviregisterwarp("Warper > Geffen Field 4", "gef_fild04", 188, 171);
naviregisterwarp("Warper > Geffen Field 5", "gef_fild05", 166, 263);
naviregisterwarp("Warper > Geffen Field 6", "gef_fild06", 248, 158);
naviregisterwarp("Warper > Geffen Field 7", "gef_fild07", 195, 191);
naviregisterwarp("Warper > Geffen Field 8", "gef_fild08", 186, 183);
naviregisterwarp("Warper > Geffen Field 9", "gef_fild09", 221, 117);
naviregisterwarp("Warper > Geffen Field 10", "gef_fild10", 178, 218);
naviregisterwarp("Warper > Geffen Field 11", "gef_fild11", 136, 328);
naviregisterwarp("Warper > Geffen Field 13", "gef_fild13", 235, 235);
if (checkre(0)) {
naviregisterwarp("Warper > Geffen Field 12", "gef_fild12", 240, 181);
naviregisterwarp("Warper > Geffen Field 14", "gef_fild14", 211, 185);
}
}
naviregisterwarp("Warper > Kunlun Field 1", "gon_fild01", 220, 227);
naviregisterwarp("Warper > Hugel Field 1", "hu_fild01", 268, 101);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Hugel Field 2", "hu_fild02", 222, 193);
naviregisterwarp("Warper > Hugel Field 4", "hu_fild04", 252, 189);
naviregisterwarp("Warper > Hugel Field 5", "hu_fild05", 196, 106);
naviregisterwarp("Warper > Hugel Field 6", "hu_fild06", 216, 220);
if (!checkre(0)) {
naviregisterwarp("Warper > Hugel Field 3", "hu_fild03", 232, 185);
naviregisterwarp("Warper > Hugel Field 7", "hu_fild07", 227, 197);
}
}
if (checkre(0)) {
naviregisterwarp("Warper > Lasagna Field 1", "lasa_fild01", 344, 371);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Lasagna Field 2", "lasa_fild02", 20, 98);
}
}
naviregisterwarp("Warper > Lighthalzen Field 1", "lhz_fild01", 240, 179);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Lighthalzen Field 2", "lhz_fild02", 185, 235);
naviregisterwarp("Warper > Lighthalzen Field 3", "lhz_fild03", 240, 226);
}
naviregisterwarp("Warper > Luoyang Field 1", "lou_fild01", 229, 187);
naviregisterwarp("Warper > Lutie Field 1", "xmas_fild01", 115, 145);
if (checkre(0)) {
naviregisterwarp("Warper > Malaya Field 1", "ma_fild01", 40, 272);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Malaya Field 2", "ma_fild02", 207, 180);
}
}
naviregisterwarp("Warper > Manuk Field 1", "man_fild01", 35, 236);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Manuk Field 2", "man_fild02", 35, 262);
naviregisterwarp("Warper > Manuk Field 3", "man_fild03", 84, 365);
}
naviregisterwarp("Warper > Mjolnir Field 1", "mjolnir_01", 204, 120);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Mjolnir Field 2", "mjolnir_02", 175, 193);
naviregisterwarp("Warper > Mjolnir Field 3", "mjolnir_03", 208, 213);
naviregisterwarp("Warper > Mjolnir Field 4", "mjolnir_04", 179, 180);
naviregisterwarp("Warper > Mjolnir Field 5", "mjolnir_05", 181, 240);
naviregisterwarp("Warper > Mjolnir Field 6", "mjolnir_06", 195, 270);
naviregisterwarp("Warper > Mjolnir Field 7", "mjolnir_07", 235, 202);
naviregisterwarp("Warper > Mjolnir Field 8", "mjolnir_08", 188, 215);
naviregisterwarp("Warper > Mjolnir Field 9", "mjolnir_09", 205, 144);
naviregisterwarp("Warper > Mjolnir Field 10", "mjolnir_10", 245, 223);
naviregisterwarp("Warper > Mjolnir Field 11", "mjolnir_11", 180, 206);
naviregisterwarp("Warper > Mjolnir Field 12", "mjolnir_12", 196, 208);
}
naviregisterwarp("Warper > Moscovia Field 1", "mosk_fild01", 82, 104);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Moscovia Field 2", "mosk_fild02", 131, 147);
}
naviregisterwarp("Warper > Niflheim Field 1", "nif_fild01", 215, 229);
if (!.OnlyFirstFld) {
naviregisterwarp("Warer > Niflheim Field 2", "nif_fild02", 167, 234);
}
naviregisterwarp("Warper > Payon Forest 1", "pay_fild01", 158, 206);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Payon Forest 2", "pay_fild02", 151, 219);
naviregisterwarp("Warper > Payon Forest 3", "pay_fild03", 205, 148);
naviregisterwarp("Warper > Payon Forest 4", "pay_fild04", 186, 247);
naviregisterwarp("Warper > Payon Forest 6", "pay_fild06", 193, 235);
naviregisterwarp("Warper > Payon Forest 7", "pay_fild07", 200, 177);
naviregisterwarp("Warper > Payon Forest 8", "pay_fild08", 137, 189);
naviregisterwarp("Warper > Payon Forest 9", "pay_fild09", 201, 224);
naviregisterwarp("Warper > Payon Forest 10", "pay_fild10", 160, 205);
if (!checkre(0)) {
naviregisterwarp("Warper > Payon Forest 5", "pay_fild05", 134, 204);
naviregisterwarp("Warper > Payon Forest 11", "pay_fild11", 194, 150);
}
}
naviregisterwarp("Warper > Prontera Field 0", "prt_fild00", 208, 227);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Prontera Field 1", "prt_fild01", 190, 206);
naviregisterwarp("Warper > Prontera Field 2", "prt_fild02", 240, 206);
naviregisterwarp("Warper > Prontera Field 3", "prt_fild03", 190, 143);
naviregisterwarp("Warper > Prontera Field 4", "prt_fild04", 307, 252);
naviregisterwarp("Warper > Prontera Field 5", "prt_fild05", 239, 213);
naviregisterwarp("Warper > Prontera Field 6", "prt_fild06", 185, 188);
naviregisterwarp("Warper > Prontera Field 7", "prt_fild07", 193, 194);
naviregisterwarp("Warper > Prontera Field 8", "prt_fild08", 187, 218);
naviregisterwarp("Warper > Prontera Field 9", "prt_fild09", 210, 183);
naviregisterwarp("Warper > Prontera Field 10", "prt_fild10", 195, 149);
naviregisterwarp("Warper > Prontera Field 11", "prt_fild11", 198, 164);
}
naviregisterwarp("Warper > Rachel Field 1", "ra_fild01", 192, 162);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Rachel Field 3", "ra_fild03", 202, 206);
naviregisterwarp("Warper > Rachel Field 4", "ra_fild04", 202, 208);
naviregisterwarp("Warper > Rachel Field 5", "ra_fild05", 225, 202);
naviregisterwarp("Warper > Rachel Field 6", "ra_fild06", 202, 214);
naviregisterwarp("Warper > Rachel Field 8", "ra_fild08", 217, 201);
naviregisterwarp("Warper > Rachel Field 12", "ra_fild12", 175, 200);
if (!checkre(0)) {
naviregisterwarp("Warper > Rachel Field 2", "ra_fild02", 235, 166);
naviregisterwarp("Warper > Rachel Field 7", "ra_fild07", 263, 196);
naviregisterwarp("Warper > Rachel Field 9", "ra_fild09", 87, 121);
naviregisterwarp("Warper > Rachel Field 10", "ra_fild10", 277, 181);
naviregisterwarp("Warper > Rachel Field 11", "ra_fild11", 221, 185);
naviregisterwarp("Warper > Rachel Field 13", "ra_fild13", 174, 197);
}
}
if (.Satan_Morocc) {
naviregisterwarp("Warper > Sograt Desert 1", "moc_fild01", 219, 205);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Sograt Desert 2", "moc_fild02", 177, 206);
naviregisterwarp("Warper > Sograt Desert 3", "moc_fild03", 194, 182);
naviregisterwarp("Warper > Sograt Desert 7", "moc_fild07", 224, 170);
naviregisterwarp("Warper > Sograt Desert 11", "moc_fild11", 198, 216);
naviregisterwarp("Warper > Sograt Desert 12", "moc_fild12", 156, 187);
naviregisterwarp("Warper > Sograt Desert 13", "moc_fild13", 185, 263);
naviregisterwarp("Warper > Sograt Desert 16", "moc_fild16", 206, 228);
naviregisterwarp("Warper > Sograt Desert 17", "moc_fild17", 208, 238);
naviregisterwarp("Warper > Sograt Desert 18", "moc_fild18", 209, 223);
naviregisterwarp("Warper > Sograt Desert 19", "moc_fild19", 85, 97);
naviregisterwarp("Warper > Sograt Desert 20", "moc_fild20", 207, 202);
naviregisterwarp("Warper > Sograt Desert 21", "moc_fild21", 31, 195);
naviregisterwarp("Warper > Sograt Desert 22", "moc_fild22", 38, 195);
}
} else {
naviregisterwarp("Warper > Sograt Desert 1", "moc_fild01", 219, 205);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Sograt Desert 2", "moc_fild02", 177, 206);
naviregisterwarp("Warper > Sograt Desert 3", "moc_fild03", 194, 182);
naviregisterwarp("Warper > Sograt Desert 4", "moc_fild04", 146, 297);
naviregisterwarp("Warper > Sograt Desert 5", "moc_fild05", 204, 197);
naviregisterwarp("Warper > Sograt Desert 6", "moc_fild06", 275, 302);
naviregisterwarp("Warper > Sograt Desert 7", "moc_fild07", 224, 170);
naviregisterwarp("Warper > Sograt Desert 8", "moc_fild08", 139, 123);
naviregisterwarp("Warper > Sograt Desert 9", "moc_fild09", 101, 110);
naviregisterwarp("Warper > Sograt Desert 10", "moc_fild10", 341, 39);
naviregisterwarp("Warper > Sograt Desert 11", "moc_fild11", 198, 216);
naviregisterwarp("Warper > Sograt Desert 12", "moc_fild12", 156, 187);
naviregisterwarp("Warper > Sograt Desert 13", "moc_fild13", 185, 263);
naviregisterwarp("Warper > Sograt Desert 14", "moc_fild14", 223, 222);
naviregisterwarp("Warper > Sograt Desert 15", "moc_fild15", 170, 257);
naviregisterwarp("Warper > Sograt Desert 16", "moc_fild16", 206, 228);
naviregisterwarp("Warper > Sograt Desert 17", "moc_fild17", 208, 238);
naviregisterwarp("Warper > Sograt Desert 18", "moc_fild18", 209, 223);
naviregisterwarp("Warper > Sograt Desert 19", "moc_fild19", 85, 97);
}
}
naviregisterwarp("Warper > Splendide Field 1", "spl_fild01", 175, 186);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Splendide Field 2", "spl_fild02", 236, 184);
naviregisterwarp("Warper > Splendide Field 3", "spl_fild03", 188, 204);
}
naviregisterwarp("Warper > Umbala Field 1", "um_fild01", 217, 206);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Umbala Field 2", "um_fild02", 223, 221);
naviregisterwarp("Warper > Umbala Field 3", "um_fild03", 237, 215);
naviregisterwarp("Warper > Umbala Field 4", "um_fild04", 202, 197);
}
naviregisterwarp("Warper > Veins Field 1", "ve_fild01", 186, 175);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Veins Field 2", "ve_fild02", 196, 370);
naviregisterwarp("Warper > Veins Field 3", "ve_fild03", 222, 45);
naviregisterwarp("Warper > Veins Field 4", "ve_fild04", 51, 250);
naviregisterwarp("Warper > Veins Field 6", "ve_fild06", 150, 223);
naviregisterwarp("Warper > Veins Field 7", "ve_fild07", 149, 307);
if (!checkre(0)) {
naviregisterwarp("Warper > Veins Field 5", "ve_fild05", 202, 324);
}
}
naviregisterwarp("Warper > Juno Field 1", "yuno_fild01", 189, 224);
if (!.OnlyFirstFld) {
naviregisterwarp("Warper > Juno Field 2", "yuno_fild02", 192, 207);
naviregisterwarp("Warper > Juno Field 3", "yuno_fild03", 221, 157);
naviregisterwarp("Warper > Juno Field 4", "yuno_fild04", 226, 199);
naviregisterwarp("Warper > Juno Field 6", "yuno_fild06", 187, 232);
naviregisterwarp("Warper > Juno Field 7", "yuno_fild07", 231, 174);
naviregisterwarp("Warper > Juno Field 8", "yuno_fild08", 196, 203);
naviregisterwarp("Warper > Juno Field 9", "yuno_fild09", 183, 214);
naviregisterwarp("Warper > Juno Field 11", "yuno_fild11", 195, 226);
naviregisterwarp("Warper > Juno Field 12", "yuno_fild12", 210, 304);
if (!checkre(0)) {
naviregisterwarp("Warper > Juno Field 5", "yuno_fild05", 223, 177);
naviregisterwarp("Warper > Juno Field 10", "yuno_fild10", 200, 124);
}
}
naviregisterwarp("Warper > Abyss Lakes 1", "abyss_01", 261, 272);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Abyss Lakes 2", "abyss_02", 275, 270);
naviregisterwarp("Warper > Abyss Lakes 3", "abyss_03", 116, 27);
}
naviregisterwarp("Warper > Amatsu Dungeon 1", "ama_dun01", 228, 11);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Amatsu Dungeon 2", "ama_dun02", 34, 41);
naviregisterwarp("Warper > Amatsu Dungeon 3", "ama_dun03", 119, 14);
}
naviregisterwarp("Warper > Anthell 1", "anthell01", 35, 262);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Anthell 2", "anthell02", 168, 170);
}
naviregisterwarp("Warper > Ancient Shrine Maze", "ayo_dun01", 275, 19);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Inside Ancient Shrine", "ayo_dun02", 24, 26);
}
naviregisterwarp("Warper > Beach Dungeon 1", "beach_dun", 266, 67);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Beach Dungeon 2", "beach_dun2", 255, 244);
naviregisterwarp("Warper > Beach Dungeon 3", "beach_dun3", 23, 260);
}
naviregisterwarp("Warper > Bio Lab 1", "lhz_dun01", 150, 288);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Bio Lab 2", "lhz_dun02", 150, 18);
naviregisterwarp("Warper > Bio Lab 3", "lhz_dun03", 140, 134);
if (checkre(0)) {
naviregisterwarp("Warper > Bio Lab 4", "lhz_dun04", 244, 52);
}
}
naviregisterwarp("Warper > Brasilis Dungeon 1", "bra_dun01", 87, 47);
if (!.OnlyFirstDun) {
if (checkre(0)) {
naviregisterwarp("Warper > Brasilis Dungeon 2", "bra_dun02", 262, 262);
}
}
naviregisterwarp("Warper > Byalan Dungeon 1", "iz_dun00", 168, 168);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Byalan Dungeon 2", "iz_dun01", 253, 252);
naviregisterwarp("Warper > Byalan Dungeon 3", "iz_dun02", 236, 204);
naviregisterwarp("Warper > Byalan Dungeon 4", "iz_dun03", 32, 63);
naviregisterwarp("Warper > Byalan Dungeon 5", "iz_dun04", 26, 27);
if (checkre(0)) {
naviregisterwarp("Warper > Byalan Dungeon 6", "iz_dun05", 141, 187);
}
}
naviregisterwarp("Warper > Clock Tower 1", "c_tower1", 199, 159);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Clock Tower 2", "c_tower2", 148, 283);
naviregisterwarp("Warper > Clock Tower 3", "c_tower3", 65, 147);
naviregisterwarp("Warper > Clock Tower 4", "c_tower4", 56, 155);
naviregisterwarp("Warper > Basement 1", "alde_dun01", 297, 25);
naviregisterwarp("Warper > Basement 2", "alde_dun02", 127, 169);
naviregisterwarp("Warper > Basement 3", "alde_dun03", 277, 178);
naviregisterwarp("Warper > Basement 4", "alde_dun04", 268, 74);
}
naviregisterwarp("Warper > Coal Mines 1", "mjo_dun01", 52, 17);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Coal Mines 2", "mjo_dun02", 381, 343);
naviregisterwarp("Warper > Coal Mines 3", "mjo_dun03", 302, 262);
}
naviregisterwarp("Warper > Culvert 1", "prt_sewb1", 131, 247);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Culvert 2", "prt_sewb2", 19, 19);
naviregisterwarp("Warper > Culvert 3", "prt_sewb3", 180, 169);
naviregisterwarp("Warper > Culvert 4", "prt_sewb4", 100, 92);
}
naviregisterwarp("Warper > Cursed Abbey 1", "abbey01", 51, 14);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Cursed Abbey 2", "abbey02", 150, 11);
naviregisterwarp("Warper > Cursed Abbey 3", "abbey03", 120, 10);
}
if (checkre(0)) {
naviregisterwarp("Warper > Dewata Dungeon 1", "dew_dun01", 285, 160);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Dewata Dungeon 2", "dew_dun02", 299, 29);
}
}
naviregisterwarp("Warper > Einbroch Dungeon 1", "ein_dun01", 22, 14);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Einbroch Dungeon 2", "ein_dun02", 292, 290);
}
naviregisterwarp("Warper > Gefenia 1", "gefenia01", 40, 103);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Gefenia 2", "gefenia02", 203, 34);
naviregisterwarp("Warper > Gefenia 3", "gefenia03", 266, 168);
naviregisterwarp("Warper > Gefenia 4", "gefenia04", 130, 272);
}
naviregisterwarp("Warper > Geffen Dungeon 1", "gef_dun00", 104, 99);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Geffen Dungeon 2", "gef_dun01", 115, 236);
naviregisterwarp("Warper > Geffen Dungeon 3", "gef_dun02", 106, 132);
naviregisterwarp("Warper > Geffen Dungeon 4", "gef_dun03", 203, 200);
}
naviregisterwarp("Warper > Entrance", "glast_01", 370, 304);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Castle 1", "gl_cas01", 199, 29);
naviregisterwarp("Warper > Castle 2", "gl_cas02", 104, 25);
naviregisterwarp("Warper > Chivalry 1", "gl_knt01", 150, 15);
naviregisterwarp("Warper > Chivalry 2", "gl_knt02", 157, 287);
naviregisterwarp("Warper > Churchyard", "gl_chyard", 147, 15);
naviregisterwarp("Warper > Culvert 1", "gl_sew01", 258, 255);
naviregisterwarp("Warper > Culvert 2", "gl_sew02", 108, 291);
naviregisterwarp("Warper > Culvert 3", "gl_sew03", 171, 283);
naviregisterwarp("Warper > Culvert 4", "gl_sew04", 68, 277);
naviregisterwarp("Warper > St. Abbey", "gl_church", 156, 7);
naviregisterwarp("Warper > Staircase Dungeon", "gl_step", 12, 7);
naviregisterwarp("Warper > Underground Cave 1", "gl_dun01", 133, 271);
naviregisterwarp("Warper > Underground Cave 2", "gl_dun02", 224, 274);
naviregisterwarp("Warper > Underground Prison 1", "gl_prison", 14, 70);
naviregisterwarp("Warper > Underground Prison 2", "gl_prison1", 150, 14);
}
naviregisterwarp("Warper > Kunlun Dungeon 1", "gon_dun01", 153, 53);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Kunlun Dungeon 2", "gon_dun02", 28, 113);
naviregisterwarp("Warper > Kunlun Dungeon 3", "gon_dun03", 68, 16);
}
naviregisterwarp("Warper > Hidden Dungeon 1", "prt_maze01", 176, 7);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Hidden Dungeon 2", "prt_maze02", 93, 20);
naviregisterwarp("Warper > Hidden Dungeon 3", "prt_maze03", 23, 8);
}
naviregisterwarp("Warper > Ice Dungeon 1", "ice_dun01", 157, 14);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Ice Dungeon 2", "ice_dun02", 151, 155);
naviregisterwarp("Warper > Ice Dungeon 3", "ice_dun03", 149, 22);
naviregisterwarp("Warper > Ice Dungeon 4", "ice_dun04", 33, 158);
}
naviregisterwarp("Warper > Entrance", "jupe_cave", 140, 51);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Juperos 1", "juperos_01", 53, 247);
naviregisterwarp("Warper > Juperos 2", "juperos_02", 37, 63);
naviregisterwarp("Warper > Core", "jupe_core", 150, 285);
}
naviregisterwarp("Warper > Kiel Dungeon 1", "kh_dun01", 28, 226);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Kiel Dungeon 2", "kh_dun02", 41, 198);
}
if (checkre(0)) {
naviregisterwarp("Warper > Lasagna Dungeon 1", "lasa_dun01", 24, 143);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Lasagna Dungeon 2", "lasa_dun02", 22, 171);
naviregisterwarp("Warper > Lasagna Dungeon 3", "lasa_dun03", 190, 18);
}
}
naviregisterwarp("Warper > The Royal Tomb", "lou_dun01", 218, 196);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Inside the Royal Tomb", "lou_dun02", 282, 20);
naviregisterwarp("Warper > Suei Long Gon", "lou_dun03", 165, 38);
}
naviregisterwarp("Warper > Magma Dungeon 1", "mag_dun01", 126, 68);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Magma Dungeon 2", "mag_dun02", 47, 30);
}
if (checkre(0)) {
naviregisterwarp("Warper > Malangdo Dungeon 1", "mal_dun01", 33, 230);
}
naviregisterwarp("Warper > Moscovia Dungeon 1", "mosk_dun01", 189, 48);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Moscovia Dungeon 2", "mosk_dun02", 165, 30);
naviregisterwarp("Warper > Moscovia Dungeon 3", "mosk_dun03", 32, 135);
}
naviregisterwarp("Warper > Nidhogg's Dungeon 1", "nyd_dun01", 61, 239);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Nidhogg's Dungeon 2", "nyd_dun02", 60, 271);
}
naviregisterwarp("Warper > Odin Temple 1", "odin_tem01", 298, 167);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Odin Temple 2", "odin_tem02", 224, 149);
naviregisterwarp("Warper > Odin Temple 3", "odin_tem03", 266, 280);
}
naviregisterwarp("Warper > Orc Dungeon 1", "orcsdun01", 32, 170);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Orc Dungeon 2", "orcsdun02", 21, 185);
}
naviregisterwarp("Warper > Payon Dungeon 1", "pay_dun00", 21, 183);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Payon Dungeon 2", "pay_dun01", 19, 33);
naviregisterwarp("Warper > Payon Dungeon 3", "pay_dun02", 19, 63);
naviregisterwarp("Warper > Payon Dungeon 4", "pay_dun03", 155, 159);
naviregisterwarp("Warper > Payon Dungeon 5", "pay_dun04", 201, 204);
}
naviregisterwarp("Warper > Pyramids 1", "moc_pryd01", 192, 9);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Pyramids 2", "moc_pryd02", 10, 192);
naviregisterwarp("Warper > Pyramids 3", "moc_pryd03", 100, 92);
naviregisterwarp("Warper > Pyramids 4", "moc_pryd04", 181, 11);
naviregisterwarp("Warper > Basement 1", "moc_pryd05", 94, 96);
naviregisterwarp("Warper > Basement 2", "moc_pryd06", 192, 8);
if (checkre(0)) {
naviregisterwarp("Warper > Basement 1 - Nightmare Mode", "moc_prydn1", 94, 96);
naviregisterwarp("Warper > Basement 2 - Nightmare Mode", "moc_prydn2", 192, 8);
}
}
naviregisterwarp("Warper > Rachel Sanctuary 1", "ra_san01", 140, 11);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Rachel Sanctuary 2", "ra_san02", 32, 21);
naviregisterwarp("Warper > Rachel Sanctuary 3", "ra_san03", 8, 149);
naviregisterwarp("Warper > Rachel Sanctuary 4", "ra_san04", 204, 218);
naviregisterwarp("Warper > Rachel Sanctuary 5", "ra_san05", 150, 9);
}
if (checkre(0)) {
naviregisterwarp("Warper > Scaraba Hole 1", "dic_dun01", 364, 44);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Scaraba Hole 2", "dic_dun02", 101, 141);
}
}
naviregisterwarp("Warper > Sphinx 1", "in_sphinx1", 288, 9);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Sphinx 2", "in_sphinx2", 149, 81);
naviregisterwarp("Warper > Sphinx 3", "in_sphinx3", 210, 54);
naviregisterwarp("Warper > Sphinx 4", "in_sphinx4", 10, 222);
naviregisterwarp("Warper > Sphinx 5", "in_sphinx5", 100, 99);
}
naviregisterwarp("Warper > Sunken Ship 1", "treasure01", 69, 24);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Sunken Ship 2", "treasure02", 102, 27);
}
naviregisterwarp("Warper > Thanatos Tower 1", "tha_t01", 150, 39);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Thanatos Tower 2", "tha_t02", 150, 136);
naviregisterwarp("Warper > Thanatos Tower 3", "tha_t03", 220, 158);
naviregisterwarp("Warper > Thanatos Tower 4", "tha_t04", 59, 143);
naviregisterwarp("Warper > Thanatos Tower 5", "tha_t05", 62, 11);
naviregisterwarp("Warper > Thanatos Tower 6", "tha_t06", 89, 221);
naviregisterwarp("Warper > Thanatos Tower 7", "tha_t07", 35, 166);
naviregisterwarp("Warper > Thanatos Tower 8", "tha_t08", 93, 148);
naviregisterwarp("Warper > Thanatos Tower 9", "tha_t09", 29, 107);
naviregisterwarp("Warper > Thanatos Tower 10", "tha_t10", 159, 138);
naviregisterwarp("Warper > Thanatos Tower 11", "tha_t11", 19, 20);
naviregisterwarp("Warper > Thanatos Tower 12", "tha_t12", 130, 52);
}
naviregisterwarp("Warper > Thor Volcano 1", "thor_v01", 21, 228);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Thor Volcano 2", "thor_v02", 75, 205);
naviregisterwarp("Warper > Thor Volcano 3", "thor_v03", 34, 272);
}
naviregisterwarp("Warper > Toy Factory 1", "xmas_dun01", 205, 15);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Toy Factory 2", "xmas_dun02", 129, 133);
}
naviregisterwarp("Warper > Entrance", "tur_dun01", 154, 49);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Turtle Dungeon 1", "tur_dun02", 148, 261);
naviregisterwarp("Warper > Turtle Dungeon 2", "tur_dun03", 132, 189);
naviregisterwarp("Warper > Turtle Dungeon 3", "tur_dun04", 100, 192);
}
naviregisterwarp("Warper > Carpenter's Shop in the Tree", "um_dun01", 42, 31);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Passage to a Foreign World", "um_dun02", 48, 30);
naviregisterwarp("Warper > Hvergermil's Fountain", "yggdrasil01", 204, 78);
}
if (checkre(0)) {
naviregisterwarp("Warper > Bifrost Tower 1", "ecl_tdun01", 57, 13);
if (!.OnlyFirstDun) {
naviregisterwarp("Warper > Bifrost Tower 2", "ecl_tdun02", 64, 88);
naviregisterwarp("Warper > Bifrost Tower 3", "ecl_tdun03", 45, 14);
naviregisterwarp("Warper > Bifrost Tower 4", "ecl_tdun04", 26, 23);
}
}
// castles
naviregisterwarp("Warper > Neuschwanstein", "alde_gld", 48, 83);
naviregisterwarp("Warper > Hohenschwangau", "alde_gld", 95, 249);
naviregisterwarp("Warper > Nuenberg", "alde_gld", 142, 85);
naviregisterwarp("Warper > Wuerzburg", "alde_gld", 239, 242);
naviregisterwarp("Warper > Rothenburg", "alde_gld", 264, 90);
naviregisterwarp("Warper > Repherion", "gef_fild13", 214, 75);
naviregisterwarp("Warper > Eeyolbriggar", "gef_fild13", 308, 240);
naviregisterwarp("Warper > Yesnelph", "gef_fild13", 143, 240);
naviregisterwarp("Warper > Bergel", "gef_fild13", 193, 278);
naviregisterwarp("Warper > Mersetzdeitz", "gef_fild13", 305, 87);
naviregisterwarp("Warper > Bright Arbor", "pay_gld", 121, 233);
naviregisterwarp("Warper > Scarlet Palace", "pay_gld", 295, 116);
naviregisterwarp("Warper > Holy Shadow", "pay_gld", 317, 293);
naviregisterwarp("Warper > Sacred Altar", "pay_gld", 140, 160);
naviregisterwarp("Warper > Bamboo Grove Hill", "pay_gld", 204, 266);
naviregisterwarp("Warper > Kriemhild", "prt_gld", 134, 65);
naviregisterwarp("Warper > Swanhild", "prt_gld", 240, 128);
naviregisterwarp("Warper > Fadhgridh", "prt_gld", 153, 137);
naviregisterwarp("Warper > Skoegul", "prt_gld", 111, 240);
naviregisterwarp("Warper > Gondul", "prt_gld", 208, 240);
naviregisterwarp("Warper > Mardol", "aru_gld", 158, 272);
naviregisterwarp("Warper > Cyr", "aru_gld", 83, 47);
naviregisterwarp("Warper > Horn", "aru_gld", 68, 155);
naviregisterwarp("Warper > Gefn", "aru_gld", 299, 345);
naviregisterwarp("Warper > Banadis", "aru_gld", 292, 107);
naviregisterwarp("Warper > Himinn", "sch_gld", 293, 100);
naviregisterwarp("Warper > Andlangr", "sch_gld", 288, 252);
naviregisterwarp("Warper > Viblainn", "sch_gld", 97, 196);
naviregisterwarp("Warper > Hljod", "sch_gld", 137, 90);
naviregisterwarp("Warper > Skidbladnir", "sch_gld", 71, 315);
if (checkre(0)) {
naviregisterwarp("Warper > Kafragarten 1", "te_alde_gld", 48, 83);
naviregisterwarp("Warper > Kafragarten 2", "te_alde_gld", 95, 249);
naviregisterwarp("Warper > Kafragarten 3", "te_alde_gld", 142, 85);
naviregisterwarp("Warper > Kafragarten 4", "te_alde_gld", 239, 242);
naviregisterwarp("Warper > Kafragarten 5", "te_alde_gld", 264, 90);
naviregisterwarp("Warper > Gloria 1", "te_prt_gld", 134, 65);
naviregisterwarp("Warper > Gloria 2", "te_prt_gld", 240, 128);
naviregisterwarp("Warper > Gloria 3", "te_prt_gld", 153, 137);
naviregisterwarp("Warper > Gloria 4", "te_prt_gld", 111, 240);
naviregisterwarp("Warper > Gloria 5", "te_prt_gld", 208, 240);
}
// guild dungeons
naviregisterwarp("Warper > Baldur F1", "gld_dun01", 119, 93);
naviregisterwarp("Warper > Luina F1", "gld_dun02", 39, 161);
naviregisterwarp("Warper > Valkyrie F1", "gld_dun03", 50, 44);
naviregisterwarp("Warper > Britoniah F1", "gld_dun04", 116, 45);
naviregisterwarp("Warper > Arunafeltz", "arug_dun01", 199, 195);
naviregisterwarp("Warper > Schwarzwald", "schg_dun01", 200,124);
if (checkre(0)) {
naviregisterwarp("Warper > Baldur F2", "gld_dun01_2", 119, 93);
naviregisterwarp("Warper > Hall of Abyss", "gld2_pay", 120, 130);
naviregisterwarp("Warper > Luina F2", "gld_dun02_2", 39, 161);
naviregisterwarp("Warper > Hall of Abyss", "gld2_ald", 147, 155);
naviregisterwarp("Warper > Valkyrie F2", "gld_dun03_2", 50, 44);
naviregisterwarp("Warper > Hall of Abyss", "gld2_prt", 140, 132);
naviregisterwarp("Warper > Britoniah F2", "gld_dun04_2", 116, 45);
naviregisterwarp("Warper > Hall of Abyss", "gld2_gef", 152, 118);
naviregisterwarp("Warper > Kafragarten", "teg_dun01", 42, 36);
naviregisterwarp("Warper > Gloria", "teg_dun02", 26, 160);
}
end;
// instances
naviregisterwarp("Warper > Endless Tower", "e_tower", 72, 112);
naviregisterwarp("Warper > Nidhoggur's Nest", "nyd_dun02", 95, 193);
naviregisterwarp("Warper > Orc's Memory", "gef_fild10", 240, 198);
naviregisterwarp("Warper > Sealed Shrine", "monk_test", 306, 143);
if (checkre(0)) {
naviregisterwarp("Warper > Bakonawa Lake", "ma_scene01", 172, 175);
naviregisterwarp("Warper > Bangungot Hospital 2F", "ma_dun01", 151, 8);
naviregisterwarp("Warper > Buwaya Cave", "ma_fild02", 316, 317);
naviregisterwarp("Warper > Devil Tower", "dali02", 137, 115);
naviregisterwarp("Warper > Eclage Interior", "ecl_hub01", 129, 12);
naviregisterwarp("Warper > Faceworms Nest", "dali", 85, 64);
naviregisterwarp("Warper > Geffen Magic Tournament", "dali", 94, 141);
naviregisterwarp("Warper > Ghost Palace", "dali02", 46, 128);
naviregisterwarp("Warper > Hazy Forest", "bif_fild01", 161, 334);
naviregisterwarp("Warper > Horror Toy Factory", "xmas", 234, 298);
naviregisterwarp("Warper > Malangdo Culvert", "mal_in01", 164, 21);
naviregisterwarp("Warper > Octopus Cave", "mal_dun01", 152, 230);
naviregisterwarp("Warper > Old Glast Heim", "glast_01", 204, 268);
naviregisterwarp("Warper > Sarah and Fenrir", "dali02", 92, 141);
naviregisterwarp("Warper > Sara Memory", "dali", 133, 108);
naviregisterwarp("Warper > Wolfchev's Laboratory", "lhz_dun04", 148, 269);
}
// special
naviregisterwarp("Warper > Auction Hall", "auction_01", 22, 68);
naviregisterwarp("Warper > Battlegrounds", "bat_room", 154, 150);
naviregisterwarp("Warper > Casino", "cmd_in02", 179, 129);
naviregisterwarp("Warper > Kunlun Arena", "gon_test", 48, 10);
naviregisterwarp("Warper > Izlude Arena", "arena_room", 100, 88);
naviregisterwarp("Warper > Monster Race Arena", "p_track01", 62, 41);
naviregisterwarp("Warper > Turbo Track", "turbo_room", 99, 114);
if (checkre(0)) {
naviregisterwarp("Warper > Dimensional Rift", "dali", 113, 82);
naviregisterwarp("Warper > Eden Group Headquarters", "moc_para01", 31, 14);
naviregisterwarp("Warper > Para Market", "paramk", 97, 17);
}
OnInit:
.Satan_Morocc = true; // false will enable moc_fild 4,5,6,8,9,10,14,15 while disable moc_fild 20,21,22 Default is true.
.OnlyFirstFld = false; // true will teleport to the first level of the Fields Default is false.

View File

@@ -183,10 +183,15 @@ que_ng,152,167,3 script Master Miller 901,{
callfunc "Job_Change",Job_Gunslinger;
set GUNS_Q,6;
completequest 6024;
if (rand(1,2) == 1) {
getitem 13100,1; // Six_Shooter
if (checkre(0)) {
getitem 13180,1; // Novice_Rifle
getitem 12149,2; // Bullet_Case
getitem 12151,1; // Bullet_Case_Silver
} else {
getitem 13150,1; // Branch
if (rand(2))
getitem 13100,1; // Six_Shooter
else
getitem 13150,1; // Branch
}
close;
}

View File

@@ -883,7 +883,7 @@ OnTimer28500:
mes "Hey there, are you alive?";
mes "I did not expect to meet someone who is still alive.";
next;
.@item_name_req$ = getitemname(6672);// Shard_of_Gray
.@item_name_req$ = getitemname(6672);// Gray_Shard
mes "[King]";
mes "Do you possibly have the ^006400" + .@item_name_req$ + "^000000?";
mes "Can you give it to me?";

View File

@@ -371,6 +371,11 @@ job4_tro mapflag nobranch
2@ch_t mapflag nobranch
3@ch_t mapflag nobranch
//============================================================
// Training Ground outside Prontera
//============================================================
tra_fild mapflag nobranch
//============================================================
// Episode 18 - Direction of Prayer
//============================================================

View File

@@ -191,7 +191,7 @@ OnInit:
//============================================================
//= Archer
- marketshop Arrow_Archer HIDDEN_NPC,1750:-1:-1,1770:3:-1,1751:5:-1,1752:5:-1,1754:5:-1,1755:5:-1,1756:5:-1,1757:5:-1,1767:5:-1,1762:5:-1,1065:50:-1,7940:100:-1
- marketshop Arrow_Archer HIDDEN_NPC,1750:-1:-1,1770:-1:-1,1751:-1:-1,1752:-1:-1,1754:-1:-1,1755:-1:-1,1756:-1:-1,1757:-1:-1,1767:-1:-1,1762:-1:-1,1065:-1:-1,7940:-1:-1
//= Gunslinger
- shop Weapons_Gunslinger -1,13120:-1,13122:-1,13189:-1,13195:-1,13192:-1,13193:-1,13194:-1,13197:-1,13198:-1,28200:-1,28201:-1

View File

@@ -446,7 +446,7 @@ har_in01,19,86,4 script Weapon Dealer#rockridge01 1_F_02,{
- marketshop armor_rockridge_1 -1,2247:500000:10,2248:500000:10,5018:700000:10
- marketshop armor_rockridge_2 -1,5067:700000:10,5071:700000:10,5075:700000:10
- marketshop armor_rockridge_3 -1,2267:100000:10,2268:500000:10,5155:5000:10
- marketshop armor_rockridge_3 -1,2267:100000:10,2268:500000:10,2241:5000:10
- marketshop armor_rockridge_4 -1,5067:700000:10,5071:700000:10,5075:700000:10,31144:1500000:3
har_in01,16,86,4 script Armor Dealer#rockridge02 1_M_04,{
@@ -499,6 +499,22 @@ har_in01,16,86,4 script Armor Dealer#rockridge02 1_M_04,{
else if (.@day == FRIDAY)
callshop "armor_rockridge_4", 1;
end;
OnSun0000: // custom restock, no official info
npcshopupdate "armor_rockridge_1",2247,0,10;
npcshopupdate "armor_rockridge_1",2248,0,10;
npcshopupdate "armor_rockridge_1",5018,0,10;
npcshopupdate "armor_rockridge_2",5067,0,10;
npcshopupdate "armor_rockridge_2",5071,0,10;
npcshopupdate "armor_rockridge_2",5075,0,10;
npcshopupdate "armor_rockridge_3",2267,0,10;
npcshopupdate "armor_rockridge_3",2268,0,10;
npcshopupdate "armor_rockridge_3",2241,0,10;
npcshopupdate "armor_rockridge_4",5067,0,10;
npcshopupdate "armor_rockridge_4",5071,0,10;
npcshopupdate "armor_rockridge_4",5075,0,10;
npcshopupdate "armor_rockridge_4",31144,0,3;
end;
}
har_in01,34,84,3 shop Tool Dealer#rockridge00 1_F_03,611:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,610:-1

View File

@@ -11,7 +11,7 @@ dali02,51,130,4 script Dimension Traveler 4_F_SHABBY,{
mes "- You cannot proceed because you have too many items with you. -";
close;
}
.@item_name_req$ = getitemname(6672);// Shard_of_Gray
.@item_name_req$ = getitemname(6672);// Gray_Shard
mes "[Dimension Traveler]";
mes "Adventurer friend, <ITEM>[" + .@item_name_req$ + "]<INFO>6672</INFO></ITEM> is what I need. How about exchanging it with something I have?";
next;

View File

@@ -1401,11 +1401,11 @@ mal_in01,20,107,3 script Lace La Zard#cos_ect 4_FROG,{
25797, 29427, "Increases damage of Knuckle Arrow by 15%.", // SuraStone_Robe2 SuraStone_Robe2_
25801, 29614, "Increases damage of Diamond Dust by 15%.", // SorcererStone_Robe2 SorcererStone_Robe2_
25805, 29618, "Increases damage of Fatal Menace by 15%.", // ShadowchaserStone_Robe2 ShadowchaserStone_Robe2_
25842, 29654, "Increases damage of Eswhoo by 20%.", // SoulReaperStone_Robe SoulReaperStone_Robe_
25849, 29658, "Increases damage of Falling Star, Solar Burst and Full Moon Kick by 20%.", // StarEmperorStone_Garment StarEmperorStone_Garment_
25842, 29654, "Increases damage of Eswhoo by 20%.", // SoulReaperStone_Robe Soulreaper_Robe
25849, 29658, "Increases damage of Falling Star, Solar Burst and Full Moon Kick by 20%.", // StarEmperorStone_Garment Staremperor_Robe
25853, 29662, "Increases damage of Swirling Petal by 25%.", // KagerouStone_Robe KagerouStone_Robe_
25854, 29663, "Increases damage of Flaming Petals by 20%.", // OboroStone_Robe OboroStone_Robe_
25858, 29667, "Increases damage of Hammer of God and Round Trip by 20%.", // GunslingerStone_Robe GunslingerStone_Robe_
25858, 29667, "Increases damage of Hammer of God and Round Trip by 20%.", // GunslingerStone_Robe Rebellion_Robe
25862, 29671, "Increases damage of Picky Peck and Catnip Meteor by 20%.", // DoramStone_Robe DoramStone_Robe_
1000011, 310003, "Increases damage of Aimed Bolt by 15%.", // RangerStone_II_Garment Ranger_Robe2
1000015, 310007, "Increases damage of Arms Cannon by 15%.", // MechanicStone_II_Garment Mechanic_Robe2

View File

@@ -10,6 +10,7 @@
//= Spawns monsters in towns.
//===== Additional Comments: =================================
//= 1.0 First version, Renewal spawns.
//= 1.1 Removed Dummy monsters.
//============================================================
//==================================================
@@ -26,11 +27,11 @@ brasilis,96,50,8,8 monster Strange Hydra 2081,5,5000
alb_ship,0,0 monster Strange Mouse 2057,25
//==================================================
// Prontera, Training Dummy Area
// Prontera, Training Dummy Area (removed)
//==================================================
prontera,251,77 monster Dummy Lv50 2409,1,5000
prontera,259,77 monster Dummy Lv50 2409,1,5000
prontera,251,66 monster Dummy Lv100 2410,1,5000
prontera,259,66 monster Dummy Lv100 2410,1,5000
prontera,251,55 monster Dummy Lv150 2411,1,5000
prontera,259,55 monster Dummy Lv150 2411,1,5000
// prontera,251,77 monster Dummy Lv50 2409,1,5000
// prontera,259,77 monster Dummy Lv50 2409,1,5000
// prontera,251,66 monster Dummy Lv100 2410,1,5000
// prontera,259,66 monster Dummy Lv100 2410,1,5000
// prontera,251,55 monster Dummy Lv150 2411,1,5000
// prontera,259,55 monster Dummy Lv150 2411,1,5000

49
npc/re/mobs/tra_fild.txt Normal file
View File

@@ -0,0 +1,49 @@
//===== rAthena Script =======================================
//= Training Zone
//===== Description: =========================================
//= Training Dummy monster spawn script.
//===== Changelog: ===========================================
//= 1.0 Initial Release [Capuche]
//============================================================
tra_fild,57,159 monster Dummy (Small) 21064,1
tra_fild,57,145 monster Dummy (Small) 21064,1
tra_fild,57,131 monster Dummy (Small) 21064,1
tra_fild,70,159 monster Dummy (Medium) 21065,1
tra_fild,70,145 monster Dummy (Medium) 21065,1
tra_fild,70,131 monster Dummy (Medium) 21065,1
tra_fild,83,159 monster Dummy (Large) 21066,1
tra_fild,83,145 monster Dummy (Large) 21066,1
tra_fild,83,131 monster Dummy (Large) 21066,1
tra_fild,101,159 monster Dummy (Small) 21064,1
tra_fild,101,145 monster Dummy (Small) 21064,1
tra_fild,101,131 monster Dummy (Small) 21064,1
tra_fild,114,159 monster Dummy (Medium) 21065,1
tra_fild,114,145 monster Dummy (Medium) 21065,1
tra_fild,114,131 monster Dummy (Medium) 21065,1
tra_fild,127,159 monster Dummy (Large) 21066,1
tra_fild,127,145 monster Dummy (Large) 21066,1
tra_fild,127,131 monster Dummy (Large) 21066,1
tra_fild,66,70 monster Dummy (Neutral Lv1) 21077,1
tra_fild,74,70 monster Dummy (Water Lv1) 21078,1
tra_fild,82,70 monster Dummy (Earth Lv1) 21079,1
tra_fild,90,70 monster Dummy (Fire Lv1) 21080,1
tra_fild,98,70 monster Dummy (Wind Lv1) 21081,1
tra_fild,106,70 monster Dummy (Poison Lv1) 21082,1
tra_fild,114,70 monster Dummy (Holy Lv1) 21083,1
tra_fild,122,70 monster Dummy (Dark Lv1) 21084,1
tra_fild,130,70 monster Dummy (Ghost Lv1) 21085,1
tra_fild,138,70 monster Dummy (Undead Lv1) 21086,1
tra_fild,66,50 monster Dummy (Neutral) 21067,1
tra_fild,74,50 monster Dummy (Dragon) 21068,1
tra_fild,82,50 monster Dummy (Brute) 21069,1
tra_fild,90,50 monster Dummy (Human) 21070,1
tra_fild,98,50 monster Dummy (Insect) 21071,1
tra_fild,106,50 monster Dummy (Fish) 21072,1
tra_fild,114,50 monster Dummy (Demon) 21073,1
tra_fild,122,50 monster Dummy (Plant) 21074,1
tra_fild,130,50 monster Dummy (Angel) 21075,1
tra_fild,138,50 monster Dummy (Undead) 21076,1

View File

@@ -8,6 +8,7 @@ npc: npc/re/mobs/int_land.txt
npc: npc/re/mobs/prt_cas.txt
npc: npc/re/mobs/special_border_area.txt
npc: npc/re/mobs/towns.txt
npc: npc/re/mobs/tra_fild.txt
npc: npc/re/mobs/verus.txt
// -------------------------- Dungeons --------------------------

View File

@@ -53,6 +53,7 @@ npc: npc/re/warps/other/paradise.txt
npc: npc/re/warps/other/s_workshop.txt
npc: npc/re/warps/other/sign.txt
npc: npc/re/warps/other/special_border_area.txt
npc: npc/re/warps/other/TrainingZone.txt
npc: npc/re/warps/other/un_myst.txt
npc: npc/re/warps/other/verus.txt
npc: npc/re/warps/guildcastles.txt

View File

@@ -0,0 +1,91 @@
//===== rAthena Script =======================================
//= Training Zone
//===== Description: =========================================
//= NPC warp related to the training zone.
//===== Changelog: ===========================================
//= 1.0 Initial Release [Capuche]
//============================================================
prontera,246,62,3 script Training Instructor#sol1 8W_SOLDIER,{
mes "[Training Instructor]";
mes "If you want to train in a wider area, I'll let you in.";
next;
mes "[Training Instructor]";
mes "The training ground is divided into two main areas.";
next;
mes "[Training Instructor]";
mes "Upper area where you can check the applied force based on monster size.";
next;
mes "[Training Instructor]";
mes "The lower area where you can check the force applied depending on the monster's attribute and form.";
next;
mes "[Training Instructor]";
mes "Where would you like to enter?";
next;
switch( select( "Upper area", "Lower area", "Do not enter" ) ) {
case 1:
mes "[Training Instructor]";
mes "Then I will guide you.";
close2;
warp "tra_fild",112,167;
end;
case 2:
mes "[Training Instructor]";
mes "Then I will guide you.";
close2;
warp "tra_fild",111,74;
end;
case 3:
mes "[Training Instructor]";
mes "If you need guidance, come to me.";
close;
}
}
tra_fild,111,79,3 script Training Instructor#sol3 8W_SOLDIER,{
mes "[Training Instructor]";
mes "Are you sure you want to move to the upper section?";
next;
switch( select( "Move", "Do not move", "Warp to Prontera." ) ) {
case 1:
mes "[Training Instructor]";
mes "Go to upper section!!!";
close2;
warp "tra_fild",112,167;
end;
case 2:
mes "[Training Instructor]";
mes "Talk to me if you need to move.";
close;
case 3:
mes "[Training Instructor]";
mes "I'll warp you.";
close2;
warp "prontera",246,60;
end;
}
}
tra_fild,112,171,3 script Training Instructor#sol2 8W_SOLDIER,{
mes "[Training Instructor]";
mes "Are you sure you want to move to the lower section?";
next;
switch( select( "Move", "Do not move", "Warp to Prontera." ) ) {
case 1:
mes "[Training Instructor]";
mes "Go to lower section!!!";
close2;
warp "tra_fild",111,74;
end;
case 2:
mes "[Training Instructor]";
mes "Talk to me if you need to move.";
close;
case 3:
mes "[Training Instructor]";
mes "I'll warp you.";
close2;
warp "prontera",246,60;
end;
}
}

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