Compare commits

...

123 Commits

Author SHA1 Message Date
Aleos
f47bda8661 Adjusts Spirit Handler to JOBL_FOURTH
* Changes the MAPID to JOBL_FOURTH so that traits can be adjusted.
2022-10-20 11:08:01 -04:00
aleos
1498e9143f Fixes Spirit Handler MAPID
* Minor reversions to checks.
* Adjusts Spirit Handler to just JOBL_UPPER.
2022-10-20 08:53:57 -04:00
aleos
e1bc3d30e3 Removes JOBL_2_1 mask from Spirit Handler 2022-06-30 12:17:28 -04:00
aleos
93ac6ed461 Adjusts the MAPID check
Thanks to @Lemongrass3110!
2022-06-28 10:51:21 -04:00
aleos
549b300395 Adds missing return value 2022-06-27 14:18:35 -04:00
aleos
9603a2bd1b Adds Spirit Handler to Summoner checks
* Fixes #7039.
* Adds the Spirit Handler job to the basic Summoner job checks.
Thanks to @laziem!
2022-06-27 10:17:55 -04:00
Lemongrass3110
17d6381901 Fixed reloadpcdb (#7065)
Fixes #7063

Thanks to @kaninhot004
2022-06-26 14:16:46 +02:00
Aleos
5e6fd03848 Fixes a potential crash with database reloading (#7061)
* Fixes #7060.
* The cached YAML content will now properly reallocate the memory when the clear command is called.
Thanks to eppc0330!
2022-06-24 15:43:45 -04:00
Kanin Temsrisuk
d173755afc Fixed the item script of Item ID 23012 (#7056) 2022-06-24 16:41:55 +02:00
Aleos
256735a136 Fixes mob and item atcommand sorting issues (#7058)
* Fixes #7055.
* Fixes several atcommands used for mob and item information were not properly accounting for order.
* Resolves an issue where YAML databases were not properly utilizing the cache feature.
* Increased MAX_SEARCH to 10 by default as in renewal there are many more items with duplicated names.
Thanks to @Playtester!
Co-authored-by: Playtester <Kenji.Ito@gmx.de>
2022-06-24 09:53:31 -04:00
Aleos
563a7012ff Weapon Blocking can now trigger on ATK_MISS (#7042)
* Fixes #6886.
* Weapon Blocking is able to trigger on missed attacks.
* Weapon Blocking can still be triggered even if the target has Kyrie, Safety Wall, or other damage nullification statuses.
Thanks to @Atemo!
2022-06-22 09:33:07 -04:00
Daegaladh
96208f28ba Fixed tu_archer NPC not showing dialog (#7050) 2022-06-21 18:27:22 +02:00
Atemo
c93ba77c0c Updated mapcache (#7047)
Added support for Episode 19 maps
2022-06-21 16:55:44 +02:00
idk-whoami
e9292378f1 Fixed Splendid Box2 Type (#7046)
Thanks to @XanKriegor1
2022-06-21 15:50:26 +02:00
Playtester
08edcb5b6b Fixed bosses not being immune to StoneWait (#7040)
- Bosses are now immune to StoneWait again (fixes #7037)
- Improved documentation on the bone_drop config (fixes #7026)
2022-06-18 13:25:51 +02:00
Aleos
a05112b4a2 Allow Skill Damage Adjustments account for reflect (#6999)
* Fixes #4455 and fixes #6274.
* Reflected damage will now take into account if a skill has a modified damage ratio from skill_damage_db.
* Includes the GvG, Battlegrounds, and PK damage config adjustments as well.
Thanks to @cydh and @imaqtdan!
2022-06-17 14:00:45 -04:00
Aleos
7d356806e1 Adds support for Spirit Handler in SQL items (#7041) 2022-06-17 12:06:49 -04:00
Pokye
39d9b12229 Added missing script on some items (#7036)
Fixed #7022

Thanks to @XanKriegor1 !
2022-06-17 17:22:52 +02:00
Kakaroto
68d1af492b Add support for Spirit Handler equip Summoner items (#7035)
* Fixes #7034.
* Added definition for Spirit Handler class to be able to equip the same items as the Summoner class.
Thanks to @admkakaroto!
2022-06-16 14:45:39 -04:00
Daegaladh
eff452fa35 Fixed intimacy reduction for Vanilmirth Self-destruction and S.B.R.44 (#6400)
* Fixed homun intimacy reduction for S.B.R.44 and Self-destruction

* Self-destruction must lower intimacy even if doesn't hit any enemies

* Fixed intimacy for SBR44

* Added extra checks as suggested by @aleos89

Thanks to @Daraen1, @Lemongrass3110 and @aleos89!

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-06-16 18:59:02 +02:00
Aleos
73811d10a4 Fixes an issue with instance timer display (#6988)
* Fixes #6835.
* Follow up to ac7292c.
* Instance packet updates were ignored if instances had infinite duration or timeouts.
* Infinite duration or timeout instances now store the cap as INT64_MAX instead of 0.
* Converts the TimeLimit and IdleTimeOut storage types from uint32 to int64 to allow longer 'infinite' duration instances.
Thanks to @samers1 and @Atemo!
2022-06-16 10:49:41 -04:00
Kakaroto
fbbd0d0a8e Minor Expanded Class Job Level Adjust (#7029)
* Small change to fix the expanded Job level, the definition was missing, causing the new jobs to have 250 job levels.
Thanks to @admkakaroto!
2022-06-16 10:30:25 -04:00
Aleos
b01cac01c1 Resolves duplicate status calculation on players (#6980)
* Fixes #6930.
* Follow up to a7ee51d.
* Resolves an issue on sc_start where players are doubly calculated on their items and stats.
* Resolves an edge case where AutoSpell3 bonuses can cause a crash if success rate is high or delay is low.
Thanks to @CairoLee!
2022-06-16 10:07:08 -04:00
eppc0330
2992879ee3 Fix SC_POISONINGWEAPON and SC_PYREXIA damage bonus (#7004)
* Poisoning Weapon will now only increase the caster's short weapon damage.
* Pyrexia will now only increase the caster's critical damage and normal attack damage.
Thanks to @eppc0330!
2022-06-15 15:37:29 -04:00
Atemo
12711585a0 Correction of the bonus of Shield of Naga (ID: 2134) (#7027)
Thanks to @Playtester
2022-06-14 16:50:52 +02:00
Atemo
756f9a73a7 Updates item_db using new constants (#7019)
* item_db updated using new constants

Additionally :
* sort the id in item_db_usable
* corrected sc_start* for SC_L_LIFEPOTION and SC_S_LIFEPOTION in item_db_usable
* removed useless value in item_randomopt_db.yml
* corrected the option for GRAY_CHARCOAL_MELEE
2022-06-08 21:26:41 +02:00
idk-whoami
7fd27a6c27 Corrected script for some item #7 (#6863)
* Fix Item 1435 & Combo 1631
* Added a bunch of new items
2022-06-08 19:30:31 +02:00
Pokye
9be8b5e591 Store item prices update (#7013)
Updated the price of items from stores, prices are official according to kRO.
2022-06-08 19:29:01 +02:00
Pokye
dd209f64c7 Small fix on duplicate item (#7018)
Thanks to @devilcrossit
2022-06-08 18:20:16 +02:00
Aleos
aad3a70bbc Fixes script commands unitwalkto/unitwalk (#7007)
* Fixes #5340.
* Resolves an issue where monsters may tend to lose their target if they are too slow and the destination is too far when using script commands unitwalkto/unitwalk.
* Allow script command unitstopwalk to remove the state tracking for script commands unitwalk/unitwalkto.
* Print a warning to the console if a unit is forced to walk again and hasn't yet reached its initial destination.
Thanks to @NeutralDev and @Lemongrass3110!
2022-06-07 15:07:51 -04:00
Pokye
2bb79d0200 Some items from Kachua Secret Key (#6866) 2022-06-07 19:20:16 +02:00
Aleos
2ff76e5060 Adds the CONVERT_ALL macro for YAML tools (#6986)
* Fixes #6813.
* Adds the CONVERT_ALL macro define to the header file.
* Adds a readme.md for the tools directory.
Thanks to @cbrgm and @Lemongrass3110!
2022-06-07 13:19:27 -04:00
Aleos
a7a9b68ed2 Increases the server config character limit (#7006)
* Fixes #5324.
* Adjusts the Login, Character and Map server's ID, password, schema, and codepage character limit from 31 to 1023.
* Adjusts the Login, Character, and Map server's IP character limit from 63 to 1023.
* Removes password echos during failed connections.
Thanks to @reunite-ro!
2022-06-07 11:23:50 -04:00
Aleos
354d2605f2 Corrects Doram healing skill effects (#6978)
* Fixes #6962.
* Tuna Belly and Fresh Shrimp don't apply normal green heal effects.
* Resolves an issue with the HP bars not properly updating for party members as well.
Thanks to @KrokusPokus!
2022-06-07 11:05:37 -04:00
Lemongrass3110
001981cf66 Initial implementation of enchantgrade UI (#6913)
Includes walkscript conversion of kRO scripts

Thanks to @Asheraf, @Balferian, @JohnnyPlayy, @aleos89, @Atemo, @eppc0330 and @Pokye.

Co-authored-by: JohnnyPlayy <lenon32@gmail.com>
Co-authored-by: Asheraf <Asheraf@users.noreply.github.com>
Co-authored-by: Balferian <balfear@yandex.ru>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
2022-06-07 16:45:35 +02:00
mazvi
24cfdc68de Added Arch Mage on Quest magic_books (#7009) 2022-06-07 12:03:21 +02:00
Aleos
038c1778e1 Player skills no longer proc equip break on mobs (#7005)
* Fixes #5906.
* Player skills and items that have the ability to break a target's equipment will no longer "break" a non-player's equipment.
* WS_MELTDOWN (Shattering Strike) is able to bypass the non-player check as it does affect all target types.
* Adds a battle config to toggle the behavior.
Thanks to @Tydus1, @Xelliekins, @Atemo, @Daegaladh, and @Lemongrass3110!
2022-06-06 10:42:42 -04:00
Aleos
479954af30 Fixes Ride In Lightning SP cost (#6998)
* Fixes #6386.
* Applies the new SP cost.
Thanks to @Badarosk0!
2022-06-02 21:12:56 -04:00
Aleos
b804120246 Fixes Battlegrounds and atcommand reloadscript (#7002)
* Fixes #6175.
* Fixes an issue where the Battleground Queue System could become stuck if a GM uses atcommand reloadscript.
Thanks to @roSBK!
2022-06-02 20:38:26 -04:00
Pokye
86c8950e7f Added Beginner Items (#7001)
Fixed #7000

Thanks to @Takiusu !
2022-06-02 15:04:32 +02:00
Atemo
54a3724c70 Added barter npcs to sell/exchange refine ore (#6993)
Thanks to @il3ol2ed @Pokye !
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-06-02 15:03:29 +02:00
Aleos
4aba94ca01 Updates Poisonous Smoke behavior (#6263)
* Fixes #6199.
* Adjusts the interval to every 2 seconds.
* Adjusts the success rate to 50%.
* Fixes the Poison Weapon effect not applying the 'enemy' status to those inside of Poisonous Smoke.
* Venom Bleed should only be active for 15 seconds, not 5 minutes like the rest of the poisons.
* Pyrexia will now cancel skill cast on each damage input.
Thanks to @Everade!
2022-06-01 14:27:23 -04:00
Aleos
c01c673313 Corrects Finger Offensive and Tiger Cannon (#6996)
* Fixes #6524.
* Finger Offensive will now have 5 hits across all levels.
* Fixes the HP bonus damage formula of Tiger Cannon.
Thanks to @Akaineko-astasi!
2022-06-01 11:33:03 -04:00
Aleos
18050028e3 Adds safety check for Barter Shops (#6995)
* Fixes #6895.
* Adds a safety check for multiple non-stackable items being used as the purchase type.
Thanks to @samers1!
2022-06-01 11:00:48 -04:00
Pokye
0b3cd7f1f7 Fixed some names and added some missing items (#6859) 2022-05-29 22:53:16 +02:00
KrokusPokus
38c03a21d9 Add QuestInfo display for Lost Knife quest in Kunlun (#6969) 2022-05-29 22:50:20 +02:00
Vincent Stumpf
26ec100fa6 Fix RODEX mail weight calculation (#6987)
Fixes #6924
Thanks @voyfmyuh
2022-05-27 08:11:21 -07:00
Aleos
9bf78ee5a3 Clean up to how map cache is loaded by mode (#6984)
* The db/(pre-)re/map_cache.dat now contain maps that are only different between the modes.
* Moves all general maps into db/map_cache.dat for loading across both modes.
* Adds support for the new RSW water height.
* Adds an error message when loading GRFs if the file size is over 2GB.
2022-05-26 09:55:46 -04:00
Aleos
cc93494cf9 Shifts the WoE TE castles to renewal (#6981)
* Moves the WoE FE, WoE Novice, and WoE SE castles to the general database.
* Moves the WoE TE castles to the renewal database to match the loading of the NPC.
2022-05-24 13:43:41 -04:00
Aleos
dacfa6b8c4 Fixes Change Cart not applying style (#6979)
* Fixes #6957.
* Adds a missing flag for SC_PUSH_CART to make sure the display when changing cart styles is sent to the client.
Thanks to @jofvgaming!
2022-05-23 14:16:19 -04:00
Atemo
ae371cb9d0 Corrected BlackSmith quest skills (#6951)
After reborn players that have quest skills before cant learn it after reborn or if player use Neuralizer/reset skills.

Thanks to @Balferian !
2022-05-23 19:44:03 +02:00
imlevi
b8c3e885da Fix optional argument not being considered in setbattleflag (#6973) 2022-05-23 12:21:37 -04:00
Atemo
a37b72670c Added getequiprefinerycnt check in an ep17.1 enchant npc (#6952)
* Added/corrected check in an ep17.1 enchant npc

Thanks to @mazvi, @taiga-x
2022-05-23 17:26:21 +02:00
Atemo
4b7fb7d6b4 Added a missing rebellion weapon shop (#6953)
* Correction a shop type

Thanks to @mazvi
2022-05-23 17:25:32 +02:00
Daegaladh
60813b28f0 Blocked cart item movement on NoUseCart maps (#6970) 2022-05-21 12:05:59 +02:00
Daegaladh
fa363b972d Fixed dead monsters stuck after killed (#5263) 2022-05-20 13:27:26 +02:00
KrokusPokus
667645c2e2 Misc typo fixes (#6963)
Co-authored-by: Gernot Federspiel <ba212908@gmx.net>
2022-05-20 10:36:10 +02:00
Aleos
5cee1cb3b1 Corrects every attack returning at least 1 damage (#6967)
* Follow up to 33a99b5.
* Resolves an issue where normal attacks which have no reflect damage were being capped to at least 1.
Thanks to @XanKriegor1!
2022-05-19 21:27:53 -04:00
Playtester
6bf1b7c2ad Fixed rebirthed monster exp (#6966)
- Fixes #6965 
- When a rebirthed monster is killed it will now only give exp for the HP it was revived with (e.g. if it revived with 40% HP then it will give 40% of its exp on the second kill)
- The first kill will still give 100% exp and drops
2022-05-19 21:40:24 +02:00
Aleos
33a99b5993 Fixes reflected damage from overflowing (#6717)
* Fixes #6693.
* Reflected damage should never be negative.
* Reflect Damage no longer has a 'reflect counter'.
* Reflect Damage is removed on log out.
* Reflect Damage Reduction should only reduce in normal cases (outside of WoE/BG).
* Adjusts the variable names to better match their use.
* General cleanups to speed up certain scenarios.
Thanks to @kaninhot004 and @Lemongrass3110's review!
2022-05-19 12:24:34 -04:00
Aleos
2726770c1c Fixes Assumptio status icon (#6960)
* Fixes #6929.
* Resolves an issue with Assumptio utilizing the wrong status icon.
Thanks to @KrokusPokus!
2022-05-18 20:29:47 -04:00
Playtester
f5e75d28ec Fixed looters getting stuck (#6958)
- Fixes #6939
- Looters will now use complex pathing to find a way to an item they can see
- Monsters no longer stop when using NPC_EMOTION or NPC_EMOTION_ON
- Added a security check to prevent endless loops when easy pathing is used (no longer used by default)

Special thanks to @secretdataz.
2022-05-18 23:25:37 +02:00
Aleos
20d9fa6cc7 Fixes Orcish face display (#6956)
* Fixes #6954.
* Resolves an issue where the Orcish face would not display properly after casting SA_REVERSEORCISH.
Thanks to @mimishi!
2022-05-18 10:49:51 -04:00
Aleos
f1b181ec9c Removes SCF_OVERLAPFAIL in favor of Fail list (#6865)
* Removes the SCF_OVERLAPFAIL status flag in favor of adding the status to the Fail list.
* Confirmed that Burning does renew itself.
2022-05-17 16:45:07 -04:00
Playtester
d9ae335edf Official client range distance offset (#6950)
- Fixed the client range distance offset which is really 1.1 and not 1.0625
- This fixes the issue that when you sometimes tried to use a skill, nothing happened -> the client didn't make you move closer but the server said you are not in range yet
- I originally got an incorrect value through testing, because I didn't know that the client calculates range in a 3D room rather than in a 2D room, now I retested on a completely flat map; fully confirmed and official now
- See also #6949
2022-05-17 18:47:31 +02:00
Aleos
b857e2749a Resolves some statuses ending early from items (#5817)
* Partial fix for #5766.
* Items that Auto Guard, Ruwach, or Angelus skills should stay active when the item is removed.
Thanks to @mrjnumber1!
2022-05-17 12:41:25 -04:00
Atemo
a8276339bd Updated the script to use the commands cloakonnpcself/cloakoffnpcself (#6946) 2022-05-16 16:17:36 +02:00
Playtester
d3cc0c5656 Updated pre-renewal mob_db for Brasilis monsters (#6945)
* Updated Brasilis monsters in pre-re/mob_db.yml to pre-renewal jRO stats (jRO has higher ATK than bRO)
* There never was an official pre-re kRO version because kRO updated to renewal before adding Brasilis, but having all the common values like aDelay/aMotion and drop order official makes it easier to update these monsters via /Import/
* Will provide an import file to revert to bRO ATK here: https://rathena.org/board/topic/80992-official-pre-renewal-brasilis/

Special thanks to @Daegaladh for providing additional data to cross check these values.
2022-05-16 10:53:18 +02:00
Daegaladh
2bb740115e Renamed NoMineEffect mapflag to ForceMinEffect to clarify it's behavior (#6940) 2022-05-14 13:20:10 +02:00
Playtester
b0b5bfd055 Fixed Steel Body not being removed on logout (#6938)
- Fixes #6910
2022-05-11 23:11:14 +02:00
Lemongrass3110
3298ca9eb7 Added roulette window state tracking (#6936)
Fixes #6931

Thanks to @mazvi, @aleos89 and Ziu
2022-05-11 08:50:05 +02:00
Playtester
a027900711 Fixed range of NPC_HELLPOWER and AM_RESURRECTHOMUN
- Follow-up to e9ead1f
2022-05-10 21:25:41 +02:00
Atemo
e6f8e7549d Added cloakonnpcself/cloakoffnpcself script commands (#6934) 2022-05-10 17:59:01 +02:00
Aleos
0615b843d7 Removes the 100% rate cap for SC defense (#6926)
* Status changes are simply not capped to 100%.
* Adjusts to utilize util::safe_addition_cap.
Thanks to @Playtester!
2022-05-09 17:12:59 -04:00
Playtester
cfa9776a28 Fixed Grand Cross and Grand Darkness (#6927)
- Fixes #6647 (b)
- Related to #1140
- Follow-up to ce4aed2
- Re-implemented Grand Cross / Grand Darkness
- Both skills can hit up to 4 times
- Each cell of both skills will stop dealing damage if it dealt damage at least 3 times
- The interval is now fixed to 300ms regardless of how many targets are on a single cell
2022-05-09 19:14:48 +02:00
Lemongrass3110
252e873e98 Update packets to Hercules v2022.04.07 (#6933)
Syncs the packet structures to HerculesWS/Hercules@9d0de90

Thanks to @4144 and @Asheraf for maintaining it.
2022-05-09 18:08:55 +02:00
eppc0330
9acb50006a Fix equip order (#6876)
* Fixes equip order
* Accessoires now prioritize the left side of the equipment window (if both slots are occupied)
* Weapons now prioritize the left side (right hand) in renewal
* Weapons still prioritize the right side (shield hand) in pre-renewal
2022-05-07 17:48:20 +02:00
Daegaladh
c200e67ae2 Fixed targeting on duels (#6918) - Followup to 01afe46 2022-05-07 15:26:32 +02:00
Playtester
94c80a9108 SC_HALLUCINATION now shows damage even when blocked (#6920)
- When under the HALLUCINATION status change you will now also see damage when the damage was reduced to 0
- This includes damage being reduced to 0 by e.g. Pneuma or Safety Wall
- Documented under #6790 (but does not fix the original report which I can't reproduce)

Note: Modern clients handle the display of random damage themselves, so you will see higher damage numbers than what clif_hallucination_damage() returns. It still requires to return a number higher than 0 for it to display.
2022-05-04 23:08:30 +02:00
Playtester
e9ead1fcb7 Fixed skill ranges of NPC and HOM skills (#6917)
- Fixes #6884
- Updated skill ranges of NPC and Homunculus skills to their official values
- Implemented the official skill selection mechanic where when a mob picks a skill but can't cast it due to range, it will not check for any skills below
- Added a configuration to reset this to the previous behavior
2022-05-04 19:04:22 +02:00
Aleos
8bd77496da Fixes atcommand reloadatcommand (#6891)
* Fixes #6874.
* Removes an extra config file check that is no longer needed.
Thanks to @reunite-ro!
2022-05-03 23:13:28 -04:00
Aleos
972ada7c4a Fixes unlimited supply market shops (#6889)
* Fixes #6883.
* Follow up to 6ccf153.
* Resolves a final check market shop loading check resetting items marked as unlimited supply to a specific amount if previously saved in the SQL table as such.
Thanks to @gravity-ro!
2022-05-03 22:49:50 -04:00
Aleos
86cca12399 Fixes SC_HOMUN_TIME starting too early (#6890) 2022-05-03 22:35:19 -04:00
Playtester
b25fda1370 Added HP/SP bonus from VIT/INT equips (#6914)
- Fixes #6911
- Each VIT on an equipment gives an additional +1 MaxHP
- Each INT on an equipment gives an additional +1 MaxSP
- Bonus is applied before % equip bonus
- Only applies for VIT/INT bonus directly on an equipment, but not for cards
- Replaced some hard-coded values with constants

Special thanks to @aleos89 and @secretdataz
2022-05-03 09:42:49 +02:00
Playtester
fe7626dfdc Follow-up to 64f10ed
Just fixed a typo.
2022-05-02 16:33:01 +02:00
Playtester
64f10ed10b Fixes HPFactor being way too high (#6909)
- Fixes #6908
- HpFactor default changed from 20000 to 0
- Renamed HPMultiplicator to HpIncrease and SPFactor to SpIncrease so the naming is more consistent
- Fixed an issue with case-sensitivity (HP/SP -> Hp/Sp)
- YAML version of JOB_STATS is now 2
- "csv2yaml" and "yamlupgrade" converters updated accordingly
- Improved documentation

Special thanks to @Lemongrass3110
2022-05-02 13:50:09 +02:00
Atemo
78bf9f72c8 Updated ticket_refiner.txt (#6905)
Support for more certificate.

Thanks to @AsurielRO !
2022-05-02 00:52:28 +02:00
Playtester
5ec5f4891c Fixed status change chance from items being too high (#6907)
- Fixes #6906
- Chance was too high by factor 100
2022-05-01 09:30:41 +02:00
Playtester
c127d2875b Fixed MIN_MOBLINKTIME not working (#6904) 2022-05-01 08:29:58 +02:00
Playtester
5181c70626 Improved chasing behavior (#6903)
- Fixes #6899
- Monsters will now always walk to the end of their chase path before checking for their target again (you can still change this by changing monster_chase_refresh in monster.conf)
- A monster's chase range is now exactly as defined in mob_db.yml except when it was just attacked
- A just-attacked monster's chase range is now only enhanced until it reaches its original target cell
- Ranged monsters will now always stop when their target is in attack range, even if they still have attack delay
- Fixed a small math error when calculating chase path
- When a monster loses its target, it will now always spread to an empty cell when it was chasing something and reaches the end of its chase path, but will no longer spread when it was already attacking the target that disappeared (it will still spread if you set the custom mob_ai setting for this)
- Fixed monsters not starting to chase a target while they are randomly walking

Thanks to @aleos89 for support.
2022-04-29 21:34:39 +02:00
Everade
e56977b5f2 Fixes NC_REPAIR item consumption (#6898)
Fixes NC_REPAIR consuming multiple repair items on all skill levels due to missing level definitions.
2022-04-28 20:00:25 +02:00
Aleos
3b9c28aa46 Minor SC_STONEWAIT fixes (#6892)
* The SC_STONEWAIT status should not be applicable to the Undead element.
* Fixes the overall duration for SC_STONEWAIT and SC_STONE because of incorrect order of resistance application.
* Adds the delay parameter to sc_start functions since some statuses, if not most, have a delay of some sort before being applied to a target.
* Swaps the duration values for Stone Curse related skills.
Thanks to @Playtester!
2022-04-27 12:40:38 -04:00
Vincent Stumpf
ef6a682ca8 Fix possible crash in TypesafeCachedYamlDatabase (#6873) 2022-04-26 19:56:31 +07:00
Atemo
fe7dd38773 Removed renewal exp and drop penalty in Illusions dungeons (#6887) 2022-04-25 19:38:21 +02:00
Atemo
ceb1d10c20 Removed NoRemoveOnDead flags on S_Lifepotion and L_Lifepotion (#6888) 2022-04-25 19:37:27 +02:00
mazvi
5d34c7b16b Illusion of Vampire Boss Spawn Fixes (#6875)
Fixes an exploit which allowed to spawn Berserk Bomi indefinitely upon first quest completion.

Thanks to @Everade @Atemo
2022-04-25 02:06:12 +02:00
Aleos
ec3a287831 Resolves a compile warning (#6868) 2022-04-23 07:10:41 -04:00
Aleos
ea4a9d9e2f Fixes a quest packet buffer issue (#6870) 2022-04-23 01:30:53 -04:00
Aleos
3c36814c1f Adjusts swapping equipment behavior (#6869) 2022-04-22 17:15:43 -04:00
Aleos
d617d9f083 Updates SC_CHANGEUNDEAD behavior (#6867)
* Fixes #6834.
* Versus Players
- Animation will be properly displayed for Blessing/Increase Agility when the target has Change Undead active (buffs are not applied even though animation is displayed).
- Target can no longer be killed through the single damage applied by Blessing/Increase Agility and Change Undead.
- If the target has Curse and Stone active, only Curse is removed by Blessing first (buffs are not applied).
- Shadow or Undead armor have no impact on Blessing or Increase Agility at all.
* Versus Monsters
- Blessing is applied normally to the target as long as it's not an Undead element or Demon race.
- Blessing does not cancel out Curse or Stone.
Thanks to @Playtester!
2022-04-22 11:46:28 -04:00
Lemongrass3110
b42dbe4a9f Fixed RES/MRES for players (#6857)
* Fixes #6841.
Co-authored-by: Playtester <Kenji.lto@gmx.de>
2022-04-22 09:42:00 -04:00
Aleos
53bc2376a6 Updates stacking for common statuses (#6807)
* Fixes #6798.
* Updates the Fail, End, and EndReturn lists for OPT1 and OPT2 statuses.
* Removes the hardcoded OPT1 overwrite prevention check.
* OPT1 that have RemoveOnDamaged flag should not get applied again in the same attack.
* Fixes Stone status not properly being inflicted by the bAddEff, bAddEff2, bAddEffWhenHit, and bAddEffOnSkill item bonuses.
* Fixes Stone status not properly being inflicted by The Hanged Man from Tarot Card of Fate.
Thanks to @Playtester!
2022-04-21 09:31:27 -04:00
mazvi
b17b0c7a0b Fixes Token of Honor Barter shops for EP16.1/16.2/17.1 (#6852)
Fixes Barter quests_16_1.yml, quests_16_2.yml, quests_17_1.yml

Co-authored-by: Everade <Everade@users.noreply.github.com>
2022-04-20 14:36:48 +02:00
Everade
20422622aa Illusion of Vampire monster fixes (#6851)
Fixes https://github.com/rathena/rathena/issues/6849
Corrected monster mode and skills for Black Mushroom

Thanks to @mazvi
2022-04-19 15:10:15 +02:00
Daegaladh
3641dcf426 Fixed exp rewards in EP 17.1 quests (#6850) 2022-04-18 16:59:54 +02:00
Pokye
d7e114179d Some Renewal Mobs Fixes (#6846)
Updated MvpExp to be 50% of BaseExp
Corrected some AegisNames and Names
2022-04-18 02:41:03 +02:00
Pokye
3650a7f805 Some item name fixes (#6816) 2022-04-17 23:13:58 +02:00
Lemongrass3110
aae930198d Fixed SQL db loading (#6843) 2022-04-17 22:31:57 +02:00
Lemongrass3110
1a7a26bc39 Added speed bonus to Serenade of Jawaii (#6842) 2022-04-17 21:32:27 +02:00
Aleos
1aaa32bd1a Minor Adjustment to Expanded Class skills (#6829)
* Kihop now applies physical damage bonus directly no longer depending on the number of party members. Physical damage bonus: (10 + (15 x skill level))%.
* Catnip Meteor:
- Reduces fixed casting time from 3 seconds to 1.5 seconds.
- Reduces variable casting time from 4 seconds to 2 seconds.
- From base level 100, deals additional damage depending on the user's base level and INT.
- Adjusts splash to 7x7 for all levels.
* Lunatic Carrot Beat now deals additional damage (from base level 100) depending on user's base level and STR.
2022-04-17 14:57:38 -04:00
Atemo
ce7fc06692 Fixes 17.1 Enchanter (#6840)
* Replaced consumeitem by getgroupitem

Fixes #6838
2022-04-17 19:58:52 +02:00
Everade
696320fc49 Episode 16.2 - Illusion of Vampire (#6800)
Fixes https://github.com/rathena/rathena/issues/6455
Implements Episode 16.2 - Illusion of Vampire

Thanks to @Atemo 

Co-authored-by: Atemo <capucrath@gmail.com>
2022-04-16 17:20:53 +02:00
Lemongrass3110
51ddc63a02 Converted player groups to YAML (#6488)
Finally adds import functionality for player groups and therefore atcommand and permission defining.

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-04-15 23:47:44 +02:00
Playtester
6e5461a34e Follow-up to da93c19 (NPC_CHANGEUNDEAD)
- NPC_CHANGEUNDEAD is now also working in renewal
2022-04-15 17:41:01 +02:00
Playtester
da93c190c5 Correct Implementation of NPC_CHANGEUNDEAD (#6837)
- Fixes #6832
- NPC_CHANGEUNDEAD is now a single target attack skill
- 100% physical, undead property damage
- When it deals damage, 10%*skill_lv chance to cause SC_CHANGEUNDEAD for 60 seconds
- Skill range is 2
- All NPC status skills now have 120% hit rate
2022-04-15 09:00:53 +02:00
Lemongrass3110
4845a128ba Added more laphine synthesis items (#6823)
Adds support for 52 more laphine synthesis items.

Thanks to @Badarosk0
2022-04-14 15:42:34 +02:00
Lemongrass3110
6e58ab7d40 Disabled random options for stolen items (#6836)
Added a battle config to enable/disable random options for stolen items.

Fixes #6833
2022-04-14 15:21:49 +02:00
Lemongrass3110
14d6052e5b Fixed some 4th class ex issues (#6806)
Added all required skill and skill unit constants - thanks to @Rytech2
Fixed the order of some jobchange checks
Added missing MAPID to JOBID conversion
Fixed pc_calc_skilltree_normalize and added support for gaps in the job tree
2022-04-14 15:04:02 +02:00
Aleos
f083caf28d Fixes Status Database All CalcFlag (#6826)
* Fixes #6812.
* Resolves an issue with the All CalcFlag not properly being parsed for the Status Database resulting in these statuses not starting and ending the bonuses.
Thanks to @eppc0330!
2022-04-13 13:37:40 -04:00
idk-whoami
a7fbcfa1f8 Fixed Crown of Deceit Script (#6830)
Fixes #6809

Thanks to @Leemonn
2022-04-13 15:10:33 +02:00
Everade
ff7bbb9d0c Episode 17.1 - Illusion (#6643)
Fixes https://github.com/rathena/rathena/issues/6463
Implements Episode 17.1 - Illusion

Adds viewpointmap script command
Adds getbaseexp_ratio and getjobexp_ratio script command

Comments quest log support for the Nameless Island Quest, Nameless Island Access Quest and Geoborg Family Curse Quest due to utilizing quest IDs that are used elsewhere.


Credits to @crazy-arashi for the initial content release

Co-authored-by: crazy-arashi <meganekiho@gmail.com>
Co-authored-by: aleos <aleos89@users.noreply.github.com>
Co-authored-by: Atemo <capucrath@gmail.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>

Thanks to @crazy-arashi  @Atemo  @aleos89  @Lemongrass3110  @secretdataz  @Dia  @humanwizzard  @idk-whoami  @Megelith  @Daegaladh
2022-04-13 11:23:48 +02:00
Lemongrass3110
8bc43091c9 Fixed DK_CHARGINGPIERCE display
Thanks to @limitro
2022-04-11 22:37:05 +02:00
Pokye
f4410fba6b Added script command openbank (#6821) 2022-04-11 01:56:17 +02:00
176 changed files with 34041 additions and 6655 deletions

View File

@@ -1010,6 +1010,9 @@ Body:
Aliases:
- famepoint
- famepoints
- Command: enchantgradeui
Help: |
Opens the enchantgrade UI.
Footer:
Imports:

View File

@@ -167,3 +167,9 @@ warg_can_falcon: no
// Should the target be able of dodging damage by snapping away to the edge of the screen?
// Official behavior is "no"
snap_dodge: no
// Grant player skills/items the ability to "break" non-player equipment. (Note 1)
// This will effectively apply the strip equip effect to the non-player target.
// NOTE: WS_MELTDOWN is exempt from this check when disabled.
// Official: no
break_mob_equip: no

View File

@@ -19,52 +19,57 @@ monster_hp_rate: 100
monster_max_aspd: 199
// Defines various mob AI related settings. (Note 3)
// 0x001: When enabled mobs will update their target cell every few iterations
// (normally they never update their target cell until they reach it while
// chasing)
// 0x002: Makes mob use their "rude attack" skill (usually warping away) if they
// are attacked and they can't attack back regardless of how they were
// attacked (eg: GrimTooth), otherwise, their rude attack" is only activated
// if they can't melee reach the target (eg: sniping)
// 0x004: If not set, mobs that can change target only do so when attacked within a
// distance of [attack range+1], otherwise mobs may change target and chase
// ranged attackers. This flag also overrides the 'provoke' target.
// 0x008: When set, mobs scatter as soon as they lose their target. Use this mode
// to make it much harder to mob-train by hiding and collecting them on a
// single spot (ie: GrimTooth training)
// 0x010: If set, mob skills defined for friends will also trigger on themselves.
// 0x020: When set, the monster ai is executed for all monsters in maps that
// have players on them, instead of only for mobs who are in the vicinity
// of players.
// 0x040: When set, when the mob's target changes map, the mob will walk towards
// any npc-warps in it's sight of view (use with mob_warp below)
// 0x080: If not set, mobs on attack state will only change targets when attacked
// by normal attacks. Set this if you want mobs to also switch targets when
// hit by skills.
// 0x100: When set, a mob will pick a random skill from it's list and start from
// that instead of checking skills in orders (when unset, if a mob has too
// many skills, the ones near the end will rarely get selected)
// 0x200: When set, a mob's skill re-use delay will not be applied to all entries of
// the same skill, instead, only to that particular entry (eg: Mob has heal
// on six lines in the mob_skill_db, only the entry that is actually used
// will receive the delay). This will make monsters harder, especially MvPs.
// 0x400: Set this to make mobs have a range of 9 for all skills. Otherwise, they
// will obey the normal skill range rules.
// 0x800: When set, monsters that are provoked will always change target to the
// provoking person, even if they would usually not change target on attack.
// 0x0001: When enabled mobs will update their target cell every few iterations
// (normally they never update their target cell until they reach it while
// chasing)
// 0x0002: Makes mob use their "rude attack" skill (usually warping away) if they
// are attacked and they can't attack back regardless of how they were
// attacked (eg: GrimTooth), otherwise, their "rude attack" is only activated
// if they can't melee reach the target (eg: sniping)
// 0x0004: If not set, mobs that can change target only do so when attacked within a
// distance of [attack range+1], otherwise mobs may change target and chase
// ranged attackers. This flag also overrides the 'provoke' target.
// 0x0008: When set, mobs scatter as soon as they lose their target. Use this mode
// to make it much harder to mob-train by hiding and collecting them on a
// single spot (ie: GrimTooth training)
// 0x0010: If set, mob skills defined for friends will also trigger on themselves.
// 0x0020: When set, the monster ai is executed for all monsters in maps that
// have players on them, instead of only for mobs who are in the vicinity
// of players.
// 0x0040: When set, when the mob's target changes map, the mob will walk towards
// any npc-warps in it's sight of view (use with mob_warp below)
// 0x0080: If not set, mobs on attack state will only change targets when attacked
// by normal attacks. Set this if you want mobs to also switch targets when
// hit by skills.
// 0x0100: When set, a mob will pick a random skill from it's list and start from
// that instead of checking skills in orders (when unset, if a mob has too
// many skills, the ones near the end will rarely get selected)
// 0x0200: When set, a mob's skill re-use delay will not be applied to all entries of
// the same skill, instead, only to that particular entry (eg: Mob has heal
// on six lines in the mob_skill_db, only the entry that is actually used
// will receive the delay). This will make monsters harder, especially MvPs.
// 0x0400: Set this to make mobs have a range of 9 for all skills. Otherwise, they
// will obey the normal skill range rules.
// 0x0800: When set, monsters that are provoked will always change target to the
// provoking person, even if they would usually not change target on attack.
// 0x1000: When set, when a monster picks a skill but can't use it because there is
// no valid target in range, it will look for another skill it can use.
// This makes e.g. Greatest General use "Earth Spike" at range 8-9 whereas
// officially it would only use it after already having used "Blind Attack"
// at range 0-7.
// Example: 0x140 -> Chase players through warps + use skills in random order.
monster_ai: 0
// How often should a monster rethink its chase?
// 0: Every 100ms (MIN_MOBTHINKTIME)
// 1: Every cell moved
// 2: Every 2 cells moved
// 3: Every 3 cells moved (official)
// x: Every x cells moved
// Regardless of this setting, a monster will always rethink its chase if it has
// reached its target. Increase this value if you want to make monsters continue
// moving after they lost their target (hide, no line of sight, etc.).
monster_chase_refresh: 3
// x: Every x cells moved or at end of the chase path
// 30 (max): Only at end of the chase path (official)
// Regardless of this setting, a monster will always check for targets in attack
// range. Decrease this value if you want to make monsters to be more reactive while
// chasing. This also defines the maximum amount of cells monsters will move after
// they lost their target (hide, no line of sight, etc.).
monster_chase_refresh: 30
// Should mobs be able to be warped (add as needed)?
// 0: Disable.

View File

@@ -155,8 +155,8 @@ friend_auto_add: yes
invite_request_check: yes
// Players' will drop a 'Skull' when killed?
// Note: The 'Skull' item (ID 7420) is trade restricted by default. Please check
// the item_trade database to adjust accordingly.
// Note: The 'Skull' item (ID 7420) is trade restricted by default. You need
// to remove the "NoTrade" flag on the item for this feature to work.
// 0 = Disabled
// 1 = Dropped only in PvP maps
// 2 = Dropped in all situations

View File

@@ -174,8 +174,13 @@ sense_type: 1
finger_offensive_type: 0
// Grandcross Settings (Don't mess with these)
// If set to no, hit interval is increased based on the amount of mobs standing on the same cell
// (means that when there's stacked mobs in the same cell, they won't receive all hits)
// Officially, Grand Cross has four damage waves, but each cell will stop
// dealing damage on the next wave after it already dealt at least 3 hits.
// A moving monster can take up to 4 hits, while a stack of monsters may only
// take 1-3 hits.
// Set this to yes if you want all waves to deal damage to all targets.
// Hint: If you want to reduce the number of waves, you need to reduce the
// duration of the skill (e.g. to 800ms for three damage waves).
gx_allhit: no
// Grandcross display type (Default 1)
@@ -220,6 +225,10 @@ backstab_bow_penalty: yes
// Use 0 to disable (max allowed value is 255)
skill_steal_max_tries: 0
// Should random options be applied to stolen items? (Note 1)
// Official: no
skill_steal_random_options: no
// Level and Strength of "MVP heal". When someone casts a heal of this level or
// above, the heal formula is bypassed and this value is used instead.
max_heal: 9999

View File

@@ -1,303 +0,0 @@
/*
Player groups configuration file
---------------------------------
This file defines "player groups" and their privileges.
Each group has its id and name, lists of available commands and other
permissions, and a list of other groups it inherits from.
Group settings
--------------
<id>
Unique group number. The only required field.
<name>
Any string. If empty, defaults to "Group <id>". It is used in several @who
commands.
<level>
Equivalent of GM level, which was used in revisions before r15572. You can
set it to any number, but usually it's between 0 (default) and 99. Members of
groups with lower level can not perform some actions/commands (like @kick) on
members of groups with higher level. It is what script command getgmlevel()
returns. Group level can also be used to override trade restrictions
(db/item_trade.txt).
<commands>
A group of settings
<command name> : <bool>
or
<commandname> : [ <bool>, <bool> ]
First boolean value is for atcommand, second one for charcommand. If set to
true, group can use command. If only atcommand value is provided, false is
assumed for charcommand. If a command name is not included, false is assumed for
both atcommand and charcommand.
For a full list of available commands, see: doc/atcommands.txt.
Command names must not be aliases.
<log_commands>
Boolean value. If true then all commands used by the group will be logged to
atcommandlog. If setting is omitted in a group definition, false is assumed.
Requires 'log_commands' to be enabled in 'conf/log_athena.conf'.
<permissions>
A group of settings
<permission> : <bool>
If a permission is not included, false is assumed.
For a full list of available permissions, see: doc/permissions.txt
<inherit>
A list of group names that given group will inherit commands and permissions
from. Group names are case-sensitive.
Inheritance results
-------------------
Both multiple inheritance (Group 2 -> Group 1 and Group 3 -> Group 1) and
recursive inheritance (Group 3 -> Group 2 -> Group 1) are allowed.
Inheritance rules should not create cycles (eg Group 1 inherits from Group 2,
and Group inherits from Group 1 at the same time). Configuration with cycles is
considered faulty and can't be processed fully by server.
Command or permission is inherited ONLY if it's not already defined for the
group.
If group inherits from multiple groups, and the same command or permission is
defined for more than one of these groups, it's undefined which one will be
inherited.
Syntax
------
This config file uses libconfig syntax:
http://www.hyperrealm.com/libconfig/libconfig_manual.html#Configuration-Files
Upgrading from revisions before r15572
-------------------------------------
http://rathena.org/board/index.php?showtopic=58877
*/
groups: (
{
id: 0 /* group 0 is the default group for every new account */
name: "Player"
level: 0
inherit: ( /*empty list*/ )
commands: {
changedress: true
resurrect: true
}
permissions: {
/* without this basic permissions regular players could not
trade or party */
can_trade: true
can_party: true
attendance: true
}
},
{
id: 1
name: "Super Player"
inherit: ( "Player" ) /* can do everything Players can and more */
level: 0
commands: {
/* informational commands */
commands: true
charcommands: true
help: true
rates: true
uptime: true
showdelay: true
exp: true
mobinfo: true
iteminfo: true
whodrops: true
time: true
jailtime: true
hominfo: true
homstats: true
showexp: true
showzeny: true
whereis: true
/* feature commands */
refresh: true
noask: true
noks: true
autoloot: true
alootid: true
autoloottype: true
autotrade: true
request: true
go: true
breakguild: true
channel: true
langtype: true
}
permissions: {
attendance: false
}
},
{
id: 2
name: "Support"
inherit: ( "Super Player" )
level: 1
commands: {
version: true
where: true
jumpto: true
who: true
who2: true
who3: true
whomap: true
whomap2: true
whomap3: true
users: true
broadcast: true
localbroadcast: true
}
log_commands: true
permissions: {
receive_requests: true
view_equipment: true
}
},
{
id: 3
name: "Script Manager"
inherit: ( "Support" )
level: 1
commands: {
tonpc: true
hidenpc: true
shownpc: true
loadnpc: true
unloadnpc: true
npcmove: true
addwarp: true
}
log_commands: true
permissions: {
any_warp: true
}
},
{
id: 4
name: "Event Manager"
inherit: ( "Support" )
level: 1
commands: {
monster: true
monstersmall: true
monsterbig: true
killmonster2: true
cleanarea: true
cleanmap: true
item: [true, true]
zeny: [true, true]
disguise: [true, true]
undisguise: [true, true]
size: [true, true]
raise: true
raisemap: true
day: true
night: true
skillon: true
skilloff: true
pvpon: true
pvpoff: true
gvgon: true
gvgoff: true
allowks: true
me: true
marry: true
divorce: true
refreshall: true
}
log_commands: true
permissions: {
can_trade: false
any_warp: true
}
},
{
id: 5
name: "VIP"
inherit: ( "Player" ) /* can do everything Players can */
level: 0
commands: {
rates: true
who: true
}
permissions: {
/* no permissions by default */
}
},
{
id: 10
name: "Law Enforcement"
inherit: ( "Support" )
level: 2
commands: {
hide: true
follow: true
kick: true
disguise: true
fakename: true
option: true
speed: true
warp: true
kill: true
recall: true
ban: true
block: true
jail: true
jailfor: true
mute: true
storagelist: true
cartlist: true
itemlist: true
stats: true
}
log_commands: true
permissions: {
join_chat: true
kick_chat: true
hide_session: true
who_display_aid: true
hack_info: true
any_warp: true
view_hpmeter: true
}
},
{
id: 99
name: "Admin"
level: 99
inherit: ( "Support", "Law Enforcement" )
commands: {
/* not necessary due to all_commands: true */
}
log_commands: true
permissions: {
can_trade: true
can_party: true
command_enable: true
all_skill: false
all_equipment: false
skill_unconditional: false
use_check: true
use_changemaptype: true
all_commands: true
channel_admin: true
can_trade_bounded: true
item_unconditional: false
bypass_stat_onclone: true
bypass_max_stat: true
/* all_permission: true */
}
}
)

245
conf/groups.yml Normal file
View File

@@ -0,0 +1,245 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Player Group Database
###########################################################################
#
# Player Group Settings
#
###########################################################################
# - Id Group ID.
# Name Group name.
# Level GM Level used for ranking groups. (Default: 0)
# LogCommands Whether atcommands should be logged or not. (Default: false)
# Commands: List of atcommands that can be used by this group. (Default: none)
# <atcommand name> Whether the specified atcommand can be used by this group or not.
# CharCommands: List of charcommands that can be used by this group. (Default: none)
# <charcommand name> Whether the specified charcommand can be used by this group or not.
# Permissions: List of permissions the group has. (Default: none)
# <permission name> Whether the group has this permission or not.
# Inherit: List of groups that will be inherited. (Default: none)
# <group name> Whether this group will be inherited or not.
###########################################################################
Header:
Type: PLAYER_GROUP_DB
Version: 1
Body:
- Id: 0
# group 0 is the default group for every new account
Name: Player
Level: 0
Commands:
changedress: true
resurrect: true
Permissions:
# without this basic permissions regular players could not trade or party
can_trade: true
can_party: true
attendance: true
- Id: 1
Name: Super Player
# Can do everything Players can and more
Inherit:
Player: true
Level: 0
Commands:
# Informational commands
commands: true
charcommands: true
help: true
rates: true
uptime: true
showdelay: true
exp: true
mobinfo: true
iteminfo: true
whodrops: true
time: true
jailtime: true
hominfo: true
homstats: true
showexp: true
showzeny: true
whereis: true
# Feature commands
refresh: true
noask: true
noks: true
autoloot: true
alootid: true
autoloottype: true
autotrade: true
request: true
go: true
breakguild: true
channel: true
langtype: true
Permissions:
attendance: false
- Id: 2
Name: Support
Inherit:
Super Player: true
Level: 1
Commands:
version: true
where: true
jumpto: true
who: true
who2: true
who3: true
whomap: true
whomap2: true
whomap3: true
users: true
broadcast: true
localbroadcast: true
LogCommands: true
Permissions:
receive_requests: true
view_equipment: true
- Id: 3
Name: Script Manager
Inherit:
Support: true
Level: 1
Commands:
tonpc: true
hidenpc: true
shownpc: true
loadnpc: true
unloadnpc: true
npcmove: true
addwarp: true
LogCommands: true
Permissions:
any_warp: true
- Id: 4
Name: Event Manager
Inherit:
Support: true
Level: 1
Commands:
monster: true
monstersmall: true
monsterbig: true
killmonster2: true
cleanarea: true
cleanmap: true
item: true
zeny: true
disguise: true
undisguise: true
size: true
raise: true
raisemap: true
day: true
night: true
skillon: true
skilloff: true
pvpon: true
pvpoff: true
gvgon: true
gvgoff: true
allowks: true
me: true
marry: true
divorce: true
refreshall: true
CharCommands:
item: true
zeny: true
disguise: true
undisguise: true
size: true
LogCommands: true
Permissions:
can_trade: false
any_warp: true
- Id: 5
Name: VIP
# Can do everything Players can
Inherit:
Player: true
Level: 0
Commands:
rates: true
who: true
- Id: 10
Name: Law Enforcement
Inherit:
Support: true
Level: 2
Commands:
hide: true
follow: true
kick: true
disguise: true
fakename: true
option: true
speed: true
warp: true
kill: true
recall: true
ban: true
block: true
jail: true
jailfor: true
mute: true
storagelist: true
cartlist: true
itemlist: true
stats: true
LogCommands: true
Permissions:
join_chat: true
kick_chat: true
hide_session: true
who_display_aid: true
hack_info: true
any_warp: true
view_hpmeter: true
- Id: 99
Name: Admin
Level: 99
Inherit:
Support: true
Law Enforcement: true
LogCommands: true
Permissions:
can_trade: true
can_party: true
command_enable: true
all_skill: false
all_equipment: false
skill_unconditional: false
use_check: true
use_changemaptype: true
all_commands: true
channel_admin: true
can_trade_bounded: true
item_unconditional: false
bypass_stat_onclone: true
bypass_max_stat: true
#all_permission: true
Footer:
Imports:
- Path: conf/import/groups.yml

View File

@@ -0,0 +1,41 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Player Group Database
###########################################################################
#
# Player Group Settings
#
###########################################################################
# - Id Group ID.
# Name Group name.
# Level GM Level used for ranking groups. (Default: 0)
# LogCommands Whether atcommands should be logged or not. (Default: false)
# Commands: List of atcommands that can be used by this group. (Default: none)
# <atcommand name> Whether the specified atcommand can be used by this group or not.
# CharCommands: List of charcommands that can be used by this group. (Default: none)
# <charcommand name> Whether the specified charcommand can be used by this group or not.
# Permissions: List of permissions the group has. (Default: none)
# <permission name> Whether the group has this permission or not.
# Inherit: List of groups that will be inherited. (Default: none)
# <group name> Whether this group will be inherited or not.
###########################################################################
Header:
Type: PLAYER_GROUP_DB
Version: 1

View File

@@ -8,37 +8,40 @@
//--------------------------------------------------------------
// Enable Logs? (Note 3)
// 0x0000000 - Don't log at all
// 0x0000001 - (T) Log trades
// 0x0000002 - (V) Log vending transactions
// 0x0000004 - (P) Log items drop/picked by players
// 0x0000008 - (L) Log items drop/looted by monsters
// 0x0000010 - (S) Log NPC transactions (buy/sell)
// 0x0000020 - (N) Log Script transactions (items deleted/acquired through quests)
// 0x0000040 - (D) Log items stolen from mobs (Steal/Gank)
// 0x0000080 - (C) Log player-used items (consumables/pet&hom&merc food/items used for skills&attacks)
// 0x0000100 - (O) Log produced/ingredient items
// 0x0000200 - (U) Log MVP prize items
// 0x0000400 - (A) Log player created/deleted items (through @/# commands)
// 0x0000800 - (R) Log items placed/retrieved from storage.
// 0x0001000 - (G) Log items placed/retrieved from guild storage.
// 0x0002000 - (E) Log mail system transactions.
// 0x0004000 - (I) Log auction system transactions.
// 0x0008000 - (B) Log buying store transactions
// 0x0010000 - (X) Log all other transactions (rentals expiring/inserting cards/items removed by item_check/
// 0x00000000 - Don't log at all
// 0x00000001 - (T) Log trades
// 0x00000002 - (V) Log vending transactions
// 0x00000004 - (P) Log items drop/picked by players
// 0x00000008 - (L) Log items drop/looted by monsters
// 0x00000010 - (S) Log NPC transactions (buy/sell)
// 0x00000020 - (N) Log Script transactions (items deleted/acquired through quests)
// 0x00000040 - (D) Log items stolen from mobs (Steal/Gank)
// 0x00000080 - (C) Log player-used items (consumables/pet&hom&merc food/items used for skills&attacks)
// 0x00000100 - (O) Log produced/ingredient items
// 0x00000200 - (U) Log MVP prize items
// 0x00000400 - (A) Log player created/deleted items (through @/# commands)
// 0x00000800 - (R) Log items placed/retrieved from storage.
// 0x00001000 - (G) Log items placed/retrieved from guild storage.
// 0x00002000 - (E) Log mail system transactions.
// 0x00004000 - (I) Log auction system transactions.
// 0x00008000 - (B) Log buying store transactions
// 0x00010000 - (X) Log all other transactions (rentals expiring/inserting cards/items removed by item_check/
// rings deleted by divorce/pet egg (un)hatching/pet armor (un)equipping/Weapon Refine skill/Remove Trap skill/Stylist)
// 0x0020000 - ($) Log cash transactions
// 0x0040000 - (K) Log account bank transactions
// 0x0080000 - (F) Removed bound items when guild/party is broken
// 0x0100000 - (Y) Log Roulette Lottery
// 0x0200000 - (Z) Merged items from item mergers process.
// 0x0400000 - (Q) Log items given from quest-granted drops.
// 0x0800000 - (H) Log items consumed by Private Airship system
// 0x1000000 - (J) Log Barter Shop transactions
// 0x2000000 - (W) Log Laphine system transactions
// 0x00020000 - ($) Log cash transactions
// 0x00040000 - (K) Log account bank transactions
// 0x00080000 - (F) Removed bound items when guild/party is broken
// 0x00100000 - (Y) Log Roulette Lottery
// 0x00200000 - (Z) Merged items from item mergers process.
// 0x00400000 - (Q) Log items given from quest-granted drops.
// 0x00800000 - (H) Log items consumed by Private Airship system
// 0x01000000 - (J) Log Barter Shop transactions
// 0x02000000 - (W) Log Laphine system transactions
// 0x04000000 - (0) Enchantgrade UI
// 0x08000000 - (1) Reform UI
// 0x10000000 - (2) Enchant UI
// Example: Log trades+vending+script items+created items: 1+2+32+1024 = 1059
// Please note that moving items from inventory to cart and back is not logged by design.
enable_logs: 0xFFFFFFF
enable_logs: 0xFFFFFFFF
// Use MySQL Logs? (Note 1)
sql_logs: yes

View File

@@ -1483,5 +1483,25 @@ map: verus02_b
map: tur_d04ia
map: tur_d04ib
// Episode 19
map: icecastle
map: icas_in
map: jor_tail
map: jor_back1
map: jor_back2
map: jor_back3
map: jor_nest
map: jor_dun01
map: jor_dun02
map: jor_dun03
map: jor_ab01
map: jor_ab02
map: jor_que
map: air_if
map: 1@iwp
map: 1@jorchs
map: 1@jorlab
map: 1@whl
//------------------------- Clone Maps ---------------------------
//------------------------- Extra Maps ---------------------------

View File

@@ -921,7 +921,10 @@
// @mobinfo RES/MRES
827: RES:%d MRES:%d
//828-899 free
// General packet version check messages
828: This command requires packet version %s or newer.
//829-899 free
//------------------------------------
// More atcommands message
@@ -1106,8 +1109,7 @@
// @partyrecall
1035: Please enter a party name/ID (usage: @partyrecall <party_name/ID>).
// @reloadatcommand
1036: Error reading groups.conf, reload failed.
//1036 free
//1037 free
// @mapinfo

View File

@@ -865,8 +865,7 @@
// @partyrecall
1035: 請輸入隊伍名稱/ID (用法: @partyrecall <party_name/ID>).
// @reloadatcommand
1036: Error reading groups.conf, reload failed.
//1036 free
//1037 free
// @mapinfo

View File

@@ -877,8 +877,7 @@
// @partyrecall
1035: Entrez un nom/ID d'Equipe (usage: @partyrecall <nom/ID_party>).
// @reloadatcommand
1036: Erreur à la lecture de groups.conf, reload échoué.
//1036 free
//1037 free
// @mapinfo

View File

@@ -964,8 +964,7 @@
// @partyrecall
1035: Harap masukkan nama party/ID. (Penggunaan: @partyrecall <nama party/ID>).
// @reloadatcommand
1036: Terjadi kesalahan saat membaca groups.conf, tidak berhasil dimuat ulang.
//1036 free
//1037 free
// @mapinfo

View File

@@ -1046,8 +1046,7 @@
// @partyrecall
1035: Digite o nome/ID de um grupo (uso: @partyrecall <nome/ID_do_grupo>).
// @reloadatcommand
1036: Erro na leitura do grups.conf, recarregamento falhou.
//1036 free
//1037 free
// @mapinfo

View File

@@ -878,8 +878,7 @@
// @partyrecall
1035: Введите ID/название группы (Использование: @partyrecall <ID/название группы>).
// @reloadatcommand
1036: Ошибка чтения файла groups.conf, перезагрузка не удалась.
//1036 free
//1037 free
// @mapinfo

View File

@@ -1015,8 +1015,7 @@
// @partyrecall
1035: Introduce el nombre/ID de un grupo (instrucciones: @partyrecall <nombre/ID del grupo>).
// @reloadatcommand
1036: Ha ocurrido un error al cargar el archivo groups.conf.
//1036 free
//1037 free
// @mapinfo

View File

@@ -871,8 +871,7 @@
// @partyrecall
1035: ג»<D792>´<EFBFBD><C2B4>÷<EFBFBD>×<EFBFBD>ט<EFBFBD>/ID party (<28><>¸<EFBFBD>ד×י: @partyrecall <×<>ט<EFBFBD>/ID party>).
// @reloadatcommand
1036: א<><D790>´¢י<C2A2>¼<EFBFBD>´¾<C2B4><C2BE>´ד¹<D793><C2B9><EFBFBD>¼ט<C2BC>¹ה<C2B9><D794>ל groups.conf, <20><><EFBFBD>ג<EFBFBD><D792>´ד<C2B4><D793>ט<EFBFBD>י<EFBFBD>א<EFBFBD><D790><EFBFBD>.
//1036 free
//1037 free
// @mapinfo

View File

@@ -32,6 +32,169 @@ Header:
Type: CASTLE_DB
Version: 1
Body:
# WOE FE castle
- Id: 0
Map: aldeg_cas01
Name: Neuschwanstein
#Name: Noisyubantian
Npc: Agit#aldeg_cas01
- Id: 1
Map: aldeg_cas02
Name: Hohenschwangau
#Name: Hohensyubangawoo
Npc: Agit#aldeg_cas02
- Id: 2
Map: aldeg_cas03
Name: Nuernberg
#Name: Nyirenverk
Npc: Agit#aldeg_cas03
- Id: 3
Map: aldeg_cas04
Name: Wuerzburg
#Name: Byirtsburi
Npc: Agit#aldeg_cas04
- Id: 4
Map: aldeg_cas05
Name: Rothenburg
#Name: Rotenburk
Npc: Agit#aldeg_cas05
- Id: 5
Map: gefg_cas01
Name: Repherion
#Name: Reprion
Npc: Agit#gefg_cas01
- Id: 6
Map: gefg_cas02
Name: Eeyolbriggar
#Name: Yolbriger
Npc: Agit#gefg_cas02
- Id: 7
Map: gefg_cas03
Name: Yesnelph
#Name: Isinlife
Npc: Agit#gefg_cas03
- Id: 8
Map: gefg_cas04
Name: Bergel
#Name: Berigel
Npc: Agit#gefg_cas04
- Id: 9
Map: gefg_cas05
Name: Mersetzdeitz
#Name: Melsedetsu
Npc: Agit#gefg_cas05
- Id: 10
Map: payg_cas01
Name: Bright Arbor
#Name: Mingting
Npc: Agit#payg_cas01
- Id: 11
Map: payg_cas02
Name: Scarlet Palace
#Name: Tiantan
Npc: Agit#payg_cas02
- Id: 12
Map: payg_cas03
Name: Holy Shadow
#Name: Fuying
Npc: Agit#payg_cas03
- Id: 13
Map: payg_cas04
Name: Sacred Altar
#Name: Honglou
Npc: Agit#payg_cas04
- Id: 14
Map: payg_cas05
Name: Bamboo Grove Hill
#Name: Zhulinxian
Npc: Agit#payg_cas05
- Id: 15
Map: prtg_cas01
Name: Kriemhild
#Name: Creamhilt
Npc: Agit#prtg_cas01
- Id: 16
Map: prtg_cas02
Name: Swanhild
#Name: Sbanhealt
Npc: Agit#prtg_cas02
- Id: 17
Map: prtg_cas03
Name: Fadhgridh
#Name: Lazrigees
Npc: Agit#prtg_cas03
- Id: 18
Map: prtg_cas04
Name: Skoegul
#Name: Squagul
Npc: Agit#prtg_cas04
- Id: 19
Map: prtg_cas05
Name: Gondul
#Name: Guindull
Npc: Agit#prtg_cas05
# WOE NGuild castle
- Id: 20
Map: nguild_alde
Name: Earth
Npc: Agit_N01
- Id: 21
Map: nguild_gef
Name: Air
Npc: Agit_N02
- Id: 22
Map: nguild_pay
Name: Water
Npc: Agit_N03
- Id: 23
Map: nguild_prt
Name: Fire
Npc: Agit_N04
# WOE SE castle
- Id: 24
Map: schg_cas01
Name: Himinn
Npc: Manager#schg_cas01
- Id: 25
Map: schg_cas02
Name: Andlangr
Npc: Manager#schg_cas02
- Id: 26
Map: schg_cas03
Name: Viblainn
Npc: Manager#schg_cas03
- Id: 27
Map: schg_cas04
Name: Hljod
Npc: Manager#schg_cas04
- Id: 28
Map: schg_cas05
Name: Skidbladnir
Npc: Manager#schg_cas05
- Id: 29
Map: arug_cas01
Name: Mardol
Npc: Manager#arug_cas01
- Id: 30
Map: arug_cas02
Name: Cyr
Npc: Manager#arug_cas02
- Id: 31
Map: arug_cas03
Name: Horn
Npc: Manager#arug_cas03
- Id: 32
Map: arug_cas04
Name: Gefn
Npc: Manager#arug_cas04
- Id: 33
Map: arug_cas05
Name: Bandis
Npc: Manager#arug_cas05
Footer:
Imports:
- Path: db/pre-re/castle_db.yml

58
db/enchantgrade.yml Normal file
View File

@@ -0,0 +1,58 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# 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.
# Refine Required refine level.
# Chance Base chance of success out of 0~10000.
# Bonus Enchantgrade bonus. (Default: 0)
# Announce Announce if someone tries to increase the enchantgrade. (Default: true)
# 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)
###########################################################################
Header:
Type: ENCHANTGRADE_DB
Version: 1
Footer:
Imports:
- Path: db/re/enchantgrade.yml
Mode: Renewal
- Path: db/import/enchantgrade.yml

View File

@@ -0,0 +1,52 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# 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.
# Refine Required refine level.
# Chance Base chance of success out of 0~10000.
# Bonus Enchantgrade bonus. (Default: 0)
# Announce Announce if someone tries to increase the enchantgrade. (Default: true)
# 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)
###########################################################################
Header:
Type: ENCHANTGRADE_DB
Version: 1

View File

@@ -25,9 +25,9 @@
# - Jobs: List of jobs associated to group.
# Job Job name.
# MaxWeight Base maximum weight. (Default: 20000)
# HPFactor HP increase per base level. Floor(HPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 20000)
# HPMultiplicator Base HP value. 35 + BaseLv * (HPMultiplicator / 100). Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SPFactor SP increase per job level. Floor(SPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# HpFactor Exponential HP increase. Per base level: [HpFactor * BaseLv / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 0)
# HpIncrease Linear HP increase. Per base level: [HpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SpIncrease Linear SP increase. Per base level: [SpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# BaseASPD: Base ASPD for each weapon type. (Default: 2000)
# Weapon Weapon type with associated ASPD.
# BonusStats: Job level bonus stats/traits.
@@ -78,7 +78,7 @@
Header:
Type: JOB_STATS
Version: 1
Version: 2
#Body:
###########################################################################

View File

@@ -23,11 +23,11 @@
#
###########################################################################
# - Jobs: List of jobs associated to group.
# Job Job ID.
# Job Job name.
# MaxWeight Base maximum weight. (Default: 20000)
# HPFactor HP increase per base level. Floor(HPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 20000)
# HPMultiplicator Base HP value. 35 + BaseLv * (HPMultiplicator / 100). Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SPFactor SP increase per job level. Floor(SPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# HpFactor Exponential HP increase. Per base level: [HpFactor * BaseLv / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 0)
# HpIncrease Linear HP increase. Per base level: [HpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SpIncrease Linear SP increase. Per base level: [SpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# BaseASPD: Base ASPD for each weapon type. (Default: 2000)
# Weapon Weapon type with associated ASPD.
# BonusStats: Job level bonus stats/traits.
@@ -78,7 +78,7 @@
Header:
Type: JOB_STATS
Version: 1
Version: 2
Footer:
Imports:

BIN
db/map_cache.dat Normal file

Binary file not shown.

View File

@@ -1143,6 +1143,25 @@ que_thr
tur_d04ia
tur_d04ib
wolfvill
icecastle
icas_in
jor_tail
jor_back1
jor_back2
jor_back3
jor_nest
jor_dun01
jor_dun02
jor_dun03
jor_ab01
jor_ab02
jor_que
air_if
1@iwp
1@jorchs
1@jorlab
1@whl
//======================================================================================
// - Other/Extra maps -

View File

@@ -31,208 +31,3 @@
Header:
Type: CASTLE_DB
Version: 1
Body:
# WOE FE castle
- Id: 0
Map: aldeg_cas01
Name: Neuschwanstein
#Name: Noisyubantian
Npc: Agit#aldeg_cas01
- Id: 1
Map: aldeg_cas02
Name: Hohenschwangau
#Name: Hohensyubangawoo
Npc: Agit#aldeg_cas02
- Id: 2
Map: aldeg_cas03
Name: Nuernberg
#Name: Nyirenverk
Npc: Agit#aldeg_cas03
- Id: 3
Map: aldeg_cas04
Name: Wuerzburg
#Name: Byirtsburi
Npc: Agit#aldeg_cas04
- Id: 4
Map: aldeg_cas05
Name: Rothenburg
#Name: Rotenburk
Npc: Agit#aldeg_cas05
- Id: 5
Map: gefg_cas01
Name: Repherion
#Name: Reprion
Npc: Agit#gefg_cas01
- Id: 6
Map: gefg_cas02
Name: Eeyolbriggar
#Name: Yolbriger
Npc: Agit#gefg_cas02
- Id: 7
Map: gefg_cas03
Name: Yesnelph
#Name: Isinlife
Npc: Agit#gefg_cas03
- Id: 8
Map: gefg_cas04
Name: Bergel
#Name: Berigel
Npc: Agit#gefg_cas04
- Id: 9
Map: gefg_cas05
Name: Mersetzdeitz
#Name: Melsedetsu
Npc: Agit#gefg_cas05
- Id: 10
Map: payg_cas01
Name: Bright Arbor
#Name: Mingting
Npc: Agit#payg_cas01
- Id: 11
Map: payg_cas02
Name: Scarlet Palace
#Name: Tiantan
Npc: Agit#payg_cas02
- Id: 12
Map: payg_cas03
Name: Holy Shadow
#Name: Fuying
Npc: Agit#payg_cas03
- Id: 13
Map: payg_cas04
Name: Sacred Altar
#Name: Honglou
Npc: Agit#payg_cas04
- Id: 14
Map: payg_cas05
Name: Bamboo Grove Hill
#Name: Zhulinxian
Npc: Agit#payg_cas05
- Id: 15
Map: prtg_cas01
Name: Kriemhild
#Name: Creamhilt
Npc: Agit#prtg_cas01
- Id: 16
Map: prtg_cas02
Name: Swanhild
#Name: Sbanhealt
Npc: Agit#prtg_cas02
- Id: 17
Map: prtg_cas03
Name: Fadhgridh
#Name: Lazrigees
Npc: Agit#prtg_cas03
- Id: 18
Map: prtg_cas04
Name: Skoegul
#Name: Squagul
Npc: Agit#prtg_cas04
- Id: 19
Map: prtg_cas05
Name: Gondul
#Name: Guindull
Npc: Agit#prtg_cas05
# WOE NGuild castle
- Id: 20
Map: nguild_alde
Name: Earth
Npc: Agit_N01
- Id: 21
Map: nguild_gef
Name: Air
Npc: Agit_N02
- Id: 22
Map: nguild_pay
Name: Water
Npc: Agit_N03
- Id: 23
Map: nguild_prt
Name: Fire
Npc: Agit_N04
# WOE SE castle
- Id: 24
Map: schg_cas01
Name: Himinn
Npc: Manager#schg_cas01
- Id: 25
Map: schg_cas02
Name: Andlangr
Npc: Manager#schg_cas02
- Id: 26
Map: schg_cas03
Name: Viblainn
Npc: Manager#schg_cas03
- Id: 27
Map: schg_cas04
Name: Hljod
Npc: Manager#schg_cas04
- Id: 28
Map: schg_cas05
Name: Skidbladnir
Npc: Manager#schg_cas05
- Id: 29
Map: arug_cas01
Name: Mardol
Npc: Manager#arug_cas01
- Id: 30
Map: arug_cas02
Name: Cyr
Npc: Manager#arug_cas02
- Id: 31
Map: arug_cas03
Name: Horn
Npc: Manager#arug_cas03
- Id: 32
Map: arug_cas04
Name: Gefn
Npc: Manager#arug_cas04
- Id: 33
Map: arug_cas05
Name: Bandis
Npc: Manager#arug_cas05
# WOE TE castle
- Id: 34
Map: te_aldecas1
Name: Kafragarten 1
Npc: Manager_TE#Glaris
- Id: 35
Map: te_aldecas2
Name: Kafragarten 2
Npc: Manager_TE#Defolty
- Id: 36
Map: te_aldecas3
Name: Kafragarten 3
Npc: Manager_TE#Sorin
- Id: 37
Map: te_aldecas4
Name: Kafragarten 4
Npc: Manager_TE#Bennit
- Id: 38
Map: te_aldecas5
Name: Kafragarten 5
Npc: Manager_TE#W
- Id: 39
Map: te_prtcas01
Name: Gloria 1
Npc: Manager_TE#Gaebolg
- Id: 40
Map: te_prtcas02
Name: Gloria 2
Npc: Manager_TE#Richard
- Id: 41
Map: te_prtcas03
Name: Gloria 3
Npc: Manager_TE#Wigner
- Id: 42
Map: te_prtcas04
Name: Gloria 4
Npc: Manager_TE#Heine
- Id: 43
Map: te_prtcas05
Name: Gloria 5
Npc: Manager_TE#Nerious

View File

@@ -28300,8 +28300,6 @@ Body:
bonus bMaxHP,50;
bonus bMaxSP,10;
skill "AL_RUWACH",1;
UnEquipScript: |
sc_end SC_RUWACH;
- Id: 5213
AegisName: Black_Bunny_Band
Name: Sheila Hairnet
@@ -31603,8 +31601,6 @@ Body:
Script: |
bonus bVit,1;
skill "AL_ANGELUS",1;
UnEquipScript: |
sc_end SC_ANGELUS;
- Id: 5383
AegisName: Hunting_Cap
Name: Hunter's Cap

View File

@@ -6451,8 +6451,6 @@ Body:
BuyingStore: true
Script: |
bonus3 bAutoSpellWhenHit,"CR_AUTOGUARD",3+7*(getskilllv("CR_AUTOGUARD") == 10),30;
UnEquipScript: |
sc_end SC_AUTOGUARD;
- Id: 4300
AegisName: Chimera_Card
Name: Chimera Card

View File

@@ -25,9 +25,9 @@
# - Jobs: List of jobs associated to group.
# Job Job name.
# MaxWeight Base maximum weight. (Default: 20000)
# HPFactor HP increase per base level. Floor(HPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 20000)
# HPMultiplicator Base HP value. 35 + BaseLv * (HPMultiplicator / 100). Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SPFactor SP increase per job level. Floor(SPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# HpFactor Exponential HP increase. Per base level: [HpFactor * BaseLv / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 0)
# HpIncrease Linear HP increase. Per base level: [HpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SpIncrease Linear SP increase. Per base level: [SpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# BaseASPD: Base ASPD for each weapon type. (Default: 2000)
# Weapon Weapon type with associated ASPD.
# BonusStats: Job level bonus stats/traits.
@@ -78,7 +78,7 @@
Header:
Type: JOB_STATS
Version: 1
Version: 2
Body:
- Jobs:

View File

@@ -25,9 +25,9 @@
# - Jobs: List of jobs associated to group.
# Job Job name.
# MaxWeight Base maximum weight. (Default: 20000)
# HPFactor HP increase per base level. Floor(HPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 20000)
# HPMultiplicator Base HP value. 35 + BaseLv * (HPMultiplicator / 100). Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SPFactor SP increase per job level. Floor(SPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# HpFactor Exponential HP increase. Per base level: [HpFactor * BaseLv / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 0)
# HpIncrease Linear HP increase. Per base level: [HpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SpIncrease Linear SP increase. Per base level: [SpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# BaseASPD: Base ASPD for each weapon type. (Default: 2000)
# Weapon Weapon type with associated ASPD.
# BonusStats: Job level bonus stats/traits.
@@ -78,7 +78,7 @@
Header:
Type: JOB_STATS
Version: 1
Version: 2
Body:
- Jobs:

View File

@@ -25,9 +25,9 @@
# - Jobs: List of jobs associated to group.
# Job Job name.
# MaxWeight Base maximum weight. (Default: 20000)
# HPFactor HP increase per base level. Floor(HPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 20000)
# HPMultiplicator Base HP value. 35 + BaseLv * (HPMultiplicator / 100). Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SPFactor SP increase per job level. Floor(SPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# HpFactor Exponential HP increase. Per base level: [HpFactor * BaseLv / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 0)
# HpIncrease Linear HP increase. Per base level: [HpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SpIncrease Linear SP increase. Per base level: [SpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# BaseASPD: Base ASPD for each weapon type. (Default: 2000)
# Weapon Weapon type with associated ASPD.
# BonusStats: Job level bonus stats/traits.
@@ -78,7 +78,7 @@
Header:
Type: JOB_STATS
Version: 1
Version: 2
Body:
- Jobs:
@@ -109,7 +109,7 @@ Body:
Swordman: true
MaxWeight: 28000
HpFactor: 70
SpFactor: 200
SpIncrease: 200
BaseASPD:
Fist: 400
Dagger: 500
@@ -162,7 +162,7 @@ Body:
Mage: true
MaxWeight: 22000
HpFactor: 30
SpFactor: 600
SpIncrease: 600
BaseASPD:
Fist: 500
Dagger: 600
@@ -209,7 +209,7 @@ Body:
Archer: true
MaxWeight: 26000
HpFactor: 50
SpFactor: 200
SpIncrease: 200
BaseASPD:
Fist: 400
Dagger: 600
@@ -255,7 +255,7 @@ Body:
Acolyte: true
MaxWeight: 24000
HpFactor: 40
SpFactor: 500
SpIncrease: 500
BaseASPD:
Fist: 400
Mace: 600
@@ -303,7 +303,7 @@ Body:
Merchant: true
MaxWeight: 28000
HpFactor: 40
SpFactor: 300
SpIncrease: 300
BaseASPD:
Fist: 400
Dagger: 600
@@ -353,7 +353,7 @@ Body:
Thief: true
MaxWeight: 24000
HpFactor: 50
SpFactor: 200
SpIncrease: 200
BaseASPD:
Fist: 400
Dagger: 500
@@ -402,7 +402,7 @@ Body:
Knight2: true
MaxWeight: 28000
HpFactor: 150
SpFactor: 300
SpIncrease: 300
BaseASPD:
Fist: 400
Dagger: 500
@@ -479,7 +479,7 @@ Body:
Priest: true
MaxWeight: 26000
HpFactor: 75
SpFactor: 800
SpIncrease: 800
BaseASPD:
Fist: 400
Mace: 600
@@ -552,7 +552,7 @@ Body:
Wizard: true
MaxWeight: 24000
HpFactor: 55
SpFactor: 900
SpIncrease: 900
BaseASPD:
Fist: 500
Dagger: 575
@@ -623,7 +623,7 @@ Body:
Blacksmith: true
MaxWeight: 30000
HpFactor: 90
SpFactor: 400
SpIncrease: 400
BaseASPD:
Fist: 400
Dagger: 600
@@ -697,7 +697,7 @@ Body:
Hunter: true
MaxWeight: 27000
HpFactor: 85
SpFactor: 400
SpIncrease: 400
BaseASPD:
Fist: 400
Dagger: 600
@@ -767,7 +767,7 @@ Body:
Assassin: true
MaxWeight: 24000
HpFactor: 110
SpFactor: 400
SpIncrease: 400
BaseASPD:
Fist: 400
Dagger: 500
@@ -840,8 +840,8 @@ Body:
Crusader2: true
MaxWeight: 28000
HpFactor: 110
HpMultiplicator: 700
SpFactor: 470
HpIncrease: 700
SpIncrease: 470
BaseASPD:
Fist: 400
Dagger: 500
@@ -918,8 +918,8 @@ Body:
Monk: true
MaxWeight: 26000
HpFactor: 90
HpMultiplicator: 650
SpFactor: 470
HpIncrease: 650
SpIncrease: 470
BaseASPD:
Fist: 400
Mace: 575
@@ -992,7 +992,7 @@ Body:
Sage: true
MaxWeight: 24000
HpFactor: 75
SpFactor: 700
SpIncrease: 700
BaseASPD:
Fist: 450
Dagger: 525
@@ -1064,7 +1064,7 @@ Body:
Rogue: true
MaxWeight: 24000
HpFactor: 85
SpFactor: 500
SpIncrease: 500
BaseASPD:
Fist: 400
Dagger: 500
@@ -1135,7 +1135,7 @@ Body:
Alchemist: true
MaxWeight: 30000
HpFactor: 90
SpFactor: 400
SpIncrease: 400
BaseASPD:
Fist: 400
Dagger: 550
@@ -1209,8 +1209,8 @@ Body:
Bard: true
MaxWeight: 27000
HpFactor: 75
HpMultiplicator: 300
SpFactor: 600
HpIncrease: 300
SpIncrease: 600
BaseASPD:
Fist: 400
Dagger: 550
@@ -1281,8 +1281,8 @@ Body:
Dancer: true
MaxWeight: 27000
HpFactor: 75
HpMultiplicator: 300
SpFactor: 600
HpIncrease: 300
SpIncrease: 600
BaseASPD:
Fist: 400
Dagger: 550
@@ -1425,8 +1425,8 @@ Body:
Gunslinger: true
MaxWeight: 28000
HpFactor: 89
HpMultiplicator: 0
SpFactor: 469
HpIncrease: 0
SpIncrease: 469
BaseASPD:
Fist: 500
Revolver: 700
@@ -1487,8 +1487,8 @@ Body:
Ninja: true
MaxWeight: 26000
HpFactor: 80
HpMultiplicator: 0
SpFactor: 540
HpIncrease: 0
SpIncrease: 540
BaseASPD:
Fist: 400
Dagger: 500
@@ -1572,7 +1572,7 @@ Body:
Swordman_High: true
MaxWeight: 28000
HpFactor: 70
SpFactor: 200
SpIncrease: 200
BaseASPD:
Fist: 400
Dagger: 500
@@ -1625,7 +1625,7 @@ Body:
Mage_High: true
MaxWeight: 22000
HpFactor: 30
SpFactor: 600
SpIncrease: 600
BaseASPD:
Fist: 500
Dagger: 600
@@ -1672,7 +1672,7 @@ Body:
Archer_High: true
MaxWeight: 26000
HpFactor: 50
SpFactor: 200
SpIncrease: 200
BaseASPD:
Fist: 400
Dagger: 600
@@ -1718,7 +1718,7 @@ Body:
Acolyte_High: true
MaxWeight: 24000
HpFactor: 40
SpFactor: 500
SpIncrease: 500
BaseASPD:
Fist: 400
Mace: 600
@@ -1766,7 +1766,7 @@ Body:
Merchant_High: true
MaxWeight: 28000
HpFactor: 40
SpFactor: 300
SpIncrease: 300
BaseASPD:
Fist: 400
Dagger: 600
@@ -1816,7 +1816,7 @@ Body:
Thief_High: true
MaxWeight: 24000
HpFactor: 50
SpFactor: 200
SpIncrease: 200
BaseASPD:
Fist: 400
Dagger: 500
@@ -1865,7 +1865,7 @@ Body:
Lord_Knight2: true
MaxWeight: 28000
HpFactor: 150
SpFactor: 300
SpIncrease: 300
BaseASPD:
Fist: 400
Dagger: 500
@@ -1972,7 +1972,7 @@ Body:
High_Priest: true
MaxWeight: 26000
HpFactor: 75
SpFactor: 800
SpIncrease: 800
BaseASPD:
Fist: 400
Mace: 600
@@ -2075,7 +2075,7 @@ Body:
High_Wizard: true
MaxWeight: 24000
HpFactor: 55
SpFactor: 900
SpIncrease: 900
BaseASPD:
Fist: 500
Dagger: 575
@@ -2176,7 +2176,7 @@ Body:
Whitesmith: true
MaxWeight: 30000
HpFactor: 90
SpFactor: 400
SpIncrease: 400
BaseASPD:
Fist: 400
Dagger: 600
@@ -2280,7 +2280,7 @@ Body:
Sniper: true
MaxWeight: 27000
HpFactor: 85
SpFactor: 400
SpIncrease: 400
BaseASPD:
Fist: 400
Dagger: 600
@@ -2380,7 +2380,7 @@ Body:
Assassin_Cross: true
MaxWeight: 24000
HpFactor: 110
SpFactor: 400
SpIncrease: 400
BaseASPD:
Fist: 400
Dagger: 500
@@ -2483,8 +2483,8 @@ Body:
Paladin2: true
MaxWeight: 28000
HpFactor: 110
HpMultiplicator: 700
SpFactor: 470
HpIncrease: 700
SpIncrease: 470
BaseASPD:
Fist: 400
Dagger: 500
@@ -2591,8 +2591,8 @@ Body:
Champion: true
MaxWeight: 26000
HpFactor: 90
HpMultiplicator: 650
SpFactor: 470
HpIncrease: 650
SpIncrease: 470
BaseASPD:
Fist: 400
Mace: 575
@@ -2695,7 +2695,7 @@ Body:
Professor: true
MaxWeight: 24000
HpFactor: 75
SpFactor: 700
SpIncrease: 700
BaseASPD:
Fist: 450
Dagger: 525
@@ -2797,7 +2797,7 @@ Body:
Stalker: true
MaxWeight: 24000
HpFactor: 85
SpFactor: 500
SpIncrease: 500
BaseASPD:
Fist: 400
Dagger: 500
@@ -2898,7 +2898,7 @@ Body:
Creator: true
MaxWeight: 30000
HpFactor: 90
SpFactor: 400
SpIncrease: 400
BaseASPD:
Fist: 400
Dagger: 550
@@ -3002,8 +3002,8 @@ Body:
Clown: true
MaxWeight: 27000
HpFactor: 75
HpMultiplicator: 300
SpFactor: 600
HpIncrease: 300
SpIncrease: 600
BaseASPD:
Fist: 400
Dagger: 550
@@ -3104,8 +3104,8 @@ Body:
Gypsy: true
MaxWeight: 27000
HpFactor: 75
HpMultiplicator: 300
SpFactor: 600
HpIncrease: 300
SpIncrease: 600
BaseASPD:
Fist: 400
Dagger: 550
@@ -3217,7 +3217,7 @@ Body:
Baby_Swordman: true
MaxWeight: 28000
HpFactor: 70
SpFactor: 200
SpIncrease: 200
BaseASPD:
Fist: 400
Dagger: 500
@@ -3270,7 +3270,7 @@ Body:
Baby_Mage: true
MaxWeight: 22000
HpFactor: 30
SpFactor: 600
SpIncrease: 600
BaseASPD:
Fist: 500
Dagger: 600
@@ -3317,7 +3317,7 @@ Body:
Baby_Archer: true
MaxWeight: 26000
HpFactor: 50
SpFactor: 200
SpIncrease: 200
BaseASPD:
Fist: 400
Dagger: 600
@@ -3363,7 +3363,7 @@ Body:
Baby_Acolyte: true
MaxWeight: 24000
HpFactor: 40
SpFactor: 500
SpIncrease: 500
BaseASPD:
Fist: 400
Mace: 600
@@ -3411,7 +3411,7 @@ Body:
Baby_Merchant: true
MaxWeight: 28000
HpFactor: 40
SpFactor: 300
SpIncrease: 300
BaseASPD:
Fist: 400
Dagger: 600
@@ -3461,7 +3461,7 @@ Body:
Baby_Thief: true
MaxWeight: 24000
HpFactor: 50
SpFactor: 200
SpIncrease: 200
BaseASPD:
Fist: 400
Dagger: 500
@@ -3510,7 +3510,7 @@ Body:
Baby_Knight2: true
MaxWeight: 28000
HpFactor: 150
SpFactor: 300
SpIncrease: 300
BaseASPD:
Fist: 400
Dagger: 500
@@ -3587,7 +3587,7 @@ Body:
Baby_Priest: true
MaxWeight: 26000
HpFactor: 75
SpFactor: 800
SpIncrease: 800
BaseASPD:
Fist: 400
Mace: 600
@@ -3660,7 +3660,7 @@ Body:
Baby_Wizard: true
MaxWeight: 24000
HpFactor: 55
SpFactor: 900
SpIncrease: 900
BaseASPD:
Fist: 500
Dagger: 575
@@ -3731,7 +3731,7 @@ Body:
Baby_Blacksmith: true
MaxWeight: 30000
HpFactor: 90
SpFactor: 400
SpIncrease: 400
BaseASPD:
Fist: 400
Dagger: 600
@@ -3805,7 +3805,7 @@ Body:
Baby_Hunter: true
MaxWeight: 27000
HpFactor: 85
SpFactor: 400
SpIncrease: 400
BaseASPD:
Fist: 400
Dagger: 600
@@ -3875,7 +3875,7 @@ Body:
Baby_Assassin: true
MaxWeight: 24000
HpFactor: 110
SpFactor: 400
SpIncrease: 400
BaseASPD:
Fist: 400
Dagger: 500
@@ -3948,8 +3948,8 @@ Body:
Baby_Crusader2: true
MaxWeight: 28000
HpFactor: 110
HpMultiplicator: 700
SpFactor: 470
HpIncrease: 700
SpIncrease: 470
BaseASPD:
Fist: 400
Dagger: 500
@@ -4026,8 +4026,8 @@ Body:
Baby_Monk: true
MaxWeight: 26000
HpFactor: 90
HpMultiplicator: 650
SpFactor: 470
HpIncrease: 650
SpIncrease: 470
BaseASPD:
Fist: 400
Mace: 575
@@ -4100,7 +4100,7 @@ Body:
Baby_Sage: true
MaxWeight: 24000
HpFactor: 75
SpFactor: 700
SpIncrease: 700
BaseASPD:
Fist: 450
Dagger: 525
@@ -4172,7 +4172,7 @@ Body:
Baby_Rogue: true
MaxWeight: 24000
HpFactor: 85
SpFactor: 500
SpIncrease: 500
BaseASPD:
Fist: 400
Dagger: 500
@@ -4243,7 +4243,7 @@ Body:
Baby_Alchemist: true
MaxWeight: 30000
HpFactor: 90
SpFactor: 400
SpIncrease: 400
BaseASPD:
Fist: 400
Dagger: 550
@@ -4317,8 +4317,8 @@ Body:
Baby_Bard: true
MaxWeight: 27000
HpFactor: 75
HpMultiplicator: 300
SpFactor: 600
HpIncrease: 300
SpIncrease: 600
BaseASPD:
Fist: 400
Dagger: 550
@@ -4389,8 +4389,8 @@ Body:
Baby_Dancer: true
MaxWeight: 27000
HpFactor: 75
HpMultiplicator: 300
SpFactor: 600
HpIncrease: 300
SpIncrease: 600
BaseASPD:
Fist: 400
Dagger: 550
@@ -4533,7 +4533,7 @@ Body:
Taekwon: true
MaxWeight: 28000
HpFactor: 70
SpFactor: 200
SpIncrease: 200
BaseASPD:
Fist: 400
BonusStats:
@@ -4578,8 +4578,8 @@ Body:
Star_Gladiator2: true
MaxWeight: 28000
HpFactor: 90
HpMultiplicator: 650
SpFactor: 470
HpIncrease: 650
SpIncrease: 470
BaseASPD:
Fist: 400
Book: 500
@@ -4648,7 +4648,7 @@ Body:
Soul_Linker: true
MaxWeight: 24000
HpFactor: 75
SpFactor: 900
SpIncrease: 900
BaseASPD:
Fist: 500
Dagger: 575

Binary file not shown.

View File

@@ -40631,10 +40631,10 @@ Body:
BaseExp: 74288
JobExp: 77950
MvpExp: 37144
Attack: 1060
Attack2: 2022
Defense: 7
MagicDefense: 36
Attack: 3304
Attack2: 4266
Defense: 32
MagicDefense: 66
Str: 140
Agi: 99
Vit: 30
@@ -40645,42 +40645,49 @@ Body:
SkillRange: 10
ChaseRange: 12
Size: Large
Race: Formless
Race: Brute
Element: Fire
ElementLevel: 3
WalkSpeed: 200
AttackDelay: 1150
AttackMotion: 1150
DamageMotion: 288
AttackDelay: 1152
AttackMotion: 1152
DamageMotion: 576
Ai: 21
Class: Boss
Modes:
Mvp: true
MvpDrops:
- Item: Old_Violet_Box
Rate: 5500
- Item: Old_Violet_Box
Rate: 5000
- Item: Old_Card_Album
Rate: 2000
Drops:
- Item: Treasure_Box
Rate: 5000
- Item: Elunium
Rate: 1000
- Item: Oridecon
Rate: 1000
- Item: Yggdrasilberry
Rate: 500
- Item: Hurricane_Fury
Rate: 100
- Item: Hunting_Spear
Rate: 100
- Item: Yggdrasilberry
Rate: 500
- Item: Elunium
Rate: 1000
- Item: Oridecon
Rate: 1000
- Item: Hell_Fire
Rate: 100
- Id: 2069
AegisName: IARA
Name: Iara
Level: 79
Hp: 5890
BaseExp: 1070
JobExp: 890
Attack: 171
Attack2: 270
MagicDefense: 39
Hp: 18952
BaseExp: 5517
JobExp: 1500
Attack: 614
Attack2: 713
MagicDefense: 76
Str: 69
Agi: 14
Vit: 41
@@ -40695,36 +40702,36 @@ Body:
Element: Water
ElementLevel: 3
WalkSpeed: 200
AttackDelay: 672
AttackMotion: 380
AttackDelay: 384
AttackMotion: 672
DamageMotion: 288
Ai: 17
Drops:
- Item: Mistic_Frozen
Rate: 5
- Item: Heart_Of_Mermaid
Rate: 9000
- Item: Fin
Rate: 500
- Item: Crystal_Mirror
Rate: 100
- Item: Witherless_Rose
Rate: 50
- Item: Crystal_Mirror
Rate: 100
- Item: Illusion_Flower
Rate: 10
- Item: Mistic_Frozen
Rate: 5
- Item: Mage_Coat
Rate: 1
- Id: 2070
AegisName: PIRANHA
Name: Piranha
Level: 75
Hp: 4522
BaseExp: 899
JobExp: 1023
Attack: 182
Attack2: 223
Defense: 2
MagicDefense: 10
Hp: 15882
BaseExp: 3877
JobExp: 2023
Attack: 549
Attack2: 590
Defense: 7
MagicDefense: 12
Str: 69
Agi: 45
Vit: 30
@@ -40734,41 +40741,41 @@ Body:
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Size: Large
Race: Fish
Element: Water
ElementLevel: 3
WalkSpeed: 200
AttackDelay: 768
AttackMotion: 768
DamageMotion: 384
Ai: 20
AttackMotion: 480
DamageMotion: 864
Ai: 04
Drops:
- Item: Sharp_Scale
Rate: 9000
- Item: Gill
Rate: 600
- Item: Mistic_Frozen
Rate: 5
- Item: Sharp_Scale
Rate: 9000
- Item: Tooth_Of_Ancient_Fish
Rate: 500
- Item: Lip_Of_Ancient_Fish
Rate: 500
- Item: Mistic_Frozen
Rate: 5
- Item: Fisherman's_Dagger
Rate: 5
- Item: Scalpel
Rate: 1
- Item: Fisherman's_Dagger
Rate: 5
- Id: 2071
AegisName: HEADLESS_MULE
Name: Headless Mule
Level: 80
Hp: 6620
BaseExp: 1011
JobExp: 1120
Attack: 210
Attack2: 267
Defense: 7
MagicDefense: 27
Hp: 20065
BaseExp: 6666
JobExp: 4111
Attack: 903
Attack2: 960
Defense: 33
MagicDefense: 44
Str: 68
Agi: 51
Vit: 50
@@ -40792,29 +40799,29 @@ Body:
Drops:
- Item: Burning_Horse_Shoe
Rate: 4000
- Item: Plate_Armor_
Rate: 5
- Item: Burning_Heart
Rate: 1000
- Item: Hot_Hair
Rate: 1000
- Item: Plate_Armor_
Rate: 5
- Item: Jamadhar_
Rate: 2
- Item: Inverse_Scale
Rate: 1
- Item: Plate_Armor_
Rate: 1
- Item: Jamadhar_
Rate: 2
- Id: 2072
AegisName: JAGUAR
Name: Jaguar
Level: 71
Hp: 3914
BaseExp: 720
JobExp: 512
Attack: 192
Attack2: 234
Defense: 9
MagicDefense: 12
Hp: 12590
BaseExp: 1820
JobExp: 1012
Attack: 538
Attack2: 580
Defense: 44
MagicDefense: 15
Str: 69
Agi: 30
Vit: 45
@@ -40829,10 +40836,10 @@ Body:
Element: Earth
ElementLevel: 2
WalkSpeed: 150
AttackDelay: 1250
AttackMotion: 580
DamageMotion: 360
Ai: 04
AttackDelay: 576
AttackMotion: 1248
DamageMotion: 480
Ai: 17
Drops:
- Item: Leopard_Skin
Rate: 3000
@@ -40848,13 +40855,13 @@ Body:
AegisName: TOUCAN
Name: Toucan
Level: 70
Hp: 3640
BaseExp: 659
JobExp: 544
Attack: 166
Attack2: 201
Defense: 3
MagicDefense: 10
Hp: 10555
BaseExp: 1002
JobExp: 1552
Attack: 478
Attack2: 513
Defense: 12
MagicDefense: 12
Str: 54
Agi: 14
Vit: 40
@@ -40864,37 +40871,37 @@ Body:
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Small
Size: Medium
Race: Brute
Element: Wind
ElementLevel: 2
WalkSpeed: 155
AttackDelay: 1450
AttackMotion: 960
DamageMotion: 480
Ai: 04
AttackDelay: 960
AttackMotion: 1440
DamageMotion: 960
Ai: 03
Drops:
- Item: Talon
Rate: 3000
- Item: Cyfar
Rate: 1000
- Item: Flower_Ring
Rate: 200
- Item: Yellow_Herb
Rate: 100
- Item: Blue_Herb
Rate: 50
- Item: Yellow_Herb
Rate: 100
- Item: Flower_Ring
Rate: 200
- Id: 2074
AegisName: CURUPIRA
Name: Curupira
Level: 68
Hp: 3096
BaseExp: 622
JobExp: 450
Attack: 140
Attack2: 175
Defense: 9
MagicDefense: 10
Hp: 8669
BaseExp: 1209
JobExp: 850
Attack: 409
Attack2: 444
Defense: 42
MagicDefense: 12
Str: 32
Agi: 23
Vit: 38
@@ -40905,27 +40912,25 @@ Body:
SkillRange: 10
ChaseRange: 12
Size: Medium
Race: Demon
Race: Demihuman
Element: Earth
ElementLevel: 1
WalkSpeed: 250
AttackDelay: 530
AttackMotion: 530
AttackDelay: 528
AttackMotion: 480
DamageMotion: 384
Ai: 07
Modes:
Detector: true
Drops:
- Item: Meat
Rate: 3000
- Item: Tiger_Skin_Panties
Rate: 500
- Item: Elunium_Stone
Rate: 250
- Item: Mace_
Rate: 100
- Item: Emveretarcon
Rate: 10
- Item: Tiger_Skin_Panties
Rate: 500
- Item: Mace_
Rate: 100
# - Id: 2075
# AegisName: E_VADON_X
# Name: Vadon
@@ -41086,12 +41091,16 @@ Body:
AegisName: E_HYDRA
Name: Strange Hydra
JapaneseName: Suspicious Hydra
Level: 34
Hp: 854
Attack: 1
Attack2: 2
Level: 14
Hp: 660
Attack: 22
Attack2: 28
Defense: 100
MagicDefense: 100
Agi: 14
Vit: 14
Dex: 40
Luk: 2
AttackRange: 7
SkillRange: 10
ChaseRange: 12
@@ -41108,11 +41117,11 @@ Body:
AegisName: G_PIRANHA
Name: Piranha
Level: 75
Hp: 4522
Attack: 182
Attack2: 223
Defense: 2
MagicDefense: 10
Hp: 15882
Attack: 549
Attack2: 590
Defense: 7
MagicDefense: 12
Str: 69
Agi: 45
Vit: 30
@@ -41122,14 +41131,14 @@ Body:
AttackRange: 1
SkillRange: 10
ChaseRange: 12
Size: Medium
Size: Large
Race: Fish
Element: Water
ElementLevel: 3
WalkSpeed: 200
AttackDelay: 768
AttackMotion: 768
DamageMotion: 384
AttackMotion: 480
DamageMotion: 864
Ai: 20
- Id: 2158
AegisName: S_HORNET

View File

@@ -796,8 +796,8 @@ Body:
Element: Earth
CastCancel: true
CastTime: 1000
Duration1: 20000
Duration2: 5000
Duration1: 5000
Duration2: 20000
Requires:
SpCost:
- Level: 1
@@ -5332,7 +5332,7 @@ Body:
IgnoreDefense: true
Flags:
IsNpc: true
Range: 3
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5346,7 +5346,7 @@ Body:
IgnoreFlee: true
Flags:
IsNpc: true
Range: -1
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5358,7 +5358,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: 9
Range: -7
Hit: Single
HitCount: 1
- Id: 161
@@ -5496,7 +5496,7 @@ Body:
IgnoreDefense: true
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5508,7 +5508,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Multi_Hit
HitCount:
- Level: 1
@@ -5542,7 +5542,7 @@ Body:
IgnoreFlee: true
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5560,7 +5560,6 @@ Body:
Flags:
IsNpc: true
TargetTrap: true
Range: 5
Hit: Single
HitCount: 1
Element: Fire
@@ -5603,7 +5602,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5617,7 +5616,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5631,7 +5630,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5645,7 +5644,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5659,12 +5658,12 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
Duration1: 20000
Duration2: 100
Duration1: 100
Duration2: 20000
Status: StoneWait
- Id: 181
Name: NPC_CURSEATTACK
@@ -5674,7 +5673,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Dark
@@ -5688,7 +5687,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5702,7 +5701,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Random
@@ -5714,7 +5713,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Water
@@ -5727,7 +5726,7 @@ Body:
Flags:
IsNpc: true
TargetHidden: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Earth
@@ -5739,7 +5738,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Fire
@@ -5751,7 +5750,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Wind
@@ -5763,7 +5762,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Poison
@@ -5776,7 +5775,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Holy
@@ -5788,7 +5787,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Dark
@@ -5800,7 +5799,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Ghost
@@ -5812,7 +5811,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5894,7 +5893,7 @@ Body:
IgnoreFlee: true
Flags:
IsNpc: true
Range: 9
Range: -7
Hit: Single
HitCount: 1
Element: Dark
@@ -6734,7 +6733,6 @@ Body:
TargetType: Self
DamageFlags:
NoDamage: true
Range: 9
Hit: Single
SplashArea: 1
CastTime: 2000
@@ -9193,7 +9191,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -1
Range: -2
Hit: Multi_Hit
HitCount: -2
Element: Dark
@@ -9211,12 +9209,12 @@ Body:
Flags:
IsNpc: true
TargetSelf: true
Range: 5
Hit: Single
HitCount: 1
Element: Dark
AfterCastWalkDelay: 1000
Duration1: 30000
Duration1: 950
Duration2: 30000
Unit:
Id: Dummyskill
Layout: -1
@@ -9319,7 +9317,7 @@ Body:
NoDamage: true
Flags:
IsNpc: true
Range: 9
Range: -2
Hit: Single
Duration1: 15000
Status: Stop
@@ -9344,7 +9342,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: 9
Range: -2
Hit: Single
HitCount: 1
Element: Weapon
@@ -9357,7 +9355,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: 9
Range: -2
Hit: Single
HitCount: 1
Element: Weapon
@@ -9369,7 +9367,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: 9
Range: -2
Hit: Single
HitCount: 1
Element: Weapon
@@ -9381,7 +9379,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Undead
@@ -9389,16 +9387,15 @@ Body:
Name: NPC_CHANGEUNDEAD
Description: Undead Attribute Change
MaxLevel: 5
Type: Magic
Type: Weapon
TargetType: Attack
DamageFlags:
NoDamage: true
Flags:
IsNpc: true
Range: 9
Range: -2
Hit: Single
HitCount: 1
Element: Undead
Duration1: 30000
Duration2: 60000
Status: ChangeUndead
- Id: 349
Name: NPC_POWERUP
@@ -9462,7 +9459,6 @@ Body:
NoDamage: true
Flags:
IsNpc: true
Range: 2
- Id: 353
Name: NPC_INVISIBLE
Description: Invisible
@@ -9483,7 +9479,6 @@ Body:
NoDamage: true
Flags:
IsNpc: true
Range: 2
Hit: Single
AfterCastActDelay:
- Level: 2
@@ -15912,8 +15907,8 @@ Body:
Area: 11
- Level: 5
Area: 14
Duration1: 20000
Duration2: 100
Duration1: 100
Duration2: 20000
Status: StoneWait
- Id: 667
Name: NPC_WIDECONFUSE
@@ -16121,7 +16116,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -16136,7 +16131,7 @@ Body:
NoDamage: true
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -16353,7 +16348,7 @@ Body:
NoDamage: true
Flags:
IsNpc: true
Range: -9
Range: -7
HitCount: 1
Duration2: 180000
Status: HellPower
@@ -29648,7 +29643,8 @@ Body:
HitCount: 1
CastCancel: true
AfterCastActDelay: 1000
Duration1: 10000
Duration1: 100
Duration2: 10000
Requires:
SpCost: 30
Unit:
@@ -30959,7 +30955,7 @@ Body:
MaxLevel: 5
Type: Weapon
TargetType: Attack
Range: 1
Range: 15
Hit: Multi_Hit
HitCount:
- Level: 1
@@ -31079,7 +31075,7 @@ Body:
MaxLevel: 3
Type: Weapon
TargetType: Attack
Range: 1
Range: 15
Hit: Single
HitCount: 1
AfterCastActDelay: 1000
@@ -31091,7 +31087,7 @@ Body:
MaxLevel: 5
Type: Magic
TargetType: Attack
Range: 9
Range: 15
Hit: Single
HitCount:
- Level: 1
@@ -31156,7 +31152,6 @@ Body:
IgnoreElement: true
IgnoreFlee: true
IgnoreDefCard: true
Range: 4
Hit: Single
HitCount: 1
Element: Weapon

View File

@@ -70,7 +70,6 @@ Body:
Stun: true
Sleep: true
Burning: true
#Undead: true
End:
Aeterna: true
EndReturn:
@@ -83,13 +82,13 @@ Body:
Opt1: StoneWait
Flags:
SendOption: true
BossResist: true
StopAttacking: true
Fail:
Freeze: true
Stun: true
Sleep: true
Burning: true
#Undead: true
EndReturn:
StoneWait: true
Stone: true
@@ -115,8 +114,13 @@ Body:
Inspiration: true
Warmer: true
Gvg_Freez: true
Stone: true
StoneWait: true
Freeze: true
Stun: true
Sleep: true
Burning: true
End:
Dancing: true
Aeterna: true
- Status: Stun
DurationLookup: NPC_STUNATTACK
@@ -130,13 +134,11 @@ Body:
BossResist: true
StopAttacking: true
StopCasting: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
Gvg_Stun: true
End:
Dancing: true
Stun: true
- Status: Sleep
DurationLookup: NPC_SLEEPATTACK
States:
@@ -150,13 +152,11 @@ Body:
StopAttacking: true
StopCasting: true
RemoveOnDamaged: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
Gvg_Sleep: true
End:
Dancing: true
Sleep: true
- Status: Poison
DurationLookup: NPC_POISON
CalcFlags:
@@ -168,10 +168,11 @@ Body:
SendOption: true
BossResist: true
StopAttacking: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
Poison: true
Dpoison: true
- Status: Curse
DurationLookup: NPC_CURSEATTACK
CalcFlags:
@@ -184,11 +185,11 @@ Body:
Flags:
SendOption: true
BossResist: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
Gvg_Curse: true
Curse: true
- Status: Silence
DurationLookup: NPC_SILENCEATTACK
States:
@@ -199,21 +200,20 @@ Body:
SendOption: true
BossResist: true
StopCasting: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
Gvg_Silence: true
Silence: true
- Status: Confusion
DurationLookup: NPC_WIDECONFUSE
Flags:
BossResist: true
StopWalking: true
RemoveOnDamaged: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
EndReturn:
Confusion: true
- Status: Blind
DurationLookup: NPC_BLINDATTACK
@@ -225,12 +225,12 @@ Body:
Flags:
SendOption: true
BossResist: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
Fear: true
Gvg_Blind: true
Blind: true
- Status: Bleeding
Icon: EFST_BLOODING
DurationLookup: NPC_BLEEDING
@@ -243,7 +243,6 @@ Body:
BossResist: true
NoSave: true
NoClearance: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
@@ -257,7 +256,6 @@ Body:
Flags:
SendOption: true
BossResist: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
@@ -1084,9 +1082,10 @@ Body:
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
OverlapFail: true
NoClearance: true
NoForcedEnd: true
Fail:
Nochat: true
- Status: Protectexp
Icon: EFST_PROTECTEXP
DurationLookup: WE_BABY
@@ -1298,7 +1297,8 @@ Body:
Marionette: true
Flags:
RemoveOnChangeMap: true
OverlapFail: true
Fail:
Marionette: true
- Status: Marionette2
Icon: EFST_MARIONETTE
DurationLookup: CG_MARIONETTE
@@ -1313,7 +1313,8 @@ Body:
Marionette: true
Flags:
RemoveOnChangeMap: true
OverlapFail: true
Fail:
Marionette2: true
- Status: Changeundead
Icon: EFST_PROPERTYUNDEAD
DurationLookup: NPC_CHANGEUNDEAD
@@ -1398,16 +1399,17 @@ Body:
Mdef: true
Aspd: true
Speed: true
Flags:
NoSave: true
Opt3:
SteelBody: true
- Status: Orcish
DurationLookup: SA_REVERSEORCISH
Flags:
Debuff: true
SendOption: true
Options:
Orcish: true
Flags:
SendOption: true
- Status: Readystorm
Icon: EFST_STORMKICK_ON
DurationLookup: TK_READYSTORM
@@ -1654,7 +1656,8 @@ Body:
NoSave: true
NoRemoveOnDead: true
RemoveOnChangeMap: true
OverlapFail: true
Fail:
Closeconfine2: true
- Status: Dancing
Icon: EFST_BDPLAYING
DurationLookup: BD_ENCORE
@@ -2497,7 +2500,8 @@ Body:
NoBanishingBuster: true
NoClearance: true
RemoveOnMapWarp: true
OverlapFail: true
Fail:
Bossmapinfo: true
- Status: Lifeinsurance
Icon: EFST_CASH_DEATHPENALTY
States:
@@ -2666,16 +2670,18 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoRemoveOnDead: true
Fail:
S_Lifepotion: true
- Status: L_Lifepotion
Icon: EFST_L_LIFEPOTION
Flags:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoRemoveOnDead: true
Fail:
L_Lifepotion: true
- Status: Jexpboost
Icon: EFST_CASH_PLUSONLYJOBEXP
Flags:
@@ -2840,7 +2846,6 @@ Body:
Flags:
BossResist: true
StopWalking: true
OverlapFail: true
Debuff: true
Fail:
Inspiration: true
@@ -2849,6 +2854,8 @@ Body:
- Status: Burning
Icon: EFST_BURNT
DurationLookup: RK_DRAGONBREATH
CalcFlags:
Mdef: true
Opt1: Burning
Flags:
SendOption: true
@@ -2856,13 +2863,10 @@ Body:
RemoveOnLuxAnima: true
BossResist: true
Debuff: true
OverlapFail: true
MinDuration: 10000
Fail:
Refresh: true
Inspiration: true
CalcFlags:
Mdef: true
- Status: Freezing
Icon: EFST_FROSTMISTY
DurationLookup: WL_FROSTMISTY
@@ -2879,7 +2883,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
MinDuration: 6000
Fail:
Refresh: true
@@ -2930,7 +2933,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Giantgrowth
Icon: EFST_GIANTGROWTH
@@ -2991,7 +2993,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
- Status: Adoramus
Icon: EFST_ADORAMUS
DurationLookup: AB_ADORAMUS
@@ -3076,13 +3077,8 @@ Body:
SetStand: true
StopWalking: true
StopAttacking: true
OverlapFail: true
End:
Dancing: true
Burning: true
Freezing: true
Freeze: true
Stone: true
- Status: Marshofabyss
Icon: EFST_MARSHOFABYSS
DurationLookup: WL_MARSHOFABYSS
@@ -3174,7 +3170,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoSave: true
OverlapFail: true
NoClearance: true
- Status: Wugdash
Icon: EFST_WUGDASH
@@ -3425,7 +3420,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
- Status: Paralyse
Icon: EFST_PARALYSE
CalcFlags:
@@ -3439,7 +3433,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
@@ -3462,7 +3455,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
@@ -3485,7 +3477,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
@@ -3508,7 +3499,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
@@ -3531,7 +3521,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
@@ -3557,7 +3546,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
@@ -3578,7 +3566,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
@@ -3650,7 +3637,6 @@ Body:
Regen: true
Flags:
DisplayPc: true
OverlapFail: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
@@ -3662,7 +3648,6 @@ Body:
Speed: true
Flags:
BossResist: true
OverlapFail: true
- Status: Earthdrive
Icon: EFST_EARTHDRIVE
DurationLookup: LG_EARTHDRIVE
@@ -3711,7 +3696,6 @@ Body:
BossResist: true
StopWalking: true
Debuff: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
@@ -3892,7 +3876,6 @@ Body:
RemoveOnDamaged: true
NoSave: true
Debuff: true
OverlapFail: true
MinDuration: 5000
Fail:
Refresh: true
@@ -4109,7 +4092,6 @@ Body:
DisplayPc: true
BossResist: true
StopWalking: true
OverlapFail: true
Debuff: true
- Status: Crescentelbow
Icon: EFST_CRESCENTELBOW
@@ -4151,7 +4133,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
- Status: Lightningwalk
Icon: EFST_LIGHTNINGWALK
DurationLookup: SR_LIGHTNINGWALK
@@ -4270,7 +4251,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
@@ -4520,7 +4500,6 @@ Body:
Batk: true
Watk: true
Flags:
OverlapFail: true
BossResist: true
NoBanishingBuster: true
NoClearance: true
@@ -4533,7 +4512,6 @@ Body:
Aspd: true
Hit: true
Flags:
OverlapFail: true
BossResist: true
NoBanishingBuster: true
NoClearance: true
@@ -4545,7 +4523,6 @@ Body:
States:
NoCast: true
Flags:
OverlapFail: true
BossResist: true
NoBanishingBuster: true
NoClearance: true
@@ -4558,7 +4535,6 @@ Body:
Flee: true
Speed: true
Flags:
OverlapFail: true
BossResist: true
NoBanishingBuster: true
NoClearance: true
@@ -4571,7 +4547,6 @@ Body:
Cri: true
Flee2: true
Flags:
OverlapFail: true
BossResist: true
NoBanishingBuster: true
NoClearance: true
@@ -4583,7 +4558,6 @@ Body:
CalcFlags:
MaxHp: true
Flags:
OverlapFail: true
BossResist: true
NoBanishingBuster: true
NoClearance: true
@@ -5069,6 +5043,7 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
SendVal1: true
OverlapIgnoreLevel: true
NoForcedEnd: true
- Status: Spellbook1
@@ -5222,7 +5197,6 @@ Body:
StopWalking: true
NoSave: true
RemoveOnChangeMap: true
OverlapFail: true
- Status: Cbc
Icon: EFST_CBC
DurationLookup: MH_CBC
@@ -5351,14 +5325,10 @@ Body:
Icon: EFST_SET_NUM_DEF
CalcFlags:
Def: true
Flags:
OverlapFail: true
- Status: Mdefset
Icon: EFST_SET_NUM_MDEF
CalcFlags:
Mdef: true
Flags:
OverlapFail: true
- Status: Darkcrow
Icon: EFST_DARKCROW
DurationLookup: GC_DARKCROW
@@ -5908,7 +5878,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_B
Icon: EFST_REUSE_LIMIT_B
@@ -5918,7 +5887,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_C
Icon: EFST_REUSE_LIMIT_C
@@ -5928,7 +5896,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_D
Icon: EFST_REUSE_LIMIT_D
@@ -5938,7 +5905,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_E
Icon: EFST_REUSE_LIMIT_E
@@ -5948,7 +5914,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_F
Icon: EFST_REUSE_LIMIT_F
@@ -5958,7 +5923,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_G
Icon: EFST_REUSE_LIMIT_G
@@ -5968,7 +5932,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_H
Icon: EFST_REUSE_LIMIT_H
@@ -5978,7 +5941,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_Mtf
Icon: EFST_REUSE_LIMIT_MTF
@@ -5988,7 +5950,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_Aspd_Potion
Icon: EFST_REUSE_LIMIT_ASPD_POTION
@@ -5998,7 +5959,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Millenniumshield
Icon: EFST_REUSE_MILLENNIUMSHIELD
@@ -6008,7 +5968,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Crushstrike
Icon: EFST_REUSE_CRUSHSTRIKE
@@ -6018,7 +5977,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Stormblast
Icon: EFST_REUSE_STORMBLAST
@@ -6028,7 +5986,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: All_Riding_Reuse_Limit
Icon: EFST_ALL_RIDING_REUSE_LIMIT
@@ -6038,7 +5995,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_Ecl
Icon: EFST_REUSE_LIMIT_ECL
@@ -6048,7 +6004,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_Recall
Icon: EFST_REUSE_LIMIT_RECALL
@@ -6058,7 +6013,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
- Status: Promote_Health_Reserch
Icon: EFST_PROMOTE_HEALTH_RESERCH
@@ -6070,8 +6024,6 @@ Body:
MaxSp: true
- Status: Norecover_State
Icon: EFST_HANDICAPSTATE_NORECOVER
Flags:
OverlapFail: true
- Status: Suhide
Icon: EFST_SUHIDE
DurationLookup: SU_HIDE
@@ -6429,7 +6381,6 @@ Body:
NoRemoveOnDead: true
NoClearbuff: true
NoBanishingBuster: true
OverlapFail: true
NoDispell: true
NoClearance: true
- Status: Doram_Buf_02
@@ -6440,7 +6391,6 @@ Body:
NoRemoveOnDead: true
NoClearbuff: true
NoBanishingBuster: true
OverlapFail: true
NoDispell: true
NoClearance: true
- Status: Hiss
@@ -6928,7 +6878,6 @@ Body:
NoBanishingBuster: true
NoDispell: true
NoClearance: true
OverlapFail: true
NoRemoveOnDead: true
NoClearbuff: true
- Status: Ensemblefatigue

View File

@@ -33,168 +33,6 @@ Header:
Version: 1
Body:
# WOE FE castle
- Id: 0
Map: aldeg_cas01
Name: Neuschwanstein
#Name: Noisyubantian
Npc: Agit#aldeg_cas01
- Id: 1
Map: aldeg_cas02
Name: Hohenschwangau
#Name: Hohensyubangawoo
Npc: Agit#aldeg_cas02
- Id: 2
Map: aldeg_cas03
Name: Nuernberg
#Name: Nyirenverk
Npc: Agit#aldeg_cas03
- Id: 3
Map: aldeg_cas04
Name: Wuerzburg
#Name: Byirtsburi
Npc: Agit#aldeg_cas04
- Id: 4
Map: aldeg_cas05
Name: Rothenburg
#Name: Rotenburk
Npc: Agit#aldeg_cas05
- Id: 5
Map: gefg_cas01
Name: Repherion
#Name: Reprion
Npc: Agit#gefg_cas01
- Id: 6
Map: gefg_cas02
Name: Eeyolbriggar
#Name: Yolbriger
Npc: Agit#gefg_cas02
- Id: 7
Map: gefg_cas03
Name: Yesnelph
#Name: Isinlife
Npc: Agit#gefg_cas03
- Id: 8
Map: gefg_cas04
Name: Bergel
#Name: Berigel
Npc: Agit#gefg_cas04
- Id: 9
Map: gefg_cas05
Name: Mersetzdeitz
#Name: Melsedetsu
Npc: Agit#gefg_cas05
- Id: 10
Map: payg_cas01
Name: Bright Arbor
#Name: Mingting
Npc: Agit#payg_cas01
- Id: 11
Map: payg_cas02
Name: Scarlet Palace
#Name: Tiantan
Npc: Agit#payg_cas02
- Id: 12
Map: payg_cas03
Name: Holy Shadow
#Name: Fuying
Npc: Agit#payg_cas03
- Id: 13
Map: payg_cas04
Name: Sacred Altar
#Name: Honglou
Npc: Agit#payg_cas04
- Id: 14
Map: payg_cas05
Name: Bamboo Grove Hill
#Name: Zhulinxian
Npc: Agit#payg_cas05
- Id: 15
Map: prtg_cas01
Name: Kriemhild
#Name: Creamhilt
Npc: Agit#prtg_cas01
- Id: 16
Map: prtg_cas02
Name: Swanhild
#Name: Sbanhealt
Npc: Agit#prtg_cas02
- Id: 17
Map: prtg_cas03
Name: Fadhgridh
#Name: Lazrigees
Npc: Agit#prtg_cas03
- Id: 18
Map: prtg_cas04
Name: Skoegul
#Name: Squagul
Npc: Agit#prtg_cas04
- Id: 19
Map: prtg_cas05
Name: Gondul
#Name: Guindull
Npc: Agit#prtg_cas05
# WOE NGuild castle
- Id: 20
Map: nguild_alde
Name: Earth
Npc: Agit_N01
- Id: 21
Map: nguild_gef
Name: Air
Npc: Agit_N02
- Id: 22
Map: nguild_pay
Name: Water
Npc: Agit_N03
- Id: 23
Map: nguild_prt
Name: Fire
Npc: Agit_N04
# WOE SE castle
- Id: 24
Map: schg_cas01
Name: Himinn
Npc: Manager#schg_cas01
- Id: 25
Map: schg_cas02
Name: Andlangr
Npc: Manager#schg_cas02
- Id: 26
Map: schg_cas03
Name: Viblainn
Npc: Manager#schg_cas03
- Id: 27
Map: schg_cas04
Name: Hljod
Npc: Manager#schg_cas04
- Id: 28
Map: schg_cas05
Name: Skidbladnir
Npc: Manager#schg_cas05
- Id: 29
Map: arug_cas01
Name: Mardol
Npc: Manager#arug_cas01
- Id: 30
Map: arug_cas02
Name: Cyr
Npc: Manager#arug_cas02
- Id: 31
Map: arug_cas03
Name: Horn
Npc: Manager#arug_cas03
- Id: 32
Map: arug_cas04
Name: Gefn
Npc: Manager#arug_cas04
- Id: 33
Map: arug_cas05
Name: Bandis
Npc: Manager#arug_cas05
# WOE TE castle
- Id: 34
Map: te_aldecas1

214
db/re/enchantgrade.yml Normal file
View File

@@ -0,0 +1,214 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# 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.
# Refine Required refine level.
# Chance Base chance of success out of 0~10000.
# Bonus Enchantgrade bonus. (Default: 0)
# Announce Announce if someone tries to increase the enchantgrade. (Default: true)
# 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)
###########################################################################
Header:
Type: ENCHANTGRADE_DB
Version: 1
Body:
- Type: Armor
Levels:
- Level: 2
Grades:
- Grade: None
Refine: 11
Chance: 7000
Bonus: 10
Catalyst:
Item: Blessed_Etel_Dust
AmountPerStep: 1
MaximumSteps: 10
ChanceIncrease: 100
Options:
- Option: 0
Item: Etel_Skyblue_Jewel
Amount: 1
Zeny: 175000
BreakingRate: 10000
- Option: 1
Item: Etel_Skyblue_Jewel
Amount: 5
Zeny: 875000
- Grade: D
Refine: 11
Chance: 6000
Bonus: 30
Catalyst:
Item: Blessed_Etel_Dust
AmountPerStep: 3
MaximumSteps: 10
ChanceIncrease: 100
Options:
- Option: 0
Item: Etel_Topaz
Amount: 1
Zeny: 175000
BreakingRate: 10000
- Option: 1
Item: Etel_Topaz
Amount: 5
Zeny: 875000
- Grade: C
Refine: 11
Chance: 5000
Bonus: 50
Catalyst:
Item: Blessed_Etel_Dust
AmountPerStep: 5
MaximumSteps: 10
ChanceIncrease: 100
Options:
- Option: 0
Item: Etel_Violet_Jewel
Amount: 1
Zeny: 175000
BreakingRate: 10000
- Option: 1
Item: Etel_Violet_Jewel
Amount: 5
Zeny: 875000
- Grade: B
Refine: 11
Chance: 4000
Bonus: 100
Catalyst:
Item: Blessed_Etel_Dust
AmountPerStep: 7
MaximumSteps: 10
ChanceIncrease: 100
Options:
- Option: 0
Item: Etel_Amber
Amount: 2
Zeny: 175000
BreakingRate: 10000
- Option: 1
Item: Etel_Amber
Amount: 10
Zeny: 875000
- Type: Weapon
Levels:
- Level: 5
Grades:
- Grade: None
Refine: 11
Chance: 7000
Bonus: 10
Catalyst:
Item: Blessed_Etel_Dust
AmountPerStep: 1
MaximumSteps: 10
ChanceIncrease: 100
Options:
- Option: 0
Item: Etel_Skyblue_Jewel
Amount: 1
Zeny: 175000
BreakingRate: 10000
- Option: 1
Item: Etel_Skyblue_Jewel
Amount: 5
Zeny: 875000
- Grade: D
Refine: 11
Chance: 6000
Bonus: 30
Catalyst:
Item: Blessed_Etel_Dust
AmountPerStep: 3
MaximumSteps: 10
ChanceIncrease: 100
Options:
- Option: 0
Item: Etel_Topaz
Amount: 1
Zeny: 175000
BreakingRate: 10000
- Option: 1
Item: Etel_Topaz
Amount: 5
Zeny: 875000
- Grade: C
Refine: 11
Chance: 5000
Bonus: 50
Catalyst:
Item: Blessed_Etel_Dust
AmountPerStep: 5
MaximumSteps: 10
ChanceIncrease: 100
Options:
- Option: 0
Item: Etel_Violet_Jewel
Amount: 1
Zeny: 175000
BreakingRate: 10000
- Option: 1
Item: Etel_Violet_Jewel
Amount: 5
Zeny: 875000
- Grade: B
Refine: 11
Chance: 4000
Bonus: 100
Catalyst:
Item: Blessed_Etel_Dust
AmountPerStep: 7
MaximumSteps: 10
ChanceIncrease: 100
Options:
- Option: 0
Item: Etel_Amber
Amount: 2
Zeny: 175000
BreakingRate: 10000
- Option: 1
Item: Etel_Amber
Amount: 10
Zeny: 875000

View File

@@ -310,3 +310,38 @@ Body:
Map: 1@infi
X: 30
Y: 10
- Id: 39
Name: Regenschirm
TimeLimit: 7200
Enter:
Map: 1@rgsr
X: 127
Y: 38
- Id: 40
Name: Sealed OS
TimeLimit: 7200
Enter:
Map: 1@os_b
X: 188
Y: 41
- Id: 41
Name: OS Occupation
TimeLimit: 7200
Enter:
Map: 1@os_a
X: 30
Y: 352
- Id: 42
Name: 2nd OS Search
TimeLimit: 7200
Enter:
Map: 1@os_a
X: 335
Y: 34
- Id: 43
Name: Cor Memorial
TimeLimit: 7200
Enter:
Map: 1@cor
X: 176
Y: 169

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

@@ -4848,32 +4848,18 @@ Body:
MaxValue: 20
Chance: 1000
- Option: WEAPON_ATTR_WATER
MinValue: 0
MaxValue: 0
Chance: 500
- Option: WEAPON_ATTR_GROUND
MinValue: 0
MaxValue: 0
Chance: 500
- Option: WEAPON_ATTR_FIRE
MinValue: 0
MaxValue: 0
Chance: 500
- Option: WEAPON_ATTR_WIND
MinValue: 0
MaxValue: 0
Chance: 500
- Option: WEAPON_ATTR_SAINT
MinValue: 0
MaxValue: 0
Chance: 500
- Option: WEAPON_ATTR_DARKNESS
MinValue: 0
MaxValue: 0
Chance: 500
- Option: DAMAGE_SIZE_PERFECT
MinValue: 0
MaxValue: 0
Chance: 50
- Slot: 2
Options:
@@ -5007,32 +4993,18 @@ Body:
MaxValue: 20
Chance: 1000
- Option: WEAPON_ATTR_WATER
MinValue: 0
MaxValue: 0
Chance: 500
- Option: WEAPON_ATTR_GROUND
MinValue: 0
MaxValue: 0
Chance: 500
- Option: WEAPON_ATTR_FIRE
MinValue: 0
MaxValue: 0
Chance: 500
- Option: WEAPON_ATTR_WIND
MinValue: 0
MaxValue: 0
Chance: 500
- Option: WEAPON_ATTR_SAINT
MinValue: 0
MaxValue: 0
Chance: 500
- Option: WEAPON_ATTR_DARKNESS
MinValue: 0
MaxValue: 0
Chance: 500
- Option: DAMAGE_SIZE_PERFECT
MinValue: 0
MaxValue: 0
Chance: 50
- Slot: 2
Options:
@@ -7456,7 +7428,7 @@ Body:
Chance: 625
# TODO: Confirm official rates
- Id: 100
Group: DROOPING_GUNSLINGER_SCROLL
Group: GUNSLINGER_ENCHANT
Slots:
- Slot: 1
Options:
@@ -7560,7 +7532,7 @@ Body:
Chance: 1250
# Source: https://ro.gnjoy.com/news/probability/View.asp?seq=3999572
- Id: 101
Group: FAN_MODIFICATION_KIT
Group: FAN_UPGRADE_KIT
Slots:
- Slot: 1
Options:
@@ -7672,7 +7644,7 @@ Body:
Chance: 769
# Source: https://ro.gnjoy.com/news/probability/View.asp?seq=3964871
- Id: 102
Group: UNIFORM_REPAIR_KIT
Group: SUIT_UPGRADE_KIT
Slots:
- Slot: 1
Options:
@@ -7810,7 +7782,7 @@ Body:
Chance: 5000
# Source: https://ro.gnjoy.com/news/probability/View.asp?seq=3999577
- Id: 109
Group: CANDY_POUCH_BLESSING_SCROLL_MELEE
Group: CANDY_BAG_SCROLL_MELEE
Slots:
- Slot: 1
Options:
@@ -7934,7 +7906,7 @@ Body:
Chance: 454
# Source: https://ro.gnjoy.com/news/probability/View.asp?seq=3999578
- Id: 110
Group: CANDY_POUCH_BLESSING_SCROLL_RANGE
Group: CANDY_BAG_SCROLL_RANGE
Slots:
- Slot: 1
Options:
@@ -8058,7 +8030,7 @@ Body:
Chance: 454
# Source: https://ro.gnjoy.com/news/probability/View.asp?seq=3999579
- Id: 111
Group: CANDY_POUCH_BLESSING_SCROLL_MAGIC
Group: CANDY_BAG_SCROLL_MAGIC
Slots:
- Slot: 1
Options:
@@ -8182,7 +8154,7 @@ Body:
Chance: 454
# Source: https://ro.gnjoy.com/news/probability/View.asp?seq=3964872
- Id: 112
Group: MAGICAL_BOOSTER_AMPLIFIER
Group: BOOSTER_AMPLIFIER
Slots:
- Slot: 1
Options:
@@ -8310,7 +8282,7 @@ Body:
Chance: 714
# Source: https://ro.gnjoy.com/news/probability/View.asp?seq=3964879
- Id: 113
Group: MAGIC_CAT_HAND_SCROLL
Group: MAGICAL_CAT_HAND
Slots:
- Slot: 1
Options:
@@ -8557,8 +8529,6 @@ Body:
MaxValue: 20
Chance: 357
- Option: BODY_INDESTRUCTIBLE
MinValue: 1
MaxValue: 1
Chance: 357
- Option: BODY_ATTR_WATER
MinValue: 3
@@ -9435,8 +9405,6 @@ Body:
MaxValue: 5
Chance: 212
- Option: DAMAGE_SIZE_PERFECT
MinValue: 1
MaxValue: 1
Chance: 212
- Option: CLASS_IGNORE_MDEF_PERCENT_NORMAL
MinValue: 30
@@ -9530,28 +9498,16 @@ Body:
MaxValue: 10
Chance: 666
- Option: BODY_INDESTRUCTIBLE
MinValue: 1
MaxValue: 1
Chance: 666
- Option: BODY_ATTR_WATER
MinValue: 1
MaxValue: 1
Chance: 666
- Option: BODY_ATTR_WIND
MinValue: 1
MaxValue: 1
Chance: 666
- Option: BODY_ATTR_DARKNESS
MinValue: 1
MaxValue: 1
Chance: 666
- Option: BODY_ATTR_FIRE
MinValue: 1
MaxValue: 1
Chance: 666
- Option: BODY_ATTR_GROUND
MinValue: 1
MaxValue: 1
Chance: 666
- Id: 119
Group: GRAY_CHARCOAL_MELEE
@@ -9599,8 +9555,6 @@ Body:
MaxValue: 20
Chance: 526
- Option: DAMAGE_SIZE_PERFECT
MinValue: 1
MaxValue: 1
Chance: 526
- Option: VAR_PLUSASPD
MinValue: 1
@@ -9610,29 +9564,17 @@ Body:
MinValue: 5
MaxValue: 10
Chance: 526
- Option: DAMAGE_PROPERTY_WATER_TARGET
MinValue: 1
MaxValue: 1
- Option: WEAPON_ATTR_WATER
Chance: 526
- Option: DAMAGE_PROPERTY_GROUND_TARGET
MinValue: 1
MaxValue: 1
- Option: WEAPON_ATTR_GROUND
Chance: 526
- Option: DAMAGE_PROPERTY_FIRE_TARGET
MinValue: 1
MaxValue: 1
- Option: WEAPON_ATTR_FIRE
Chance: 526
- Option: DAMAGE_PROPERTY_WIND_TARGET
MinValue: 1
MaxValue: 1
- Option: WEAPON_ATTR_WIND
Chance: 526
- Option: DAMAGE_PROPERTY_SAINT_TARGET
MinValue: 1
MaxValue: 1
- Option: WEAPON_ATTR_SAINT
Chance: 526
- Option: DAMAGE_PROPERTY_DARKNESS_TARGET
MinValue: 1
MaxValue: 1
- Option: WEAPON_ATTR_DARKNESS
Chance: 526
- Slot: 2
Options:
@@ -9693,8 +9635,6 @@ Body:
MaxValue: 20
Chance: 666
- Option: WEAPON_INDESTRUCTIBLE
MinValue: 1
MaxValue: 1
Chance: 666
- Id: 120
Group: GRAY_CHARCOAL_MAGIC
@@ -9861,8 +9801,6 @@ Body:
MaxValue: 20
Chance: 666
- Option: DAMAGE_SIZE_PERFECT
MinValue: 1
MaxValue: 1
Chance: 666
- Option: VAR_PLUSASPD
MinValue: 1
@@ -9877,8 +9815,6 @@ Body:
MaxValue: 10
Chance: 666
- Option: WEAPON_INDESTRUCTIBLE
MinValue: 1
MaxValue: 1
Chance: 666
- Slot: 2
Options:
@@ -10131,32 +10067,18 @@ Body:
MaxValue: 20
Chance: 384
- Option: WEAPON_ATTR_WATER
MinValue: 1
MaxValue: 1
Chance: 384
- Option: WEAPON_ATTR_GROUND
MinValue: 1
MaxValue: 1
Chance: 384
- Option: WEAPON_ATTR_FIRE
MinValue: 1
MaxValue: 1
Chance: 384
- Option: WEAPON_ATTR_WIND
MinValue: 1
MaxValue: 1
Chance: 384
- Option: WEAPON_ATTR_SAINT
MinValue: 1
MaxValue: 1
Chance: 384
- Option: WEAPON_ATTR_DARKNESS
MinValue: 1
MaxValue: 1
Chance: 384
- Option: DAMAGE_SIZE_PERFECT
MinValue: 1
MaxValue: 1
Chance: 384
- Id: 124
Group: CHARLESTON_PARTS_R
@@ -10236,32 +10158,18 @@ Body:
MaxValue: 20
Chance: 384
- Option: WEAPON_ATTR_WATER
MinValue: 1
MaxValue: 1
Chance: 384
- Option: WEAPON_ATTR_GROUND
MinValue: 1
MaxValue: 1
Chance: 384
- Option: WEAPON_ATTR_FIRE
MinValue: 1
MaxValue: 1
Chance: 384
- Option: WEAPON_ATTR_WIND
MinValue: 1
MaxValue: 1
Chance: 384
- Option: WEAPON_ATTR_SAINT
MinValue: 1
MaxValue: 1
Chance: 384
- Option: WEAPON_ATTR_DARKNESS
MinValue: 1
MaxValue: 1
Chance: 384
- Option: DAMAGE_SIZE_PERFECT
MinValue: 1
MaxValue: 1
Chance: 384
- Id: 125
Group: SHADOW_RANDOM_MIX
@@ -10762,8 +10670,6 @@ Body:
MaxValue: 10
Chance: 500
- Option: WEAPON_INDESTRUCTIBLE
MinValue: 1
MaxValue: 1
Chance: 500
- Id: 129
Group: EP17_1_SPC08
@@ -11143,8 +11049,6 @@ Body:
MaxValue: 10
Chance: 555
- Option: WEAPON_INDESTRUCTIBLE
MinValue: 1
MaxValue: 1
Chance: 555
- Id: 132
Group: MAGMA_ESSENCE
@@ -11713,8 +11617,6 @@ Body:
MaxValue: 10
Chance: 666
- Option: WEAPON_INDESTRUCTIBLE
MinValue: 1
MaxValue: 1
Chance: 666
- Id: 136
Group: ANCIENT_HERO_WISDOM
@@ -12004,7 +11906,7 @@ Body:
MaxValue: 5
Chance: 1000
- Id: 141
Group: GRACE_P_MO_GARMENT
Group: GRACE_CONVERT1
Slots:
- Slot: 1
Options:
@@ -12103,7 +12005,7 @@ Body:
MaxValue: 5
Chance: 769
- Id: 142
Group: GRACE_M_MO_GARMENT
Group: GRACE_CONVERT2
Slots:
- Slot: 1
Options:
@@ -12202,7 +12104,7 @@ Body:
MaxValue: 5
Chance: 769
- Id: 143
Group: GRACE_P_MO_ARMOR
Group: GRACE_CONVERT3
Slots:
- Slot: 1
Options:
@@ -12293,7 +12195,7 @@ Body:
MaxValue: 5
Chance: 769
- Id: 144
Group: GRACE_M_MO_ARMOR
Group: GRACE_CONVERT4
Slots:
- Slot: 1
Options:

View File

@@ -25,9 +25,9 @@
# - Jobs: List of jobs associated to group.
# Job Job name.
# MaxWeight Base maximum weight. (Default: 20000)
# HPFactor HP increase per base level. Floor(HPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 20000)
# HPMultiplicator Base HP value. 35 + BaseLv * (HPMultiplicator / 100). Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SPFactor SP increase per job level. Floor(SPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# HpFactor Exponential HP increase. Per base level: [HpFactor * BaseLv / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 0)
# HpIncrease Linear HP increase. Per base level: [HpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SpIncrease Linear SP increase. Per base level: [SpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# BaseASPD: Base ASPD for each weapon type. (Default: 2000)
# Weapon Weapon type with associated ASPD.
# BonusStats: Job level bonus stats/traits.
@@ -78,7 +78,7 @@
Header:
Type: JOB_STATS
Version: 1
Version: 2
Body:
- Jobs:

View File

@@ -25,9 +25,9 @@
# - Jobs: List of jobs associated to group.
# Job Job name.
# MaxWeight Base maximum weight. (Default: 20000)
# HPFactor HP increase per base level. Floor(HPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 20000)
# HPMultiplicator Base HP value. 35 + BaseLv * (HPMultiplicator / 100). Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SPFactor SP increase per job level. Floor(SPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# HpFactor Exponential HP increase. Per base level: [HpFactor * BaseLv / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 0)
# HpIncrease Linear HP increase. Per base level: [HpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SpIncrease Linear SP increase. Per base level: [SpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# BaseASPD: Base ASPD for each weapon type. (Default: 2000)
# Weapon Weapon type with associated ASPD.
# BonusStats: Job level bonus stats/traits.
@@ -78,7 +78,7 @@
Header:
Type: JOB_STATS
Version: 1
Version: 2
Body:
- Jobs:
@@ -3845,6 +3845,13 @@ Body:
Meister2: true
Dragon_Knight2: true
Imperial_Guard2: true
Sky_Emperor: true
Soul_Ascetic: true
Shinkiro: true
Shiranui: true
Night_Watch: true
Hyper_Novice: true
Spirit_Handler: true
MaxJobLevel: 50
JobExp:
- Level: 1

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -2748,7 +2748,7 @@ Body:
- Item: Imperial_Magic_Boots
- Item: Imperial_Attack_Manteau
- Item: Imperial_Magic_Manteau
- Item: Grace_Refine_Ticket
- Item: Grace_Rifine_Ticket
ResultRefine: 9
CardsAllowed: true
TargetItems:
@@ -2757,23 +2757,23 @@ Body:
- Item: Grace_Spear_Armor
- Item: Grace_Genesis_Armor
- Item: Grace_Sharp_Suit
- Item: Grace_Aimed_Suit
- Item: Grace_Aim_Suit
- Item: Grace_Severe_Suit
- Item: Grace_Reverb_Suit
- Item: Grace_Adora_Robe
- Item: Grace_Duple_Robe
- Item: Grace_Tornado_Armor
- Item: Grace_Tonado_Armor
- Item: Grace_Vulcan_Armor
- Item: Grace_Cart_Cannon_Suit
- Item: Grace_Cart_Tornado_Suit
- Item: Grace_Kart_Suit
- Item: Grace_Kart_Suit2
- Item: Grace_Rolling_Suit
- Item: Grace_Assassin_Suit
- Item: Grace_Assasin_Suit
- Item: Grace_Fatal_Suit
- Item: Grace_Stalker_Suit
- Item: Grace_Picky_Robe
- Item: Grace_Catnip_Robe
- Item: Grace_Carrot_Robe
- Item: Grace_Trip_Suit
- Item: Grace_Fire_Rain_Suit
- Item: Grace_Firerain_Suit
- Item: Grace_Crimson_Robe
- Item: Grace_Frost_Robe
- Item: Grace_Psychic_Robe
@@ -2782,12 +2782,12 @@ Body:
- Item: Grace_Moon_Suit
- Item: Grace_Ninja_Suit
- Item: Grace_Kunai_Suit
- Item: Grace_Eswhoo_Robe
- Item: Grace_Swhoo_Robe
- Item: Grace_Explosion_Robe
- Item: Grace_Knuckle_Suit
- Item: Grace_Tiger_Suit
- Item: Grace_Super_Novice_Suit
- Item: Grace_Super_Novice_Robe
- Item: Grace_Snovice_Suit
- Item: Grace_Snovice_Robe
- Item: Grace_Attack_Boots
- Item: Grace_Magic_Boots
- Item: Grace_Attack_Manteau
@@ -2802,13 +2802,13 @@ Body:
TargetItems:
- Item: Imperial_Attack_Manteau
- Item: Imperial_Magic_Manteau
- Item: Grace_P_Mo_Garment
RandomOptionGroup: GRACE_P_MO_GARMENT
- Item: Grace_Convert1
RandomOptionGroup: GRACE_CONVERT1
TargetItems:
- Item: Grace_Attack_Manteau
- Item: Grace_Magic_Manteau
- Item: Grace_M_Mo_Garment
RandomOptionGroup: GRACE_M_MO_GARMENT
- Item: Grace_Convert2
RandomOptionGroup: GRACE_CONVERT2
TargetItems:
- Item: Grace_Attack_Manteau
- Item: Grace_Magic_Manteau
@@ -2890,31 +2890,31 @@ Body:
- Item: Imperial_Tiger_Suit
- Item: Imperial_Snovice_Suit
- Item: Imperial_Snovice_Robe
- Item: Grace_P_Mo_Armor
RandomOptionGroup: GRACE_P_MO_ARMOR
- Item: Grace_Convert3
RandomOptionGroup: GRACE_CONVERT3
TargetItems:
- Item: Grace_Breath_Armor
- Item: Grace_Knight_Armor
- Item: Grace_Spear_Armor
- Item: Grace_Genesis_Armor
- Item: Grace_Sharp_Suit
- Item: Grace_Aimed_Suit
- Item: Grace_Aim_Suit
- Item: Grace_Severe_Suit
- Item: Grace_Reverb_Suit
- Item: Grace_Adora_Robe
- Item: Grace_Duple_Robe
- Item: Grace_Tornado_Armor
- Item: Grace_Tonado_Armor
- Item: Grace_Vulcan_Armor
- Item: Grace_Cart_Cannon_Suit
- Item: Grace_Cart_Tornado_Suit
- Item: Grace_Kart_Suit
- Item: Grace_Kart_Suit2
- Item: Grace_Rolling_Suit
- Item: Grace_Assassin_Suit
- Item: Grace_Assasin_Suit
- Item: Grace_Fatal_Suit
- Item: Grace_Stalker_Suit
- Item: Grace_Picky_Robe
- Item: Grace_Catnip_Robe
- Item: Grace_Carrot_Robe
- Item: Grace_Trip_Suit
- Item: Grace_Fire_Rain_Suit
- Item: Grace_Firerain_Suit
- Item: Grace_Crimson_Robe
- Item: Grace_Frost_Robe
- Item: Grace_Psychic_Robe
@@ -2923,37 +2923,37 @@ Body:
- Item: Grace_Moon_Suit
- Item: Grace_Ninja_Suit
- Item: Grace_Kunai_Suit
- Item: Grace_Eswhoo_Robe
- Item: Grace_Swhoo_Robe
- Item: Grace_Explosion_Robe
- Item: Grace_Knuckle_Suit
- Item: Grace_Tiger_Suit
- Item: Grace_Super_Novice_Suit
- Item: Grace_Super_Novice_Robe
- Item: Grace_M_Mo_Armor
RandomOptionGroup: GRACE_M_MO_ARMOR
- Item: Grace_Snovice_Suit
- Item: Grace_Snovice_Robe
- Item: Grace_Convert4
RandomOptionGroup: GRACE_CONVERT4
TargetItems:
- Item: Grace_Breath_Armor
- Item: Grace_Knight_Armor
- Item: Grace_Spear_Armor
- Item: Grace_Genesis_Armor
- Item: Grace_Sharp_Suit
- Item: Grace_Aimed_Suit
- Item: Grace_Aim_Suit
- Item: Grace_Severe_Suit
- Item: Grace_Reverb_Suit
- Item: Grace_Adora_Robe
- Item: Grace_Duple_Robe
- Item: Grace_Tornado_Armor
- Item: Grace_Tonado_Armor
- Item: Grace_Vulcan_Armor
- Item: Grace_Cart_Cannon_Suit
- Item: Grace_Cart_Tornado_Suit
- Item: Grace_Kart_Suit
- Item: Grace_Kart_Suit2
- Item: Grace_Rolling_Suit
- Item: Grace_Assassin_Suit
- Item: Grace_Assasin_Suit
- Item: Grace_Fatal_Suit
- Item: Grace_Stalker_Suit
- Item: Grace_Picky_Robe
- Item: Grace_Catnip_Robe
- Item: Grace_Carrot_Robe
- Item: Grace_Trip_Suit
- Item: Grace_Fire_Rain_Suit
- Item: Grace_Firerain_Suit
- Item: Grace_Crimson_Robe
- Item: Grace_Frost_Robe
- Item: Grace_Psychic_Robe
@@ -2962,12 +2962,12 @@ Body:
- Item: Grace_Moon_Suit
- Item: Grace_Ninja_Suit
- Item: Grace_Kunai_Suit
- Item: Grace_Eswhoo_Robe
- Item: Grace_Swhoo_Robe
- Item: Grace_Explosion_Robe
- Item: Grace_Knuckle_Suit
- Item: Grace_Tiger_Suit
- Item: Grace_Super_Novice_Suit
- Item: Grace_Super_Novice_Robe
- Item: Grace_Snovice_Suit
- Item: Grace_Snovice_Robe
# - Item: Abyss_Ddbox2
# TargetItems:
# - Item: DragonA_Red
@@ -4759,18 +4759,18 @@ Body:
# MaximumRefine: 10
# CardsAllowed: true
# TargetItems:
# - Item: aegis_400078
# - Item: aegis_400079
# - Item: aegis_400094
# - Item: aegis_400095
# - Item: aegis_400098
# - Item: aegis_400099
# - Item: aegis_400116
# - Item: aegis_400117
# - Item: aegis_400118
# - Item: aegis_400119
# - Item: aegis_400120
# - Item: aegis_400121
# - Item: BioWeapon_Helm_RK
# - Item: BioWeapon_Helm_LG
# - Item: BioWeapon_Helm_WL
# - Item: BioWeapon_Helm_SO
# - Item: BioWeapon_Helm_NC
# - Item: BioWeapon_Helm_GN
# - Item: BioWeapon_Helm_RA
# - Item: BioWeapon_Helm_WM
# - Item: BioWeapon_Helm_AB
# - Item: BioWeapon_Helm_SR
# - Item: BioWeapon_Helm_SC
# - Item: BioWeapon_Helm_GC
# - Item: Twins_Box_IL
# MinimumRefine: 4
# MaximumRefine: 9

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -12438,6 +12438,72 @@
3633,EP16_2_VENOM_KIMERA@NPC_ACIDBREATH,attack,657,6,10000,3000,25000,no,target,always,0,,,,,,,
3633,EP16_2_VENOM_KIMERA@RG_STRIPARMOR,attack,217,5,500,1000,5000,no,target,always,0,,,,,,,
// Illusion of Vampire
3750,Matt Drainliar@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
3750,Matt Drainliar@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
3750,Matt Drainliar@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
3750,Matt Drainliar@AL_TELEPORT,idle,26,1,1000,1000,10000,no,self,always,0,,,,,,,
3750,Matt Drainliar@AL_TELEPORT,chase,26,1,1000,1000,10000,no,self,always,0,,,,,,,
3750,Matt Drainliar@AL_TELEPORT,attack,26,1,1000,1000,10000,no,self,always,0,,,,,,,
3750,Matt Drainliar@AL_HEAL,idle,28,9,10000,1000,10000,yes,self,always,0,,,,,,,
3750,Matt Drainliar@AL_HEAL,chase,28,9,10000,1000,10000,yes,self,always,0,,,,,,,
3750,Matt Drainliar@AL_HEAL,attack,28,9,10000,1000,10000,yes,self,always,0,,,,,,,
3751,Living Dead@NPC_UNDEADATTACK,chase,347,5,2000,800,25000,yes,target,always,0,,,,,,,
3751,Living Dead@NPC_BLEEDING,attack,660,1,1000,800,65000,yes,target,always,0,,,,,,,
3751,Living Dead@NPC_STOP,attack,342,1,2000,0,35000,yes,target,always,0,,,,,,,
3751,Living Dead@NPC_COMBOATTACK,attack,171,1,3500,500,8000,yes,target,always,0,,,,,,,
3752,Starving Living Dead@NPC_POISON,attack,176,1,500,800,5000,no,target,always,0,,,,,,,
3752,Starving Living Dead@NPC_POISON,angry,176,1,500,800,5000,no,target,always,0,,,,,,,
3752,Starving Living Dead@NPC_UNDEADATTACK,angry,347,1,2000,0,5000,yes,target,always,0,,,,,,,
3752,Starving Living Dead@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,0,,,,,,,
3752,Starving Living Dead@NPC_AGIUP,chase,350,1,10000,0,35000,yes,self,always,0,,,,,,,
3753,Living Dead@NPC_POISON,attack,176,3,500,800,5000,yes,target,always,0,,,,,,,
3753,Living Dead@NPC_BLOODDRAIN,attack,176,3,2000,500,15000,yes,target,always,0,,,,,,,
3753,Living Dead@NPC_UNDEADATTACK,chase,347,3,1000,500,5000,yes,target,always,0,,,,,,,
3754,Sweet Nightmare@NPC_BLINDATTACK,attack,177,3,1000,0,7000,yes,target,always,0,,,,,,,
3754,Sweet Nightmare@NPC_CURSEATTACK,attack,181,3,1000,800,8000,no,target,always,0,,,,,,,
3754,Sweet Nightmare@NPC_MENTALBREAKER,attack,159,1,1000,800,9000,no,target,always,0,,,,,,,
3754,Sweet Nightmare@NPC_TELEKINESISATTACK,attack,191,5,1000,0,16000,yes,target,always,0,,,,,,,
3755,Black Mushroom@NPC_SELFDESTRUCTION,idle,173,1,500,2000,5000,no,self,myhpltmaxrate,85,,,,,,,
3755,Black Mushroom@NPC_SELFDESTRUCTION,idle,173,1,10000,2000,5000,no,self,skillused,173,,,,,,,
3755,Black Mushroom@NPC_SELFDESTRUCTION,idle,173,1,10000,0,0,yes,self,alchemist,,,,,,,,
3756,Bomi@MG_FIREWALL,chase,18,5,500,500,35000,yes,target,always,0,,,,,,,
3756,Bomi@MG_FROSTDIVER,chase,15,9,10000,500,40000,yes,target,always,0,,,,,,,
3756,Bomi@MG_LIGHTNINGBOLT,chase,20,7,10000,1000,40000,yes,target,always,0,,,,,,,
3756,Bomi@NPC_DARKSTRIKE,attack,340,5,2500,700,15000,no,target,always,0,,,,,,,
3756,Bomi@MG_THUNDERSTORM,attack,21,5,2000,1000,15000,no,target,always,0,,,,,,,
3756,Bomi@MG_LIGHTNINGBOLT,attack,20,7,10000,1000,40000,no,target,always,0,,,,,,,
3756,Bomi@MG_SOULSTRIKE,attack,13,9,1000,500,10000,yes,target,always,0,,,,,,,
3756,Bomi@MG_SAFETYWALL,attack,12,10,3000,0,35000,yes,self,always,0,,,,,,,
3756,Bomi@NPC_SUMMONSLAVE,attack,196,1,10000,200,10000,no,self,slavele,2,3750,,,,,,
3756,Bomi@NPC_SUMMONSLAVE,idle,196,1,10000,200,10000,no,self,slavele,2,3751,,,,,,
3756,Bomi@NPC_WIDESUCK,idle,722,1,10000,500,30000,no,self,always,0,,,,,,,
3757,Dracula of Rage@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
3757,Dracula of Rage@AL_DECAGI,chase,30,10,2000,0,5000,no,target,always,0,,,,,,,
3757,Dracula of Rage@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,0,,,,,,,
3757,Dracula of Rage@NPC_CRITICALWOUND,chase,673,5,2000,500,12000,no,target,myhpltmaxrate,50,,,,,,,
3757,Dracula of Rage@NPC_HELLJUDGEMENT,attack,662,10,10000,500,20000,no,self,myhpltmaxrate,80,,,,,,36,
3757,Dracula of Rage@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
3757,Dracula of Rage@NPC_BLOODDRAIN,attack,199,1,3000,0,10000,yes,target,always,0,,,,,,,
3757,Dracula of Rage@NPC_ENERGYDRAIN,chase,200,1,3000,0,10000,yes,target,always,0,,,,,,,
3757,Dracula of Rage@MO_BODYRELOCATION,chase,264,1,2000,200,5000,yes,target,always,0,,,,,,,
3757,Dracula of Rage@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
3757,Dracula of Rage@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
3757,Dracula of Rage@NPC_CHANGEUNDEAD,attack,348,1,2000,0,25000,no,target,always,0,,,,,,9,
3757,Dracula of Rage@NPC_INVISIBLE,idle,353,1,1000,200,50000,yes,self,always,0,,,,,,,
3757,Dracula of Rage@NPC_INVISIBLE,chase,353,1,1000,200,50000,yes,self,always,0,,,,,,,
3757,Dracula of Rage@NPC_INVISIBLE,attack,353,1,1000,200,15000,yes,self,always,0,,,,,,,
3757,Dracula of Rage@NPC_WIDESILENCE,attack,663,5,2000,100,15000,no,self,always,0,,,,,,,
3757,Dracula of Rage@NPC_SUMMONSLAVE,attack,196,1,10000,700,9000,no,self,slavele,5,3750,,,,,,
3757,Dracula of Rage@NPC_SUMMONSLAVE,idle,196,2,10000,700,9000,no,self,slavele,5,3750,,,,,,
3757,Dracula of Rage@NPC_DARKSTRIKE,attack,340,1,3000,0,0,yes,target,skillused,2008,,,,,,,
3757,Dracula of Rage@NPC_DARKSTRIKE,attack,340,1,3000,0,0,yes,target,skillused,490,,,,,,,
3757,Dracula of Rage@NPC_DARKSTRIKE,attack,340,1,3000,0,0,yes,target,skillused,271,,,,,,,
3757,Dracula of Rage@NPC_DARKBREATH,attack,202,5,900,800,900,yes,target,always,0,,,,,,,
3757,Dracula of Rage@NPC_DARKCROSS,attack,338,10,900,400,800,yes,target,always,0,,,,,,9,
3757,Dracula of Rage@NPC_GRANDDARKNESS,attack,339,10,900,1000,1200,no,self,always,0,,,,,,,
3757,Dracula of Rage@NPC_DARKTHUNDER,attack,341,10,900,1000,1200,no,target,always,0,,,,,,,
// Illusion of Moonlight
3758,Angry Moonlight Flower@AL_HEAL,attack,28,11,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,21,
3758,Angry Moonlight Flower@AL_HEAL,attack,28,11,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,21,
@@ -12517,6 +12583,145 @@
3765,Deranged Adventurer@NPC_TALK,idle,682,10,2500,0,35000,yes,self,always,0,,,,,,,53
3765,Deranged Adventurer@NPC_TALK,idle,682,10,2500,0,30000,yes,self,always,0,,,,,,,54
// Episode 17.1 - Illusion (custom) #!todo
20340,EL-A17T@NPC_AGIUP,chase,350,5,2000,0,60000,no,self,always,0,,,,,,6,
20340,EL-A17T@NPC_POWERUP,attack,349,5,2000,0,60000,no,self,always,0,,,,,,6,
20340,EL-A17T@NPC_CRITICALSLASH,attack,170,1,2000,500,5000,no,target,always,0,,,,,,,
20340,EL-A17T@AS_SONICBLOW,attack,136,10,1000,0,10000,yes,target,always,0,,,,,,2,
20340,EL-A17T@NPC_AGIUP,chase,350,5,2000,0,60000,no,self,always,0,,,,,,6,
20341,E-EA1L@AL_DECAGI,attack,30,1,500,1000,5000,no,target,always,0,,,,,,29,
20341,E-EA1L@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,9,
20341,E-EA1L@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,9,
20341,E-EA1L@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,,
20342,E-EA2S@AL_PNEUMA,attack,25,1,2000,0,5000,yes,self,longrangeattacked,0,,,,,,,
20342,E-EA2S@NPC_CRITICALSLASH,attack,170,1,2000,0,2000,no,target,always,0,,,,,,,
20342,E-EA2S@NPC_GUIDEDATTACK,attack,172,5,1000,0,5000,no,target,always,0,,,,,,,
20342,E-EA2S@KN_TWOHANDQUICKEN,attack,60,30,10000,0,120000,yes,target,myhpltmaxrate,40,,,,,,,
20342,E-EA2S@NPC_STUNATTACK,attack,179,5,500,1000,5000,no,target,always,0,,,,,,,
20342,E-EA2S@AL_PNEUMA,chase,25,1,2000,0,5000,no,self,longrangeattacked,0,,,,,,,
20343,E-13EN0@KN_PIERCE,attack,56,5,500,700,5000,no,target,always,,,,,,,,
20343,E-13EN0@NPC_RANGEATTACK,chase,160,1,500,0,5000,yes,target,always,,,,,,,,
20343,E-13EN0@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,6,
20344,Chemical Bug@NPC_METAMORPHOSIS,any,193,1,10000,5000,0,no,self,onspawn,0,2536,,,,,,
20345,Chemical Bomb@NPC_SELFDESTRUCTION,any,173,1,10000,5000,0,no,self,onspawn,0,,,,,,,
20346,Miguel@RK_IGNITIONBREAK,attack,2006,5,2000,2000,10000,no,target,always,0,,,,,,,
20346,Miguel@AM_DEMONSTRATION,chase,229,5,5000,0,2000,yes,target,always,0,,,,,,6,
20346,Miguel@NPC_WINDATTACK,attack,187,5,1000,0,5000,yes,target,always,0,,,,,,,
20346,Miguel@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
20346,Miguel@SM_ENDURE,chase,8,10,5000,0,5000,yes,self,always,0,,,,,,,
20346,Miguel@SM_ENDURE,attack,8,10,2000,0,5000,yes,self,always,0,,,,,,,
20347,Miguel@AM_DEMONSTRATION,chase,229,5,5000,0,2000,yes,target,always,0,,,,,,6,
20347,Miguel@RK_IGNITIONBREAK,attack,2006,5,2000,2000,10000,no,target,always,0,,,,,,,
20347,Miguel@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
20347,Miguel@NPC_WINDATTACK,attack,187,5,1000,0,5000,yes,target,always,0,,,,,,,
20347,Miguel@SM_ENDURE,chase,8,10,5000,0,5000,yes,self,always,0,,,,,,,
20347,Miguel@SM_ENDURE,attack,8,10,2000,0,5000,yes,self,always,0,,,,,,,
20348,Twin Caput@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,6,
20348,Twin Caput@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,,
20348,Twin Caput@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,29,
20349,Dolor@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,no,target,always,0,,,,,,,
20349,Dolor@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
20349,Dolor@SM_BASH,attack,5,10,2000,1000,30000,no,target,always,0,,,,,,52,
20349,Dolor@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,0,,,,,,9,
20350,Bellare@HT_BLASTMINE,idle,122,5,2000,0,60000,yes,around3,always,0,,,,,,5,
20350,Bellare@HT_BLASTMINE,attack,122,5,500,0,5000,yes,around3,always,0,,,,,,5,
20350,Bellare@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
20350,Bellare@BS_MAXIMIZE,attack,114,1,1000,0,60000,yes,self,always,0,,,,,,,
20352,PomPom@NPC_POISON,attack,176,3,1000,800,5000,no,target,always,0,,,,,,,
20352,PomPom@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,6,
20352,PomPom@NPC_BLINDATTACK,chase,177,3,500,0,5000,yes,target,always,0,,,,,,6,
20355,Bellare@HT_BLASTMINE,idle,122,5,2000,0,60000,yes,around3,always,0,,,,,,5,
20355,Bellare@HT_BLASTMINE,attack,122,5,500,0,5000,yes,around3,always,0,,,,,,5,
20355,Bellare@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
20355,Bellare@BS_MAXIMIZE,attack,114,1,1000,0,60000,yes,self,always,0,,,,,,,
20356,Greater Bellare@HT_BLASTMINE,idle,122,5,2000,0,60000,yes,around3,always,0,,,,,,5,
20356,Greater Bellare@HT_BLASTMINE,attack,122,5,500,0,5000,yes,around3,always,0,,,,,,5,
20356,Greater Bellare@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
20356,Greater Bellare@BS_MAXIMIZE,attack,114,1,1000,0,60000,yes,self,always,0,,,,,,,
20356,Greater Bellare@NPC_COMBOATTACK,attack,171,3,500,700,5000,no,target,always,0,,,,,,,
20356,Greater Bellare@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
20357,Sanare@NPC_HOLYATTACK,attack,189,2,500,0,5000,no,target,always,0,,,,,,18,
20357,Sanare@NPC_HOLYATTACK,chase,189,2,500,0,5000,no,target,always,0,,,,,,18,
20357,Sanare@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,0,,,,,,6,
20357,Sanare@PR_LEXAETERNA,chase,78,1,500,0,5000,yes,target,always,0,,,,,,6,
20357,Sanare@PR_LEXDIVINA,chase,76,10,500,0,5000,yes,target,always,0,,,,,,2,
20357,Sanare@PR_LEXDIVINA,attack,76,10,500,0,5000,yes,target,always,0,,,,,,2,
20357,Sanare@MG_NAPALMBEAT,attack,11,5,1000,0,5000,yes,target,always,0,,,,,,,
20357,Sanare@MG_NAPALMBEAT,chase,11,5,1000,0,1000,yes,target,always,0,,,,,,,
20358,Greater Sanare@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
20358,Greater Sanare@NPC_HOLYATTACK,attack,189,2,500,0,5000,no,target,always,0,,,,,,18,
20358,Greater Sanare@NPC_HOLYATTACK,chase,189,2,500,0,5000,no,target,always,0,,,,,,18,
20358,Greater Sanare@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,0,,,,,,6,
20358,Greater Sanare@PR_LEXAETERNA,chase,78,1,500,0,5000,yes,target,always,0,,,,,,6,
20358,Greater Sanare@PR_LEXDIVINA,chase,76,10,500,0,5000,yes,target,always,0,,,,,,2,
20358,Greater Sanare@PR_LEXDIVINA,attack,76,10,500,0,5000,yes,target,always,0,,,,,,2,
20358,Greater Sanare@MG_NAPALMBEAT,attack,11,5,1000,0,5000,yes,target,always,0,,,,,,,
20358,Greater Sanare@MG_NAPALMBEAT,chase,11,5,1000,0,1000,yes,target,always,0,,,,,,,
20359,Plaga@MG_FIREBALL,follow,17,44,500,0,5000,yes,target,always,0,,,,,,,
20359,Plaga@NPC_FIREATTACK,angry,186,5,500,500,5000,no,target,always,0,,,,,,,
20359,Plaga@SM_MAGNUM,angry,7,25,500,500,5000,no,self,always,0,,,,,,,
20359,Plaga@MG_FIREBALL,chase,17,44,500,0,5000,yes,target,always,0,,,,,,,
20359,Plaga@NPC_FIREATTACK,attack,186,5,500,500,5000,no,target,always,0,,,,,,,
20359,Plaga@SM_MAGNUM,attack,7,25,500,500,5000,no,self,always,0,,,,,,,
20359,Plaga@MG_FIREBALL,follow,17,44,500,0,5000,yes,target,always,0,,,,,,,
20359,Plaga@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
20359,Plaga@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
20359,Plaga@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,,
20360,Greater Plaga@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
20360,Greater Plaga@NPC_FIREATTACK,angry,186,5,500,500,5000,no,target,always,0,,,,,,,
20360,Greater Plaga@SM_MAGNUM,angry,7,25,500,500,5000,no,self,always,0,,,,,,,
20360,Greater Plaga@MG_FIREBALL,chase,17,44,500,0,5000,yes,target,always,0,,,,,,,
20360,Greater Plaga@NPC_FIREATTACK,attack,186,5,500,500,5000,no,target,always,0,,,,,,,
20360,Greater Plaga@SM_MAGNUM,attack,7,25,500,500,5000,no,self,always,0,,,,,,,
20360,Greater Plaga@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
20360,Greater Plaga@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
20360,Greater Plaga@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,,
20361,Dolor@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,no,target,always,0,,,,,,,
20361,Dolor@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
20361,Dolor@SM_BASH,attack,5,10,2000,1000,30000,no,target,always,0,,,,,,52,
20361,Dolor@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,0,,,,,,9,
20362,Greater Dolor@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
20362,Greater Dolor@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,no,target,always,0,,,,,,,
20362,Greater Dolor@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
20362,Greater Dolor@SM_BASH,attack,5,10,2000,1000,30000,no,target,always,0,,,,,,52,
20362,Greater Dolor@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,0,,,,,,9,
20363,Venenum@KN_PIERCE,attack,56,5,500,700,5000,no,target,always,,,,,,,,
20363,Venenum@NPC_RANGEATTACK,chase,160,1,500,0,5000,yes,target,always,,,,,,,,
20363,Venenum@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,0,,,,,,9,
20363,Venenum@AS_VENOMDUST,attack,140,1,500,1500,5000,no,target,always,0,,,,,,,
20364,Greater Venenum@KN_PIERCE,attack,56,5,500,700,5000,no,target,always,,,,,,,,
20364,Greater Venenum@NPC_RANGEATTACK,chase,160,1,500,0,5000,yes,target,always,,,,,,,,
20364,Greater Venenum@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,0,,,,,,9,
20364,Greater Venenum@AS_VENOMDUST,attack,140,1,500,1500,5000,no,target,always,0,,,,,,,
20364,Greater Venenum@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
20365,Twin Caput@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,6,
20365,Twin Caput@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,,
20365,Twin Caput@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,29,
20366,Greater Twin Caput@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,6,
20366,Greater Twin Caput@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,,
20366,Greater Twin Caput@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,29,
20366,Greater Twin Caput@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
20381,R48-85-BESTIA@NPC_DARKSTRIKE,idle,340,10,10000,0,0,no,target,rudeattacked,,,,,,,,
20381,R48-85-BESTIA@NPC_DARKSTRIKE,chase,340,5,5000,0,1000,no,target,always,0,,,,,,,
20381,R48-85-BESTIA@NPC_HELLJUDGEMENT,chase,662,5,5000,4000,5000,yes,self,myhpltmaxrate,50,,,,,,7,
20381,R48-85-BESTIA@NPC_HELLJUDGEMENT,attack,662,5,10000,4000,5000,yes,self,myhpltmaxrate,50,,,,,,7,
20381,R48-85-BESTIA@NPC_DRAGONFEAR,chase,659,5,10000,0,0,no,self,always,0,,,,,,,
20381,R48-85-BESTIA@NPC_DRAGONFEAR,attack,659,5,2000,1000,20000,yes,self,always,0,,,,,,,
20381,R48-85-BESTIA@NPC_POWERUP,attack,349,5,10000,0,50000,no,self,myhpltmaxrate,30,,,,,,6,
20381,R48-85-BESTIA@NPC_VAMPIRE_GIFT,attack,679,5,10000,0,0,no,self,skillused,490,,,,,,42,
20381,R48-85-BESTIA@NPC_CRITICALWOUND,attack,673,4,500,500,5000,yes,target,always,0,,,,,,,
20381,R48-85-BESTIA@WZ_QUAGMIRE,chase,92,5,3000,0,10000,yes,target,always,0,,,,,,,
20381,R48-85-BESTIA@WZ_QUAGMIRE,attack,92,5,3000,0,10000,yes,target,always,0,,,,,,,
20381,R48-85-BESTIA@AL_INCAGI,attack,29,1,2000,0,240000,yes,self,always,0,,,,,,2,
20381,R48-85-BESTIA@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
20381,R48-85-BESTIA@NPC_CALLSLAVE,attack,352,1,10000,0,60000,yes,self,always,0,,,,,,,
20381,R48-85-BESTIA@NPC_CALLSLAVE,idle,352,1,10000,0,60000,yes,self,always,0,,,,,,,
20381,R48-85-BESTIA@NPC_SUMMONSLAVE,attack,196,6,10000,700,30000,no,self,slavele,0,20382,20382,20382,,,,
20381,R48-85-BESTIA@NPC_SUMMONSLAVE,idle,196,6,10000,700,30000,no,self,slavele,0,20382,20382,20382,,,,
20382,G Twin Caput@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,6,
20382,G Twin Caput@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,,
20382,G Twin Caput@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,29,
// Meister ABR's (Automated Battle Robot)
20834,ABR_BATTLE_WARIOR@ABR_BATTLE_BUSTER,chase,8601,1,10000,500,5000,yes,target,always,0,,,,,,,
20834,ABR_BATTLE_WARIOR@ABR_BATTLE_BUSTER,attack,8601,1,10000,500,5000,yes,target,always,0,,,,,,,

View File

@@ -2781,9 +2781,39 @@ Body:
- Id: 5855
Title: "[Wait] Utan Fighting Operation"
TimeLimit: 4h
- Id: 5856
Title: My Name is Morning
- Id: 5857
Title: Friends of Morning
- Id: 5858
Title: Friends of Morning
- Id: 5859
Title: Friends of Morning
- Id: 5860
Title: Friends of Morning
- Id: 5861
Title: "[Waiting] Take care of the morning"
TimeLimit: 4h
- Id: 5862
Title: Morning's Menu Selection
- Id: 5863
Title: Morning's Menu Selection
- Id: 5864
Title: Morning's Menu Selection
- Id: 5865
Title: Morning's Menu Selection
- Id: 5866
Title: Morning's Menu Selection
- Id: 5867
Title: Morning's Menu Selection
- Id: 5868
Title: Morning's Menu Selection
- Id: 5869
Title: Morning's Menu Selection
- Id: 5870
Title: Morning's Menu Selection
- Id: 5871
Title: Morning's Menu Selection
- Id: 5896
Title: "[Waiting] Cleaning the sewage treatment plant."
TimeLimit: 4h
@@ -4835,6 +4865,54 @@ Body:
- Id: 7842
Title: Today's Sweets Drops Avenger (Standby)
TimeLimit: 4h
- Id: 7850
Title: Cat on Bullet
- Id: 7851
Title: New Operation
- Id: 7852
Title: Beyond the Barrier
- Id: 7853
Title: Barrier Investigation
- Id: 7854
Title: Wall on Barrier
- Id: 7855
Title: Watchtower
- Id: 7856
Title: Small Hole
- Id: 7857
Title: Report to Lucky
- Id: 7858
Title: Investigate the Strange Sounds
Targets:
- Mob: EP17_1_DOLOR1
Count: 10
- Mob: EP17_1_VENENUM1
Count: 10
- Mob: EP17_1_TWIN_CAPUT1
Count: 10
- Id: 7859
Title: Report to Tes
- Id: 7860
Title: Unexpected Guest
- Id: 7861
Title: Enterprise Crisis
- Id: 7862
Title: Reclaim Regenschirm
- Id: 7863
Title: Laboratory Data
- Id: 7864
Title: Ventilation
- Id: 7865
Title: Second Operation
- Id: 7866
Title: Along with Cat on Bullet
- Id: 7867
Title: Mercenary vs Mercenary
Targets:
- Mob: EP17_1_BELLARE1
Count: 15
- Mob: EP17_1_SANARE1
Count: 15
- Id: 7868
Title: Mercenary vs Mercenary - Waiting
TimeLimit: 4h
@@ -7158,6 +7236,22 @@ Body:
- Id: 11571
Title: Let the light consume the darkness - Wait
TimeLimit: 4h
- Id: 11596
Title: Old Memories
- Id: 11597
Title: Old Memories
- Id: 11598
Title: Old Memories
- Id: 11599
Title: Old Memories
- Id: 11600
Title: Old Memories
- Id: 11601
Title: Old Memories
- Id: 11602
Title: Old Memories
- Id: 11603
Title: Old Memories
- Id: 11606
Title: Jack The Giant Pumpkin (Standby)
TimeLimit: 4h
@@ -8160,9 +8254,16 @@ Body:
- Id: 12421
Title: Aftereffects that saved the world
TimeLimit: 4h
- Id: 12452
Title: OS Occupation
- Id: 12453
Title: Operation Waiting
TimeLimit: 4h
- Id: 12454
Title: More Search Operations
Targets:
- Mob: MD_MIGUEL
Count: 1
- Id: 12455
Title: Operation Waiting
TimeLimit: 4h
@@ -9325,7 +9426,7 @@ Body:
Title: Time for repair
TimeLimit: 4h
- Id: 14613
Title: Erst on second floor
Title: Est on second floor
- Id: 14614
Title: Convince the leaders
- Id: 14615
@@ -9351,12 +9452,84 @@ Body:
- Id: 14650
Title: Currently in production
TimeLimit: 4h
- Id: 14651
Title: Decision on divorce should be made cautiously
TimeLimit: +4d
- Id: 14652
Title: Detailed Account 01
- Id: 14653
Title: Detailed Account 02
- Id: 14654
Title: Detailed Account 03
- Id: 14655
Title: I'm Ready
- Id: 14656
Title: Finding Father Grimm's Colleagues
- Id: 14657
Title: Jojo Is the Mage's Name
- Id: 14658
Title: Jubilee Is the Priest's Name
- Id: 14659
Title: Lost in Thought
- Id: 14660
Title: Ingredients for Fake Blood
Drops:
- Mob: ILL_DRAINLIAR
Item: Sticky_Blood
Rate: 7000
- Mob: ILL_BLACK_MUSHROOM
Item: Mushroom_Sap
Rate: 7000
- Id: 14661
Title: Jojo Is the Mage's Name 02
- Id: 14662
Title: You're Scaring Me
- Id: 14663
Title: Bloody Fight
- Id: 14664
Title: Deep Misunderstanding
- Id: 14665
Title: Is the Fight Over?
- Id: 14666
Title: Warden's Role
- Id: 14667
Title: Send the Dead Back to Earth
Targets:
- Mob: ILL_ZOMBIE_C
Count: 10
- Mob: ILL_ZOMBIE
Count: 10
- Mob: ILL_GHOUL
Count: 10
- Id: 14668
Title: Get Some Rest
TimeLimit: 4h
- Id: 14669
Title: Sweet Dreams
Targets:
- Mob: ILL_NIGHTMARE
Count: 10
Drops:
- Mob: ILL_NIGHTMARE
Item: Swaying_Mane
Rate: 7000
- Id: 14670
Title: Time for Dreaming
TimeLimit: 4h
- Id: 14671
Title: Unreliable Fake Blood
Targets:
- Mob: ILL_DRAINLIAR
Count: 5
- Mob: ILL_BLACK_MUSHROOM
Count: 5
Drops:
- Mob: ILL_DRAINLIAR
Item: Sticky_Blood
Rate: 7000
- Mob: ILL_BLACK_MUSHROOM
Item: Mushroom_Sap
Rate: 7000
- Id: 14672
Title: Preparing for the Firework Festival
Targets:
@@ -9368,12 +9541,26 @@ Body:
- Id: 14674
Title: Time to Digest
TimeLimit: 4h
- Id: 14675
Title: Noisy Neighbors
Targets:
- Mob: ILL_DRAINLIAR
Count: 10
- Id: 14676
Title: Break Time
TimeLimit: 4h
- Id: 14677
Title: Studying in Dim Light
- Id: 14678
Title: Time to Study
TimeLimit: 4h
- Id: 14679
Title: Curious by Nature
Targets:
- Mob: ILL_ZOMBIE_C
Count: 5
- Mob: ILL_ZOMBIE
Count: 5
- Id: 14680
Title: Time to Research
TimeLimit: 4h
@@ -9913,12 +10100,61 @@ Body:
- Id: 16344
Title: Healthy Herb of June (Standby)
TimeLimit: 4h
- Id: 16352
Title: Call from Elena Volkova
- Id: 16353
Title: Golden Troublemaker
- Id: 16354
Title: Operation of Elyumina
- Id: 16355
Title: Suspicious Box
- Id: 16356
Title: Suspicious Box
- Id: 16357
Title: Elyumina Secured
- Id: 16358
Title: Pure Wicked
- Id: 16359
Title: Pure Violence
- Id: 16360
Title: Pure Facts
- Id: 16361
Title: Pure Backward
- Id: 16362
Title: Pure Backstab (Standby)
TimeLimit: 4h
- Id: 16363
Title: Process EL1_A17T
Targets:
- Mob: MD_E_EA1L
Count: 1
- Id: 16364
Title: Helping Farm Worker
- Id: 16365
Title: Standby
Title: Helping Farm Worker - Standby
TimeLimit: 4h
- Id: 16366
Title: Helping Farm Worker
- Id: 16367
Title: Growing Grapes
- Id: 16368
Title: Growing Grapes
- Id: 16369
Title: Growing Grapes
- Id: 16370
Title: Growing Bean Plants
- Id: 16371
Title: Growing Bean Plants
- Id: 16372
Title: Growing Bean Plants
- Id: 16373
Title: Growing Pumpkins
- Id: 16374
Title: Growing Pumpkins
- Id: 16375
Title: Growing Pumpkins
- Id: 16376
Title: Overpower EL1_A17T
- Id: 16377
Title: EL1_A17T Overpower (Standby)
TimeLimit: +10mn
@@ -9988,6 +10224,8 @@ Body:
- Id: 16538
Title: Natural change - Waiting
TimeLimit: 4h
- Id: 16546
Title: Farm Worker
- Id: 17000
Title: Meet with Father Bamph
- Id: 17001
@@ -10024,8 +10262,49 @@ Body:
Title: Regicide
- Id: 17017
Title: Reporting the King's Death
- Id: 17018
Title: Status of patients
- Id: 17019
Title: Urgent situation
- Id: 17020
Title: Resume investigation
- Id: 17021
Title: Finding Patrick
- Id: 17022
Title: Finding Patrick
- Id: 17023
Title: Finding Patrick
- Id: 17024
Title: Finding Patrick
- Id: 17025
Title: Finding Patrick
- Id: 17026
Title: Finding Patrick
- Id: 17027
Title: Finding Patrick
- Id: 17028
Title: Finding Patrick
- Id: 17029
Title: Finding Patrick
- Id: 17030
Title: Finding Patrick
- Id: 17031
Title: Finding Patrick
- Id: 17032
Title: Finding Patrick
- Id: 17033
Title: For all future work
- Id: 17034
Title: Rudus
Targets:
- Mob: EP17_1_DOLOR1
Count: 20
Drops:
- Mob: EP17_1_DOLOR1
Item: Id_Card
Rate: 5000
- Id: 17035
Title: "Waiting: Ludusro"
Title: "Waiting: Rudus"
TimeLimit: 4h
- Id: 17037
Title: "Wait: Replace attribute"
@@ -10105,6 +10384,8 @@ Body:
- Id: 17566
Title: (Standby) Code name! Is it a star button?
TimeLimit: 4h
- Id: 18000
Title: Ready to enter
- Id: 18001
Title: Delivery for Rooney
- Id: 18002
@@ -10158,64 +10439,6 @@ Body:
- Id: 18028
Title: The Memory of Thanatos the Magistrate - Waiting
TimeLimit: 4h
- Id: 18030
Title: Geoborg Family Curse
TimeLimit: 4h
- Id: 18031
Title: Geoborg Family Curse
- Id: 18032
Title: Geoborg Family Curse
TimeLimit: 4h
- Id: 18033
Title: Geoborg Family Curse
- Id: 18034
Title: Geoborg Family Curse
TimeLimit: 4h
- Id: 18035
Title: Geoborg Family Curse
- Id: 18036
Title: Geoborg Family Curse
TimeLimit: 4h
- Id: 18037
Title: Geoborg Family Curse
- Id: 18038
Title: Geoborg Family Curse
TimeLimit: 4h
- Id: 18039
Title: Geoborg Family Curse
- Id: 18040
Title: Geoborg Family Curse
TimeLimit: 4h
- Id: 18041
Title: Geoborg Family Curse
- Id: 18042
Title: Geoborg Family Curse
TimeLimit: 4h
- Id: 18043
Title: Geoborg Family Curse
- Id: 18044
Title: Geoborg Family Curse
TimeLimit: 4h
- Id: 18045
Title: Geoborg Family Curse
- Id: 18046
Title: Geoborg Family Curse
TimeLimit: 4h
- Id: 18047
Title: Geoborg Family Curse
- Id: 18048
Title: Geoborg Family Curse
TimeLimit: 4h
- Id: 18049
Title: Geoborg Family Curse
- Id: 18050
Title: Geoborg Family Curse
TimeLimit: 4h
- Id: 18051
Title: Geoborg Family Curse
- Id: 18052
Title: Geoborg Family Curse
TimeLimit: 4h
- Id: 18054
Title: Nightmare on the clock tower - Standby
TimeLimit: 4h

View File

@@ -780,8 +780,8 @@ Body:
Element: Earth
CastCancel: true
CastTime: 800
Duration1: 17000
Duration2: 5000
Duration1: 5000
Duration2: 17000
FixedCastTime: 200
Requires:
SpCost:
@@ -5601,7 +5601,7 @@ Body:
IgnoreDefense: true
Flags:
IsNpc: true
Range: 3
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5615,7 +5615,7 @@ Body:
IgnoreFlee: true
Flags:
IsNpc: true
Range: -1
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5627,7 +5627,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: 9
Range: -7
Hit: Single
HitCount: 1
- Id: 161
@@ -5766,7 +5766,7 @@ Body:
Critical: true
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5778,7 +5778,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Multi_Hit
HitCount:
- Level: 1
@@ -5812,7 +5812,7 @@ Body:
IgnoreFlee: true
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5830,7 +5830,6 @@ Body:
Flags:
IsNpc: true
TargetTrap: true
Range: 5
Hit: Single
HitCount: 1
Element: Fire
@@ -5873,7 +5872,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5887,7 +5886,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5901,7 +5900,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5915,7 +5914,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5929,12 +5928,12 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
Duration1: 17000
Duration2: 100
Duration1: 100
Duration2: 17000
Status: StoneWait
- Id: 181
Name: NPC_CURSEATTACK
@@ -5944,7 +5943,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Dark
@@ -5958,7 +5957,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -5972,7 +5971,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Random
@@ -5984,7 +5983,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Water
@@ -5997,7 +5996,7 @@ Body:
Flags:
IsNpc: true
TargetHidden: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Earth
@@ -6009,7 +6008,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Fire
@@ -6021,7 +6020,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Wind
@@ -6033,7 +6032,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Poison
@@ -6046,7 +6045,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Holy
@@ -6058,7 +6057,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Dark
@@ -6070,7 +6069,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Ghost
@@ -6082,7 +6081,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -6164,7 +6163,7 @@ Body:
IgnoreFlee: true
Flags:
IsNpc: true
Range: 9
Range: -7
Hit: Single
HitCount: 1
Element: Dark
@@ -7101,7 +7100,6 @@ Body:
TargetType: Self
DamageFlags:
NoDamage: true
Range: 9
Hit: Single
SplashArea: 1
CastTime: 2000
@@ -7599,17 +7597,7 @@ Body:
TargetTrap: true
Range: 9
Hit: Multi_Hit
HitCount:
- Level: 1
Count: 1
- Level: 2
Count: 2
- Level: 3
Count: 3
- Level: 4
Count: 4
- Level: 5
Count: 5
HitCount: 5
Element: Weapon
CopyFlags:
Skill:
@@ -9513,7 +9501,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -1
Range: -2
Hit: Multi_Hit
HitCount: -2
Element: Dark
@@ -9531,12 +9519,12 @@ Body:
Flags:
IsNpc: true
TargetSelf: true
Range: 5
Hit: Single
HitCount: 1
Element: Dark
AfterCastWalkDelay: 1000
Duration1: 18000
Duration1: 950
Duration2: 18000
Unit:
Id: Dummyskill
Layout: -1
@@ -9639,7 +9627,7 @@ Body:
NoDamage: true
Flags:
IsNpc: true
Range: 9
Range: -2
Hit: Single
Duration1: 15000
Status: Stop
@@ -9664,7 +9652,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: 9
Range: -2
Hit: Single
HitCount: 1
Element: Weapon
@@ -9677,7 +9665,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: 9
Range: -2
Hit: Single
HitCount: 1
Element: Weapon
@@ -9689,7 +9677,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: 9
Range: -2
Hit: Single
HitCount: 1
Element: Weapon
@@ -9701,7 +9689,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Undead
@@ -9709,16 +9697,15 @@ Body:
Name: NPC_CHANGEUNDEAD
Description: Undead Attribute Change
MaxLevel: 5
Type: Magic
Type: Weapon
TargetType: Attack
DamageFlags:
NoDamage: true
Flags:
IsNpc: true
Range: 9
Range: -2
Hit: Single
HitCount: 1
Element: Undead
Duration1: 30000
Duration2: 60000
Status: ChangeUndead
- Id: 349
Name: NPC_POWERUP
@@ -9782,7 +9769,6 @@ Body:
NoDamage: true
Flags:
IsNpc: true
Range: 2
- Id: 353
Name: NPC_INVISIBLE
Description: Invisible
@@ -9803,7 +9789,6 @@ Body:
NoDamage: true
Flags:
IsNpc: true
Range: 2
Hit: Single
- Id: 355
Name: LK_AURABLADE
@@ -16311,8 +16296,8 @@ Body:
Area: 11
- Level: 5
Area: 14
Duration1: 17000
Duration2: 100
Duration1: 100
Duration2: 17000
Status: StoneWait
- Id: 667
Name: NPC_WIDECONFUSE
@@ -16520,7 +16505,7 @@ Body:
TargetType: Attack
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -16535,7 +16520,7 @@ Body:
NoDamage: true
Flags:
IsNpc: true
Range: -9
Range: -7
Hit: Single
HitCount: 1
Element: Weapon
@@ -16752,7 +16737,7 @@ Body:
NoDamage: true
Flags:
IsNpc: true
Range: -9
Range: -7
HitCount: 1
Duration2: 180000
Status: HellPower
@@ -19232,7 +19217,8 @@ Body:
CastCancel: true
CastTime: 2000
AfterCastActDelay: 2000
Duration1:
Duration1: 100
Duration2:
- Level: 1
Time: 7000
- Level: 2
@@ -19243,7 +19229,6 @@ Body:
Time: 13000
- Level: 5
Time: 15000
Duration2: 100
Requires:
SpCost:
- Level: 1
@@ -20178,7 +20163,11 @@ Body:
Time: 240000
- Level: 5
Time: 300000
Duration2: 300000
Duration2:
- Level: 1
Time: 15000
- Level: 2
Time: 300000
Requires:
SpCost:
- Level: 1
@@ -20357,7 +20346,7 @@ Body:
Unit:
Id: Poisonsmoke
Layout: 2
Interval: 1000
Interval: 2000
Target: Enemy
Flag:
NoOverlap: true
@@ -22659,14 +22648,19 @@ Body:
ItemCost:
- Item: RepairA
Amount: 1
Level: 1
- Item: RepairA
Amount: 1
Level: 2
- Item: RepairB
Amount: 1
Level: 3
- Item: RepairB
Amount: 1
Level: 4
- Item: RepairC
Amount: 1
Level: 5
- Item: Repair_Kit
Amount: 0
- Id: 2276
@@ -25640,15 +25634,15 @@ Body:
Requires:
SpCost:
- Level: 1
Amount: 40
Amount: 25
- Level: 2
Amount: 50
Amount: 30
- Level: 3
Amount: 60
Amount: 35
- Level: 4
Amount: 70
Amount: 40
- Level: 5
Amount: 80
Amount: 45
SpiritSphereCost: 2
- Id: 2350
Name: WA_SWING_DANCE
@@ -32012,8 +32006,8 @@ Body:
HitCount: 1
CastCancel: true
AfterCastActDelay: 1000
Duration1: 10000
Duration2: 5000
Duration1: 100
Duration2: 10000
Requires:
SpCost: 30
Unit:
@@ -33239,19 +33233,9 @@ Body:
Range: 9
Hit: Multi_Hit
HitCount: -5
SplashArea:
- Level: 1
Area: 1
- Level: 2
Area: 1
- Level: 3
Area: 2
- Level: 4
Area: 2
- Level: 5
Area: 3
SplashArea: 3
CastCancel: true
CastTime: 3000
CastTime: 2000
AfterCastActDelay: 1000
Duration1:
- Level: 1
@@ -33266,7 +33250,7 @@ Body:
Time: 3500
Duration2: 18000
Cooldown: 5000
FixedCastTime: 3000
FixedCastTime: 1500
Requires:
SpCost:
- Level: 1
@@ -33656,17 +33640,7 @@ Body:
Range: 9
Hit: Multi_Hit
HitCount: -5
SplashArea:
- Level: 1
Area: 1
- Level: 2
Area: 1
- Level: 3
Area: 2
- Level: 4
Area: 2
- Level: 5
Area: 3
SplashArea: 3
CastCancel: true
Duration1:
- Level: 1
@@ -40737,7 +40711,7 @@ Body:
MaxLevel: 5
Type: Weapon
TargetType: Attack
Range: 1
Range: 15
Hit: Multi_Hit
HitCount:
- Level: 1
@@ -40857,7 +40831,7 @@ Body:
MaxLevel: 3
Type: Weapon
TargetType: Attack
Range: 1
Range: 15
Hit: Single
HitCount: 1
AfterCastActDelay: 1000
@@ -40869,7 +40843,7 @@ Body:
MaxLevel: 5
Type: Magic
TargetType: Attack
Range: 9
Range: 15
Hit: Single
HitCount:
- Level: 1
@@ -40934,7 +40908,6 @@ Body:
IgnoreElement: true
IgnoreFlee: true
IgnoreDefCard: true
Range: 4
Hit: Single
HitCount: 1
Element: Weapon

View File

@@ -71,7 +71,6 @@ Body:
Stun: true
Sleep: true
Burning: true
#Undead: true
End:
Aeterna: true
EndReturn:
@@ -84,6 +83,7 @@ Body:
Opt1: StoneWait
Flags:
SendOption: true
BossResist: true
StopAttacking: true
Fail:
Whiteimprison: true
@@ -91,7 +91,6 @@ Body:
Stun: true
Sleep: true
Burning: true
#Undead: true
EndReturn:
StoneWait: true
Stone: true
@@ -117,8 +116,14 @@ Body:
Inspiration: true
Warmer: true
Gvg_Freez: true
Whiteimprison: true
Stone: true
StoneWait: true
Freeze: true
Stun: true
Sleep: true
Burning: true
End:
Dancing: true
Aeterna: true
- Status: Stun
DurationLookup: NPC_STUNATTACK
@@ -132,13 +137,11 @@ Body:
BossResist: true
StopAttacking: true
StopCasting: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
Gvg_Stun: true
End:
Dancing: true
Stun: true
- Status: Sleep
DurationLookup: NPC_SLEEPATTACK
States:
@@ -152,13 +155,11 @@ Body:
StopAttacking: true
StopCasting: true
RemoveOnDamaged: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
Gvg_Sleep: true
End:
Dancing: true
Sleep: true
- Status: Poison
DurationLookup: NPC_POISON
CalcFlags:
@@ -170,11 +171,12 @@ Body:
SendOption: true
BossResist: true
StopAttacking: true
OverlapFail: true
SpreadEffect: true
Fail:
Refresh: true
Inspiration: true
Poison: true
Dpoison: true
- Status: Curse
DurationLookup: NPC_WIDECURSE
CalcFlags:
@@ -187,12 +189,12 @@ Body:
Flags:
SendOption: true
BossResist: true
OverlapFail: true
SpreadEffect: true
Fail:
Refresh: true
Inspiration: true
Gvg_Curse: true
Curse: true
- Status: Silence
DurationLookup: NPC_SILENCEATTACK
States:
@@ -203,23 +205,22 @@ Body:
SendOption: true
BossResist: true
StopCasting: true
OverlapFail: true
SpreadEffect: true
Fail:
Refresh: true
Inspiration: true
Gvg_Silence: true
Silence: true
- Status: Confusion
DurationLookup: NPC_WIDECONFUSE
Flags:
BossResist: true
StopWalking: true
RemoveOnDamaged: true
OverlapFail: true
SpreadEffect: true
Fail:
Refresh: true
Inspiration: true
EndReturn:
Confusion: true
- Status: Blind
DurationLookup: NPC_BLINDATTACK
@@ -231,13 +232,13 @@ Body:
Flags:
SendOption: true
BossResist: true
OverlapFail: true
SpreadEffect: true
Fail:
Refresh: true
Inspiration: true
Fear: true
Gvg_Blind: true
Blind: true
- Status: Bleeding
Icon: EFST_BLOODING
DurationLookup: NPC_BLEEDING
@@ -250,7 +251,6 @@ Body:
BossResist: true
NoSave: true
NoClearance: true
OverlapFail: true
SpreadEffect: true
Fail:
Refresh: true
@@ -265,7 +265,6 @@ Body:
Flags:
SendOption: true
BossResist: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
@@ -1100,9 +1099,10 @@ Body:
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
OverlapFail: true
NoClearance: true
NoForcedEnd: true
Fail:
Nochat: true
- Status: Protectexp
Icon: EFST_PROTECTEXP
DurationLookup: WE_BABY
@@ -1182,7 +1182,7 @@ Body:
Flags:
NoSave: true
- Status: Assumptio
Icon: EFST_ASSUMPTIO_BUFF
Icon: EFST_ASSUMPTIO2
DurationLookup: HP_ASSUMPTIO
CalcFlags:
Def: true
@@ -1313,7 +1313,8 @@ Body:
Marionette: true
Flags:
RemoveOnChangeMap: true
OverlapFail: true
Fail:
Marionette: true
- Status: Marionette2
Icon: EFST_MARIONETTE
DurationLookup: CG_MARIONETTE
@@ -1328,7 +1329,8 @@ Body:
Marionette: true
Flags:
RemoveOnChangeMap: true
OverlapFail: true
Fail:
Marionette2: true
- Status: Changeundead
Icon: EFST_PROPERTYUNDEAD
DurationLookup: NPC_CHANGEUNDEAD
@@ -1413,16 +1415,17 @@ Body:
Mdef: true
Aspd: true
Speed: true
Flags:
NoSave: true
Opt3:
SteelBody: true
- Status: Orcish
DurationLookup: SA_REVERSEORCISH
Flags:
Debuff: true
SendOption: true
Options:
Orcish: true
Flags:
SendOption: true
- Status: Readystorm
Icon: EFST_STORMKICK_ON
DurationLookup: TK_READYSTORM
@@ -1650,7 +1653,8 @@ Body:
NoSave: true
NoRemoveOnDead: true
RemoveOnChangeMap: true
OverlapFail: true
Fail:
Closeconfine2: true
- Status: Dancing
Icon: EFST_BDPLAYING
DurationLookup: BD_ENCORE
@@ -2608,7 +2612,8 @@ Body:
NoBanishingBuster: true
NoClearance: true
RemoveOnMapWarp: true
OverlapFail: true
Fail:
Bossmapinfo: true
- Status: Lifeinsurance
Icon: EFST_CASH_DEATHPENALTY
States:
@@ -2777,16 +2782,22 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoRemoveOnDead: true
End:
L_Lifepotion: true
M_Lifepotion: true
Fail:
S_Lifepotion: true
- Status: L_Lifepotion
Icon: EFST_L_LIFEPOTION
Flags:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoRemoveOnDead: true
End:
S_Lifepotion: true
M_Lifepotion: true
Fail:
L_Lifepotion: true
- Status: Jexpboost
Icon: EFST_CASH_PLUSONLYJOBEXP
Flags:
@@ -2951,7 +2962,6 @@ Body:
Flags:
BossResist: true
StopWalking: true
OverlapFail: true
Debuff: true
Fail:
Inspiration: true
@@ -2969,7 +2979,6 @@ Body:
RemoveOnLuxAnima: true
BossResist: true
Debuff: true
OverlapFail: true
SpreadEffect: true
MinDuration: 10000
Fail:
@@ -2992,13 +3001,13 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
SpreadEffect: true
MinDuration: 10000
Fail:
Refresh: true
Inspiration: true
Warmer: true
Freezing: true
- Status: Enchantblade
Icon: EFST_ENCHANTBLADE
DurationLookup: RK_ENCHANTBLADE
@@ -3042,8 +3051,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Refresh: true
- Status: Giantgrowth
Icon: EFST_GIANTGROWTH
DurationLookup: RK_GIANTGROWTH
@@ -3102,7 +3112,8 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
Fail:
Abundance: true
- Status: Adoramus
Icon: EFST_ADORAMUS
DurationLookup: AB_ADORAMUS
@@ -3188,12 +3199,8 @@ Body:
StopWalking: true
StopAttacking: true
StopCasting: true
OverlapFail: true
End:
Burning: true
Freezing: true
Freeze: true
Stone: true
- Status: Marshofabyss
Icon: EFST_MARSHOFABYSS
DurationLookup: WL_MARSHOFABYSS
@@ -3286,8 +3293,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoSave: true
OverlapFail: true
NoClearance: true
Fail:
Electricshocker: true
- Status: Wugdash
Icon: EFST_WUGDASH
DurationLookup: RA_WUGDASH
@@ -3552,8 +3560,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
SpreadEffect: true
Fail:
Toxin: true
- Status: Paralyse
Icon: EFST_PARALYSE
CalcFlags:
@@ -3567,7 +3576,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
SpreadEffect: true
Fail:
Refresh: true
@@ -3591,7 +3599,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
SpreadEffect: true
Fail:
Refresh: true
@@ -3615,7 +3622,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
SpreadEffect: true
Fail:
Refresh: true
@@ -3639,7 +3645,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
SpreadEffect: true
Fail:
Refresh: true
@@ -3663,7 +3668,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
SpreadEffect: true
Fail:
Refresh: true
@@ -3690,7 +3694,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
SpreadEffect: true
Fail:
Refresh: true
@@ -3712,7 +3715,6 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
SpreadEffect: true
Fail:
Refresh: true
@@ -3732,6 +3734,7 @@ Body:
NoDispell: true
NoBanishingBuster: true
RequireShield: true
NoSave: true
End:
Reflectshield: true
- Status: Forceofvanguard
@@ -3787,18 +3790,20 @@ Body:
Def: true
Flags:
DisplayPc: true
OverlapFail: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
SendVal1: true
Fail:
Banding: true
End:
Prestige: true
- Status: Banding_Defence
Icon: EFST_BANDING_DEFENCE
Flags:
BossResist: true
OverlapFail: true
Fail:
Banding_Defence: true
- Status: Earthdrive
Icon: EFST_EARTHDRIVE
DurationLookup: LG_EARTHDRIVE
@@ -3850,11 +3855,11 @@ Body:
StopCasting: true
SetStand: true
Debuff: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
Warmer: true
Crystalize: true
- Status: Striking
Icon: EFST_STRIKING
DurationLookup: SO_STRIKING
@@ -4036,11 +4041,11 @@ Body:
RemoveOnDamaged: true
NoSave: true
Debuff: true
OverlapFail: true
MinDuration: 5000
Fail:
Refresh: true
Inspiration: true
Deepsleep: true
End:
Dancing: true
Voiceofsiren: true
@@ -4253,8 +4258,9 @@ Body:
DisplayPc: true
BossResist: true
StopWalking: true
OverlapFail: true
Debuff: true
Fail:
Netherworld: true
- Status: Crescentelbow
Icon: EFST_CRESCENTELBOW
DurationLookup: SR_CRESCENTELBOW
@@ -4297,7 +4303,8 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
Fail:
Cursedcircle_Target: true
- Status: Lightningwalk
Icon: EFST_LIGHTNINGWALK
DurationLookup: SR_LIGHTNINGWALK
@@ -4414,10 +4421,10 @@ Body:
NoDispell: true
NoBanishingBuster: true
Debuff: true
OverlapFail: true
Fail:
Refresh: true
Inspiration: true
Mandragora: true
- Status: Stomachache
Icon: EFST_STOMACHACHE
CalcFlags:
@@ -4669,13 +4676,13 @@ Body:
Batk: true
Watk: true
Flags:
OverlapFail: true
BossResist: true
NoBanishingBuster: true
NoClearance: true
SendVal2: true
Fail:
Inspiration: true
_Enervation: true
- Status: _Groomy
Icon: EFST_GROOMY
DurationLookup: SC_GROOMY
@@ -4683,25 +4690,25 @@ Body:
Aspd: true
Hit: true
Flags:
OverlapFail: true
BossResist: true
NoBanishingBuster: true
NoClearance: true
SendVal3: true
Fail:
Inspiration: true
_Groomy: true
- Status: _Ignorance
Icon: EFST_IGNORANCE
DurationLookup: SC_IGNORANCE
States:
NoCast: true
Flags:
OverlapFail: true
BossResist: true
NoBanishingBuster: true
NoClearance: true
Fail:
Inspiration: true
_Ignorance: true
- Status: _Laziness
Icon: EFST_LAZINESS
DurationLookup: SC_LAZINESS
@@ -4709,13 +4716,13 @@ Body:
Flee: true
Speed: true
Flags:
OverlapFail: true
BossResist: true
NoBanishingBuster: true
NoClearance: true
SendVal3: true
Fail:
Inspiration: true
_Laziness: true
- Status: _Unlucky
Icon: EFST_UNLUCKY
DurationLookup: SC_UNLUCKY
@@ -4723,26 +4730,26 @@ Body:
Cri: true
Flee2: true
Flags:
OverlapFail: true
BossResist: true
NoBanishingBuster: true
NoClearance: true
SendVal3: true
Fail:
Inspiration: true
_Unlucky: true
- Status: _Weakness
Icon: EFST_WEAKNESS
DurationLookup: SC_WEAKNESS
CalcFlags:
MaxHp: true
Flags:
OverlapFail: true
BossResist: true
NoBanishingBuster: true
NoClearance: true
SendVal2: true
Fail:
Inspiration: true
_Weakness: true
- Status: _Stripaccessory
Icon: EFST_STRIPACCESSARY
DurationLookup: SC_STRIPACCESSARY
@@ -5456,7 +5463,8 @@ Body:
Flags:
NoSave: true
RemoveOnChangeMap: true
OverlapFail: true
Fail:
Tinder_Breaker2: true
- Status: Cbc
Icon: EFST_CBC
DurationLookup: MH_CBC
@@ -5581,14 +5589,14 @@ Body:
Icon: EFST_SET_NUM_DEF
CalcFlags:
Def: true
Flags:
OverlapFail: true
Fail:
Defset: true
- Status: Mdefset
Icon: EFST_SET_NUM_MDEF
CalcFlags:
Mdef: true
Flags:
OverlapFail: true
Fail:
Mdefset: true
- Status: Darkcrow
Icon: EFST_DARKCROW
DurationLookup: GC_DARKCROW
@@ -6152,8 +6160,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Limit_A: true
- Status: Reuse_Limit_B
Icon: EFST_REUSE_LIMIT_B
Flags:
@@ -6162,8 +6171,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Limit_B: true
- Status: Reuse_Limit_C
Icon: EFST_REUSE_LIMIT_C
Flags:
@@ -6172,8 +6182,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Limit_C: true
- Status: Reuse_Limit_D
Icon: EFST_REUSE_LIMIT_D
Flags:
@@ -6182,8 +6193,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Limit_D: true
- Status: Reuse_Limit_E
Icon: EFST_REUSE_LIMIT_E
Flags:
@@ -6192,8 +6204,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Limit_E: true
- Status: Reuse_Limit_F
Icon: EFST_REUSE_LIMIT_F
Flags:
@@ -6202,8 +6215,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Limit_F: true
- Status: Reuse_Limit_G
Icon: EFST_REUSE_LIMIT_G
Flags:
@@ -6212,8 +6226,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Limit_G: true
- Status: Reuse_Limit_H
Icon: EFST_REUSE_LIMIT_H
Flags:
@@ -6222,8 +6237,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Limit_H: true
- Status: Reuse_Limit_Mtf
Icon: EFST_REUSE_LIMIT_MTF
Flags:
@@ -6232,8 +6248,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Limit_Mtf: true
- Status: Reuse_Limit_Aspd_Potion
Icon: EFST_REUSE_LIMIT_ASPD_POTION
Flags:
@@ -6242,8 +6259,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Limit_Aspd_Potion: true
- Status: Reuse_Millenniumshield
Icon: EFST_REUSE_MILLENNIUMSHIELD
Flags:
@@ -6252,8 +6270,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Millenniumshield: true
- Status: Reuse_Crushstrike
Icon: EFST_REUSE_CRUSHSTRIKE
Flags:
@@ -6262,8 +6281,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Crushstrike: true
- Status: Reuse_Stormblast
Icon: EFST_REUSE_STORMBLAST
Flags:
@@ -6272,8 +6292,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Stormblast: true
- Status: All_Riding_Reuse_Limit
Icon: EFST_ALL_RIDING_REUSE_LIMIT
Flags:
@@ -6282,8 +6303,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
All_Riding_Reuse_Limit: true
- Status: Reuse_Limit_Ecl
Icon: EFST_REUSE_LIMIT_ECL
Flags:
@@ -6292,8 +6314,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Limit_Ecl: true
- Status: Reuse_Limit_Recall
Icon: EFST_REUSE_LIMIT_RECALL
Flags:
@@ -6302,8 +6325,9 @@ Body:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
OverlapFail: true
NoForcedEnd: true
Fail:
Reuse_Limit_Recall: true
- Status: Promote_Health_Reserch
Icon: EFST_PROMOTE_HEALTH_RESERCH
CalcFlags:
@@ -6314,8 +6338,8 @@ Body:
MaxSp: true
- Status: Norecover_State
Icon: EFST_HANDICAPSTATE_NORECOVER
Flags:
OverlapFail: true
Fail:
Norecover_State: true
- Status: Suhide
Icon: EFST_SUHIDE
DurationLookup: SU_HIDE
@@ -6685,9 +6709,10 @@ Body:
NoRemoveOnDead: true
NoClearbuff: true
NoBanishingBuster: true
OverlapFail: true
NoDispell: true
NoClearance: true
Fail:
Doram_Buf_01: true
- Status: Doram_Buf_02
Icon: EFST_DORAM_BUF_02
CalcFlags:
@@ -6696,9 +6721,10 @@ Body:
NoRemoveOnDead: true
NoClearbuff: true
NoBanishingBuster: true
OverlapFail: true
NoDispell: true
NoClearance: true
Fail:
Doram_Buf_02: true
- Status: Hiss
Icon: EFST_HISS
DurationLookup: SU_HISS
@@ -7212,9 +7238,10 @@ Body:
NoBanishingBuster: true
NoDispell: true
NoClearance: true
OverlapFail: true
NoRemoveOnDead: true
NoClearbuff: true
Fail:
Reuse_Limit_Luxanima: true
- Status: Ensemblefatigue
Icon: EFST_ENSEMBLEFATIGUE
States:
@@ -7572,6 +7599,7 @@ Body:
- Status: Chargingpierce_Count
Icon: EFST_CHARGINGPIERCE_COUNT
Flags:
SendVal1: true
DisplayPc: true
- Status: Dragonic_Aura
Icon: EFST_DRAGONIC_AURA
@@ -7861,6 +7889,7 @@ Body:
DurationLookup: TR_JAWAII_SERENADE
CalcFlags:
Smatk: true
Speed: true
- Status: Pron_March
Icon: EFST_PRON_MARCH
DurationLookup: TR_PRON_MARCH
@@ -8109,3 +8138,22 @@ Body:
All: true
Flags:
RemoveElementalOption: true
- Status: M_Lifepotion
Icon: EFST_M_LIFEPOTION
Flags:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
End:
S_Lifepotion: true
L_Lifepotion: true
Fail:
M_Lifepotion: true
- Status: S_Manapotion
Icon: EFST_S_MANAPOTION
Flags:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
Fail:
S_Manapotion: true

View File

@@ -1178,6 +1178,12 @@ If args are given, sets camera position.
---------------------------------------
@enchantgradeui
Opens the enchantgrade UI.
---------------------------------------
==============================
| 5. Administrative Commands |
==============================

View File

@@ -165,7 +165,6 @@ Disables shop creation on a map from the ALL_BUYING_STORE skill.
*nousecart
Disables cart usage on a map.
[Not fully implemented.]
---------------------------------------
@@ -226,10 +225,9 @@ Disables Star Gladiator's "Solar, Lunar, and Stellar Miracle" from occurring on
---------------------------------------
*nomineeffect
*forcemineffect
Disables mine effects on a map.
[More information needed.]
Forces simpler skill effects, just like the command /mineffect.
---------------------------------------

View File

@@ -3,7 +3,7 @@
//===== By:==================================================
//= rAthena Dev Team
//===== Last Updated:========================================
//= 20201115
//= 20220308
//===== Description:=========================================
//= A reference manual for the rAthena scripting language.
//= Commands are sorted depending on their functionality.
@@ -4579,6 +4579,22 @@ Unlike 'getexp', this command ignores the adjustment factors!
---------------------------------------
*getbaseexp_ratio(<percent>{,<base_level>{,char_id});
Returns the amount of base experience representing the given <percent> of the
required base experience at <base_level>. If no base level is specified the base
level of the attached character will be used.
---------------------------------------
*getjobexp_ratio(<percent>{,<job_level>{,char_id});
Returns the amount of job experience representing the given <percent> of the
required job experience at <job_level>. If no job level is specified the job
level of the attached character will be used.
---------------------------------------
*setlook <look type>,<look value>{,<char_id>};
*changelook <look type>,<look value>{,<char_id>};
@@ -6777,6 +6793,13 @@ If no <character ID> is specified it will display to the area.
---------------------------------------
*cloakonnpcself {"<NPC object name>"};
*cloakoffnpcself {"<NPC object name>"};
Same command as above, but an attached player is required. The NPC will only display to the attached player.
---------------------------------------
*isnpccloaked {"<NPC object name>"{,<character ID>}};
Returns true if the NPC has been cloaked to the attached player or given
@@ -7854,6 +7877,42 @@ memory of where the points are set whatsoever.
---------------------------------------
*viewpointmap "<map name>",<action>,<x>,<y>,<point number>,<color>;
This command will mark places on the mini map in the client for all players currently
on the defined map. It uses the normal X and Y coordinates from the main map.
The colors of the marks are defined using a hexadecimal number, same as the ones
used to color text in 'mes' output, but are written as hexadecimal numbers in C.
(They look like 0x<six numbers>.)
Action is what you want to do with a point, 1 will set it, while 2 will clear
it. 0 will also set it, but automatically removes the point after 15 seconds.
Point number is the number of the point - you can have several. If more than
one point is drawn at the same coordinates, they will cycle, which can be used
to create flashing marks.
// This command will show a mark at coordinates X 30 Y 40, is mark number 1,
// and will be red for all players currently on the map Prontera.
viewpointmap "prontera",1,30,40,1,0xFF0000;
This will create three points:
.@map$ = "prontera";
viewpointmap .@map$,1,30,40,1,0xFF0000;
viewpointmap .@map$,1,35,45,2,0xFF0000;
viewpointmap .@map$,1,40,50,3,0xFF0000;
And this is how you remove them:
.@map$ = "prontera";
viewpointmap .@map$,2,30,40,1,0xFF0000;
viewpointmap .@map$,2,35,45,2,0xFF0000;
viewpointmap .@map$,2,40,50,3,0xFF0000;
The client determines what it does with the points entirely, the server keeps no
memory of where the points are set whatsoever.
---------------------------------------
*cutin "<filename>",<position>;
This command will display a picture, usually an NPC illustration, also called
@@ -8099,6 +8158,22 @@ This feature requires packet version 2017-07-26 or newer.
This function is intended for use in item scripts.
---------------------------------------
*openbank({<char id>})
Opens the Bank UI for the attached player or the given character ID.
This command requires packet version 2015-12-02 or newer.
---------------------------------------
*enchantgradeui {<char id>};
Opens the enchantgrade UI for the attached character or the player given by the char ID parameter.
This command requires packet version 2020-07-24 or newer.
---------------------------------------
\\
6,1.- Unit-related commands
@@ -8195,6 +8270,8 @@ values (can be combined using the pipe operator):
USW_MOVE_FULL_CELL = Enable moving to the next cell when unit was already half-way there (may cause on-touch/place side-effects, such as a scripted map change).
USW_FORCE_STOP = Force stop moving.
This command will also remove the state tracking used for 'unitwalk' and 'unitwalkto'.
---------------------------------------
*unittalk <GID>,"<text>"{,flag};
@@ -9562,7 +9639,7 @@ Examples:
*questinfo <Icon>{,<Map Mark Color>{,"<condition>"}};
This command should only be used in OnInit/OnInstanceInit labels.
Show an emotion on top of a NPC, and optionally, a colored mark in the mini-map like "viewpoint".
Show an emotion on top of a NPC, and optionally, a colored mark in the mini-map like "viewpoint" or "viewpointmap".
When a user is doing some action, each NPC is checked for questinfo that has been set on the map.
If questinfo is present, it will check if the player fulfill the condition.
If he/she does or no condition has been set, the bubble will appear.
@@ -9688,7 +9765,7 @@ Return the state of the quest:
*showevent <icon>{,<mark color>{,<char_id>}}
Show an emotion on top of a NPC, and optionally,
a colored mark in the mini-map like "viewpoint".
a colored mark in the mini-map like "viewpoint" or "viewpointmap".
This is used to indicate that a NPC has a quest or an event to
a certain player.
@@ -9717,6 +9794,8 @@ QMARK_PURPLE - Purple Marker
Opens the quest UI for the attached player or the given character ID.
Use 0 as the quest ID to open the main quest UI. If the quest ID is not 0 then the quest UI is opened to the given quest. If the quest data is not populated in the client LUB then a message will be displayed saying the quest doesn't exist.
This command requires packet version 2015-12-02 or newer.
---------------------------------------
============================

View File

@@ -3,7 +3,7 @@
//===== By: ==================================================
//= rAthena Dev Team
//===== Last Updated: ========================================
//= 20220406
//= 20220421
//===== Description: =========================================
//= Explanation of the status.yml file and structure.
//============================================================
@@ -113,6 +113,7 @@ Opt1: Special effect when status is active (Aegis: BODYSTATE_*). This option is
None - No effect (Default)
Stone - Stone curse effect
StoneWait - Stone curse incubation effect
Freeze - Freeze effect
Stun - Stun effect
Sleep - Sleep effect
@@ -200,7 +201,6 @@ Flags: Various status flags for specific status change events.
DislpayNpc - Displays status effect on a NPC.
Debuff - Status is considered a debuff. Used in combination with 'battle_config.debuff_on_logout'.
SetStand - Sets player to standing state.
OverlapFail - The status will fail to activate if the status is already active.
OverlapIgnoreLevel - The status will successfully activate for any level if the status is already active.
FailedMado - Cannot be applied if Madogear is active.
MadoCancel - Cancels the status when mounting Madogear.

View File

@@ -8,9 +8,9 @@
# - Jobs: List of jobs associated to group.
# Job Job name.
# MaxWeight Base maximum weight. (Default: 20000)
# HPFactor HP increase per base level. Floor(HPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 20000)
# HPMultiplicator Base HP value. 35 + BaseLv * (HPMultiplicator / 100). Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SPFactor SP increase per job level. Floor(SPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# HpFactor Exponential HP increase. Per base level: [HpFactor * BaseLv / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 0)
# HpIncrease Linear HP increase. Per base level: [HpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SpIncrease Linear SP increase. Per base level: [SpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# BaseASPD: Base ASPD for each weapon type. (Default: 2000)
# Weapon Weapon type with associated ASPD.
# BonusStats: Job level bonus stats/traits.

View File

@@ -8,9 +8,9 @@
# - Jobs: List of jobs associated to group.
# Job Job name.
# MaxWeight Base maximum weight. (Default: 20000)
# HPFactor HP increase per base level. Floor(HPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 20000)
# HPMultiplicator Base HP value. 35 + BaseLv * (HPMultiplicator / 100). Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SPFactor SP increase per job level. Floor(SPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# HpFactor Exponential HP increase. Per base level: [HpFactor * BaseLv / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 0)
# HpIncrease Linear HP increase. Per base level: [HpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SpIncrease Linear SP increase. Per base level: [SpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# BaseASPD: Base ASPD for each weapon type. (Default: 2000)
# Weapon Weapon type with associated ASPD.
# BonusStats: Job level bonus stats/traits.

View File

@@ -8,9 +8,9 @@
# - Jobs: List of jobs associated to group.
# Job Job name.
# MaxWeight Base maximum weight. (Default: 20000)
# HPFactor HP increase per base level. Floor(HPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 20000)
# HPMultiplicator Base HP value. 35 + BaseLv * (HPMultiplicator / 100). Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SPFactor SP increase per job level. Floor(SPFactor / 100) * BaseLv. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# HpFactor Exponential HP increase. Per base level: [HpFactor * BaseLv / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 0)
# HpIncrease Linear HP increase. Per base level: [HpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 500)
# SpIncrease Linear SP increase. Per base level: [SpIncrease / 100]. Used when macro HP_SP_TABLES is disabled. (Default: 100)
# BaseASPD: Base ASPD for each weapon type. (Default: 2000)
# Weapon Weapon type with associated ASPD.
# BonusStats: Job level bonus stats/traits.

View File

@@ -77,6 +77,8 @@ OnTimer1000:
//============================================================
bat_b01,15,15,3 script start#bat_b01 844,{
OnInit:
if (getbattleflag("feature.bgqueue"))
bg_unbook "bat_b01";
mapwarp "bat_b01","bat_room",154,150;
end;

View File

@@ -79,6 +79,8 @@ OnTimer1000:
//============================================================
bat_b02,15,15,3 script start#bat_b02 844,{
OnInit:
if (getbattleflag("feature.bgqueue"))
bg_unbook "bat_b02";
mapwarp "bat_b02","bat_room",154,150;
end;

View File

@@ -111,6 +111,9 @@ OnTouch:
end;
OnInit:
if (getbattleflag("feature.bgqueue"))
bg_unbook "bat_c01";
mapwarp "bat_c01","bat_room",154,150;
setwall "bat_c01",54,122,6,7,0,"batc01wall_a";
setwall "bat_c01",55,122,5,7,0,"batc01wall_b";
setwall "bat_c01",140,56,6,7,0,"batc01wall_c";

View File

@@ -111,6 +111,9 @@ OnTouch:
end;
OnInit:
if (getbattleflag("feature.bgqueue"))
bg_unbook "bat_c02";
mapwarp "bat_c02","bat_room",154,150;
setwall "bat_c02",54,122,6,7,0,"batc02wall_a";
setwall "bat_c02",55,122,5,7,0,"batc02wall_b";
setwall "bat_c02",140,56,6,7,0,"batc02wall_c";

View File

@@ -111,6 +111,9 @@ OnTouch:
end;
OnInit:
if (getbattleflag("feature.bgqueue"))
bg_unbook "bat_c03";
mapwarp "bat_c03","bat_room",154,150;
setwall "bat_c03",54,122,6,7,0,"batc03wall_a";
setwall "bat_c03",55,122,5,7,0,"batc03wall_b";
setwall "bat_c03",140,56,6,7,0,"batc03wall_c";

View File

@@ -98,6 +98,8 @@ bat_room,57,211,0 warp back_bgrooma01b 1,1,bat_room,154,150
//============================================================
bat_a01,15,15,3 script start#bat_a01 844,{
OnInit:
if (getbattleflag("feature.bgqueue"))
bg_unbook "bat_a01";
mapwarp "bat_a01","bat_room",154,150;
end;

View File

@@ -98,6 +98,8 @@ bat_room,113,211,0 warp back_bgrooma02b 1,1,bat_room,154,150
//============================================================
bat_a02,15,15,3 script start#bat_a02 844,{
OnInit:
if (getbattleflag("feature.bgqueue"))
bg_unbook "bat_a02";
mapwarp "bat_a02","bat_room",154,150;
end;

View File

@@ -288,7 +288,7 @@ prt_sewb1,120,245,6 script Sewer Management Knight 705,{
if (three_qset == 3) goto N_QuestStart;
if (seven_qset == 3) goto N_QuestStart2;
mes "[Sewer Management]";
mes "Live dosent get any worse for me,working in the bug filled Culvert every day...";
mes "Live doesn't get any worse for me, working in this bug filled Culvert every day...";
close;
N_QuestComp:
mes "[Sewer Management]";

View File

@@ -263,6 +263,7 @@ payon_in02,54,13,3 script Master Kavaruk 1_M_JOBTESTER,{
mes "[Master Kavaruk]";
mes "If you're interested, it would probably be best to speak to the Alchemist Guild member who is waiting to hear from us at the ^3131FFshop next to the road south of Icarus^000000.";
tu_archer02 = 1;
close;
} else if(tu_archer02 == 1){
mes "Hmmm...";
mes "..........";
@@ -287,11 +288,13 @@ payon_in02,54,13,3 script Master Kavaruk 1_M_JOBTESTER,{
mes "Please find out if he is all right and help him with whatever he";
mes "may need. In the meantime, I will be waiting to hear from you. Thank you very much.";
tu_archer02 = 2;
close;
} else if(tu_archer02 == 2){
mes "Find Arthail";
mes "of the Wind for me.";
mes "He must be somewhere";
mes "in Prontera...";
close;
} else if(tu_archer02 == 9){
mes "Hmmm, I see. Thank you";
mes "for bringing me the news. As Arthail has said, I shall wait until he has more news for me.";
@@ -301,8 +304,8 @@ payon_in02,54,13,3 script Master Kavaruk 1_M_JOBTESTER,{
getexp 1000,1000;
else
getexp 2000,1000;
close;
}
close;
}
mes "I don't know...";
mes "Recently, I haven't heard any noteworthy news. For now, the warmth of the sun seems to be protecting the peace here.";

View File

@@ -3713,6 +3713,7 @@ gonryun,237,226,3 script Han Ran Jiao#gon 776,{
next;
if (BaseLevel >= 20) {
set nakha,1;
setquest 10034;
mes "[Han Ran Jiao]";
mes "I need to go down to get it";
mes "but...the monsters...";
@@ -3759,6 +3760,7 @@ gonryun,237,226,3 script Han Ran Jiao#gon 776,{
next;
if (select("Return the knife.:Refuse.") == 1) {
set nakha,3;
completequest 10035;
delitem 1201,1; //Knife
mes "[Han Ran Jiao]";
mes "Thank you! Thank you so much!";
@@ -3803,6 +3805,7 @@ gon_fild01,245,257,0 script #gonknife 111,3,3,{
OnTouch_:
if (nakha == 1) {
set nakha,2;
changequest 10034,10035;
mes "^3355FFHm? What's this?";
mes " ";
mes "Something was hidden beneath the leaves...^000000";

View File

@@ -206,7 +206,7 @@ function Func_JupHist;
mes "[Fayruz]";
mes "Well, you look";
mes "quite pleased.";
mes "May I asked what";
mes "May I ask what";
mes "happened to put that";
mes "expression on your face?";
next;

View File

@@ -11164,7 +11164,7 @@ airplane_01,96,48,3 script Man#Lyozien 4_M_LGTMAN,{
mes "Oh good, you're back.";
mes "Mr. Ahman just left and";
mes "picked up his goods. We're";
mes "done here, so you have to";
mes "done here, so all you have to";
mes "do now is report to my";
mes "brother in Lighthalzen.";
next;

View File

@@ -2464,7 +2464,7 @@ lou_in02,123,39,4 script Poison King#lou 824,{
case 1:
mes "[Nagash Arses]";
mes "Ah, have you";
mes "head of this poem?";
mes "heard of this poem?";
mes "As I grow older, my";
mes "memory also grows worse,";
mes "but I really like this poem";
@@ -2478,12 +2478,12 @@ lou_in02,123,39,4 script Poison King#lou 824,{
set .@question_poet,rand(1,4);
if (.@question_poet == 1) {
mes "[Nagash Arses]";
mes "'^3355FFAs I lay^000000 ^3355FFlooking up at the moonlight^000000.' In this first line, what word should be in [ ]?";
mes "'^3355FFAs I lay^000000 [ ] ^3355FFlooking up at the moonlight^000000.' In this first line, what word should be in [ ]?";
next;
if (select("on the ground:with you:in bed:in the stars") == 3)
set .@answer_poet,.@answer_poet + 10;
mes "[Nagash Arses]";
mes "'^3355FFIt looks like the^000000 ^3355FFon the ground^000000.' In the second line, which word should be in [ ]?";
mes "'^3355FFIt looks like the^000000 [ ] ^3355FFon the ground^000000.' In the second line, which word should be in [ ]?";
next;
if (select("frost:dew:pebbles:snow") == 1)
set .@answer_poet,.@answer_poet + 10;
@@ -2523,7 +2523,7 @@ lou_in02,123,39,4 script Poison King#lou 824,{
}
else if (.@question_poet == 2) {
mes "[Nagash Arses]";
mes "'^3355FFIt looks like the^000000 ^3355FFon the ground^000000.' In the second line, which word should be in [ ]?";
mes "'^3355FFIt looks like the^000000 [ ] ^3355FFon the ground^000000.' In the second line, which word should be in [ ]?";
next;
if (select("frost:dew:pebbles:snow") == 1)
set .@answer_poet,.@answer_poet + 10;
@@ -2571,7 +2571,7 @@ lou_in02,123,39,4 script Poison King#lou 824,{
}
else if (.@question_poet == 3) {
mes "[Nagash Arses]";
mes "'^3355FFIt looks like the^000000 ^3355FFon the ground^000000.' In the second line, which word should be in [ ]?";
mes "'^3355FFIt looks like the^000000 [ ] ^3355FFon the ground^000000.' In the second line, which word should be in [ ]?";
next;
if (select("frost:dew:pebbles:snow") == 1)
set .@answer_poet,.@answer_poet + 10;
@@ -2617,14 +2617,14 @@ lou_in02,123,39,4 script Poison King#lou 824,{
}
else {
mes "[Nagash Arses]";
mes "'^3355FFIt looks like the^000000 ^3355FFon the ground^000000.' In the second line,";
mes "'^3355FFIt looks like the^000000 [ ] ^3355FFon the ground^000000.' In the second line,";
mes "which word should be in [ ]?";
next;
if (select("frost:dew:pebbles:snow") == 1)
set .@answer_poet,.@answer_poet + 10;
next;
mes "[Nagash Arses]";
mes "'^3355FFI lift my^000000 ^3355FFto look at the bright moon^000000.' In the third line, which word should be in [ ]?";
mes "'^3355FFI lift my^000000 [ ] ^3355FFto look at the bright moon^000000.' In the third line, which word should be in [ ]?";
next;
if (select("eyes:head:gaze:sights") == 2)
set .@answer_poet,.@answer_poet + 10;
@@ -3315,8 +3315,8 @@ lou_in02,123,39,4 script Poison King#lou 824,{
mes "This is a journal that I have been writing for 15 years about my feelings of guilt, and what really happened in the past. I hope you can deliver this to the lord for me.";
next;
mes "^3355FFYou obtained";
mes "^0000FFPoison King,";
mes "Nagash Arses' Jounal^000000.";
mes "^0000FFPoison King";
mes "Nagash Arses' Journal^000000.";
set ch_poison,18;
changequest 11080,11081;
close;

View File

@@ -8356,7 +8356,7 @@ moscovia,166,145,1 script Worried Mother#rus19 4_F_RUSWOMAN3,{
mes "You must have something to protect yourself from Lusalka. '^0000ffHoly Water^000000' will protect you from Lusalka'a gaze.";
next;
mes "[Worried Mother]";
mes "And Lusalka is noctournal. You should be able to find here from ^ff00005 pm to 6 am PST^000000.";
mes "And Lusalka is nocturnal. You should be able to find her from ^ff00005 pm to 6 am PST^000000.";
next;
mes "[Worried Mother]";
mes "Don't forget. You have to bring '^0000ffHoly Water^000000' with you, and find her from ^ff00005 pm to 6 am PST^000000.";
@@ -8374,7 +8374,7 @@ moscovia,166,145,1 script Worried Mother#rus19 4_F_RUSWOMAN3,{
mes "You must have something to protect yourself from Lusalka. '^0000ffHoly Water^000000' will protect you from Lusalka'a gaze.";
next;
mes "[Worried Mother]";
mes "And Lusalka is noctournal. You should be able to find here from ^ff00005 pm to 6 am PST^000000.";
mes "And Lusalka is nocturnal. You should be able to find her from ^ff00005 pm to 6 am PST^000000.";
next;
mes "[Worried Mother]";
mes "Don't forget. You have to bring '^0000ffHoly Water^000000' with you, and find her from ^ff00005 pm to 6 am PST^000000.";

View File

@@ -1,12 +1,6 @@
//===== rAthena Script =======================================
//===== rAthena Script =======================================
//= Nameless Island Quests
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 2.4
//===== Compatible With: =====================================
//= rAthena Project
//===== Description: =========================================
//===== Description: =========================================
//= [Official Conversion]
//= Collection of Nameless Island Quests
//= Nameless Island:
@@ -34,7 +28,7 @@
//= Rogue Guild Investigation Assistance:
//- - Assist the Rogue Guild with their investigations.
//= - Variable in use: rumour_nd (Max: 22)
//===== Additional Comments: =================================
//===== Changelog: ===========================================
//= 1.0 First version. [L0ne_W0lf]
//= 1.1 Made quest accessable to "Failed" Geoborg quest. [L0ne_W0lf]
//= 1.1a Touch up to other Geoborg fail-points. [L0ne_W0lf]
@@ -63,7 +57,8 @@
//= 2.3 Updated RE/Pre-RE EXP. [Euphy]
//= 2.4 Moved Dorian to pre-re/re paths. [Euphy]
//= 2.5 Updated Nameless Island quests and added questlog support. [Euphy]
//============================================================
//= 2.6 Commented custom quest log support for the Nameless Island Quest [Everade]
//============================================================
// Nameless Island and Cursed Monestary Access Quest :: aru_monas
//============================================================
@@ -81,7 +76,7 @@ OnTouch:
mes "Church^000000. Please visit him";
mes "as soon as you can.";
set aru_monas,1;
setquest 17000;
//setquest 17000;
close2;
hideonnpc "Agent#pc1";
}
@@ -196,7 +191,7 @@ cmd_in02,111,52,3 script Ordinary Man#pc2 97,{
mes "Arunafeltz so I wasn't able";
mes "to investigate any further.";
set aru_monas,4;
changequest 17001,17002;
//changequest 17001,17002;
close;
}
else {
@@ -437,7 +432,7 @@ OnTouch:
mes "like it! It's almost like";
mes "a dessert. God, it's good!";
set aru_monas,8;
changequest 17003,17004;
//changequest 17003,17004;
if (Zeny > 3000) {
set Zeny, Zeny-3000;
getitem 12052,4; //Vit_Dish02
@@ -474,7 +469,7 @@ ve_in,78,314,5 script Magistrate#Aru 945,{
mes "comfortable talking to complete";
mes "strangers about my problems.";
set aru_monas,9;
changequest 17004,17005;
//changequest 17004,17005;
close;
}
else if (aru_monas == 9) {
@@ -518,7 +513,7 @@ ve_in,78,314,5 script Magistrate#Aru 945,{
mes "Oh, and you're prohibited";
mes "asking anyone else, so behave.";
set aru_monas,11;
changequest 17006,17007;
//changequest 17006,17007;
close;
}
else if (aru_monas < 13) {
@@ -614,7 +609,7 @@ ve_in,78,314,5 script Magistrate#Aru 945,{
mes "smugglers again? I don't";
mes "know what's going on...";
set aru_monas,14;
changequest 17009,17010;
//changequest 17009,17010;
next;
mes "[Al Hamad]";
mes "Even if I could make headway";
@@ -684,7 +679,7 @@ ve_in,81,296,3 script Soldier#Aru 946,{
mes "interrogating the smugglers.";
mes "I'm not sure if he did since the smugglers were taken away.";
set aru_monas,10;
changequest 17005,17006;
//changequest 17005,17006;
close;
}
else if (aru_monas == 10) {
@@ -726,7 +721,7 @@ ve_in,239,115,0 script Drunkard#Aru 943,{
mes "He thought he saw a ^DBDB70ghost^000000!";
mes "Bwah hah hah! Oooog... Hey...";
set aru_monas,15;
changequest 17010,17011;
//changequest 17010,17011;
next;
mes "["+strcharinfo(0)+"]";
mes "That's right!";
@@ -837,7 +832,7 @@ ve_fild07,125,128,0 script Boat#Aru 111,{
mes "this will probably be";
mes "a pretty rocky ride...";
set aru_monas,17;
changequest 17012,17013;
//changequest 17012,17013;
close2;
hideonnpc "Secret Agent#Aru";
warp "nameless_i",257,217;
@@ -905,7 +900,7 @@ ve_fild07,128,130,1 script Secret Agent#Aru 97,{
mes "this will probably be";
mes "a pretty rocky ride...";
set aru_monas,17;
changequest 17012,17013;
//changequest 17012,17013;
close2;
hideonnpc "Secret Agent#Aru";
warp "nameless_i",257,217;
@@ -1184,7 +1179,7 @@ OnTouch:
mes "for you in the boat. Learn";
mes "what you need to learn, and then come back safe, "+strcharinfo(0)+".";
set aru_monas,21;
changequest 17013,17014;
//changequest 17013,17014;
close2;
hideonnpc "Larjes#Monastery2";
}
@@ -1297,7 +1292,7 @@ nameless_n,259,218,3 script Larjes#Boat1 97,{
mes "going... This is huge!";
delitem 7726,1; //Token_Of_King
set aru_monas,25;
changequest 17016,17017;
//changequest 17016,17017;
getexp (checkre(3))?100000:1000000,0;
close;
}
@@ -1344,7 +1339,7 @@ abbey02,224,70,0 script Books#Mona1 111,{
next;
if(select("Examine Book:Ignore")==1) {
set aru_monas,22;
changequest 17014,17015;
//changequest 17014,17015;
getitem 7755,1; // Reasearch_Note
readbook 7755,1;
close;
@@ -1443,7 +1438,7 @@ abbey03,232,232,4 script Dead Man#King 956,{
mes "this man is...!";
set aru_monas,24;
getitem 7726,1; //Token_of_King
changequest 17015,17016;
//changequest 17015,17016;
hideonnpc "Dead Man#King";
hideoffnpc "Man#King";
stopnpctimer;
@@ -1602,7 +1597,7 @@ ra_temple,165,57,5 script Niren#ss 915,{
mes "were too preoccupied";
mes "with other matters. In fact,";
mes "I haven't gotten the chance";
mes "to think of what do with him...";
mes "to think of what to do with him...";
next;
mes "[Niren]";
mes "I want to ask you to";
@@ -1644,7 +1639,7 @@ ra_temple,165,57,5 script Niren#ss 915,{
mes "come back and tell me if";
mes "you learn anything there.";
set aru_monas,13;
changequest 17008,17009;
//changequest 17008,17009;
next;
mes "[Niren]";
mes "I'll send a message to the";
@@ -1712,7 +1707,7 @@ ra_temple,165,57,5 script Niren#ss 915,{
mes "comes from that place.";
delitem 7755,1; //Research_Note
set aru_monas,26;
completequest 17017;
//completequest 17017;
getexp (checkre(3))?50000:500000,0;
close2;
}
@@ -3213,7 +3208,7 @@ OnTimer53000:
que_temsky,99,7,0 warp quetemskyout 1,1,ra_temin,276,231
// Muff's Loan :: zdan_total_edq
//============================================================
//============================================================
comodo,224,187,3 script Muff 86,{
if (checkweight(907,200) == 0) {
mes "[Muff]";
@@ -4658,7 +4653,7 @@ OnTouch:
}
// Broken Diamond
//============================================================
//============================================================
moc_ruins,152,147,5 script Ibrahim 732,3,3,{
if (checkweight(907,200) == 0) {
mes "[Ibrahim]";
@@ -6387,7 +6382,7 @@ OnInit:
}
// Z-Gang Quest
//============================================================
//============================================================
prontera,150,326,0 script Wanted Notice#edq 111,{
if (zdan_edq == 0) {
mes "====National Wanted Notice====";
@@ -9020,7 +9015,7 @@ OnInit:
}
// Unlucky Emerald
//============================================================
//============================================================
morocc,143,63,3 script Ragged Man#nd 929,{
if (treasure_nd == 0) {
mes "[Ragged Man]";
@@ -11410,7 +11405,7 @@ OnTouch:
}
// Rogue Guild Investigation
//============================================================
//============================================================
prontera,163,204,3 script Man from Morocc 99,{
if (rumour_nd == 0) {
mes "[Morocc Traveler]";

View File

@@ -15,7 +15,7 @@
//= Geoborg Family Curse:
//= - [Official Conversion]
//= - Variable in use: prt_curse (max 61)
//===== Changelogs: ==========================================
//===== Changelog: ===========================================
//= 1.0 First Version. [kobra_k88] [L0ne_W0lf]
//= Fixed flower name Dreamy -> Illusion
//= 1.2 Fixed exploit [Lupus]
@@ -44,6 +44,7 @@
//= 2.7 Corrected 'IProntera' typo. (bugreport:4522) [L0ne_W0lf]
//= 2.8 Updated RE/Pre-RE EXP. [Euphy]
//= 2.9 Updated Nameless Island addition and added questlog support. [Euphy]
//= 3.0 Commented custom quest log support for Geoborg Family Curse Quest [Everade]
//============================================================
// Prontera Culvert :: prt_npc
@@ -560,7 +561,7 @@ S_GetBooks:
mes "thanks for doing this for me.";
mes "I was really at my wit's end...";
set prt_curse,3;
setquest 18030;// custom addition to make the script consistent
//setquest 18030;// custom addition to make the script consistent
getitem 7431,1; //Books
close;
}
@@ -860,7 +861,7 @@ yuno,311,195,3 script Historian#prt01 754,{
mes "somewhere in that desert town.";
set prt_curse,6;
getitem 7342,1; //File01
changequest 18030,18031;// custom addition to make the script consistent
//changequest 18030,18031;// custom addition to make the script consistent
close;
}
else if (prt_curse == 6) {
@@ -1251,10 +1252,10 @@ morocc_in,45,126,3 script Historian#prt02 702,{
mes "back to the priests...)^000000";
if (prt_curse == 30) {
set prt_curse,31;
changequest 18042,18044;
//changequest 18042,18044;
} else {
set prt_curse,60;
changequest 18051,18052;
//changequest 18051,18052;
}
close;
}
@@ -1282,10 +1283,10 @@ morocc_in,45,126,3 script Historian#prt02 702,{
mes "to return to Father Bamph.^000000";
if (prt_curse == 30) {
set prt_curse,40;
changequest 18042,18045;
//changequest 18042,18045;
} else {
set prt_curse,56;
completequest 18051;
//completequest 18051;
}
close;
}
@@ -1361,7 +1362,7 @@ S_GiveName:
mes "for the sake of my research...";
if (getarg(0) == 1) delitem 7342,1; //File01
set prt_curse,8;
changequest 18031,18032;
//changequest 18031,18032;
close;
}
@@ -1500,7 +1501,7 @@ mjolnir_01,135,168,3 script Historian#prt03 754,{
mes "for. Good luck in your";
mes "travels, adventurer.";
set prt_curse,11;
changequest 18032,18033;
//changequest 18032,18033;
close;
}
else {
@@ -1943,7 +1944,7 @@ mjolnir_01,316,268,3 script Exhausted-Looking Woman 879,{
mes "before I talk to Rodafrian.)^000000";
getitem 7432,1; //Leather_Pouch
set prt_curse,13;
changequest 18033,18034;
//changequest 18033,18034;
close;
}
else if (prt_curse > 12 && prt_curse < 16) {
@@ -2042,7 +2043,7 @@ mjolnir_01,316,268,3 script Exhausted-Looking Woman 879,{
mes "and let Father Bamph";
mes "know about this information.)^000000";
set prt_curse,17;
changequest 18035,18036;
//changequest 18035,18036;
close;
}
else if (prt_curse == 17) {
@@ -2119,17 +2120,17 @@ mjolnir_01,316,268,3 script Exhausted-Looking Woman 879,{
mes "Thank you, kind adventurer~";
if (prt_curse == 35) {
set prt_curse,36;
completequest 18050;
//completequest 18050;
} else if (prt_curse == 44) {
set prt_curse,45;
completequest 18049;
//completequest 18049;
} else {
next;
mes "^3355FFNow, you can return to";
mes "Rodafrian, the historian";
mes "stationed in Morocc.^000000";
set prt_curse,55;
changequest 18049,18051;
//changequest 18049,18051;
}
close;
@@ -2456,7 +2457,7 @@ prt_church,185,106,3 script Father Bamph 60,{
mes "remember anything that happened";
mes "after the exorcism failed...";
set prt_curse,16;
changequest 18034,18035;
//changequest 18034,18035;
close;
}
else if (prt_curse == 16) {
@@ -2497,7 +2498,7 @@ prt_church,185,106,3 script Father Bamph 60,{
mes "within the bookshelf and";
mes "I will meet you there.";
set prt_curse,18;
changequest 18036,18037;
//changequest 18036,18037;
close;
}
else if (prt_curse > 17 && prt_curse < 22) {
@@ -2534,7 +2535,7 @@ prt_church,185,106,3 script Father Bamph 60,{
mes "we can verify whether poison";
mes "was used to kill the princes?";
set prt_curse,23;
changequest 18039,18040;
//changequest 18039,18040;
close;
}
else if (prt_curse == 23) {
@@ -2568,7 +2569,7 @@ prt_church,185,106,3 script Father Bamph 60,{
mes "to the secret ceremonial grounds as soon as you can? I will wait";
mes "over there for you once again.";
set prt_curse,32;
changequest 18044,18046;
//changequest 18044,18046;
close;
}
else if (prt_curse == 32 || prt_curse == 33 || prt_curse == 41 || prt_curse == 42 || prt_curse == 51 || prt_curse == 52) {
@@ -2609,7 +2610,7 @@ prt_church,185,106,3 script Father Bamph 60,{
mes "you for all of your help. I'm very grateful for what you have done,";
mes "adventurer. May safety accompany you on all of your journeys.";
set prt_curse,35;
changequest 18047,18050;
//changequest 18047,18050;
close;
}
else if (prt_curse > 34 && prt_curse < 40 && !aru_monas) {
@@ -2642,7 +2643,7 @@ prt_church,185,106,3 script Father Bamph 60,{
mes "to the secret ceremonial grounds as soon as you can? I will wait";
mes "over there for you once again.";
set prt_curse,41;
changequest 18045,18046;
//changequest 18045,18046;
close;
}
else if (prt_curse == 43 || prt_curse == 53) {
@@ -2684,7 +2685,7 @@ prt_church,185,106,3 script Father Bamph 60,{
set prt_curse,44;
else
set prt_curse,54;
changequest 18047,18049;
//changequest 18047,18049;
getexp (checkre(3))?90000:1600000,0;
close;
}
@@ -2720,7 +2721,7 @@ prt_church,185,106,3 script Father Bamph 60,{
mes "to the secret ceremonial grounds as soon as you can? I will wait";
mes "over there for you once again.";
set prt_curse,51;
changequest 18043,18046;
//changequest 18043,18046;
close;
}
else if (prt_curse == 60) {
@@ -2775,7 +2776,7 @@ prt_church,185,106,3 script Father Bamph 60,{
mes "secret ceremonial grounds";
mes "from now on. Thanks again for your help, "+strcharinfo(0)+".";
set prt_curse,61;
completequest 18052;
//completequest 18052;
close;
}
else {
@@ -2819,7 +2820,7 @@ prt_church,185,106,3 script Father Bamph 60,{
mes "and he will assist you in your";
mes "search for the lost official.";
set aru_monas,2;
changequest 17000,17001;
//changequest 17000,17001;
close;
}
else if (aru_monas == 2 || aru_monas == 3) {
@@ -2894,7 +2895,7 @@ prt_church,185,106,3 script Father Bamph 60,{
mes "Thank you, and good luck.";
set aru_monas,6;
set Zeny, Zeny + (checkre(0)?5000:1500);
changequest 17002,17003;
//changequest 17002,17003;
close;
}
else {
@@ -3010,8 +3011,7 @@ prt_church,184,110,3 script Father Biscuss 60,{
mes "Church, I want to thank";
mes "you for all of your help.";
set prt_curse,36;
// completequest 18048;
completequest 18050;
//completequest 18050;
getexp (checkre(3))?90000:1600000,0;
close;
}
@@ -3170,7 +3170,7 @@ prt_church,19,111,5 script #prince1 887,{
mes "note that the mark resembles";
mes "the scales of a serpent.^000000";
set prt_curse,20;
changequest 18037,18038;
//changequest 18037,18038;
close;
}
else if (prt_curse == 33 || prt_curse > 41 && prt_curse < 51 || prt_curse == 52) {
@@ -3231,7 +3231,7 @@ prt_church,21,111,5 script #prince2 887,{
mes "involved. Let's go check";
mes "the body of the third prince.";
set prt_curse,21;
changequest 18038,18039;
//changequest 18038,18039;
close;
}
else if (prt_curse == 33 || prt_curse > 41 && prt_curse < 51 || prt_curse == 52) {
@@ -3342,7 +3342,7 @@ prt_church,24,111,5 script #prince3 887,{
if (prt_curse == 32) set prt_curse,33;
else if (prt_curse == 41) set prt_curse,42;
else set prt_curse,52;
changequest 18046,18047;
//changequest 18046,18047;
close;
}
mes "^3355FFYou'll need to have";
@@ -3402,7 +3402,7 @@ moc_fild16,201,295,5 script Assassin Guildsman#poiso 884,{
mes "in Morocc. Go find someone";
mes "named ^3131FFMarjana^000000 inside.";
set prt_curse,24;
changequest 18040,18041;
//changequest 18040,18041;
close;
}
mes "[Assassin Guildsman]";
@@ -3589,7 +3589,7 @@ OnTouch:
mes "Father Bamph, so I guess";
mes "that I'll go talk to her first.";
set prt_curse,30;
changequest 18041,18042;
//changequest 18041,18042;
close;
}
mes "["+strcharinfo(0)+"]";
@@ -3599,7 +3599,7 @@ OnTouch:
mes "bodies. I better head over";
mes "to Prontera right away.";
set prt_curse,50;
changequest 18041,18043;
//changequest 18041,18043;
close;
}
}

View File

@@ -1,12 +1,6 @@
//===== rAthena Script =======================================
//===== rAthena Script =======================================
//= Veins Quests
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 2.5
//===== Compatible With: =====================================
//= rAthena Project
//===== Description: =========================================
//===== Description: =========================================
//= [Official Conversion]
//= Collection of Veins Quests
//= Stone Quest:
@@ -25,7 +19,7 @@
//= - Missing addition to High Priest Zhed to start quest.
//= - Infiltrate Thor Volcano Base. What is Arunafeltz up to?
//= - Variable in use: rachel_camel (max 27)
//===== Additional Comments: =================================
//===== Changelog: =========================================
//= 1.0 First version, Added Veins Stone quest. [L0ne_W0lf]
//= 1.1 Added Veins Spy Quest. [L0ne_W0lf]
//= 1.2 Added Veins Siblings Quest. [L0ne_W0lf]
@@ -48,11 +42,12 @@
//= 2.2 Moved "Wincing Old Man" to pre-re/re coordinates. [Euphy]
//= 2.3 Fixed incorrect use of 'close'. [Joseph]
//= 2.4 Updated RE/Pre-RE EXP. [Euphy]
//= 2.5 Added GM management NPC. [Euphy]
//============================================================
//= 2.5 Added GM management NPC and quest log support. [Euphy]
//= 2.6 Commented custom quest log support for Nameless Island Access Quest [Everade]
//============================================================
// Stone Quest :: veins_stone
//============================================================
//============================================================
- script ::WincingOldMan_veins -1,{
if ((MaxWeight - Weight) < 2000 || checkweight(1201,1) == 0) {
mes "- Wait a moment! -";
@@ -644,7 +639,7 @@ ve_in02,68,39,7 script Factory Worker#ve2 943,{
}
// Spy Quest :: veins_secret
//============================================================
//============================================================
prontera,202,122,0 script Kid#sch 703,{
if (que_sch == 0) {
mes "[Rooney]";
@@ -2665,7 +2660,7 @@ sec_in02,10,43,4 script Extra Story Patch 809,{
}
// Siblings Quest :: veins_camel
//============================================================
//============================================================
veins,327,185,3 script Kid#camelcamel 944,{
if (MISC_QUEST & 8192) {
if (rachel_camel == 0) {
@@ -3147,7 +3142,7 @@ veins,327,185,3 script Kid#camelcamel 944,{
mes "I'm happy that";
mes "I can help you too!";
set aru_monas,16;
changequest 17011,17012;
//changequest 17011,17012;
close;
}
else if (aru_monas < 26) {
@@ -5074,7 +5069,7 @@ veins,221,120,5 script Young Town Native 943,{
}
// Thor Volcano Base Quest :: veins_camp
//============================================================
//============================================================
ra_temin,87,133,1 script Rachel Guard#vol1 934,5,2,{
if (aru_vol == 2) {
mes "[Guard Karlum]";

File diff suppressed because it is too large Load Diff

View File

@@ -31,23 +31,23 @@ ecl_in02,164,56,3 script Receptionist#Laphine 835,{
next;
switch (select("Save Location:Rest:Finish the conversation")) {
case 1:
mes "[Receptionist}";
mes "[Receptionist]";
mes "Clinic has been set as your save point. Be careful though~";
savepoint "ecl_in02",162,50,1,1;
close;
case 2:
mes "[Receptionist}";
mes "[Receptionist]";
mes "Restore your mind and body at our clinic. It's filled with Eclage's clean energy.";
mes "We charge 1 Splendide Coin normally, but we offer a special discount for travelers. Your total is 5,000 zeny. ";
next;
switch (select("Pay with Splendide Coin:Pay with Zeny:Forget it")) {
case 1:
if (!countitem(6081)) {
mes "[Receptionist}";
mes "[Receptionist]";
mes "It seems like you don't have enough coins. Would you check your account again, please?";
close;
}
mes "[Receptionist}";
mes "[Receptionist]";
mes "Make yourself at home~";
close2;
delitem 6081,1; //6081
@@ -60,7 +60,7 @@ ecl_in02,164,56,3 script Receptionist#Laphine 835,{
mes "Looks like you don't have enough resources to proceed. Do you mind checking your account again?";
close;
}
mes "[Receptionist}";
mes "[Receptionist]";
mes "Make yourself at home~";
close2;
Zeny = Zeny - 5000;

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,712 @@
//===== rAthena Script =======================================
//= OS Occupation Operation
//===== Description: =========================================
//= [Walkthrough Conversion]
//= Episode 17.1 - OS Occupation Operation
//= 2nd OS Search
//===== Changelog: ===========================================
//= 1.0 Initial release [crazyarashi]
//= 1.1 Optimizations and cleanup [Everade]
//============================================================
1@os_a,1,1,0 script #os_occupation_control HIDDEN_WARP_NPC,{
end;
OnInstanceInit:
'map$ = instance_mapname("1@os_a");
for (.@i = 1; .@i < 26; .@i++)
disablenpc instance_npcname("#ocp_rebel_" + .@i);
hideonnpc instance_npcname("Est#171_ocp_0");
disablenpc instance_npcname("#171_ocp_dev_0");
disablenpc instance_npcname("#171_ocp_dev_1");
disablenpc instance_npcname("#171_ocp_wrp_0");
disablenpc instance_npcname("#171_ocp_wrp_1");
disablenpc instance_npcname("#171_ocp_wrp_2");
disablenpc instance_npcname("#171_ocp_miguel");
disablenpc instance_npcname("Est#171_ocp_1");
disablenpc instance_npcname("Operation Officer#171_osd");
end;
OnStory01:
donpcevent instance_npcname("#171_ocp_mob") + "::OnPoisonStory";
for (.@i = 1; .@i < 26; .@i++)
enablenpc instance_npcname("#ocp_rebel_" + .@i);
enablenpc instance_npcname("#171_ocp_dev_0");
sleep2 1000;
hideoffnpc instance_npcname("Est#171_ocp_0");
doevent instance_npcname("Est#171_ocp_0") + "::OnEvent";
end;
OnStory02:
for (.@i = 1; .@i < 26; .@i++)
hideonnpc instance_npcname("#ocp_rebel_" + .@i);
disablenpc instance_npcname("Est#171_ocp_0");
sleep2 3000;
donpcevent instance_npcname("#171_ocp_mob") + "::OnSummonStory01";
doevent instance_npcname("#171_ocp_dev_0") + "::OnEvent01";
end;
OnStory03:
enablenpc instance_npcname("#171_ocp_dev_1");
for (.@i = 1; .@i < 26; .@i++)
disablenpc instance_npcname("#ocp_rebel_" + .@i);
end;
OnDaily01:
'osd = 1;
donpcevent instance_npcname("#171_ocp_mob") + "::OnSummon";
donpcevent instance_npcname("#171_ocp_mob") + "::OnPoisonDaily";
end;
}
1@os_a,30,352,0 script #os_occupation_ev_0 HIDDEN_WARP_NPC,4,4,{
end;
OnTouch:
if (!is_party_leader())
end;
disablenpc();
disablenpc instance_npcname("#os_occupation_ev_1");
doevent instance_npcname("#os_occupation_control") + "::OnStory01";
end;
}
1@os_a,335,34,0 script #os_occupation_ev_1 HIDDEN_WARP_NPC,4,4,{
end;
OnTouch:
if (!is_party_leader())
end;
disablenpc();
disablenpc instance_npcname("#os_occupation_ev_0");
doevent instance_npcname("#os_occupation_control") + "::OnDaily01";
disablenpc instance_npcname("Est#171_ocp_0");
end;
}
1@os_a,30,360,3 script Est#171_ocp_0 4_F_ESTLOVELOY,{
cutin "ep162_est01",2;
mes "[Est]";
mes "Focus on the briefing.";
close3;
OnEvent:
sleep2 3000;
npctalk "Est : I have confirmed that there's biogas spreading at the front and it's currently under treatment.";
sleep2 5000;
npctalk "Est : If you get too close, you'll die immediately, so don't move until the treatment is finished...";
sleep2 5000;
npctalk "Est : First, we need to establish bases here. We don't know how many individuals are lurking around.";
sleep2 5000;
npctalk "Est : There isn't much information, so it's our duty to create those information. From now on, we'll split into 3 groups and subdue this place.";
sleep2 5000;
npctalk "Est : Alpha Team, start searching around the southern waterway.";
sleep2 5000;
npctalk "Est : Bravo Team, you will be sweeping with me before the eastern boundary.";
sleep2 5000;
npctalk "Est : The Echo team is in charge of backups under the command of " + strcharinfo(0) + ". You will block this place and prevent individuals from going outside.";
sleep2 5000;
npctalk "Est : We shouldn't have situations where we'll ask for support, but if such situation occurs, the Echo team will be called.";
sleep2 5000;
mapannounce 'map$,"Chemical Treatment Unit : The biogas facilities locked has been completed. The residual gas will continue for the next few minutes.",bc_map,0xFFCC00;
sleep2 5000;
npctalk "Est : It's time. We're moving. " + strcharinfo(0) + "'s unit is a support team, wait here and respond to communications.";
sleep2 5000;
doevent instance_npcname("#os_occupation_control") + "::OnStory02";
end;
}
1@os_a,29,360,3 script #171_ocp_dev_0 4_SCR_MT_ROBOTS,{
if ('ocp >= 5) {
mes "## Received Message ##";
mes "## Team Alpha's last communication was at Oscar Sierra 52 177 ##";
navigateto("1@os_a",52,177);
close;
}
switch ('ocp) {
case 1:
mes "## Enter Message Input ##";
next;
setarray .@input$,
"Engaging with mutants on north.","Engaging with small mutants.","Ah~! I want to go home!";
.@menu$ = implode(.@input$,":");
.@s = select(.@menu$) - 1;
'ocp = 2;
mapannounce 'map$,strcharinfo(0) + " : " + .@input$[.@s],bc_map,0xEE66EE;
doevent instance_npcname(strnpcinfo(0)) + "::OnEvent02";
close;
case 3:
mes "## Enter Message Input ##";
next;
setarray .@input$,
"Echo is fighting too. Requesting for support.","There was an engagement, but it's over.","Save me!";
.@menu$ = implode(.@input$,":");
.@s = select(.@menu$) - 1;
'ocp = 4;
mapannounce 'map$,strcharinfo(0) + " : " + .@input$[.@s],bc_map,0xEE66EE;
doevent instance_npcname(strnpcinfo(0)) + "::OnEvent03";
close;
default:
mes "## No Communication Status ##";
close;
}
end;
OnEvent01:
mapannounce 'map$,"Alpha : Alpha is approaching south. We found a number of mutants heading north towards Echo.",bc_map,0xCCCC00;
sleep2 6000;
mapannounce 'map$,"Est : Reception sensitivity is good, Echo prepare for response, and report when anything occurs.",bc_map,0x00EEEE;
sleep2 6000;
mapannounce 'map$,"Alpha : Alpha found a number of mutants on southern drainage. We're going to engage in battle.",bc_map,0xCCCC00;
sleep2 9000;
mapannounce 'map$,"Est : ---Roger.",bc_map,0x00EEEE;
sleep2 3000;
mapannounce 'map$,"Est : Alpha, send a transmission after you're done with the engagement.",bc_map,0x00EEEE;
sleep2 6000;
mapannounce 'map$,"Alpha : The drainage channel is now clear of mutants. Residual biological experiments were confirmed. We are preparing for the second engagement.",bc_map,0xCCCC00;
sleep2 6000;
mapannounce 'map$,"Est : Alpha, roger. Echo, status report.",bc_map,0x00EEEE;
sleep2 3000;
mapannounce 'map$,"Est : " + strcharinfo(0) + "!! Response your current situation!!",bc_map,0x00EEEE;
'ocp = 1;
specialeffect EF_BIG_PORTAL;
end;
OnEvent02:
sleep2 3000;
mapannounce 'map$,"Est : Echo's reception is not smooth. Re-transmit the message.",bc_map,0x00EEEE;
sleep2 10000;
mapannounce 'map$,"Alpha : It's an ambush! Current coordinates are are Oscar Sierra 9...@$%**!",bc_map,0xCCCC00;
sleep2 6000;
mapannounce 'map$,"Est : Alpha retransmit your coordinates. Alpha!!! Please respond!!.",bc_map,0x00EEEE;
sleep2 6000;
mapannounce 'map$,"Alpha : ---- Tchhhhhhh ----",bc_map,0xCCCC00;
sleep2 6000;
mapannounce 'map$,"Est : Damn!... Echo, check if you can get support to Alpha's coordinates.",bc_map,0xCCCC00;
sleep2 3000;
mapannounce 'map$,"Est : " + strcharinfo(0) + "! Check Alpha's coordinates if it's available!",bc_map,0x00EEEE;
'ocp = 3;
specialeffect EF_BIG_PORTAL;
end;
OnEvent03:
sleep2 6000;
mapannounce 'map$,"?????? : This is Foxtrot. Ground artillery support has been prepared. Please send the coordinates that needs support.",bc_map,0x00FF44;
sleep2 6000;
mapannounce 'map$,"Est : Alpha is unresponsive. " + strcharinfo(0) + " please support them. The coordinates are Oscar Sierra 32 356",bc_map,0x00EEEE;
sleep2 6000;
specialeffect EF_CLOUD4,AREA,instance_npcname("#ocp_rebel_5");
mapannounce 'map$,"?????? : Foxtrot reporting, coordinates received. Please be careful to hit only the mutants.",bc_map,0x00FF44;
sleep2 6000;
mapannounce 'map$,"?????? : In 3 seconds, the mutant only ground artillery will be sent on the side of Echo.",bc_map,0x00FF44;
sleep2 3000;
for (.@i = 1; .@i < 26; .@i++) {
specialeffect EF_METEORSTORM,AREA,instance_npcname("#ocp_rebel_" + .@i);
killmonster 'map$,instance_npcname("#171_ocp_mob")+"::OnStoryKill";
sleep2 300;
}
killmonster 'map$,instance_npcname("#171_ocp_mob")+"::OnPoisonKill";
sleep2 1000;
mapannounce 'map$,"?????? : Echo-coordinates mutant artillery support is complete.",bc_map,0x00FF44;
sleep2 6000;
mapannounce 'map$,"Est : Engagement on our side has ended.",bc_map,0x00EEEE;
sleep2 6000;
mapannounce 'map$,"Est : I will send the estimated coordinates of their last contact point using the radio. Please send support after getting the information on the radio.",bc_map,0x00EEEE;
sleep2 3000;
'ocp = 5;
specialeffect EF_BIG_PORTAL;
donpcevent instance_npcname("#os_occupation_control") + "::OnStory03";
end;
}
1@os_a,52,177,3 script #171_ocp_dev_1 4_SCR_MT_ROBOTS,3,3,{
if ('ocp == 5) {
mes "## Send Message Input ##";
next;
select("There is no trace of alpha. Only the radio.");
'ocp = 6;
mapannounce 'map$,strcharinfo(0) + " : There is no trace of alpha. Only the radio is here.",bc_map,0xEE66EE;
sleep2 4000;
mapannounce 'map$,"Est : " + strcharinfo(0) + ". Please look around if there are any traces left.",bc_map,0x00EEEE;
sleep2 3000;
select("Nothing in particular.");
mapannounce 'map$,strcharinfo(0) + " : Nothing in particular.",bc_map,0xEE66EE;
sleep2 3000;
mapannounce 'map$,"Est : Bravo has completed the search on the east side.",bc_map,0x00EEEE;
sleep2 4000;
mapannounce 'map$,"Est : We are going to move south. I'll transmit the new coordinates. Please prepare yourselves for an engagement.",bc_map,0x00EEEE;
mes "## Coordinates Received ##";
enablenpc instance_npcname("#171_ocp_wrp_0");
hideonnpc instance_npcname("#171_ocp_wrp_0");
donpcevent instance_npcname("#171_ocp_wrp_0") + "::OnMobSpawn";
initnpctimer instance_npcname("#171_ocp_wrp_0");
}
navigateto("1@os_a",84,256);
end;
OnTouch:
if ('ocp == 5)
npctalk "Est : " + strcharinfo(0) + " can you hear me? If you can, please respond.";
end;
}
1@os_a,84,256,5 script #171_ocp_wrp_0 4_ENERGY_BLUE,4,4,{
end;
OnTouch:
.@event$ = instance_npcname(strnpcinfo(0)) + "::OnMobKill";
if (getd("'" + strnpcinfo(2)) && !mobcount('map$,.@event$)) {
disablenpc();
.@id = atoi(replacestr(strnpcinfo(2),"171_ocp_wrp_",""));
if (.@id < 2) {
enablenpc instance_npcname("#171_ocp_wrp_" + (.@id + 1));
hideonnpc instance_npcname("#171_ocp_wrp_" + (.@id + 1));
donpcevent instance_npcname("#171_ocp_wrp_" + (.@id + 1)) + "::OnSummon";
}else
donpcevent instance_npcname("#171_ocp_wrp_2") + "::OnBossSummon";
switch (.@id) {
case 0:
monster 'map$,144,275,"",2536,1,instance_npcname("#171_ocp_mob") + "::OnPoisonKill";
navigateto("1@os_a",163,266);
mapannounce 'map$,"Est : " + strcharinfo(0) + ", can you hear me?",bc_map,0x00EEEE;
sleep2 3000;
mapannounce 'map$,"Est : I transmitted the second search coordinates. Be careful not to lose your records.",bc_map,0x00EEEE;
sleep2 6000;
mapannounce 'map$,"Est : " + strcharinfo(0) + ", check if there are any traces around there.",bc_map,0x00EEEE;
initnpctimer instance_npcname("#171_ocp_wrp_1");
sleep2 3000;
mapannounce 'map$,strcharinfo(0) + " : I have found a troop of mutants along the route.",bc_map,0xEE66EE;
sleep2 3000;
mapannounce 'map$,"Est : If you see a mutant who can communicate, immediately capture it. Other than that... You can subdue them all.",bc_map,0x00EEEE;
break;
case 1:
navigateto("1@os_a",138,174);
initnpctimer instance_npcname("#171_ocp_wrp_2");
mapannounce 'map$,"Est : " + strcharinfo(0) + ", are you still alive?",bc_map,0x00EEEE;
sleep2 3000;
mapannounce 'map$,strcharinfo(0) + " : Team Echo is still alive. We are moving towards the southern point.",bc_map,0xEE66EE;
sleep2 3000;
mapannounce 'map$,"Est : Bravo is also moving towards there, we're skipping the eastern point.",bc_map,0x00EEEE;
sleep2 3000;
mapannounce 'map$,strcharinfo(0) + " : I hope that Bravo arrive safely.",bc_map,0xEE66EE;
sleep2 3000;
mapannounce 'map$,"Est : I wish the same for Team Echo.",bc_map,0x00EEEE;
break;
case 2:
navigateto("1@os_a",161,178);
mapannounce 'map$,"???? : Grrr...",bc_map,0xFF9999;
}
}
end;
OnMobSpawn:
.@event$ = instance_npcname(strnpcinfo(0)) + "::OnMobKill";
setarray .@xy,63,214,20349,63,230,20349,63,218,20350,63,222,20350,63,226,20350,63,234,20350,63,238,20350,63,242,20350;
for (.@i = 0; .@i < getarraysize(.@xy); .@i += 3)
monster 'map$,.@xy[.@i],.@xy[.@i+1],"Incomplete " + getmonsterinfo(.@xy[.@i+2],MOB_NAME),.@xy[.@i+2],1,.@event$;
end;
OnSummon:
.@event$ = instance_npcname(strnpcinfo(0)) + "::OnMobKill";
.@id = atoi(replacestr(strnpcinfo(2),"171_ocp_wrp_",""));
switch (.@id) {
case 1: setarray .@xy,146,266,20349,166,266,20349,170,266,20349,154,266,20349,126,266,20350,130,266,20350,134,266,20350,138,266,20350,142,266,20350,150,266,20350,158,266,20350,162,266,20350,174,266,20350; break;
case 2: setarray .@xy,151,243,20348,144,216,20349,141,213,20349,137,210,20349,132,207,20349,139,200,20349,146,199,20349,139,196,20349,146,216,20350,141,213,20350,135,213,20350,137,212,20350,143,203,20350,139,209,20350,134,199,20350;
}
for (.@i = 0; .@i < getarraysize(.@xy); .@i += 3)
monster 'map$,.@xy[.@i],.@xy[.@i+1],"Incomplete " + getmonsterinfo(.@xy[.@i+2],MOB_NAME),.@xy[.@i+2],1,.@event$;
end;
OnMobKill:
end;
OnBossSummon:
setarray .@xy,161,178,20347;
.@event$ = instance_npcname("#171_ocp_mob") + "::OnBossKillStory";
monster 'map$,.@xy[.@i],.@xy[.@i+1],"????",.@xy[.@i+2],1,.@event$;
getunitdata $@mobid[0],.@boss_data;
.@DAMAGE = (.@boss_data[UMOB_MAXHP]/10) * 9;
.@HP = (.@boss_data[UMOB_MAXHP] - .@DAMAGE)/2;
setunitdata $@mobid[0],UMOB_HP,.@HP;
end;
OnTimer10000:
stopnpctimer;
.@event$ = instance_npcname(strnpcinfo(0)) + "::OnMobKill";
.@id = atoi(replacestr(strnpcinfo(2),"171_ocp_wrp_",""));
.@count = mobcount('map$,.@event$);
if (.@count) {
mapannounce 'map$,"Remaining Mutant Survivor - " + .@count,bc_map,0xFFFF00;
initnpctimer;
} else {
mapannounce 'map$,"Intermediate point secured.",bc_map,0xFFFF00;
setd("'" + strnpcinfo(2),1);
hideoffnpc();
}
end;
}
1@os_a,163,266,5 duplicate(#171_ocp_wrp_0) #171_ocp_wrp_1 4_ENERGY_BLUE,4,4
1@os_a,138,174,5 duplicate(#171_ocp_wrp_0) #171_ocp_wrp_2 4_ENERGY_BLUE,4,4
1@os_a,162,176,5 script #171_ocp_miguel 4_EP17_MIGUEL_D,{
if (isbegin_quest(12452) == 1) {
mes "^0000FFI think he stopped breathing.^000000";
close;
}
cutin "ep171_miguel01",0;
mes "[???]";
mes "Krrr. I guess you're not someone of Regenschirm. Can you move aside, I have something to say to that person.";
next;
cutin "",255;
mes "^0000FFThe mutant who's life is running out is trying to say something.^000000";
close;
}
1@os_a,165,176,3 script Est#171_ocp_1 4_F_ESTLOVELOY,{
if (isbegin_quest(12452) == 1) {
cutin "ep162_est01",2;
mes "[Est]";
mes strcharinfo(0) + ", I didn't think I'd survive and see you again. You're pretty good.";
next;
select("Ask about the fallen mutant.");
mes "[Est]";
mes "Well, even if you ask me... it's the first time that I'll talk to a mutant.";
emotion ET_SCRATCH;
next;
cutin "ep171_miguel03",0;
mes "[???]";
mes "... Est?";
next;
cutin "ep162_est01",2;
mes "[Est]";
mes "How do you know my name? Who are you! I'll finish you painlessly, so be honest.";
emotion ET_SURPRISE;
next;
cutin "ep171_miguel03",0;
mes "[???]";
mes "Est... Rebellion Ghost Squad... Do you remember uncle Miguel?";
next;
cutin "ep162_est01",2;
mes "[Est]";
mes "How do you know that name...";
next;
cutin "ep171_miguel03",0;
mes "[???]";
mes "Ha... haha... you still remember.";
next;
mes "^0000FFThe identification tag on the mutant's neck stands out.^000000";
next;
select("Get the identification tag and hand it to Est.");
cutin "ep162_est01",2;
mes "[Est]";
mes "Mi... guel...?";
next;
cutin "ep171_miguel03",0;
mes "[Miguel]";
mes "... Est, the last thing I'll see... is your face... That's a relief.";
next;
cutin "ep162_est01",2;
mes "[Est]";
mes "Uncle Miguel!? How did this happen!";
next;
cutin "ep171_miguel03",0;
mes "[Miguel]";
mes "Before I die... I always wanted to see my old colleagues... You fulfilled my wish.";
next;
cutin "ep162_est01",2;
mes "[Est]";
mes "Uncle! What is this! What happened to you?";
next;
cutin "ep171_miguel01",0;
mes "[Miguel]";
mes "Ugh... I don't have much time left... Listen carefully, Est.";
next;
mes "[Miguel]";
mes "Somewhere in here... the mad research results of Regenschirm... can be found somewhere in here.";
next;
mes "[Miguel]";
mes "Find everything... and you'll know what happened to me... you'll see things that can't be explained here.";
next;
cutin "ep162_est01",2;
mes "[Est]";
mes "Uncle! Wake up!! Let's go out. If we go out, we can save you!";
next;
cutin "ep171_miguel02",0;
mes "[Miguel]";
mes "Est... you still have a big heart... that kind of feeling... on the battlefield... I taught you...";
next;
cutin "ep162_est01",2;
mes "[Est]";
mes "Uncle! Uncle!!";
next;
cutin "",255;
mes "[Miguel]";
mes "...";
if (isbegin_quest(12452) == 1)
completequest 12452;
getitem 25668,1;
getitem 25723,5;
getexp 300000,300000;
close;
}
select("Ask about Miguel");
cutin "ep162_est01",2;
mes "[Est]";
mes strcharinfo(0) +", I'm sorry but I don't feel like talking about him right now.";
next;
select("Ask about the records.");
mes "[Est]";
mes "I checked the northeast section and saw a place over the railway that seemed to be a research facility.";
next;
mes "[Est]";
mes "Maybe the research Miguel was talking about... is somewhere in there. I'm going to have to start another operation right away.";
next;
mes "[Est]";
mes "I don't think there will be anything else to do here.";
next;
select("I want to go back.");
warp "sp_cor",162,63;
end;
}
1@os_a,187,195,5 script Operation Officer#171_osd 4_M_ILYA,{
if (isbegin_quest(12454) == 1) {
mes "[Operation Officer]";
mes "You've dealt with a CP7 Mutant by yourself... did the battle went well?";
next;
mes "[Operation Officer]";
mes "Here are the supplies and experience given to the troops that joined the operation. Take it.";
erasequest 12454;
getexp 150000,150000;
getitem 25669,5;
getitem 25723,1;
next;
mes "[Operation Officer]";
mes "Even though it's a CP7 Rated, sorry I couldn't give you more experience.";
close;
}
mes "[Operation Officer]";
mes "Let's go out now. We need to prepare for repairs quickly.";
next;
if (select("Look around more.:Go Out") == 1) {
mes "[Operation Officer]";
mes "Is that so? Don't delay it for too long.";
close;
}
warp "sp_cor",162,63;
end;
}
1@os_a,1,1,0 script #171_ocp_mob HIDDEN_WARP_NPC,{
end;
OnSummonStory01:
setarray .@mob,20348,20349,20350;
for (.@i = 0; .@i < 12; .@i++) { //Summons max 12 mobs randomly
.@id = .@mob[rand(3)];
areamonster 'map$,26,349,37,357,"Incomplete " + getmonsterinfo(.@id,MOB_NAME),.@id,1,instance_npcname(strnpcinfo(0))+"::OnStoryKill";
sleep 10000;
}
end;
OnStoryKill:
end;
OnSummon:
.@id = 'osd;
.@event$ = instance_npcname(strnpcinfo(0)) + "::OnMobKill";
switch (.@id) {
case 1: setarray .@xy,334,66,20348,291,95,20348,287,97,20348,280,95,20348,272,91,20348,265,89,20349,265,93,20349,263,95,20349,267,92,20350; break;
case 2: setarray .@xy,252,82,20348,257,72,20348,260,70,20348,254,64,20348,263,83,20350,254,70,20350,259,66,20350; break;
case 3: setarray .@xy,205,90,20348,201,90,20348,208,79,20348,204,71,20348,203,81,20348,200,81,20348,211,80,20349,202,75,20349,210,88,20349,207,93,20349,200,77,20349,206,79,20349,207,78,20350,208,83,20350; break;
case 4: setarray .@xy,209,118,20348,208,129,20348,214,136,20348,222,131,20348,215,134,20348,204,137,20348,205,127,20349,222,127,20349,225,136,20349,221,132,20349,206,132,20349,217,132,20349,208,135,20350,216,129,20350,210,136,20350; break;
case 5: setarray .@xy,257,153,20348,263,156,20348,261,158,20348,256,161,20348,252,161,20348,246,156,20349,240,156,20349,248,157,20349,256,158,20349,243,156,20350,249,156,20350,237,153,20350,252,161,20350,253,161,20350; break;
case 6: setarray .@xy,200,190,20348,213,189,20348,227,190,20348,206,191,20348,201,189,20348,198,183,20348,200,170,20348,197,187,20349,200,191,20349,215,190,20349,207,190,20349,209,183,20349,218,184,20349,212,184,20349,229,185,20349,219,184,20350,199,183,20350,207,184,20350,206,182,20350,226,188,20350,203,187,20350,197,183,20350; break;
case 7: donpcevent instance_npcname(strnpcinfo(0)) + "::OnSummonBoss"; end;
}
if (.@id == 1) {
'osd = 2;
donpcevent instance_npcname(strnpcinfo(0)) + "::OnSummon";
}
if (.@id != 2)
donpcevent instance_npcname(strnpcinfo(0)) + "::OnEvent0" + .@id;
for (.@i = 0; .@i < getarraysize(.@xy); .@i += 3)
monster 'map$,.@xy[.@i],.@xy[.@i+1],"CP" + .@id + " " + getmonsterinfo(.@xy[.@i+2],MOB_NAME),.@xy[.@i+2],1,.@event$;
end;
OnMobKill:
end;
OnTimer10000:
stopnpctimer;
.@event$ = instance_npcname(strnpcinfo(0)) + "::OnMobKill";
.@count = mobcount('map$,.@event$);
if (.@count) {
mapannounce 'map$,"Remaining Mutant Survivor - " + .@count,bc_map,0xFFFF00;
initnpctimer;
} else {
mapannounce 'map$,"Sector " + ('osd - 1) + " secured.",bc_map,0x00FF00;
.@id = 'osd + 1;
'osd = .@id;
if (.@id == 5)
killmonster 'map$,instance_npcname(strnpcinfo(0)) + "::OnPoisonKill";
donpcevent instance_npcname(strnpcinfo(0)) + "::OnSummon";
}
end;
OnEvent01:
mapannounce 'map$,"Operation Officer : The Alpha team should be prepare to fight the moment you felt a Mutant's reaction near you.",bc_map,0x00EEEE;
sleep 6000;
mapannounce 'map$,"Operation Officer : There are no civilian in the main search area, so you can safely subdue any moving creatures.",bc_map,0x00EEEE;
sleep 6000;
mapannounce 'map$,"Operation Officer : Charlie, and Delta Team, if there is an engagement situation, immediately go into battle without reporting.",bc_map,0x00EEEE;
initnpctimer;
end;
OnEvent03:
mapannounce 'map$,"Operation Officer : We received a precaution within this area.",bc_map,0x00EEEE;
sleep 6000;
mapannounce 'map$,"Operation Officer : A mutant labeled with A013 is a independent mutant unrelated to its base.",bc_map,0x00EEEE;
sleep 6000;
mapannounce 'map$,"Operation Officer : It is said that it's combat ability is stronger than of ordinary mutants, avoid combat unless you are willing to fight.",bc_map,0x00EEEE;
initnpctimer;
end;
OnEvent04:
mapannounce 'map$,"Operation Officer : Be careful when dealing with CP4 or higher grade mutants.",bc_map,0x00EEEE;
sleep 6000;
mapannounce 'map$,"Operation Officer : They are the same type as CP1, but their destructive power increases with their grade. Be careful not to be surrounded.",bc_map,0x00EEEE;
initnpctimer;
end;
OnEvent05:
mapannounce 'map$,"Operation Officer : Sector 4 is said to be a confidential documents storage room.",bc_map,0x00EEEE;
sleep 6000;
mapannounce 'map$,"Operation Officer : The advanced team already searched the area, but there was nothing special, so focus on the battle and be careful to not get surrounded.",bc_map,0x00EEEE;
initnpctimer;
end;
OnEvent06:
mapannounce 'map$,"Operation Officer : Bravo Team. Is engaged with CP6 Mutants. Their offense is very powerful.",bc_map,0x00EEEE;
sleep 6000;
mapannounce 'map$,"Operation Officer : Alpha, Charlie, Delta team should also be careful. Don't get surrounded by CP6 Grade mutants!",bc_map,0x00EEEE;
initnpctimer;
end;
OnSummonBoss:
sleep 3000;
mapannounce 'map$,"Operation Officer : To all team. If you find an S-Class mutant, please engage in the battle immediately.",bc_map,0x00EEEE;
sleep 3000;
mapannounce 'map$,"???? : Grrr...",bc_map,0xFF9999;
sleep 3000;
mapannounce 'map$,"Operation Officer : Be careful, it's difficult to deal with mutants with high CP grade!",bc_map,0x00EEEE;
monster 'map$,205,188,"CP7 Miguel",20346,1,instance_npcname(strnpcinfo(0)) + "::OnBossKill";
'boss_gid = $@mobid[0];
donpcevent instance_npcname(strnpcinfo(0)) + "::OnBossSkill";
end;
OnBossKillStory:
enablenpc instance_npcname("#171_ocp_miguel");
enablenpc instance_npcname("Est#171_ocp_1");
end;
OnBossKill:
.@event$ = instance_npcname(strnpcinfo(0)) + "::OnSummonKill";
killmonster 'map$,.@event$;
mapannounce 'map$,"Operation Officer : Guess I'm a little late!",bc_map,0x00EEEE;
enablenpc instance_npcname("Operation Officer#171_osd");
end;
OnBossSkill:
.@gid = 'boss_gid;
freeloop(true);
while(unitexists(.@gid)) {
if (unitexists(.@gid)) {
getunitdata .@gid,.@data;
if (.@data[UMOB_HP] <= ((.@data[UMOB_MAXHP]/10) * 7)) {
donpcevent instance_npcname(strnpcinfo(0)) + "::OnSummonSkill";
break;
}
}
sleep 100;
}
freeloop(false);
end;
OnSummonSkill:
.@gid = 'boss_gid;
.@event$ = instance_npcname(strnpcinfo(0)) + "::OnSummonKill";
freeloop(true);
while(unitexists(.@gid)) {
sleep 100;
if(!unitexists(.@gid))
end;
getunitdata .@gid,.@data;
if (.@data[UMOB_HP] <= ((.@data[UMOB_MAXHP]/10) * 3) && 'skill == 0)
'skill = 1;
if (.@data[UMOB_X] == 'gid_x && .@data[UMOB_Y] == 'gid_y)
continue;
killmonster 'map$,.@event$;
if (unitexists(.@gid)) {
'gid_x = .@data[UMOB_X];
'gid_y = .@data[UMOB_Y];
monster 'map$,.@data[UMOB_X] - 7,.@data[UMOB_Y],"",20351,1,.@event$;
monster 'map$,.@data[UMOB_X] + 7,.@data[UMOB_Y],"",20351,1,.@event$;
monster 'map$,.@data[UMOB_X],.@data[UMOB_Y] - 7,"",20351,1,.@event$;
monster 'map$,.@data[UMOB_X],.@data[UMOB_Y] + 7,"",20351,1,.@event$;
if ('skill) {
monster 'map$,.@data[UMOB_X] - 5,.@data[UMOB_Y] + 5,"",20351,1,.@event$;
monster 'map$,.@data[UMOB_X] + 5,.@data[UMOB_Y] + 5,"",20351,1,.@event$;
monster 'map$,.@data[UMOB_X] - 5,.@data[UMOB_Y] - 5,"",20351,1,.@event$;
monster 'map$,.@data[UMOB_X] + 5,.@data[UMOB_Y] - 5,"",20351,1,.@event$;
}
} else
break;
}
freeloop(false);
end;
OnSummonKill:
end;
OnPoisonStory:
monster 'map$,44,340,"",2536,1,instance_npcname(strnpcinfo(0)) + "::OnPoisonKill";
monster 'map$,44,344,"",2536,1,instance_npcname(strnpcinfo(0)) + "::OnPoisonKill";
monster 'map$,43,360,"",2536,1,instance_npcname(strnpcinfo(0)) + "::OnPoisonKill";
end;
OnPoisonDaily:
monster 'map$,252,107,"",2536,1,instance_npcname(strnpcinfo(0)) + "::OnPoisonKill";
monster 'map$,255,107,"",2536,1,instance_npcname(strnpcinfo(0)) + "::OnPoisonKill";
end;
OnPoisonKill:
end;
}
1@os_a,26,345,7 duplicate(dummy_npc) #ocp_rebel_1 4_M_GUNSLINGER3
1@os_a,38,357,1 duplicate(dummy_npc) #ocp_rebel_2 4_F_GUNSLINGER3
1@os_a,29,348,7 duplicate(dummy_npc) #ocp_rebel_3 4_M_REBELLION2
1@os_a,29,351,7 duplicate(dummy_npc) #ocp_rebel_4 4_M_REBELLION2
1@os_a,32,351,7 duplicate(dummy_npc) #ocp_rebel_5 4_M_REBELLION3
1@os_a,29,345,7 duplicate(dummy_npc) #ocp_rebel_6 4_M_REBELLION2
1@os_a,26,348,7 duplicate(dummy_npc) #ocp_rebel_7 4_M_REBELLION2
1@os_a,29,357,7 duplicate(dummy_npc) #ocp_rebel_8 4_M_REBELLION2
1@os_a,38,348,1 duplicate(dummy_npc) #ocp_rebel_9 4_F_GUNSLINGER3
1@os_a,32,348,7 duplicate(dummy_npc) #ocp_rebel_10 4_M_REBELLION3
1@os_a,26,351,7 duplicate(dummy_npc) #ocp_rebel_11 4_M_GUNSLINGER3
1@os_a,35,345,1 duplicate(dummy_npc) #ocp_rebel_12 4_F_GUNSLINGER2
1@os_a,35,348,1 duplicate(dummy_npc) #ocp_rebel_13 4_F_GUNSLINGER2
1@os_a,26,357,7 duplicate(dummy_npc) #ocp_rebel_14 4_M_GUNSLINGER3
1@os_a,26,354,7 duplicate(dummy_npc) #ocp_rebel_15 4_M_GUNSLINGER3
1@os_a,32,354,7 duplicate(dummy_npc) #ocp_rebel_16 4_M_REBELLION3
1@os_a,29,354,7 duplicate(dummy_npc) #ocp_rebel_17 4_M_REBELLION2
1@os_a,35,351,1 duplicate(dummy_npc) #ocp_rebel_18 4_F_GUNSLINGER2
1@os_a,35,354,1 duplicate(dummy_npc) #ocp_rebel_19 4_F_GUNSLINGER2
1@os_a,32,345,7 duplicate(dummy_npc) #ocp_rebel_20 4_M_REBELLION3
1@os_a,38,351,1 duplicate(dummy_npc) #ocp_rebel_21 4_F_GUNSLINGER3
1@os_a,35,357,1 duplicate(dummy_npc) #ocp_rebel_22 4_F_GUNSLINGER2
1@os_a,38,354,1 duplicate(dummy_npc) #ocp_rebel_23 4_F_GUNSLINGER3
1@os_a,38,345,1 duplicate(dummy_npc) #ocp_rebel_24 4_F_GUNSLINGER3
1@os_a,32,357,7 duplicate(dummy_npc) #ocp_rebel_25 4_M_REBELLION3

View File

@@ -0,0 +1,887 @@
//===== rAthena Script =======================================
//= Regenschirm
//===== Description: =========================================
//= [Walkthrough Conversion]
//= Episode 17.1 - Regenschirm
//===== Changelog: ===========================================
//= 1.0 Initial release [crazyarashi]
//= 1.1 Optimizations and cleanup [Everade]
//============================================================
1@rgsr,1,1,0 script #171_rgsr_control HIDDEN_WARP_NPC,{
end;
OnInstanceInit:
'map$ = instance_mapname("1@rgsr");
'rgsr = 'activate = 0;
deletearray 'rescued;
deletearray 'rsgr_c;
disablenpc instance_npcname("Researcher#rgsr_ev_0");
disablenpc instance_npcname("Access Controller#rgsr");
disablenpc instance_npcname("#rgsr_touch_mob_0");
disablenpc instance_npcname("#rgsr_touch_mob_1");
disablenpc instance_npcname("#rgsr_warp_0");
disablenpc instance_npcname("Est#rgsr");
disablenpc instance_npcname("Rebellion Crew#rgsr_dum01");
disablenpc instance_npcname("Aas#rgsr3");
disablenpc instance_npcname("Goni#rgsr");
disablenpc instance_npcname("Est#rgsr2");
disablenpc instance_npcname("Central Room#rgsr");
disablenpc instance_npcname("Restrained Specimen#rgsr");
disablenpc instance_npcname("Control Device#rgsr0");
disablenpc instance_npcname("Control Device#rgsr1");
disablenpc instance_npcname("Control Device#rgsr2");
disablenpc instance_npcname("Control Device#rgsr3");
disablenpc instance_npcname("Aas#rgsr4");
end;
OnEvent01:
enablenpc instance_npcname("#rgsr_touch_mob_0");
enablenpc instance_npcname("#rgsr_touch_mob_1");
donpcevent instance_npcname("#rgsr_mob_1") + "::OnSummon";
end;
OnEvent02:
enablenpc instance_npcname("#rgsr_warp_0");
donpcevent instance_npcname("#rgsr_mob_2") + "::OnSummon";
end;
OnEvent03:
enablenpc instance_npcname("Restrained Specimen#rgsr");
enablenpc instance_npcname("Control Device#rgsr0");
enablenpc instance_npcname("Control Device#rgsr1");
enablenpc instance_npcname("Control Device#rgsr2");
enablenpc instance_npcname("Control Device#rgsr3");
end;
OnEvent04:
if ('rgsr == 13) {
'rgsr = 14;
donpcevent instance_npcname("#rgsr_boss") + "::OnSummon";
}
end;
}
1@rgsr,123,42,5 script Oscar#rgsr 4_M_LGTGUARD,{
mes "[Oscar]";
mes "The captain sneaked in the control panel room.";
mes "Move quietly.";
close;
}
1@rgsr,131,58,3 script Aas#rgsr 4_EP17_AS,{
cutin "ep171_as02",1;
mes "[Aas]";
mes "The door is normally locked with the security system, so I have to stay there and work with the controller.";
mes "As you can see most of the entrances have been blocked already.";
mes "Hi";
next;
mes "[Aas]";
mes "It will take some time to go through them one by one.";
mes "I'll keep helping you through the intercom.";
next;
mes "[Aas]";
mes "You'll have to go through the restaurant to reach the hallway.";
mes "Est will be performing the operation alone.";
next;
mes "[Aas]";
mes "If there's a disturbance, Est may have caused it. So please check out with her before continuing.";
next;
mes "[Aas]";
mes "You should go now adventurer. I'll keep working on securing the security controller.";
mes "There may be researchers detained inside.";
next;
mes "[Aas]";
mes "Please consider their safety first.";
mes "Now go ahead.";
close2;
if ('rgsr == 0) {
'rgsr = 1;
donpcevent instance_npcname("#171_rgsr_control") + "::OnEvent01";
}
warp 'map$,127,67;
end;
}
1@rgsr,60,138,0 script Access Controller#rgsr 4_ENERGY_WHITE,{
enablenpc instance_npcname("Researcher#rgsr_ev_0");
if ('rgsr == 2) {
'rgsr = 3;
npctalk "Communication Requested.";
sleep2 2750;
npctalk "Analysing Signal.";
sleep2 2750;
npctalk "Activating Voice Transmission...";
sleep2 2750;
npctalk "Are you connected? It's Aas.";
sleep2 2750;
npctalk "I have gained control over some of the security system, but I haven't gained full access yet.";
sleep2 2750;
npctalk "Unless there is a big disturbance, the alarm or security devices won't work.";
sleep2 2750;
npctalk "I think you should open this door to open the hallway.";
sleep2 2750;
npctalk "Ask a Detained Researcher to put their hand on the device.";
sleep2 2750;
npctalk "...*Zap*....";
sleep2 2750;
npctalk "Voice Transmission Ended.";
sleep2 2750;
hideonnpc();
enablenpc();
npctalk "Researcher : Do you mind If I open the door?",instance_npcname("Researcher#rgsr_ev_0");
'rgsr = 4;
}
end;
}
1@rgsr,59,132,7 script Researcher#rgsr_ev_0 4_M_NFMAN,{
if ('rgsr == 4 && 'activate == 0) {
'activate = 1;
mes "[Researcher]";
mes "The biometric scan is still operational, I'll be staying here to keep the door open.";
mes "If you're in a hurry, please go...";
dispbottom "Control : Identity confirmed.";
donpcevent instance_npcname("#171_rgsr_control") + "::OnEvent02";
close2;
sleep2 800;
npctalk "Researcher : ...huh... what the hell is this...";
end;
}
}
1@rgsr,36,211,3 script Est#rgsr 4_F_ESTLOVELOY,{
if ('rgsr < 7) {
cutin "ep162_est03",2;
mes "[Est]";
mes "Are you the one who removed the poison gas outside?";
mes "You arrived at a good time.";
mes "Because of the gas, the door was forcibly locked down!";
next;
cutin "ep162_est01",2;
mes "[Est]";
mes "It takes time for Aas to come hack the controller and release the gas.";
mes "I was going to do it myself.";
next;
cutin "ep162_est02",2;
mes "[Est]";
mes "The guards here were wearing the same clothes as those Heart Hunters we saw before.";
mes "I don't think I can save all the researchers alone.";
next;
mes "[Est]";
mes "It seems we've gathered most of them here already.";
mes "Let's organize our next strategy.";
next;
cutin "ep162_est01",2;
mes "[Est]";
mes "There are laboratories on the other side and it's likely to be a mess.";
mes "I wonder if there will be a big fight.";
next;
mes "[Est]";
mes "From now on the Rebellion Special Forces will prioritize on rescuing the Detained Researchers.";
mes "If you get it, move quickly!";
next;
mes "[Est]";
mes "Okay, adventurer, find a communication device and get in contact with Aas.";
next;
mes "[Est]";
mes "You have to open the entrance of the private labs.";
if ('rgsr == 4)
'rgsr = 5;
close3;
}
cutin "ep162_est02",2;
mes "[Est]";
mes "Huh. We'll focus on rescuing the hostages first.";
mes "Look for the Security Guard's room that Aas talked about.";
close3;
}
1@rgsr,26,219,0 script Access Controller#rgsr2 4_ENERGY_WHITE,{
if ('rgsr < 5) {
mes "Code is inactive.";
mes "The communication has been terminated.";
close;
}
if ('rgsr == 5) {
mes "Voice Transmission Connected.";
close2;
if ('rgsr == 5)
'rgsr = 6;
npctalk "Waiting for communication response...";
sleep2 2750;
npctalk "Aas : Commander Est? We closed the hall lock, but what is the problem?";
sleep2 2750;
npctalk "Aas : Oh you're the adventurer. I will give you the report. I have not fully taken over the security controller system yet.";
sleep2 2750;
npctalk "Aas : It seems it will take some time, but I've taken control of most of the monitoring modules.";
sleep2 2750;
npctalk "Aas : Most of the enemy troops were in the lobby and the resting area, so the lab area is less guarded.";
sleep2 2750;
npctalk "Aas : However, in order to secure the central control room, you have to go through the Guard's Room where many test subjects were detected.";
sleep2 2750;
npctalk "Aas : The priority should be to secure the laboratories and then the Guard Room.... *click*";
sleep2 2000;
npctalk "Est : Eh, what was that?",instance_npcname("Est#rgsr");
if ('rgsr == 6)
'rgsr = 7;
end;
}
if ('rgsr < 7)
end;
else {
mes "Code is inactive.";
mes "The communication has been terminated.";
close;
}
}
1@rgsr,235,44,5 script Aas#rgsr2 4_EP17_AS,{
if ('rgsr == 7) {
for (.@i = 0; .@i < 3; .@i++) {
if (!'rescued[.@i])
.@miss++;
}
if (.@miss) {
cutin "ep171_as02",2;
mes "[Aas]";
mes "Hey, Did you check all the labs yet?";
mes "Please check if there are still Detained Researchers.";
close3;
}
cutin "ep171_as02",1;
mes "[Aas]";
mes "The spare Master Key still remains.";
mes "Without it, I wouldn't have been able to control over the security systems. Are you okay?";
next;
mes "[Aas]";
mes "Now you only need to check the Central Room.";
mes "Did you say Heart Hunters?";
mes "The traitors from Schlein have already escaped.";
next;
mes "[Aas]";
mes "We've got our focus on that room.";
mes "That's the main idea.";
mes "Where is Est?";
next;
cutin "16go_01",0;
mes "[Goni]";
mes "... ... ...";
next;
cutin "ep171_as02",1;
mes "[Aas]";
mes "You have to keep looking for all the Researchers?";
mes "That's necessary, I understand.";
next;
mes "[Aas]";
mes "Adventurer, we head to the Central Room.";
mes "Meet me over there.";
close2;
cutin "",255;
if ('rgsr == 7) {
enablenpc instance_npcname("Central Room#rgsr");
'rgsr = 8;
disablenpc instance_npcname("#rgsr_mob_2");
}
end;
}
cutin "ep171_as02",1;
mes "[Aas]";
mes "Adventurer, we head to the Central Room.";
mes "Meet me over there.";
close3;
}
1@rgsr,235,143,5 script Detained Researcher#rgsr_q01 4_F_SCIENCE,{
if (!'rescued[0]) {
mes "[Researcher]";
mes "My... my search... materials...";
mes "They took it all!";
mes "They took everything!";
next;
cutin "16go_01",0;
mes "[Goni]";
mes "... ... ...";
next;
cutin "",255;
npctalk "I'm going to live! Thank you!";
mes "Oh, you're here to protect me?";
mes "I'll go with you, thank you!";
next;
mes "[Researcher]";
mes "Oh, you're there to protect me?";
mes "I'll go with you, thank you!";
'rescued[0] = 1;
close2;
disablenpc();
}
end;
}
1@rgsr,237,108,3 script Detained Researcher#rgsr_q02 4_LGTSCIENCE,{
if (!'rescued[1]) {
mes "[Researcher]";
mes "I thought they kicked out all the crazy guy...";
mes "I hit the back of my head like this.";
mes "Tsk.";
next;
mes "[Researcher]";
mes "Are you here to save us?";
mes "Get me out of here!";
mes "We couldn't flee because they put poisonous gas outside the doors!";
next;
mes "[Researcher]";
mes "Yeah, I know a little bit about the Heart Hunters, I will tell you everything!";
next;
cutin "ep162_est02",2;
mes "[Est]";
mes "Ah? Do you have more information to share?";
mes "Do you want to go outside and talk about it calmly with me?";
next;
cutin "ep162_est01",2;
mes "[Est]";
mes "I'll take this guy out of here and you look at the other rooms.";
'rescued[1] = 1;
close2;
cutin "",255;
disablenpc();
}
end;
}
1@rgsr,237,71,3 script Detained Researcher#rgsr_q03 4_F_FRUIT,{
if (!'rescued[2]) {
mes "[Researcher]";
mes "Please help me!";
mes "I worked a lot and I'm not getting paid!";
next;
mes "[Researcher]";
mes "Schlein, where is Schlein?";
mes "He's a traitor!";
mes "I've seen it with my own eyes, he just killed the guards...";
next;
select("Calm down.");
mes "[Researcher]";
mes "Is it safe now?";
mes "I'm glad when I was hired at Rekenber, but what the hell is going with such a big company...";
next;
mes "[Researcher]";
mes "Say what? The Rebellions are coming to save us?";
mes "Can't I just run away with you instead?";
next;
mes "[Researcher]";
mes "Oh... you're part of the recon team?";
mes "Alright. I'll wait for the rescue team.";
mes "Many people escaped by breaking the windows and ran away..";
next;
mes "[Researcher]";
mes "Oh you already know.";
mes "Okay. I'll be quiet now and wait.";
mes "Your uniform is really cool though.";
'rescued[2] = 1;
close;
}
mes "[Researcher]";
mes "I know. I know.";
mes "If I wait here, will the Rebellions come and save me?";
mes "I'll be fine then.";
next;
mes "[Researcher]";
mes "But again, your uniform is really cool.";
close;
}
1@rgsr,241,51,0 script Scattered Documents#rgsr 4_ENERGY_BLUE,{
if (isbegin_quest(7863) == 0) {
mes "This is the list of the Enterprise security teams.";
mes "Some have circles around them... others are crossed out.";
next;
cutin "ep171_as01",2;
mes "[Aas]";
mes "The ones circled are probably those who accepted to be recruited...";
mes "My team is the one with a X marked next to it.";
next;
mes "[Aas]";
mes "It's a mercenary contract...";
mes "There's a rough plan for the day of the raid.";
mes "I can't believe it came to this...";
next;
mes "[Aas]";
mes "This is meant to provoke me.";
mes "It won't work this time. I'll track this to the end.";
next;
mes "[Aas]";
mes "I'd better take it back to Tess and analyze it.";
setquest 7863;
close3;
}
mes "I've already got the data here.";
mes "There's nothing else to see here.";
close;
OnInstanceInit:
questinfo(QTYPE_CLICKME,QMARK_YELLOW,"isbegin_quest(7863) == 0");
end;
}
1@rgsr,125,157,0 script Central Room#rgsr 4_ENERGY_BLUE,{
if ('rgsr == 8) {
'rgsr = 9;
enablenpc instance_npcname("Aas#rgsr3");
enablenpc instance_npcname("Goni#rgsr");
enablenpc instance_npcname("Est#rgsr2");
npctalk "Am I late?",instance_npcname("Aas#rgsr3");
sleep2 1800;
npctalk "No you arrived just in time.",instance_npcname("Est#rgsr2");
end;
}
mes "The device does not work.";
close;
}
1@rgsr,128,157,3 script Aas#rgsr3 4_EP17_AS,{
if ('rgsr > 13)
end;
if ('rgsr == 9) {
'rgsr = 10;
.@aas$ = instance_npcname("Aas#rgsr3");
.@gonie$ = instance_npcname("Goni#rgsr");
.@erst$ = instance_npcname("Est#rgsr2");
npctalk "Aas : The Central Room seems to be empty. I'll go in and check it out.",.@aas$;
sleep2 3000;
npctalk "Aas : I'll go ahead and take the researchers out of here. Will that be okay?",.@erst$;
sleep2 3000;
npctalk "Aas : Yes. Nothing else is being detected on the system. With our progress so far, the enemies have all been restrained.",.@aas$;
sleep2 3000;
npctalk "Est : What are you scared of something else? I'm going back already!",.@erst$;
sleep2 3000;
npctalk "Goni : ... Me too.",.@gonie$;
sleep2 3000;
npctalk "Est : There were couple of researchers left in the labs, I'll go bring them along. I'll be waiting.",.@erst$;
sleep2 3000;
npctalk "Est : Alright, Goni. You go to the main lobby first and secure the road. I'll take the others at the conference room.",.@erst$;
sleep2 3000;
npctalk "Goni : *Nods*",.@gonie$;
sleep2 3000;
disablenpc instance_npcname("Goni#rgsr");
disablenpc instance_npcname("Est#rgsr2");
npctalk "Aas : So adventurer, let's check out the Central Room.",.@aas$;
if ('rgsr == 10)
'rgsr = 11;
end;
}
cutin "ep171_as02",1;
mes "[Aas]";
mes "That's the Central Room right ahead.";
next;
if (select("Enter.:Wait.") == 2) {
mes "[Aas]";
mes "Please speak to me when you're ready.";
mes "I don't know why, but it's tightly closed;. It takes some time to maintain access.";
next;
mes "[Aas]";
mes "As confirmed by the security system, nothing is being detected on the inside...";
mes "I still want to confirm inside the room regardless.";
close3;
}
mes "[Aas]";
mes "First I'll need to disable the auto-locking mechanism, and then I'll follow right away.";
if ('rgsr == 11) {
'rgsr = 12;
donpcevent instance_npcname("#171_rgsr_control") + "::OnEvent03";
}
close2;
cutin "",255;
warp 'map$,126,164;
end;
}
1@rgsr,124,152,5 script Goni#rgsr 4_M_GONY,{
cutin "16go_01",0;
mes "[Goni]";
mes "... ... ...";
close3;
}
1@rgsr,125,154,5 script Est#rgsr2 4_F_ESTLOVELOY,{
cutin "ep162_est01",2;
mes "[Est]";
mes "I don't believe there are any enemies left inside, I'm going to pull out.";
mes "Just check the Central Room and then get out.";
close3;
}
1@rgsr,125,188,3 script Restrained Specimen#rgsr 20353,2,3,{
if ('rgsr == 12) {
specialeffect EF_RED_HIT;
specialeffect EF_BEGINSPELL3;
npctalk "Do... do not... come close to me...!! Huh, my head... it hurts...";
mapannounce 'map$,"Do... do not... come close to me...!! Huh, my head... it hurts...",bc_map,0x00FF00;
'rgsr = 13;
}
end;
OnFail:
specialeffect EF_FREEZE;
npctalk "Awesome-!! That's it... What did you do!!";
mapannounce 'map$,"Awesome-!! That's it... What did you do!!",bc_map,0x00FF00;
end;
}
1@rgsr,144,180,0 script Control Device#rgsr0 4_ENERGY_BLUE,{
if ('rgsr < 13) {
mes "This device has an unknown purpose.";
mes "There are four buttons in the room.";
close;
}
.@index = atoi(replacestr(strnpcinfo(2),"rgsr",""));
if (.@index > 0) {
if (!'rsgr_c[ (.@index - 1) ]) {
mes "This device has an unknown purpose.";
mes "There are four buttons in the room.";
next;
select("Press the button.");
donpcevent instance_npcname("Restrained Specimen#rgsr") + "::OnFail";
close;
}
}
if (!'rsgr_c[.@index]) {
switch (.@index) {
case 0: .@answer = 2; .@string$ = "three phases"; break;
case 1: .@answer = 1; .@string$ = "two phases"; break;
case 2: .@answer = 4; .@string$ = "one phase"; break;
case 3: .@answer = 3;
}
mes "This device has an unknown purpose.";
mes "There are four buttons in the room.";
next;
.@s = select("Red Button.:Blue Button.:White Button.:Yellow Button.");
if (.@s != .@answer)
donpcevent instance_npcname("Restrained Specimen#rgsr") + "::OnFail";
else {
specialeffect EF_BEGINSPELL3,AREA,instance_npcname("Restrained Specimen#rgsr");
if (.@index < 3) {
mapannounce 'map$,"Gravity control adjustment... completed... There are " + .@string$ +" remaining.",bc_map,0x0D98BA;
'rsgr_c[.@index] = 1;
} else {
'rsgr_c[.@index] = 1;
mapannounce 'map$,"Gravity control adjustment... completed... Restraints have been disengaged.",bc_map,0x0D98BA;
sleep2 2500;
donpcevent instance_npcname("#171_rgsr_control") + "::OnEvent04";
}
}
close;
}
mes "This device has already been activated.";
close;
}
1@rgsr,108,168,0 duplicate(Control Device#rgsr0) Control Device#rgsr1 4_ENERGY_RED
1@rgsr,114,191,0 duplicate(Control Device#rgsr0) Control Device#rgsr2 4_ENERGY_WHITE
1@rgsr,143,168,0 duplicate(Control Device#rgsr0) Control Device#rgsr3 4_ENERGY_YELLOW
1@rgsr,127,164,3 script Aas#rgsr4 4_EP17_AS,{
if ('rgsr != 15)
end;
cutin "ep171_as01",2;
mes "[Aas]";
mes "Est has handled everything else on the inside.";
mes "Sorry for not being able to help you at all.";
next;
mes "[Aas]";
mes "Let's go back to Einbroch.";
mes "I'll... I'll go to my office and join you.";
next;
.@s = select("Move to Einbroch.:Move to Lighthalzen.:Stay for a while.");
if (.@s == 3) {
cutin "ep171_as02",2;
mes "[Aas]";
mes "Do you have anything else to investigate?";
mes "I'll wait here.";
close3;
}
mes "[Aas]";
mes "We're going to wait for you in the Cat on Bullet.";
mes "Please head there and meet us in the headquarters.";
completequest 7862;
close2;
if (.@s == 1)
warp "einbroch",301,324;
else
warp "lighthalzen",54,272;
end;
}
//= Monster
1@rgsr,1,1,0 script #rgsr_mob_1 HIDDEN_WARP_NPC,{
OnSummon:
.@event$ = instance_npcname(strnpcinfo(0))+"::OnMobKill";
setarray .@xy,
153,80,155,81,154,82, //= Bottom Right
138,85,136,87,138,89, //= Center Right
152,94,152,98,153,98, //= Stairs Right
145,114,151,114,156,114, //= Top Right
97,114,102,114,107,114, //= Top Left
102,98,101,96,101,95, //= Stairs Left
116,88,118,88,121,87, //= Center Left
117,101,117,101,117,102, //= Center Top
93,66,93,67,94,68, //= Bottom Door
58,65,56,57,44,59,31,53,15,55, //= Bottom Room
59,94,48,98,53,103,36,110,33,126,46,132,55,131; //= Upper Room
for (.@i = 0; .@i < getarraysize(.@xy); .@i += 2)
monster 'map$,.@xy[.@i],.@xy[.@i+1],"Special Guard",3627,1,.@event$;
end;
OnMobKill:
.@event$ = instance_npcname(strnpcinfo(0))+"::OnMobKill";
if (!mobcount('map$,.@event$) && 'rgsr == 1) {
'rgsr = 2;
disablenpc();
enablenpc instance_npcname("Access Controller#rgsr");
}
end;
}
1@rgsr,1,1,0 script #rgsr_mob_2 HIDDEN_WARP_NPC,{
OnSummon:
setarray .@xy,102,137,104,136,104,135,126,139,138,137,139,134,137,133,151,135,150,136,151,137,85,151,82,215,84,216,84,218,107,216;
setarray .@left_xy,85,170,54,186,55,183,58,181,59,186,62,183,62,216,59,214,56,217,54,214,52,217;
setarray .@right_xy,167,136,167,135,168,135,208,138,208,134,203,138,200,134,187,123,188,
123,187,122,186,108,188,107,186,105,196,106,203,109,205,105,208,109,187,92,186,90,188,91,
187,69,187,67,188,67,201,74,202,77,207,76,211,74,187,48,188,45,186,46,197,45,202,45,208,42,211,42;
setarray .@top_xy,169,217,169,214,172,217,172,214,176,217,176,214,180,217,180,214,184,217,184,214,167,204,168,203,168,203,167,176,167,176,166,175;
for (.@i = 0; .@i < getarraysize(.@xy); .@i += 2)
monster 'map$,.@xy[.@i],.@xy[.@i+1],"Special Guard",3627,1;
for (.@i = 0; .@i < getarraysize(.@left_xy); .@i += 2)
monster 'map$,.@left_xy[.@i],.@left_xy[.@i+1],"Poisonous Gas",20352,1,instance_npcname(strnpcinfo(0))+"::OnLeftKill";
for (.@i = 0; .@i < getarraysize(.@right_xy); .@i += 2)
monster 'map$,.@right_xy[.@i],.@right_xy[.@i+1],"Poisonous Gas",20352,1,instance_npcname(strnpcinfo(0))+"::OnRightKill";
for (.@i = 0; .@i < getarraysize(.@top_xy); .@i += 2)
monster 'map$,.@top_xy[.@i],.@top_xy[.@i+1],"Poisonous Gas",20352,1,instance_npcname(strnpcinfo(0))+"::OnTopKill";
end;
OnLeftKill:
.@event$ = instance_npcname(strnpcinfo(0))+"::OnLeftKill";
if (!mobcount('map$,.@event$)) {
mapannounce 'map$,"Est : Who is it? Are you Aas? Are you the adventurer?",bc_map,0x0D98BA;
enablenpc instance_npcname("Est#rgsr");
enablenpc instance_npcname("Rebellion Crew#rgsr_dum01");
}
end;
OnRightKill:
OnTopKill:
end;
}
1@rgsr,1,1,0 script #rgsr_boss HIDDEN_WARP_NPC,{
end;
OnSummon:
mapannounce 'map$,"Ahahaha.. ahahaha... I'll kill you all!!!!",bc_map,0x00FF00;
sleep 2000;
mapannounce 'map$,"Aas : What is going on? *click* The lock is...!!",bc_map;
sleep 2000;
mapannounce 'map$,"I'm not a defect! I'm not a monster!",bc_map,0x00FF00;
specialeffect EF_LORD,AREA,instance_npcname("Restrained Specimen#rgsr");
disablenpc instance_npcname("Restrained Specimen#rgsr");
monster 'map$,125,188,"Failed Specimen",20353,1,instance_npcname(strnpcinfo(0))+"::OnBossKill";
end;
OnBossKill:
if ('rgsr == 14) {
'rgsr = 15;
hideonnpc instance_npcname("Aas#rgsr3");
disablenpc instance_npcname("Aas#rgsr3");
enablenpc instance_npcname("Aas#rgsr4");
disablenpc();
}
end;
}
1@rgsr,94,68,5 script #rgsr_touch_mob_0 3622,4,6,{
end;
OnTouch:
disablenpc();
.@v = atoi(replacestr(strnpcinfo(2),"rgsr_touch_mob_",""));
if (!.@v)
setarray .@xy,98,66,94,68,95,70,92,68;
else
setarray .@xy,91,91,91,93,95,93,94,97,97,92;
for (.@i = 0; .@i < getarraysize(.@xy); .@i += 2)
monster 'map$,.@xy[.@i],.@xy[.@i+1],"Special Guard",3622,1;
end;
}
1@rgsr,95,93,5 duplicate(#rgsr_touch_mob_0) #rgsr_touch_mob_1 3622,4,6
//= Warp/Other
1@rgsr,59,136,0 warp #rgsr_warp_0 1,2,1@rgsr,66,136
1@rgsr,51,184,0 script #rgsr_warp_1 WARPNPC,1,2,{
end;
OnTouch:
.@event$ = instance_npcname("#rgsr_mob_2")+"::OnLeftKill";
if (mobcount('map$,.@event$)) {
dispbottom "Voice Behind Door : Who's outside? exterminate that strange poison gas!!";
end;
}
switch (atoi(replacestr(strnpcinfo(2),"rgsr_warp_",""))) {
case 1: warp 'map$,46,184; break;
case 2: warp 'map$,46,216; break;
case 3: warp 'map$,54,184; break;
case 4: warp 'map$,54,216;
}
end;
}
1@rgsr,51,216,0 duplicate(#rgsr_warp_1) #rgsr_warp_2 WARPNPC,1,2
1@rgsr,49,184,0 duplicate(#rgsr_warp_1) #rgsr_warp_3 WARPNPC,1,2
1@rgsr,49,216,0 duplicate(#rgsr_warp_1) #rgsr_warp_4 WARPNPC,1,2
1@rgsr,186,216,0 script #rgsr_warp_5 WARPNPC,1,2,{
.@event$ = instance_npcname("#rgsr_mob_2")+"::OnTopKill";
if (mobcount('map$,.@event$)) {
mes "An unknown entity has been detected. Access Denied.";
close;
}
switch (atoi(replacestr(strnpcinfo(2),"rgsr_warp_",""))) {
case 5: warp 'map$,191,216; break;
case 6: warp 'map$,183,216;
}
end;
}
1@rgsr,188,216,0 duplicate(#rgsr_warp_5) #rgsr_warp_6 WARPNPC,1,2
1@rgsr,214,136,0 script #rgsr_warp_7 WARPNPC,1,2,{
.@event$ = instance_npcname("#rgsr_mob_2")+"::OnRightKill";
if (mobcount('map$,.@event$) > 0 || 'rgsr < 7) {
mes "An unknown entity has been detected. Access Denied.";
close;
}
switch (atoi(replacestr(strnpcinfo(2),"rgsr_warp_",""))) {
case 7: warp 'map$,219,136; break;
case 8: warp 'map$,211,136; break;
case 9: warp 'map$,219,108; break;
case 10: warp 'map$,211,108; break;
case 11: warp 'map$,219,76; break;
case 12: warp 'map$,211,76; break;
case 13: warp 'map$,219,44; break;
case 14: warp 'map$,211,44;
}
end;
}
1@rgsr,216,136,0 duplicate(#rgsr_warp_7) #rgsr_warp_8 WARPNPC,1,2
1@rgsr,214,108,0 duplicate(#rgsr_warp_7) #rgsr_warp_9 WARPNPC,1,2
1@rgsr,216,108,0 duplicate(#rgsr_warp_7) #rgsr_warp_10 WARPNPC,1,2
1@rgsr,214,76,0 duplicate(#rgsr_warp_7) #rgsr_warp_11 WARPNPC,1,2
1@rgsr,216,76,0 duplicate(#rgsr_warp_7) #rgsr_warp_12 WARPNPC,1,2
1@rgsr,214,44,0 duplicate(#rgsr_warp_7) #rgsr_warp_13 WARPNPC,1,2
1@rgsr,216,44,0 duplicate(#rgsr_warp_7) #rgsr_warp_14 WARPNPC,1,2
1@rgsr,37,126,0 script Researcher#rgsr_dum00 4_F_SCIENCE,{
mes "[Detained Researcher]";
mes "Why do I have to feed this traitors?";
close;
}
1@rgsr,35,136,7 script Researcher#rgsr_dum01 4_LGTSCIENCE,{
mes "[Detained Researcher]";
mes "I want to go home... I just want to go home...";
close;
}
1@rgsr,38,139,3 script Researcher#rgsr_dum02 4_M_NFMAN,{
mes "[Detained Researcher]";
mes "Are you here to save us?";
mes "Thank you! Thank you!";
close;
}
1@rgsr,31,186,3 script Researcher#rgsr_dum03 4_LGTSCIENCE,{
mes "[Detained Researcher]";
mes "What the hell is happening?";
mes "Aaaah... I just want to go home...";
close;
}
1@rgsr,24,186,5 script Researcher#rgsr_dum04 4_F_SCIENCE,{
mes "[Detained Researcher]";
mes "Why did you come here to save me?";
mes "The Enterprise's guards... no wait...";
next;
mes "[Detained Researcher]";
mes "I thought that you were the one who kept us in custody...!";
mes "Why would they do that?";
close;
}
1@rgsr,25,182,7 script Researcher#rgsr_dum05 4_M_HUMAN_01,{
mes "[Detained Researcher]";
mes "These scumbags took my Research Report and I escaped here.";
mes "It was a spray repellent to block blood-sucking insects!";
next;
mes "[Detained Researcher]";
mes "That was my private research, I don't know why they took it!";
mes "You can't just take away someone else's Research Report.";
close;
}
1@rgsr,40,186,3 script Rebellion Crew#rgsr_dum01 4_M_ILYA,{
mes "[Rebellion Crew]";
mes "I've come prepared, but this was easier than thought.";
mes "Now I'm stuck here. Hehehehe!";
close;
}
1@rgsr,33,185,3 script Rebellion Crew#rgsr_dum02 4_M_REBELLION2,{
mes "[Rebellion Crew]";
mes "The remaining researchers are gathered here for their security.";
mes "The Rebellions will protect them and help them escape.";
close;
}
1@rgsr,31,183,5 script Rebellion Crew#rgsr_dum03 4_F_ANYA,{
mes "[Rebellion Crew]";
mes "I thought they had less forces on the inside, but I didn't think they'd have installed toxic gas.";
mes "Most people have fled already, only the enemies are remaining.";
close;
}
1@rgsr,195,205,0 script Research Report#rgsr_00 4_ENERGY_BLUE,{
mes "It is a data on new efficiency and side effect of new potions.";
mes "However there is information about the core ingredients.";
close;
}
1@rgsr,198,199,0 script Research Report#rgsr_01 4_ENERGY_BLUE,{
mes "Some of the drawing has been torn.";
mes "Somebody intentionally destroyed the relevant parts.";
close;
}
1@rgsr,207,210,0 script Research Report#rgsr_02 4_ENERGY_BLUE,{
mes "Parts of the documents were severely damaged.";
mes "It seems to have been about attempting to create a device using the refraction of light.";
close;
}
1@rgsr,226,226,0 script Research Report#rgsr_03 4_ENERGY_BLUE,{
mes "Lloyds's enchantment and processing data.";
mes "Only the title was left, all the text was removed.";
close;
}
1@rgsr,231,223,0 script Research Report#rgsr_04 4_ENERGY_BLUE,{
mes "The booklet is missing some pages. Someone has deliberately omitted the material.";
close;
}
1@rgsr,243,223,0 script Research Report#rgsr_05 4_ENERGY_BLUE,{
mes "The experimental data has been removed. There are clear traces of someone destroying the information.";
close;
}

View File

@@ -0,0 +1,615 @@
//===== rAthena Script =======================================
//= Sealed OS
//===== Description: =========================================
//= [Walkthrough Conversion]
//= Episode 17.1 - Sealed OS
//===== Changelog: ===========================================
//= 1.0 Initial release [crazyarashi]
//= 1.1 Optimizations and cleanup [Everade]
//============================================================
1@os_b,1,1,0 script #171_sealedos_control -1,{
end;
OnInstanceInit:
'map$ = instance_mapname("1@os_b");
'seal_os = 'lock = 0;
hideonnpc instance_npcname("Dien#171_os_0");
hideonnpc instance_npcname("Cotnes#171_os_0");
hideonnpc instance_npcname("Dien#171_os_1");
hideonnpc instance_npcname("Ridsh#171_os_1");
hideonnpc instance_npcname("Cotnes#171_os_1");
disablenpc instance_npcname("Suspicious Device#171_os");
disablenpc instance_npcname("Thick Wire#171_os_0");
disablenpc instance_npcname("Thick Wire#171_os_1");
disablenpc instance_npcname("Thick Wire#171_os_2");
disablenpc instance_npcname("Dien#171_os_2");
disablenpc instance_npcname("Cotnes#171_os_2");
disablenpc instance_npcname("Dien#171_os_3");
hideonnpc instance_npcname("Est#171_os_0");
hideonnpc instance_npcname("Cotnes#171_os_3");
hideonnpc instance_npcname("Dien#171_os_4");
disablenpc instance_npcname("Ridsh#171_os_2");
disablenpc instance_npcname("#171_sos_dummy_6");
disablenpc instance_npcname("#171_sos_dummy_7");
disablenpc instance_npcname("Ridsh#171_os_3");
disablenpc instance_npcname("Est#171_os_1");
disablenpc instance_npcname("Cotnes#171_os_4");
disablenpc instance_npcname("Dien#171_os_5");
end;
OnEvent01:
disablenpc instance_npcname("Ridsh#171_os_0");
disablenpc instance_npcname("Dien#171_os_0");
disablenpc instance_npcname("Cotnes#171_os_0");
disablenpc instance_npcname("#171_os_warp_1");
disablenpc instance_npcname("#171_os_warp_2");
hideoffnpc instance_npcname("Dien#171_os_1");
hideoffnpc instance_npcname("Ridsh#171_os_1");
hideoffnpc instance_npcname("Cotnes#171_os_1");
donpcevent instance_npcname("#171_sealedos_mob") + "::OnSummon00";
end;
OnEvent02:
for (.@i = 0; .@i < 6; .@i++)
disablenpc instance_npcname("#171_sos_dummy_" +.@i);
disablenpc instance_npcname("Suspicious Device#171_os");
disablenpc instance_npcname("Dien#171_os_1");
disablenpc instance_npcname("Ridsh#171_os_1");
disablenpc instance_npcname("Cotnes#171_os_1");
disablenpc instance_npcname("#171_os_warp_0");
enablenpc instance_npcname("Thick Wire#171_os_0");
enablenpc instance_npcname("Thick Wire#171_os_1");
enablenpc instance_npcname("Thick Wire#171_os_2");
enablenpc instance_npcname("Dien#171_os_2");
end;
OnEvent03:
disablenpc instance_npcname("Dien#171_os_2");
enablenpc instance_npcname("Cotnes#171_os_2");
enablenpc instance_npcname("Dien#171_os_3");
enablenpc instance_npcname("Ridsh#171_os_2");
end;
OnEvent04:
'unlocked = 1;
disablenpc instance_npcname("#171_os_warp_3");
enablenpc instance_npcname("Ridsh#171_os_2");
enablenpc instance_npcname("#171_sos_dummy_6");
enablenpc instance_npcname("#171_sos_dummy_7");
end;
OnEvent05:
disablenpc instance_npcname("Ridsh#171_os_2");
disablenpc instance_npcname("Est#171_os_0");
disablenpc instance_npcname("Cotnes#171_os_3");
disablenpc instance_npcname("Dien#171_os_4");
disablenpc instance_npcname("#171_os_warp_5");
enablenpc instance_npcname("Ridsh#171_os_3");
enablenpc instance_npcname("Est#171_os_1");
enablenpc instance_npcname("Cotnes#171_os_4");
enablenpc instance_npcname("Dien#171_os_5");
end;
}
1@os_b,188,45,5 script Ridsh#171_os_0 4_F_LEEDSH,{
if (!is_party_leader())
end;
.@dien$ = instance_npcname("Dien#171_os_0");
.@cot$ = instance_npcname("Cotnes#171_os_0");
cutin "ep162_rds01",2;
mes "[Ridsh]";
mes "Oh?";
mes "What are you doing here?";
npctalk "Ridsh : Oh? What are you doing here.";
next;
cutin "ep162_rds05",2;
mes "[Ridsh]";
mes "We're in trouble~~";
mes "We can't have anyone know we're here~~";
npctalk "Ridsh : We're in trouble~~ We can't have anyone know we're here~~";
next;
hideoffnpc .@dien$;
hideoffnpc .@cot$;
cutin "ep162_dn03",2;
mes "[Dien]";
mes "The adventurer is here too!";
mes "Why are you scared!";
npctalk "Dien : The adventurer is here too! Why are you scared!",.@dien$;
next;
mes "[Dien]";
mes "Hello " + strcharinfo(0) + ".";
sleep2 2000;
cutin "ep162_dn01",2;
mes "We've came here to do something... It was too troublesome to tell the youngsters.";
npctalk "Dien : We've came here to do something... It was too troublesome to tell the youngsters.",.@dien$;
next;
mes "[Dien]";
mes "If you keep it a secret that you saw us...";
npctalk "Dien : If you keep it a secret that you saw us...",.@dien$;
sleep2 1000;
specialeffect EF_BLASTMINEBOMB,AREA,instance_npcname("#171_os_warp_1");
sleep2 600;
specialeffect EF_BLASTMINEBOMB,AREA,instance_npcname("#171_os_warp_1");
sleep2 600;
specialeffect EF_BLASTMINEBOMB,AREA,instance_npcname("#171_os_warp_2");
next;
cutin "ep162_rds04",2;
mes "[Ridsh]";
mes "Sister~~";
mes "What are you talking about, I don't see the adventurer!";
npctalk "Ridsh : Sister~~ What are you talking about, I don't see the adventurer!";
next;
cutin "ep162_ctn01",2;
mes "[Cotnes]";
mes "Oh~";
mes "Yeah?";
mes "I don't see the adventurer either~";
npctalk "Cotnes : Oh~ Yeah? I don't see the adventurer either~",.@cot$;
next;
mes "[Cotnes]";
mes "So what now?";
mes "We're already inside.";
npctalk "Cotnes : So what now? We're already inside.",.@cot$;
next;
cutin "ep162_rds05",2;
mes "[Ridsh]";
mes "It can't be helped~~";
mes "We have to go with the adventurer.";
npctalk "Ridsh : It can't be helped~~ We have to go with the adventurer.";
next;
cutin "ep162_dn01",2;
mes "[Dien]";
mes "It's dangerous, so please come with us.";
npctalk "Dien : It's dangerous so please come with us.",.@dien$;
close2;
cutin "",255;
if ('seal_os == 0) {
'seal_os = 1;
donpcevent instance_npcname("#171_sealedos_control") + "::OnEvent01";
}
end;
}
1@os_b,212,41,0 script Suspicious Device#171_os 4_ENERGY_BLUE,{
mes "- There is a pipe going through the floor. -";
next;
if (select("Crush it.:Put it down.") == 2) {
mes "- Nothing happened. -";
close;
}
mes "- The machine stopped with a strange noise when the pipe was broken. -";
specialeffect EF_BLASTMINEBOMB;
close2;
mapannounce 'map$,"Ridsh : Alright! Let's move up along the railroad tracks!",bc_map,0xFF0000;
if ('seal_os == 1) {
'seal_os = 2;
donpcevent instance_npcname("#171_sealedos_control") + "::OnEvent02";
}
end;
}
1@os_b,1,1,0 script #171_sealedos_mob HIDDEN_WARP_NPC,{
end;
OnSummon00:
.@event$ = instance_npcname(strnpcinfo(0))+"::OnMobKill";
npctalk "Cotnes : Over here~~.",instance_npcname("Dien#171_os_1");
sleep 1000;
npctalk "Dien : Oh my... what a surprise!",instance_npcname("Dien#171_os_1");
sleep 1000;
npctalk "Dien : We will take care of this side. Please take care of the disgusting ones there!",instance_npcname("Dien#171_os_1");
monster 'map$,205,46,"Dolor",20361,1,.@event$;
monster 'map$,200,45,"Twin Caput",20365,1,.@event$;
end;
OnMobKill:
.@event$ = instance_npcname(strnpcinfo(0))+"::OnMobKill";
if (!mobcount('map$,.@event$)) {
disablenpc();
enablenpc instance_npcname("Suspicious Device#171_os");
mapannounce 'map$,"Ridsh : Turn off the device at the bottom, while we deal with the enemies.",bc_map,0xFF0000;
}
end;
}
1@os_b,112,108,5 script Dien#171_os_2 4_F_DIENE,{
cutin "ep162_dn01",2;
mes "[Dien]";
mes "Oh my! What's that thing in the front?";
close3;
}
1@os_b,115,112,3 script Dangerous-Looking Device#s_os_0 1_SHADOW_NPC,3,3,{
end;
OnTouch:
mes "[Dien]";
mes "Oh my! I think it's precise device that's placed here in the abandoned mine.";
next;
mes "[Dien]";
mes "If you don't break the machine on the other side, we will not be able pass it!";
next;
mes "[Dien]";
mes "It's dangerous to go through right now, so let's turn around and go where the device is!";
close2;
warp 'map$,115,104;
sleep2 2000;
npctalk "Dien : If you don't break the machine on the other side, we will not be able pass it!",instance_npcname("Dien#171_os_2");
end;
}
1@os_b,115,126,3 duplicate(Dangerous-Looking Device#s_os_0) Dangerous-Looking Device#s_os_1 1_SHADOW_NPC,3,3
1@os_b,115,144,3 duplicate(Dangerous-Looking Device#s_os_0) Dangerous-Looking Device#s_os_2 1_SHADOW_NPC,3,3
1@os_b,137,107,0 script Thick Wire#171_os_0 4_ENERGY_BLUE,{
.@id = atoi(replacestr(strnpcinfo(2),"171_os_",""));
'lock += 1;
disablenpc();
disablenpc instance_npcname("Dangerous-Looking Device#s_os_" + .@id);
if ('lock < 3)
mapannounce 'map$,"Ridsh : The device hasn't turned off yet. Please take a look above for me.",bc_map,0xFF0000;
else {
mapannounce 'map$,"Ridsh : Great! The road is open. Let's move along the railroad tracks!",bc_map,0xFF0000;
if ('seal_os == 2) {
'seal_os = 3;
donpcevent instance_npcname("#171_sealedos_control") + "::OnEvent03";
}
}
end;
}
1@os_b,137,123,0 duplicate(Thick Wire#171_os_0) Thick Wire#171_os_1 4_ENERGY_BLUE
1@os_b,137,139,0 duplicate(Thick Wire#171_os_0) Thick Wire#171_os_2 4_ENERGY_BLUE
1@os_b,122,212,5 script Dien#171_os_3 4_F_DIENE,{
OnTalk:
cutin "ep162_dn01",2;
mes "[Dien]";
mes "Oh!";
mes "If you go to the right, I think you can go back on the railroad without having to break the door.";
npctalk "Dien : Oh! If you go to the right, I think you can go back on the railroad without having to break the door";
if (!'unlocked)
donpcevent instance_npcname("#171_sealedos_control") + "::OnEvent04";
close3;
}
1@os_b,114,217,0 script Cotnes#171_os_2 4_F_COATNEIS,{
cutin "ep162_ctn01",2;
mes "[Cotnes]";
mes "Oh, is this gate too hard?";
mes "It will take some time to break it~";
npctalk "Cotnes : Oh, is this gate too hard? It will take some time to break it.";
next;
doevent instance_npcname("Dien#171_os_3") + "::OnTalk";
close;
}
1@os_b,146,221,7 script Ridsh#171_os_2 4_F_LEEDSH,{
if ('seal_os != 3)
end;
cutin "ep162_rds04",2;
mes "[Ridsh]";
mes "Argh!";
npctalk "Ridsh : Argh!";
next;
.@est$ = instance_npcname("Est#171_os_0");
hideoffnpc .@est$;
sleep2 500;
specialeffect EF_BLASTMINEBOMB,AREA,instance_npcname("#171_sos_dummy_6");
sleep2 500;
disablenpc instance_npcname("#171_sos_dummy_6");
specialeffect EF_BLASTMINEBOMB,AREA,instance_npcname("#171_sos_dummy_7");
cutin "ep162_est01",2;
mes "[Est]";
mes "Oh...";
mes "I'm in a hurry, what are you doing here?";
npctalk "Est : I'm in a hurry, what are you doing here?",.@est$;
disablenpc instance_npcname("#171_sos_dummy_7");
next;
cutin "ep162_est02",2;
mes "[Est]";
mes "Please go back and enjoy your tea gracefully.";
npctalk "Est : Please go back and enjoy your tea gracefully.",.@est$;
next;
cutin "ep162_rds02",2;
mes "[Ridsh]";
mes "Huh!";
mes "How did you sneak in here anyway?";
npctalk "Ridsh : Huh! How did you sneak in here anyway?";
next;
cutin "ep162_est02",2;
mes "[Est]";
mes "This is only a surveillance routine.";
mes "If you close your eyes for a second, you may run into an accident.";
npctalk "Est : This is only a surveillance routine.",.@est$;
sleep2 2000;
npctalk "Est : If you close your eyes for a second, you may run into an accident.",.@est$;
next;
cutin "ep162_rds02",2;
mes "[Ridsh]";
mes "What makes you think we need your help?";
npctalk "Ridsh : What makes you think we need your help?";
next;
cutin "ep162_est02",2;
mes "[Est]";
mes "Didn't you just did now?";
mes "I don't think I heard that wrong. Did I?";
next;
disablenpc instance_npcname("Cotnes#171_os_2");
.@cot$ = instance_npcname("Cotnes#171_os_3");
hideoffnpc .@cot$;
cutin "ep162_ctn01",2;
mes "[Cotnes]";
mes "You two really~";
mes "Please stop fighting.";
npctalk "Cotnes : You two really~ Please stop fighting.",.@cot$;
next;
disablenpc instance_npcname("Dien#171_os_3");
.@dien$ = instance_npcname("Dien#171_os_4");
hideoffnpc .@dien$;
cutin "ep162_dn03",2;
mes "[Dien]";
mes "How do you always fight like that?";
npctalk "Dien : How do you always fight like that?",.@dien$;
next;
cutin "ep162_ctn01",2;
mes "[Cotnes]";
mes "I'm so excited about this~ I'm getting old and I'm tired of fighting.";
npctalk "Cotnes : I'm so excited about this~ I'm getting old and I'm tired of fighting.",.@cot$;
next;
cutin "ep162_dn03",1;
mes "[Dien]";
mes "Is that so?";
npctalk "Dien : Is that so?",.@dien$;
next;
cutin "ep162_ctn01",2;
mes "[Cotnes]";
mes "Yeah~";
mes "I'm tired of fighting, let's go back to work.";
mes "The road is open now.";
npctalk "Cotnes : Yeah~ I'm tired of fighting, let's go back to work. The road is open now.",.@cot$;
close2;
cutin "",255;
if ('seal_os == 3) {
'seal_os = 4;
donpcevent instance_npcname("#171_sealedos_control") + "::OnEvent05";
}
end;
}
1@os_b,259,360,5 script Dien#171_os_5 4_F_DIENE,{
if ('seal_os != 4)
end;
cutin "ep162_dn03",2;
mes "[Dien]";
mes "Finally..";
mes "If you cross this door...";
next;
cutin "ep162_est01",2;
mes "[Est]";
mes "Let's head back now before they gather more troops.";
next;
cutin "ep162_dn03",2;
mes "[Dien]";
mes "Excuse me.";
next;
cutin "ep162_est01",2;
mes "[Est]";
mes "?";
next;
cutin "ep162_rds01",2;
mes "[Ridsh]";
mes "Why?";
next;
cutin "ep162_dn03",2;
mes "[Dien]";
mes "Oh my, oh my!";
mes "What should we do!";
next;
cutin "ep162_rds04",2;
mes "[Ridsh]";
mes "Why, what's going on?";
next;
cutin "ep162_dn03",2;
mes "[Dien]";
mes "I think I've left it.";
next;
cutin "ep162_rds01",2;
mes "[Ridsh]";
mes "Left what?";
next;
cutin "ep162_dn03",2;
mes "[Dien]";
mes "My protection charm!";
mes "I get nervous if I don't have it with me.";
next;
cutin "ep162_rds04",2;
mes "[Ridsh]";
mes "You've been fine so far without it?!";
next;
cutin "ep162_dn03",2;
mes "[Dien]";
mes "...";
next;
cutin "ep162_rds01",2;
mes "[Ridsh]";
mes "Ah... Sorry..";
mes "Alright.";
next;
mes "[Ridsh]";
mes "While we open the last door, would you mind going back to ^FF0000Clana Nemieri^000000?";
next;
mes "[Ridsh]";
mes "I have to contact a few people anyway, and Dien won't go anywhere until she gets her protection charm.";
next;
mes "[Ridsh]";
mes "Sister, tell me where it is.";
next;
cutin "ep162_dn02",2;
mes "[Dien]";
mes "Oh!";
mes "Thank you so much for that";
next;
mes "[Dien]";
mes "It's hard for me to get it back because it's far...";
mes "Please do me a favor.";
next;
cutin "ep162_dn01",2;
mes "[Dien]";
mes "^FF0000Go back to my room and look for a chest on the left side of the window, near a vase.";
next;
mes "[Dien]";
mes "It should be easy to get since we're here.";
next;
cutin "ep162_rds05",2;
mes "[Ridsh]";
mes "Oh!";
mes "Shouldn't we tell them where we are?";
if (isbegin_quest(11600) == 1) {
completequest 11600;
setquest 11601;
getitem 25669,25;
getexp 600000,600000;
}
close2;
warp "ein_fild03",258,267;
end;
OnInstanceInit:
questinfo(QTYPE_QUEST,QMARK_YELLOW,"isbegin_quest(11600) == 1");
end;
}
1@os_b,260,363,5 script Cotnes#171_os_4 4_F_COATNEIS,{
cutin "ep162_ctn01",2;
mes "[Cotnes]";
mes "It's good sometimes to take a quick walk like this~";
close3;
}
1@os_b,262,362,4 script Est#171_os_1 4_F_ESTLOVELOY,{
cutin "ep162_est01",2;
mes "[Est]";
mes "I eager to explore the area beyond here.";
close3;
}
1@os_b,261,358,3 script Ridsh#171_os_3 4_F_LEEDSH,{
cutin "ep162_rds01",2;
mes "[Ridsh]";
mes "I'm tired!";
mes "I want to go home.";
close3;
}
1@os_b,187,52,0 script #171_os_warp_0 WARPNPC,4,4,{
end;
OnTouch:
.@id = atoi(replacestr(strnpcinfo(2),"171_os_warp_",""));
switch (.@id) {
case 0:
case 1:
case 2:
warp 'map$,188,41;
break;
case 3:
case 4:
if (!'unlocked) {
cutin "ep162_dn01",2;
mes "[Dien]";
mes "It would be better to just go around the door.";
npctalk "Dien : It would be better to just go around the door.",instance_npcname("Dien#171_os_4"),bc_map;
close2;
cutin "",255;
}
warp 'map$,114,204;
break;
case 5:
warp 'map$,142,220;
}
end;
}
1@os_b,204,266,0 script #171_os_trap_0 1_SHADOW_NPC,4,4,{
end;
OnTouch:
.@id = atoi(replacestr(strnpcinfo(2),"171_os_trap_",""));
if (getd("'" + strnpcinfo(2)))
end;
switch (.@id) {
case 0: setarray .@xy,209,264,20363,209,268,20355; break;
case 1: setarray .@xy,234,269,20357,236,266,20357; break;
case 2: setarray .@xy,250,268,20363,252,266,20355; break;
case 3: setarray .@xy,263,285,20361,259,286,20365; break;
case 4: setarray .@xy,262,303,20355,258,306,20355; break;
case 5: setarray .@xy,262,318,20363,259,320,20361; break;
case 6: setarray .@xy,258,336,20365,263,338,20355;
}
setd("'" + strnpcinfo(2),1);
for (.@i = 0; .@i < getarraysize(.@xy); .@i += 3)
monster 'map$,.@xy[.@i],.@xy[.@i+1],"--ja--",.@xy[.@i+2],1,instance_npcname(strnpcinfo(0))+"::OnMobKill";
end;
OnMobKill:
.@event$ = instance_npcname(strnpcinfo(0))+"::OnMobKill";
if (!mobcount('map$,.@event$))
disablenpc();
end;
}
1@os_b,148,217,3 duplicate(dummy_npc) Est#171_os_0 4_F_ESTLOVELOY
1@os_b,142,225,6 duplicate(dummy_npc) Cotnes#171_os_3 4_F_COATNEIS
1@os_b,143,222,5 duplicate(dummy_npc) Dien#171_os_4 4_F_DIENE
1@os_b,229,267,5 duplicate(#171_os_trap_0) #171_os_trap_1 1_SHADOW_NPC,4,4
1@os_b,244,267,5 duplicate(#171_os_trap_0) #171_os_trap_2 1_SHADOW_NPC,4,4
1@os_b,261,281,5 duplicate(#171_os_trap_0) #171_os_trap_3 1_SHADOW_NPC,4,4
1@os_b,261,299,5 duplicate(#171_os_trap_0) #171_os_trap_4 1_SHADOW_NPC,4,4
1@os_b,261,314,5 duplicate(#171_os_trap_0) #171_os_trap_5 1_SHADOW_NPC,4,4
1@os_b,261,332,5 duplicate(#171_os_trap_0) #171_os_trap_6 1_SHADOW_NPC,4,4
1@os_b,191,46,0 duplicate(#171_os_warp_0) #171_os_warp_1 WARPNPC,3,3
1@os_b,192,49,0 duplicate(#171_os_warp_0) #171_os_warp_2 WARPNPC,3,3
1@os_b,118,209,0 duplicate(#171_os_warp_0) #171_os_warp_3 WARPNPC,3,3
1@os_b,119,215,0 duplicate(#171_os_warp_0) #171_os_warp_4 WARPNPC,3,3
1@os_b,147,224,0 duplicate(#171_os_warp_0) #171_os_warp_5 WARPNPC,3,3
1@os_b,190,44,3 duplicate(dummy_npc) Dien#171_os_0 4_F_DIENE
1@os_b,190,47,6 duplicate(dummy_npc) Cotnes#171_os_0 4_F_COATNEIS
1@os_b,199,51,7 duplicate(dummy_npc) Dien#171_os_1 4_F_DIENE
1@os_b,201,49,3 duplicate(dummy_npc) Cotnes#171_os_1 4_F_COATNEIS
1@os_b,203,51,0 duplicate(dummy_npc) Ridsh#171_os_1 4_F_LEEDSH
1@os_b,199,56,5 duplicate(dummy_npc) #171_sos_dummy_0 20355
1@os_b,202,56,3 duplicate(dummy_npc) #171_sos_dummy_1 20357
1@os_b,198,53,3 duplicate(dummy_npc) #171_sos_dummy_2 20355
1@os_b,200,54,4 duplicate(dummy_npc) #171_sos_dummy_3 20361
1@os_b,203,54,5 duplicate(dummy_npc) #171_sos_dummy_4 20357
1@os_b,201,52,3 duplicate(dummy_npc) #171_sos_dummy_5 20363
1@os_b,144,221,5 duplicate(dummy_npc) #171_sos_dummy_6 20363
1@os_b,148,221,3 duplicate(dummy_npc) #171_sos_dummy_7 20365
1@os_b,200,276,5 duplicate(dummy_npc) #171_sos_dummy_8 20361
1@os_b,207,275,3 duplicate(dummy_npc) #171_sos_dummy_9 20363
1@os_b,205,258,3 duplicate(dummy_npc) #171_sos_dummy_10 20365
1@os_b,213,257,2 duplicate(dummy_npc) #171_sos_dummy_11 20357
1@os_b,231,274,5 duplicate(dummy_npc) #171_sos_dummy_12 20361
1@os_b,234,276,5 duplicate(dummy_npc) #171_sos_dummy_13 20365
1@os_b,244,275,3 duplicate(dummy_npc) #171_sos_dummy_14 20361
1@os_b,242,276,3 duplicate(dummy_npc) #171_sos_dummy_15 20365
1@os_b,253,286,5 duplicate(dummy_npc) #171_sos_dummy_16 20363
1@os_b,265,284,3 duplicate(dummy_npc) #171_sos_dummy_17 20355
1@os_b,252,302,5 duplicate(dummy_npc) #171_sos_dummy_18 20363
1@os_b,251,300,5 duplicate(dummy_npc) #171_sos_dummy_19 20361
1@os_b,61,263,3 duplicate(dummy_npc) #171_sos_dummy_20 20365
1@os_b,264,267,3 duplicate(dummy_npc) #171_sos_dummy_21 20361
1@os_b,263,262,3 duplicate(dummy_npc) #171_sos_dummy_22 20363
1@os_b,192,276,5 duplicate(dummy_npc) #171_sos_dummy_23 20365
1@os_b,194,250,5 duplicate(dummy_npc) #171_sos_dummy_24 20355
1@os_b,196,251,3 duplicate(dummy_npc) #171_sos_dummy_25 20363
1@os_b,197,250,3 duplicate(dummy_npc) #171_sos_dummy_26 20357
1@os_b,124,230,5 duplicate(dummy_npc) #171_sos_dummy_27 20365
1@os_b,126,232,5 duplicate(dummy_npc) #171_sos_dummy_28 20365
1@os_b,128,231,5 duplicate(dummy_npc) #171_sos_dummy_29 20361
1@os_b,134,230,3 duplicate(dummy_npc) #171_sos_dummy_30 20363

View File

@@ -66,8 +66,8 @@ iz_int04,51,30,0 duplicate(iz_int#intro_evt02) iz_int04#intro_evt02 HIDDEN_WARP_
//== Wounded Swordsman (iz_int) =================================
iz_int,56,32,3 script Wounded Swordsman#intro_npc01_iz_int 4_TOWER_01,5,5,{
npctalk "Oh...", "", bc_self;
cloakonnpc strnpcinfo(0), getcharid(0);
cloakoffnpc "Wounded Swordsman#intro_npc02_" + strnpcinfo(4), getcharid(0);
cloakonnpcself();
cloakoffnpcself( "Wounded Swordsman#intro_npc02_" + strnpcinfo(4) );
end;
OnTouch:
@@ -283,7 +283,7 @@ int_land,73,100,3 script Lumin#new_ship 4_M_NOV_RUMIN,{
mes "[Lumin]";
mes "Yes.";
next;
cloakonnpc strnpcinfo(0), getcharid(0);
cloakonnpcself();
cutin "fly_trock.bmp",2;
mes "[Captain Carocc]";
mes "Oh boy.";
@@ -307,7 +307,7 @@ int_land,73,100,3 script Lumin#new_ship 4_M_NOV_RUMIN,{
mes ".....";
mes "....So?";
next;
cloakonnpc strnpcinfo(0), getcharid(0);
cloakonnpcself();
mes "- Lu just walked away with a cynical look on his face.";
next;
cutin "fly_trock.bmp",2;

View File

@@ -0,0 +1,65 @@
//===== rAthena Script =======================================
//= Mapflag: Disable renewal level penalty.
//===== Description: =========================================
//= The file groups the 'norenewalexppenalty' and 'norenewaldroppenalty' mapflags.
//===== Additional Comments: =================================
//= 1.0 Added illusions dungeons maps. [Capuche]
//============================================================
//============================================================
// Illusion of Moonlight
//============================================================
pay_d03_i mapflag norenewalexppenalty
pay_d03_i mapflag norenewaldroppenalty
//============================================================
// Illusion of Vampire
//============================================================
gef_d01_i mapflag norenewalexppenalty
gef_d01_i mapflag norenewaldroppenalty
//============================================================
// Illusion of Frozen
//============================================================
ice_d03_i mapflag norenewalexppenalty
ice_d03_i mapflag norenewaldroppenalty
//============================================================
// Illusion of old Archery
//============================================================
tur_d03_i mapflag norenewalexppenalty
tur_d03_i mapflag norenewaldroppenalty
tur_d04_i mapflag norenewalexppenalty
tur_d04_i mapflag norenewaldroppenalty
//============================================================
// Illusion of Teddy Bear
//============================================================
ein_d02_i mapflag norenewalexppenalty
ein_d02_i mapflag norenewaldroppenalty
//============================================================
// Illusion of Twins
//============================================================
ant_d02_i mapflag norenewalexppenalty
ant_d02_i mapflag norenewaldroppenalty
//============================================================
// Illusion of Luanda
//============================================================
com_d02_i mapflag norenewalexppenalty
com_d02_i mapflag norenewaldroppenalty
//============================================================
// Illusion of Labyrinth
//============================================================
prt_mz03_i mapflag norenewalexppenalty
prt_mz03_i mapflag norenewaldroppenalty
//============================================================
// Illusion of Underwater
//============================================================
iz_d04_i mapflag norenewalexppenalty
iz_d04_i mapflag norenewaldroppenalty
iz_d05_i mapflag norenewalexppenalty
iz_d05_i mapflag norenewaldroppenalty

View File

@@ -45,26 +45,32 @@ OnInit:
mes "Hi!";
mes "What did you come to see?";
next;
switch ( select( "Buy Ammunition", "Cartridge Exchange", "Sell Items", "Cancel" )) {
switch ( select( "Buy Weapons", "Buy Ammunition", "Cartridge Exchange", "Sell Items", "Cancel" )) {
case 1:
mes "[Ammunition Merchant]";
mes "I will prepare the weapon.";
close2;
callshop "Weapons_Gunslinger", 1;
break;
case 2:
mes "[Ammunition Merchant]";
mes "I will start preparing the ammunition.";
close2;
callshop "Ammunition_Gunslinger", 1;
break;
case 2:
case 3:
mes "[Ammunition Merchant]";
mes "I will start preparing ammunition cartridges!";
close2;
callshop "Box_Exchange_Gunslinger", 1;
break;
case 3:
case 4:
mes "[Ammunition Merchant]";
mes "What would you like to sell?";
close2;
callshop "Selling_Items", 2;
break;
case 4:
case 5:
mes "[Ammunition Merchant]";
mes "You can take a look at other things more calmly.";
close;
@@ -188,6 +194,7 @@ OnInit:
- marketshop Arrow_Archer HIDDEN_NPC,1750:-1:-1,1770:3:-1,1751:5:-1,1752:5:-1,1754:5:-1,1755:5:-1,1756:5:-1,1757:5:-1,1767:5:-1,1762:5:-1,1065:50:-1,7940:100:-1
//= Gunslinger
- shop Weapons_Gunslinger -1,13120:-1,13122:-1,13189:-1,13195:-1,13192:-1,13193:-1,13194:-1,13197:-1,13198:-1,28200:-1,28201:-1
- marketshop Ammunition_Gunslinger HIDDEN_NPC,13200:-1:-1,13221:-1:-1,13228:-1:-1,13229:-1:-1,13230:-1:-1,13231:-1:-1,13232:-1:-1,13222:-1:-1,13215:-1:-1,13216:-1:-1,13217:-1:-1,13218:-1:-1,13219:-1:-1,13220:-1:-1,7663:-1:-1,7665:15:-1,7664:-1:-1,25187:-1:-1,1000564:-1:-1
@@ -195,7 +202,8 @@ OnInit:
- marketshop Weapons_Ninja HIDDEN_NPC,1220001:-1:-1,1220002:-1:-1,1220003:30:-1,1220004:-1:-1,13258:-1:-1,13257:-1:-1,13255:-1:-1,13256:-1:-1,13259:-1:-1,13294:-1:-1,6512:-1:-1,6513:-1:-1,6514:-1:-1,13250:-1:-1,13251:-1:-1,13252:-1:-1,13253:-1:-1,13254:-1:-1,7521:-1:-1,7522:-1:-1,7523:-1:-1,7524:-1:-1,1000565:-1:-1,1000566:-1:-1,1000567:-1:-1,1000568:-1:-1,1000569:-1:-1
//= Merchant
- marketshop Weapons_Mechanic HIDDEN_NPC,2139:-1:-1,2800:-1:-1,2801:-1:-1,2802:-1:-1,2803:-1:-1,2805:-1:-1,2806:-1:-1,6186:-1:-1,2808:-1:-1,2807:-1:-1
- shop Weapons_Mechanic -1,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2805:-1,2806:-1,6186:-1,2808:-1,2807:-1
- marketshop Ammunition_Mechanic HIDDEN_NPC,18000:-1:-1,18003:-1:-1,18001:-1:-1,18002:-1:-1,18004:-1:-1,18005:-1:-1,18006:-1:-1,18007:-1:-1,18008:-1:-1,6145:-1:-1,6146:-1:-1,12394:-1:-1,12393:-1:-1,12392:-1:-1,6147:-1:-1,23277:-1:-1,100158:-1:-1,2804:-1:-1,2809:-1:-1,2810:-1:-1
//= Talisman

View File

@@ -50,3 +50,6 @@ Footer:
- Path: npc/re/merchants/barters/Extended_Ammunition.yml
- 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/refine.yml
- Path: npc/re/merchants/barters/enchantgrade.yml

View File

@@ -0,0 +1,110 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Barter Database
###########################################################################
#
# Barter Settings
#
###########################################################################
# - Name NPC name.
# Map Map name. (Default: not on a map)
# X Map x coordinate. (Default: 0)
# Y Map y coordinate. (Default: 0)
# Direction Direction the NPC is looking. (Default: North)
# Sprite Sprite name of the NPC. (Default: FakeNpc)
# Items: List of sold items.
# - Index Index of the item inside the shop. (0-...)
# Maximum index depends on client.
# Item Aegis name of the item.
# Stock Amount of item in stock. 0 means unlimited. (Default: 0)
# Zeny Cost of them item in Zeny. (Default: 0)
# RequiredItems: List of required items (Optional)
# - Index Index of the required item. (0-4)
# Item Aegis name of required item.
# Amount Amount of required item. (Default: 1)
# Refine Refine level of required item. (Default: 0)
###########################################################################
Header:
Type: BARTER_DB
Version: 1
Body:
###########################################################################
##= Enchant Grade Exchange
###########################################################################
- Name: EnchantGradeExchange
Items:
- Index: 0
Item: Etel_Stone
Zeny: 100000
RequiredItems:
- Index: 0
Item: Etel_Dust
Amount: 5
- Index: 1
Item: Blessed_Etel_Dust
Zeny: 100000
RequiredItems:
- Index: 0
Item: Etel_Dust
Amount: 5
- Index: 1
Item: Blacksmith_Blessing
Amount: 1
- Index: 2
Item: Etel_Skyblue_Jewel
Zeny: 100000
RequiredItems:
- Index: 0
Item: Etel_Stone
Amount: 3
- Index: 1
Item: Skyblue_Jewel
Amount: 1
- Index: 3
Item: Etel_Topaz
Zeny: 200000
RequiredItems:
- Index: 0
Item: Etel_Stone
Amount: 6
- Index: 1
Item: Golden_Jewel
Amount: 1
- Index: 4
Item: Etel_Violet_Jewel
Zeny: 300000
RequiredItems:
- Index: 0
Item: Etel_Stone
Amount: 10
- Index: 1
Item: Violet_Jewel
Amount: 1
- Index: 5
Item: Etel_Amber
Zeny: 300000
RequiredItems:
- Index: 0
Item: Etel_Stone
Amount: 15
- Index: 1
Item: Amber
Amount: 1

View File

@@ -47,7 +47,7 @@ Header:
# Related to Noblesse Shop
Body:
- Name: shop_ext161_JOB_RUNE_KNIGHT
- Name: shop_ext161_JOB_GUILLOTINE_CROSS
Items:
- Index: 0
Item: Noblesse_Attack_Ring
@@ -819,7 +819,7 @@ Body:
- Index: 0
Item: TokenOfHonor
Amount: 10
- Name: shop_ext161_JOB_STAR_EMPEROR
- Name: shop_ext161_JOB_MECHANIC
Items:
- Index: 0
Item: Noblesse_Attack_Ring

View File

@@ -55,7 +55,7 @@ Body:
- Index: 0
Item: Swz_Honor_Token
Amount: 1
- Name: shop_ext162_JOB_RUNE_KNIGHT
- Name: shop_ext162_JOB_GUILLOTINE_CROSS
Items:
- Index: 0
Item: Imperial_Attack_Ring
@@ -1235,7 +1235,7 @@ Body:
- Index: 0
Item: Swz_Honor_Token
Amount: 5
- Name: shop_ext162_JOB_STAR_EMPEROR
- Name: shop_ext162_JOB_MECHANIC
Items:
- Index: 0
Item: Imperial_Attack_Ring

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,222 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################
# Barter Database
###########################################################################
#
# Barter Settings
#
###########################################################################
# - Name NPC name.
# Map Map name. (Default: not on a map)
# X Map x coordinate. (Default: 0)
# Y Map y coordinate. (Default: 0)
# Direction Direction the NPC is looking. (Default: North)
# Sprite Sprite name of the NPC. (Default: FakeNpc)
# Items: List of sold items.
# - Index Index of the item inside the shop. (0-...)
# Maximum index depends on client.
# Item Aegis name of the item.
# Stock Amount of item in stock. 0 means unlimited. (Default: 0)
# Zeny Cost of them item in Zeny. (Default: 0)
# RequiredItems: List of required items (Optional)
# - Index Index of the required item. (0-4)
# Item Aegis name of required item.
# Amount Amount of required item. (Default: 1)
# Refine Refine level of required item. (Default: 0)
###########################################################################
Header:
Type: BARTER_DB
Version: 1
Body:
- Name: barter_refine_1
Items:
- Index: 0
Item: Oridecon
RequiredItems:
- Index: 0
Item: Oridecon_Stone
Amount: 5
- Index: 1
Item: Elunium
RequiredItems:
- Index: 0
Item: Elunium_Stone
Amount: 5
- Index: 2
Item: Bradium
Zeny: 50000
RequiredItems:
- Index: 0
Item: Oridecon
Amount: 3
- Index: 3
Item: Carnium
Zeny: 50000
RequiredItems:
- Index: 0
Item: Elunium
Amount: 3
- Index: 4
Item: Carnium
Zeny: 50000
RequiredItems:
- Index: 0
Item: Purified_Bradium
- Name: barter_refine_2
Items:
- Index: 0
Item: Ethernium
Zeny: 10000
RequiredItems:
- Index: 0
Item: Etel_Dust
- Index: 1
Item: Elunium
- Index: 1
Item: Etherdeocon
Zeny: 10000
RequiredItems:
- Index: 0
Item: Etel_Dust
- Index: 1
Item: Oridecon
- Index: 2
Item: Etel_Bradium
Zeny: 50000
RequiredItems:
- Index: 0
Item: Etel_Dust
Amount: 3
- Index: 1
Item: Bradium
- Index: 3
Item: Etel_Carnium
Zeny: 50000
RequiredItems:
- Index: 0
Item: Etel_Dust
Amount: 3
- Index: 1
Item: Carnium
- Index: 4
Item: Enriched_Ethernium
Zeny: 20000
RequiredItems:
- Index: 0
Item: Etel_Dust
Amount: 2
- Index: 1
Item: Enriched_Elunium
- Index: 5
Item: Enriched_Etherdeocon
Zeny: 20000
RequiredItems:
- Index: 0
Item: Etel_Dust
Amount: 2
- Index: 1
Item: Enriched_Oridecon
- Index: 6
Item: HD_Ethernium
Zeny: 50000
RequiredItems:
- Index: 0
Item: Etel_Dust
Amount: 3
- Index: 1
Item: HD_Elunium
- Index: 7
Item: HD_Etherdeocon
Zeny: 50000
RequiredItems:
- Index: 0
Item: Etel_Dust
Amount: 3
- Index: 1
Item: HD_Oridecon
- Index: 8
Item: HD_Ethernium
Zeny: 50000
RequiredItems:
- Index: 0
Item: Etel_Dust
Amount: 3
- Index: 1
Item: LI_HD_Elunium
- Index: 9
Item: HD_Etherdeocon
Zeny: 50000
RequiredItems:
- Index: 0
Item: Etel_Dust
Amount: 3
- Index: 1
Item: LI_HD_Oridecon
- Index: 10
Item: HD_Etel_Bradium
Zeny: 50000
RequiredItems:
- Index: 0
Item: Etel_Dust
Amount: 3
- Index: 1
Item: HD_Bradium
- Index: 11
Item: HD_Etel_Carnium
Zeny: 50000
RequiredItems:
- Index: 0
Item: Etel_Dust
Amount: 3
- Index: 1
Item: HD_Carnium
- Index: 12
Item: HD_Etel_Bradium
Zeny: 50000
RequiredItems:
- Index: 0
Item: Etel_Dust
Amount: 3
- Index: 1
Item: LI_HD_Bradium
- Index: 13
Item: HD_Etel_Carnium
Zeny: 50000
RequiredItems:
- Index: 0
Item: Etel_Dust
Amount: 3
- Index: 1
Item: LI_HD_Carnium
- Name: barter_refine_3
Items:
- Index: 0
Item: Shadowdecon
RequiredItems:
- Index: 0
Item: Shadowdecon_Ore
Amount: 20
- Index: 1
Item: Zelunium
RequiredItems:
- Index: 0
Item: Zelunium_Ore
Amount: 20

View File

@@ -3,15 +3,15 @@
//===== Description: =========================================
//= [Walkthrough Conversion]
//= Illusion series related merchants and enchanters
//===== Changelogs: ==========================================
//= 1.0 Initial release [crazyarashi]
//===== Changelog: ===========================================
//= 1.0 Initial release of Illusion of Moonlight [crazyarashi]
//= 1.1 Cleanup and improvements [Everade]
//= 1.2 Added Illusion of Vampire enchanter [Capuche]
//============================================================
//============================================================
//= Illusion of Moonlight
//============================================================
pay_d03_i,160,45,3 script Gemcutter#ilp20 4_TOWER_17,3,3,{
mes "[ Gemcutter ]";
mes "Do you have business with me?";
@@ -248,3 +248,368 @@ OnTouch:
npctalk "What kind of place is this?", "", bc_self;
end;
}
//============================================================
//= Illusion of Vampire
//============================================================
gef_dun01,139,228,3 script Great Merchant#illgef 4_M_HUMERCHANT,{
if (checkweight(501,1) == 0 || (MaxWeight - Weight) < 1000) {
mes "[Great Merchant]";
mes "You don't seem to be able to carry any more stuff. Why don't you lighten your bag?";
close;
}
disable_items;
mes "[Great Merchant]";
mes "Adventurer, do you have ^0000cdIllusion Stones^000000? If you have a ^0000cdweapon, a piece armor^000000, or ^0000cdan accessory at Refining Level 9 or higher^000000, ";
mes "then I can exchange it for something better at the cost of some Illusion Stones and other materials.";
next;
mes "[Great Merchant]";
mes "Check the ^0000cdcatalog^000000 for the available equipment and necessary materials.";
next;
mes "[Great Merchant]";
mes "So, what do you want?";
next;
switch( select( "Weapon exchange (5 kinds)", "Armor exchange (1 kind)", "Accessory exchange (2 kinds)", "Check the catalog.", "What are Illusion Stones?", "Can I refine the equipment I get in exchange for my Illusion Stones?" ) ) {
case 1:
setarray .@item_req[0], // item equipped aren't required to build the menu color
28022, 25271,80, 25261,20, // Illusion_Infiltrator
28023, 25271,10, 25264,100, // Illusion_Sharpened_Legbone_of_Ghoul
2039, 25271,40, 25261,100, // Illusion_Wizardry_Staff
18149, 25271,50, 25265,100, // Illusion_Ballista
28612, 25271,50, 25262,10; // Illusion_Apocalypse
.@size = getarraysize(.@item_req);
for ( .@i = 0; .@i < .@size; .@i += 5 ) {
if (countitem(.@item_req[.@i+1]) < .@item_req[.@i+2] || countitem(.@item_req[.@i+3]) < .@item_req[.@i+4])
.@menu$ += "^aaaaaa" + getitemname(.@item_req[.@i]) + ".^000000:";
else
.@menu$ += getitemname(.@item_req[.@i]) + ".:";
}
switch( select(.@menu$) ) {
case 1:
mes "[Great Merchant]";
mes "Illusion Infiltrator, huh? That's a good weapon. Dreadful name, though. Let's see what you've got.";
callsub( S_WeaponArmor, 28022, // Illusion_Infiltrator
EQI_HAND_R,
1266, // Infiltrator_
25271,80, // Illusion Stones
25261,20 // Torn_Diary
);
case 2:
mes "[Great Merchant]";
mes "Illusion Sharpened Legbone of Ghoul. It perfectly fits in this place. Let's see what you've got.";
callsub( S_WeaponArmor, 28023, // Illusion_Sharpened_Legbone_of_Ghoul
EQI_HAND_R,
1260, // Ghoul_Leg
25271,10, // Illusion Stones
25264,100 // NightmareOfLump
);
case 3:
mes "[Great Merchant]";
mes "Illusion Wizardry Staff, huh? *Chuckle* Having that is every mage's dream. Let's see what you've got.";
callsub( S_WeaponArmor, 2039, // Illusion_Wizardry_Staff
EQI_HAND_R,
1473, // Wizardy_Staff
25271,40, // Illusion Stones
25261,100 // SuspiciousMagicCircle
);
case 4:
mes "[Great Merchant]";
mes "Illusion Ballista... I would've loved to have this when, sigh, never mind. Let's see what you've got.";
callsub( S_WeaponArmor, 18149, // Illusion_Ballista
EQI_HAND_R,
1727, // Balistar_
25271,50, // Illusion Stones
25265,100 // Shining_Spore
);
case 5:
mes "[Great Merchant]";
mes "Illusion Book of the Apocalypse, huh? It's been a long time since I heard the story behind this book. Anyway, let's see what you've got.";
callsub( S_WeaponArmor, 28612, // Illusion_Apocalypse
EQI_HAND_R,
1557, // Book_Of_The_Apocalypse
25271,50, // Illusion Stones
25262,10 // Dried_Clover
);
}
case 2:
if (countitem(25271) < 30 || countitem(25263) < 200)
.@menu$ = "^aaaaaa" + getitemname(20840) + ".^000000";
else
.@menu$ = getitemname(20840);
select(.@menu$);
mes "[Great Merchant]";
mes "Illusion Ancient Cape. Someone in this place? *Ahem* Let's see what you've got.";
callsub( S_WeaponArmor, 20840, // Illusion_Ancient_Cape
EQI_GARMENT,
2525, // Cape_Of_Ancient_Lord_
25271,30, // Illusion Stones
25263,200 // Short_Bat_Fur
);
case 3:
setarray .@item_req[0], // item equipped aren't required to build the menu color
28508, 25271,50, 25266,400, // Illusion_Skull_Ring
28509, 25271,50, 25267,400; // Illusion_Ring
.@size = getarraysize(.@item_req);
for ( .@i = 0; .@i < .@size; .@i += 5 ) {
if (countitem(.@item_req[.@i+1]) < .@item_req[.@i+2] || countitem(.@item_req[.@i+3]) < .@item_req[.@i+4])
.@menu$ += "^aaaaaa" + getitemname(.@item_req[.@i]) + ".^000000:";
else
.@menu$ += getitemname(.@item_req[.@i]) + ".:";
}
switch( select(.@menu$) ) {
case 1:
mes "[Great Merchant]";
mes "Illusion Skull Ring. *Chuckle* I remember when I was young, my friends and I wore this ring and played pranks, hah hah, never mind. That was a long time ago. Anyway, let's see what you've got.";
callsub( S_Accessory, 28508, // Illusion_Skull_Ring
2715, // Skul_Ring_
25271,50, // Illusion Stones
25266,400 // Dried_Yggdrasil_Leaf
);
case 2:
mes "[Great Merchant]";
mes "Illusion Ring... It may not look much, but it has an important meaning to me. Anyway, let's see what you've got.";
callsub( S_Accessory, 28509, // Illusion_Ring
2621, // Ring_
25271,50, // Illusion Stones
25267,400 // SuspiciousMagicCircle
);
}
case 4:
while( true ) {
mes "[Great Merchant]";
mes "Do you want to see my catalog? Sure thing.";
next;
switch( select( "Weapons (5 kinds)", "Armor (1 kind)", "Accessory (2 kinds)", "Cancel." ) ) {
case 1:
switch( select( "Illusion Infiltrator", "Illusion Sharpened Legbone of Ghoul", "Illusion Wizardry Staff", "Illusion Ballista", "Illusion Book of the Apocalypse" ) ) {
case 1:
mes "<ITEM>Illusion Infiltrator<INFO>28022</INFO></ITEM>";
mes "***********************************";
mes "Necessary Items";
mes "^0000cd+9 or higher^000000 Infiltrator ^C71585[1]^000000 x1";
mes "Socket Artisan";
mes "<NAVI>: Seiyablem in Prontera<INFO>prt_in,33,70,000,0,</INFO></NAVI>";
mes "80 Illusion Stones";
mes "20 Torn Papers";
break;
case 2:
mes "<ITEM>Illusion Sharpened Legbone of Ghoul<INFO>28023</INFO></ITEM>";
mes "********************************";
mes "Necessary Items";
mes "^0000cd+9 or higher^000000 Sharpened Legbone of Ghoul x1";
mes "10 Illusion Stones";
mes "100 Clusters of Nightmares";
break;
case 3:
mes "<ITEM>Illusion Wizardry Staff<INFO>2039</INFO></ITEM>";
mes "********************************";
mes "Necessary Items";
mes "^0000cd+9 or higher^000000 Wizardry Staff x1";
mes "40 Illusion Stones";
mes "100 Suspicious Pentacles";
break;
case 4:
mes "<ITEM>Illusion Ballista<INFO>18149</INFO></ITEM>";
mes "*************************";
mes "Necessary Items";
mes "^0000cd+9 or higher^000000 Ballista ^C71585[1]^000000 x1";
mes "Socket Artisan";
mes "<NAVI>: Seiyablem in Prontera<INFO>prt_in,33,70,000,0,</INFO></NAVI>";
mes "50 Illusion Stones";
mes "100 Shining Spores";
break;
case 5:
mes "<ITEM>Illusion Book of the Apocalypse<INFO>28612</INFO></ITEM>";
mes "***********************";
mes "Necessary Items";
mes "^0000cd+9 or higher^000000 Book of the Apocalypse x1";
mes "50 Illusion Stones";
mes "10 Well-dried Clovers";
break;
}
break;
case 2:
select("Illusion Ancient Cape");
mes "<ITEM>Illusion Ancient Cape<INFO>20840</INFO></ITEM>";
mes "*******************************";
mes "Necessary Items";
mes "^0000cd+9 or higher^000000 Ancient Cape ^C71585[1]^000000 x1";
mes "Socket Artisan";
mes "<NAVI>: Leablem in Prontera<INFO>prontera,244,169,000,0,</INFO></NAVI>";
mes "30 Illusion Stones";
mes "200 Short Bat Hairs";
break;
case 3:
switch( select( "Illusion Skull Ring", "Illusion Ring" ) ) {
case 1:
mes "<ITEM>Illusion Skull Ring<INFO>28508</INFO></ITEM>";
mes "*************************";
mes "Necessary Items";
mes "Skull Ring ^C71585[1]^000000 x1";
mes "Socket Artisan";
mes "<NAVI>: Leablem in Prontera<INFO>prontera,244,169,000,0,</INFO></NAVI>";
mes "50 Illusion Stones";
mes "400 Dried Yggdrasil Leaves";
break;
case 2:
mes "<ITEM>Illusion Ring<INFO>28509</INFO></ITEM>";
mes "********************";
mes "Necessary Items";
mes "Ring ^C71585[1]^000000 x1";
mes "50 Illusion Stones";
mes "400 Suspicious Pentacles";
break;
}
break;
case 4:
mes "[Great Merchant]";
mes "Did you find something you like? Let me know if I can help you.";
close;
}
next;
}
case 5:
mes "[Great Merchant]";
mes "What are ^0000cdIllusion Stones^000000, you ask? Well... I don't think anyone knows exactly what they are.";
next;
mes "[Great Merchant]";
mes "I only know they're rare and can only be found in some special places, and I'm here to collect them for my clients.";
next;
mes "[Great Merchant]";
mes "My clients want to figure out what these stones are. They're paying me a lot of money,";
next;
mes "[Great Merchant]";
mes "so I could offer adventurers like you ^0000cdexpensive equipment in exchange for the stones^000000, and still fetch a profit.";
next;
mes "[Great Merchant]";
mes "Bring ^0000cda piece of refined equipment, Illusion Stones^000000, and various materials that are only found in this place. I'll ^0000cdupgrade the equipment, weapon, armor, or accessory?^000000for you.";
next;
mes "[Great Merchant]";
mes "This benefits both of us. Let me know if you're interested in my proposition.";
close;
case 6:
mes "[Great Merchant]";
mes "So, you want to reinforce the equipment you get. You're thorough. I like that!";
next;
mes "[Great Merchant]";
mes "A while ago, an adventurer who passed through this place told me that a chemist in Prontera refines the Illusion equipment in exchange for Illusion Stones.";
next;
mes "[Great Merchant]";
mes "It seems Illusion Stones are a popular topic everywhere. Everyone wants to know about what they are.";
next;
mes "[Great Merchant]";
mes "If you want to refine your equipment, then go to the <NAVI>Illusion Enchanter<INFO>prontera,90,115,000,0,</INFO></NAVI> near the Town Office.";
close;
}
S_WeaponArmor:
.@reward = getarg(0);
.@part = getarg(1);
.@eq_req = getarg(2);
setarray .@items_req[0],
getarg(3),getarg(4),
getarg(5),getarg(6);
next;
donpcevent "Great Merchant#illgef::OnProgress";
sleep2 1000;
.@slots = getitemslots(.@eq_req);
.@eq_req_name$ = getitemname(.@eq_req) + ( .@slots ? "[" + .@slots + "]" : "" );
.@equip_id = getequipid(.@part);
if (.@equip_id == -1) {
mes "[Great Merchant]";
if (.@part == EQI_HAND_R)
mes "Oh, you must have been in a hurry: you forgot to bring a weapon.";
else
mes "Oh, you must have been in a hurry: you forgot to bring an armor.";
mes "Please come back equipped with a ^0000cd+9 " + .@eq_req_name$ + "^000000. I'll wait here.";
close;
}
if (.@equip_id != .@eq_req) {
mes "[Great Merchant]";
mes "Let's see... Mm? What did you bring? Come back equipped with a ^0000cd+9 " + .@eq_req_name$ + "^000000.";
close;
}
if (getequiprefinerycnt(.@part) < 9) {
mes "[Great Merchant]";
if (.@part == EQI_HAND_R)
mes "Um, this one isn't refined enough. I told you the armor has to be ^0000cdrefined to as least +9^000000.";
else
mes "Um, this one isn't refined enough. I told you the weapon has to be ^0000cdrefined to as least +9^000000.";
close;
}
mes "[Great Merchant]";
mes "Ah, you're equipped with the correct item. Now, let me check the other materials.";
next;
if (countitem(.@items_req[0]) < .@items_req[1] || countitem(.@items_req[2]) < .@items_req[3]) {
mes "[Great Merchant]";
mes "Mm, you're so impatient. I told you, I need ^4d4fff" + .@items_req[1] + " " + getitemname(.@items_req[0]) + " and " + .@items_req[3] + " " + getitemname(.@items_req[2]) + "^000000. Check your inventory and bring all of them.";
close;
}
mes "[Great Merchant]";
mes "Alright, you've got everything.";
next;
mes "[Great Merchant]";
mes "Are you ready to make the exchange?";
next;
if (select( "Wait! Let me think.", "Yes, I am." ) == 1) {
mes "[Great Merchant]";
mes "Sure, no problem. Come back when you're ready.";
close;
}
mes "[Great Merchant]";
mes "Alright! Let's see...";
next;
mes "[Great Merchant]";
mes "Here, take this. I hope you'll enjoy. If you find more Illusion Stones, feel free to bring them to me! *Chuckle*";
delequip .@part;
delitem .@items_req[0], .@items_req[1];
delitem .@items_req[2], .@items_req[3];
getitem .@reward,1;
close;
S_Accessory: // the structure is slightly different from above
.@reward = getarg(0);
.@eq_req = getarg(1);
setarray .@items_req[0],
getarg(2),getarg(3),
getarg(4),getarg(5);
next;
donpcevent "Great Merchant#illgef::OnProgress";
sleep2 1000;
.@count = countitem(.@eq_req) - (getequipid(EQI_ACC_L) == .@eq_req) - (getequipid(EQI_ACC_R) == .@eq_req);
if (.@count < 1 || countitem(.@items_req[0]) < .@items_req[1] || countitem(.@items_req[2]) < .@items_req[3]) {
mes "[Great Merchant]";
mes "Mm, you're so impatient. I told you, I need ^4d4fff1 socketed " + getitemname(.@eq_req) + ", " + .@items_req[1] + " " + getitemname(.@items_req[0]) + " and " + .@items_req[3] + " " + getitemname(.@items_req[2]) + "^000000. Check your inventory and bring all of them.";
close;
}
mes "[Great Merchant]";
mes "Alright, you've got everything.";
next;
mes "[Great Merchant]";
mes "Are you ready to make the exchange?";
next;
if (select( "Wait! Let me think.", "Yes, I am." ) == 1) {
mes "[Great Merchant]";
mes "Sure, no problem. Come back when you're ready.";
close;
}
mes "[Great Merchant]";
mes "Alright! Let's see...";
next;
mes "[Great Merchant]";
mes "Here, take this. I hope you'll enjoy. If you find more Illusion Stones, feel free to bring them to me! *Chuckle*";
delitem .@eq_req,1;
delitem .@items_req[0], .@items_req[1];
delitem .@items_req[2], .@items_req[3];
getitem .@reward,1;
close;
OnProgress:
progressbar_npc "000000",1;
end;
}

View File

@@ -0,0 +1,618 @@
//===== rAthena Script =======================================
//= Episode 17.1 - Illusion Enchants
//===== Description: =========================================
//= [Walkthrough Conversion]
//= Illusion related merchants and enchanters
//===== Changelog: ===========================================
//= 1.0 Initial release [crazyarashi]
//= 1.1 Optimizations and cleanup [Everade]
//= 1.2 iRO conversion for 2 NPCs [Capuche, Everade]
//============================================================
sp_cor,152,158,4 script Butterfly Merchant#sp_cor 4_M_ORIENT01,{
mes "[Butterfly Merchant]";
mes "Hey, nice to meet you.";
mes "I'm selling " + getitemname(100903) + ", do you want to buy it?"; // Teleport_Ep17_01
close2;
callshop "shop_sp_cor";
end;
}
sp_cor,136,156,3 script Grace Operator#ext162 4_M_REPAIR,{
mes "[Grace Operator]";
mes "Hello.";
mes "We have ^4d4dffGrace^000000 equipment that can be exchanged for <ITEM>[" + getitemname(25723) + "]<INFO>25723</INFO></ITEM>.";
mes "I will guide you to exchange items according to your job.";
close2;
switch( eaclass() & EAJ_THIRDMASK ) {
case EAJ_RUNE_KNIGHT:
.@str$ = "JOB_RUNE_KNIGHT";
break;
case EAJ_WARLOCK:
.@str$ = "JOB_WARLOCK";
break;
case EAJ_RANGER:
.@str$ = "JOB_RANGER";
break;
case EAJ_ARCH_BISHOP:
.@str$ = "JOB_ARCH_BISHOP";
break;
case EAJ_MECHANIC:
.@str$ = "JOB_MECHANIC";
break;
case EAJ_GUILLOTINE_CROSS:
.@str$ = "JOB_GUILLOTINE_CROSS";
break;
case EAJ_ROYAL_GUARD:
.@str$ = "JOB_ROYAL_GUARD";
break;
case EAJ_SORCERER:
.@str$ = "JOB_SORCERER";
break;
case EAJ_MINSTRELWANDERER:
.@str$ = "JOB_MINSTREL";
break;
case EAJ_SURA:
.@str$ = "JOB_SURA";
break;
case EAJ_GENETIC:
.@str$ = "JOB_GENETIC";
break;
case EAJ_SHADOW_CHASER:
.@str$ = "JOB_SHADOW_CHASER";
break;
default:
switch( Class ) {
case JOB_SUPER_NOVICE_E:
case JOB_SUPER_BABY_E:
case JOB_HYPER_NOVICE:
.@str$ = "JOB_SUPER_NOVICE_E";
break;
case JOB_KAGEROU:
case JOB_OBORO:
case JOB_BABY_KAGEROU:
case JOB_BABY_OBORO:
case JOB_SHINKIRO:
case JOB_SHIRANUI:
.@str$ = "JOB_KAGEROU";
break;
case JOB_REBELLION:
case JOB_BABY_REBELLION:
case JOB_NIGHT_WATCH:
.@str$ = "JOB_REBELLION";
break;
case JOB_SUMMONER:
case JOB_BABY_SUMMONER:
case JOB_SPIRIT_HANDLER:
.@str$ = "JOB_SUMMONER";
break;
case JOB_STAR_EMPEROR:
case JOB_BABY_STAR_EMPEROR:
case JOB_STAR_EMPEROR2:
case JOB_BABY_STAR_EMPEROR2:
case JOB_SKY_EMPEROR:
case JOB_SKY_EMPEROR2:
.@str$ = "JOB_STAR_EMPEROR";
break;
case JOB_SOUL_REAPER:
case JOB_BABY_SOUL_REAPER:
case JOB_SOUL_ASCETIC:
.@str$ = "JOB_SOUL_REAPER";
break;
default:
end;
}
break;
}
callshop "shop_ext171_" + .@str$;
end;
}
// Enchanting Supply Exchange NPC - Official iRO Conversion
sp_cor,108,130,5 script Rebellion#rm171_7 4_F_REBELLION3,{
if (isbegin_quest(17019) == 0) {
mes "[Rebellion]";
mes "The Rebellion is using this building for the moment.";
mes "Along with a few others around it.";
next;
mes "[Rebellion]";
mes "We haven't been this busy for a long time.";
mes "I don't like that we're working with the President and the company, but it still feels good to be busy with something.";
close;
}
if (isbegin_quest(16353) < 2) {
mes "[Rebellion]";
mes "So, you received the message. The Captains are having a meeting on the inside. Captain Elena Volkova must have called you.";
mes "... I was going to call her, but she's already here.";
cloakoffnpcself( "Elena Volkova#rm171_0" );
npctalk "Elena Volkova: Ah, I've been looking for you, Adventurer.", "Elena Volkova#rm171_0", bc_self;
if (isbegin_quest(16352) == 0)
setquest 16352;
close;
}
if (isbegin_quest(16360) < 2) {
mes "[Rebellion]";
mes "The Rebellion is using this building for the moment.";
mes "Along with a few others around it.";
next;
mes "[Rebellion]";
mes "We haven't been this busy for a long time.";
mes "I don't like that we're working with the President and the company, but it still feels good to be busy with something.";
close2;
if (isbegin_quest(16352) == 1)
erasequest 16352;
end;
}
mes "[Rebellion]";
mes "Did you bring Damaged Weapons? Would you like to see that science criminal? He's in there. Want me to call him for you?";
mes "Or do you have business with me? I can exchange Weapon Modification Devices and Armor Modification Modules.";
cloakoffnpcself( "Elyumina#rm171_4" );
npctalk "Rebellion: Hey, criminal. You're wanted.", "Rebellion#rm171_7", bc_self;
npctalk "Elyumina: Alright, alright! I'm coming! You're so pathetic that without me, you'll have to fight with bean bags.", "Elyumina#rm171_4", bc_self;
next;
switch (select("See Elyumina.", "Request Weapon Modification Device.", "Request Armor Modification Module.")) {
case 1:
mes "[Rebellion]";
mes "Okay, enjoy your conversation.";
mes "It took a long time to coax him, but he eventually agreed to modify our weapons and armor. He's pretty good at it, too. He's been working all day, every day.";
close;
case 2:
npctalk "Elyumina: What? If you were just going to keep me standing here like a statue, why did you even call me? You jerks!", "Elyumina#rm171_4", bc_self;
if (checkweight(1201,3) == 0) {
mes "[Rebellion]";
mes "Do you want a Weapon Modification Device? It's 5 <ITEM>[Cor Cores]<INFO>25723</INFO></ITEM> or 1 million Zeny.";
mes "Your bag is full. Please make some room first.";
close;
}
mes "[Rebellion]";
mes "Do you want a Weapon Modification Device? It's 5 <ITEM>[Cor Cores]<INFO>25723</INFO></ITEM> or 1 million Zeny.";
mes "If you want a weapon, you can talk to Elyumina.";
next;
if (select("Request Weapon Modification Device (Physical).", "Request Weapon Modification Device (Magic).") == 1) {
// .@item_id = 23773; // EP17_1_SPC02
.@group = IG_EP17_1_SPC02;
setarray .@ids[0],23776,23777,23778;
} else {
// .@item_id = 23774; // EP17_1_SPC03
.@group = IG_EP17_1_SPC03; // EP17_1_SPC03
setarray .@ids[0],23779,23780,23781;
}
mes "[Rebellion]";
mes "I can randomly give you a <ITEM>[" + getitemname(.@ids[0]) + "]<INFO>" + .@ids[0] + "</INFO></ITEM>,";
mes "<ITEM>[" + getitemname(.@ids[1]) + "]<INFO>" + .@ids[1] + "</INFO></ITEM>,";
mes "or <ITEM>[" + getitemname(.@ids[2]) + "]<INFO>" + .@ids[2] + "</INFO></ITEM>.";
mes "Which one do you have, 5 Cor Cores or 1 million Zeny?";
next;
disable_items;
switch (select("5 Cor Cores", "1 million Zeny")) {
case 1:
if (checkweight(1201,3) == 0) {
mes "[Rebellion]";
mes "There seems to be a problem. Please check if your bag has enough free space, and you have all the exchange materials you need.";
close;
}
if (countitem(25723) < 5) {
mes "[Rebellion]";
mes "You don't have enough Cor Cores. Please check your bag again.";
close;
}
delitem 25723,5; // EP17_1_EVT39
break;
case 2:
if (checkweight(1201,3) == 0) {
mes "[Rebellion]";
mes "There seems to be a problem. Please check if your bag has enough free space, and you have all the exchange materials you need.";
close;
}
if (Zeny < 1000000) {
mes "[Rebellion]";
mes "You don't have enough Zeny. Please check your wallet again.";
close;
}
Zeny -= 1000000;
}
// consumeitem .@item_id;
getgroupitem(.@group);
mes "[Rebellion]";
mes "I gave you the best I had left.";
mes "If you want to refine it, the <NAVI>[Tin Can]<INFO>sp_cor,106,136,0,101,0</INFO></NAVI> next to me can take good care of you.";
close;
case 3:
npctalk "Elyumina: What? If you were just going to keep me standing here like a statue, why did you even call me? You brutes!", "Elyumina#rm171_4", bc_self;
mes "[Rebellion]";
mes "Do you want an Armor Modification Module? It's 30 <ITEM>[Mysterious Components]<INFO>25669</INFO></ITEM> and 5 <ITEM>[Cor Cores]<INFO>25723</INFO></ITEM>.";
if (checkweight(1201,3) == 0) {
mes "Your bag is full. Please make some room first.";
close;
}
mes "The kind you get is randomly decided.";
next;
if (select("Request Armor Modification Module.", "Cancel.") == 2) {
mes "[Rebellion]";
mes "Feel feel to talk to me if you want Armor Modification Modules.";
close;
}
disable_items;
if (countitem(25669) < 30 || countitem(25723) < 5) {
mes "[Rebellion]";
mes "Each Module requires 30 Mysterious Components and 5 Cor Cores. You don't have them all. Please check.";
close;
}
if (checkweight(1201,3) == 0) {
mes "[Rebellion]";
mes "There seems to be a problem. Please check if your bag has enough free space, and you have all the exchange materials you need.";
close;
}
mes "[Rebellion]";
mes "I gave you an Armor Modification Module.";
mes "If you want to refine it, the <NAVI>[Tin Can]<INFO>sp_cor,106,136,0,101,0</INFO></NAVI> next to me can take good care of you.";
delitem 25669,30; // EP17_1_EVT02
delitem 25723,5; // EP17_1_EVT39
// consumeitem 23775; // EP17_1_SPC04
getgroupitem(IG_EP17_1_SPC04);
close;
}
end;
OnInit:
questinfo (QTYPE_QUEST, QMARK_YELLOW, " isbegin_quest(17019) == 1 && isbegin_quest(16352) == 0 ");
end;
}
// Equipment Exchange NPC - Official iRO Conversion
sp_cor,111,130,3 script Elyumina#rm171_4 4_EP17_ELYUMINA,{
if (isbegin_quest(16360) < 2) {
cutin "ep171_elyumina02",0;
mes "[Elyumina]";
mes "Argh! Why do you keep asking for me when I need to focus on my research? I'm busy, alright? If you're bored, go bring me more damaged weapons!";
close2;
cloakonnpcself( "Elyumina#rm171_3" );
cutin "",255;
end;
}
if (checkweight(28136,2) == 0) {
cutin "ep171_elyumina03",0;
mes "[Elyumina]";
mes "Didn't you come for weapons or armor? Your bag is full. I don't have time to wait for you while you rummage through your bag. Come back later.";
next;
mes " - Your bag is full. Please make some room, and then talk to me again. -";
close3;
}
cutin "ep171_elyumina01",0;
mes "[Elyumina]";
mes "What is it so important that you had to interrupt my research? This had better be important.";
next;
cutin "",255;
switch (select("Request OS Weapon.", "Request Illusion Armor.")) {
case 1:
cutin "ep171_elyumina01",0;
mes "[Elyumina]";
mes "OS weapons? I'll handle that if you bring me 1 <ITEM>[Damaged Weapon]<INFO>25668</INFO></ITEM> and 50 <ITEM>[Mysterious Components]<INFO>25669</INFO></ITEM>.";
mes "I'll give you whatever kind I want to give you, among the ones I have. Why should I let you pick?";
next;
cutin "",255;
if (select("Exchange OS Weapon.", "Check the available list.") == 2) {
cutin "ep171_elyumina03",0;
mes "[Elyumina]";
mes "Tsk, tsk. I said everything I make is good. Do you really have to choose? Alright, then listen up.";
next;
mes "[Elyumina]";
mes "Sword: <ITEM>[Cannon Rapier-OS]<INFO>13493</INFO></ITEM>";
mes "Two-handed Sword: <ITEM>[Beam Claymore-OS]<INFO>21047</INFO></ITEM>";
mes "Staff: <ITEM>[Rutilus Stick-OS]<INFO>26151</INFO></ITEM>";
mes "Book: <ITEM>[Circuit Board-OS]<INFO>28629</INFO></ITEM>";
mes "Axe: <ITEM>[Blasti-OS]<INFO>28136</INFO></ITEM>";
mes "Mace: <ITEM>[Saphir Hall-OS]<INFO>16088</INFO></ITEM>";
mes "Bow: <ITEM>[Virtual Bow-OS]<INFO>18178</INFO></ITEM>";
mes "Crossbow: <ITEM>[MH-P89-OS]<INFO>18179</INFO></ITEM>";
mes "Katar: <ITEM>[Meuchler-OS]<INFO>28038</INFO></ITEM>";
mes "Knuckle: <ITEM>[Burning Knuckle-OS]<INFO>1862</INFO></ITEM>";
mes "Sniper Rifle: <ITEM>[HR-S55-OS]<INFO>28253</INFO></ITEM>";
mes "Dagger: <ITEM>[Kuroiro-OS]<INFO>28755</INFO></ITEM>";
mes "Bow: <ITEM>[AC-B44-OS]<INFO>18180</INFO></ITEM>";
mes "Lance: <ITEM>[Boost Lance-OS]<INFO>32019</INFO></ITEM>";
mes "Mace: <ITEM>[Ultio-OS]<INFO>16089</INFO></ITEM>";
close3;
}
disable_items;
if (countitem(25668) < 1 || countitem(25669) < 50) {
cutin "ep171_elyumina03",0;
mes "[Elyumina]";
mes "I told you, bring me 1 Damaged Weapon and 50 Mysterious Components. You should listen when people talk.";
close3;
}
if (checkweight(28136,2) == 0) {
cutin "ep171_elyumina03",0;
mes "[Elyumina]";
mes "... What the? There's a problem.";
mes "Not on my end, of course. This is on you. Check if your bag is full or you have all the materials you need.";
close3;
}
cutin "ep171_elyumina04",0;
mes "[Elyumina]";
mes "There. If you want another, then bring me more Damaged Weapons and Mysterious Components.";
mes "I'm locked up in here, fixing toys, because of you. You can deal with this, right?";
delitem 25668,1; // EP17_1_EVT01
delitem 25669,50; // EP17_1_EVT02
// consumeitem 23772; // EP17_1_SPC01
getgroupitem(IG_EP17_1_SPC01);
close3;
case 2:
cutin "ep171_elyumina04",0;
mes "[Elyumina]";
mes "If you want Illusion armor, bring me 50 <ITEM>[Cor Cores]<INFO>25723</INFO></ITEM>. I'll give you a piece.";
mes "Let's see... Ooh, when did I make so many varieties? Alright, I feel generous. What do you want?";
next;
cutin "",255;
switch (select("Illusion Armor", "Illusion Engine Wing", "Illusion Leg", "Illusion Booster", "Illusion Battle Chip")) {
case 1:
setarray .@item[0],15376,15377;
break;
case 2:
setarray .@item[0],20933,20934;
break;
case 3:
setarray .@item[0],22196,22197;
break;
case 4:
setarray .@item[0],32207,32208;
break;
case 5:
setarray .@item[0],32209,32210;
break;
}
cutin "ep171_elyumina01",0;
mes "[Elyumina]";
mes "<ITEM>[" + getitemname(.@item[0]) + "]<INFO>" + .@item[0] + "</INFO></ITEM>";
mes "<ITEM>[" + getitemname(.@item[1]) + "]<INFO>" + .@item[1] + "</INFO></ITEM>";
mes "Which one?";
next;
cutin "",255;
.@id = .@item[ select( getitemname(.@item[0]), getitemname(.@item[1]) ) -1 ];
cutin "ep171_elyumina04",0;
mes "[Elyumina]";
mes "Alright, " + getitemname(.@id) + ", right? Do you really want to trade it for 50 Cor Cores?";
next;
cutin "",255;
if (select( "Exchange.", "Do not exchange." ) == 2) {
cutin "ep171_elyumina03",0;
mes "[Elyumina]";
mes "Hey, are you kidding me? Hey, I tried to be nice!";
close3;
}
disable_items;
if (countitem(25723) < 50) {
cutin "ep171_elyumina02",0;
mes "[Elyumina]";
mes "Hey, are you kidding me? You don't have all the Cor Cores! Hey, I tried to be nice!";
enable_items;
close3;
}
cutin "ep171_elyumina04",0;
mes "[Elyumina]";
mes "Here, take this " + getitemname(.@id) + ". I bet it's probably the best armor you've ever had. You really ought to be grateful.";
delitem 25723,50; // EP17_1_EVT390
getitem .@id,1;
enable_items;
close3;
}
end;
OnInit:
cloakonnpc();
end;
}
// Illusion Enchanter - Walkthrough Conversion
sp_cor,106,136,3 script RS26#illusion_enchant 4_SYS_MSG,{
if(!checkweight(1201,1) || (MaxWeight - Weight) < 1000){
mes "You can't proceed with the conversation because you have a large quantity of items.";
mes "Please organize your items and try again.";
close;
}
disable_items;
mes "[RS26]";
mes strcharinfo(0)+".";
mes "Welcome, Welcome!";
next;
switch (select("Explore the devices.:Enchant Illusion Armor.:Enchant Illusion Engine Wing.:Enchant Illusion Leg.:Enchant Illusion Accessory [R]:Enchant Illusion Accessory [L]")) {
case 1:
mes "^0000FF# I'm the latest hologram technology perfected to show natural responses and gestures. #^000000";
next;
mes "[RS26]";
mes "My technology can only be found in future cities. I am RS26, a Regenschirm robotic machine.";
npctalk "Rebellion : Oh, that machine is useless without a module.","Rebellion#171_cor_merchant",bc_self;
next;
mes "[RS26]";
mes "If you bring Illusion equipment with strengthening modules, I will improve them as you desire.";
next;
mes "[RS26]";
mes "Since these modules work with the standard equipment, they will not destroy the items. However, the number of upgrades can vary depending on the equipment.";
next;
mes "[RS26]";
mes "Please come back if you need my help~";
close;
case 2:
.@part = EQI_ARMOR;
.@index = 0;
setarray .@id,15376,15377;
break;
case 3:
.@part = EQI_GARMENT;
.@index = 1;
setarray .@id,20933,20934;
break;
case 4:
.@part = EQI_SHOES;
.@index = 3;
setarray .@id,22196,22197;
break;
case 5:
.@part = EQI_ACC_R;
.@index = 2;
setarray .@id,32207,32209;
break;
case 6:
.@part = EQI_ACC_L;
.@index = 2;
setarray .@id,32208,32210;
break;
}
switch (select("Cancel.:Normal Grade.:Rare Grade.:Unique Grade.:Legendary Grade.")) {
case 1:
mes "[RS26]";
mes "I'm stopping here.";
close;
case 2:
.@min = 25670;
.@max = 25677;
break;
case 3:
.@min = 25678;
.@max = 25692;
break;
case 4:
.@min = 25693;
.@max = 25699;
break;
case 5:
.@min = 25700;
.@max = 25705;
break;
}
.@menu$ = "Cancel.:";
for(.@i = .@min; .@i < (.@max + 1); .@i++){
.@module_id[getarraysize(.@module_id)] = .@i;
.@item_name$ = getitemname(.@i);
.@item_name$ = replacestr(.@item_name$,"Modification Module (","");
.@item_name$ = replacestr(.@item_name$,")","");
.@menu$ += (!countitem(.@i) ? "^AAAAAA":"") + .@item_name$ + (!countitem(.@i) ? "^000000:":":");
}
.@s = select(.@menu$);
switch( .@s ) {
case 1:
mes "[RS26]";
mes "I'm stopping here.";
close;
default:
function module_check;
.@s -= 2;
.@equip_id = getequipid(.@part);
.@refine = getequiprefinerycnt(.@part);
for (.@i = 0; .@i < 4; .@i++)
.@card[.@i] = getequipcardid(.@part,.@i);
copyarray .@check[0],.@card[0],4;
if (!.@equip_id || .@id[0] != .@equip_id && .@id[1] != .@equip_id) {
mes "[RS26]";
mes "The equipment needs to be checked. That thing is not something this device can work with.";
close;
}
.@var$ = module_check(.@module_id[.@s],.@part,.@index);
explode(.@s$,.@var$,",");
switch (atoi(.@s$[0])) {
case 1:
mes "[RS26]";
mes "The module needs to be checked. This device cannot detect it.";
close;
case 2:
mes "[RS26]";
mes "Looks like the equipment you're trying to strengthen is already at it's limit.";
close;
case 3:
mes "[RS26]";
mes "You need to have a module that matches the efficacy to proceed with enhancement.";
close;
case 4:
mes "[RS26]";
mes "The capabilities of this module can be enchanted up to " + .@s$[1] + " " + (atoi(.@s$[1]) > 1 ? "times":"time") +". It seems that the module threshold is already at it's limit.";
close;
case 5:
.@item_name$ = getitemname(.@module_id[.@s]);
.@item_name$ = replacestr(.@item_name$,"Modification Module (","");
.@item_name$ = replacestr(.@item_name$,")","");
mes "[RS26]";
mes "^0000FFYou have selected " + getitemname(.@equip_id) + " " + .@item_name$ + "^000000";
mes "------------------";
mes "The selected module can be enchanted up to ^0000FF" + .@s$[2] + " " + (atoi(.@s$[2]) > 1 ? "times":"time") + "^000000 on the equipment. This equipment is currently enchanted with this module by ^0000FF" + .@s$[1] + ".";
mes "Do you want to proceed?";
next;
if (select("I'll think about it more...:Let's proceed.") == 1) {
mes "[RS26]";
mes "Then, please visit me again when you need my help~";
close;
}
for (.@i = 1; .@i < 4; .@i++) {
if (.@card[.@i] == 0) {
.@augment_slot = .@i;
break;
}
}
.@card[.@augment_slot] = atoi(.@s$[3]);
delitem .@module_id[.@s],1;
if (callfunc("F_IsEquipIDHack", .@part, .@equip_id) || callfunc("F_IsEquipRefineHack", .@part, .@refine) || callfunc("F_IsEquipCardHack", .@part, .@check[0], .@check[1], .@check[2], .@check[3]))
end;
specialeffect2 EF_REPAIRWEAPON;
delequip .@part;
getitem2 .@equip_id,1,1,.@refine,0,.@card[0],.@card[1],.@card[2],.@card[3];
mes "[RS26]";
mes "Attempting to upgrade the slot ^990000" + .@augment_slot + "^000000 of the equipment.";
close;
}
}
OnInit:
setarray .module$,
"25670:29527:3,25671:29528:3,25687:29534:2,25688:29535:2,25689:29536:2,25693:29540:1",
"25670:29527:3,25671:29528:3,25690:29537:2,25691:29538:2,25692:29539:2,25695:29542:1",
"25672:4742:3,25673:4752:3,25674:4702:3,25675:4732:3,25676:4712:3,25677:4722:3,25678:29529:2,25679:29532:2,25680:4826:1,25681:4881:1,25682:4866:1,25683:4836:1,25696:29543:1,25697:29544:1,25698:29545:1,25699:29546:1",
"25670:29527:3,25671:29528:3,25684:29531:2,25685:29530:2,25686:29533:2,25694:29541:1",
"25700:29547,25701:29548,25702:29549,25703:29550,25704:29551,25705:29552";
end;
function module_check {
if(!countitem(getarg(0)))
return "1";
for (.@i = 0; .@i < 4; .@i++)
.@card[.@i] = getequipcardid(getarg(1),.@i);
if(.@card[3]) return "2";
explode(.@T$,.module$[getarg(2)],",");
if(getarg(0) >= 25700 && getarg(0) <= 25705){
explode(.@TT$,.module$[4],",");
for (.@i = 0; .@i < getarraysize(.@TT$); .@i++) {
explode(.@module$,.@TT$[.@i],":");
if(getarg(0) == atoi(.@module$[0]))
.@enchant_id = atoi(.@module$[1]);
.@module = atoi(.@module$[0]);
.@enchant = atoi(.@module$[1]);
for (.@j = 1; .@j < 4; .@j++) {
if (.@card[.@j] == .@enchant)
return "4,1";
}
}
.@max = 1;
} else {
for (.@i = 0; .@i < getarraysize(.@T$); .@i++) {
explode(.@module$,.@T$[.@i],":");
if(getarg(0) == atoi(.@module$[0])){
.@enchant_id = atoi(.@module$[1]);
.@max = atoi(.@module$[2]);
break;
}
}
}
if(!.@enchant_id)
return "3";
for (.@j = 1; .@j < 4; .@j++) {
if (.@card[.@j] == .@enchant_id)
.@count++;
}
if (.@count == .@max)
return "4," + .@max;
return "5," + .@count + "," + .@max + "," + .@enchant_id;
}
}

View File

@@ -0,0 +1,131 @@
//===== rAthena Script =======================================
//= Enchant Grade
//===== Changelogs: ==========================================
//= 1.0 First Version. [JohnnyPlayy]
//= 1.1 Fixed small issues. [Lemongrass]
//= 1.2 Added translation. [Asheraf]
//= 1.3 Added paramarket NPC and warps. [Balfear]
//= 1.4 Translated paramarket NPC. [Lemongrass]
//============================================================
grademk,34,184,4 script Sratos#sratos 4_JP_GARM_H,{
mes "[Sratos]";
mes "Hello, dear customer who walked in, let's hope for a miracle today.";
mes "How can I help you?";
next;
switch( select( "Enhance the equipment's grade.", "Exchange Etel items", "What is Grade Enhancement?" ) ){
case 1:
mes "[Sratos]";
mes "Our customer. You want to enhance the grade of equipment.";
mes "It is not easy to move the magical power of jewels.";
next;
mes "[Sratos]";
mes "Magical power can explode on the spot.";
mes "Then the weapon that will inherit the magical power also explodes!";
next;
switch( select( "I'll still do it!", "I'll think about it." ) ){
case 1:
mes "[Sratos]";
mes "I wish good luck to our courageous customers!";
close2;
enchantgradeui();
end;
case 2:
mes "[Sratos]";
mes "Whenever you have the courage to challenge, please come back.";
close;
}
case 2:
mes "[Sratos]";
mes "These are jewels used to enhance grades.";
mes "Etel Dust, the jewels that will be the base, and if you give me a small fee I'll exchange it for Etel jewels.";
close2;
callshop "EnchantGradeExchange";
end;
case 3:
mes "[Sratos]";
mes "Occasionally, unstable jewels with a lot of pure magical power are found.";
mes "We call these etheric gems, right?";
next;
mes "[Sratos]";
mes "You can transfer the magical power of the etheric gem to other weapons, but of course there is some risk.";
mes "It's delicate, so if you aren't careful, pop! It will explode.";
next;
mes "[Sratos]";
mes "Anyway, if you use this etheric gem, you can enhance the weapon you are using.";
mes "Performance gets better. We call this grade enhancement.";
next;
mes "[Sratos]";
mes "You too, wouldn't you be happy if the weapons you love grow one step further?";
mes "We are the people who assist it. It's a bit risky, though. ahahaha.";
close;
}
OnInit:
setunittitle(getnpcid(0), "<Grade Enhancer>");
end;
}
paramk,34,184,4 script Suribell#suribell 4_F_FRUIT,{
mes "[Suribell]";
mes "May good luck always be with you!";
mes "Welcome to Paramarket's Grade Enhancement Center~";
next;
switch( select( "Enhance the equipment's grade.", "Exchange Etel items", "What is Grade Enhancement?" )) {
case 1:
mes "[Suribell]";
mes "Do you want to unlock the potential of your favorite equipment?";
mes "Explosions may also occur in the process of dealing with magical powers.";
next;
mes "[Suribell]";
mes "Still, if you're trying to enhance your grade... !";
mes "I, Suribell, will do my best!";
next;
switch( select( "I'll still do it!", "I'll think about it." ) ){
case 1:
mes "[Suribell]";
mes "Let's hold hands and have faith! Try clenching your teeth!";
close2;
enchantgradeui();
end;
case 2:
mes "[Suribell]";
mes "Okay! Let's drink a glass of cold water!";
close;
}
case 2:
mes "[Suribell]";
mes "You need etheric gems to enhance grades!";
mes "If you combine Etel Dust and jewels to make it, it is fine! An Etel jewel for adventurers is complete!";
mes "Would you like to combine jewels and Etel Dust?";
close2;
callshop "EnchantGradeExchange";
end;
case 3:
mes "[Suribell]";
mes "Occasionally, unstable jewels with a lot of pure magical power are found.";
mes "I decided to call such gems etheric gems.";
mes "Who? I am Suribell!";
next;
mes "[Suribell]";
mes "The magical power of etheric gems sometimes awakens the hidden potential of equipment.";
mes "We call it grade enhancement because it goes up one tier!";
next;
mes "[Suribell]";
mes "The adventurer may have a potential that is unknown to him.";
mes "There is a risk that it can be destroyed if done wrong, but try it with faith!";
close;
}
OnInit:
setunittitle(getnpcid(0), "<Grade Enhancer>");
end;
}
// = Portals
//============================================================
prontera,50,293,0 warp Grademk_Int 1,1,grademk,13,172
grademk,9,172,0 warp Grademk_Out 1,1,prontera,50,290
paramk,8,171,0 warp grade_in 1,1,paramk,141,64
paramk,145,64,0 warp grade_out 1,1,paramk,11,171

View File

@@ -17,6 +17,7 @@
//= 1.3 Updated to match the latest official script. [Euphy]
//= 1.4 Added correct safe refines. [Haruna]
//= 1.5 Added Refine UI [Atemo, Lemongrass]
//= 1.6 Added Barter exchange npcs [Atemo]
//============================================================
// +11 and above Refiners
@@ -582,3 +583,118 @@ malangdo,224,172,6 script Clink#mal_normal 544,{
mes "What a day!!";
close;
}
// Renewal barter shops
- script refine_barter_init -1,{
end;
OnInit:
if (getbattleflag("feature.barter")) {
unloadnpc "Vurewell";
unloadnpc "Begnahd";
unloadnpc "Sade";
unloadnpc "Kahlamanlith";
unloadnpc "Dilemma";
unloadnpc "Tirehaus";
unloadnpc "Krugg";
unloadnpc "Hakhim";
unloadnpc "Abdula";
unloadnpc "Xenophon";
unloadnpc "Delight";
unloadnpc "Matestein";
unloadnpc "Fruel";
npcshopupdate "market_refine_prt_in",1010,200,999999;
npcshopupdate "market_refine_payon",1010,200,999999;
npcshopupdate "market_refine_morocc_in",1010,200,999999;
npcshopupdate "market_refine_alberta_in",1010,200,999999;
npcshopupdate "market_refine_yuno_in01",1010,200,999999;
npcshopupdate "market_refine_ein_in01",1010,200,999999;
npcshopupdate "market_refine_lhz_in02",1010,200,999999;
npcshopupdate "market_refine_prt_in",1011,1000,999999;
npcshopupdate "market_refine_payon",1011,1000,999999;
npcshopupdate "market_refine_morocc_in",1011,1000,999999;
npcshopupdate "market_refine_alberta_in",1011,1000,999999;
npcshopupdate "market_refine_yuno_in01",1011,1000,999999;
npcshopupdate "market_refine_ein_in01",1011,1000,999999;
npcshopupdate "market_refine_lhz_in02",1011,1000,999999;
}
else {
unloadnpc "market_refine_prt_in";
unloadnpc "market_refine_payon";
unloadnpc "market_refine_morocc_in";
unloadnpc "market_refine_alberta_in";
unloadnpc "market_refine_yuno_in01";
unloadnpc "market_refine_ein_in01";
unloadnpc "market_refine_lhz_in02";
unloadnpc "Dietrich#ns_prt";
unloadnpc "Pauline";
}
end;
}
- marketshop market_refine_prt_in -1,1010:-1:999999,1011:-1:999999
- marketshop market_refine_payon -1,1010:-1:999999,1011:-1:999999
- marketshop market_refine_morocc_in -1,1010:-1:999999,1011:-1:999999
- marketshop market_refine_alberta_in -1,1010:-1:999999,1011:-1:999999
- marketshop market_refine_yuno_in01 -1,1010:-1:999999,1011:-1:999999
- marketshop market_refine_ein_in01 -1,1010:-1:999999,1011:-1:999999
- marketshop market_refine_lhz_in02 -1,1010:-1:999999,1011:-1:999999
prt_in,63,69,3 script Dietrich#ns_prt 4_M_02,{
mes "[" + strnpcinfo(1) + "]";
mes "We sell and exchange various ores used in smelting.";
next;
switch( select( "View basic smelting ores", "View advanced smelting ores", "View Ether smelting ores", "Cancel" ) ) {
case 1:
mes "[" + strnpcinfo(1) + "]";
mes "Phracon and Emveretarcon are available for use in smelting low-level weapons.";
close2;
callshop "market_refine_" + strnpcinfo(4);
end;
case 2:
mes "[" + strnpcinfo(1) + "]";
mes "We are purifying Elunium Stone or Oridecon Stone, or exchanging them with Bradium or Carnium.";
close2;
callshop "barter_refine_1";
end;
case 3:
mes "[" + strnpcinfo(1) + "]";
mes "We add Etel Dust to existing smelting ores and replace them with Ether-bearing smelting ores.";
close2;
callshop "barter_refine_2";
end;
case 4:
mes "[" + strnpcinfo(1) + "]";
mes "If you lack the materials used for smelting, come anytime.";
close;
}
end;
OnInit:
setunittitle getnpcid(0), "<Responsible for smelting products>";
end;
}
payon,137,178,5 duplicate(Dietrich#ns_prt) Hakhim#2 4_M_ORIENT01
morocc_in,72,32,3 duplicate(Dietrich#ns_prt) Abdula#2 4W_M_03
alberta_in,21,63,5 duplicate(Dietrich#ns_prt) Xenophon#ns_albe 4_M_02
yuno_in01,164,27,4 duplicate(Dietrich#ns_prt) Delight#2 4_M_ORIENT01
ein_in01,18,82,5 duplicate(Dietrich#ns_prt) Matestein#2 4_M_02
lhz_in02,281,24,5 duplicate(Dietrich#ns_prt) Fruel#2 4_M_02
// Shadowdecon/Zelunium exchange npcs
prt_in,64,57,3 script Pauline 4_M_02,{
mes "[" + strnpcinfo(1) + "]";
mes "Do you have <ITEM>[Shadowdecon Gemstone]<INFO>25728</INFO></ITEM> or <ITEM>[Zelunium Gemstone]<INFO>25730</INFO></ITEM>?";
mes "We will exchange them for refined products for use as smelting goods.";
close2;
callshop "barter_refine_3";
end;
}
payon,142,179,3 duplicate(Pauline) Jihu 4_M_ORIENT01
morocc_in,64,37,3 duplicate(Pauline) Marik 4W_M_03
alberta_in,24,63,5 duplicate(Pauline) Satana 4_M_02
yuno_in01,164,31,6 duplicate(Pauline) Dimir 4_M_ORIENT01
lhz_in02,275,23,5 duplicate(Pauline) Nemil 4_M_02
ein_in01,30,88,5 duplicate(Pauline) Galan 4_M_02

View File

@@ -125,7 +125,7 @@ morocc,154,55,6 shop Jeweler#moc3 99,730:-1,2613:-1
morocc,171,103,4 shop Item Collector#moc3 85,911:-1,528:-1,919:-1,925:-1
morocc,205,247,2 shop Item Collector#moc4 85,911:-1,528:-1,919:-1,925:-1
morocc,140,90,6 shop Trader#moc6 99,513:-1,513:-1,513:-1,513:-1,513:-1,513:-1
morocc,166,54,2 shop Jeweler#moc4 102,721:-1,723:-1,726:-1,728:-1,729:-1
morocc,166,54,2 shop Jeweler#moc4 102,721:-1,723:-1,726:-1,728:-1,729:-1,1000321:-1
morocc,34,68,0 shop Trader#moc7 93,748:-1
morocc,269,193,4 shop Trader#moc8 89,2609:-1,1516:-1,1522:-1
morocc,256,191,5 shop Trader#moc9 93,2612:-1

View File

@@ -20,11 +20,47 @@
//============================================================
prontera,184,177,6 script Refine Master 851,{
disable_items;
if (countitem(6238) || countitem(6228) || countitem(6229) || countitem(6230) || countitem(6231) || countitem(6456))
set .@bWeaponUp,1;
if (countitem(6239) || countitem(6232) || countitem(6233) || countitem(6234) || countitem(6235) || countitem(6457))
set .@bArmorUp,1;
if (!.@bWeaponUp && !.@bArmorUp) {
setarray .@cert_weapon[0],
6864, // Guarantee_Weapon_19Up
6875, // Guarantee_Weapon_18Up
6874, // Guarantee_Weapon_17Up
6873, // Guarantee_Weapon_16Up
6872, // Guarantee_Weapon_15Up
6871, // Guarantee_Weapon_14Up
6870, // Guarantee_Weapon_13Up
6584, // Guarantee_Weapon_12Up
6238, // Guarantee_Weapon_11Up
6228, // Guarantee_Weapon_9Up
6229, // Guarantee_Weapon_8Up
6230, // Guarantee_Weapon_7Up
6231, // Guarantee_Weapon_6Up
6456; // Guarantee_Weapon_5Up
setarray .@cert_armor[0],
6865, // Guarantee_Armor_19Up
6881, // Guarantee_Armor_18Up
6880, // Guarantee_Armor_17Up
6879, // Guarantee_Armor_16Up
6878, // Guarantee_Armor_15Up
6877, // Guarantee_Armor_14Up
6876, // Guarantee_Armor_13Up
6585, // Guarantee_Armor_12Up
6239, // Guarantee_Armor_11Up
6232, // Guarantee_Armor_9Up
6233, // Guarantee_Armor_8Up
6234, // Guarantee_Armor_7Up
6235, // Guarantee_Armor_6Up
6457; // Guarantee_Armor_5Up
setarray .@cert_level[0],19,18,17,16,15,14,13,12,11,9,8,7,6,5;
.@size_cert = getarraysize(.@cert_weapon);
for ( .@i = 0; .@i < .@size_cert; ++.@i ) {
if (countitem(.@cert_weapon[.@i]) > 0 || countitem(.@cert_armor[.@i]) > 0) {
.@check = 1;
break;
}
}
if (.@check == 0) {
mes "[Refine Master]";
mes "Hello!";
mes "What's up?";
@@ -61,9 +97,10 @@ prontera,184,177,6 script Refine Master 851,{
next;
setarray .@position$[1],"Head upper","Armor","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head middle","Head lower";
setarray .@indices[1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_MID, EQI_HEAD_LOW;
for(set .@i,1; .@i<=10; set .@i,.@i+1)
set .@menu$, .@menu$+((getequipisequiped(.@indices[.@i]))?getequipname(.@indices[.@i]):.@position$[.@i]+"- [Empty]")+":";
set .@part, .@indices[ select(.@menu$) ];
for ( .@i = 1; .@i <= 10; ++.@i )
.@menu$ += (getequipisequiped(.@indices[.@i]) ? getequipname(.@indices[.@i]) : .@position$[.@i] + "- [Empty]") + ":";
.@part = .@indices[ select(.@menu$) ];
if (!getequipisequiped(.@part)) {
mes "[Refine Master]";
mes "You have to equip the item you want to refine.";
@@ -86,10 +123,8 @@ prontera,184,177,6 script Refine Master 851,{
case 2:
case 3:
case 4:
setarray .@tickets[0],6456,6231,6230,6229,6228,6238;
setarray .@levels[0],5,6,7,8,9,11;
set .@type$,"Weapon";
set .@check,.@bWeaponUp;
copyarray .@tickets[0], .@cert_weapon[0], .@size_cert;
.@type$ = "Weapon";
break;
default:
// TODO:
@@ -98,10 +133,8 @@ prontera,184,177,6 script Refine Master 851,{
}else if( .@itemtype == IT_ARMOR ){
switch( getequiparmorlv( .@part ) ){
case 1:
setarray .@tickets[0],6457,6235,6234,6233,6232,6239;
setarray .@levels[0],5,6,7,8,9,11;
set .@type$,"Armor";
set .@check,.@bArmorUp;
copyarray .@tickets[0], .@cert_armor[0], .@size_cert;
.@type$ = "Armor";
break;
default:
// TODO:
@@ -111,7 +144,14 @@ prontera,184,177,6 script Refine Master 851,{
// TODO:
close;
}
if (!.@check) {
.@check = 0;
for ( .@i = 0; .@i < .@size_cert; ++.@i ) {
if (countitem(.@tickets[.@i]) > 0) {
.@check = 1;
break;
}
}
if (.@check == 0) {
emotion ET_THINK;
mes "[Refine Master]";
mes "If you want to refine this ^006400"+.@type$+"^000000, please come along with ^006400"+.@type$+" Refine Ticket^000000.";
@@ -121,12 +161,13 @@ prontera,184,177,6 script Refine Master 851,{
mes "[Refine Master]";
mes "Please choose which ^006400"+.@type$+" Refine Ticket^000000 you want to use.";
next;
set .@menu$,"";
for(set .@i,0; .@i<getarraysize(.@tickets); set .@i,.@i+1)
set .@menu$, .@menu$+getitemname(.@tickets[.@i])+":";
set .@select, select(.@menu$)-1;
set .@ticket_lv, .@levels[.@select];
set .@ticket_id, .@tickets[.@select];
.@menu$ = "";
for ( .@i = 0; .@i < .@size_cert; ++.@i )
.@menu$ += getitemname(.@tickets[.@i]) + ":";
.@select = select(.@menu$)-1;
.@ticket_lv = .@cert_level[.@select];
.@ticket_id = .@tickets[.@select];
if (countitem(.@ticket_id) == 0) {
emotion ET_QUESTION;
mes "[Refine Master]";
@@ -160,25 +201,24 @@ prontera,184,177,6 script Refine Master 851,{
mes "I have my own special way to refine...";
mes ".......ka boom!";
specialeffect EF_SUI_EXPLOSION;
if (countitem(.@ticket_id)) {
delitem .@ticket_id,1;
// anti-hack
if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) ||
callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt) || callfunc("F_IsEquipCardHack", .@part, .@card[0], .@card[1], .@card[2], .@card[3])) {
mes "[Refine Master]";
emotion ET_FRET;
mes "Wait a second...";
mes "Do you think I'm stupid?!";
mes "You switched the item while I wasn't looking! Get out of here!";
close;
}
} else {
if (countitem(.@ticket_id) < 1) {
next;
mes "Error!";
mes "Please report this.";
close;
}
delitem .@ticket_id,1;
// anti-hack
if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) ||
callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt) || callfunc("F_IsEquipCardHack", .@part, .@card[0], .@card[1], .@card[2], .@card[3])) {
mes "[Refine Master]";
emotion ET_FRET;
mes "Wait a second...";
mes "Do you think I'm stupid?!";
mes "You switched the item while I wasn't looking! Get out of here!";
close;
}
successrefitem .@part, .@ticket_lv - getequiprefinerycnt(.@part);
next;
emotion ET_DELIGHT;

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