Compare commits

...

145 Commits

Author SHA1 Message Date
Atemo
d9ee37d5ec Removed extra script_reportdata 2023-05-25 17:36:58 +02:00
Atemo
0bcc1f66b3 Small correction 2023-05-25 17:08:21 +02:00
Atemo
b0456b0e73 Clean-up 2023-05-24 21:54:01 +02:00
Atemo
b5413b0997 Removed SCRIPT_CMD_END
Terminate the script when SCRIPT_CMD_FAILURE is returned
2023-05-16 17:13:26 +02:00
Atemo
9c21d3af04 Clean-up script.cpp
* Introduced SCRIPT_CMD_END which display an error and put the script state to end
2023-05-10 21:49:15 +02:00
Jittapan Pluemsumran
d3b99e6dc1 Fixed market response packet when purchase fails (#7751)
The item list was still sent to the client even when the purchase failed because p->result is no longer 0 in PACKETVER >= 20190807.
2023-05-10 20:44:08 +07:00
mazvi
dfa7e5e084 Rename Upgrade SQL (#7742) 2023-05-03 21:15:53 -04:00
Atemo
84bf6b87f1 Fixed an issue for map_drops.yml (#7735)
The key for umap should be the index, to allow to define the same item in yaml file
2023-04-26 23:35:24 +02:00
Atemo
6308b4feaf Follow-up d7840cd265
Added missing delitem

Thanks to @tumemmac
2023-04-26 22:31:32 +02:00
Atemo
d7840cd265 Einbech dungeon 3 (#7209)
* Implemented dungeons, merchants and quests related to einbech 3

Thanks to @Pokye !
2023-04-26 18:39:24 +02:00
Singe Horizontal
4718d5e813 Added new status flag RequireNoWeapon (#7201)
* Fixes #7200.
* Added new status flag RequireNoWeapon.
2023-04-24 12:01:24 -04:00
Singe Horizontal
b4be3b059a Prevent an uint underflow and reformat array_size occurences in some commands (#7729)
Fixes #7728
2023-04-22 19:42:13 -07:00
Singe Horizontal
9051fc644d Corrected NPC_DARKBREATH formula (#7285)
* Corrected NPC_DARKBREATH formula
Fixes #7284

* Update src/map/battle.cpp

Co-authored-by: Pokye <98105181+Pokye@users.noreply.github.com>

* Update src/map/battle.cpp

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>

* Added renewal logic

* now uses only one formula for both modes

---------

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Pokye <98105181+Pokye@users.noreply.github.com>
2023-04-20 10:13:37 +02:00
Singe Horizontal
9df8f9f113 Corrects a short-circuit bug in status_change_clear_buffs (#7724)
Fixes #7723
2023-04-19 15:55:44 -07:00
idk-whoami
ea65c1b9ba ViewID correction of item IDs 20765 (#7720)
Fixed #7697 

Thanks to @llchrisll
2023-04-18 17:17:31 +02:00
Lemongrass3110
339adbbe2d Fixes the pincode system (#7719)
Fixes #7700

Thanks to @24msz6eo, @Melk3000 and @vstumpf
2023-04-17 18:20:15 +02:00
Vincent Stumpf
579dea8fad Add debug logs for debugging client connections (#7701) 2023-04-16 22:47:06 -07:00
Atemo
665eb969ed Corrected animation of the skill SHC_SAVAGE_IMPACT (#7717)
* Fixed an issue where the client did not update the position of the player
* Additionally fixed the player direction when the player casts the skill while being on the same cell of the target
2023-04-16 22:59:19 +02:00
Atemo
939567d361 Fixed an issue with cloak*npc (#7715)
* all the npcs saved in pc should be removed on map change
2023-04-16 14:58:47 +02:00
munkrej
635add84d7 4th Improvement - Troubadour & Trouvere (#7703) 2023-04-16 00:38:19 +02:00
munkrej
5385584f6f 4th Improvement - Wind Hawk (#7704) 2023-04-15 23:37:19 +02:00
munkrej
16195cea2a 4th Improvement - Inquisitor (#7705) 2023-04-15 23:36:30 +02:00
munkrej
a818232e77 4th Improvement - Cardinal (#7706) 2023-04-15 23:16:26 +02:00
munkrej
741dfe37ae 4th Improvement - Elemental Master (#7707) 2023-04-15 22:52:20 +02:00
munkrej
e4acd6e5dc 4th Improvement - Arch Mage (#7708) 2023-04-15 22:52:03 +02:00
munkrej
452238b523 4th Improvement - Abyss Chaser (#7709) 2023-04-15 18:45:51 +02:00
munkrej
6c8b29e91b 4th Improvement - Shadow Cross (#7710) 2023-04-15 17:46:18 +02:00
munkrej
287501d665 4th Improvement - Biolo (#7711) 2023-04-15 17:43:30 +02:00
munkrej
e1e19a6d06 4th Improvement - Meister (#7712) 2023-04-15 17:31:19 +02:00
munkrej
382d6bf54a 4th Improvement - Imperial Guard (#7713) 2023-04-15 16:53:39 +02:00
munkrej
e40c3edc31 4th Improvement - Dragon Knight (#7714) 2023-04-15 16:04:59 +02:00
Vincent Stumpf
a2f4f2bf8e Do not call pet_set_intimate twice (#7702) 2023-04-15 15:02:41 +02:00
munkrej
22aca36d35 Adds enchantgrade chance per refine (#7608)
Fixes #7607

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2023-04-14 23:43:33 +02:00
Lemongrass3110
18ec884ba8 Removed a duplicate function call in erasequest
Thanks to @Pokye
2023-04-12 22:33:21 +02:00
Everade
7853e926c2 Episode 17.2 - Sage's Legacy (#6799)
* Episode 17.2 Initial Release of instances and quests
* Added warp portals and monster spawn scripts
* Added Episode 17.2 related database entries

Closed #6470 

Thanks to @Megelith @Pokye 

Co-authored-by: JohnnyPlayy <JohnnyPlayy@users.noreply.github.com>
Co-authored-by: Everade <privacy@gatheringro.com>
Co-authored-by: crazyarashi <26841779+crazy-arashi@users.noreply.github.com>
Co-authored-by: Atemo <capucrath@gmail.com>
2023-04-12 21:27:34 +02:00
Atemo
c7b464b91f Initial release of Illusion of underwater (#7521)
Implemented the main quest, daily quests and exchange npcs related to illusion of underwater.
Walkthrough Conversion.

Closed #6472 

Thanks to @secretdataz @OptimusM !

Co-authored-by: aleos <aleos89@users.noreply.github.com>
2023-04-12 20:20:23 +02:00
Atemo
0413d0e85c Initial release of Illusion of Luanda (#7559)
* Implemented the main quest, daily quests and exchange npcs related to Illusion of Luanda.
Fixed #6462 

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2023-04-12 18:38:26 +02:00
Everade
2a4a82315b Episode 16.2 - Friday Memorial Dungeon (#7300)
* Implementation of Episode 16.2 Friday Memorial Dungeon.

Fixed #6452

Co-authored-by: Atemo <Atemo@users.noreply.github.com>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2023-04-12 17:40:53 +02:00
Everade
36a2c9783f Episode 16.1 - Edda Half Moon In The Daylight (#7298)
* Implementation of the Episode 16.1 - Edda Half Moon In The Daylight - Memorial Dungeon (quests and exchange NPCs)

Thanks to @Pokye @OptimusM @idk-whoami !

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
2023-04-12 14:03:33 +02:00
Atemo
0fbe8c3ecd Fixed an issue with npc_enable_target (#7695)
Fixed #7694 

Thanks to @eppc0330
2023-04-12 01:50:03 +02:00
Atemo
806c89edb3 Updated the NPC structure (#6923)
* added the possibility to define the state (hidden, cloaked, disabled) of the npc/warp in the npc definition

Thanks to @Daegaladh
2023-04-10 23:53:16 +02:00
Atemo
801c3c782e Updated disablenpc/enablenpc (#7671)
* Updated disablenpc/enablenpc script commands using OPTION_HIDE instead of OPTION_INVISIBLE, to correctly display the effects when the npcs are disabled/enabled. The other behaviors are kept.
2023-04-10 23:06:55 +02:00
Atemo
66c05937b5 Added mag_dun03 quests (#7207)
* Implemented mobs, quests
* Updated MAGMA_ESSENCE and added MAGMA3 option group

Thanks to @Pokye
2023-04-10 17:07:42 +02:00
Vincent Stumpf
ab6c5beaf8 Fix out-of-bounds in TypesafeCachedYamlDatabase (#7690)
Fixes #7664

Thanks to @jofvgaming
2023-04-09 21:49:30 +02:00
Vincent Stumpf
d2e972cfd1 Fix Undeclared HEADER_ZC_SEARCH_STORE_INFO_ACK 2010-08-03 (#7679) 2023-04-09 20:34:52 +02:00
Atemo
c12d5ed6b7 Initial release of Illusion of Turtle (#7465)
* Implemented the main quest, daily quests and exchange npcs related to illusion of turtle
* Implemented the random option groups of the items given in the dungeon

Thanks to :
@attackjom 
@idk-whoami 
@OptimusM 
@Pokye 

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2023-04-09 20:00:45 +02:00
Atemo
c2f44f5fcb Implemented new items up to april 05 2023 (#7682) 2023-04-08 17:32:49 +02:00
Atemo
74b2834502 Updates map_drops.yml (#7676)
* adjusted the rate in map_drops.yml to 1/100000 instead of 1/10000

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2023-04-08 16:48:01 +02:00
eppc0330
8a4b34ef6a Fix NPC_DAMAGE_HEAL heal calculation (#7660)
Fix NPC_DAMAGE_HEAL heal amount not being applied from some SC bonuses
2023-04-08 15:42:09 +02:00
Austin Wang
cf0264be45 Fix some items' names for Alberta stylish npc (#7666)
Co-authored-by: Jittapan Pluemsumran <nightsheep@outlook.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2023-04-08 14:39:26 +02:00
Atemo
370ee1e876 Added amicitia1 and amicitia2, dungeons level 200 (#7336)
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>

Thanks to @OptimusM !
2023-04-07 15:42:55 +02:00
Atemo
b7807db42f Implemented NPC_GROUNDDRIVE (#7677) 2023-04-07 14:56:08 +02:00
Atemo
db5874d677 Updated unitskilluseid and unitskillusepos script commands (#7684)
* Added the parameter 'ignore_range' to ignore the skill range defined in skill_db.yml
2023-04-07 01:09:44 +02:00
Atemo
fff69b0cfd Added missing combo Phreeoni_Wing_Suits + Phreeoni_Egg (#7680)
Fixed #7393

Thanks to @eppc0330
2023-04-07 01:05:43 +02:00
Atemo
6136f7df35 Updated achievement_db.yml (#7681) 2023-04-06 15:46:20 +02:00
Atemo
1a5072c153 Added new maps up to April 05 2023 (#7683) 2023-04-06 14:54:07 +02:00
Aleos
65200eba50 Fixes an issue with clones receiving 1 damage (#7670)
* Fixes #7579.
* Adds an extra conditional check for reducing Green Aura type mobs to ignore cloned monsters.
Thanks to @vietlubu and @Lemongrass3110!
2023-04-03 18:47:53 -04:00
idk-whoami
70736c9b1d Corrected script for some item #18 (#7644)
Thanks to @Atemo
2023-04-03 14:40:52 +02:00
Atemo
d031afe364 Implemented the skill NPC_RAINOFMETEOR (#7675) 2023-04-02 21:30:08 +02:00
Atemo
81b62348b7 Implemented the skills NPC_RELIEVE_ON and NPC_RELIEVE_OFF (#7614)
* Implemented the skills NPC_RELIEVE_ON and NPC_RELIEVE_OFF as part of episode 17.2

Thanks to @aleos89 !
2023-03-31 19:52:35 +02:00
Atemo
eff3b2014b Removed NoForcedEnd for SC_MONSTER_TRANSFORM (#7655) 2023-03-31 15:12:06 +02:00
Atemo
c06fed6b56 DB update - Aegis item name (#7661)
* Updated several Aegis item names DB
2023-03-28 14:48:25 +02:00
Atemo
f8c5cd9552 Small correction on the attribute table (#7662)
Follow-up e4e8063ec3

* Defense Wind and Fire values have been reversed for Undead weapon element.
* There should be no negative defense according to the official tables.

Thanks to @vstumpf
2023-03-25 14:13:45 +01:00
Atemo
6673e1a786 Fixed an issue where normal NPC had no sprite when walking (#7652)
* Fixed an issue where normal NPC had no sprite when walking
* Added a note

Thannks to @vstumpf
2023-03-24 15:28:50 +01:00
Lemongrass3110
49ba072f3a Added returning to instances (#7622)
Fixes #5226

Thanks to @Forte22, @attackjom and @OptimusM

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2023-03-23 15:49:39 +01:00
Vincent Stumpf
8abf9960a0 Fix memory leak on map quit (#7657) 2023-03-23 12:11:15 +01:00
Vincent Stumpf
f0e374ea23 Fixes getrefine failing in OnEquip/OnUnequip scripts (#7592) 2023-03-20 10:08:04 -07:00
Vincent Stumpf
819b7cb361 Fix ASAN crashes and LSAN leaks (#7649) 2023-03-20 09:32:41 -07:00
Lemongrass3110
4d9b1a0b83 Deduplicate strlib code (#7651)
Follow up to 4e64623
2023-03-19 21:07:16 +01:00
Atemo
1ccdc17df5 Added some entries in instance_db.yml (#7654)
* Added some entries in instance_db.yml
2023-03-19 20:24:00 +01:00
Lemongrass3110
b95daa3041 Fixed wrong node usage for instance loading
Noticed because of #7654
2023-03-19 19:10:42 +01:00
Atemo
36972bf9ea Corrected the english name of several items in item DB (#7653) 2023-03-19 17:51:31 +01:00
Vincent Stumpf
4e646235d2 Fix builds that don't use the memory manager (#7648) 2023-03-18 23:57:44 -07:00
Jittapan Pluemsumran
b4f740ce18 Added a config for banking state check (#7646)
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2023-03-16 20:24:13 +07:00
Atemo
19bbd82c55 Initial release of nif_dun quests (#7349)
* Added mobs db, mobs spawn and quests related to nif_dun01 and nif_dun02
* Some data after rebalance is missing but the base is there

Thanks to @aleos89 @Lemongrass3110 @Pokye @OptimusM @Tokeiburu for the reviews !
2023-03-16 13:24:32 +01:00
eppc0330
067c21b647 Implement NPC_DAMAGE_HEAL and NPC_IMMUNE_PROPERTY (#7638)
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2023-03-15 21:36:47 +01:00
Jittapan Pluemsumran
22abdf8dbe Added missing state checks in banking functions (#7645)
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2023-03-14 17:34:05 +07:00
Vincent Stumpf
7dd6eb5182 Add other player in mail transactions (#7568)
* Add other player's char_id in mail transactions

Thanks to @tokeiburu

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2023-03-14 02:30:23 -07:00
munkrej
cbb5380527 Adds skill NPC_KILLING_AURA (#7624) 2023-03-14 00:14:41 +01:00
Lemongrass3110
ae2ea3df10 Implemented NPC_WIDELEASH (#7643) 2023-03-13 22:46:23 +01:00
Lemongrass3110
6ff1ebfa98 Implemented NPC_LEASH (#7642) 2023-03-13 21:36:50 +01:00
Atemo
3f45df1025 Added news items - equipments up to 03022023 (#7625) 2023-03-13 13:50:21 +01:00
eppc0330
eb875d1af5 Implement NPC_MOVE_COORDINATE (#7636) 2023-03-13 06:55:50 +01:00
eppc0330
bee2c27d78 Implement NPC_ALL_STAT_DOWN (#7637) 2023-03-13 06:25:02 +01:00
eppc0330
b3881bd1fc Implement NPC_GRADUAL_GRAVITY (#7635) 2023-03-13 00:25:47 +01:00
Vincent Stumpf
1c35482ecf Change copied bl type to BL_NUL for delayed clif_clearunit (#7640)
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2023-03-12 12:38:47 -07:00
idk-whoami
3998f7ed75 Corrected script for some item #17 (#7616)
Thanks to @Atemo
2023-03-08 15:10:50 +01:00
Vincent Stumpf
8f4a1d2932 Remove relative includes for 3rdparty imports (#7609)
This also changes the imports for config, custom to use the src include path
2023-03-07 16:21:28 -08:00
Vincent Stumpf
1b1164f91d Change memcpy for safestrncpy for char * (#7629) 2023-03-06 09:53:23 -08:00
Vincent Stumpf
6a0b7afd88 Fix possible out of bounds (#7630) 2023-03-06 09:37:26 -08:00
aoshfan
bb8c4a03c8 Fix Fire Pillar skill to not consume Gemstone if VIP or use Mistress card (#7623) 2023-03-05 17:04:24 -08:00
userid0
b22e186e77 Cleanup homun txt in map-server-generator (#7627) 2023-03-04 18:44:18 +01:00
idk-whoami
b56f11207c Update warper npc (#7617) 2023-02-28 19:48:34 +01:00
Lemongrass3110
839d378680 Added missing breaks to instance_warpall 2023-02-26 22:37:07 +01:00
Jittapan Pluemsumran
1985662045 Made debug ShowStatus calls easier to disable (#7618)
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2023-02-21 11:34:52 +07:00
Atemo
08d3467faa Updated item names and fix an issue with ignore_res_by_race / ignore_mres_by_race (#7613) 2023-02-16 22:41:15 +01:00
Aleos
240f71cbce Converts Homunculus Database to YAML (#4659)
* Converts the Homunculus Database and Homunculus Skill Tree Database into one YAML flat file.
* General cleanups and optimizations.
* Includes CSV2YAML converter.
Thanks to @Lemongrass3110 and @Atemo!
Co-authored-by: Atemo <capucrath@gmail.com>
2023-02-15 14:42:51 -05:00
Atemo
b2ceb30e30 Added missing items equipment up to 02/10/2023 (#7606)
* Added missing items equipment up to 02/10/2023
* Implemented the item bonuses bIgnoreResRaceRate and bIgnoreMResRaceRate

Thanks to @attackjom for the review!
2023-02-15 16:15:11 +01:00
Vincent Stumpf
a35063dfd6 Upgrade to c++14 (#7593) 2023-02-13 10:58:31 -08:00
Everade
56ae2174c0 Episode 16.2 - Weekend Memorial Dungeon (#7299)
* Implementation of Episode 16.2 Weekend Memorial Dungeon.

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2023-02-13 14:25:52 +01:00
munkrej
c6c9babb5e Homunculus updates as of 20220602 (#7586)
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2023-02-12 23:55:13 +01:00
Lemongrass3110
42d8c163b7 Added missing columns for yaml2sql (#7603)
Fixes #7602

Thanks to @Triedge
2023-02-12 23:04:46 +01:00
Vincent Stumpf
9d2bcc7a70 Change npc_src_files linked list to vector (#7598) 2023-02-12 13:38:12 -08:00
Vincent Stumpf
e235c9cab4 Change common and config includes to use <> (#7596) 2023-02-12 12:46:06 -08:00
Vincent Stumpf
eff6131087 Speed up loading of npcs and maps (#7597) 2023-02-12 11:01:14 -08:00
Atemo
bc7b9cdd2e Updated instance_warpall script command (#7591)
* Added a parameter to the instance_warpall script command to prevent dead players from being warped

Thanks to @aleos89, @Lemongrass3110 and @vstumpf for the reviews!
2023-02-12 16:09:20 +01:00
idk-whoami
36bcfaecee Corrected script for some items #16 (#7583)
Thanks to @Atemo
2023-02-12 15:33:11 +01:00
Lemongrass3110
98b3f2af52 Removed some useless strlib functions (#7600)
* Removed jstrescape

* Removed jstrescapecpy

* Removed jmemescapecpy

* Removed J_MAX_MALLOC_SIZE

* Removed trim2
2023-02-12 13:08:24 +01:00
Vincent Stumpf
7629ff4032 Speed up loading CachedYamlDBs (#7599)
Instead of iterating from the end to find the last item in the cache, just store the highest key we've found.
Then, resize the cache to that
2023-02-12 00:20:54 -08:00
Vincent Stumpf
ce8f053359 Speed up YAML DB loading by removing ShowStatus (#7595) 2023-02-10 16:04:35 -08:00
idk-whoami
56af701ade Corrected script for some item #15 (#7566)
Thanks to @Atemo
2023-02-10 15:14:26 +01:00
Vincent Stumpf
08e9af48fe Add on-demand triggers for workflows (#7594) 2023-02-09 19:53:29 -08:00
Vincent Stumpf
6938722f02 Replace the bitshift optimizations for multiplication (#7590)
* These were originally bitshifts because it was 'faster', but now with modern compilers and hardware, the only thing it does now is confuse developers who have to read the code
2023-02-08 16:00:11 -08:00
Lemongrass3110
7313495185 Fixed MariaDB compilation
Follow up to da73084

Thanks to @SapitoSucio and @Singe-Horizontal
2023-02-09 00:27:15 +01:00
Lemongrass3110
da73084df5 Forcefully disable SSL for MySQL (#7588) 2023-02-08 21:13:09 +01:00
Aleos
46eaa8ddf0 Updates the readme badges (#7589)
* Removes old LGTM badges.
* Adds new badges for each of the different build types.
* Adds badge for commits per week.
2023-02-08 13:32:07 -05:00
Lemongrass3110
f261307bbe Added script command mesitemlink (#7565)
Adds a new script command for itemlink generation for usage inside NPC dialogs (mes "").
A few cleanups related to the normal itemlink feature.

Thanks to @Atemo and @aleos89 for their help!

Co-authored-by: Atemo <Atemo@users.noreply.github.com>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2023-02-07 10:47:36 +01:00
Lemongrass3110
59a722234d Fix compilation on Mac M1 (#7582)
Fixes #7557

Thanks to @vietlubu
2023-02-07 09:23:33 +01:00
Lemongrass3110
ba32ccc928 Added two missing timer function names 2023-02-07 00:18:57 +01:00
Lemongrass3110
115522e1fd Fixed some warnings related to dynamic NPCs
Fixes #7417

Thanks to @idk-whoami and everyone else who reported it.
2023-02-06 23:21:36 +01:00
idk-whoami
1fda953e62 Added missing mob AI IDs 3794 ILL_ICE_TITAN (#7580) 2023-02-06 21:05:51 +01:00
Vietlubu
913bcfe6fb Hero weapon LT enchant (#7576)
Add laphine upgrade for Patent and LT weapon
Correction ANCIENT_HERO_WISDOM enchant options

Fixes #7575
2023-02-06 20:14:37 +01:00
idk-whoami
96f0f77d42 Hat Effect Update (#7569) 2023-02-03 09:54:27 +01:00
Dominik Nussbaumer
e2ee5cbefb hide functions for yaml2sql (#7390)
yaml2sql uses some headers for constants from map-server.
In order to avoid linker errros, no functions from those headers
must be used.
However, some static functions are the status.hpp which cause
linker errors when creating a debug build.
The define `ONLY_CONSTANTS` hides those funcitons for yaml2sql.

refs #7389

Co-authored-by: Vincent Stumpf <vincents.995@gmail.com>
2023-02-02 23:51:46 -08:00
Henrybk
a1f9a6c1d1 Fix item 15906 Northern_Cross (#7573)
Adjust "Recovers 30 HP and 3 SP" to "Recovers 30 HP and 3 SP per refine rate".
2023-02-01 19:16:20 +01:00
Atemo
d93d4144eb Glast Heim Abyss dungeon (#7474)
* Added related quests
* Added monsters spawn
* Added related random option groups

Credit goes to @OptimusM !
Thanks to @aleos89 for the review !
2023-01-26 16:39:12 +01:00
Livia Medeiros
7c4b9fa179 Fix typos in Renewal scripts (#7567) 2023-01-26 07:43:26 -05:00
Atemo
39559c125b Implemented missing skills (#7552)
* Implemented NPC_BLEEDING2
  Copy from NPC_BLEEDING for now except
  * element always Neutral
  * differents rates

* Implemented NPC_HELLJUDGEMENT2
  Copy from NPC_HELLJUDGEMENT except
  * element neutral
  * skills inflicts a random status effect

* Implemented NPC_WIDEFREEZE2
  Copy from NPC_WIDEFREEZE

* Implemented NPC_ICEBREATH2
  Copy from NPC_ICEBREATH except
  * Chance 100% instead of 70%
  * Splash area 4 instead of 3

* Implemented NPC_WIDEBLEEDING2
  Copy from NPC_WIDEBLEEDING

* Implemented NPC_WIDECONFUSE2
  Copy from NPC_WIDECONFUSE

* Implemented NPC_WIDESILENCE2
  Copy from NPC_WIDESILENCE

* Implemented NPC_WIDESTUN2
  Copy from NPC_WIDESTUN

* Implemented NPC_WIDESILENCE2
  Copy from NPC_WIDESILENCE

* Implemented NPC_WIDESLEEP2
  Copy from NPC_WIDESLEEP

* Implemented NPC_WIDECURSE2
  Copy from NPC_WIDECURSE

* Implemented NPC_WIDESTONE2
  Copy from NPC_WIDESTONE

Thanks to @OptimusM, @Lemongrass3110, @aleos89 !
2023-01-24 15:06:38 +01:00
Lemon
7e62670882 Improved itemlink logic (#7532)
Fixed tags and separators for various packet versions.

If itemlink is disabled it will output the item name with the refine as prefix and the slots as suffix (if equipment)
It will also append [0] if the item is an equipment and has 0 slots (to make it easier to tell from non-equipment items)

Disabled feature on packet versions older than 2015-11-04 until proven otherwise

Fixes #7441

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2023-01-23 10:49:18 +01:00
Lemongrass3110
f4ad5045a5 Fixed autotrading re-login
Fixes #7556

Thanks to @datawulf, @mazvi, @attackjom and @zdurexz
2023-01-23 10:03:24 +01:00
Livia Medeiros
b6c7890763 Fix typos in Renewal scripts (#7563) 2023-01-23 09:34:02 +01:00
Jittapan Pluemsumran
b4a8fdce13 Fixed instances with infinite timeout getting destroyed instantly (#7554) 2023-01-20 20:47:23 +07:00
Atemo
b40469f881 Initial release of Illusion of Frozen (#7464)
* Implemented the main quest, daily quests and exchange npcs related to illusion of frozen (Walkthrough Conversion)
2023-01-19 16:54:22 +01:00
Atemo
7acdcd391c Corrected the logic for Juno quest in ve_fild04 (#7551)
Thanks to @eleriaqueen @mazvi @Lemongrass3110 @idk-whoami !
2023-01-19 15:04:57 +01:00
idk-whoami
d91f3b7a51 Updated the item database #14 (#7555)
* Corrected and implemented some item

Thanks to @Atemo
2023-01-18 23:14:43 +01:00
Pokye
8f1450b178 Updated item db (#7553)
* Added several items from bRO in item database
2023-01-18 21:14:36 +01:00
Atemo
65ebbdc992 Added NPCs in rgsr_in (#7488)
* Added missing NPCs in rgsr_in (used for item reform, enchant)
* Attempt to clean up some dialog
* Added Group_0 in item_randomopt_group.yml (apply no randomoption)

Thanks to @Dia !

Co-authored-by: aleos <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2023-01-14 15:58:06 +01:00
fab10Carvalho
2bcd31b58b Fix NPC_EARTHQUAKE from R001_BESTIA (#7545) 2023-01-13 10:44:09 -05:00
Lemongrass3110
513a4db716 Fixes a critical issue with pointshop (#7549)
Fixes #7548

Thanks to @mazvi
2023-01-13 15:09:14 +01:00
Lemongrass3110
5044776eb7 Added support for map selection (#7546)
Fixes #6632

Thanks to @Xypr0, @Toshiro90, @alisonrag and @aleos89
2023-01-11 22:42:54 +01:00
Aleos
3464292a31 Fixes instances with infinite duration (#7547)
* Fixes #6230 and fixes #7472.
* Resolves an issue where instances that have infinite TimeLimit or IdleTimeOut would instantly become destroyed.
* Fixes an issue where do_final_instance() could end up on an invalid iterator value resulting in memleaks/crashes on map server closure.
* Add missing constructor parameters.
Thanks to @secretdataz, @Lemongrass3110, and @mazvi!
2023-01-11 14:25:11 -05:00
Lemongrass3110
14cb61d598 Removed mapindex from char-server (#7533)
Converted last_point to mapname
Converted save_point to mapname
Converted memo to mapname
Converted start point to mapname
Removed default map
Converted party member to mapname
Converted maplists to mapname
Removed mapindex loading
Fixed instance loading with multiple map-servers
Fixed castle loading with multiple map-servers
Fixed battleground loading with multiple map-servers
Fixed warping between map-servers

Thanks to @aleos89 for his help!
2023-01-11 16:54:53 +01:00
userid0
cbe2acb786 Fixs cash shop database import (#7544)
fix import vcxproj file name.
2023-01-11 11:24:35 +01:00
mazvi
6ae037bd17 Revert "Open Soda Market After Close Dialog NPC (#7541)" (#7543)
This reverts commit 8df1720f49.
2023-01-10 18:41:35 +01:00
mazvi
8df1720f49 Open Soda Market After Close Dialog NPC (#7541) 2023-01-10 19:07:31 +07:00
362 changed files with 85560 additions and 9307 deletions

View File

@@ -6,6 +6,7 @@ concurrency:
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
on:
workflow_dispatch:
push:
branches:
- master

View File

@@ -6,6 +6,7 @@ concurrency:
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
on:
workflow_dispatch:
push:
branches:
- master

View File

@@ -6,6 +6,7 @@ concurrency:
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
on:
workflow_dispatch:
push:
branches:
- master

View File

@@ -6,6 +6,7 @@ concurrency:
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
on:
workflow_dispatch:
push:
branches:
- master

View File

@@ -6,6 +6,7 @@ concurrency:
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
on:
workflow_dispatch:
push:
branches:
- master

View File

@@ -6,6 +6,7 @@ concurrency:
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
on:
workflow_dispatch:
push:
branches:
- master

View File

@@ -6,6 +6,7 @@ concurrency:
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
on:
workflow_dispatch:
push:
branches:
- master

View File

@@ -6,6 +6,7 @@ concurrency:
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
on:
workflow_dispatch:
push:
branches:
- master

View File

@@ -9,6 +9,7 @@ concurrency:
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
on:
workflow_dispatch:
push:
branches:
- master

View File

@@ -35,7 +35,7 @@ project( rAthena )
if( CYGWIN )
unset( WIN32 )
endif()
set(CMAKE_CXX_STANDARD 11) # C++11...
set(CMAKE_CXX_STANDARD 14) # C++14...
set(CMAKE_CXX_STANDARD_REQUIRED ON) #...is required...
#set(CMAKE_CXX_EXTENSIONS OFF) #...without compiler extensions like gnu++11

View File

@@ -1,7 +1,7 @@
<img src="doc/logo.png" align="right" height="90" />
# rAthena
[![Total alerts](https://img.shields.io/lgtm/alerts/g/rathena/rathena.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/rathena/rathena/alerts/) [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/rathena/rathena.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/rathena/rathena/context:cpp) ![GitHub](https://img.shields.io/github/license/rathena/rathena.svg) ![GitHub repo size](https://img.shields.io/github/repo-size/rathena/rathena.svg)
![clang](https://img.shields.io/github/actions/workflow/status/rathena/rathena/build_servers_clang.yml?label=clang%20build&logo=llvm) ![cmake](https://img.shields.io/github/actions/workflow/status/rathena/rathena/build_servers_cmake.yml?label=cmake%20build&logo=cmake) ![gcc](https://img.shields.io/github/actions/workflow/status/rathena/rathena/build_servers_gcc.yml?label=gcc%20build&logo=gnu) ![ms](https://img.shields.io/github/actions/workflow/status/rathena/rathena/build_servers_msbuild.yml?label=ms%20build&logo=visualstudio) ![GitHub](https://img.shields.io/github/license/rathena/rathena.svg) ![commit activity](https://img.shields.io/github/commit-activity/w/rathena/rathena) ![GitHub repo size](https://img.shields.io/github/repo-size/rathena/rathena.svg)
> rAthena is a collaborative software development project revolving around the creation of a robust massively multiplayer online role playing game (MMORPG) server package. Written in C, the program is very versatile and provides NPCs, warps and modifications. The project is jointly managed by a group of volunteers located around the world as well as a tremendous community providing QA and support. rAthena is a continuation of the eAthena project.
[Forum](https://rathena.org/board)|[Discord](https://rathena.org/discord)|[Wiki](https://github.com/rathena/rathena/wiki)|[FluxCP](https://github.com/rathena/FluxCP)|[Crowdfunding](https://rathena.org/board/crowdfunding/)|[Fork and Pull Request Q&A](https://rathena.org/board/topic/86913-pull-request-qa/)
@@ -30,7 +30,7 @@ Disk Space | 300 MB | 500 MB
Operating System | Compiler
------|------
Linux | [gcc-5 or newer](https://www.gnu.org/software/gcc/gcc-5/) / [Make](https://www.gnu.org/software/make/)
Windows | [MS Visual Studio 2013, 2015, 2017](https://www.visualstudio.com/downloads/)
Windows | [MS Visual Studio 2017 or newer](https://www.visualstudio.com/downloads/)
### Required Applications
Application | Name

View File

@@ -33,6 +33,11 @@ feature.warp_suggestions: off
// Requires: 2013-07-24aRagexe or later
feature.banking: on
// Should Banking strictly checks the UI state on zeny deposit and withdrawal? (Note 1)
// Note: Disabled by default because existing official clients do not report the banking UI state to the server.
// But this config could be useful in case of clients that actually report the UI state or custom clients.
feature.banking_state_enforce: no
// Autotrade persistency (Note 1)
// Should vendors that used @autotrade be restored after a restart?
feature.autotrade: on
@@ -141,12 +146,32 @@ feature.dynamicnpc_rangey: 2
feature.dynamicnpc_direction: no
// Itemlink System on informational related commands (Note 1)
// Generates <ITEML> string for an item and can be used for npctalk, message,
// Generates an itemlink string for an item and can be used for npctalk, message,
// dispbottom, and broadcast commands. The result is clickable-item name just
// like from SHIFT+Click from player's inventory/cart/equipment window.
// Requires: 2010-00-00RagexeRE or later
// Requires: 2015-11-04Ragexe or later
feature.itemlink: on
// Itemlink System on NPC messages (Note 1)
// Generates an itemlink string for an item and can be used for NPC's mes command.
// Requires: 2010-01-01 or later
feature.mesitemlink: on
// Force all mesitemlinks to be wrapped in brackets (Note 1)
// Default: no
feature.mesitemlink_brackets: no
// Force all mesitemlinks to use the database name (Note 1)
// Default: no
feature.mesitemlink_dbname: no
// Stylist UI (Note 1)
// Requires: 2015-11-04 or later
feature.stylist: on
// Are players allowed to reconnect into instances? (Note 1)
// This is enabled by default in Renewal mode and
// disabled by default in Pre-Renewal mode.
// If this is allowed the "nosave" mapflag is still being respected
// and may prevent players from warping back into the instance.
//feature.instance_allow_reconnect: yes

View File

@@ -50,7 +50,7 @@ homunculus_auto_vapor: 80
homunculus_max_level: 99
// Max level for Homunculus S
homunculus_S_max_level: 175
homunculus_S_max_level: 250
// Growth level for Homunculus S
// This is the level at which homunculus S can use their growth tables

View File

@@ -1570,5 +1570,27 @@ map: herosria
map: mjo_wst01
map: ra_pol01
// Episode 20
map: 1@20cn1
map: 1@20cn2
map: 1@slug
map: 1@twas
map: 1@twbs
map: 1@twig
map: 1@twsd
map: icas_in2
map: jor_back4
map: jor_back5
map: jor_back6
map: jor_maze
map: jor_root1
map: jor_root2
map: jor_root3
map: jor_safty1
map: jor_safty2
map: jor_sanct
map: jor_twice
map: jor_twig
//------------------------- Clone Maps ---------------------------
//------------------------- Extra Maps ---------------------------

View File

@@ -1447,7 +1447,7 @@
// @iteminfo
1276: Please enter an item name/ID (usage: @ii/@iteminfo <item name/ID>).
1277: Item: '%s'/'%s'[%d] (%u) Type: %s | Extra Effect: %s
1277: Item: '%s'/'%s' (%u) Type: %s | Extra Effect: %s
1278: None
1279: With script
1280: NPC Buy:%dz, Sell:%dz | Weight: %.1f
@@ -1457,7 +1457,7 @@
// @whodrops
1284: Please enter item name/ID (usage: @whodrops <item name/ID>).
1285: Item: '%s'[%d] (ID: %u)
1285: Item: '%s' (ID: %u)
1286: - Item is not dropped by mobs.
1287: - Common mobs with highest drop chance (only max %d are listed):

View File

@@ -1192,7 +1192,7 @@
// @iteminfo
1276: 請輸入 物品名稱/ID (用法: @ii/@iteminfo <物品名稱/ID>).
1277: 物品: '%s'/'%s'[%d] (%u) 類型: %s | 額外效果: %s
1277: 物品: '%s'/'%s' (%u) 類型: %s | 額外效果: %s
1278: None
1279: With script
1280: NPC 買價:%dz, 賣價:%dz | 重量: %.1f
@@ -1202,7 +1202,7 @@
// @whodrops
1284: Please enter 物品名稱/ID (用法: @whodrops <物品名稱/ID>).
1285: Item: '%s'[%d] (ID:%d)
1285: Item: '%s' (ID:%d)
1286: - Item is not dropped by mobs.
1287: - Common mobs with highest drop chance (only max %d are listed):

View File

@@ -1205,7 +1205,7 @@
// @iteminfo
1276: Entrez un nom/ID d'objet (usage: @ii/@iteminfo <nom/ID>).
1277: Item: '%s'/'%s'[%d] (%u) Type: %s | Extra Effect: %s
1277: Item: '%s'/'%s' (%u) Type: %s | Extra Effect: %s
1278: Aucun
1279: Avec script
1280: NPC Acheté:%dz, Vendu:%dz | Poids: %.1f
@@ -1215,7 +1215,7 @@
// @whodrops
1284: Entrez un nom/ID d'Objet (usage: @whodrops <nom/ID_objet>).
1285: Objet: '%s'[%d] (ID:%d)
1285: Objet: '%s' (ID:%d)
1286: - Cet Objet n'est lâché par aucun monstre.
1287: - Monstres communs avec la plus grande chance de drop (seuls %d max sont listés):

View File

@@ -1293,7 +1293,7 @@
// @iteminfo
1276: Harap masukkan nama/ID item. (Penggunaan: @ii/@iteminfo <nama/ID item>).
1277: Item: '%s'/'%s'[%d] (%u) Jenis: %s | Efek tambahan: %s
1277: Item: '%s'/'%s' (%u) Jenis: %s | Efek tambahan: %s
1278: Tidak ada
1279: Dengan script.
1280: NPC Harga Beli:%dz, Harga jual:%dz | Berat: %.1f
@@ -1303,7 +1303,7 @@
// @whodrops
1284: Harap masukkan nama/ID item. (Penggunaan: @whodrops <nama/ID item>).
1285: Item: '%s'[%d] (ID:%d)
1285: Item: '%s' (ID:%d)
1286: - Item ini tidak dijatuhkan dari monster.
1287: - Monster biasa dengan kemungkinan menjatuhkan barang tertinggi. (Maks. hanya %d yang ditampilkan):

View File

@@ -1375,7 +1375,7 @@
// @iteminfo
1276: Digite o nome/ID de um item (uso: @ii/@iteminfo <nome do item/ID>).
1277: Item: '%s'/'%s'[%d] (%u) Tipo: %s | Efeito Extra: %s
1277: Item: '%s'/'%s' (%u) Tipo: %s | Efeito Extra: %s
1278: Nenhum
1279: Com script
1280: NPC Compra:%dz, Venda:%dz | Peso: %.1f
@@ -1385,7 +1385,7 @@
// @whodrops
1284: Digite o nome/ID de um item (uso: @whodrops <nome do item/ID>).
1285: Item: '%s'[%d] (ID:%d)
1285: Item: '%s' (ID:%d)
1286: - Item não derrubado por monstros.
1287: - Monstros comuns com maiores chances de drop (somente máx %d são listados):

View File

@@ -1205,7 +1205,7 @@
// @iteminfo
1276: Введите ID/название предмета (Использование: @ii/@iteminfo <ID/название предмета>).
1277: Предмет: '%s'/'%s'[%d] (%u) Тип: %s | Доп. эффект: %s
1277: Предмет: '%s'/'%s' (%u) Тип: %s | Доп. эффект: %s
1278: Пусто
1279: Скрипт
1280: НИП покупка:%d зени, продажа:%d зени | Вес: %.1f
@@ -1215,7 +1215,7 @@
// @whodrops
1284: Введите ID/название предмета (Использование: @whodrops <ID/название предмета>).
1285: Предмет: '%s'[%d] (ID:%d)
1285: Предмет: '%s' (ID:%d)
1286: - Предмет не падает с монстров.
1287: - Обычные монстры с высоким шансом выпадения (перечислено только %d):

View File

@@ -1344,7 +1344,7 @@
// @iteminfo
1276: Introduce el nombre/ID de un objeto (instrucciones: @ii/@iteminfo <nombre/ID del objeto>).
1277: Objeto: '%s'/'%s'[%d] (%u) Tipo: %s | Efecto: %s
1277: Objeto: '%s'/'%s' (%u) Tipo: %s | Efecto: %s
1278: Ninguno
1279: Contiene código
1280: Compra en NPC:%dz, Venta:%dz | Peso: %.1f
@@ -1354,7 +1354,7 @@
// @whodrops
1284: Introduce el nombre/ID de un objeto (instrucciones: @whodrops <nombre/ID del objeto>). 
1285: Objeto: '%s'[%d] (ID:%d)
1285: Objeto: '%s' (ID:%d)
1286: - Ningún monstruo tiene ese objeto.
1287: - Estos monstruos tienen ese objeto (sólo se muestran un máximo de %d):

View File

@@ -1198,7 +1198,7 @@
// @iteminfo
1276: ג»<D792>´<EFBFBD><C2B4>÷<EFBFBD>×<EFBFBD>ט<EFBFBD>/ID item (<28><>¸<EFBFBD>ד×י: @ii/@iteminfo <×<>ט<EFBFBD>/ID item>).
1277: Item: '%s'/'%s'[%d] (%u) Type: %s | Extra Effect: %s
1277: Item: '%s'/'%s' (%u) Type: %s | Extra Effect: %s
1278: None
1279: With script
1280: NPC Buy:%dz, Sell:%dz | Weight: %.1f
@@ -1208,7 +1208,7 @@
// @whodrops
1284: ג»<D792>´<EFBFBD><C2B4>÷<EFBFBD>×<EFBFBD>ט<EFBFBD>/ID item (<28><>¸<EFBFBD>ד×י: @whodrops <×<>ט<EFBFBD>/ID item>).
1285: Item: '%s'[%d] (ID:%d)
1285: Item: '%s' (ID:%d)
1286: - Item ¹<>יה<D799>ט<EFBFBD><D798>µ<EFBFBD>¨<EFBFBD><C2A8> monster.
1287: - Monster ·<>ט<EFBFBD>ה»·<C2BB>ט<EFBFBD><D798>ג<EFBFBD><D792><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD>§<EFBFBD><C2A7>´<>´§א¾<D790><C2BE>§ %d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>):

8
configure vendored
View File

@@ -4538,9 +4538,9 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
CFLAGS="$CFLAGS -pipe -ffast-math -Wall"
CPPFLAGS="$CPPFLAGS -I../common"
CXXFLAGS="$CXXFLAGS -std=c++11"
#CXXFLAGS="$CXXFLAGS -std=gnu++11"
CXXFLAG_CLEARS="-std=c++11"
CXXFLAGS="$CXXFLAGS -std=c++14"
#CXXFLAGS="$CXXFLAGS -std=gnu++14"
CXXFLAG_CLEARS="-std=c++14"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
@@ -7109,7 +7109,7 @@ else
$as_echo "no" >&6; }
fi
CXXFLAG_CLEARS="-std=c++11 $CPPFLAGS"
CXXFLAG_CLEARS="-std=c++14 $CPPFLAGS"
CFLAGS="$OPT_LTO $CFLAGS"
CFLAGS_AR="$OPT_LTO_AR $CFLAGS"

View File

@@ -483,9 +483,9 @@ AC_LANG([C++])
CFLAGS="$CFLAGS -pipe -ffast-math -Wall"
CPPFLAGS="$CPPFLAGS -I../common"
CXXFLAGS="$CXXFLAGS -std=c++11"
#CXXFLAGS="$CXXFLAGS -std=gnu++11"
CXXFLAG_CLEARS="-std=c++11"
CXXFLAGS="$CXXFLAGS -std=c++14"
#CXXFLAGS="$CXXFLAGS -std=gnu++14"
CXXFLAG_CLEARS="-std=c++14"
AC_C_BIGENDIAN(
[AC_MSG_ERROR([[bigendian is not supported... stopping]])],
@@ -620,7 +620,7 @@ if test "$enable_lto" != "no" ; then
)
CFLAGS="$OLD_CFLAGS"
LDFLAGS="$OLD_LDFLAGS"
CFLAGS="$CFLAGS -flto -fuse-linker-plugin"
LDFLAGS="$LDFLAGS -flto -fuse-linker-plugin"
@@ -1355,7 +1355,7 @@ else
AC_MSG_RESULT([no])
fi
CXXFLAG_CLEARS="-std=c++11 $CPPFLAGS"
CXXFLAG_CLEARS="-std=c++14 $CPPFLAGS"
CFLAGS="$OPT_LTO $CFLAGS"
CFLAGS_AR="$OPT_LTO_AR $CFLAGS"
AC_SUBST([CFLAGS_AR])

View File

@@ -1,5 +1,5 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# Copyright(C) 2023 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
@@ -27,8 +27,9 @@
# - Level Item level.
# Grades: Enchantgrade settings per grade level.
# - Grade Enchantgrade level.
# Refine Required refine level.
# Chance Base chance of success out of 0~10000.
# Chances: Chance settings per refine level.
# - Refine Refine level.
# Chance Base chance of success out of 0~10000.
# Bonus Enchantgrade bonus. (Default: 0)
# AnnounceSuccess Announce on upgrade success. (Default: true)
# AnnounceFail Announce on upgrade failure. (Default: false)
@@ -51,7 +52,7 @@
Header:
Type: ENCHANTGRADE_DB
Version: 2
Version: 3
Footer:
Imports:

View File

@@ -1,119 +0,0 @@
// Homunculus Skill Tree Database
//
// Structure of Database:
// Class,SkillID,MaxLv,NeedLevel,Prerequisite SkillID1,Prerequisite SkillLv1,PrereqSkillID2,PrereqSkillLv2,PrereqSkillID3,PrereqSkillLv3,PrereqSkillID4,PrereqSkillLv4,PrereqSkillID5,PrereqSkillLv5,IntimacyLvReq //SKILLNAME#Skill Name#
//
// 01. Class Homunculus ID.
// 02. SkillID Skill ID of the homunuculus skill.
// 03. MaxLv Maximum level of the homunuculus skill.
// 04. NeedLevel Homunculus level required for the skill to become available
// 05. Prerequisite SkillID Homunculus skill required for the skill to become available.
// 06. Prerequisite SkillLv Level of the required homunculus skill.
// ...
// 15. IntimacyLvReq Minimum level of intimacy to unlock skill.
//
// NOTE: MAX_PC_SKILL_REQUIRE (typically 5) ID/Lv pairs must be specified.
//Lif
6001,8001,5,0,0,0,0,0,0,0,0,0,0,0,0 //HLIF_HEAL
6001,8002,5,0,8001,3,0,0,0,0,0,0,0,0,0 //HLIF_AVOID
6001,8003,5,0,8001,5,0,0,0,0,0,0,0,0,0 //HLIF_BRAIN
//Amistr
6002,8005,5,0,0,0,0,0,0,0,0,0,0,0,0 //HAMI_CASTLE
6002,8006,5,0,8005,5,0,0,0,0,0,0,0,0,0 //HAMI_DEFENCE
6002,8007,5,0,8006,3,0,0,0,0,0,0,0,0,0 //HAMI_SKIN
//Filir
6003,8009,5,0,0,0,0,0,0,0,0,0,0,0,0 //HFLI_MOON
6003,8010,5,0,8009,3,0,0,0,0,0,0,0,0,0 //HFLI_FLEET
6003,8011,5,0,8010,3,0,0,0,0,0,0,0,0,0 //HFLI_SPEED
//Vanilmirth
6004,8013,5,0,0,0,0,0,0,0,0,0,0,0,0 //HVAN_CAPRICE
6004,8014,5,0,8013,3,0,0,0,0,0,0,0,0,0 //HVAN_CHAOTIC
6004,8015,5,0,8013,5,0,0,0,0,0,0,0,0,0 //HVAN_INSTRUCT
//Lif2
6005,8001,5,0,0,0,0,0,0,0,0,0,0,0,0 //HLIF_HEAL
6005,8002,5,0,8001,3,0,0,0,0,0,0,0,0,0 //HLIF_AVOID
6005,8003,5,0,8001,5,0,0,0,0,0,0,0,0,0 //HLIF_BRAIN
//Amistr2
6006,8005,5,0,0,0,0,0,0,0,0,0,0,0,0 //HAMI_CASTLE
6006,8006,5,0,8005,5,0,0,0,0,0,0,0,0,0 //HAMI_DEFENCE
6006,8007,5,0,8006,3,0,0,0,0,0,0,0,0,0 //HAMI_SKIN
//Filir2
6007,8009,5,0,0,0,0,0,0,0,0,0,0,0,0 //HFLI_MOON
6007,8010,5,0,8009,3,0,0,0,0,0,0,0,0,0 //HFLI_FLEET
6007,8011,5,0,8010,3,0,0,0,0,0,0,0,0,0 //HFLI_SPEED
//Vanilmirth2
6008,8013,5,0,0,0,0,0,0,0,0,0,0,0,0 //HVAN_CAPRICE
6008,8014,5,0,8013,3,0,0,0,0,0,0,0,0,0 //HVAN_CHAOTIC
6008,8015,5,0,8013,5,0,0,0,0,0,0,0,0,0 //HVAN_INSTRUCT
//Lif_H
6009,8001,5,0,0,0,0,0,0,0,0,0,0,0,0 //HLIF_HEAL
6009,8002,5,0,8001,3,0,0,0,0,0,0,0,0,0 //HLIF_AVOID
6009,8003,5,0,8001,5,0,0,0,0,0,0,0,0,0 //HLIF_BRAIN
6009,8004,3,0,0,0,0,0,0,0,0,0,0,0,910 //HLIF_CHANGE
//Amistr_H
6010,8005,5,0,0,0,0,0,0,0,0,0,0,0,0 //HAMI_CASTLE
6010,8006,5,0,8005,5,0,0,0,0,0,0,0,0,0 //HAMI_DEFENCE
6010,8007,5,0,8006,3,0,0,0,0,0,0,0,0,0 //HAMI_SKIN
6010,8008,3,0,0,0,0,0,0,0,0,0,0,0,910 //HAMI_BLOODLUST
//Filir_H
6011,8009,5,0,0,0,0,0,0,0,0,0,0,0,0 //HFLI_MOON
6011,8010,5,0,8009,3,0,0,0,0,0,0,0,0,0 //HFLI_FLEET
6011,8011,5,0,8010,3,0,0,0,0,0,0,0,0,0 //HFLI_SPEED
6011,8012,3,0,0,0,0,0,0,0,0,0,0,0,910 //HFLI_SBR44
//Vanilmirth_H
6012,8013,5,0,0,0,0,0,0,0,0,0,0,0,0 //HVAN_CAPRICE
6012,8014,5,0,8013,3,0,0,0,0,0,0,0,0,0 //HVAN_CHAOTIC
6012,8015,5,0,8013,5,0,0,0,0,0,0,0,0,0 //HVAN_INSTRUCT
6012,8016,3,0,0,0,0,0,0,0,0,0,0,0,910 //HVAN_EXPLOSION
//Lif2_H
6013,8001,5,0,0,0,0,0,0,0,0,0,0,0,0 //HLIF_HEAL
6013,8002,5,0,8001,3,0,0,0,0,0,0,0,0,0 //HLIF_AVOID
6013,8003,5,0,8001,5,0,0,0,0,0,0,0,0,0 //HLIF_BRAIN
6013,8004,3,0,0,0,0,0,0,0,0,0,0,0,910 //HLIF_CHANGE
//Amistr2_H
6014,8005,5,0,0,0,0,0,0,0,0,0,0,0,0 //HAMI_CASTLE
6014,8006,5,0,8005,5,0,0,0,0,0,0,0,0,0 //HAMI_DEFENCE
6014,8007,5,0,8006,3,0,0,0,0,0,0,0,0,0 //HAMI_SKIN
6014,8008,3,0,0,0,0,0,0,0,0,0,0,0,910 //HAMI_BLOODLUST
//Filir2_H
6015,8009,5,0,0,0,0,0,0,0,0,0,0,0,0 //HFLI_MOON
6015,8010,5,0,8009,3,0,0,0,0,0,0,0,0,0 //HFLI_FLEET
6015,8011,5,0,8010,3,0,0,0,0,0,0,0,0,0 //HFLI_SPEED
6015,8012,3,0,0,0,0,0,0,0,0,0,0,0,910 //HFLI_SBR44
//Vanilmirth2_H
6016,8013,5,0,0,0,0,0,0,0,0,0,0,0,0 //HVAN_CAPRICE
6016,8014,5,0,8013,3,0,0,0,0,0,0,0,0,0 //HVAN_CHAOTIC
6016,8015,5,0,8013,5,0,0,0,0,0,0,0,0,0 //HVAN_INSTRUCT
6016,8016,3,0,0,0,0,0,0,0,0,0,0,0,910 //HVAN_EXPLOSION
//Eira
6048,8022,5,128,0,0,0,0,0,0,0,0,0,0,0 //MH_LIGHT_OF_REGENE
6048,8023,5,114,0,0,0,0,0,0,0,0,0,0,0 //MH_OVERED_BOOST
6048,8024,10,106,0,0,0,0,0,0,0,0,0,0,0 //MH_ERASER_CUTTER
6048,8025,10,121,0,0,0,0,0,0,0,0,0,0,0 //MH_XENO_SLASHER
6048,8026,5,137,0,0,0,0,0,0,0,0,0,0,0 //MH_SILENT_BREEZE
//Bayeri
6049,8031,10,105,0,0,0,0,0,0,0,0,0,0,0 //MH_STAHL_HORN
6049,8032,5,112,0,0,0,0,0,0,0,0,0,0,0 //MH_GOLDENE_FERSE
6049,8033,5,121,0,0,0,0,0,0,0,0,0,0,0 //MH_STEINWAND
6049,8034,10,138,0,0,0,0,0,0,0,0,0,0,0 //MH_HEILIGE_STANGE
6049,8035,5,130,0,0,0,0,0,0,0,0,0,0,0 //MH_ANGRIFFS_MODUS
//Sera
6050,8018,5,132,0,0,0,0,0,0,0,0,0,0,0 //MH_SUMMON_LEGION
6050,8019,10,105,0,0,0,0,0,0,0,0,0,0,0 //MH_NEEDLE_OF_PARALYZE
6050,8020,5,116,0,0,0,0,0,0,0,0,0,0,0 //MH_POISON_MIST
6050,8021,10,123,0,0,0,0,0,0,0,0,0,0,0 //MH_PAIN_KILLER
//Dieter
6051,8039,5,122,0,0,0,0,0,0,0,0,0,0,0 //MH_MAGMA_FLOW
6051,8040,5,116,0,0,0,0,0,0,0,0,0,0,0 //MH_GRANITIC_ARMOR
6051,8041,10,109,0,0,0,0,0,0,0,0,0,0,0 //MH_LAVA_SLIDE
6051,8042,10,131,0,0,0,0,0,0,0,0,0,0,0 //MH_PYROCLASTIC
6051,8043,5,102,0,0,0,0,0,0,0,0,0,0,0 //MH_VOLCANIC_ASH
//Elanor
6052,8027,1,100,0,0,0,0,0,0,0,0,0,0,0 //MH_STYLE_CHANGE
6052,8028,5,100,0,0,0,0,0,0,0,0,0,0,0 //MH_SONIC_CRAW
6052,8029,10,114,0,0,0,0,0,0,0,0,0,0,0 //MH_SILVERVEIN_RUSH
6052,8030,10,128,0,0,0,0,0,0,0,0,0,0,0 //MH_MIDNIGHT_FRENZY
6052,8036,5,100,0,0,0,0,0,0,0,0,0,0,0 //MH_TINDER_BREAKER
6052,8037,5,112,0,0,0,0,0,0,0,0,0,0,0 //MH_CBC
6052,8038,5,133,0,0,0,0,0,0,0,0,0,0,0 //MH_EQC

65
db/homunculus_db.yml Normal file
View File

@@ -0,0 +1,65 @@
# This file is a part of rAthena.
# Copyright(C) 2023 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/>.
#
###########################################################################
# Homunculus Database
###########################################################################
#
# Homunculus Settings
#
###########################################################################
# - BaseClass Base class.
# Name Name of homunculus.
# EvolutionClass Evolution class.
# Food Homunculus food item. (Default: Pet_Food)
# HungryDelay Time interval in milliseconds after which the hunger value is altered. (Default: 60000)
# Race Race. (Default: Demihuman)
# Element Element. (Default: Neutral)
# Size Size. (Default: Small)
# EvolutionSize Evolution size. (Default: Medium)
# AttackDelay Base ASPD. (Default: 700)
# Status: Homunculus stats.
# - Type Type of status.
# Base Base value of this status. (Default: 1)
# GrowthMinimum Minimum growth of this status. (Default: 0)
# GrowthMaximum Maximum growth of this status. (Default: 0)
# EvolutionMinimum Minimum evolution growth of this status. Only applies for homunculus that can evolve. (Default: 0)
# EvolutionMaximum Maximum evolution growth of this status. Only applies for homunculus that can evolve. (Default: 0)
# SkillTree: Skill tree.
# - Skill Skill name.
# Clear True to remove the given skill name. (Optional)
# MaxLevel Maximum level of skill.
# RequiredLevel Required base level of homunculus to learn. (Default: 0)
# RequiredIntimacy Required intimacy of homunculus to learn. (Default: 0)
# RequireEvolution Require the homunculus to be evolved to be available. (Default: false)
# Required: Prerequisite skills. (Default: null)
# - Skill Prerequisite skill name.
# Level Level of prerequisite skill.
# Clear True to remove the given prerequisite skill name. (Optional)
###########################################################################
Header:
Type: HOMUNCULUS_DB
Version: 1
Footer:
Imports:
- Path: db/pre-re/homunculus_db.yml
Mode: Prerenewal
- Path: db/re/homunculus_db.yml
Mode: Renewal
- Path: db/import/homunculus_db.yml

View File

@@ -1,5 +1,5 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# Copyright(C) 2023 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
@@ -27,8 +27,9 @@
# - Level Item level.
# Grades: Enchantgrade settings per grade level.
# - Grade Enchantgrade level.
# Refine Required refine level.
# Chance Base chance of success out of 0~10000.
# Chances: Chance settings per refine level.
# - Refine Refine level.
# Chance Base chance of success out of 0~10000.
# Bonus Enchantgrade bonus. (Default: 0)
# AnnounceSuccess Announce on upgrade success. (Default: true)
# AnnounceFail Announce on upgrade failure. (Default: false)
@@ -51,4 +52,4 @@
Header:
Type: ENCHANTGRADE_DB
Version: 2
Version: 3

View File

@@ -1,15 +0,0 @@
// Homunculus Skill Tree Database
//
// Structure of Database:
// Class,SkillID,MaxLv,NeedLevel,Prerequisite SkillID1,Prerequisite SkillLv1,PrereqSkillID2,PrereqSkillLv2,PrereqSkillID3,PrereqSkillLv3,PrereqSkillID4,PrereqSkillLv4,PrereqSkillID5,PrereqSkillLv5,IntimacyLvReq //SKILLNAME#Skill Name#
//
// 01. Class Homunculus ID.
// 02. SkillID Skill ID of the homunuculus skill.
// 03. MaxLv Maximum level of the homunuculus skill.
// 04. NeedLevel Homunculus level required for the skill to become available
// 05. Prerequisite SkillID Homunculus skill required for the skill to become available.
// 06. Prerequisite SkillLv Level of the required homunculus skill.
// ...
// 15. IntimacyLvReq Minimum level of intimacy to unlock skill.
//
// NOTE: MAX_PC_SKILL_REQUIRE (typically 5) ID/Lv pairs must be specified.

View File

@@ -1,20 +0,0 @@
// Homunculus Database
//
// Structure of Database:
// Class,EvoClass,Name,FoodID,HungryDelay,BaseSize,EvoSize,Race,Element,bASPD,bHP,bSP,bSTR,bAGI,bVIT,bINT,bDEX,bLUK,gnHP,gxHP,gnSP,gxSP,gnSTR,gxSTR,gnAGI,gxAGI,gnVIT,gxVIT,gnINT,gxINT,gnDEX,gxDEX,gnLUK,gxLUK,enHP,exHP,enSP,exSP,enSTR,exSTR,enAGI,exAGI,enVIT,exVIT,enINT,exINT,enDEX,exDEX,enLUK,exLUK
//
// 01. Class Homunculus ID.
// 02. EvoClass Homunculus ID of the evolved version.
// 03. Name Name of the homunculus.
// 04. FoodID Item ID of the homunuclus food.
// 05. HungryDelay Time interval in milliseconds after which the homunculus' hunger value is altered.
// 06. BaseSize Size of the base homunculus class (0 = small, 1 = normal, 2 = large).
// 07. EvoSize Size of the evolved homunculus class (0 = small, 1 = normal, 2 = large).
// 08. Race Race of the homunculus (0 = formless, 1 = undead, 2 = brute, 3 = plant, 4 = insect, 5 = fish, 6 = demon, 7 = demi-human, 8 = angel, 9 = dragon).
// 09. Element Element of the homunculus (0 = neutral, 1 = water, 2 = earth, 3 = fire, 4 = wind, 5 = poison, 6 = holy, 7 = dark, 8 = ghost, 9 = undead).
// The element level is always 1.
// ...
//
// Legend: b: base, gn: growth min, gx: growth max, en: evolution min, ex: evolution max
// NOTE: Only the growth values are in a 1/10 scale, the other stats are 1/1 (eg: 5 gmAGI means 0.5 agi)

View File

@@ -0,0 +1,57 @@
# This file is a part of rAthena.
# Copyright(C) 2023 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/>.
#
###########################################################################
# Homunculus Database
###########################################################################
#
# Homunculus Settings
#
###########################################################################
# - BaseClass Base class.
# Name Name of homunculus.
# EvolutionClass Evolution class.
# Food Homunculus food item. (Default: Pet_Food)
# HungryDelay Time interval in milliseconds after which the hunger value is altered. (Default: 60000)
# Race Race. (Default: Demihuman)
# Element Element. (Default: Neutral)
# Size Size. (Default: Small)
# EvolutionSize Evolution size. (Default: Medium)
# AttackDelay Base ASPD. (Default: 700)
# Status: Homunculus stats.
# - Type Type of status.
# Base Base value of this status. (Default: 1)
# GrowthMinimum Minimum growth of this status. (Default: 0)
# GrowthMaximum Maximum growth of this status. (Default: 0)
# EvolutionMinimum Minimum evolution growth of this status. Only applies for homunculus that can evolve. (Default: 0)
# EvolutionMaximum Maximum evolution growth of this status. Only applies for homunculus that can evolve. (Default: 0)
# SkillTree: Skill tree.
# - Skill Skill name.
# Clear True to remove the given skill name. (Optional)
# MaxLevel Maximum level of skill.
# RequiredLevel Required base level of homunculus to learn. (Default: 0)
# RequiredIntimacy Required intimacy of homunculus to learn. (Default: 0)
# RequireEvolution Require the homunculus to be evolved to be available. (Default: false)
# Required: Prerequisite skills. (Default: null)
# - Skill Prerequisite skill name.
# Level Level of prerequisite skill.
# Clear True to remove the given prerequisite skill name. (Optional)
###########################################################################
Header:
Type: HOMUNCULUS_DB
Version: 1

View File

@@ -27,7 +27,7 @@
# 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.
# Rate Drop rate of item, n/100000.
# RandomOptionGroup Random Option Group applied to item on drop. (Default: None)
# SpecificDrops Drops for specific monsters on this map. (Default: empty)
# - Monster Monster name.
@@ -35,10 +35,10 @@
# 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.
# Rate Drop rate of item, n/100000.
# RandomOptionGroup Random Option Group applied to item on drop. (Default: None)
###########################################################################
Header:
Type: MAP_DROP_DB
Version: 1
Version: 2

Binary file not shown.

View File

@@ -27,7 +27,7 @@
# 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.
# Rate Drop rate of item, n/100000.
# RandomOptionGroup Random Option Group applied to item on drop. (Default: None)
# SpecificDrops Drops for specific monsters on this map. (Default: empty)
# - Monster Monster name.
@@ -35,13 +35,13 @@
# 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.
# Rate Drop rate of item, n/100000.
# RandomOptionGroup Random Option Group applied to item on drop. (Default: None)
###########################################################################
Header:
Type: MAP_DROP_DB
Version: 1
Version: 2
Footer:
Imports:

View File

@@ -1210,6 +1210,26 @@ bl_temple
bl_venom
mjo_wst01
ra_pol01
1@20cn1
1@20cn2
1@slug
1@twas
1@twbs
1@twig
1@twsd
icas_in2
jor_back4
jor_back5
jor_back6
jor_maze
jor_root1
jor_root2
jor_root3
jor_safty1
jor_safty2
jor_sanct
jor_twice
jor_twig
//======================================================================================
// - Other/Extra maps -

View File

@@ -1,33 +0,0 @@
// Homunculus Database
//
// Structure of Database:
// Class,EvoClass,Name,FoodID,HungryDelay,BaseSize,EvoSize,Race,Element,bASPD,bHP,bSP,bSTR,bAGI,bVIT,bINT,bDEX,bLUK,gnHP,gxHP,gnSP,gxSP,gnSTR,gxSTR,gnAGI,gxAGI,gnVIT,gxVIT,gnINT,gxINT,gnDEX,gxDEX,gnLUK,gxLUK,enHP,exHP,enSP,exSP,enSTR,exSTR,enAGI,exAGI,enVIT,exVIT,enINT,exINT,enDEX,exDEX,enLUK,exLUK
//
// 01. Class Homunculus ID.
// 02. EvoClass Homunculus ID of the evolved version.
// 03. Name Name of the homunculus.
// 04. FoodID Item ID of the homunuclus food.
// 05. HungryDelay Time interval in milliseconds after which the homunculus' hunger value is altered.
// 06. BaseSize Size of the base homunculus class (0 = small, 1 = normal, 2 = large).
// 07. EvoSize Size of the evolved homunculus class (0 = small, 1 = normal, 2 = large).
// 08. Race Race of the homunculus (0 = formless, 1 = undead, 2 = brute, 3 = plant, 4 = insect, 5 = fish, 6 = demon, 7 = demi-human, 8 = angel, 9 = dragon).
// 09. Element Element of the homunculus (0 = neutral, 1 = water, 2 = earth, 3 = fire, 4 = wind, 5 = poison, 6 = holy, 7 = dark, 8 = ghost, 9 = undead).
// The element level is always 1.
// ...
//
// Legend: b: base, gn: growth min, gx: growth max, en: evolution min, ex: evolution max
// NOTE: Only the growth values are in a 1/10 scale, the other stats are 1/1 (eg: 5 gmAGI means 0.5 agi)
6001,6009,Lif,537,60000,0,1,7,0,700,150,40,17,20,15,35,24,12,60,100,4,9,5,19,5,19,5,19,4,20,6,20,6,20,1,10,10,20,1,5,1,4,1,5,4,10,1,10,1,3
6002,6010,Amistr,912,60000,0,1,2,0,700,320,10,20,17,35,11,24,12,80,130,1,4,8,20,4,20,4,20,1,10,3,19,3,19,10,20,1,10,1,10,1,5,4,10,1,3,1,4,1,5
6003,6011,Filir,910,60000,0,1,2,0,700,90,25,29,35,9,8,30,9,45,75,3,6,4,20,8,20,1,10,3,19,4,20,3,19,5,15,5,15,4,10,1,10,1,3,1,4,1,5,1,5
6004,6012,Vanilmirth,911,60000,0,1,0,0,700,80,11,11,11,11,11,11,11,30,150,0,7,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,10,1,10,1,10,1,10,1,10,1,10
6005,6013,Lif,537,60000,0,1,7,0,700,150,40,17,20,15,35,24,12,60,100,4,9,5,19,5,19,5,19,4,20,6,20,6,20,1,10,10,20,1,5,1,4,1,5,4,10,1,10,1,3
6006,6014,Amistr,912,60000,0,1,2,0,700,320,10,20,17,35,11,24,12,80,130,1,4,8,20,4,20,4,20,1,10,3,19,3,19,10,20,1,10,1,10,1,5,4,10,1,3,1,4,1,5
6007,6015,Filir,910,60000,0,1,2,0,700,90,25,29,35,9,8,30,9,45,75,3,6,4,20,8,20,1,10,3,19,4,20,3,19,5,15,5,15,4,10,1,10,1,3,1,4,1,5,1,5
6008,6016,Vanilmirth,911,60000,0,1,0,0,700,80,11,11,11,11,11,11,11,30,150,0,7,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,10,1,10,1,10,1,10,1,10,1,10
6048,6048,Eira,6098,60000,1,1,7,0,700,150,40,17,20,15,35,24,12,60,100,4,9,5,19,5,19,5,19,4,20,6,20,6,20,1,10,10,20,1,5,1,4,1,5,4,10,1,10,1,3
6049,6049,Bayeri,6112,60000,1,1,2,0,700,320,10,20,17,35,11,24,12,80,130,1,4,8,20,4,20,4,20,1,10,3,19,3,19,10,20,1,10,1,10,1,5,4,10,1,3,1,4,1,5
6050,6050,Sera,6108,60000,1,1,4,0,700,90,25,29,35,9,8,30,9,45,75,3,6,4,20,8,20,1,10,3,19,4,20,3,19,5,15,5,15,4,10,1,10,1,3,1,4,1,5,1,5
6051,6051,Dieter,6104,60000,1,1,0,0,700,80,11,11,11,11,11,11,11,30,150,0,7,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,10,1,10,1,10,1,10,1,10,1,10
6052,6052,Eleanor,6115,60000,1,1,2,0,700,320,10,20,17,35,11,24,12,80,130,1,4,8,20,4,20,4,20,1,10,3,19,3,19,10,20,1,10,1,10,1,5,4,10,1,3,1,4,1,5

623
db/pre-re/homunculus_db.yml Normal file
View File

@@ -0,0 +1,623 @@
# This file is a part of rAthena.
# Copyright(C) 2023 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/>.
#
###########################################################################
# Homunculus Database
###########################################################################
#
# Homunculus Settings
#
###########################################################################
# - BaseClass Base class.
# Name Name of homunculus.
# EvolutionClass Evolution class.
# Food Homunculus food item. (Default: Pet_Food)
# HungryDelay Time interval in milliseconds after which the hunger value is altered. (Default: 60000)
# Race Race. (Default: Demihuman)
# Element Element. (Default: Neutral)
# Size Size. (Default: Small)
# EvolutionSize Evolution size. (Default: Medium)
# AttackDelay Base ASPD. (Default: 700)
# Status: Homunculus stats.
# - Type Type of status.
# Base Base value of this status. (Default: 1)
# GrowthMinimum Minimum growth of this status. (Default: 0)
# GrowthMaximum Maximum growth of this status. (Default: 0)
# EvolutionMinimum Minimum evolution growth of this status. Only applies for homunculus that can evolve. (Default: 0)
# EvolutionMaximum Maximum evolution growth of this status. Only applies for homunculus that can evolve. (Default: 0)
# SkillTree: Skill tree.
# - Skill Skill name.
# Clear True to remove the given skill name. (Optional)
# MaxLevel Maximum level of skill.
# RequiredLevel Required base level of homunculus to learn. (Default: 0)
# RequiredIntimacy Required intimacy of homunculus to learn. (Default: 0)
# RequireEvolution Require the homunculus to be evolved to be available. (Default: false)
# Required: Prerequisite skills. (Default: null)
# - Skill Prerequisite skill name.
# Level Level of prerequisite skill.
# Clear True to remove the given prerequisite skill name. (Optional)
###########################################################################
Header:
Type: HOMUNCULUS_DB
Version: 1
Body:
- Class: Lif
Name: Lif
EvolutionClass: Lif_H
Status:
- Type: Hp
Base: 150
GrowthMinimum: 60
GrowthMaximum: 100
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Sp
Base: 40
GrowthMinimum: 4
GrowthMaximum: 9
EvolutionMinimum: 10
EvolutionMaximum: 20
- Type: Str
Base: 17
GrowthMinimum: 5
GrowthMaximum: 19
EvolutionMinimum: 1
EvolutionMaximum: 5
- Type: Agi
Base: 20
GrowthMinimum: 5
GrowthMaximum: 19
EvolutionMinimum: 1
EvolutionMaximum: 4
- Type: Vit
Base: 15
GrowthMinimum: 5
GrowthMaximum: 19
EvolutionMinimum: 1
EvolutionMaximum: 5
- Type: Int
Base: 35
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 4
EvolutionMaximum: 10
- Type: Dex
Base: 24
GrowthMinimum: 6
GrowthMaximum: 20
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Luk
Base: 12
GrowthMinimum: 6
GrowthMaximum: 20
EvolutionMinimum: 1
EvolutionMaximum: 3
SkillTree:
- Skill: HLIF_HEAL
MaxLevel: 5
- Skill: HLIF_AVOID
MaxLevel: 5
Required:
- Skill: HLIF_HEAL
Level: 3
- Skill: HLIF_BRAIN
MaxLevel: 5
Required:
- Skill: HLIF_HEAL
Level: 5
- Skill: HLIF_CHANGE
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true
- Class: Amistr
Name: Amistr
EvolutionClass: Amistr_H
Food: Zargon
Race: Brute
Status:
- Type: Hp
Base: 320
GrowthMinimum: 80
GrowthMaximum: 130
EvolutionMinimum: 10
EvolutionMaximum: 20
- Type: Sp
Base: 10
GrowthMinimum: 1
GrowthMaximum: 4
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Str
Base: 20
GrowthMinimum: 8
GrowthMaximum: 20
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Agi
Base: 17
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 1
EvolutionMaximum: 5
- Type: Vit
Base: 35
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 4
EvolutionMaximum: 10
- Type: Int
Base: 11
GrowthMinimum: 1
GrowthMaximum: 10
EvolutionMinimum: 1
EvolutionMaximum: 3
- Type: Dex
Base: 24
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 1
EvolutionMaximum: 4
- Type: Luk
Base: 12
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 1
EvolutionMaximum: 5
SkillTree:
- Skill: HAMI_CASTLE
MaxLevel: 5
- Skill: HAMI_DEFENCE
MaxLevel: 5
Required:
- Skill: HAMI_CASTLE
Level: 5
- Skill: HAMI_SKIN
MaxLevel: 5
Required:
- Skill: HAMI_DEFENCE
Level: 3
- Skill: HAMI_BLOODLUST
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true
- Class: Filir
Name: Filir
EvolutionClass: Filir_H
Food: Garlet
Race: Brute
Status:
- Type: Hp
Base: 90
GrowthMinimum: 45
GrowthMaximum: 75
EvolutionMinimum: 5
EvolutionMaximum: 15
- Type: Sp
Base: 25
GrowthMinimum: 3
GrowthMaximum: 6
EvolutionMinimum: 5
EvolutionMaximum: 15
- Type: Str
Base: 29
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 4
EvolutionMaximum: 10
- Type: Agi
Base: 35
GrowthMinimum: 8
GrowthMaximum: 20
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Vit
Base: 9
GrowthMinimum: 1
GrowthMaximum: 10
EvolutionMinimum: 1
EvolutionMaximum: 3
- Type: Int
Base: 8
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 1
EvolutionMaximum: 4
- Type: Dex
Base: 30
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 1
EvolutionMaximum: 5
- Type: Luk
Base: 9
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 1
EvolutionMaximum: 5
SkillTree:
- Skill: HFLI_MOON
MaxLevel: 5
- Skill: HFLI_FLEET
MaxLevel: 5
Required:
- Skill: HFLI_MOON
Level: 3
- Skill: HFLI_SPEED
MaxLevel: 5
Required:
- Skill: HFLI_FLEET
Level: 3
- Skill: HFLI_SBR44
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true
- Class: Vanilmirth
Name: Vanilmirth
EvolutionClass: Vanilmirth_H
Food: Scell
Race: Formless
Status:
- Type: Hp
Base: 80
GrowthMinimum: 30
GrowthMaximum: 150
EvolutionMinimum: 1
EvolutionMaximum: 30
- Type: Sp
Base: 11
GrowthMinimum: 0
GrowthMaximum: 7
EvolutionMinimum: 1
EvolutionMaximum: 30
- Type: Str
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Agi
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Vit
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Int
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Dex
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Luk
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 1
EvolutionMaximum: 10
SkillTree:
- Skill: HVAN_CAPRICE
MaxLevel: 5
- Skill: HVAN_CHAOTIC
MaxLevel: 5
Required:
- Skill: HVAN_CAPRICE
Level: 3
- Skill: HVAN_INSTRUCT
MaxLevel: 5
Required:
- Skill: HVAN_CAPRICE
Level: 5
- Skill: HVAN_EXPLOSION
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true
- Class: Lif2
Name: Lif
EvolutionClass: Lif_H2
Status:
- Type: Hp
Base: 150
GrowthMinimum: 60
GrowthMaximum: 100
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Sp
Base: 40
GrowthMinimum: 4
GrowthMaximum: 9
EvolutionMinimum: 10
EvolutionMaximum: 20
- Type: Str
Base: 17
GrowthMinimum: 5
GrowthMaximum: 19
EvolutionMinimum: 1
EvolutionMaximum: 5
- Type: Agi
Base: 20
GrowthMinimum: 5
GrowthMaximum: 19
EvolutionMinimum: 1
EvolutionMaximum: 4
- Type: Vit
Base: 15
GrowthMinimum: 5
GrowthMaximum: 19
EvolutionMinimum: 1
EvolutionMaximum: 5
- Type: Int
Base: 35
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 4
EvolutionMaximum: 10
- Type: Dex
Base: 24
GrowthMinimum: 6
GrowthMaximum: 20
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Luk
Base: 12
GrowthMinimum: 6
GrowthMaximum: 20
EvolutionMinimum: 1
EvolutionMaximum: 3
SkillTree:
- Skill: HLIF_HEAL
MaxLevel: 5
- Skill: HLIF_AVOID
MaxLevel: 5
Required:
- Skill: HLIF_HEAL
Level: 3
- Skill: HLIF_BRAIN
MaxLevel: 5
Required:
- Skill: HLIF_HEAL
Level: 5
- Skill: HLIF_CHANGE
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true
- Class: Amistr2
Name: Amistr
EvolutionClass: Amistr_H2
Food: Zargon
Race: Brute
Status:
- Type: Hp
Base: 320
GrowthMinimum: 80
GrowthMaximum: 130
EvolutionMinimum: 10
EvolutionMaximum: 20
- Type: Sp
Base: 10
GrowthMinimum: 1
GrowthMaximum: 4
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Str
Base: 20
GrowthMinimum: 8
GrowthMaximum: 20
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Agi
Base: 17
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 1
EvolutionMaximum: 5
- Type: Vit
Base: 35
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 4
EvolutionMaximum: 10
- Type: Int
Base: 11
GrowthMinimum: 1
GrowthMaximum: 10
EvolutionMinimum: 1
EvolutionMaximum: 3
- Type: Dex
Base: 24
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 1
EvolutionMaximum: 4
- Type: Luk
Base: 12
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 1
EvolutionMaximum: 5
SkillTree:
- Skill: HAMI_CASTLE
MaxLevel: 5
- Skill: HAMI_DEFENCE
MaxLevel: 5
Required:
- Skill: HAMI_CASTLE
Level: 5
- Skill: HAMI_SKIN
MaxLevel: 5
Required:
- Skill: HAMI_DEFENCE
Level: 3
- Skill: HAMI_BLOODLUST
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true
- Class: Filir2
Name: Filir
EvolutionClass: Filir_H2
Food: Garlet
Race: Brute
Status:
- Type: Hp
Base: 90
GrowthMinimum: 45
GrowthMaximum: 75
EvolutionMinimum: 5
EvolutionMaximum: 15
- Type: Sp
Base: 25
GrowthMinimum: 3
GrowthMaximum: 6
EvolutionMinimum: 5
EvolutionMaximum: 15
- Type: Str
Base: 29
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 4
EvolutionMaximum: 10
- Type: Agi
Base: 35
GrowthMinimum: 8
GrowthMaximum: 20
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Vit
Base: 9
GrowthMinimum: 1
GrowthMaximum: 10
EvolutionMinimum: 1
EvolutionMaximum: 3
- Type: Int
Base: 8
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 1
EvolutionMaximum: 4
- Type: Dex
Base: 30
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 1
EvolutionMaximum: 5
- Type: Luk
Base: 9
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 1
EvolutionMaximum: 5
SkillTree:
- Skill: HFLI_MOON
MaxLevel: 5
- Skill: HFLI_FLEET
MaxLevel: 5
Required:
- Skill: HFLI_MOON
Level: 3
- Skill: HFLI_SPEED
MaxLevel: 5
Required:
- Skill: HFLI_FLEET
Level: 3
- Skill: HFLI_SBR44
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true
- Class: Vanilmirth2
Name: Vanilmirth
EvolutionClass: Vanilmirth_H2
Food: Scell
Race: Formless
Status:
- Type: Hp
Base: 80
GrowthMinimum: 30
GrowthMaximum: 150
EvolutionMinimum: 1
EvolutionMaximum: 30
- Type: Sp
Base: 11
GrowthMinimum: 0
GrowthMaximum: 7
EvolutionMinimum: 1
EvolutionMaximum: 30
- Type: Str
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Agi
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Vit
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Int
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Dex
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 1
EvolutionMaximum: 10
- Type: Luk
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 1
EvolutionMaximum: 10
SkillTree:
- Skill: HVAN_CAPRICE
MaxLevel: 5
- Skill: HVAN_CHAOTIC
MaxLevel: 5
Required:
- Skill: HVAN_CAPRICE
Level: 3
- Skill: HVAN_INSTRUCT
MaxLevel: 5
Required:
- Skill: HVAN_CAPRICE
Level: 5
- Skill: HVAN_EXPLOSION
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true

View File

@@ -1949,8 +1949,8 @@ Body:
Flags:
NoSave: true
NoClearance: true
RequireWeapon: true
RemoveOnHermode: true
RequireNoWeapon: true
- Status: Spirit
Icon: EFST_SOULLINK
DurationLookup: SL_HIGH

View File

@@ -2035,7 +2035,7 @@ Body:
Name: I really love it!
Condition: " BaseLevel == 99 && (Class >= JOB_SWORDMAN && Class <= JOB_THIEF) "
Rewards:
Item: E_Bubble_Gum_Box
Item: A_Bubble_Gum_Box10
Script: " specialeffect2 EF_BLESSING; sc_start SC_BLESSING,30000,10; "
Score: 30
- Id: 200031

View File

@@ -120,7 +120,7 @@ Body:
Holy: 125
Dark: 0
Ghost: 100
Undead: -25
Undead: 0
Ghost:
Neutral: 90
Water: 100
@@ -136,8 +136,8 @@ Body:
Neutral: 100
Water: 100
Earth: 100
Fire: 100
Wind: 90
Fire: 90
Wind: 100
Poison: 75
Holy: 125
Dark: 0
@@ -217,7 +217,7 @@ Body:
Fire: 100
Wind: 100
Poison: 75
Holy: -25
Holy: 0
Dark: 150
Ghost: 100
Undead: 150
@@ -229,9 +229,9 @@ Body:
Wind: 100
Poison: 75
Holy: 150
Dark: -25
Dark: 0
Ghost: 100
Undead: -50
Undead: 0
Ghost:
Neutral: 70
Water: 100
@@ -268,7 +268,7 @@ Body:
Undead: 100
Water:
Neutral: 100
Water: -25
Water: 0
Earth: 100
Fire: 200
Wind: 70
@@ -280,7 +280,7 @@ Body:
Earth:
Neutral: 100
Water: 100
Earth: -25
Earth: 0
Fire: 70
Wind: 200
Poison: 125
@@ -292,7 +292,7 @@ Body:
Neutral: 100
Water: 70
Earth: 200
Fire: -25
Fire: 0
Wind: 100
Poison: 125
Holy: 100
@@ -304,7 +304,7 @@ Body:
Water: 200
Earth: 70
Fire: 100
Wind: -25
Wind: 0
Poison: 125
Holy: 100
Dark: 100
@@ -328,7 +328,7 @@ Body:
Fire: 100
Wind: 100
Poison: 50
Holy: -50
Holy: 0
Dark: 175
Ghost: 100
Undead: 175
@@ -340,9 +340,9 @@ Body:
Wind: 100
Poison: 50
Holy: 175
Dark: -50
Dark: 0
Ghost: 100
Undead: -75
Undead: 0
Ghost:
Neutral: 50
Water: 100
@@ -379,7 +379,7 @@ Body:
Undead: 100
Water:
Neutral: 100
Water: -50
Water: 0
Earth: 100
Fire: 200
Wind: 60
@@ -391,7 +391,7 @@ Body:
Earth:
Neutral: 100
Water: 100
Earth: -50
Earth: 0
Fire: 60
Wind: 200
Poison: 125
@@ -403,7 +403,7 @@ Body:
Neutral: 100
Water: 60
Earth: 200
Fire: -50
Fire: 0
Wind: 100
Poison: 125
Holy: 100
@@ -415,7 +415,7 @@ Body:
Water: 200
Earth: 60
Fire: 100
Wind: -50
Wind: 0
Poison: 125
Holy: 100
Dark: 100
@@ -431,7 +431,7 @@ Body:
Holy: 50
Dark: 50
Ghost: 50
Undead: -100
Undead: 0
Holy:
Neutral: 100
Water: 100
@@ -439,7 +439,7 @@ Body:
Fire: 100
Wind: 100
Poison: 50
Holy: -100
Holy: 0
Dark: 200
Ghost: 100
Undead: 200
@@ -451,9 +451,9 @@ Body:
Wind: 100
Poison: 50
Holy: 200
Dark: -100
Dark: 0
Ghost: 100
Undead: -100
Undead: 0
Ghost:
Neutral: 0
Water: 100
@@ -471,7 +471,7 @@ Body:
Earth: 100
Fire: 60
Wind: 100
Poison: -25
Poison: 0
Holy: 200
Dark: 0
Ghost: 175

View File

@@ -1,5 +1,5 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# Copyright(C) 2023 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
@@ -27,8 +27,9 @@
# - Level Item level.
# Grades: Enchantgrade settings per grade level.
# - Grade Enchantgrade level.
# Refine Required refine level.
# Chance Base chance of success out of 0~10000.
# Chances: Chance settings per refine level.
# - Refine Refine level.
# Chance Base chance of success out of 0~10000.
# Bonus Enchantgrade bonus. (Default: 0)
# AnnounceSuccess Announce on upgrade success. (Default: true)
# AnnounceFail Announce on upgrade failure. (Default: false)
@@ -51,7 +52,7 @@
Header:
Type: ENCHANTGRADE_DB
Version: 2
Version: 3
Body:
- Type: Armor
@@ -59,8 +60,31 @@ Body:
- Level: 2
Grades:
- Grade: None
Refine: 11
Chance: 7000
Chances:
- Refine: 9
Chance: 1000
- Refine: 10
Chance: 2000
- Refine: 11
Chance: 7000
- Refine: 12
Chance: 7000
- Refine: 13
Chance: 7000
- Refine: 14
Chance: 7000
- Refine: 15
Chance: 7000
- Refine: 16
Chance: 7000
- Refine: 17
Chance: 7000
- Refine: 18
Chance: 7000
- Refine: 19
Chance: 7000
- Refine: 20
Chance: 7000
Bonus: 10
Catalyst:
Item: Blessed_Etel_Dust
@@ -78,8 +102,29 @@ Body:
Amount: 5
Zeny: 875000
- Grade: D
Refine: 11
Chance: 6000
Chances:
- Refine: 10
Chance: 2000
- Refine: 11
Chance: 6000
- Refine: 12
Chance: 6000
- Refine: 13
Chance: 6000
- Refine: 14
Chance: 6000
- Refine: 15
Chance: 6000
- Refine: 16
Chance: 6000
- Refine: 17
Chance: 6000
- Refine: 18
Chance: 6000
- Refine: 19
Chance: 6000
- Refine: 20
Chance: 6000
Bonus: 30
Catalyst:
Item: Blessed_Etel_Dust
@@ -97,8 +142,27 @@ Body:
Amount: 5
Zeny: 875000
- Grade: C
Refine: 11
Chance: 5000
Chances:
- Refine: 11
Chance: 5000
- Refine: 12
Chance: 5000
- Refine: 13
Chance: 5000
- Refine: 14
Chance: 5000
- Refine: 15
Chance: 5000
- Refine: 16
Chance: 5000
- Refine: 17
Chance: 5000
- Refine: 18
Chance: 5000
- Refine: 19
Chance: 5000
- Refine: 20
Chance: 5000
Bonus: 50
AnnounceFail: true
Catalyst:
@@ -117,8 +181,27 @@ Body:
Amount: 5
Zeny: 875000
- Grade: B
Refine: 11
Chance: 4000
Chances:
- Refine: 11
Chance: 4000
- Refine: 12
Chance: 4000
- Refine: 13
Chance: 4000
- Refine: 14
Chance: 4000
- Refine: 15
Chance: 4000
- Refine: 16
Chance: 4000
- Refine: 17
Chance: 4000
- Refine: 18
Chance: 4000
- Refine: 19
Chance: 4000
- Refine: 20
Chance: 4000
Bonus: 100
AnnounceFail: true
Catalyst:
@@ -141,8 +224,31 @@ Body:
- Level: 5
Grades:
- Grade: None
Refine: 11
Chance: 7000
Chances:
- Refine: 9
Chance: 1000
- Refine: 10
Chance: 2000
- Refine: 11
Chance: 7000
- Refine: 12
Chance: 7000
- Refine: 13
Chance: 7000
- Refine: 14
Chance: 7000
- Refine: 15
Chance: 7000
- Refine: 16
Chance: 7000
- Refine: 17
Chance: 7000
- Refine: 18
Chance: 7000
- Refine: 19
Chance: 7000
- Refine: 20
Chance: 7000
Bonus: 10
Catalyst:
Item: Blessed_Etel_Dust
@@ -160,8 +266,29 @@ Body:
Amount: 5
Zeny: 875000
- Grade: D
Refine: 11
Chance: 6000
Chances:
- Refine: 10
Chance: 2000
- Refine: 11
Chance: 6000
- Refine: 12
Chance: 6000
- Refine: 13
Chance: 6000
- Refine: 14
Chance: 6000
- Refine: 15
Chance: 6000
- Refine: 16
Chance: 6000
- Refine: 17
Chance: 6000
- Refine: 18
Chance: 6000
- Refine: 19
Chance: 6000
- Refine: 20
Chance: 6000
Bonus: 30
Catalyst:
Item: Blessed_Etel_Dust
@@ -179,8 +306,27 @@ Body:
Amount: 5
Zeny: 875000
- Grade: C
Refine: 11
Chance: 5000
Chances:
- Refine: 11
Chance: 5000
- Refine: 12
Chance: 5000
- Refine: 13
Chance: 5000
- Refine: 14
Chance: 5000
- Refine: 15
Chance: 5000
- Refine: 16
Chance: 5000
- Refine: 17
Chance: 5000
- Refine: 18
Chance: 5000
- Refine: 19
Chance: 5000
- Refine: 20
Chance: 5000
Bonus: 50
AnnounceFail: true
Catalyst:
@@ -199,8 +345,27 @@ Body:
Amount: 5
Zeny: 875000
- Grade: B
Refine: 11
Chance: 4000
Chances:
- Refine: 11
Chance: 4000
- Refine: 12
Chance: 4000
- Refine: 13
Chance: 4000
- Refine: 14
Chance: 4000
- Refine: 15
Chance: 4000
- Refine: 16
Chance: 4000
- Refine: 17
Chance: 4000
- Refine: 18
Chance: 4000
- Refine: 19
Chance: 4000
- Refine: 20
Chance: 4000
Bonus: 100
AnnounceFail: true
Catalyst:

View File

@@ -379,3 +379,154 @@ Body:
Exp: 87140000
- Level: 174
Exp: 94875000
# TODO: unconfirmed values from here
- Level: 175
Exp: 104362500
- Level: 176
Exp: 112711500
- Level: 177
Exp: 121728420
- Level: 178
Exp: 131466693
- Level: 179
Exp: 141984028
- Level: 180
Exp: 153342750
- Level: 181
Exp: 165610170
- Level: 182
Exp: 178858983
- Level: 183
Exp: 193167701
- Level: 184
Exp: 208621117
- Level: 185
Exp: 225310806
- Level: 186
Exp: 243335670
- Level: 187
Exp: 262802523
- Level: 188
Exp: 283826724
- Level: 189
Exp: 306532861
- Level: 190
Exp: 331055489
- Level: 191
Exp: 357539928
- Level: 192
Exp: 386143122
- Level: 193
Exp: 417034571
- Level: 194
Exp: 450397336
- Level: 195
Exp: 486429122
- Level: 196
Exp: 525343451
- Level: 197
Exp: 567370927
- Level: 198
Exp: 612760601
- Level: 199
Exp: 661781449
- Level: 200
Exp: 714723964
- Level: 201
Exp: 771901881
- Level: 202
Exp: 833654031
- Level: 203
Exp: 900346353
- Level: 204
Exp: 972374061
- Level: 205
Exp: 1050163985
- Level: 206
Exp: 1134177103
- Level: 207
Exp: 1224911271
- Level: 208
Exp: 1322904172
- Level: 209
Exp: 1428736505
- Level: 210
Exp: 1543035425
- Level: 211
Exp: 1666478259
- Level: 212
Exp: 1799796519
- Level: 213
Exp: 1943780240
- Level: 214
Exp: 2099282659
- Level: 215
Exp: 2267225271
- Level: 216
Exp: 2448603292
- Level: 217
Exp: 2644491555
- Level: 218
Exp: 2856050879
- Level: 219
Exp: 3084534949
- Level: 220
Exp: 3331297744
- Level: 221
Exp: 3597801563
- Level: 222
Exp: 3885625688
- Level: 223
Exp: 4196475743
- Level: 224
Exp: 4532193802
- Level: 225
Exp: 4894769306
- Level: 226
Exp: 5286350850
- Level: 227
Exp: 5709258918
- Level: 228
Exp: 6165999631
- Level: 229
Exp: 6659279601
- Level: 230
Exp: 7192021969
- Level: 231
Exp: 7767383726
- Level: 232
Exp: 8388774424
- Level: 233
Exp: 9059876377
- Level: 234
Exp: 9784666487
- Level: 235
Exp: 10567439805
- Level: 236
Exp: 11412834989
- Level: 237
Exp: 12325861788
- Level: 238
Exp: 13311930731
- Level: 239
Exp: 14376885189
- Level: 240
Exp: 15527036004
- Level: 241
Exp: 16769198884
- Level: 242
Exp: 18110734794
- Level: 243
Exp: 19559593577
- Level: 244
Exp: 21124361063
- Level: 245
Exp: 22814309948
- Level: 246
Exp: 24639454743
- Level: 247
Exp: 26610611122
- Level: 248
Exp: 28739460011
- Level: 249
Exp: 31038616811

View File

@@ -1,33 +0,0 @@
// Homunculus Database
//
// Structure of Database:
// Class,EvoClass,Name,FoodID,HungryDelay,BaseSize,EvoSize,Race,Element,bASPD,bHP,bSP,bSTR,bAGI,bVIT,bINT,bDEX,bLUK,gnHP,gxHP,gnSP,gxSP,gnSTR,gxSTR,gnAGI,gxAGI,gnVIT,gxVIT,gnINT,gxINT,gnDEX,gxDEX,gnLUK,gxLUK,enHP,exHP,enSP,exSP,enSTR,exSTR,enAGI,exAGI,enVIT,exVIT,enINT,exINT,enDEX,exDEX,enLUK,exLUK
//
// 01. Class Homunculus ID.
// 02. EvoClass Homunculus ID of the evolved version.
// 03. Name Name of the homunculus.
// 04. FoodID Item ID of the homunuclus food.
// 05. HungryDelay Time interval in milliseconds after which the homunculus' hunger value is altered.
// 06. BaseSize Size of the base homunculus class (0 = small, 1 = normal, 2 = large).
// 07. EvoSize Size of the evolved homunculus class (0 = small, 1 = normal, 2 = large).
// 08. Race Race of the homunculus (0 = formless, 1 = undead, 2 = brute, 3 = plant, 4 = insect, 5 = fish, 6 = demon, 7 = demi-human, 8 = angel, 9 = dragon).
// 09. Element Element of the homunculus (0 = neutral, 1 = water, 2 = earth, 3 = fire, 4 = wind, 5 = poison, 6 = holy, 7 = dark, 8 = ghost, 9 = undead).
// The element level is always 1.
// ...
//
// Legend: b: base, gn: growth min, gx: growth max, en: evolution min, ex: evolution max
// NOTE: Only the growth values are in a 1/10 scale, the other stats are 1/1 (eg: 5 gmAGI means 0.5 agi)
6001,6009,Lif,537,60000,0,1,7,0,700,150,40,17,20,15,35,24,12,60,100,4,9,5,19,5,19,5,19,4,20,6,20,6,20,800,2400,220,480,10,30,10,30,20,40,30,50,20,50,10,30
6002,6010,Amistr,912,60000,0,1,2,0,700,320,10,20,17,35,11,24,12,80,130,1,4,8,20,4,20,4,20,1,10,3,19,3,19,1600,3600,120,360,20,50,10,30,20,50,20,50,10,30,10,30
6003,6011,Filir,910,60000,0,1,2,0,700,90,25,29,35,9,8,30,9,45,75,3,6,4,20,8,20,1,10,3,19,4,20,3,19,1200,3200,200,400,20,50,10,30,20,50,20,50,10,30,10,30
6004,6012,Vanilmirth,911,60000,0,1,0,0,700,80,11,11,11,11,11,11,11,30,150,0,7,1,30,1,30,1,30,1,30,1,30,1,30,1200,4800,480,640,10,30,10,30,10,30,20,50,10,50,10,100
6005,6013,Lif,537,60000,0,1,7,0,700,150,40,17,20,15,35,24,12,60,100,4,9,5,19,5,19,5,19,4,20,6,20,6,20,800,2400,220,480,10,30,10,30,20,40,30,50,20,50,10,30
6006,6014,Amistr,912,60000,0,1,2,0,700,320,10,20,17,35,11,24,12,80,130,1,4,8,20,4,20,4,20,1,10,3,19,3,19,1600,3600,120,360,20,50,10,30,20,50,20,50,10,30,10,30
6007,6015,Filir,910,60000,0,1,2,0,700,90,25,29,35,9,8,30,9,45,75,3,6,4,20,8,20,1,10,3,19,4,20,3,19,1200,3200,200,400,20,50,10,30,20,50,20,50,10,30,10,30
6008,6016,Vanilmirth,911,60000,0,1,0,0,700,80,11,11,11,11,11,11,11,30,150,0,7,1,30,1,30,1,30,1,30,1,30,1,30,1200,4800,480,640,10,30,10,30,10,30,20,50,10,50,10,100
6048,6048,Eira,6098,60000,1,1,8,4,700,150,40,17,20,15,35,24,12,40,160,20,42,13,39,28,42,15,25,14,48,16,36,9,18,1000,2000,10,200,1,10,1,10,1,10,1,10,1,10,1,10
6049,6049,Bayeri,6112,60000,1,1,2,6,700,320,10,20,17,35,11,24,12,90,360,48,52,18,36,8,36,16,32,22,44,12,24,20,36,1000,2000,10,200,1,10,1,10,1,10,1,10,1,10,1,10
6050,6050,Sera,6108,60000,1,1,4,2,700,90,25,29,35,9,8,30,9,60,240,36,64,10,25,16,32,5,25,7,35,28,40,20,40,1000,2000,10,200,1,10,1,10,1,10,1,10,1,10,1,10
6051,6051,Dieter,6104,60000,1,1,0,3,700,80,11,11,11,11,11,11,11,240,480,40,120,20,40,13,26,18,36,15,40,16,32,4,16,1000,2000,10,200,1,10,1,10,1,10,1,10,1,10,1,10
6052,6052,Eleanor,6115,60000,1,1,7,5,700,320,10,20,17,35,11,24,12,60,300,10,20,20,40,10,50,24,48,5,15,12,36,2,10,1000,2000,10,200,1,10,1,10,1,10,1,10,1,10,1,10

948
db/re/homunculus_db.yml Normal file
View File

@@ -0,0 +1,948 @@
# This file is a part of rAthena.
# Copyright(C) 2023 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/>.
#
###########################################################################
# Homunculus Database
###########################################################################
#
# Homunculus Settings
#
###########################################################################
# - BaseClass Base class.
# Name Name of homunculus.
# EvolutionClass Evolution class.
# Food Homunculus food item. (Default: Pet_Food)
# HungryDelay Time interval in milliseconds after which the hunger value is altered. (Default: 60000)
# Race Race. (Default: Demihuman)
# Element Element. (Default: Neutral)
# Size Size. (Default: Small)
# EvolutionSize Evolution size. (Default: Medium)
# AttackDelay Base ASPD. (Default: 700)
# Status: Homunculus stats.
# - Type Type of status.
# Base Base value of this status. (Default: 1)
# GrowthMinimum Minimum growth of this status. (Default: 0)
# GrowthMaximum Maximum growth of this status. (Default: 0)
# EvolutionMinimum Minimum evolution growth of this status. Only applies for homunculus that can evolve. (Default: 0)
# EvolutionMaximum Maximum evolution growth of this status. Only applies for homunculus that can evolve. (Default: 0)
# SkillTree: Skill tree.
# - Skill Skill name.
# Clear True to remove the given skill name. (Optional)
# MaxLevel Maximum level of skill.
# RequiredLevel Required base level of homunculus to learn. (Default: 0)
# RequiredIntimacy Required intimacy of homunculus to learn. (Default: 0)
# RequireEvolution Require the homunculus to be evolved to be available. (Default: false)
# Required: Prerequisite skills. (Default: null)
# - Skill Prerequisite skill name.
# Level Level of prerequisite skill.
# Clear True to remove the given prerequisite skill name. (Optional)
###########################################################################
Header:
Type: HOMUNCULUS_DB
Version: 1
Body:
- Class: Lif
Name: Lif
EvolutionClass: Lif_H
Status:
- Type: Hp
Base: 150
GrowthMinimum: 60
GrowthMaximum: 100
EvolutionMinimum: 800
EvolutionMaximum: 2400
- Type: Sp
Base: 40
GrowthMinimum: 4
GrowthMaximum: 9
EvolutionMinimum: 220
EvolutionMaximum: 480
- Type: Str
Base: 17
GrowthMinimum: 5
GrowthMaximum: 19
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Agi
Base: 20
GrowthMinimum: 5
GrowthMaximum: 19
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Vit
Base: 15
GrowthMinimum: 5
GrowthMaximum: 19
EvolutionMinimum: 20
EvolutionMaximum: 40
- Type: Int
Base: 35
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 30
EvolutionMaximum: 50
- Type: Dex
Base: 24
GrowthMinimum: 6
GrowthMaximum: 20
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Luk
Base: 12
GrowthMinimum: 6
GrowthMaximum: 20
EvolutionMinimum: 10
EvolutionMaximum: 30
SkillTree:
- Skill: HLIF_HEAL
MaxLevel: 5
- Skill: HLIF_AVOID
MaxLevel: 5
Required:
- Skill: HLIF_HEAL
Level: 3
- Skill: HLIF_BRAIN
MaxLevel: 5
Required:
- Skill: HLIF_HEAL
Level: 5
- Skill: HLIF_CHANGE
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true
- Class: Amistr
Name: Amistr
EvolutionClass: Amistr_H
Food: Zargon
Race: Brute
Status:
- Type: Hp
Base: 320
GrowthMinimum: 80
GrowthMaximum: 130
EvolutionMinimum: 1600
EvolutionMaximum: 3600
- Type: Sp
Base: 10
GrowthMinimum: 1
GrowthMaximum: 4
EvolutionMinimum: 120
EvolutionMaximum: 360
- Type: Str
Base: 20
GrowthMinimum: 8
GrowthMaximum: 20
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Agi
Base: 17
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Vit
Base: 35
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Int
Base: 11
GrowthMinimum: 1
GrowthMaximum: 10
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Dex
Base: 24
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Luk
Base: 12
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 10
EvolutionMaximum: 30
SkillTree:
- Skill: HAMI_CASTLE
MaxLevel: 5
- Skill: HAMI_DEFENCE
MaxLevel: 5
Required:
- Skill: HAMI_CASTLE
Level: 5
- Skill: HAMI_SKIN
MaxLevel: 5
Required:
- Skill: HAMI_DEFENCE
Level: 3
- Skill: HAMI_BLOODLUST
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true
- Class: Filir
Name: Filir
EvolutionClass: Filir_H
Food: Garlet
Race: Brute
Status:
- Type: Hp
Base: 90
GrowthMinimum: 45
GrowthMaximum: 75
EvolutionMinimum: 1200
EvolutionMaximum: 3200
- Type: Sp
Base: 25
GrowthMinimum: 3
GrowthMaximum: 6
EvolutionMinimum: 200
EvolutionMaximum: 400
- Type: Str
Base: 29
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Agi
Base: 35
GrowthMinimum: 8
GrowthMaximum: 20
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Vit
Base: 9
GrowthMinimum: 1
GrowthMaximum: 10
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Int
Base: 8
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Dex
Base: 30
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Luk
Base: 9
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 10
EvolutionMaximum: 30
SkillTree:
- Skill: HFLI_MOON
MaxLevel: 5
- Skill: HFLI_FLEET
MaxLevel: 5
Required:
- Skill: HFLI_MOON
Level: 3
- Skill: HFLI_SPEED
MaxLevel: 5
Required:
- Skill: HFLI_FLEET
Level: 3
- Skill: HFLI_SBR44
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true
- Class: Vanilmirth
Name: Vanilmirth
EvolutionClass: Vanilmirth_H
Food: Scell
Race: Formless
Status:
- Type: Hp
Base: 80
GrowthMinimum: 30
GrowthMaximum: 150
EvolutionMinimum: 1200
EvolutionMaximum: 4800
- Type: Sp
Base: 11
GrowthMinimum: 0
GrowthMaximum: 7
EvolutionMinimum: 480
EvolutionMaximum: 640
- Type: Str
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Agi
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Vit
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Int
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Dex
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 10
EvolutionMaximum: 50
- Type: Luk
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 10
EvolutionMaximum: 100
SkillTree:
- Skill: HVAN_CAPRICE
MaxLevel: 5
- Skill: HVAN_CHAOTIC
MaxLevel: 5
Required:
- Skill: HVAN_CAPRICE
Level: 3
- Skill: HVAN_INSTRUCT
MaxLevel: 5
Required:
- Skill: HVAN_CAPRICE
Level: 5
- Skill: HVAN_EXPLOSION
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true
- Class: Lif2
Name: Lif
EvolutionClass: Lif_H2
Status:
- Type: Hp
Base: 150
GrowthMinimum: 60
GrowthMaximum: 100
EvolutionMinimum: 800
EvolutionMaximum: 2400
- Type: Sp
Base: 40
GrowthMinimum: 4
GrowthMaximum: 9
EvolutionMinimum: 220
EvolutionMaximum: 480
- Type: Str
Base: 17
GrowthMinimum: 5
GrowthMaximum: 19
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Agi
Base: 20
GrowthMinimum: 5
GrowthMaximum: 19
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Vit
Base: 15
GrowthMinimum: 5
GrowthMaximum: 19
EvolutionMinimum: 20
EvolutionMaximum: 40
- Type: Int
Base: 35
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 30
EvolutionMaximum: 50
- Type: Dex
Base: 24
GrowthMinimum: 6
GrowthMaximum: 20
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Luk
Base: 12
GrowthMinimum: 6
GrowthMaximum: 20
EvolutionMinimum: 10
EvolutionMaximum: 30
SkillTree:
- Skill: HLIF_HEAL
MaxLevel: 5
- Skill: HLIF_AVOID
MaxLevel: 5
Required:
- Skill: HLIF_HEAL
Level: 3
- Skill: HLIF_BRAIN
MaxLevel: 5
Required:
- Skill: HLIF_HEAL
Level: 5
- Skill: HLIF_CHANGE
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true
- Class: Amistr2
Name: Amistr
EvolutionClass: Amistr_H2
Food: Zargon
Race: Brute
Status:
- Type: Hp
Base: 320
GrowthMinimum: 80
GrowthMaximum: 130
EvolutionMinimum: 1600
EvolutionMaximum: 3600
- Type: Sp
Base: 10
GrowthMinimum: 1
GrowthMaximum: 4
EvolutionMinimum: 120
EvolutionMaximum: 360
- Type: Str
Base: 20
GrowthMinimum: 8
GrowthMaximum: 20
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Agi
Base: 17
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Vit
Base: 35
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Int
Base: 11
GrowthMinimum: 1
GrowthMaximum: 10
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Dex
Base: 24
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Luk
Base: 12
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 10
EvolutionMaximum: 30
SkillTree:
- Skill: HAMI_CASTLE
MaxLevel: 5
- Skill: HAMI_DEFENCE
MaxLevel: 5
Required:
- Skill: HAMI_CASTLE
Level: 5
- Skill: HAMI_SKIN
MaxLevel: 5
Required:
- Skill: HAMI_DEFENCE
Level: 3
- Skill: HAMI_BLOODLUST
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true
- Class: Filir2
Name: Filir
EvolutionClass: Filir_H2
Food: Garlet
Race: Brute
Status:
- Type: Hp
Base: 90
GrowthMinimum: 45
GrowthMaximum: 75
EvolutionMinimum: 1200
EvolutionMaximum: 3200
- Type: Sp
Base: 25
GrowthMinimum: 3
GrowthMaximum: 6
EvolutionMinimum: 200
EvolutionMaximum: 400
- Type: Str
Base: 29
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Agi
Base: 35
GrowthMinimum: 8
GrowthMaximum: 20
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Vit
Base: 9
GrowthMinimum: 1
GrowthMaximum: 10
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Int
Base: 8
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Dex
Base: 30
GrowthMinimum: 4
GrowthMaximum: 20
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Luk
Base: 9
GrowthMinimum: 3
GrowthMaximum: 19
EvolutionMinimum: 10
EvolutionMaximum: 30
SkillTree:
- Skill: HFLI_MOON
MaxLevel: 5
- Skill: HFLI_FLEET
MaxLevel: 5
Required:
- Skill: HFLI_MOON
Level: 3
- Skill: HFLI_SPEED
MaxLevel: 5
Required:
- Skill: HFLI_FLEET
Level: 3
- Skill: HFLI_SBR44
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true
- Class: Vanilmirth2
Name: Vanilmirth
EvolutionClass: Vanilmirth_H2
Food: Scell
Race: Formless
Status:
- Type: Hp
Base: 80
GrowthMinimum: 30
GrowthMaximum: 150
EvolutionMinimum: 1200
EvolutionMaximum: 4800
- Type: Sp
Base: 11
GrowthMinimum: 0
GrowthMaximum: 7
EvolutionMinimum: 480
EvolutionMaximum: 640
- Type: Str
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Agi
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Vit
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 10
EvolutionMaximum: 30
- Type: Int
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 20
EvolutionMaximum: 50
- Type: Dex
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 10
EvolutionMaximum: 50
- Type: Luk
Base: 11
GrowthMinimum: 1
GrowthMaximum: 30
EvolutionMinimum: 10
EvolutionMaximum: 100
SkillTree:
- Skill: HVAN_CAPRICE
MaxLevel: 5
- Skill: HVAN_CHAOTIC
MaxLevel: 5
Required:
- Skill: HVAN_CAPRICE
Level: 3
- Skill: HVAN_INSTRUCT
MaxLevel: 5
Required:
- Skill: HVAN_CAPRICE
Level: 5
- Skill: HVAN_EXPLOSION
MaxLevel: 3
RequiredIntimacy: 910
RequireEvolution: true
- Class: Eira
Name: Eira
Food: Small_Snow_Flower
Race: Angel
Element: Wind
Size: Medium
Status:
- Type: Hp
Base: 150
GrowthMinimum: 40
GrowthMaximum: 160
- Type: Sp
Base: 40
GrowthMinimum: 20
GrowthMaximum: 42
- Type: Str
Base: 17
GrowthMinimum: 13
GrowthMaximum: 39
- Type: Agi
Base: 20
GrowthMinimum: 28
GrowthMaximum: 42
- Type: Vit
Base: 15
GrowthMinimum: 15
GrowthMaximum: 25
- Type: Int
Base: 35
GrowthMinimum: 14
GrowthMaximum: 48
- Type: Dex
Base: 24
GrowthMinimum: 16
GrowthMaximum: 36
- Type: Luk
Base: 12
GrowthMinimum: 9
GrowthMaximum: 18
SkillTree:
- Skill: MH_LIGHT_OF_REGENE
MaxLevel: 5
RequiredLevel: 128
- Skill: MH_OVERED_BOOST
MaxLevel: 5
RequiredLevel: 114
- Skill: MH_ERASER_CUTTER
MaxLevel: 10
RequiredLevel: 106
- Skill: MH_XENO_SLASHER
MaxLevel: 10
RequiredLevel: 121
- Skill: MH_SILENT_BREEZE
MaxLevel: 5
RequiredLevel: 137
- Skill: MH_CLASSY_FLUTTER
MaxLevel: 10
RequiredLevel: 210
- Skill: MH_TWISTER_CUTTER
MaxLevel: 10
RequiredLevel: 215
- Skill: MH_ABSOLUTE_ZEPHYR
MaxLevel: 10
RequiredLevel: 230
- Class: Bayeri
Name: Bayeri
Food: Fresh_Plant
Race: Brute
Element: Holy
Size: Medium
Status:
- Type: Hp
Base: 320
GrowthMinimum: 90
GrowthMaximum: 360
- Type: Sp
Base: 10
GrowthMinimum: 48
GrowthMaximum: 52
- Type: Str
Base: 20
GrowthMinimum: 18
GrowthMaximum: 36
- Type: Agi
Base: 17
GrowthMinimum: 8
GrowthMaximum: 36
- Type: Vit
Base: 35
GrowthMinimum: 16
GrowthMaximum: 32
- Type: Int
Base: 11
GrowthMinimum: 22
GrowthMaximum: 44
- Type: Dex
Base: 24
GrowthMinimum: 12
GrowthMaximum: 24
- Type: Luk
Base: 12
GrowthMinimum: 20
GrowthMaximum: 36
SkillTree:
- Skill: MH_STAHL_HORN
MaxLevel: 10
RequiredLevel: 105
- Skill: MH_GOLDENE_FERSE
MaxLevel: 5
RequiredLevel: 112
- Skill: MH_STEINWAND
MaxLevel: 5
RequiredLevel: 121
- Skill: MH_HEILIGE_STANGE
MaxLevel: 10
RequiredLevel: 138
- Skill: MH_ANGRIFFS_MODUS
MaxLevel: 5
RequiredLevel: 130
- Skill: MH_LICHT_GEHORN
MaxLevel: 10
RequiredLevel: 210
- Skill: MH_GLANZEN_SPIES
MaxLevel: 10
RequiredLevel: 215
- Skill: MH_HEILIGE_PFERD
MaxLevel: 10
RequiredLevel: 230
- Skill: MH_GOLDENE_TONE
MaxLevel: 10
RequiredLevel: 230
- Class: Sera
Name: Sera
Food: Apple_Pudding
Race: Insect
Element: Earth
Size: Medium
Status:
- Type: Hp
Base: 90
GrowthMinimum: 60
GrowthMaximum: 240
- Type: Sp
Base: 25
GrowthMinimum: 36
GrowthMaximum: 64
- Type: Str
Base: 29
GrowthMinimum: 10
GrowthMaximum: 25
- Type: Agi
Base: 35
GrowthMinimum: 16
GrowthMaximum: 32
- Type: Vit
Base: 9
GrowthMinimum: 5
GrowthMaximum: 25
- Type: Int
Base: 8
GrowthMinimum: 7
GrowthMaximum: 35
- Type: Dex
Base: 30
GrowthMinimum: 28
GrowthMaximum: 40
- Type: Luk
Base: 9
GrowthMinimum: 20
GrowthMaximum: 40
SkillTree:
- Skill: MH_SUMMON_LEGION
MaxLevel: 5
RequiredLevel: 132
- Skill: MH_NEEDLE_OF_PARALYZE
MaxLevel: 10
RequiredLevel: 105
- Skill: MH_POISON_MIST
MaxLevel: 5
RequiredLevel: 116
- Skill: MH_PAIN_KILLER
MaxLevel: 10
RequiredLevel: 123
- Skill: MH_POLISHING_NEEDLE
MaxLevel: 10
RequiredLevel: 210
- Skill: MH_TOXIN_OF_MANDARA
MaxLevel: 10
RequiredLevel: 215
- Skill: MH_NEEDLE_STINGER
MaxLevel: 10
RequiredLevel: 230
- Class: Dieter
Name: Dieter
Food: Big_Cell
Race: Formless
Element: Fire
Size: Medium
Status:
- Type: Hp
Base: 80
GrowthMinimum: 240
GrowthMaximum: 480
- Type: Sp
Base: 11
GrowthMinimum: 40
GrowthMaximum: 120
- Type: Str
Base: 11
GrowthMinimum: 20
GrowthMaximum: 40
- Type: Agi
Base: 11
GrowthMinimum: 13
GrowthMaximum: 26
- Type: Vit
Base: 11
GrowthMinimum: 18
GrowthMaximum: 36
- Type: Int
Base: 11
GrowthMinimum: 15
GrowthMaximum: 40
- Type: Dex
Base: 11
GrowthMinimum: 16
GrowthMaximum: 32
- Type: Luk
Base: 11
GrowthMinimum: 4
GrowthMaximum: 16
SkillTree:
- Skill: MH_MAGMA_FLOW
MaxLevel: 5
RequiredLevel: 122
- Skill: MH_GRANITIC_ARMOR
MaxLevel: 5
RequiredLevel: 116
- Skill: MH_LAVA_SLIDE
MaxLevel: 10
RequiredLevel: 109
- Skill: MH_PYROCLASTIC
MaxLevel: 10
RequiredLevel: 131
- Skill: MH_VOLCANIC_ASH
MaxLevel: 5
RequiredLevel: 102
- Skill: MH_BLAST_FORGE
MaxLevel: 10
RequiredLevel: 215
- Skill: MH_TEMPERING
MaxLevel: 10
RequiredLevel: 230
- Skill: MH_BLAZING_LAVA
MaxLevel: 10
RequiredLevel: 210
- Class: Eleanor
Name: Eleanor
Food: Bun_
Element: Poison
Size: Medium
Status:
- Type: Hp
Base: 320
GrowthMinimum: 60
GrowthMaximum: 300
- Type: Sp
Base: 10
GrowthMinimum: 10
GrowthMaximum: 20
- Type: Str
Base: 20
GrowthMinimum: 20
GrowthMaximum: 40
- Type: Agi
Base: 17
GrowthMinimum: 10
GrowthMaximum: 50
- Type: Vit
Base: 35
GrowthMinimum: 24
GrowthMaximum: 48
- Type: Int
Base: 11
GrowthMinimum: 5
GrowthMaximum: 15
- Type: Dex
Base: 24
GrowthMinimum: 12
GrowthMaximum: 36
- Type: Luk
Base: 12
GrowthMinimum: 2
GrowthMaximum: 10
SkillTree:
- Skill: MH_STYLE_CHANGE
MaxLevel: 1
RequiredLevel: 100
- Skill: MH_SONIC_CRAW
MaxLevel: 5
RequiredLevel: 100
- Skill: MH_SILVERVEIN_RUSH
MaxLevel: 10
RequiredLevel: 114
- Skill: MH_MIDNIGHT_FRENZY
MaxLevel: 10
RequiredLevel: 128
- Skill: MH_TINDER_BREAKER
MaxLevel: 5
RequiredLevel: 100
- Skill: MH_CBC
MaxLevel: 5
RequiredLevel: 112
- Skill: MH_EQC
MaxLevel: 5
RequiredLevel: 133
- Skill: MH_BRUSHUP_CLAW
MaxLevel: 10
RequiredLevel: 210
- Skill: MH_BLAZING_AND_FURIOUS
MaxLevel: 10
RequiredLevel: 215
- Skill: MH_THE_ONE_FIGHTER_RISES
MaxLevel: 10
RequiredLevel: 230

View File

@@ -375,3 +375,204 @@ Body:
Map: 1@begi
X: 100
Y: 22
- Id: 49
Name: Old Glast Heim (Challenge Mode)
Enter:
Map: 1@gl_he
X: 150
Y: 28
- Id: 50
Name: Old Glast Heim (Beginner)
Enter:
Map: 1@gl_k2
X: 150
Y: 20
- Id: 51
Name: Fall of Glast Heim (Normal)
Enter:
Map: 1@gl_prq
X: 299
Y: 19
- Id: 52
Name: Fall of Glast Heim (Advanced)
Enter:
Map: 1@gl_prq
X: 79
Y: 22
- Id: 53
Name: Twilight Garden
Enter:
Map: 1@bamn
X: 100
Y: 320
AdditionalMaps:
1@bamq: true
- Id: 54
Name: Hey! Sweety
Enter:
Map: 1@bamq
X: 16
Y: 39
AdditionalMaps:
1@bamn: true
- Id: 55
Name: Farm Lost in Time
Enter:
Map: 1@lost
X: 161
Y: 42
- Id: 56
Name: Water Garden
Enter:
Map: 1@ghg
X: 64
Y: 69
- Id: 57
Name: Water Garden Hard
Enter:
Map: 1@ghg
X: 64
Y: 69
- Id: 58
Name: Hidden Flower Garden
Enter:
Map: 1@herbs
X: 51
Y: 273
- Id: 59
Name: Security Area 1
Enter:
Map: 1@herbs
X: 45
Y: 208
- Id: 60
Name: Security Area 2
Enter:
Map: 1@herbs
X: 59
Y: 214
- Id: 61
Name: Sunken Tower
Enter:
Map: 1@ch_u
X: 13
Y: 59
- Id: 62
Name: Constellation Tower
Enter:
Map: 1@ch_t
X: 48
Y: 183
AdditionalMaps:
2@ch_t: true
3@ch_t: true
- Id: 63
Name: Tomb of Remorse
Enter:
Map: 1@spa2
X: 51
Y: 197
- Id: 64
Name: Geffen Night Arena
Enter:
Map: 1@ge_sn
X: 89
Y: 48
- Id: 65
Name: Airship Crash
Enter:
Map: 1@mjo1
X: 219
Y: 379
AdditionalMaps:
1@mjo2: true
- Id: 66
Name: Thanatos Tower
Enter:
Map: 1@thts
X: 74
Y: 371
AdditionalMaps:
2@thts: true
3@thts: true
4@thts: true
5@thts: true
6@thts: true
7@thts: true
8@thts: true
- Id: 67
Name: The Maze of Oz
Enter:
Map: 1@oz
X: 284
Y: 167
- Id: 68
Name: Thor Gunsu Base
Enter:
Map: 1@tcamp
X: 103
Y: 237
- Id: 69
Name: A Gathering Place of Wolves
Enter:
Map: 1@nyr
X: 194
Y: 30
AdditionalMaps:
2@nyr: true
- Id: 70
Name: Sanctuary Purification
Enter:
Map: 1@nyr
X: 194
Y: 30
AdditionalMaps:
2@nyr: true
- Id: 71
Name: Villa of High Priest
Enter:
Map: 1@adv
X: 123
Y: 17
- Id: 72
Name: Villa of Deception
Enter:
Map: 1@advs
X: 111
Y: 19
- Id: 73
Name: Villa of Deception Advanced
Enter:
Map: 1@advs
X: 111
Y: 19
- Id: 74
Name: Bagot Laboratory
Enter:
Map: 1@jorlab
X: 57
Y: 45
- Id: 75
Name: Confused Snake's Nest
Enter:
Map: 1@jorchs
X: 272
Y: 20
- Id: 76
Name: Iwin Patrol
Enter:
Map: 1@iwp
X: 380
Y: 229
- Id: 77
Name: Airship Destruction
Enter:
Map: 1@whl
X: 32
Y: 53
- Id: 78
Name: Simulation Battle
Enter:
Map: 1@jorlab
X: 57
Y: 45

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

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

View File

@@ -66,6 +66,60 @@
11547,1 // Woe_Violet_Potion
12600,1 // Treasure_Box_Scroll
// Lesser Guild Member's Gear
2052,1 // Woe_T_Staff1_Z
1329,1 // Woe_One_Hand_Axe1_Z
28751,1 // Woe_Knife1_Z
32103,1 // Woe_Instrument1_Z
26210,1 // Woe_Whip1_Z
26019,1 // Woe_T_Lance1_Z
16085,1 // Woe_Club_1_Z
26147,1 // Woe_Wand1_Z
28036,1 // Woe_Katar1_Z
26146,1 // Woe_Healstaff1_Z
21044,1 // Woe_Twohand_Sword1_Z
28133,1 // Woe_Twohand_Axe1_Z
32015,1 // Woe_Onehand_Spear1_Z
18175,1 // Woe_Bow1_Z
13490,1 // Woe_Onehand_Sword1_Z
650000,1 // Woe_Huuma1_Z
1859,1 // Woe_Pist1_Z
22148,1 // Siege_Greave_1Tier
15216,1 // Siege_Robe_1Tier
20865,1 // Siege_Muffler_1Tier
20864,1 // Siege_Manteau_1Tier
22147,1 // Siege_Boots_1Tier
22146,1 // Siege_Shoes_1Tier
15217,1 // Siege_Suits_1Tier
15218,1 // Siege_Plate_1Tier
// Intermediate Guild Member's Gear
520001,1 // Woe_One_Hand_Axe2_Z
570003,1 // Woe_Instrument2_Z
580003,1 // Woe_Whip2_Z
510005,1 // Woe_Knife2_Z
630001,1 // Woe_T_Lance2_Z
590004,1 // Woe_Club_2_Z
550005,1 // Woe_Wand2_Z
610004,1 // Woe_Katar2_Z
550004,1 // Woe_Healstaff2_Z
600005,1 // Woe_Twohand_Sword2_Z
620001,1 // Woe_Twohand_Axe2_Z
640001,1 // Woe_T_Staff2_Z
530001,1 // Woe_Onehand_Spear2_Z
650001,1 // Woe_Huuma2_Z
500006,1 // Woe_Onehand_Sword2_Z
560003,1 // Woe_Pist2_Z
700005,1 // Woe_Bow2_Z
450012,1 // Siege_Robe_2Tier
470011,1 // Siege_Shoes_2Tier
450014,1 // Siege_Plate_2Tier
450013,1 // Siege_Suits_2Tier
470012,1 // Siege_Boots_2Tier
480007,1 // Siege_Muffler_2Tier
480008,1 // Siege_Manteau_2Tier
470013,1 // Siege_Greave_2Tier
//----------------------------------------------------------------------------
// PVP
//----------------------------------------------------------------------------
@@ -209,6 +263,60 @@
12600,16 // Treasure_Box_Scroll
14590,16 // Pty_Assumptio_Scroll
// Lesser Guild Member's Gear
2052,16 // Woe_T_Staff1_Z
1329,16 // Woe_One_Hand_Axe1_Z
28751,16 // Woe_Knife1_Z
32103,16 // Woe_Instrument1_Z
26210,16 // Woe_Whip1_Z
26019,16 // Woe_T_Lance1_Z
16085,16 // Woe_Club_1_Z
26147,16 // Woe_Wand1_Z
28036,16 // Woe_Katar1_Z
26146,16 // Woe_Healstaff1_Z
21044,16 // Woe_Twohand_Sword1_Z
28133,16 // Woe_Twohand_Axe1_Z
32015,16 // Woe_Onehand_Spear1_Z
18175,16 // Woe_Bow1_Z
13490,16 // Woe_Onehand_Sword1_Z
650000,16 // Woe_Huuma1_Z
1859,16 // Woe_Pist1_Z
22148,16 // Siege_Greave_1Tier
15216,16 // Siege_Robe_1Tier
20865,16 // Siege_Muffler_1Tier
20864,16 // Siege_Manteau_1Tier
22147,16 // Siege_Boots_1Tier
22146,16 // Siege_Shoes_1Tier
15217,16 // Siege_Suits_1Tier
15218,16 // Siege_Plate_1Tier
// Intermediate Guild Member's Gear
520001,16 // Woe_One_Hand_Axe2_Z
570003,16 // Woe_Instrument2_Z
580003,16 // Woe_Whip2_Z
510005,16 // Woe_Knife2_Z
630001,16 // Woe_T_Lance2_Z
590004,16 // Woe_Club_2_Z
550005,16 // Woe_Wand2_Z
610004,16 // Woe_Katar2_Z
550004,16 // Woe_Healstaff2_Z
600005,16 // Woe_Twohand_Sword2_Z
620001,16 // Woe_Twohand_Axe2_Z
640001,16 // Woe_T_Staff2_Z
530001,16 // Woe_Onehand_Spear2_Z
650001,16 // Woe_Huuma2_Z
500006,16 // Woe_Onehand_Sword2_Z
560003,16 // Woe_Pist2_Z
700005,16 // Woe_Bow2_Z
450012,16 // Siege_Robe_2Tier
470011,16 // Siege_Shoes_2Tier
450014,16 // Siege_Plate_2Tier
450013,16 // Siege_Suits_2Tier
470012,16 // Siege_Boots_2Tier
480007,16 // Siege_Muffler_2Tier
480008,16 // Siege_Manteau_2Tier
470013,16 // Siege_Greave_2Tier
//----------------------------------------------------------------------------
// Zone 1 - Aldebaran Turbo Track
//----------------------------------------------------------------------------

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -726,7 +726,7 @@ Body:
- Item: Gunslinger_Enchant
RewardGroup: GUNSLINGER_ENCHANT
Requirements:
- Item: Drooping_Rebellion_
- Item: Droop_Gunslinger
- Item: EnchantStone_Recipe
RewardGroup: ENCHANTSTONE_RECIPE
RequiredRequirementsCount: 3
@@ -814,10 +814,10 @@ Body:
- Item: MaxHP_Stone
- Item: ShrinkEffect_Bottom
- Item: ElectricEffect_Top
- Item: SPAbsorb_Stone_Top
- Item: HPAbsorb_Stone_Top
- Item: SPAbsorb_Stone_Robe
- Item: HPAbsorb_Stone_Robe
- Item: Upg_SPdrainStone_Top
- Item: Upg_HPdrainStone_Top
- Item: Upg_SPdrainStone_Robe
- Item: Upg_HPdrainStone_Robe
- Item: WaterFieldEffect_Bottom
- Item: ExplodingEffect_Middle
- Item: WhiteBodyEffect_Middle
@@ -1345,19 +1345,19 @@ Body:
Amount: 10
- Item: Shabby_Crown
Amount: 10
- Item: Cold_Core
- Item: Stone_Of_Chill
Amount: 10
- Item: Silicone_Shell
- Item: Soften_Skin
Amount: 10
- Item: Hedgehog_Picks
- Item: Porcupine_Big_Spike
Amount: 10
- Item: Old_Belt
- Item: Shabby_Old_Belt
Amount: 10
- Item: Moving_Dark_Matter
- Item: Moving_Black_Things
Amount: 10
- Item: Fragments_Valkyrie_Power
- Item: Valkyrie_Fragment
Amount: 10
- Item: Will_Master
- Item: Will_Of_Owner
Amount: 10
- Item: Piece_Of_Chimera
Amount: 10
@@ -1385,19 +1385,19 @@ Body:
Amount: 10
- Item: BrownRatTail
Amount: 10
- Item: Frozen_Stone_Fragment
- Item: Frozen_PieceOfRock
Amount: 10
- Item: SpritJewel
Amount: 10
- Item: Snowball
Amount: 10
- Item: Ktullanux_Eye
- Item: KTULLANUXsEye
Amount: 10
- Item: Hazy_Dream_Fragment
- Item: HazyDream
Amount: 10
- Item: Broken_Arrow
- Item: BrokenArrow
Amount: 10
- Item: Recruitment_Leaflet
- Item: SubjugationFlyer
Amount: 10
- Item: IllusoryStone
Amount: 10
@@ -1415,9 +1415,9 @@ Body:
Amount: 10
- Item: SuspiciousMagicCircle
Amount: 10
- Item: Piece_of_Black_Horn
- Item: PieceOfBlackSpirit
Amount: 10
- Item: Fine_Old_Doll
- Item: OldDoll
Amount: 10
- Item: OldShell
Amount: 10
@@ -1573,7 +1573,7 @@ Body:
- Item: C_Loose_Wave_Twin_BL
- Item: C_Cupid_Wing_Pink
- Item: C_Pecopeco_Cap
- Item: C_Green_Hat
- Item: C_Woodie_Hat
- Item: C_Little_Aquarium
- Item: C_Angel_Fluttering
- Item: C_Niflheim_Bunny_Hat
@@ -1590,9 +1590,9 @@ Body:
- Item: C_Morocc_Kid_Servant
- Item: C_Monochrome_RibbonHat
- Item: C_Khalitzburg_KN_Helm
- Item: C_Laser_of_Eagle
- Item: C_Laser_Of_Eagle
- Item: C_Devil_Wing
- Item: C_Tone_of_Gold
- Item: C_Tone_Of_Gold
- Item: C_Dwarf_Beard
- Item: C_Mad_Hatter
- Item: C_Cons_Of_Water
@@ -1753,14 +1753,14 @@ Body:
- Item: C_Royalguard_Necklace
- Item: C_Happy_Cat_TW
- Item: C_Monochrome_Cap
- Item: C_Sky_of_Memory
- Item: C_Sky_Of_Memory
- Item: C_Ice_Wing
- Item: C_Under_Rim_Glasses_Blue
- Item: C_Under_Rim_Glasses_Bu
- Item: C_Gimmick_One_Feather
- Item: C_Pocketwatch_Hair_Ornament
- Item: C_PocketWatch_Hair_Orna
- Item: C_Poring_Traffic_Light
- Item: C_PGstone_Knit_Hat_PK
- Item: C_Lazy_Ninetail
- Item: C_Drooping_Nine_Tail
- Item: C_Sakura_Wing
- Item: C_Looking
- Item: C_Wolf_Masquerade
@@ -1832,7 +1832,7 @@ Body:
- Item: C_Triple_Ice_Cream
- Item: C_Wrapping_Ribbon
- Item: C_Bear_Head
- Item: C_Kindergarten_Hat
- Item: C_Preschool_Hat
- Item: C_Poulet_TW
- Item: C_Avenger
- Item: C_WitchManteau
@@ -1840,16 +1840,16 @@ Body:
- Item: C_Gothic_Pumpkin_Head
- Item: C_Barrel_Helm
- Item: C_White_Cat_On_Shoulder
- Item: C_Black_Rabbit_Ears
- Item: C_Rabbit_Hopping_BL
- Item: C_G_DaeHyon_Sword_TW
- Item: C_Cat_Ears_Cape_Red
- Item: C_Tare_W_Doll
- Item: C_Goat_Hat
- Item: C_Debril_Doll_Hat
- Item: C_Sheep_Hat
- Item: C_Put_On_Coat
- Item: C_Pink_Pajamas_Hat
- Item: C_L_RibbonMuff_Black
- Item: C_Black_Cat_Ears_Beret
- Item: C_Watery_Eyes
- Item: C_Teardrop
- Item: Fan_Upgrade_Kit
RewardGroup: FAN_UPGRADE_KIT
Requirements:
@@ -1857,11 +1857,11 @@ Body:
- Item: Suit_Upgrade_Kit
RewardGroup: SUIT_UPGRADE_KIT
Requirements:
- Item: Kafra_Uniform
- Item: Kafra_Suit
- Item: FallenAngelWing_Reset
RewardGroup: SCROLL_OF_FALLEN_ANGEL_WINGS
Requirements:
- Item: Fallen_Angel_Wings_
- Item: K_Fallen_Angel_Wing
- Item: Fallen_Angel_Wing
- Item: JobShadow_Mix_Weapon
RewardGroup: CLASS_SHADOW_BOX_WEAPON
@@ -2051,15 +2051,15 @@ Body:
- Item: Candy_Bag_Scroll_Melee
RewardGroup: CANDY_BAG_SCROLL_MELEE
Requirements:
- Item: Bag_Of_Antonio_P
- Item: Bag_Of_Antonio_Melee
- Item: Candy_Bag_Scroll_Range
RewardGroup: CANDY_BAG_SCROLL_RANGE
Requirements:
- Item: Bag_Of_Antonio_S
- Item: Bag_Of_Antonio_Range
- Item: Candy_Bag_Scroll_Magic
RewardGroup: CANDY_BAG_SCROLL_MAGIC
Requirements:
- Item: Bag_Of_Antonio_
- Item: Bag_Of_Antonio_Magic
- Item: Booster_Amplifier
RewardGroup: BOOSTER_AMPLIFIER
Requirements:
@@ -4550,3 +4550,265 @@ Body:
# Amount: 30
# - Item: Zelunium
# Amount: 250
# - Item: Bs_Item_M_S_60
# RewardGroup: BS_ITEM_M_S_60
# RequiredRequirementsCount: 2
# Requirements:
# - Item: EP20_D_Scale
# Amount: 30
# - Item: Zelunium
# Amount: 250
# - Item: Bs_Item_M_S_61
# RewardGroup: BS_ITEM_M_S_61
# RequiredRequirementsCount: 2
# Requirements:
# - Item: Will_Of_Darkness_
# Amount: 30
# - Item: Zelunium
# Amount: 250
# - Item: Bs_Item_M_S_62
# RewardGroup: BS_ITEM_M_S_62
# RequiredRequirementsCount: 2
# Requirements:
# - Item: EP19_Luminant
# Amount: 30
# - Item: Zelunium
# Amount: 250
# - Item: Bs_Item_M_S_63
# RewardGroup: BS_ITEM_M_S_63
# RequiredRequirementsCount: 2
# Requirements:
# - Item: EP19_D_P_Stone
# Amount: 30
# - Item: Zelunium
# Amount: 250
# - Item: Mocadas_Slabs1
# RewardGroup: MOCADAS_SLABS1
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs2
# RewardGroup: MOCADAS_SLABS2
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs3
# RewardGroup: MOCADAS_SLABS3
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs4
# RewardGroup: MOCADAS_SLABS4
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs5
# RewardGroup: MOCADAS_SLABS5
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs6
# RewardGroup: MOCADAS_SLABS6
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs7
# RewardGroup: MOCADAS_SLABS7
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs8
# RewardGroup: MOCADAS_SLABS8
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs9
# RewardGroup: MOCADAS_SLABS9
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs10
# RewardGroup: MOCADAS_SLABS10
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs11
# RewardGroup: MOCADAS_SLABS11
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs12
# RewardGroup: MOCADAS_SLABS12
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs13
# RewardGroup: MOCADAS_SLABS13
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs14
# RewardGroup: MOCADAS_SLABS14
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs15
# RewardGroup: MOCADAS_SLABS15
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs16
# RewardGroup: MOCADAS_SLABS16
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs17
# RewardGroup: MOCADAS_SLABS17
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 50
# - Item: Mocadas_Water
# Amount: 50
# - Item: Crystal_Of_Pollution
# Amount: 50
# - Item: Mocadas_Slabs18
# RewardGroup: MOCADAS_SLABS18
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 50
# - Item: Mocadas_Water
# Amount: 50
# - Item: Crystal_Of_Pollution
# Amount: 50
# - Item: Mocadas_Slabs19
# RewardGroup: MOCADAS_SLABS19
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs20
# RewardGroup: MOCADAS_SLABS20
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs21
# RewardGroup: MOCADAS_SLABS21
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs22
# RewardGroup: MOCADAS_SLABS22
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100
# - Item: Mocadas_Slabs23
# RewardGroup: MOCADAS_SLABS23
# RequiredRequirementsCount: 3
# Requirements:
# - Item: Mocadas_Gold
# Amount: 100
# - Item: Mocadas_Water
# Amount: 100
# - Item: Crystal_Of_Pollution
# Amount: 100

File diff suppressed because it is too large Load Diff

View File

@@ -27,7 +27,7 @@
# 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.
# Rate Drop rate of item, n/100000.
# RandomOptionGroup Random Option Group applied to item on drop. (Default: None)
# SpecificDrops Drops for specific monsters on this map. (Default: empty)
# - Monster Monster name.
@@ -35,10 +35,173 @@
# 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.
# Rate Drop rate of item, n/100000.
# RandomOptionGroup Random Option Group applied to item on drop. (Default: None)
###########################################################################
Header:
Type: MAP_DROP_DB
Version: 1
Version: 2
Body:
- Map: tur_d03_i
SpecificDrops:
- Monster: ILL_ASSULTER
Drops:
- Index: 0
Item: IllusionStone
Rate: 10
- Index: 1
Item: Huuma_Bird_Wing_IL
Rate: 25
RandomOptionGroup: ILL_PHYSIC_NORMAL
- Index: 2
Item: Turtle_Is_Box_IL
Rate: 5
- Monster: ILL_PERMETER
Drops:
- Index: 0
Item: Fancy_Flower_IL
Rate: 25
- Index: 1
Item: IllusionStone
Rate: 10
- Index: 2
Item: Turtle_Is_Box_IL
Rate: 5
- Monster: ILL_FREEZER
Drops:
- Index: 0
Item: Immaterial_Sword_IL
Rate: 25
RandomOptionGroup: ILL_PHYSIC_NORMAL
- Index: 1
Item: IllusionStone
Rate: 10
- Index: 2
Item: Turtle_Is_Box_IL
Rate: 5
- Monster: ILL_SOLIDER
Drops:
- Index: 0
Item: Iron_Driver_IL
Rate: 25
RandomOptionGroup: ILL_PHYSIC_NORMAL
- Index: 1
Item: IllusionStone
Rate: 10
- Index: 2
Item: War_Axe_IL
Rate: 25
RandomOptionGroup: ILL_PHYSIC_NORMAL
- Index: 3
Item: Turtle_Is_Box_IL
Rate: 5
- Monster: ILL_HEATER
Drops:
- Index: 0
Item: Pole_Axe_IL
Rate: 25
RandomOptionGroup: ILL_PHYSIC_NORMAL
- Index: 1
Item: IllusionStone
Rate: 10
- Index: 2
Item: Turtle_Is_Box_IL
Rate: 5
- Map: tur_d04_i
SpecificDrops:
- Monster: ILL_ASSULTER
Drops:
- Index: 0
Item: IllusionStone
Rate: 10
- Index: 1
Item: Huuma_Bird_Wing_IL
Rate: 25
RandomOptionGroup: ILL_PHYSIC_NORMAL
- Index: 2
Item: Turtle_Is_Box_IL
Rate: 5
- Monster: ILL_PERMETER
Drops:
- Index: 0
Item: Fancy_Flower_IL
Rate: 25
- Index: 1
Item: IllusionStone
Rate: 10
- Index: 2
Item: Turtle_Is_Box_IL
Rate: 5
- Monster: ILL_FREEZER
Drops:
- Index: 0
Item: Immaterial_Sword_IL
Rate: 25
RandomOptionGroup: ILL_PHYSIC_NORMAL
- Index: 1
Item: IllusionStone
Rate: 10
- Index: 2
Item: Turtle_Is_Box_IL
Rate: 5
- Monster: ILL_SOLIDER
Drops:
- Index: 0
Item: Iron_Driver_IL
Rate: 25
RandomOptionGroup: ILL_PHYSIC_NORMAL
- Index: 1
Item: IllusionStone
Rate: 10
- Index: 2
Item: War_Axe_IL
Rate: 25
RandomOptionGroup: ILL_PHYSIC_NORMAL
- Index: 3
Item: Turtle_Is_Box_IL
Rate: 5
- Monster: ILL_HEATER
Drops:
- Index: 0
Item: Pole_Axe_IL
Rate: 25
RandomOptionGroup: ILL_PHYSIC_NORMAL
- Index: 1
Item: IllusionStone
Rate: 10
- Index: 2
Item: Turtle_Is_Box_IL
Rate: 5
- Monster: ILL_TURTLE_GENERAL
Drops:
- Index: 0
Item: Fancy_Flower_IL
Rate: 5000
- Index: 1
Item: Immaterial_Sword_IL
Rate: 5000
RandomOptionGroup: ILL_PHYSIC_BOSS
- Index: 2
Item: Iron_Driver_IL
Rate: 5000
RandomOptionGroup: ILL_PHYSIC_BOSS
- Index: 3
Item: Pole_Axe_IL
Rate: 5000
RandomOptionGroup: ILL_PHYSIC_BOSS
- Index: 4
Item: IllusionStone
Rate: 15000
- Index: 5
Item: War_Axe_IL
Rate: 5000
RandomOptionGroup: ILL_PHYSIC_BOSS
- Index: 6
Item: Huuma_Bird_Wing_IL
Rate: 5000
RandomOptionGroup: ILL_PHYSIC_BOSS
- Index: 7
Item: S_Turtle_Is_Box_IL
Rate: 150

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -112,7 +112,7 @@ Body:
Amount: 1
- Target: SWEETS_DROPS
ItemRequirements:
- Item: Sweets_Festival_Coin
- Item: Sweets_Coin
Amount: 500
- Item: Candy
Amount: 50
@@ -168,7 +168,6 @@ Body:
Amount: 30
- Item: Leaf_Lunatic_Card
Amount: 1
- Mob: PICKY
TameItem: Earthworm_The_Dude
EggItem: Picky_Egg
@@ -1361,7 +1360,7 @@ Body:
- Mob: TEDDY_BEAR
TameItem: Little_Dall_Needle
EggItem: Teddy_Bear_Egg
FoodItem: Cotton_Tufts
FoodItem: Wad_Of_Cotton
Fullness: 3
IntimacyFed: 50
CaptureRate: 2000
@@ -1498,7 +1497,7 @@ Body:
}
- Mob: MOONLIGHT
EggItem: Moonlight_Egg
FoodItem: Luxurious_Pet_Food
FoodItem: High_Class_Pet_food
Fullness: 1
HungryDelay: 120
IntimacyFed: 15
@@ -1922,7 +1921,7 @@ Body:
bonus bAspdRate,1;
}
- Mob: SWEETS_DROPS
EggItem: Sweet_Drops_Egg
EggItem: Sweets_Drops_Egg
FoodItem: Candy
Fullness: 2
HungryDelay: 120
@@ -2060,7 +2059,7 @@ Body:
}
# - Mob: BACSOJIN2
# EggItem: Bacsojin2_Egg_
# FoodItem: Luxurious_Pet_Food
# FoodItem: High_Class_Pet_food
# Fullness: 7
# IntimacyFed: 10
# CaptureRate: 0
@@ -2083,7 +2082,7 @@ Body:
# }
# - Mob: ORK_HERO2
# EggItem: Orc_Hero_Egg_
# FoodItem: Luxurious_Pet_Food
# FoodItem: High_Class_Pet_food
# Fullness: 2
# HungryDelay: 120
# IntimacyFed: 15
@@ -2104,3 +2103,70 @@ Body:
# } else {
# bonus bAtkRate,1;
# }
# - Mob: PHREEONI2
# EggItem: Phreeoni_Egg
# FoodItem: High_Class_Pet_food
# Fullness: 2 # unknown
# HungryDelay: 120 # unknown
# IntimacyFed: 15 # unknown
# CaptureRate: 0 # unknown
# SpecialPerformance: false # unknown
# AllowAutoFeed: true
# Script: >
# .@intimate = getpetinfo(PETINFO_INTIMATE);
# if (.@intimate == PET_INTIMATE_AWKWARD || .@intimate == PET_INTIMATE_SHY) {
# bonus bHit,6;
# }
# if (.@intimate == PET_INTIMATE_NEUTRAL) {
# bonus bHit,10;
# bonus bPerfectHitRate,5;
# }
# if (.@intimate == PET_INTIMATE_CORDIAL) {
# bonus bHit,14;
# bonus bPerfectHitRate,10;
# }
# if (.@intimate == PET_INTIMATE_LOYAL) {
# bonus bHit,18;
# bonus bPerfectHitRate,15;
# }
- Mob: EP17_2_CHILD_ADMIN1
CaptureRate : 1000
EggItem: Ep17_2_C_Admin1_Egg
EquipItem: Ep_17_2_C_Admin1_Acc
FoodItem: Cloud_Cotton
Fullness: 2
IntimacyFed: 20
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if (.@i >= PET_INTIMATE_LOYAL) {
bonus2 bAddRace2,RC2_EP172BETA,10;
} else if (.@i >= PET_INTIMATE_CORDIAL) {
bonus2 bAddRace2,RC2_EP172BETA,6;
} else if (.@i >= PET_INTIMATE_NEUTRAL) {
bonus2 bAddRace2,RC2_EP172BETA,3;
}
Evolution:
- Target: EP17_2_CHILD_ADMIN2
ItemRequirements:
- Item: Mystery_Piece
Amount: 10
- Item: Broken_Steel_Piece
Amount: 50
- Item: BarMealTicket
Amount: 500
- Mob: EP17_2_CHILD_ADMIN2
CaptureRate : 1000
EggItem: Ep17_2_C_Admin2_Egg
EquipItem: Ep_17_2_C_Admin2_Acc
FoodItem: Pet_Food
Fullness: 2
IntimacyFed: 20
Script: >
.@i = getpetinfo(PETINFO_INTIMATE);
if (.@i >= PET_INTIMATE_LOYAL) {
bonus2 bAddRace2,RC2_EP172ALPHA,15;
} else if (.@i >= PET_INTIMATE_CORDIAL) {
bonus2 bAddRace2,RC2_EP172ALPHA,8;
} else if (.@i >= PET_INTIMATE_NEUTRAL) {
bonus2 bAddRace2,RC2_EP172ALPHA,4;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -2057,8 +2057,8 @@ Body:
Flags:
NoSave: true
NoClearance: true
RequireWeapon: true
RemoveOnHermode: true
RequireNoWeapon: true
- Status: Spirit
Icon: EFST_SOULLINK
DurationLookup: SL_HIGH
@@ -5822,7 +5822,6 @@ Body:
NoBanishingBuster: true
NoClearance: true
SendVal1: true
NoForcedEnd: true
- Status: Angel_Protect
Icon: EFST_ANGEL_PROTECT
Flags:
@@ -8530,3 +8529,246 @@ Body:
NoClearance: true
- Status: WeaponBreaker
DurationLookup: NPC_WEAPONBRAKER
- Status: Tempering
Icon: EFST_TEMPERING
DurationLookup: MH_TEMPERING
CalcFlags:
Patk: true
- Status: Goldene_Tone
Icon: EFST_GOLDENE_TONE
DurationLookup: MH_GOLDENE_TONE
CalcFlags:
Res: true
Mres: true
- Status: Toxin_of_Mandara
Icon: EFST_TOXIN_OF_MANDARA
DurationLookup: MH_TOXIN_OF_MANDARA
Flags:
Debuff: true
CalcFlags:
Res: true
- Status: GRADUAL_GRAVITY
Icon: EFST_GRADUAL_GRAVITY
DurationLookup: NPC_GRADUAL_GRAVITY
Flags:
BlEffect: true
DisplayPc: true
NoDispell: true
NoClearance: true
- Status: ALL_STAT_DOWN
Icon: EFST_ALL_STAT_DOWN
DurationLookup: NPC_ALL_STAT_DOWN
CalcFlags:
Str: true
Agi: true
Vit: true
Int: true
Dex: true
Luk: true
Flags:
NoDispell: true
NoClearance: true
- Status: Killing_Aura
Icon: EFST_KILLING_AURA
DurationLookup: NPC_KILLING_AURA
Flags:
BlEffect: true
DisplayPc: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: DAMAGE_HEAL
Icon: EFST_DAMAGE_HEAL
DurationLookup: NPC_DAMAGE_HEAL
Flags:
NoDispell: true
- Status: IMMUNE_PROPERTY_NOTHING
Icon: EFST_IMMUNE_PROPERTY_NOTHING
DurationLookup: NPC_IMMUNE_PROPERTY
Flags:
BlEffect: true
DisplayPc: true
EndOnStart:
IMMUNE_PROPERTY_WATER: true
IMMUNE_PROPERTY_GROUND: true
IMMUNE_PROPERTY_FIRE: true
IMMUNE_PROPERTY_WIND: true
IMMUNE_PROPERTY_POISON: true
IMMUNE_PROPERTY_SAINT: true
IMMUNE_PROPERTY_DARKNESS: true
IMMUNE_PROPERTY_TELEKINESIS: true
IMMUNE_PROPERTY_UNDEAD: true
- Status: IMMUNE_PROPERTY_WATER
Icon: EFST_IMMUNE_PROPERTY_WATER
DurationLookup: NPC_IMMUNE_PROPERTY
Flags:
BlEffect: true
DisplayPc: true
EndOnStart:
IMMUNE_PROPERTY_NOTHING: true
IMMUNE_PROPERTY_GROUND: true
IMMUNE_PROPERTY_FIRE: true
IMMUNE_PROPERTY_WIND: true
IMMUNE_PROPERTY_POISON: true
IMMUNE_PROPERTY_SAINT: true
IMMUNE_PROPERTY_DARKNESS: true
IMMUNE_PROPERTY_TELEKINESIS: true
IMMUNE_PROPERTY_UNDEAD: true
- Status: IMMUNE_PROPERTY_GROUND
Icon: EFST_IMMUNE_PROPERTY_GROUND
DurationLookup: NPC_IMMUNE_PROPERTY
Flags:
BlEffect: true
DisplayPc: true
EndOnStart:
IMMUNE_PROPERTY_NOTHING: true
IMMUNE_PROPERTY_WATER: true
IMMUNE_PROPERTY_FIRE: true
IMMUNE_PROPERTY_WIND: true
IMMUNE_PROPERTY_POISON: true
IMMUNE_PROPERTY_SAINT: true
IMMUNE_PROPERTY_DARKNESS: true
IMMUNE_PROPERTY_TELEKINESIS: true
IMMUNE_PROPERTY_UNDEAD: true
- Status: IMMUNE_PROPERTY_FIRE
Icon: EFST_IMMUNE_PROPERTY_FIRE
DurationLookup: NPC_IMMUNE_PROPERTY
Flags:
BlEffect: true
DisplayPc: true
EndOnStart:
IMMUNE_PROPERTY_NOTHING: true
IMMUNE_PROPERTY_WATER: true
IMMUNE_PROPERTY_GROUND: true
IMMUNE_PROPERTY_WIND: true
IMMUNE_PROPERTY_POISON: true
IMMUNE_PROPERTY_SAINT: true
IMMUNE_PROPERTY_DARKNESS: true
IMMUNE_PROPERTY_TELEKINESIS: true
IMMUNE_PROPERTY_UNDEAD: true
- Status: IMMUNE_PROPERTY_WIND
Icon: EFST_IMMUNE_PROPERTY_WIND
DurationLookup: NPC_IMMUNE_PROPERTY
Flags:
BlEffect: true
DisplayPc: true
EndOnStart:
IMMUNE_PROPERTY_NOTHING: true
IMMUNE_PROPERTY_WATER: true
IMMUNE_PROPERTY_GROUND: true
IMMUNE_PROPERTY_FIRE: true
IMMUNE_PROPERTY_POISON: true
IMMUNE_PROPERTY_SAINT: true
IMMUNE_PROPERTY_DARKNESS: true
IMMUNE_PROPERTY_TELEKINESIS: true
IMMUNE_PROPERTY_UNDEAD: true
- Status: IMMUNE_PROPERTY_POISON
Icon: EFST_IMMUNE_PROPERTY_POISON
DurationLookup: NPC_IMMUNE_PROPERTY
Flags:
BlEffect: true
DisplayPc: true
EndOnStart:
IMMUNE_PROPERTY_NOTHING: true
IMMUNE_PROPERTY_WATER: true
IMMUNE_PROPERTY_GROUND: true
IMMUNE_PROPERTY_FIRE: true
IMMUNE_PROPERTY_WIND: true
IMMUNE_PROPERTY_SAINT: true
IMMUNE_PROPERTY_DARKNESS: true
IMMUNE_PROPERTY_TELEKINESIS: true
IMMUNE_PROPERTY_UNDEAD: true
- Status: IMMUNE_PROPERTY_SAINT
Icon: EFST_IMMUNE_PROPERTY_SAINT
DurationLookup: NPC_IMMUNE_PROPERTY
Flags:
BlEffect: true
DisplayPc: true
EndOnStart:
IMMUNE_PROPERTY_NOTHING: true
IMMUNE_PROPERTY_WATER: true
IMMUNE_PROPERTY_GROUND: true
IMMUNE_PROPERTY_FIRE: true
IMMUNE_PROPERTY_WIND: true
IMMUNE_PROPERTY_POISON: true
IMMUNE_PROPERTY_DARKNESS: true
IMMUNE_PROPERTY_TELEKINESIS: true
IMMUNE_PROPERTY_UNDEAD: true
- Status: IMMUNE_PROPERTY_DARKNESS
Icon: EFST_IMMUNE_PROPERTY_DARKNESS
DurationLookup: NPC_IMMUNE_PROPERTY
Flags:
BlEffect: true
DisplayPc: true
EndOnStart:
IMMUNE_PROPERTY_NOTHING: true
IMMUNE_PROPERTY_WATER: true
IMMUNE_PROPERTY_GROUND: true
IMMUNE_PROPERTY_FIRE: true
IMMUNE_PROPERTY_WIND: true
IMMUNE_PROPERTY_POISON: true
IMMUNE_PROPERTY_SAINT: true
IMMUNE_PROPERTY_TELEKINESIS: true
IMMUNE_PROPERTY_UNDEAD: true
- Status: IMMUNE_PROPERTY_TELEKINESIS
Icon: EFST_IMMUNE_PROPERTY_TELEKINESIS
DurationLookup: NPC_IMMUNE_PROPERTY
Flags:
BlEffect: true
DisplayPc: true
EndOnStart:
IMMUNE_PROPERTY_NOTHING: true
IMMUNE_PROPERTY_WATER: true
IMMUNE_PROPERTY_GROUND: true
IMMUNE_PROPERTY_FIRE: true
IMMUNE_PROPERTY_WIND: true
IMMUNE_PROPERTY_POISON: true
IMMUNE_PROPERTY_SAINT: true
IMMUNE_PROPERTY_DARKNESS: true
IMMUNE_PROPERTY_UNDEAD: true
- Status: IMMUNE_PROPERTY_UNDEAD
Icon: EFST_IMMUNE_PROPERTY_UNDEAD
DurationLookup: NPC_IMMUNE_PROPERTY
Flags:
BlEffect: true
DisplayPc: true
EndOnStart:
IMMUNE_PROPERTY_NOTHING: true
IMMUNE_PROPERTY_WATER: true
IMMUNE_PROPERTY_GROUND: true
IMMUNE_PROPERTY_FIRE: true
IMMUNE_PROPERTY_WIND: true
IMMUNE_PROPERTY_POISON: true
IMMUNE_PROPERTY_SAINT: true
IMMUNE_PROPERTY_DARKNESS: true
IMMUNE_PROPERTY_TELEKINESIS: true
- Status: RELIEVE_ON
Icon: EFST_RELIEVE_DAMAGE
DurationLookup: NPC_RELIEVE_ON
Flags:
BlEffect: true
DisplayPc: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
EndOnStart:
Relieve_off: true
- Status: Relieve_off
DurationLookup: NPC_RELIEVE_OFF
Flags:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
EndOnStart:
Relieve_on: true
- Status: Rush_Quake1
Icon: EFST_RUSH_QUAKE1
DurationLookup: MT_RUSH_QUAKE
Flags:
BlEffect: true
Debuff: true
- Status: Rush_Quake2
Icon: EFST_RUSH_QUAKE2
DurationLookup: MT_RUSH_QUAKE
CalcFlags:
All: true

View File

@@ -304,10 +304,10 @@ Body:
- Index: 1
Value: 0
CostsHuman:
RequiredItem: Clothing_Dye_Coupon_II
RequiredItem: Clothing_Dye_Coupon2
RequiredItemBox: CCloth_Dye_Coupon2_Box
CostsDoram:
RequiredItem: Clothing_Dye_Coupon_II
RequiredItem: Clothing_Dye_Coupon2
RequiredItemBox: CCloth_Dye_Coupon2_Box
- Index: 2
Value: 2

View File

@@ -30,7 +30,7 @@ This list contains all available constants referenced in the 'bonus' commands.
RC2_Treasure, RC2_BioLab, RC2_Manuk, RC2_Splendide, RC2_Scaraba, RC2_OGH_ATK_DEF, RC2_OGH_Hidden,
RC2_Bio5_Swordman_Thief, RC2_Bio5_Acolyte_Merchant, RC2_Bio5_Mage_Archer, RC2_Bio5_MVP,
RC2_Clocktower, RC2_Thanatos, RC2_Faceworm, RC2_Hearthunter, RC2_Rockridge, RC2_Werner_Lab,
RC2_Temple_Demon, RC2_Illusion_Vampire, RC2_Malangdo
RC2_Temple_Demon, RC2_Illusion_Vampire, RC2_Malangdo, RC2_EP172ALPHA, RC2_EP172BETA, RC2_EP172BATH
* Class (c)
Class_Normal, Class_Boss, Class_Guardian, Class_All
@@ -322,6 +322,11 @@ bonus bIgnoreMDefEle,e; Disregard MDEF against enemies of element e
bonus2 bIgnoreDefClassRate,c,n; Disregard n% of the target's DEF if the target belongs to class c
bonus2 bIgnoreMdefClassRate,c,n; Disregard n% of the target's MDEF if the target belongs to class c
Ignore Res
----------
bonus2 bIgnoreResRaceRate,r,n; Disregard n% of the target's Res if the target belongs to race r
bonus2 bIgnoreMResRaceRate,r,n; Disregard n% of the target's MRes if the target belongs to race r
Experience
----------
bonus2 bExpAddRace,r,x; Increase exp gained by x% against enemies of race r

View File

@@ -212,6 +212,8 @@ ex: if your NPC is named 'Hunter#hunter1', it will be displayed as 'Hunter'
<from mapname>,<fromX>,<fromY>,<facing>%TAB%warp%TAB%<warp name>%TAB%<spanx>,<spany>,<to mapname>,<toX>,<toY>
<from mapname>,<fromX>,<fromY>,<facing>%TAB%warp2%TAB%<warp name>%TAB%<spanx>,<spany>,<to mapname>,<toX>,<toY>
<from mapname>,<fromX>,<fromY>,<facing>%TAB%warp(<state>)%TAB%<warp name>%TAB%<spanx>,<spany>,<to mapname>,<toX>,<toY>
<from mapname>,<fromX>,<fromY>,<facing>%TAB%warp2(<state>)%TAB%<warp name>%TAB%<spanx>,<spany>,<to mapname>,<toX>,<toY>
This will define a warp NPC that will warp a player between maps, and while most
arguments of that are obvious, some deserve special mention.
@@ -229,10 +231,20 @@ current scripts have a zero in there.
Unlike 'warp', 'warp2' will also be triggered by hidden player.
The basic state of the warp can be defined in <state>. Only one state can be defined at a time.
Duplicate warps (including instance warps) inherit the <state> of the original warp.
Valid <state> are:
CLOAKED Make the warp specified cloaked.
HIDDEN Make the warp specified hidden.
DISABLED Make the warp specified disabled.
** Define an NPC object.
<map name>,<x>,<y>,<facing>%TAB%script%TAB%<NPC Name>%TAB%<sprite id>,{<code>}
<map name>,<x>,<y>,<facing>%TAB%script%TAB%<NPC Name>%TAB%<sprite id>,<triggerX>,<triggerY>,{<code>}
<map name>,<x>,<y>,<facing>%TAB%script(<state>)%TAB%<NPC Name>%TAB%<sprite id>,{<code>}
<map name>,<x>,<y>,<facing>%TAB%script(<state>)%TAB%<NPC Name>%TAB%<sprite id>,<triggerX>,<triggerY>,{<code>}
This will place an NPC object on a specified map at the specified location, and
is a top-level command you will use the most in your custom scripting. The NPCs
@@ -246,6 +258,8 @@ degrees, where 0 means facing towards the top of the map. (So to turn the sprite
towards the bottom of the map, you use facing 4, and to make it look southeast
it's facing 5.)
<state> works like the warp <state> defined above, but for NPCs.
Sprite ID is the sprite number or constant used to display this particular NPC.
You may also use a monster's ID instead to display a monster sprite for this NPC.
It is possible to use a job sprite as well, but you must first define it as a
@@ -269,6 +283,24 @@ triggered. It may contain commands and function calls, descriptions of which
compose most of this document. It has to be in curly brackets, unlike elsewhere
where we use curly brackets, these do NOT signify an optional parameter.
Example of how <state> works:
// Define a cloaked NPC :
lighthalzen,306,267,5 script Skia#ep162_04 4_EP16_SKIA,{
//...
end;
OnInit:
cloakonnpc();
end;
}
// Another way to define a cloaked NPC using <state> :
lighthalzen,306,267,5 script(CLOAKED) Skia#ep162_04 4_EP16_SKIA,{
//...
end;
}
** Define a 'floating' NPC object.
-%TAB%script%TAB%<NPC Name>%TAB%-1,{<code>}
@@ -1127,13 +1159,17 @@ In 2015 the tag name was changed to <ITEM> resulting in the following syntax:
<ITEM>Display Name<INFO>Item ID</INFO></ITEM>
We therefore created script command "mesitemlink" that allows you to create the correct syntax
depending on your configured packet version. We recommend that you use this script command
instead of hardcoding the HTML-like tags. For more details see the documentation for "mesitemlink".
The following sample will open a preview window for Red Potion:
mes "Did you ever consume a <ITEMLINK>Red Potion<INFO>501</INFO></ITEMLINK>?";
// Or in 2015:
mes "Did you ever consume a <ITEM>Red Potion<INFO>501</INFO></ITEM>?";
NOTE: Be aware that item links are rendered incorrectly in 2015+ clients at the moment.
NOTE: Be aware that item links are broken in some 2015 clients.
URLs
----
@@ -4410,7 +4446,6 @@ you have maximum. Like 'heal', this will not call up any animations or effects.
*recovery <type>{,<option>,<revive_flag>{,<map name>}};
This command will revive and fully restore the HP/SP of the selected characters.
It returns 1 upon successful use.
<type> is the target, and determines the <option> parameter:
0: Player -> Character ID number
@@ -6448,8 +6483,7 @@ the invoking character. Example can be found in the wedding script.
This function will "un-marry" the invoking character from whoever they were
married to. Both will no longer be each other's marriage partner, (at least in
current SVN, which prevents the cases of multi-spouse problems). It will return
1 upon success or 0 if the character was not married at all.
current SVN, which prevents the cases of multi-spouse problems).
This function will also destroy both wedding rings and send a message to both
players, telling them they are now divorced.
@@ -7034,9 +7068,6 @@ the invoking NPC's actions, such as using an emotion or talking.
Whichever of the both NPCs is talked to, both will show a random emotion at the
same time.
As of r16564, command now returns 1 or 0 on success and failure.
A debug message also shows on the console when no events are triggered.
---------------------------------------
*cmdothernpc "<npc name>","<command>";
@@ -7044,8 +7075,6 @@ A debug message also shows on the console when no events are triggered.
This is simply "donpcevent <npc name>::OnCommand<command>".
It is an approximation of official server script language's 'cmdothernpc'.
Returns true if the command was executed on the other NPC successfully, false if not.
---------------------------------------
*npctalk "<message>"{,"<NPC name>",<flag>{,<color>}};
@@ -8486,10 +8515,10 @@ flag: Specify target
---------------------------------------
*unitskilluseid <GID>,<skill id>,<skill lvl>{,<target id>,<casttime>,<cancel>,<Line_ID>};
*unitskilluseid <GID>,"<skill name>",<skill lvl>{,<target id>,<casttime>,<cancel>,<Line_ID>};
*unitskillusepos <GID>,<skill id>,<skill lvl>,<x>,<y>{,<casttime>,<cancel>,<Line_ID>};
*unitskillusepos <GID>,"<skill name>",<skill lvl>,<x>,<y>{,<casttime>,<cancel>,<Line_ID>};
*unitskilluseid <GID>,<skill id>,<skill lvl>{,<target id>,<casttime>,<cancel>,<Line_ID>,<ignore_range>};
*unitskilluseid <GID>,"<skill name>",<skill lvl>{,<target id>,<casttime>,<cancel>,<Line_ID>,<ignore_range>};
*unitskillusepos <GID>,<skill id>,<skill lvl>,<x>,<y>{,<casttime>,<cancel>,<Line_ID>,<ignore_range>};
*unitskillusepos <GID>,"<skill name>",<skill lvl>,<x>,<y>{,<casttime>,<cancel>,<Line_ID>,<ignore_range>};
This is the replacement of the older commands, these use the same values for
GID as the other unit* commands (See 'GID').
@@ -8505,6 +8534,9 @@ CastCancel from skill_db.yml is the default value of <cancel>.
If <Line_ID> is defined (positive number, default 0) the monster will say the message from 'Line_ID'
in mob_chat_db.yml when casting the skill.
If <ignore_range> is true, the unit will ignore the skill range defined by the database. The default value is false.
Attention! this setting does not work for all skills.
---------------------------------------
*unitexists <GID>;
@@ -9693,12 +9725,18 @@ Examples:
---------------------------------------
*instance_warpall "<map name>",<x>,<y>{,<instance id>};
*instance_warpall "<map name>",<x>,<y>{,<instance id>,{<flag>}};
Warps all players in the <instance id> to <map name> to the given coordinates.
If no ID is specified, the IM_PARTY instance the invoking player is attached
to is used. If that fails, the script will come to a halt.
<flag> bitmask allows to add restrictions.
Available values for the <flag> bitmask:
IWA_NONE No restriction. (default)
IWA_NOTDEAD If dead players are warped or not
---------------------------------------
*instance_announce <instance id>,"<text>",<flag>{,<fontColor>{,<fontType>{,<fontSize>{,<fontAlign>{,<fontY>}}}}};
@@ -10998,13 +11036,13 @@ If <char id> is specified, the specified player is used rather than the attached
---------------------------------------
*itemlink(<item_id>,<refine>,<card0>,<card1>,<card2>,<card3>,<enchantgrade>{,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>});
*itemlink(<item_id>{,<refine>{,<card0>{,<card1>{,<card2>{,<card3>,{<enchantgrade>{,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>}}}}}}});
Generates an item link string for an item that can be used for npctalk, message,
dispbottom, and broadcast commands. The result is a clickable-item name just
like SHIFT+Click from a player's inventory/cart/equipment window. This command can be
used with mes but the item name will not be clickable. You should use the normal client
tags for displaying item links in mes dialogues, if the client supports them.
used with mes but the item name will not be clickable. You should use script command
"mesitemlink" for displaying item links in mes dialogues, if the client supports them.
Examples:
@@ -11021,6 +11059,24 @@ Examples:
RandomIDArray, RandomValueArray, and RandomParamArray only works if the
client (and server) supports the Item Random Options feature (PACKETVER >= 20150225).
---------------------------------------
*mesitemlink(<item_id>{,<use_brackets>{,<display_name>});
Generates an itemlink string for an item and can be used with NPC's mes command.
The NPC message will show the item's name which will be clickable and opens the
item description client side.
By default <use_brackets> is true which surrounds the link with brackets. Send false to disable.
By default the link will be created with the name of the item stored in the item database,
but in some cases it might be necessary to overwrite the <display_name> with something else.
Examples:
mes mesitemlink( 1201 ); // Will display "[Knife]" and will be clickable. If clicked it opens the description for Knife [3]
mes "Bring me a " + mesitemlink( 1201 ) + "."; // Will display "Bring me a [Knife]." and "[Knife]" will be clickable.
mes "Bring me a " + mesitemlink( 1201, false ) + "."; // Will display "Bring me a Knife." and "Knife" will be clickable.
mes "Bring me a " + mesitemlink( 1201, true, "Super cutting knife" ) + "."; // Will display "Bring me a [Super cutting knife]." and "[Super cutting knife]" will be clickable.
========================
|14.- Channel commands.|
========================

View File

@@ -248,6 +248,7 @@ Flags: Various status flags for specific status change events.
NonPlayer - Sends the NPC_SHOWEFST_UPDATE packet. Used to send effects to NPC/monsters.
RequireWeapon - Status requires a weapon to be equipped.
RequireNoWeapon - Status requires that no weapons be equipped.
RequireShield - Status requires a shield to be equipped.
SuperNoviceAngel - Status that is given from Super Novice Angel.

View File

@@ -0,0 +1,34 @@
###########################################################################
# Enchantgrade Database
###########################################################################
#
# Enchantgrade Settings
#
###########################################################################
# - Type Item type.
# Levels: Enchantgrade settings per item level.
# - Level Item level.
# Grades: Enchantgrade settings per grade level.
# - Grade Enchantgrade level.
# Chances: Chance settings per refine level.
# - Refine Refine level.
# Chance Base chance of success out of 0~10000.
# Bonus Enchantgrade bonus. (Default: 0)
# AnnounceSuccess Announce on upgrade success. (Default: true)
# AnnounceFail Announce on upgrade failure. (Default: false)
# Announce Announce on upgrade success and failure.
# Catalyst: Catalyst item to increase chance of success.
# Item The item that can be used.
# AmountPerStep Amount of Item needed.
# Set to 0 to disable the catalyst.
# MaximumSteps Maximum amount of times Item can be used.
# ChanceIncrease Amount at which the chance increases for each Item used.
# Options: Success chance based on cost type.
# - Option Index of the client option.
# Item Required item.
# Amount Amount of required item. (Default: 1)
# Set to 0 to remove an option.
# Price Amount of zeny required. (Default: 0)
# BreakingRate Chance of item breaking out of 0~10000. (Default: 0)
# DowngradeAmount Number of refine levels reduced on failure. (Default: 0)
###########################################################################

View File

@@ -0,0 +1,36 @@
###########################################################################
# Homunculus Database
###########################################################################
#
# Homunculus Settings
#
###########################################################################
# - BaseClass Base class.
# Name Name of homunculus.
# EvolutionClass Evolution class.
# Food Homunculus food item. (Default: Pet_Food)
# HungryDelay Time interval in milliseconds after which the hunger value is altered. (Default: 60000)
# Race Race. (Default: Demihuman)
# Element Element. (Default: Neutral)
# Size Size. (Default: Small)
# EvolutionSize Evolution size. (Default: Medium)
# AttackDelay Base ASPD. (Default: 700)
# Status: Homunculus stats.
# - Type Type of status.
# Base Base value of this status. (Default: 1)
# GrowthMinimum Minimum growth of this status. (Default: 0)
# GrowthMaximum Maximum growth of this status. (Default: 0)
# EvolutionMinimum Minimum evolution growth of this status. Only applies for homunculus that can evolve. (Default: 0)
# EvolutionMaximum Maximum evolution growth of this status. Only applies for homunculus that can evolve. (Default: 0)
# SkillTree: Skill tree.
# - Skill Skill name.
# Clear True to remove the given skill name. (Optional)
# MaxLevel Maximum level of skill.
# RequiredLevel Required base level of homunculus to learn. (Default: 0)
# RequiredIntimacy Required intimacy of homunculus to learn. (Default: 0)
# RequireEvolution Require the homunculus to be evolved to be available. (Default: false)
# Required: Prerequisite skills. (Default: null)
# - Skill Prerequisite skill name.
# Level Level of prerequisite skill.
# Clear True to remove the given prerequisite skill name. (Optional)
###########################################################################

View File

@@ -1,5 +1,5 @@
# This file is a part of rAthena.
# Copyright(C) 2021 rAthena Development Team
# Copyright(C) 2023 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify

View File

@@ -39,6 +39,7 @@ CREATE TABLE `item_db2_re` (
`job_rogue` tinyint(1) unsigned DEFAULT NULL,
`job_sage` tinyint(1) unsigned DEFAULT NULL,
`job_soullinker` tinyint(1) unsigned DEFAULT NULL,
`job_spirit_handler` tinyint(1) unsigned DEFAULT NULL,
`job_stargladiator` tinyint(1) unsigned DEFAULT NULL,
`job_summoner` tinyint(1) unsigned DEFAULT NULL,
`job_supernovice` tinyint(1) unsigned DEFAULT NULL,
@@ -53,6 +54,7 @@ CREATE TABLE `item_db2_re` (
`class_third` tinyint(1) unsigned DEFAULT NULL,
`class_third_upper` tinyint(1) unsigned DEFAULT NULL,
`class_third_baby` tinyint(1) unsigned DEFAULT NULL,
`class_fourth` tinyint(1) unsigned DEFAULT NULL,
`gender` varchar(10) DEFAULT NULL,
`location_head_top` tinyint(1) unsigned DEFAULT NULL,
`location_head_mid` tinyint(1) unsigned DEFAULT NULL,

View File

@@ -39,6 +39,7 @@ CREATE TABLE `item_db_re` (
`job_rogue` tinyint(1) unsigned DEFAULT NULL,
`job_sage` tinyint(1) unsigned DEFAULT NULL,
`job_soullinker` tinyint(1) unsigned DEFAULT NULL,
`job_spirit_handler` tinyint(1) unsigned DEFAULT NULL,
`job_stargladiator` tinyint(1) unsigned DEFAULT NULL,
`job_summoner` tinyint(1) unsigned DEFAULT NULL,
`job_supernovice` tinyint(1) unsigned DEFAULT NULL,
@@ -53,6 +54,7 @@ CREATE TABLE `item_db_re` (
`class_third` tinyint(1) unsigned DEFAULT NULL,
`class_third_upper` tinyint(1) unsigned DEFAULT NULL,
`class_third_baby` tinyint(1) unsigned DEFAULT NULL,
`class_fourth` tinyint(1) unsigned DEFAULT NULL,
`gender` varchar(10) DEFAULT NULL,
`location_head_top` tinyint(1) unsigned DEFAULT NULL,
`location_head_mid` tinyint(1) unsigned DEFAULT NULL,

View File

@@ -57,6 +57,9 @@ CREATE TABLE `mob_db` (
`racegroup_temple_demon` tinyint(1) unsigned DEFAULT NULL,
`racegroup_illusion_vampire` tinyint(1) unsigned DEFAULT NULL,
`racegroup_malangdo` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172alpha` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172beta` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172bath` tinyint(1) unsigned DEFAULT NULL,
`element` varchar(24) DEFAULT NULL,
`element_level` tinyint(4) unsigned DEFAULT NULL,
`walk_speed` smallint(6) unsigned DEFAULT NULL,

View File

@@ -57,6 +57,9 @@ CREATE TABLE `mob_db2` (
`racegroup_temple_demon` tinyint(1) unsigned DEFAULT NULL,
`racegroup_illusion_vampire` tinyint(1) unsigned DEFAULT NULL,
`racegroup_malangdo` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172alpha` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172beta` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172bath` tinyint(1) unsigned DEFAULT NULL,
`element` varchar(24) DEFAULT NULL,
`element_level` tinyint(4) unsigned DEFAULT NULL,
`walk_speed` smallint(6) unsigned DEFAULT NULL,

View File

@@ -59,6 +59,9 @@ CREATE TABLE `mob_db2_re` (
`racegroup_temple_demon` tinyint(1) unsigned DEFAULT NULL,
`racegroup_illusion_vampire` tinyint(1) unsigned DEFAULT NULL,
`racegroup_malangdo` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172alpha` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172beta` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172bath` tinyint(1) unsigned DEFAULT NULL,
`element` varchar(24) DEFAULT NULL,
`element_level` tinyint(4) unsigned DEFAULT NULL,
`walk_speed` smallint(6) unsigned DEFAULT NULL,

View File

@@ -59,6 +59,9 @@ CREATE TABLE `mob_db_re` (
`racegroup_temple_demon` tinyint(1) unsigned DEFAULT NULL,
`racegroup_illusion_vampire` tinyint(1) unsigned DEFAULT NULL,
`racegroup_malangdo` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172alpha` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172beta` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172bath` tinyint(1) unsigned DEFAULT NULL,
`element` varchar(24) DEFAULT NULL,
`element_level` tinyint(4) unsigned DEFAULT NULL,
`walk_speed` smallint(6) unsigned DEFAULT NULL,

View File

@@ -260,7 +260,7 @@ L_Shield:
case 3: goto L_Menu; break;
}
mes .@n$;
mes "<ITEM>"+getitemname(.@item)+"<INFO>"+.@item+"</INFO></ITEM>";
mes mesitemlink( .@item, false );
mes "Price is "+.@cost+" coins";
mes "Do you wish to exchange your coins?";
next;
@@ -303,7 +303,7 @@ L_Ring:
break;
}
mes .@n$;
mes "<ITEM>"+getitemname(.@item)+"<INFO>"+.@item+"</INFO></ITEM>";
mes mesitemlink( .@item, false );
mes "Price is "+.@cost+" coins";
mes "Do you wish to exchange your coins?";
next;
@@ -345,7 +345,7 @@ L_Armor:
break;
}
mes .@n$;
mes "<ITEM>"+getitemname(.@item)+"<INFO>"+.@item+"</INFO></ITEM>";
mes mesitemlink( .@item, false );
mes "Price is "+.@cost+" coins";
mes "Do you wish to exchange your coins?";
next;

View File

@@ -345,6 +345,7 @@ D8: Restrict("RE",4,5);
Disp("Bio Lab 1:Bio Lab 2:Bio Lab 3:Bio Lab 4:Tomb of the Fallen"); Pick("","lhz_dun01","lhz_dun02","lhz_dun03","lhz_dun04","lhz_dun_n");
D9: Restrict("RE");
setarray @c[2],87,47,262,262;
Disp("Brasilis Dungeon",1,2); Pick("bra_dun");
D10: Restrict("RE",6);
setarray @c[0],168,168,253,252,236,204,32,63,26,27,141,187;
Disp("Byalan Dungeon",1,6); Pick("iz_dun",1);
@@ -382,7 +383,7 @@ D23: menu "Illusion of Abyss",SubD1, "Illusion of Frozen",SubD2, "Illusion of La
"Illusion of Luanda",SubD4, "Illusion of Moonlight",SubD5, "Illusion of Teddy Bear",SubD6,
"Illusion of Twins",SubD7, "Illusion of Underwater",SubD8, "Illusion of Vampire",SubD9;
SubD1: Restrict("RE");
setarray @c[2],132,189,100,192;
setarray @c[2],132,189,99,186;
Disp("Desolate Village:Bleak Turtle Palace"); Pick("","tur_d03_i","tur_d04_i");
SubD2: Restrict("RE");
Go("ice_d03_i",149,22);

View File

@@ -7,6 +7,7 @@
//= 1.7 Updated. [Lupus]
//= 1.8 Updated. [L0ne_W0lf]
//= 1.9 Renewal split. [Euphy]
//= 2.0 Moved instances to pre-renewal. [Lemongrass]
//============================================================
//============================================================
@@ -268,23 +269,6 @@ que_qaru03 mapflag nosave SavePoint
que_qaru04 mapflag nosave SavePoint
que_qaru05 mapflag nosave SavePoint
//============================================================
// Sealed Shrine
//============================================================
1@cata mapflag nosave SavePoint
2@cata mapflag nosave SavePoint
//============================================================
// Endless Tower
//============================================================
e_tower mapflag nosave SavePoint
1@tower mapflag nosave SavePoint
2@tower mapflag nosave SavePoint
3@tower mapflag nosave SavePoint
4@tower mapflag nosave SavePoint
5@tower mapflag nosave SavePoint
6@tower mapflag nosave SavePoint
//============================================================
// Battlegrounds
//============================================================
@@ -307,18 +291,6 @@ schg_dun01 mapflag nosave SavePoint
arug_que01 mapflag nosave SavePoint
arug_dun01 mapflag nosave SavePoint
//============================================================
// Orc's Memory
//============================================================
1@orcs mapflag nosave SavePoint
2@orcs mapflag nosave SavePoint
//============================================================
// Nidhoggr's Instance
//============================================================
1@nyd mapflag nosave SavePoint
2@nyd mapflag nosave SavePoint
//============================================================
// RWC
//============================================================

View File

@@ -0,0 +1,37 @@
//===== rAthena Script =======================================
//= Mapflag: Disable auto-save.
//===== Description: =========================================
//= Characters logging out on the specified map will be warped
//= to the map specified in the last field, or "SavePoint".
//===== Additional Comments: =================================
//= 1.0 Renewal Split. [Lemongrass]
//============================================================
//============================================================
// Endless Tower
//============================================================
e_tower mapflag nosave SavePoint
1@tower mapflag nosave SavePoint
2@tower mapflag nosave SavePoint
3@tower mapflag nosave SavePoint
4@tower mapflag nosave SavePoint
5@tower mapflag nosave SavePoint
6@tower mapflag nosave SavePoint
//============================================================
// Sealed Shrine
//============================================================
1@cata mapflag nosave SavePoint
2@cata mapflag nosave SavePoint
//============================================================
// Orc's Memory
//============================================================
1@orcs mapflag nosave SavePoint
2@orcs mapflag nosave SavePoint
//============================================================
// Nidhoggr's Instance
//============================================================
1@nyd mapflag nosave SavePoint
2@nyd mapflag nosave SavePoint

View File

@@ -608,7 +608,7 @@ alberta,120,53,1 script Stylish Merchant#new30 51,{
mes "[Zic]";
mes "Let's see, I'll need...";
mes "1 ^0000FFSilk Ribbon^000000";
mes "50 ^0000FFHeroic Emlbem^000000";
mes "50 ^0000FFHeroic Emblem^000000";
mes "...Did you know this already?";
close;
case 2:
@@ -617,7 +617,7 @@ alberta,120,53,1 script Stylish Merchant#new30 51,{
next;
mes "[Zic]";
mes "Okay, I'll need...";
mes "1 ^0000FFHeart hair pin^000000";
mes "1 ^0000FFHeart Hairpin^000000";
mes "10 ^0000FFSteel^000000";
mes "...Did you know this already?";
close;
@@ -627,7 +627,7 @@ alberta,120,53,1 script Stylish Merchant#new30 51,{
next;
mes "[Zic]";
mes "I need to have...";
mes "1 ^0000FFJack a Dandy^000000";
mes "1 ^0000FFJack be Dandy^000000";
mes "1 ^0000FFScarlet Dyestuffs^000000";
mes "...Did you know this already?";
close;
@@ -760,7 +760,7 @@ alberta,136,79,1 script Hat store girl#new30 71,{
mes "^0000FF1 Wizard Hat^000000";
mes "^0000FF400 Dragon Scale^000000";
mes "^0000FF50 Mould Powder^000000";
mes "^0000FF1 Elder Wilow Card^000000";
mes "^0000FF1 Elder Willow Card^000000";
next;
if ((countitem(2252) > 0) && (countitem(1036) > 399) && (countitem(4052) > 0) && (countitem(7001) > 49)) {
mes "[Tempestra]";

View File

@@ -2066,22 +2066,22 @@ lasagna,131,245,5 script The diligent second son 4_CAT_3COLOR,{
mes "[Yota Chara]";
switch(.@s) {
case 1:
mes "<ITEM>Low-grade Horse Mackerel Amulet <INFO>28413</INFO></ITEM> is for my father who is far out to the sea.";
mes mesitemlink( 28413, false ) + " is for my father who is far out to the sea.";
break;
case 2:
mes "<ITEM>Low-grade Leaf Amulet <INFO>28416</INFO></ITEM> is for my mother who should be wandering about the deep side of the forest.";
mes mesitemlink( 28416, false ) + " is for my mother who should be wandering about the deep side of the forest.";
break;
case 3:
mes "<ITEM>Low-grade Rabbit Amulet <INFO>28419</INFO></ITEM> is for my brothers' health and wellness.";
mes mesitemlink( 28419, false ) + " is for my brothers' health and wellness.";
break;
case 4:
mes "<ITEM>Shining Twig Charm <INFO>28422</INFO></ITEM> is to wish for my mother to return home safely from anywhere in the world.";
mes mesitemlink( 28422, false ) + " is to wish for my mother to return home safely from anywhere in the world.";
break;
case 5:
mes "<ITEM>Fresh Tuna Amulet <INFO>28423</INFO></ITEM> is to wish for my father to return home quick with his ship full of tunas.";
mes mesitemlink( 28423, false ) + " is to wish for my father to return home quick with his ship full of tunas.";
break;
case 6:
mes "<ITEM>Plump Earthworm Amulet <INFO>28424</INFO></ITEM> is to wish for easy fishing so that my family won't be starved.";
mes mesitemlink( 28424, false ) + " is to wish for easy fishing so that my family won't be starved.";
break;
}
if (.@s < 4) {
@@ -2092,7 +2092,7 @@ lasagna,131,245,5 script The diligent second son 4_CAT_3COLOR,{
.@cost = 30;
.@item_id = 28418 + .@s;
}
mes "Will you exchange it for " + .@cost + " <ITEM>Doram Token<INFO>25142</INFO></ITEM>?";
mes "Will you exchange it for " + .@cost + " " + mesitemlink( 25142, false ) + "?";
next;
if (select( "Exchange", "Cancel" ) == 2) {
mes "[Yota Chara]";
@@ -2164,7 +2164,7 @@ lasagna,131,250,5 script The brave third#weapon 4_DR_M_02,{
emotion ET_SPARK;
mes "[Jogi Chara]";
mes "Whoa, a new weapon! New power!";
mes "What are you going to give me? Do you have a lot of weapons? Can I search into them? Will you exchange it for <ITEM>Doram Token <INFO>25142</INFO></ITEM>?";
mes "What are you going to give me? Do you have a lot of weapons? Can I search into them? Will you exchange it for " + mesitemlink( 25142, false ) + "?";
next;
if (select( "Search", "Cancel" ) == 1) {
setarray .@item_data[0],
@@ -2193,7 +2193,7 @@ lasagna,131,250,5 script The brave third#weapon 4_DR_M_02,{
else {
mes "[Jogi Chara]";
mes "Whoa! This is ^3131FF" + getitemname(.@item_data[.@i]) + "^000000!";
mes "Exchange it for " + .@item_data[.@i+1] + " <ITEM>Doram Token<INFO>25142</INFO></ITEM>! Please? Will you do it, please?";
mes "Exchange it for " + .@item_data[.@i+1] + " " + mesitemlink( 25142, false ) + "! Please? Will you do it, please?";
next;
if (select( "Exchange", "Quit exchanging" ) == 2) {
mes "[Jogi Chara]";
@@ -2253,7 +2253,7 @@ lasagna,140,250,3 script The skittish fourth#wea 4_DR_F_01,{
}
mes "[Dandi Chara]";
mes "Do you mind if I search you to see the items you have with you?";
mes "If I find an item suitable for Jogi, I'll pay <INFO>25142</INFO><ITEM>Doram Token </ITEM>....";
mes "If I find an item suitable for Jogi, I'll pay " + mesitemlink( 25142, false ) + "....";
next;
if (select( "Search", "Cancel" ) == 1) {
setarray .@item_data[0], // keep the order
@@ -2298,7 +2298,7 @@ lasagna,140,250,3 script The skittish fourth#wea 4_DR_F_01,{
else {
mes "[Dandi Chara]";
mes "Whoa, this must be ^3131FF" + getitemname(.@item_data[.@i]) + "^000000!!";
mes "Don't you want to exchange this with " + .@item_data[.@i+1] + " <ITEM>Doram Token<INFO>25142</INFO></ITEM>?";
mes "Don't you want to exchange this with " + .@item_data[.@i+1] + " " + mesitemlink( 25142, false ) + "?";
next;
if (select( "Exchange", "Quit exchanging" ) == 2) {
mes "[Dandi Chara]";
@@ -2388,8 +2388,8 @@ lasagna,140,245,3 script The sensitive-minded ela 4_CAT_SAILOR3,{
mes "...I knew this was going to happen again. Worse, this one must require a lot more time to polish!";
next;
mes "[Goma Chara]";
mes "Hey, if you give me " + .@needCoin + "<ITEM>Doram Token<INFO>25142</INFO></ITEM>, I'll fix this for you.";
mes "<ITEM>This should produce the <INFO>" + .@next_charm_ID + "</INFO></ITEM> function, I guess. How do you like it?";
mes "Hey, if you give me " + .@needCoin + " " + mesitemlink( 25142, false ) + ", I'll fix this for you.";
mes "This should produce " + mesitemlink( .@next_charm_ID, false ) + ", I guess. How do you like it?";
next;
if (select( "Upgrade", "Cancel" ) == 2) {
mes "[Goma Chara]";

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,881 @@
//===== rAthena Script =======================================
//= Friday Memorial Dungeon
//===== Description: =========================================
//= [Walkthrough Conversion]
//= Friday Memorial Dungeon
//===== Changelogs: ==========================================
//= 1.0 Initial release [Everade]
//= 1.1 Clean-up [Capuche]
//============================================================
gef_tower,57,170,3 script Marry Jay 4_F_JOB_BLACKSMITH,{
if (BaseLevel < 130) {
mes "[Marry Jay]";
mes "Your base level is too low, come back when you hit level 130.";
close;
}
mes "^ff0000If you do any monster processing, such as monster taming within the dungeon, it won't count towards your progress. Please take note.^000000";
next;
.@day = gettime(DT_DAYOFWEEK);
if (.@day != FRIDAY) {
mes "[Marry Jay]";
mes "Oh, a curious onlooker? I'm Marry Jay, the person in charge of Fridays among the days of the week.";
next;
select( "When is the opening time?" );
mes "[Marry Jay]";
mes "The dungeon will be open during:";
mes "^0000FFFriday 00:00 ~ Friday 23:59^000000";
next;
mes "[Marry Jay]";
mes "I hope to see you when Friday arrives~";
close;
}
.@md_name$ = "Friday Dungeon";
switch(checkquest(12379,PLAYTIME)) {
case -1:
break;
case 0:
case 1:
mes "[Marry Jay]";
mes "Sorry, but the entry period to the " + .@md_name$ + " has expired.";
mes "Take a rest while waiting for the dungeon to be available again.";
close;
case 2:
erasequest 12379;
mes "[Marry Jay]";
mes "The cooldown has expired.";
mes "You may re-enter the Memorial Dungeon.";
close;
}
mes "[Marry Jay]";
mes "You came just in time.";
mes "The memorial dungeon is just ready to be opened.";
mes "Would you like to enter now?";
next;
if (is_party_leader() == true)
.@menu$ = "Prepare Friday Memorial";
switch( select( .@menu$, "Enter Friday Memorial", "Cancel" ) ) {
case 1:
instance_create(.@md_name$);
mes "[Marry Jay]";
mes "The Memorial Dungeon has been created.";
mes "You may now enter.";
close;
case 2:
switch( instance_enter(.@md_name$) ) {
case IE_NOMEMBER:
if (is_party_leader() == true)
end;
mes "Only party members can enter this Memorial dungeon.";
close;
case IE_NOINSTANCE:
if (is_party_leader() == true) {
mes "There is no Memorial Dungeon registered.";
close;
}
mes "The Friday Memorial Dungeon does not exist.";
mes "Your party leader has not yet created the Memorial dungeon.";
close;
case IE_OTHER:
mes "An unknown error occurred.";
close;
case IE_OK:
mes "[Marry Jay]";
mes "Off you go!";
mapannounce "gef_tower", "" + strcharinfo(0) + " of the party, " + getpartyname( getcharid(1) ) + ", is entering the " + .@md_name$ + ".", bc_map, 0xFF99;
if (isbegin_quest(12379) < 1)
setquest 12379;
end;
}
end;
case 3:
mes "[Marry Jay]";
mes "You have not prepared?";
mes "Can't really help it I guess";
close;
}
end;
}
//Instance
1@md_gef,185,81 monster Shining Plant 1083,1,1800000,900000
1@md_gef,110,129,6 script Marry Jay#0_1 4_F_JOB_BLACKSMITH,{
if (is_party_leader() == false)
end;
mes "[Marry Jay]";
mes "Before we start setting up the environment here, we'll give you the chance to choose an appropriate difficulty level.";
mes "I could make my own choice, but each person handles it differently based on their abilities.";
next;
switch( select( "Cancel", "LV130 ~ 199", "LV200 + " ) ) {
case 1:
close;
case 2:
//MinLevel, Lich Lord, Nightmare, Jakk, Ghoul, Drainliar
'hard = 0;
setarray 'mob[0],130,3658,3660,3662,3664,3666;
break;
case 3:
if (BaseLevel < 200) {
mes "[Marry Jay]";
mes "You can't choose this difficulty, because your base level is below 200.";
close;
}
'hard = 1;
setarray 'mob[0],200,3659,3661,3663,3665,3667;
break;
}
if (BaseLevel < 'mob[0]) {
mes "[Marry Jay]";
mes "Your base level is too low to select this, you need to be level " + 'mob[0] + " or above.";
close;
}
close2;
npctalk "Now, this place is about to become a hunting ground. I'll get out and close the front door.";
sleep 4000;
npctalk "Good Luck~";
sleep 3000;
if ('step == 0) {
'step = 1;
donpcevent instance_npcname("md_gef_mobs_spawn") + "::OnStart";
disablenpc();
enablenpc instance_npcname("The Stranger#cadaver");
enablenpc instance_npcname("Bizzare Sculpture#boss");
}
end;
}
1@md_gef,1,1,6 script md_gef_mobs_spawn -1,{
end;
OnStart:
.@npc_name$ = instance_npcname("md_gef_mobs_spawn");
monster 'map_md_gef$,0,0,"Nightmare",'mob[2],20, .@npc_name$ + "::OnNightmareDead";
monster 'map_md_gef$,0,0,"Jakk",'mob[3],30, .@npc_name$ + "::OnJakkDead";
monster 'map_md_gef$,0,0,"Ghoul",'mob[4],30, .@npc_name$ + "::OnGhoulDead";
monster 'map_md_gef$,0,0,"Drainliar",'mob[5],20, .@npc_name$ + "::OnDrainliarDead";
end;
OnNightmareDead:
callsub( S_Mob, 'mob[2], "Nightmare", "OnNightmareDead" );
OnJakkDead:
callsub( S_Mob, 'mob[3], "Jakk", "OnJakkDead" );
OnGhoulDead:
callsub( S_Mob, 'mob[4], "Ghoul", "OnGhoulDead" );
OnDrainliarDead:
callsub( S_Mob, 'mob[5], "Drainliar", "OnDrainliarDead" );
S_Mob:
'count++;
if (('count % 100) == 0) {
'rand_chest++;
if ('rand_chest > 4)
'rand_chest = 1;
// Treasure Chest Spawn
donpcevent instance_npcname("#fd_box" + 'rand_chest) + "::OnStart";
}
sleep 10000;
monster 'map_md_gef$,0,0, getarg(1), getarg(0),1, instance_npcname("md_gef_mobs_spawn") + "::" + getarg(2);
end;
OnInstanceInit:
'step = 0;
'hard = 0;
'count = 0;
'rand_chest = 0;
'freestones = 0;
'boss_actv = 0;
'map_md_gef$ = instance_mapname("1@md_gef");
end;
}
1@md_gef,110,129,6 script(DISABLED) Mary Juj#0_2 4_F_JOB_BLACKSMITH,{
npctalk "Hello";
end;
}
1@md_gef,183,222,5 script(DISABLED) The Stranger#cadaver 4_TOWER_11,{
mes "It is a stranger's corpse.";
mes "Perhaps he died while wandering in this place on the search for treasure.";
next;
if (select( "Calm down", "Investigate the body" ) == 1) {
mes "You respect the dead and decided to leave the body alone.";
close;
}
mes "Looking at a hastily scribbled note in his pocket, perhaps the adventurer's name was Walter.";
next;
mes "[Adventurer's Log]";
mes "My name is Walter. For the adventurers who will visit this place in the future, I'm leaving this so that you don't make the same mistake again.";
next;
mes "[Adventurer's Log]";
mes "On the first day, I curiously put my hand on the slab of a strange Sculpture nearby.";
mes "...and I awokened something that I should not have.";
next;
mes "[Adventurer's Log]";
mes "Right now the revived ancient king is wandering in front of me.";
mes "Perhaps he has no memories of his previous life.";
mes "One thing is certain, he will kill me.";
next;
mes "[Adventurer's Log]";
mes "To the adventurers who will visit this place in the future, I hope you do not make the same mistake as me.";
mes "If you do see a suspicious slab, do not show any interest and pass by it.";
next;
mes "[Adventurer's Log]";
mes "Again, never touch the slab. Whatever temptation you may have.";
if ('freestones != 0)
close;
next;
mes "Several craft stones fall from his body. They were probably collected while exploring this place.";
close2;
if ('freestones == 0) {
'freestones = 1;
if ('hard == 1)
.@num = rand(7,9);
else
.@num = rand(5,7);
for ( .@i = 0; .@i < .@num; ++.@i )
makeitem 25235,1, 'map_md_gef$, rand(181,183), rand(221,224);
}
end;
}
1@md_gef,199,73,0 script(DISABLED) Bizzare Sculpture#boss CLEAR_NPC,{
if ('count < 100) {
mes "It is a strange sculpture with a lot of dust piled up. I don't see anything suspicious.";
close;
}
if ('boss_actv >= 1) {
mes "Craft Stones have been melted by a powerful force into the sockets.";
mes "Seems like the sockets can't be used for a while.";
close;
}
mes "At some point, the accumulated dust scatters, and 10 hollow holes are visible on the slab under the sculpture.";
next;
mes "Each of the 10 hollow sockets seem to perfectly fit a craft stone.";
next;
if (select( "Ignore", "Try inserting craft stones" ) == 1)
end;
if (countitem(25235) < 10) {
mes "Craft Stones have been melted by a powerful force into the sockets.";
mes "Seems like the sockets can't be used for a while.";
close;
}
mes "When you insert a craft stone into a hole, it emits a bright light and melts.";
next;
delitem 25235,10;
specialeffect EF_ANGELUS;
if (rand(1,10) == 10) {
mes "Something seems to have changed in the air around me.";
instance_announce 0, "Lord of the Dead: Who Awakened Me? I will meet you in person and ask you why.", bc_map, "0xFFFF00";
if ('boss_actv == 0) {
'boss_actv = 1;
monster 'map_md_gef$,210,110,"Lich King",'mob[1],1;
}
}
else {
mes "But nothing else happened.";
close2;
if ('boss_actv == 0) {
disablenpc(); // Disable NPC for 5 minutes when MVP didn't spawn.
initnpctimer;
}
end;
}
close;
OnTimer300000:
stopnpctimer;
enablenpc();
end;
}
// Treasure Chest Reward
1@md_gef,212,212,3 script(DISABLED) #fd_box1 4_TREASURE_BOX,{
specialeffect EF_COIN;
disablenpc();
stopnpctimer;
sleep 500;
if ('hard == 1)
.@num = rand(7,9);
else
.@num = rand(5,7);
.@npc_name$ = strnpcinfo(2);
if (.@npc_name$ == "fd_box1") {
for ( .@i = 0; .@i < .@num; ++.@i )
makeitem 25235,1, 'map_md_gef$, rand(210,214), rand(210,214);
}
if (.@npc_name$ == "fd_box2") {
for ( .@i = 0; .@i < .@num; ++.@i )
makeitem 25235,1, 'map_md_gef$, rand(188,192), rand(54,58);
}
if (.@npc_name$ == "fd_box3") {
for ( .@i = 0; .@i < .@num; ++.@i )
makeitem 25235,1, 'map_md_gef$, rand(47,51), rand(55,59);
}
if (.@npc_name$ == "fd_box4") {
for ( .@i = 0; .@i < .@num; ++.@i )
makeitem 25235,1, 'map_md_gef$, rand(42,46), rand(209,213);
}
end;
OnStart:
enablenpc();
instance_announce 0, "A treasure chest appeared somewhere in the dungeon. It'll disappear after a while, so let's find it.", bc_map, "0xff5500";
initnpctimer;
end;
OnTimer180000: //3min before chest disappears
disablenpc();
stopnpctimer;
end;
}
1@md_gef,190,56,3 duplicate(#fd_box1) #fd_box2 4_TREASURE_BOX
1@md_gef,49,57,3 duplicate(#fd_box1) #fd_box3 4_TREASURE_BOX
1@md_gef,44,211,3 duplicate(#fd_box1) #fd_box4 4_TREASURE_BOX
//Merchant
gef_tower,57,167,3 script Amateur Collector#pa0829 1_F_01,{
disable_items;
function F_equip_menu;
function F_enchant;
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of objects. Clear your inventory.";
close;
}
if (MaxWeight - Weight < 10000) {
mes "Can't continue because you have too many heavy objects. Reduce your total weight by clearing your inventory.";
close;
}
mes "[Amateur Collector]";
mes "If you bring me a " + mesitemlink(25235, false) + ", I can enchant a wonderful effect on your accessory!";
next;
switch( select( "What can you do with the Crafting Stone?", "Accessory Enchantment", "Reset Enchant" ) ) {
case 1:
mes "[Amateur Collector]";
mes "I trade expensive stones from the dungeon in exchange for my craftsmanship. I'm still a beginner, but my skills are passable.";
mes "Please take care of me.";
next;
if (select( "I've heard this before.", "I'm listening." ) == 1) {
mes "[Amateur Collector]";
mes "Is that so?";
close;
}
mes "[Amateur Collector]";
mes "By using the Craft Stone, I can enchant one of your accessories with abilities.";
next;
mes "[Amateur Collector]";
mes "I need 10 x " + mesitemlink(25235, false) + " and 100,000 Zeny.";
mes "There is no failure in the enchantment process.";
next;
mes "[Amateur Collector]";
mes "However ^0000FFif the accessory has a random option, the random option will be removed after enchantment.^000000";
next;
select( "Anything else?" );
mes "[Amateur Collector]";
mes "Cards slotted to the accessory will remain after the enchantement.";
next;
mes "[Amateur Collector]";
mes "A reset is possible, but I can't say that I'm experienced.";
mes "My success rate is:";
mes "Royal Ring: 80%";
mes "Other Accessory: 20%";
next;
mes "[Amateur Collector]";
mes "^0000FFIf the accessory has a random option, the random option will be removed after initialization.^000000";
close;
case 2:
.@type = 1;
.@type_name$ = "enchant";
break;
case 3:
.@type = 2;
.@type_name$ = "reset";
break;
}
.@slot = F_equip_menu();
.@equip_id = getequipid(.@slot);
setarray .@equip_card[0], getequipcardid(.@slot,0), getequipcardid(.@slot,1), getequipcardid(.@slot,2), getequipcardid(.@slot,3);
copyarray .@card[0], .@equip_card[0], 4;
switch( .@equip_id ) {
case 0:
mes "[Amateur Collector]";
mes "Please equip your accessory.";
close;
case 28483:
case 2601:
case 2602:
case 2603:
case 2605:
case 2607:
case 2608:
case 2609:
case 2610:
case 2611:
case 2612:
case 2613:
case 2614:
case 2615:
case 2616:
case 2617:
case 2618:
case 2619:
case 2620:
case 2621:
case 2622:
case 2623:
case 2625:
case 2626:
case 2627:
case 2628:
case 2636:
case 2637:
case 2638:
case 2639:
case 2640:
case 2641:
case 2645:
case 2648:
case 2649:
case 2650:
case 2651:
case 2652:
case 2653:
case 2654:
case 2655:
case 2656:
case 2658:
case 2663:
case 2664:
case 2665:
case 2666:
case 2667:
case 2671:
case 2680:
case 2692:
case 2700:
case 2701:
case 2702:
case 2703:
case 2712:
case 2714:
case 2715:
case 2716:
case 2718:
case 2719:
case 2720:
case 2721:
case 2722:
case 2723:
case 2724:
case 2725:
case 2726:
case 2727:
case 2728:
case 2729:
case 2730:
case 2731:
case 2732:
case 2736:
case 2737:
case 2743:
case 2744:
case 2745:
case 2746:
case 2747:
case 2748:
case 2749:
case 2766:
case 2767:
case 2768:
case 2769:
case 2770:
case 2771:
case 2772:
case 2773:
case 2774:
case 2777:
case 2778:
case 2779:
case 2780:
case 2781:
case 2783:
case 2784:
case 2787:
case 2788:
case 2789:
case 2790:
case 2794:
case 2795:
case 2800:
case 2801:
case 2802:
case 2803:
case 2804:
case 2805:
case 2807:
case 2808:
case 2809:
case 2810:
case 2826:
case 2827:
case 2843:
case 2853:
case 2854:
case 2881:
case 2956:
break;
default:
mes "[Amateur Collector]";
mes "I cannot " + .@type_name$ + " this " + mesitemlink(.@equip_id, false) + " accessory.";
close;
}
if (.@type == 1) { // enchant
switch( .@equip_id ) {
case 28483: //Royal Ring Enchantment
if (.@equip_card[2] != 0) {
mes "[Amateur Collector]";
mes "The " + mesitemlink(.@equip_id, false) + " already has maximum enchantment.";
mes "I cannot work on this any further.";
close;
}
.@pos = .@equip_card[3] != 0 ? 2 : 3;
mes "[Amateur Collector]";
mes "Please select an enchantment type~";
next;
switch( select( "Physical", "Magical", "Ranged" ) ) {
case 1:
if (.@pos == 2)
.@equip_card[2] = F_enchant(2);
else
.@equip_card[3] = F_enchant(3);
break;
case 2:
if (.@pos == 2)
.@equip_card[2] = F_enchant(4);
else
.@equip_card[3] = F_enchant(5);
break;
case 3:
if (.@pos == 2)
.@equip_card[2] = F_enchant(6);
else
.@equip_card[3] = F_enchant(7);
break;
}
if (.@pos == 2) {
mes "[Amateur Collector]";
mes "Are you sure to enhance the " + mesitemlink(.@equip_id, false) + "?";
mes "^0000FFThere is a no chance of failure^000000.";
next;
if (select( "Yes, please proceed", "Cancel" ) == 2)
end;
}
if (countitem(25235) < 10) {
mes "[Amateur Collector]";
mes "Please bring me 10 x " + mesitemlink(25235, false) + ".";
close;
}
if (Zeny < 100000) {
mes "[Amateur Collector]";
mes "I need 100,000 zeny!";
close;
}
delitem 25235,10; //Catalyst
Zeny -= 100000;
// anti-hack
if (callfunc("F_IsEquipIDHack", .@slot, .@equip_id) || callfunc("F_IsEquipCardHack", .@slot, .@card[0], .@card[1], .@card[2], .@card[3]))
end;
delequip .@slot;
specialeffect2 EF_REPAIRWEAPON;
mes "[Amateur Collector]";
mes "The " + mesitemlink(.@equip_id, false) + " has been enchanted!!";
getitem2 .@equip_id,1,1,0,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];
close;
default: // Normal Accessory Enchantment
if (.@equip_card[3] != 0) {
mes "[Amateur Collector]";
mes "The " + mesitemlink(.@equip_id, false) + " already has an enchant.";
mes "I cannot work on this any further.";
close;
}
mes "[Amateur Collector]";
mes "Are you sure you want to enhance the " + mesitemlink(.@equip_id, false) + "?";
mes "^0000FFThere is a no chance of failure^000000.";
next;
if (select( "Yes, please proceed", "Cancel") == 2)
end;
if (countitem(25235) < 10) {
mes "[Amateur Collector]";
mes "Please bring me 10 x " + mesitemlink(25235, false) + ".";
close;
}
if (Zeny < 100000) {
mes "[Amateur Collector]";
mes "I need 100,000 zeny!";
close;
}
delitem 25235,10; //Catalyst
Zeny -= 100000;
// anti-hack
if (callfunc("F_IsEquipIDHack", .@slot, .@equip_id) || callfunc("F_IsEquipCardHack", .@slot, .@card[0], .@card[1], .@card[2], .@card[3]))
end;
delequip .@slot;
.@enchant = F_enchant(1);
specialeffect2 EF_REPAIRWEAPON;
mes "[Amateur Collector]";
mes "The " + mesitemlink(.@equip_id, false) + " has been enchanted with " + mesitemlink(.@enchant, false) + ".";
getitem2 .@equip_id,1,1,0,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@enchant;
close;
}
end;
}
else { // reset
if (.@equip_id == 28483) {
.@pos = 2;
.@success = 80; // success royal
} else {
.@pos = 3;
.@success = 20; // success normal
}
if (.@equip_card[.@pos] == 0) {
mes "[Amateur Collector]";
mes "The " + mesitemlink(.@equip_id, false) + " is not at its maximum enchantment.";
mes "I cannot reset this accessory.";
close;
}
mes "[Amateur Collector]";
mes "All enchanted effects will be removed from the " + mesitemlink(.@equip_id, false) + "?";
mes "^FF0000There is a " + .@success + "% chance of success. The accessory will be destroyed if the reset fails!^000000";
next;
if (select( "I'll be back later", "Please proceed") == 1)
end;
if (countitem(25235) < 10) {
mes "[Amateur Collector]";
mes "Please bring me 10 x " + mesitemlink(25235, false) + "";
close;
}
if (Zeny < 100000) {
mes "[Amateur Collector]";
mes "I need 100,000 zeny!";
close;
}
delitem 25235,10; //Catalyst
Zeny -= 100000;
// anti-hack
if (callfunc("F_IsEquipIDHack", .@slot, .@equip_id) || callfunc("F_IsEquipCardHack", .@slot, .@card[0], .@card[1], .@card[2], .@card[3]))
end;
delequip .@slot;
if (rand(100) > .@success) {
specialeffect2 EF_SUI_EXPLOSION;
mes "[Amateur Collector]";
mes "Darn it...";
mes "I have failed and the accessory has been destroyed. I'm so sorry.";
close;
}
specialeffect2 EF_REPAIRWEAPON;
mes "[Amateur Collector]";
mes "I have succeeded.";
mes "The " + mesitemlink(.@equip_id, false) + " has been initialized.";
getitem2 .@equip_id,1,1,0,0,.@equip_card[0],.@equip_card[1],0,0;
close;
}
end;
function F_equip_menu {
.@l$ = getitemname(getequipid(EQI_ACC_L));
.@r$ = getitemname(getequipid(EQI_ACC_R));
.@acc_l$ = .@l$ == "null" ? "" : "Left Acc - " + .@l$;
.@acc_r$ = .@r$ == "null" ? "" : "Right Acc - " + .@r$;
switch( select( .@acc_l$, .@acc_r$ ) ) {
case 1:
.@slot = EQI_ACC_L;
break;
case 2:
.@slot = EQI_ACC_R;
break;
}
return .@slot;
}
function F_enchant {
.@type = getarg(0);
switch(.@type) {
case 1: //Normal Enchant
.@i = rand(920);
if (.@i < 30) .@enchant = 4701; //STR+2
else if (.@i < 60) .@enchant = 4702; //STR+3
else if (.@i < 90) .@enchant = 4703; //STR+4
else if (.@i < 120) .@enchant = 4711; //INT+2
else if (.@i < 150) .@enchant = 4712; //INT+3
else if (.@i < 180) .@enchant = 4713; //INT+4
else if (.@i < 210) .@enchant = 4721; //DEX+2
else if (.@i < 240) .@enchant = 4722; //DEX+3
else if (.@i < 270) .@enchant = 4723; //DEX+4
else if (.@i < 300) .@enchant = 4731; //AGI+2
else if (.@i < 330) .@enchant = 4732; //AGI+3
else if (.@i < 360) .@enchant = 4733; //AGI+4
else if (.@i < 390) .@enchant = 4741; //VIT+2
else if (.@i < 420) .@enchant = 4742; //VIT+3
else if (.@i < 450) .@enchant = 4743; //VIT+4
else if (.@i < 480) .@enchant = 4796; //HP+200
else if (.@i < 510) .@enchant = 4798; //HP+400
else if (.@i < 540) .@enchant = 4792; //DEF+6
else if (.@i < 570) .@enchant = 4794; //DEF+12
else if (.@i < 600) .@enchant = 4800; //SP+50
else if (.@i < 630) .@enchant = 4801; //SP+100
else if (.@i < 660) .@enchant = 4786; //MDEF+2
else if (.@i < 690) .@enchant = 4787; //MDEF+4
else if (.@i < 710) .@enchant = 4861; //MHP+1%
else if (.@i < 730) .@enchant = 4862; //MHP+2%
else if (.@i < 750) .@enchant = 4929; //MSP+1%
else if (.@i < 770) .@enchant = 4882; //ATK+1%
else if (.@i < 790) .@enchant = 4883; //MATK+1%
else if (.@i < 800) .@enchant = 4817; //Sharp2
else if (.@i < 810) .@enchant = 4816; //Sharp3
else if (.@i < 815) .@enchant = 4843; //Sharp4
else if (.@i < 825) .@enchant = 29047; //Fatal
else if (.@i < 835) .@enchant = 4863; //Fatal1Lv
else if (.@i < 840) .@enchant = 4864; //Fatal2Lv
else if (.@i < 850) .@enchant = 4832; //Expert Archer1
else if (.@i < 860) .@enchant = 4813; //Spell3
else if (.@i < 870) .@enchant = 4812; //Spell4
else if (.@i < 875) .@enchant = 4826; //Spell5
else if (.@i < 885) .@enchant = 4805; //Archbishop1Lv
else if (.@i < 895) .@enchant = 4850; //Heal Amount2
else if (.@i < 905) .@enchant = 4809; //Fighting Spirit3
else if (.@i < 915) .@enchant = 4808; //Fighting Spirit4
else .@enchant = 4820; //Fighting Spirit5
break;
case 2: //Royal Physical Slot 3
.@i = rand(225);
if (.@i < 30) .@enchant = 4809; //Fighting Spirit3
else if (.@i < 60) .@enchant = 4808; //Fighting Spirit4
else if (.@i < 70) .@enchant = 4820; //Fighting Spirit5
else if (.@i < 80) .@enchant = 4821; //Fighting Spirit6
else if (.@i < 85) .@enchant = 4822; //Fighting Spirit7
else if (.@i < 115) .@enchant = 4818; //Sharp1
else if (.@i < 145) .@enchant = 4817; //Sharp2
else if (.@i < 155) .@enchant = 4816; //Sharp3
else if (.@i < 165) .@enchant = 4843; //Sharp4
else if (.@i < 170) .@enchant = 4844; //Sharp5
else if (.@i < 200) .@enchant = 4819; //Atk1
else if (.@i < 210) .@enchant = 4766; //ATK+2%
else if (.@i < 215) .@enchant = 4767; //ATK+3%
else if (.@i < 220) .@enchant = 4807; //Atk Speed1
else .@enchant = 4842; //Atk Speed2
break;
case 3: //Royal Physical Slot 4
.@i = rand(375);
if (.@i < 50) .@enchant = 4702; //STR+3
else if (.@i < 100) .@enchant = 4703; //STR+4
else if (.@i < 110) .@enchant = 4704; //STR+5
else if (.@i < 120) .@enchant = 4705; //STR+6
else if (.@i < 125) .@enchant = 4706; //STR+7
else if (.@i < 175) .@enchant = 4732; //AGI+3
else if (.@i < 225) .@enchant = 4733; //AGI+4
else if (.@i < 235) .@enchant = 4734; //AGI+5
else if (.@i < 245) .@enchant = 4735; //AGI+6
else if (.@i < 250) .@enchant = 4736; //AGI+7
else if (.@i < 300) .@enchant = 4742; //VIT+3
else if (.@i < 350) .@enchant = 4743; //VIT+4
else if (.@i < 360) .@enchant = 4744; //VIT+5
else if (.@i < 370) .@enchant = 4745; //VIT+6
else .@enchant = 4746; //VIT+7
break;
case 4: //Royal Magical Slot 3
.@i = rand(230);
if (.@i < 30) .@enchant = 4813; //Spell3
else if (.@i < 60) .@enchant = 4812; //Spell4
else if (.@i < 70) .@enchant = 4826; //Spell5
else if (.@i < 80) .@enchant = 4827; //Spell6
else if (.@i < 85) .@enchant = 4828; //Spell7
else if (.@i < 115) .@enchant = 4929; //MSP+1%
else if (.@i < 145) .@enchant = 4805; //Archbishop1Lv
else if (.@i < 155) .@enchant = 4850; //Archbishop2Lv
else if (.@i < 165) .@enchant = 4851; //Archbishop3Lv
else if (.@i < 170) .@enchant = 4852; //Archbishop4Lv
else if (.@i < 200) .@enchant = 4883; //MATK + 1%
else if (.@i < 210) .@enchant = 4896; //MATK + 2%
else if (.@i < 215) .@enchant = 4897; //MATK + 3%
else if (.@i < 225) .@enchant = 4760; //MATK 1Lv
else .@enchant = 4761; //MATK 2Lv
break;
case 5: //Royal Magical Slot 4
.@i = rand(375);
if (.@i < 50) .@enchant = 4712; //INT+3
else if (.@i < 100) .@enchant = 4713; //INT+4
else if (.@i < 110) .@enchant = 4714; //INT+5
else if (.@i < 120) .@enchant = 4715; //INT+6
else if (.@i < 125) .@enchant = 4716; //INT+7
else if (.@i < 175) .@enchant = 4722; //DEX+3
else if (.@i < 225) .@enchant = 4723; //DEX+4
else if (.@i < 235) .@enchant = 4724; //DEX+5
else if (.@i < 245) .@enchant = 4725; //DEX+6
else if (.@i < 250) .@enchant = 4726; //DEX+7
else if (.@i < 300) .@enchant = 4742; //VIT+3
else if (.@i < 350) .@enchant = 4743; //VIT+4
else if (.@i < 360) .@enchant = 4744; //VIT+5
else if (.@i < 370) .@enchant = 4745; //VIT+6
else .@enchant = 4746; //VIT+7
break;
case 6: //Royal Ranged Slot 3
.@i = rand(225);
if (.@i < 30) .@enchant = 29047; //Fatal
else if (.@i < 60) .@enchant = 4863; //Fatal1Lv
else if (.@i < 70) .@enchant = 4864; //Fatal2Lv
else if (.@i < 80) .@enchant = 4865; //Fatal3Lv
else if (.@i < 85) .@enchant = 4866; //Fatal4Lv
else if (.@i < 115) .@enchant = 4818; //Sharp1
else if (.@i < 145) .@enchant = 4817; //Sharp2
else if (.@i < 155) .@enchant = 4816; //Sharp3
else if (.@i < 165) .@enchant = 4843; //Sharp4
else if (.@i < 170) .@enchant = 4844; //Sharp5
else if (.@i < 200) .@enchant = 4832; //Expert Archer1
else if (.@i < 210) .@enchant = 4833; //Expert Archer2
else if (.@i < 215) .@enchant = 4834; //Expert Archer3
else if (.@i < 220) .@enchant = 4807; //Atk Speed1
else .@enchant = 4842; //Atk Speed2
break;
case 7: //Royal Ranged Slot 4
.@i = rand(375);
if (.@i < 50) .@enchant = 4732; //AGI+3
else if (.@i < 100) .@enchant = 4733; //AGI+4
else if (.@i < 110) .@enchant = 4734; //AGI+5
else if (.@i < 120) .@enchant = 4735; //AGI+6
else if (.@i < 125) .@enchant = 4736; //AGI+7
else if (.@i < 175) .@enchant = 4722; //DEX+3
else if (.@i < 225) .@enchant = 4723; //DEX+4
else if (.@i < 235) .@enchant = 4724; //DEX+5
else if (.@i < 245) .@enchant = 4725; //DEX+6
else if (.@i < 250) .@enchant = 4726; //DEX+7
else if (.@i < 300) .@enchant = 4752; //LUK+3
else if (.@i < 350) .@enchant = 4753; //LUK+4
else if (.@i < 360) .@enchant = 4754; //LUK+5
else if (.@i < 370) .@enchant = 4755; //LUK+6
else .@enchant = 4756; //LUK+7
break;
}
return .@enchant;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -99,7 +99,7 @@ mal_in01,172,28,2 script Albo#mal 561,{
case 2: callsub L_GiveQuest,.@i,12262,12272,"Deep Sea Sword Fish";
case 3: callsub L_GiveQuest,.@i,12263,12272,"Deep Sea Strouf";
case 4: callsub L_GiveQuest,.@i,12264,12272,"Deep Sea Anolian";
case 5: callsub L_GiveQuest,.@i,12265,12272,"Deep Sea Obeanue";
case 5: callsub L_GiveQuest,.@i,12265,12272,"Deep Sea Obeaune";
case 6: callsub L_GiveQuest,.@i,12266,12272,"Deep Sea Kapha";
}
case 3: // General Culvert Weekly Service

View File

@@ -0,0 +1,923 @@
//===== rAthena Script =======================================
//= Twilight Garden
//===== Description: =========================================
//= [Walkthrough Conversion]
//= Episode 17.2 Twilight Garden
//= Episode 17.2 Hey Sweety
//= Note:
// - NPC_LOCKON_LASER skill is currently no implemented.
//===== Changelog: ===========================================
//= 1.0 Initial release [crazyarashi]
//= 1.1 Optimizations and cleanup [Everade]
//= 1.2 Cleanup [Capuche]
//============================================================
1@bamn,1,1,0 script #twilight_garden_control -1,{
end;
OnInstanceInit:
'twilight_story = 0;
'sweety = 0;
'map_bamn$ = instance_mapname("1@bamn");
'map_bamq$ = instance_mapname("1@bamq");
// npcs from story
//----------------------------
// npcs on 1@bamn
// disablenpc instance_npcname("Repeater#wifi03"); // (not disabled)
// disablenpc instance_npcname("Repeater#wifi02"); // (not disabled)
// disablenpc instance_npcname("Repeater#wifi01"); // (not disabled)
//----------------------------
// Daily: Hey! Sweety
if (instance_live_info(ILI_NAME) == "Hey! Sweety")
disablenpc instance_npcname("#bamn_evt01"); // story starter npc
else
disablenpc instance_npcname("#sweety_evt01"); // daily starter npc
end;
}
// Story
1@bamn,100,320,0 script #bamn_evt01 HIDDEN_WARP_NPC,2,2,{
end;
OnTouch:
if (!is_party_leader())
end;
disablenpc();
enablenpc instance_npcname("Est#est01");
end;
}
1@bamn,96,318,5 script(DISABLED) Est#est01 4_F_ESTLOVELOY,{
if (!is_party_leader())
end;
if ('twilight_story == 0) {
'twilight_story = 1;
npctalk "Est : It's dark and quiet. If you want to execute the plan, now's the perfect time. Right?";
sleep 2000;
npctalk "Est : Elena said she'd join us later, but there's a good chance she won't able to join.";
sleep 2000;
npctalk "Est : Even so, there's no need to worry. The others are prepared and waiting for the ambush signal.";
sleep 2000;
npctalk "Est : All we have to do is walk around like a patrol and catch them off guard.";
sleep 2000;
npctalk "Est : Go along the road to the main building of the mansion. I'll lurk behind you.";
sleep 2000;
npctalk "Est : Don't look around too much, and pretend you're not vigilant, got it?";
sleep 2000;
npctalk "Est : Now, let's go.";
for ( .@i = 1; .@i < 6; ++.@i )
enablenpc instance_npcname("Heart Hunter#md_hh0" + .@i);
end;
}
if ('twilight_story == 1)
end;
if ('twilight_story == 2) {
cutin "ep162_est01",2;
mes "[Est]";
mes "They must have been waiting too.";
mes "Let's do this more quietly.";
close3;
}
end;
}
1@bamn,119,299,3 script(DISABLED) Heart Hunter#md_hh01 G_EP17_2_HEART_HUNTER,3,3,{
end;
OnTouch_:
if (!is_party_leader())
end;
if ('twilight_story == 1) {
'twilight_story = 2;
npctalk "Quietly surrender or return back to where you came from.";
sleep 2000;
npctalk "Well, that doesn't mean we'll let you go back.";
sleep 1000;
for ( .@i = 1; .@i < 6; ++.@i )
disablenpc instance_npcname("Heart Hunter#md_hh0" + .@i);
donpcevent instance_npcname("twilight_story_mob_1") + "::OnStart";
}
end;
}
1@bamn,119,305,3 duplicate(dummy_disabled_npc) Heart Hunter#md_hh02 G_EP17_2_HEART_HUNTER
1@bamn,119,302,3 duplicate(dummy_disabled_npc) Heart Hunter#md_hh03 G_EP17_2_HEART_HUNTER
1@bamn,119,296,3 duplicate(dummy_disabled_npc) Heart Hunter#md_hh04 G_EP17_2_HEART_HUNTER
1@bamn,119,293,3 duplicate(dummy_disabled_npc) Heart Hunter#md_hh05 G_EP17_2_HEART_HUNTER
1@bamn,1,1,0 script twilight_story_mob_1 -1,{
end;
OnStart:
.@event$ = instance_npcname("twilight_story_mob_1") + "::OnMobDead";
monster 'map_bamn$,119,308,"Heart Hunter","G_EP17_2_HEART_HUNTER",1, .@event$;
monster 'map_bamn$,128,308,"Heart Hunter","G_EP17_2_HEART_HUNTER",1, .@event$;
monster 'map_bamn$,121,300,"Heart Hunter","G_EP17_2_HEART_HUNTER",1, .@event$;
monster 'map_bamn$,118,293,"Heart Hunter","G_EP17_2_HEART_HUNTER",1, .@event$;
monster 'map_bamn$,124,294,"Heart Hunter","G_EP17_2_HEART_HUNTER",1, .@event$;
monster 'map_bamn$,130,308,"Heart Hunter","G_EP17_2_HEART_HUNTER",1, .@event$;
end;
OnMobDead:
.@event$ = instance_npcname("twilight_story_mob_1") + "::OnMobDead";
if (mobcount('map_bamn$, .@event$) < 1) {
disablenpc instance_npcname("Est#est01");
enablenpc instance_npcname("Est#est02");
if ('twilight_story == 2)
'twilight_story = 3;
}
end;
}
1@bamn,119,299,5 script(DISABLED) Est#est02 4_F_ESTLOVELOY,{
if (!is_party_leader())
end;
if ('twilight_story == 3) {
cutin "ep162_est01",2;
mes "[Est]";
mes "I don't know if we should set a trap, or give you a chance.";
mes "Activate the tracker that we got from Elyumina.";
next;
cutin "",255;
unittalk getcharid(3), "" + strcharinfo(0) + " : Tracker : According to the intuition of the great Elyumina... Too Doo Too Doo Too~";
sleep2 2000;
unittalk getcharid(3), "" + strcharinfo(0) + " : Tracker : Over there!! Beep!";
navigateto("1@bamn",206,273);
sleep2 2000;
cutin "ep162_est01",2;
mes "[Est]";
mes "That's a loud thing.";
mes "Will you move out first?";
mes "I have a place to go for a second.";
next;
mes "[Est]";
mes "I'll join you soon.";
close2;
if ('twilight_story == 3) {
'twilight_story = 4;
donpcevent instance_npcname("twilight_story_mob_2") + "::OnStart";
}
cutin "",255;
disablenpc();
end;
}
end;
}
1@bamn,1,1,0 script twilight_story_mob_2 -1,{
end;
OnStart:
.@event$ = instance_npcname("twilight_story_mob_2") + "::OnMobDead";
monster 'map_bamn$,208,283,"Heart Hunter","G_EP17_2_HEART_HUNTER",1, .@event$;
monster 'map_bamn$,210,285,"Heart Hunter","G_EP17_2_HEART_HUNTER",1, .@event$;
monster 'map_bamn$,210,282,"Heart Hunter","G_EP17_2_HEART_HUNTER",1, .@event$;
monster 'map_bamn$,213,284,"Heart Hunter","G_EP17_2_HEART_HUNTER",1, .@event$;
monster 'map_bamn$,213,281,"Heart Hunter","G_EP17_2_HEART_HUNTER",1, .@event$;
end;
OnMobDead:
.@event$ = instance_npcname("twilight_story_mob_2") + "::OnMobDead";
if (mobcount('map_bamn$, .@event$) < 1) {
enablenpc instance_npcname("Est#est03");
enablenpc instance_npcname("Almond#amond01");
if ('twilight_story == 4)
'twilight_story = 5;
}
end;
}
1@bamn,202,274,5 script(DISABLED) Est#est03 4_F_ESTLOVELOY,{
if ('twilight_story == 5) {
cutin "ep162_est01",2;
mes "[Est]";
mes "I thought it might be better to throw in more bait, so I went to ask for the help of the automatic dolls.";
mes "Also, Almond said she had to go out and check something.";
next;
cutin "ep172_beta",0;
mes "[Almond]";
mes "The repeater is dead again. That's why I have to fix it.";
mes "The repeater is the favorite target of the intruders, so we can't just leave it broken, right?";
next;
cutin "ep162_est01",2;
mes "[Est]";
mes "For that reason, I'd like to ask you to escort Almon here to check the repeater.";
mes "I'll look around and find other routes.";
next;
cutin "ep172_beta",0;
mes "[Almond]";
mes "Let's go together whenever you're ready.";
close2;
cutin "",255;
if ('twilight_story == 5)
'twilight_story = 6;
end;
}
if ('twilight_story == 6) {
cutin "ep162_est01",2;
mes "[Est]";
mes "Talk to Almond, when you're ready to move.";
close3;
}
end;
}
1@bamn,199,275,5 script(DISABLED) Almond#amond01 EP17_2_BETA_BASIC,{
if ('twilight_story < 6) {
cutin "ep172_beta",2;
mes "[Almond]";
mes "Everyone was supposed to be in the mansion today.";
mes "Something important came up. That's why I'm here with Est.";
close3;
}
if ('twilight_story == 6) {
'guide = getnpcid(0);
'twilight_story = 7;
npcspeed 200;
npctalk "Then, let us go.";
unitwalk 'guide,199,248, instance_npcname("Almond#amond01") + "::OnEvent00";
enablenpc instance_npcname("Intruder#sweety02");
end;
}
if ('twilight_story == 7)
end;
if ('twilight_story == 8) {
'twilight_story = 9;
unittalk getcharid(3), "" + strcharinfo(0) + " : Tracker : Pyo-o-o-o-o! There!!";
setpcblock PCBLOCK_NPC, true;
navigateto("1@bamn",242,206);
sleep2 2000;
npctalk "Ahahaha, it's noisy.";
sleep2 2000;
npctalk "I'm curious, should we go quickly?";
sleep2 2000;
npctalk "Guest, there is an intruder!";
donpcevent instance_npcname("twilight_story_mob_3") + "::OnStart";
setpcblock PCBLOCK_NPC, false;
sleep 200;
npcspeed 80;
unitwalk 'guide,245,229, instance_npcname("Almond#amond01") + "::OnEvent02";
end;
}
if ('twilight_story == 10 || 'twilight_story == 11 || 'twilight_story == 12) {
npctalk "Be careful!";
end;
}
if ('twilight_story == 13) {
'twilight_story = 14;
npcspeed 200;
setpcblock PCBLOCK_NPC, true;
npctalk "Let's go check the repeater.";
sleep2 2000;
setpcblock PCBLOCK_NPC, false;
sleep2 1000;
unitwalk 'guide,244,208, instance_npcname("Almond#amond01") + "::OnEvent04";
end;
}
if ('twilight_story == 14)
end;
if ('twilight_story == 15) {
'twilight_story = 16;
setpcblock PCBLOCK_NPC, true;
for ( .@i = 1; .@i < 5; ++.@i )
enablenpc instance_npcname("Rebellion#md_rb0" + .@i);
for ( .@i = 6; .@i < 9; ++.@i )
enablenpc instance_npcname("Heart Hunter#md_hh0" + .@i);
unittalk getcharid(3), "" + strcharinfo(0) + " : Tracker : Kakakakakakakil! The culprit is around! They're on my radar! It's that way!";
navigateto("1@bamn",332,143);
sleep2 2000;
setpcblock PCBLOCK_NPC, false;
sleep2 1000;
npcspeed 80;
npctalk "There's another intruder! No wonder I'm starting to get excited~!";
unitwalk 'guide,332,169;
end;
}
if ('twilight_story < 18)
end;
if ('twilight_story == 18) {
npcspeed 200;
'twilight_story = 19;
npctalk "Are you all right, adventurer? Then, we can keep going.";
unitwalk 'guide,332,143, instance_npcname("Almond#amond01") + "::OnEvent11";
end;
}
if ('twilight_story == 19)
end;
if ('twilight_story == 20) {
npctalk "Shouldn't you talk to Est? Looks like she've been waiting.";
end;
}
end;
OnEvent00:
npctalk "This way.";
sleep 1000;
unitwalk 'guide,225,248, instance_npcname("Almond#amond01") + "::OnFollow00";
end;
OnFollow00:
unitwalk 'guide,245,248, instance_npcname("Almond#amond01") + "::OnEvent01";
end;
OnEvent01:
npctalk "Let's go see the Repeater that is oftenly hacked.";
sleep 2000;
npctalk "Huh? What are you carrying right now? Take it out and show it to me.";
'twilight_story = 8;
end;
OnEvent02:
npctalk "Adventurer, there's an intruder!";
unitwalk 'guide,245,215, instance_npcname("Almond#amond01") + "::OnEvent03";
end;
OnEvent03:
'twilight_story = 10;
end;
OnEvent04:
npctalk "...checking the signal.";
sleep 2000;
npctalk "...hacking channel checked.";
sleep 2000;
npctalk "...recovering...";
sleep 2000;
npctalk "...recovering...84%";
sleep 2000;
npctalk "...recovery completed.";
sleep 2000;
npctalk "Shall we go to the repeater?";
sleep 2000;
unitwalk 'guide,245,204, instance_npcname("Almond#amond01") + "::OnEvent05";
end;
OnEvent05:
npctalk "Adventurer. Do you like Almonds? A customer who liked almonds named me. Does it suit me?";
sleep 3000;
unitwalk 'guide,265,204, instance_npcname("Almond#amond01") + "::OnEvent06";
end;
OnEvent06:
npctalk "That kid a while ago, I've seen him before.";
unitwalk 'guide,285,204, instance_npcname("Almond#amond01") + "::OnEvent07";
end;
OnEvent07:
npctalk "But he always ran so well, It's the first time I've seen him properly~";
unitwalk 'guide,300,204, instance_npcname("Almond#amond01") + "::OnEvent08";
end;
OnEvent08:
npctalk "The Pitaya's here is cute~ They say Almonds is delicious? Have you eaten almonds before?";
sleep 2000;
npctalk "This way.";
unitwalk 'guide,300,190, instance_npcname("Almond#amond01") + "::OnEvent09";
end;
OnEvent09:
npctalk "It's been a while since I've been this comfortable~";
unitwalk 'guide,327,189, instance_npcname("Almond#amond01") + "::OnEvent10";
end;
OnEvent10:
npctalk "Adventurer. Is that noisy thing flickering again? Let us check it for a second.";
'twilight_story = 15;
end;
OnEvent11:
npctalk "...checking the signal.";
sleep 2000;
npctalk "...hacking channel checked.";
sleep 2000;
npctalk "...recovering...";
sleep 2000;
npctalk "...recovering...72%";
sleep 2000;
npctalk "...recovery completed.";
sleep 2000;
npctalk "Let's go to the next repeater~";
sleep 2000;
unitwalk 'guide,320,139, instance_npcname("Almond#amond01") + "::OnFollow12";
end;
OnFollow12:
unitwalk 'guide,300,139, instance_npcname("Almond#amond01") + "::OnEvent12";
end;
OnEvent12:
npctalk "It's the kid from before, right? He's an intruder. That's weird, kind of like almonds...";
unitwalk 'guide,285,139, instance_npcname("Almond#amond01") + "::OnEvent13";
end;
OnEvent13:
npctalk "Shall we go faster? There's a sound coming from over there...";
unitwalk 'guide,285,118, instance_npcname("Almond#amond01") + "::OnEvent14";
end;
OnEvent14:
npctalk "It's more quiet than I thought. Where did the intruders go?";
unitwalk 'guide,285,98, instance_npcname("Almond#amond01") + "::OnEvent15";
end;
OnEvent15:
npctalk "This way.";
unitwalk 'guide,261,98, instance_npcname("Almond#amond01") + "::OnEvent16";
end;
OnEvent16:
npcspeed 80;
npctalk "It's Est!";
'twilight_story = 20;
unitwalk 'guide,261,87;
end;
}
1@bamn,1,1,0 script twilight_story_mob_3 -1,{
end;
OnStart:
.@event$ = instance_npcname("twilight_story_mob_3") + "::OnMobDead";
monster 'map_bamn$,246,208,"Heart Hunter","G_EP17_2_HEART_HUNTER",1, .@event$;
monster 'map_bamn$,248,208,"Heart Hunter","G_EP17_2_HEART_HUNTER",1, .@event$;
monster 'map_bamn$,246,206,"Heart Hunter","G_EP17_2_HEART_HUNTER",1, .@event$;
monster 'map_bamn$,248,206,"Heart Hunter","G_EP17_2_HEART_HUNTER",1, .@event$;
enablenpc instance_npcname("Intruder#sweety02");
end;
OnMobDead:
.@event$ = instance_npcname("twilight_story_mob_3") + "::OnMobDead";
if (mobcount('map_bamn$, .@event$) < 1) {
if ('twilight_story == 10)
'twilight_story = 11;
}
end;
}
1@bamn,243,208,5 script Repeater#wifi03 CLEAR_NPC,{
mes "There is no way to find out what the state of the repeater is. The communication chip seems to be properly installed.";
close;
}
1@bamn,242,206,7 script(DISABLED) Intruder#sweety02 4_EP17_SWEETY,{
if ('twilight_story < 11) {
npctalk "You're one step behind! You bunch of idiots!";
end;
}
if ('twilight_story == 11) {
'twilight_story = 12;
npctalk "Hah! Do you think you can catch me?";
sleep 2000;
npctalk "Go suffer!";
sleep 500;
disablenpc();
donpcevent instance_npcname("twilight_story_mob_4") + "::OnStart";
end;
}
end;
}
1@bamn,1,1,0 script twilight_story_mob_4 -1,{
end;
OnStart:
.@event$ = instance_npcname("twilight_story_mob_4") + "::OnMobDead";
monster 'map_bamn$,248,206,"Heart Hunter Commander","G_BELLARE3",1, .@event$;
monster 'map_bamn$,248,208,"Heart Hunter Commander","G_BELLARE3",1, .@event$;
end;
OnMobDead:
.@event$ = instance_npcname("twilight_story_mob_4") + "::OnMobDead";
if (mobcount('map_bamn$, .@event$) < 1) {
if ('twilight_story == 12)
'twilight_story = 13;
}
end;
}
1@bamn,331,161,3 script(DISABLED) Rebellion#md_rb02 4_F_REBELLION,7,7,{
end;
OnTouch:
if ('twilight_story == 16) {
'twilight_story = 17;
npctalk "We'll take over this place, just watch!";
sleep 1000;
specialeffect EF_DESPERADO, AREA, instance_npcname("Heart Hunter#md_hh06");
sleep 1000;
npctalk "Kakaka, Let's beat them down with a blast!", instance_npcname("Rebellion#md_rb04");
specialeffect EF_TRIPLEACTION, AREA, instance_npcname("Heart Hunter#md_hh07");
sleep 1000;
specialeffect EF_DESPERADO, AREA, instance_npcname("Heart Hunter#md_hh07");
sleep 2000;
npctalk "Thank you for showing yourselves! You bastards!", instance_npcname("Rebellion#md_rb03");
sleep 2000;
specialeffect EF_DESPERADO, AREA, instance_npcname("Heart Hunter#md_hh08");
sleep 2000;
npctalk "...", instance_npcname("Heart Hunter#md_hh07");
sleep 2000;
npctalk "...(Nods)", instance_npcname("Heart Hunter#md_hh06");
sleep 1000;
npctalk "...", instance_npcname("Heart Hunter#md_hh08");
sleep 1000;
npctalk "What signal are you sending to each other?";
sleep 1000;
specialeffect EF_DESPERADO, AREA, instance_npcname("Heart Hunter#md_hh07");
for ( .@i = 1; .@i < 5; ++.@i )
specialeffect EF_SPREADATTACK, AREA, instance_npcname("Rebellion#md_rb0" + .@i);
sleep 1000;
for ( .@i = 6; .@i < 9; ++.@i )
disablenpc instance_npcname("Heart Hunter#md_hh0" + .@i);
sleep 1000;
npctalk "What? Did they ran?! Move out!";
sleep 2000;
for ( .@i = 1; .@i < 5; ++.@i )
disablenpc instance_npcname("Rebellion#md_rb0" + .@i);
enablenpc instance_npcname("Intruder#sweety03");
npctalk "What...?", instance_npcname("Intruder#sweety03");
}
end;
}
1@bamn,321,161,5 duplicate(dummy_disabled_npc) Rebellion#md_rb01 4_M_REBELLION
1@bamn,331,155,1 duplicate(dummy_disabled_npc) Rebellion#md_rb03 4_M_REBELLION
1@bamn,321,155,7 duplicate(dummy_disabled_npc) Rebellion#md_rb04 4_F_REBELLION
1@bamn,324,158,7 duplicate(dummy_disabled_npc) Heart Hunter#md_hh06 G_EP17_2_HEART_HUNTER
1@bamn,326,159,3 duplicate(dummy_disabled_npc) Heart Hunter#md_hh07 G_EP17_2_HEART_HUNTER
1@bamn,328,158,1 duplicate(dummy_disabled_npc) Heart Hunter#md_hh08 G_EP17_2_HEART_HUNTER
1@bamn,333,141,7 script(DISABLED) Intruder#sweety03 4_EP17_SWEETY,{
if ('twilight_story == 17) {
setpcblock PCBLOCK_NPC, true;
'twilight_story = 18;
npctalk "What, where did the other guys go?";
sleep2 2000;
npctalk "Did you do it?";
sleep2 2000;
npctalk "You're pretty good, aren't you?";
sleep2 2000;
npctalk "Repeater : (... .. ..)", instance_npcname("Repeater#wifi02");
npctalk "Oh, there's a message. Stay there for a while. Yes, Hello.";
sleep2 2000;
npctalk "Repeater : (... ??... ??)", instance_npcname("Repeater#wifi02");
sleep2 2000;
npctalk "Now? More time... Yes, no... Ah...";
sleep2 2000;
npctalk "... ... so far... no?!... Okay...";
sleep2 2000;
emotion ET_THINK;
sleep2 2000;
npctalk "You! You're the reason I don't have time right now! I'll kill you the next time we meet!";
sleep2 2000;
disablenpc();
enablenpc instance_npcname("Est#est04");
for ( .@i = 5; .@i < 9; ++.@i )
enablenpc instance_npcname("Rebellion#md_rb0" + .@i);
for ( .@i = 0; .@i < 3; ++.@i )
enablenpc instance_npcname("Heart Hunter#md_hh1" + .@i);
setpcblock PCBLOCK_NPC, false;
}
end;
}
1@bamn,334,143,5 duplicate(dummy_npc) Repeater#wifi02 2_POSTBOX
1@bamn,257,84,3 script(DISABLED) Est#est04 4_F_ESTLOVELOY,{
if ('twilight_story == 20) {
cutin "ep162_est01",2;
mes "[Est]";
mes "I've heard the report. You found a guy who looked like the leader?";
mes "I think the rest of the members are somewhat good too.";
next;
mes "[Est]";
mes "What happened to the repeater?";
next;
cutin "ep172_beta",2;
mes "[Almond]";
mes "Were on the way to the other one.";
mes "But it's quite far from here.";
next;
cutin "ep162_est01",2;
mes "[Est]";
mes "Hmm... Shall we do this?";
mes "The guy you missed is a boy with purple hair, right?";
mes "We're going to bait him out.";
next;
mes "[Est]";
mes "I'll deal with the rest who's hiding in the garden.";
mes "Ah. I'll also escort Almond.";
next;
mes "[Est]";
mes "He probably went to the western part of the mansion, so head over there.";
mes "You have Elyumina's tracker. It will activate, if you get near him.";
if ('twilight_story == 20) {
'twilight_story = 21;
enablenpc instance_npcname("#to_bamq");
enablenpc instance_npcname("Intruder#sweety");
enablenpc instance_npcname("#to_swty01");
enablenpc instance_npcname("#to_swty02");
}
close3;
}
if ('twilight_story == 21) {
mes "[Est]";
mes "He probably went to the western part of the mansion, so head over there.";
mes "You have Elyumina's tracker, if you get near him, it will activate.";
next;
mes "[Est]";
mes "Don't worry, I'll take care of Almond from here.";
close3;
}
end;
}
1@bamn,250,80,7 script(DISABLED) Rebellion#md_rb05 4_M_REBELLION,{
npctalk "Leave the rest to us.";
end;
}
// 1@bamn,254,80,7 script Rebellion#md_rb06 4_F_REBELLION,7,7,{ // unknown effect
1@bamn,254,80,7 script(DISABLED) Rebellion#md_rb06 4_F_REBELLION,{
npctalk "Hehehe... It's finally time for revenge... Hehehe...";
end;
}
1@bamn,258,80,1 script(DISABLED) Rebellion#md_rb07 4_M_REBELLION,{
npctalk "If there's an enemy causing commotion, we should attack them with more numbers.";
end;
}
1@bamn,202,84,3 script(DISABLED) Rebellion#md_rb08 4_M_REBELLION2,{
npctalk "You're looking for a boy with purple hair, right? He went towards the labs.";
end;
}
1@bamn,67,173,0 script(DISABLED) #to_swty01 HIDDEN_WARP_NPC,5,5,{
end;
OnTouch:
if ('twilight_story == 21) {
unittalk getcharid(3), "" + strcharinfo(0) + " : Tracker : Pyo-o-o-o-o! That way! Pyo-pyo~!";
navigateto("1@bamn",33,224);
}
end;
}
1@bamn,121,204,0 duplicate(#to_swty01) #to_swty02 HIDDEN_WARP_NPC,7,7
1@bamn,67,195,3 script(DISABLED) Heart Hunter#md_hh10 G_BELLARE3,5,5,{
end;
OnTouch:
monster 'map_bamn$,67,195,"Heart Hunter Commander","G_BELLARE3",1;
monster 'map_bamn$,65,199,"Heart Hunter Commander","G_BELLARE3",1;
monster 'map_bamn$,71,197,"Heart Hunter Commander","G_BELLARE3",1;
disablenpc();
end;
}
1@bamn,78,204,5 script(DISABLED) Heart Hunter#md_hh11 G_BELLARE3,5,5,{
end;
OnTouch:
emotion ET_GO;
monster 'map_bamn$,78,204,"Heart Hunter Commander","G_BELLARE3",1;
monster 'map_bamn$,83,204,"Heart Hunter Commander","G_BELLARE3",1;
monster 'map_bamn$,76,200,"Heart Hunter Commander","G_BELLARE3",1;
disablenpc();
end;
}
1@bamn,61,214,7 script(DISABLED) Heart Hunter#md_hh12 G_BELLARE3,5,5,{
end;
OnTouch:
emotion ET_GO;
monster 'map_bamn$,61,214,"Heart Hunter Commander","G_BELLARE3",1;
monster 'map_bamn$,58,212,"Heart Hunter Commander","G_BELLARE3",1;
monster 'map_bamn$,64,214,"Heart Hunter Commander","G_BELLARE3",1;
disablenpc();
end;
}
1@bamn,145,106,5 duplicate(dummy_npc) Repeater#wifi01 CLEAR_NPC
1@bamq,125,39,3 script(DISABLED) Intruder#sweety 4_EP17_SWEETY,5,5,{
end;
OnTouch:
if ('twilight_story == 21) {
setpcblock PCBLOCK_NPC, true;
'twilight_story = 22;
npctalk "You're too late. You idiots!";
sleep2 2000;
npctalk "They already escaped using the airships!";
sleep2 2000;
npctalk "Now, I, Sweety will take care of the idiots that just came in!";
sleep2 2000;
setpcblock PCBLOCK_NPC, false;
disablenpc();
donpcevent instance_npcname("twilight_story_mob_5") + "::OnStart";
end;
}
end;
}
1@bamq,1,1,7 script twilight_story_mob_5 -1,{
end;
OnStart:
monster 'map_bamq$,125,39,"Sweety",20642,1, instance_npcname("twilight_story_mob_5") + "::OnMobDead";
setunitdata $@mobid[0],UMOB_HP,500000;
end;
OnMobDead:
killmonster 'map_bamq$, instance_npcname("twilight_story_mob_5") + "::OnMobDead";
if ('twilight_story == 22)
'twilight_story = 23;
mapannounce 'map_bamq$, "Est: Did you hear a loud noise from here?", bc_map, 0xFF00;
enablenpc instance_npcname("Broken Sweety#sweety04");
enablenpc instance_npcname("Est#est05");
enablenpc instance_npcname("#tgd_bamq_exit");
end;
}
1@bamq,123,39,3 script(DISABLED) Broken Sweety#sweety04 4_EP17_SWEETY,{
specialeffect EF_NPC_STOP;
npctalk " ... yes ... s ... go ... no ... two ...";
mes "The electricity bounces and doesn't move, as if the machine is broken.";
mes "Seeing that he averts his gaze, he doesn't seem completely broken.";
close;
}
1@bamq,108,41,5 script(DISABLED) Est#est05 4_F_ESTLOVELOY,{
cutin "ep162_est01",2;
mes "[Est]";
mes "It's a little late, but it's over.";
mes "So that's you. The guy who was dragging his feet in the garden.";
next;
mes "[Est]";
mes "Did this guy think that controlling the automatic dolls will help him buy time?";
next;
cutin "ep162_est02",2;
mes "[Est]";
mes "After all, they're just automatic dolls, right?";
mes "I had no choice but to blow the automatic dolls of the mansion...";
next;
cutin "ep162_est01",2;
mes "[Est]";
mes "Let's get out of here.";
mes "I'll be waiting at the guesthouse.";
close3;
}
// warps story
1@bamn,33,224,0 script(DISABLED) #to_bamq WARPNPC,1,1,{
end;
OnTouch_:
if ('twilight_story == 21)
warp 'map_bamq$,103,39;
end;
}
1@bamq,101,39,0 warp2(DISABLED) #tgd_bamq_exit 1,1,ba_maison,33,220
// Daily
1@bamq,16,39,0 script #sweety_evt01 HIDDEN_WARP_NPC,2,2,{
end;
OnTouch:
if (!is_party_leader())
end;
disablenpc();
enablenpc instance_npcname("Almond#amond02");
enablenpc instance_npcname("Sweety#sweety_boss");
enablenpc instance_npcname("#to_bamq2");
enablenpc instance_npcname("#to_bamn");
monster 'map_bamn$,120,257,"--ja--",20681,1; // G_EP17_2_HEART_HUNTER
monster 'map_bamn$,130,255,"--ja--",20681,1;
monster 'map_bamn$,130,244,"--ja--",20681,1;
monster 'map_bamn$,127,184,"--ja--",20681,1;
monster 'map_bamn$,188,240,"--ja--",20699,1; // G_BELLARE3
monster 'map_bamn$,203,248,"--ja--",20699,1;
monster 'map_bamn$,203,252,"--ja--",20699,1;
monster 'map_bamn$,301,234,"--ja--",20681,1;
monster 'map_bamn$,302,239,"--ja--",20681,1;
monster 'map_bamn$,297,244,"--ja--",20681,1;
monster 'map_bamn$,197,52,"--ja--",20699,1;
monster 'map_bamn$,120,83,"--ja--",20681,1;
monster 'map_bamn$,117,84,"--ja--",20681,1;
monster 'map_bamn$,137,176,"--ja--",20681,1;
monster 'map_bamn$,143,181,"--ja--",20681,1;
monster 'map_bamn$,62,165,"--ja--",20699,1;
end;
}
1@bamq,32,49,3 script(DISABLED) Sweety#sweety_boss 4_EP17_Sweety,{
if ('sweety == 0) {
cutin "ep172_Sweety01",2;
mes "[Sweety]";
mes "Hey, are you ready?";
mes "Come at me anytime.";
mes "I'm sure I'll feel better once I beat you.";
next;
if (select( "Wait a bit.", "Let's go!" ) == 1) {
mes "[Sweety]";
mes "What, did you come here to explore the garden?";
mes "The heart hunter don't know what happened to me, but...";
next;
cutin "ep172_Sweety02",2;
mes "[Sweety]";
mes "What, why?";
mes "I'm not like them at all, I'm an excellent creature!";
mes "So did the teachers.";
mes "But, those guys are nothing but failures.";
close3;
}
cutin "",255;
npctalk "I won't lose to you this time!";
disablenpc();
donpcevent instance_npcname("twilight_daily") + "::OnStart";
'sweety = 1;
close;
}
specialeffect EF_NPC_STOP;
mes "He is not responding to anything.";
mes "I think he fainted from my attacks.";
npctalk "... ...";
close;
}
1@bamq,1,1,7 script twilight_daily -1,{
end;
OnStart:
monster 'map_bamq$,32,49,"Sweety",20642,1, instance_npcname("twilight_daily") + "::OnMobDead";
end;
OnMobDead:
killmonster 'map_bamq$, instance_npcname("twilight_daily") + "::OnMobDead";
mapannounce 'map_bamq$, "Almond: Sweety~ Do it in moderation~", bc_map, 0xFF00;
enablenpc instance_npcname("Sweety#sweety_boss");
'sweety = 2;
end;
}
1@bamq,32,43,3 script(DISABLED) Stunned Sweety#sweety_bo 4_EP17_SWEETY,{
setpcblock PCBLOCK_NPC, true;
specialeffect EF_NPC_STOP;
sleep2 500;
setpcblock PCBLOCK_NPC, false;
npctalk " ... ... ";
mes "I passed out from the shock.";
mes "Looks like he passed out.";
close;
}
1@bamq,37,59,3 script(DISABLED) Almond#amond02 EP17_2_BETA_BASIC,{
if ('sweety < 2) {
cutin "ep172_beta",2;
mes "[Almond]";
mes "I can't understand.";
mes "Why Sweety likes to push his body to the limit...";
next;
mes "[Almond]";
mes "And it's my job to fix his destroyed body.";
mes "Please deal with him enough to make him satisfied.";
close3;
}
cutin "ep172_beta",2;
mes "[Almond]";
mes "I will take care of moving Sweety.";
mes "Do you want to wrap up now?";
next;
if (select( "Let's wrap up.", "I'll explore the garden first." ) == 2) {
mes "[Almond]";
mes "There is still some intruders out there.";
mes "Are you aware of it?";
close3;
}
mes "[Almond]";
mes "Then, shall we?";
close2;
warp "ba_in01",18,255;
end;
}
// warps daily
1@bamn,33,224,0 warp2(DISABLED) #to_bamq2 1,1,1@bamq,13,39
1@bamq,8,39,0 warp2(DISABLED) #to_bamn 1,1,1@bamn,33,220
// Daily quest
1@bamn,150,47,3 script #bam_body01 4_EP17_BROKENBETA,{
if (isbegin_quest(18024) == 1) {
if (checkweight(1000226,1) == 0) { // (custom)
mes "^008800Wait a sec!!";
mes "You cannot receive any more items because you're carrying too many items. Please try again after you lighten up.^000000";
close;
}
.@id = atoi(replacestr(strnpcinfo(2), "bam_body0", ""));
if ('broken_beta[.@id] == 0) {
mes "The body of Manager Beta is hidden under the landscapes.";
next;
if (rand(1,10) < 5)
mes "The core slot is empty.";
else {
mes "I've recovered the core.";
getitem 1000226,1;
}
mes "I'll let Alpha know later so she can retrieve the doll's body.";
'broken_beta[.@id] = 1;
}
}
mes "The core part is empty.";
close;
OnInstanceInit:
questinfo( QTYPE_CLICKME, QMARK_YELLOW, "isbegin_quest(18024) == 1" );
end;
}
1@bamn,221,193,3 duplicate(#bam_body01) #bam_body02 4_EP17_BROKENBETA
1@bamn,208,87,3 duplicate(#bam_body01) #bam_body03 4_EP17_BROKENBETA
1@bamn,314,146,3 duplicate(#bam_body01) #bam_body04 4_EP17_BROKENBETA
1@bamn,207,276,3 duplicate(#bam_body01) #bam_body05 4_EP17_BROKENBETA
1@bamn,70,256,3 duplicate(#bam_body01) #bam_body06 4_EP17_BROKENBETA
1@bamn,64,187,3 duplicate(#bam_body01) #bam_body07 4_EP17_BROKENBETA
1@bamn,275,313,3 duplicate(#bam_body01) #bam_body08 4_EP17_BROKENBETA
1@bamn,338,267,3 duplicate(#bam_body01) #bam_body09 4_EP17_BROKENBETA

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,401 @@
//===== rAthena Script =======================================
//= Weekend Memorial Dungeon
//===== Description: =========================================
//= [Walkthrough Conversion]
//= Weekend Memorial Dungeon
//===== Changelogs: ==========================================
//= 1.0 Initial release [Everade]
//============================================================
pay_arche,44,124,5 script Marry Jae 4_F_JOB_BLACKSMITH,{
mes "[Marry Jae]";
if (BaseLevel < 60) {
mes "Your base level is too low, come back when you hit level 60+.";
close;
}
mes "^ff0000If you attempt to tame any monsters, it will not count as a kill. Please be careful.^000000";
next;
.@day = gettime(DT_DAYOFWEEK);
if (.@day != SATURDAY && .@day != SUNDAY) {
mes "[Marry Jae]";
mes "Oh, a curious onlooker? I'm Marry Jae, the person in charge of weekends among the days of the week.";
next;
mes "[Marry Jae]";
mes "What is the weekend dungeon? Actually, it's a specially designed space for new adventurers to train.";
next;
mes "^0000FFLooking around, it's obvious that Marry Jae is talking to you.^000000";
next;
mes "[Marry Jae]";
mes "For those who do not have a party on the weekends, this place is hunting and experience gaining grounds for lonely adventurers!";
next;
mes "[Marry Jae]";
mes "Besides, the experience gain here is very generous.";
next;
select( "When is the opening time?" );
mes "[Marry Jae]";
mes "The dungeon will be open during:";
mes "^0000FFSaturday 00:00 ~ Sunday 23:59^000000";
next;
mes "[Marry Jae]";
mes "I hope to see you when the weekend arrives~";
close;
}
.@md_name$ = "Weekend Dungeon";
if (is_party_leader() == false) {
mes "[Marry Jae]";
mes "You need to form a party of one member or more.";
close;
}
switch( checkquest(12378,PLAYTIME) ) {
case -1:
break;
case 0:
case 1:
switch( checkquest(12377,PLAYTIME) ) {
case -1:
case 2:
mes "[Marry Jae]";
mes "Sorry, but the entry period to the " + .@md_name$ + " has expired.";
mes "Take a rest while waiting for the dungeon to be available again.";
close;
case 0:
case 1:
break;
}
break;
case 2:
erasequest 12377;
erasequest 12378;
mes "[Marry Jae]";
mes "The cooldown has expired.";
mes "You may re-enter the Memorial Dungeon.";
close;
}
mes "[Marry Jae]";
mes "I think you're just about ready.";
mes "Now, would you like to enter it now?";
next;
switch( select( "Prepare Memorial Dungeon", "Enter Weekend Dungeon", "Cancel" ) ) {
case 1:
instance_create(.@md_name$);
mes "[Marry Jae]";
mes "The Memorial Dungeon has been created.";
mes "You may now enter.";
close;
case 2:
switch( instance_enter(.@md_name$) ) {
case IE_NOMEMBER:
end;
case IE_NOINSTANCE:
mes "There is no Memorial Dungeon registered.";
close;
case IE_OTHER:
mes "An unknown error has occurred.";
close;
case IE_OK:
mes "[Marry Jae]";
mes "Off you go!";
mapannounce "pay_arche", "" + strcharinfo(0) + " of the party, " + getpartyname( getcharid(1) ) + ", is entering the " + .@md_name$ + ".", bc_map, 0xFF99;
if (isbegin_quest(12377) == 0)
setquest 12377;
if (isbegin_quest(12378) == 0)
setquest 12378;
end;
}
end;
case 3:
mes "[Marry Jae]";
mes "You have not prepared?";
mes "Can't really help it I guess.";
close;
}
}
//Merchant
pay_arche,44,121,5 script Gift Supplies Clerk 4_F_02,{
.@zeny = 60000;
mes "[Gift Supplies Clerk]";
mes "I offer packaging services for those who wish to present a precious gift to a cherished one.";
next;
mes "[Gift Supplies Clerk]";
mes "If you have 5 units of <ITEM>" + getitemname(23143) + "<INFO>23143</INFO></ITEM> or <ITEM>" + getitemname(23142) + "<INFO>23142</INFO></ITEM>, I can pack it for just ^FF0000" + F_InsertComma(.@zeny) + "^000000 Zeny!";
mes "Do you want to pack it right now?";
next;
switch( select( "Cancel", "Growth Elixir Packing", "Job Elixir Packing" ) ) {
case 1:
mes "[Gift Supplies Clerk]";
mes "Come back whenever you need packaging services!";
close;
case 2:
.@item = 23142;
.@box = 23144;
break;
case 3:
.@item = 23143;
.@box = 23145;
break;
}
mes "[Gift Supplies Clerk]";
if (countitem(.@item) < 5) {
mes "Please come back when you have enough materials.";
close;
}
if (Zeny < .@zeny) {
mes "Please come back when you have enough Zeny.";
mes F_InsertComma(.@zeny) + "z to be specific.";
close;
}
if (checkweight(23144,1) == 0) {
mes "You have too many kinds of objects. Clear your inventory.";
close;
}
if (MaxWeight - Weight < 10000) {
mes "Can't continue because you have too many heavy objects. Reduce your total weight by clearing your inventory.";
close;
}
mes "Confirm to spend " + F_InsertComma(.@zeny) + "z to package 5 <ITEM>" + getitemname(.@item) + "<INFO>" + .@item + "</INFO></ITEM> into <ITEM>" + getitemname(.@box) + "<INFO>" + .@box + "</INFO></ITEM>?";
next;
if (select( "Yes", "No" ) == 2) {
mes "[Gift Supplies Clerk]";
mes "Come back whenever you need packaging services!";
close;
}
Zeny -= .@zeny;
delitem .@item,5;
getitem .@box,1;
end;
}
//Instance
1@md_pay,239,30,6 script Marry Jae#0_1 4_F_JOB_BLACKSMITH,{
if (is_party_leader() == false)
end;
mes "[Marry Jae]";
mes "Before we start setting up the environment here, we'll give you the chance to choose an appropriate difficulty level.";
mes "I could make my own choice, but each person handles it differently based on their abilities.";
next;
switch( select( "Cancel", "Lv60 ~ 79", "Lv80 ~ 99", "Lv100 ~ 119", "Lv120 ~ 139", "Lv140 ~ 159", "Lv160 ~ " ) ) {
case 1:
end;
//Familiar, Skeleton, Zombie
case 2:
.@min_level = 60;
setarray 'mob[0],3643,3637,3649;
break;
case 3:
.@min_level = 80;
setarray 'mob[0],3644,3638,3650;
break;
case 4:
.@min_level = 100;
setarray 'mob[0],3645,3639,3651;
break;
case 5:
.@min_level = 120;
setarray 'mob[0],3646,3640,3652;
break;
case 6:
.@min_level = 140;
setarray 'mob[0],3647,3641,3653;
break;
case 7:
.@min_level = 160;
setarray 'mob[0],3648,3642,3654;
break;
}
mes "[Marry Jae]";
if (BaseLevel < .@min_level) {
mes "Your base level is too low to select this, you need to be level " + .@min_level + " + .";
close;
}
mes "Good luck finding the treasures!";
npctalk "Good luck~";
donpcevent instance_npcname("map_md_pay_spawn") + "::OnStart";
close;
}
1@md_pay,1,1,6 script map_md_pay_spawn -1,{
end;
OnStart:
sleep 2500;
disablenpc instance_npcname("Marry Jae#0_1");
.@event$ = instance_npcname("map_md_pay_spawn") + "::OnFarmiliarDead";
killmonster 'map_md_pay$, .@event$;
monster 'map_md_pay$,252,54,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,260,40,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,249,93,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,224,38,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,255,125,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,264,132,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,255,165,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,265,181,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,225,165,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,235,115,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,205,145,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,190,180,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,213,250,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,90,263,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,135,200,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,175,155,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,165,145,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,180,117,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,175,115,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,185,66,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,155,55,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,165,45,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,124,57,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,54,45,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,53,48,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,55,65,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,51,66,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,42,84,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,41,152,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,46,171,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,45,185,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,64,172,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,75,181,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,50,202,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,55,205,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,75,245,"Familiar",'mob[0],1,.@event$;
monster 'map_md_pay$,90,263,"Familiar",'mob[0],1,.@event$;
.@event$ = instance_npcname("map_md_pay_spawn") + "::OnSkelDead";
killmonster 'map_md_pay$, .@event$;
monster 'map_md_pay$,245,55,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,243,63,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,259,98,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,258,204,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,239,122,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,189,190,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,239,231,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,205,225,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,172,207,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,166,234,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,171,236,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,126,180,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,150,150,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,155,135,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,174,75,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,186,67,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,95,65,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,55,85,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,37,92,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,34,90,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,27,99,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,57,76,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,62,93,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,33,97,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,60,45,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,48,60,"Skeleton",'mob[1],1,.@event$;
monster 'map_md_pay$,73,51,"Skeleton",'mob[1],1,.@event$;
.@event$ = instance_npcname("map_md_pay_spawn") + "::OnZombieDead";
killmonster 'map_md_pay$, .@event$;
monster 'map_md_pay$,245,65,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,218,61,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,255,171,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,215,165,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,237,127,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,215,105,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,198,168,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,243,267,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,165,207,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,157,236,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,113,259,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,105,255,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,117,238,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,164,194,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,159,172,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,175,155,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,146,131,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,152,126,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,181,85,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,165,81,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,157,74,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,175,45,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,49,48,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,65,175,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,78,180,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,33,207,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,49,227,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,55,235,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,60,240,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,70,237,"Zombie",'mob[2],1,.@event$;
monster 'map_md_pay$,65,265,"Zombie",'mob[2],1,.@event$;
'rand_chest = rand(1,4);
end;
OnFarmiliarDead:
callsub( S_Mob, 'mob[0], "Familiar", "OnFarmiliarDead" );
OnSkelDead:
callsub( S_Mob, 'mob[1], "Skeleton", "OnSkelDead" );
OnZombieDead:
callsub( S_Mob, 'mob[2], "Zombie", "OnZombieDead" );
S_Mob:
if (rand(100) == 0) {
'rand_chest++;
if ('rand_chest > 4)
'rand_chest = 1;
// Treasure Chest Spawn
donpcevent instance_npcname("#WDbox" + 'rand_chest) + "::OnStart";
}
sleep 10000;
monster 'map_md_pay$,0,0, getarg(1), getarg(0),1, instance_npcname("map_md_pay_spawn") + "::" + getarg(2);
end;
OnInstanceInit:
'count = 0;
'rand_chest = 0;
'map_md_pay$ = instance_mapname("1@md_pay");
disablenpc instance_npcname("#WDbox1");
disablenpc instance_npcname("#WDbox2");
disablenpc instance_npcname("#WDbox3");
disablenpc instance_npcname("#WDbox4");
end;
}
// Treasure Chest Reward
1@md_pay,99,172,3 script #WDbox1 4_TREASURE_BOX,{
specialeffect EF_COIN;
disablenpc();
stopnpctimer;
sleep 500;
.@chestname$ = strnpcinfo(2);
if (.@chestname$ == "WDbox1") {
for ( .@i = 0; .@i < 3; ++.@i )
makeitem rand(23142,23143),1, 'map_md_pay$, rand(97,101), rand(170,174);
}
else if (.@chestname$ == "WDbox2") {
for ( .@i = 0; .@i < 3; ++.@i )
makeitem rand(23142,23143),1, 'map_md_pay$, rand(233,237), rand(58,62);
}
else if (.@chestname$ == "WDbox3") {
for ( .@i = 0; .@i < 3; ++.@i )
makeitem rand(23142,23143),1, 'map_md_pay$, rand(51,55), rand(265,269);
}
else if (.@chestname$ == "WDbox4") {
for ( .@i = 0; .@i < 3; ++.@i )
makeitem rand(23142,23143),1, 'map_md_pay$, rand(236,240), rand(250,254);
}
end;
OnStart:
enablenpc();
instance_announce -1, "A treasure chest appeared somewhere in the dungeon. It'll disappear after a while, so let's find it.", bc_map, "0xff5500";
initnpctimer;
end;
OnTimer180000: //3min before chest disappears
disablenpc();
stopnpctimer;
end;
}
1@md_pay,235,60,3 duplicate(#WDbox1) #WDbox2 4_TREASURE_BOX
1@md_pay,53,267,3 duplicate(#WDbox1) #WDbox3 4_TREASURE_BOX
1@md_pay,238,252,3 duplicate(#WDbox1) #WDbox4 4_TREASURE_BOX

View File

@@ -241,6 +241,12 @@ que_swat mapflag nobranch
har_in01 mapflag nobranch
rockmi2 mapflag nobranch
//============================================================
// Memorial day
//============================================================
1@md_gef mapflag nobranch
1@md_pay mapflag nobranch
//============================================================
// Lasagna
//============================================================

View File

@@ -256,6 +256,12 @@ har_in01 mapflag nomemo
rockmi1 mapflag nomemo
rockmi2 mapflag nomemo
//============================================================
// Memorial day
//============================================================
1@md_gef mapflag nomemo
1@md_pay mapflag nomemo
//============================================================
// Lasagna
//============================================================

View File

@@ -6,6 +6,7 @@
//===== Changelogs: ==========================================
//= 1.0 Renewal split. [Euphy]
//= 1.1 Added GVG TE Guild Dungeons. [Capuche]
//= 1.2 Removed instances. [Lemongrass]
//============================================================
//============================================================
@@ -60,27 +61,10 @@ te_aldecas3 mapflag nosave SavePoint
te_aldecas4 mapflag nosave SavePoint
te_aldecas5 mapflag nosave SavePoint
//============================================================
// Misty Forest Labyrinth
//============================================================
1@mist mapflag nosave SavePoint
//============================================================
// Octopus Cave
//============================================================
1@cash mapflag nosave SavePoint
//============================================================
// Drain
//============================================================
1@pump mapflag nosave SavePoint
2@pump mapflag nosave SavePoint
//============================================================
// Somatology Laboratory
//============================================================
que_lhz mapflag nosave SavePoint
1@lhz mapflag nosave SavePoint
//============================================================
// Port Malaya
@@ -95,240 +79,22 @@ ma_zif07 mapflag nosave SavePoint
ma_zif08 mapflag nosave SavePoint
ma_zif09 mapflag nosave SavePoint
//============================================================
// Bangungot Hospital F2
//============================================================
1@ma_h mapflag nosave SavePoint
//============================================================
// Buwaya Cave
//============================================================
1@ma_c mapflag nosave SavePoint
//============================================================
// Bakonawa Hideout
//============================================================
1@ma_b mapflag nosave SavePoint
//============================================================
// Inside Eclage
//============================================================
que_avan01 mapflag nosave SavePoint
1@ecl mapflag nosave SavePoint
//============================================================
// Glastheim Memorial Dungeon
//============================================================
1@gl_k mapflag nosave SavePoint
2@gl_k mapflag nosave SavePoint
//============================================================
// Wave Mode Memorial Dungeon
//============================================================
1@def01 mapflag nosave SavePoint
1@def02 mapflag nosave SavePoint
1@def03 mapflag nosave SavePoint
//============================================================
// Heroes' Trail - Part 1
//============================================================
1@face mapflag nosave SavePoint
1@sara mapflag nosave SavePoint
//============================================================
// Heroes' Trail - Part 2
//============================================================
1@ge_st mapflag nosave SavePoint
1@gef mapflag nosave SavePoint
1@gef_in mapflag nosave SavePoint
1@spa mapflag nosave SavePoint
1@tnm1 mapflag nosave SavePoint
1@tnm2 mapflag nosave SavePoint
1@tnm3 mapflag nosave SavePoint
//============================================================
// Horror Toy Factory Memorial Dungeon
//============================================================
1@xm_d mapflag nosave SavePoint
//============================================================
// Heroes' Trail - Part 3
//============================================================
1@glast mapflag nosave SavePoint
1@air1 mapflag nosave SavePoint
1@air2 mapflag nosave SavePoint
//============================================================
// Decisive Battle - Part 1
//============================================================
1@dth1 mapflag nosave SavePoint
1@dth2 mapflag nosave SavePoint
1@dth3 mapflag nosave SavePoint
1@rev mapflag nosave SavePoint
//============================================================
// Decisive Battle - Part 2
//============================================================
1@eom mapflag nosave SavePoint
1@jtb mapflag nosave SavePoint
//============================================================
// Episode 15 - Phantasmagorica
//============================================================
1@lab mapflag nosave SavePoint
1@uns mapflag nosave SavePoint
un_myst mapflag nosave SavePoint
1@mcd mapflag nosave SavePoint
//============================================================
// Infinite Space
//============================================================
1@infi mapflag nosave
//============================================================
// Episode 16.1 - Banquet of Heroes
//============================================================
que_swat mapflag nosave SavePoint
1@mir mapflag nosave SavePoint
2@mir mapflag nosave SavePoint
1@sthb mapflag nosave SavePoint
1@sthc mapflag nosave SavePoint
1@sthd mapflag nosave SavePoint
1@slw mapflag nosave SavePoint
1@swat mapflag nosave SavePoint
//============================================================
// Rockridge
//============================================================
rockmi2 mapflag nosave SavePoint
//============================================================
// Chicken Mode - Nightmare Glastheim
//============================================================
1@gl_k2 mapflag nosave SavePoint
2@gl_k2 mapflag nosave SavePoint
//============================================================
// Chicken Mode - Horror Toy Factory
//============================================================
1@xm_d2 mapflag nosave SavePoint
//============================================================
// Suspicious Shipwreck
//============================================================
1@tre mapflag nosave SavePoint
//============================================================
// Poring Village
//============================================================
1@begi mapflag nosave SavePoint
//============================================================
// Volcanic Island Korodo
//============================================================
1@crd mapflag nosave SavePoint
//============================================================
// Noodles Festival July
//============================================================
1@drdo mapflag nosave SavePoint
//============================================================
// Soul Reaper Job Change
//============================================================
1@soul mapflag nosave SavePoint
//============================================================
// Episode 17.1
//============================================================
1@cor mapflag nosave SavePoint
1@os_a mapflag nosave SavePoint
1@os_b mapflag nosave SavePoint
1@rgsr mapflag nosave SavePoint
//============================================================
// Episode 17.2
//============================================================
1@bamn mapflag nosave SavePoint
1@bamq mapflag nosave SavePoint
1@ghg mapflag nosave SavePoint
1@herbs mapflag nosave SavePoint
1@lost mapflag nosave SavePoint
1@odin mapflag nosave SavePoint
//============================================================
// 4th Jobs Change
//============================================================
1@4win mapflag nosave SavePoint
1@4mag mapflag nosave SavePoint
1@4mst mapflag nosave SavePoint
1@4sac mapflag nosave SavePoint
1@4tro mapflag nosave SavePoint
1@4inq mapflag nosave SavePoint
1@4cdn mapflag nosave SavePoint
1@4igd mapflag nosave SavePoint
1@4drk mapflag nosave SavePoint
//============================================================
// Geffen Night Arena
//============================================================
1@ge_sn mapflag nosave SavePoint
//============================================================
// Traces of Heroes
//============================================================
1@mjo1 mapflag nosave SavePoint
1@mjo2 mapflag nosave SavePoint
1@spa2 mapflag nosave SavePoint
//============================================================
// Thanatos Tower Memorial Dungeon
//============================================================
1@thts mapflag nosave SavePoint
2@thts mapflag nosave SavePoint
3@thts mapflag nosave SavePoint
4@thts mapflag nosave SavePoint
5@thts mapflag nosave SavePoint
6@thts mapflag nosave SavePoint
7@thts mapflag nosave SavePoint
8@thts mapflag nosave SavePoint
//============================================================
// Glastheim Challenge Mode
//============================================================
1@gl_he mapflag nosave SavePoint
1@gl_he2 mapflag nosave SavePoint
//============================================================
// EDDA
//============================================================
1@gl_prq mapflag nosave SavePoint
1@gol1 mapflag nosave SavePoint
1@gol2 mapflag nosave SavePoint
//============================================================
// 2018 Halloween
//============================================================
1@halo mapflag nosave SavePoint
//============================================================
// Constellation Tower
//============================================================
1@ch_t mapflag nosave SavePoint
2@ch_t mapflag nosave SavePoint
3@ch_t mapflag nosave SavePoint
//============================================================
// Episode 18 - Direction of Prayer
//============================================================
1@adv mapflag nosave SavePoint
1@advs mapflag nosave SavePoint
1@nyr mapflag nosave SavePoint
1@oz mapflag nosave SavePoint
1@tcamp mapflag nosave SavePoint
2@nyr mapflag nosave SavePoint
//============================================================
// Sunken Tower
//============================================================
1@ch_u mapflag nosave SavePoint

View File

@@ -246,6 +246,12 @@ rebel_in mapflag monster_noteleport
har_in01 mapflag noteleport
rockmi2 mapflag noteleport
//============================================================
// Memorial day
//============================================================
1@md_gef mapflag noteleport
1@md_pay mapflag noteleport
//============================================================
// Lasagna
//============================================================

View File

@@ -189,6 +189,12 @@ har_in01 mapflag nowarpto
rockmi1 mapflag nowarpto
rockmi2 mapflag nowarpto
//============================================================
// Memorial day
//============================================================
1@md_gef mapflag nowarpto
1@md_pay mapflag nowarpto
//============================================================
// Lasagna
//============================================================

View File

@@ -122,6 +122,12 @@
1@slw mapflag partylock
1@swat mapflag partylock
//============================================================
// Memorial day
//============================================================
1@md_gef mapflag partylock
1@md_pay mapflag partylock
//============================================================
// Chicken Mode Nightmare Glastheim
//============================================================

View File

@@ -107,6 +107,12 @@ lhz_d_n2 mapflag restricted 6
1@slw mapflag restricted 6
1@swat mapflag restricted 6
//============================================================
// Memorial day
//============================================================
1@md_gef mapflag restricted 6
1@md_pay mapflag restricted 6
//============================================================
// Chicken Mode Nightmare Glastheim
//============================================================

View File

@@ -28,7 +28,7 @@ prt_in,212,169,3 script Guild Clerk 4_M_04,{
next;
mes "[Guild Clerk]";
mes "As part of that,";
mes "we are selling a limited quantity of 100 <ITEM>Emperium<INFO>714</INFO></ITEM> every day";
mes "we are selling a limited quantity of 100 " + mesitemlink( 714, false ) + " every day";
mes "from ^0000ff18:00 to 23:59^000000 from ^0000ffMonday to Saturday^000000.";
next;
mes "[Guild Clerk]";

View File

@@ -15,7 +15,7 @@
prt_in,211,173,3 script Slot Move Card Sales#slo 4_F_01,{
mes "[Salesman]";
mes "Howdy.";
mes "I'm selling <ITEM>[Character Position Change Coupon]<INFO>12786</INFO></ITEM>.";
mes "I'm selling " + mesitemlink( 12786 ) + ".";
mes "You can ^4d4dffchange the slot position of a character using the card^000000.";
next;
mes "[Salesman]";

View File

@@ -52,6 +52,10 @@ Footer:
- Path: npc/re/merchants/barters/quests_16_1.yml
- Path: npc/re/merchants/barters/quests_16_2.yml
- Path: npc/re/merchants/barters/quests_17_1.yml
- Path: npc/re/merchants/barters/quests_17_2.yml
- Path: npc/re/merchants/barters/refine.yml
- Path: npc/re/merchants/barters/enchantgrade.yml
- Path: npc/re/merchants/barters/cashmall.yml
- Path: npc/re/merchants/barters/rgsr_in.yml
- Path: npc/re/merchants/barters/enchan_illusion_16_2.yml
- Path: npc/re/merchants/barters/quests_exp_175.yml

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