Compare commits

...

178 Commits

Author SHA1 Message Date
vstumpf
fd1e582156 It kinda works! 2024-07-05 09:07:17 +00:00
vstumpf
920b6a78c5 Merge branch 'refactor/cmake' into refactor/skills 2024-07-05 08:26:47 +00:00
vstumpf
34bdb49db9 Merge remote-tracking branch 'origin/refactor/cmake' into refactor/cmake 2024-07-05 01:02:10 +00:00
vstumpf
f54a204a7d Merge branch 'master' into refactor/cmake 2024-07-05 01:01:11 +00:00
Carlosgrr
529d8fea3d Reverting Magic Wand Quest to request Trunks (#8473)
Fixes #8465
2024-07-04 20:33:14 +02:00
Lemongrass3110
d2cb6c10e1 Fixed packets 0x440 and 0x8cf (#8486)
Follow up to d445497

Fixes #8478

Thanks to @gmragnarok, @LadyNanuia and @Haydrich
2024-07-04 19:29:00 +02:00
Atemo
fccf328a54 Implemented new items up to July 3, 2024 (#8488)
* Sorted the item IDs
* Added prt_mk map in mapcache
2024-07-04 15:27:17 +02:00
Lemongrass3110
25b9126644 Refactored get/set unitdata (#8483)
Fixes #8481

Thanks to @Hyroshima
2024-07-03 17:05:15 +02:00
Lemongrass3110
2206d1a960 Fixed NoNearNPC flag (#8487)
Fixes #8471

Thanks to @xVaan
2024-07-03 16:02:22 +02:00
Atemo
1d8dec4b72 Uncommented quest ID related to illusion investigation (teddy bear) (#8477) 2024-06-30 19:05:43 +02:00
Atemo
995a5d0f60 Corrected barter shop of illusion dungeon (#8472)
Follow-up 5ca7aee79b
Fancy_Flower can't be refined.
2024-06-29 17:08:08 +02:00
Pokye
5ca7aee79b Correction of illusion dungeon's barter shop (#8470) 2024-06-29 15:16:12 +02:00
Vincent Stumpf
73b878db37 Add expanded 4ths to jobmaster (#8267) 2024-06-28 21:39:00 +02:00
Atemo
14a22de993 Added missing clear cutin (#8467)
Corrected encoding of some files
2024-06-28 20:20:49 +02:00
Atemo
0057d862af Initial release of Illusion of Teddy bear (Walkthrough conversion) (#8459)
* Increased MAX_BARTER_REQUIREMENTS to 6
* Fixed #6460
2024-06-28 17:36:29 +02:00
akaineko
82d3b078c3 Fixed rand issue in KO job quest (#8463) 2024-06-28 15:01:15 +02:00
Atemo
88e3eba8cf Updated instance_check_party script command (#8457)
* The command now returns 0 if the party id does not exist
* Fixed #8426

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2024-06-27 18:23:03 +02:00
Lemongrass3110
c8935ef18a Official conversion of lasagna warps (#8464) 2024-06-27 09:16:33 +02:00
Pokye
fa5e642d4d Initial implementation of Shopping Boards (#8453)
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Daegaladh <daegaladh@shadowgames.es>
2024-06-26 20:50:14 +02:00
Daegaladh
549fc3f860 Fixed searchstores and added a map parameter (#8456)
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2024-06-26 20:21:26 +02:00
Playtester
30f8cb1f6e Star Gladiator Miracle Chance (#8460)
- Reduced default chance of Miracle to occur from 0.02% to 0.005%
- Chance of Miracle to occur is now further reduced if AGI is above 46
- Fixes #8445
2024-06-26 11:38:46 +02:00
Atemo
21359386be Exported constants for setdialogalign script command (#8458)
Follow-up eb308dcad2
2024-06-25 17:27:33 +02:00
Playtester
861833bcfa Frost Joke / Scream on Party Members (#8455)
- Base chance of Frost Joke / Scream to cause status changes to party members is now one fourth of the original chance
- Variable duration of Frost Joke when applied to party members is now always 15s
- Fixes #8454
2024-06-22 22:22:44 +02:00
Daegaladh
a0bec6a404 Configs for account names, character names, and passwords minimum length (#8448) 2024-06-21 20:36:21 +02:00
Daegaladh
5123704795 Added player permission script commands (#8450) 2024-06-21 19:12:01 +02:00
Atemo
d344caa08d Implemented NPC_DEADLYCURSE2 and NPC_DEADLYCURSE (#8447)
* Implemented NPC_DEADLYCURSE2
* Splash skill inflicting no damage and activating the status "Deadly_Defeasance" on surrounding target
* Unknown if the duration scale with level. The duration at level 5 is 30s

* Implemented NPC_DEADLYCURSE
* There is not much information on this, assuming it is a single target skill
* Does not deal any damage
* No info on max level, monsters use it level 1
* Duration at level 1 is 15s

* Uncommented NPC_DEADLYCURSE2 in mob_skill_db
2024-06-21 14:48:26 +02:00
Lemongrass3110
1ca634df1d Packet cleanups - const and casts (#8422) 2024-06-20 14:33:47 +02:00
Playtester
5f16a06f2f Renewal Bowling Bash Knockback (#8449)
- Fixed Bowling Bash causing knockback effect twice in renewal (fixes #8435)
2024-06-20 07:59:21 +02:00
Playtester
566ac2078d Guillotine Fist SP Recovery Prevention Cleanup (#8443)
- Unified code for SC_EXTREMITYFIST
  * It stops natural SP recovery for 300s in pre-re
  * It stops natural SP recovery and recovery from items for 3s and shows icon in renewal
- Removed SC_EXTREMITYFIST2 as it's no longer needed
- Fixed an issue that caused a natural SP regen tick to happen right after using Guillotine Fist
- Fixes #8377
2024-06-19 07:53:30 +02:00
eppc0330
d191c2cf2a Item DB corrections / implemented ALL_RAY_OF_PROTECTION (#8394) 2024-06-18 15:08:54 +02:00
Atemo
4555e7c14c Updated max RES/MRES and max RES/MRES ignored (#8442)
* Removed the limit of RES/MRES and remove max_res_mres_reduction battle config
* Added a limit of RES/MRES ignored by items and skills in max_res_mres_ignored battle config
2024-06-18 15:04:37 +02:00
Lemongrass3110
ba5221ef97 Added 4th jobs to ea_job_system.txt (#8440)
Fixes #8431

Thanks to @Pokye
2024-06-17 20:15:54 +02:00
Atemo
ce5de23874 Updated get_bosstype and UMOB_MODE (#8439)
* Updated mob_data::get_bosstype() to use current mob data instead of db data to fix issue when the mode is changed via the setunitdata script command.
* Added unit_refresh in UMOB_MODE to refresh the mini icon near the monster indicating the monster type.
2024-06-17 19:38:00 +02:00
Lemongrass3110
44fbe3940d Fixed pin code changing (#8438)
Fixes #8430

Thanks to @gmragnarok
2024-06-17 19:04:21 +02:00
Lemongrass3110
68f8a4bc7f Fixed a crash with unknown packets (#8437)
Fixes #8432

Thanks to @gmragnarok
2024-06-17 18:30:43 +02:00
Atemo
6451925430 Updated npcspeed, npcwalkto and npcstop script commands (#8354)
* Added the optional parameter <npc name> to npcspeed to change the walking speed of the npc with the said name.
  Usage : npcspeed( <speed value> {,"<npc name>"} );

* Added the optional parameter <npc name> to npcwalkto to move the npc with the said name at the given coordinates.
  Usage : npcwalkto( <x>,<y> {,"<npc name>"} } );

* Added the optional parameters `<npc name>` and `<flag>` to `npcstop` to stop the movement of the npc with the said name with options.
  Usage : `npcstop( {"<npc name>", {"<flag>"}});`

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2024-06-16 14:57:59 +02:00
Playtester
fcf74b0dfc Renewal Simple Defense Formula Flag (#8429)
- Added a flag "SimpleDefense" to mark skills that use the simple defense formula
  * Simple defense: Damage is flat reduced by DEF+DEF2. Res is ignored.
- Dragon Breath / Water now also ignore Res
- Fixes #8419

Special thanks to everyone who helped testing all these skills to confirm this common rule.
2024-06-15 20:28:26 +02:00
Lemongrass3110
8c4d1bb0c6 Fixed returning to char-select
Fixes #8420

Thanks to @gmragnarok and @Beginerxx
2024-06-13 15:24:53 +02:00
Jittapan Pluemsumran
503f9e09f6 Always set all item data in npc_sellist_sub (#6429)
Fixes #6422

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2024-06-13 00:47:04 +02:00
Lemongrass3110
8f9b0b8354 Added configs for instance limitations (#3753)
Fixes #1661

Thanks to @admkakaroto
2024-06-12 23:36:33 +02:00
Playtester
84cdc9cae0 Cannon Ball Skills (P.ATK and Res) (#8415)
- When using Cart Cannon or Arm Cannon, the arrow attack you get from cannon balls is no longer affected by P.ATK
- Cart Cannon and Arm Cannon are no longer reduced by Res
- More consistent naming (PATK -> P.ATK, SMATK -> S.MATK)
- Added a general rule that cannon ball attack is not added to equip attack
- Fixes #8380
2024-06-12 18:59:05 +02:00
Lemongrass3110
34eb4be25b Preparatory cleanup of parties (#8418) 2024-06-12 15:39:24 +02:00
Lemongrass3110
9c9dcc8cab Preparatory cleanup of guilds (#8417) 2024-06-12 14:47:52 +02:00
Lemongrass3110
aaa9890470 Preparatory cleanup of clans (#8416) 2024-06-12 10:03:44 +02:00
Lemongrass3110
6fdaac4a75 Added pincode state tracking (#8412)
Fixes #6595

Thanks to @Danil0v3s
2024-06-11 21:50:16 +02:00
Daegaladh
0d3550e7ea Fixed clif_move to use the correct movement packets (#8405)
* Removed unused ZC_NOTIFY_MOVE (0x86) packet
---------

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2024-06-11 00:03:43 +02:00
Daegaladh
6ca99e7852 Fixed potentially dangerous map_addflooritem calls and related behaviors (#8360)
*Removed potentially dangerous map_additemfloor calls
*Added weight/inventory checks for marry atcommand
*Fixed overweight message for box items
*Fixed inventory space check for box items to match official requirement (the total number of the items the box will give you *r min 10, plus 1)
*Fixed inventory space message for box items
*Fixed pet egg creation not deleting the pet data when failed to add it to the inventory
*Fixed pet egg creation dropping the egg on the floor when failed to add it to the inventory
*Fixed pet equipment dropping on the floor when failed to retrieve the item
*Added a battle configuration to prevent removing the pet equipment (and disappear into nothingness) when failed to retrieve the item
*Added missing skill_drop_items_full checks on several skills (official behavior makes the items disappear)
---------

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2024-06-10 22:44:19 +02:00
Jittapan Pluemsumran
9267c2bf8a Added sanity checks to pincode decryption (#8404) 2024-06-10 22:03:49 +02:00
Vincent Stumpf
92722db3ab Fix dynamic npc timer mismatch (#8265)
* Fix dynamic npc timer mismatch

Fixes #8241
This adds some missing placement news that I'm surprised hasn't blown up yet.
2024-06-10 21:11:19 +02:00
Playtester
6daa032144 Renewal Spiral Pierce, Element vs. Status Attack (#8411)
- When using Spiral Pierce the base damage will now be multiplied with 0.7
- Weight bonus of Spiral Pierce is no longer affected by elemental adjustments
- Size modifiers updated: Small 130%, Medium 115%, Large 100%
- Spiral Pierce will now store its base damage in equipAtk to prevent rounding errors (temporary solution)
- Status Attack will now first apply the elemental table before doubling the right-hand damage
- Fixes #8410
2024-06-10 16:56:59 +02:00
Aristeus09
17a6d039d9 Fixed a couple of clif_message constant values (#8407)
Co-authored-by: Daegaladh <daegaladh@shadowgames.es>
2024-06-07 19:48:17 +02:00
Playtester
ec9a5fae4b Monster Loot / Item Dropping Position (#8347)
- When a monster is killed, its first item will now always drop at the exact cell the monster was on
- When a monster drops more than one item, the items will be deployed on 3 cells around the monster (looping): SE, W and N
- Fixed drop position of looted items (similar to regular drops but independent to it and starts north)
- Fixed item drop order (script-granted -> regular drops -> looted drops)
- Fixed looted items showing special drop effects
- Searching for a free cell to drop an item on now uses the official algorithm
- When a monster drops an item, it will no longer drop on cells that are occupied by characters or pets
- When a player drops an item, it will now drop in a 5x5 area around the player
- Items dropped by players can now stack on the same cell unless the new "item_stacking" config is disabled
- When an MVP drop drops to the floor because the player's inventory was full, it will now always drop on that player's cell
- Fixes #8345
2024-06-07 18:29:01 +02:00
Playtester
e8f1c7f9e7 Triple Attack vs. Plant Mode (#8403)
- Triple Attack will now deal 3 damage to monsters with plant mode (infinite defense)
2024-06-06 21:13:48 +02:00
Lemongrass3110
4c1b1c1a5c Added missing conformance mode in MSVS (#8402)
Follow up to 1361e9c
2024-06-06 13:10:47 +02:00
Atemo
ed3f418d15 Item data corrections (#8390)
* Fixed items in DB using wrong field. Some fields don't work with certain item types.
* Added warnings when a type is using a wrong field.
2024-06-05 15:34:14 +02:00
Lemongrass3110
c74ad5c8c2 Fixed PCBLOCK_EQUIP (#8399)
Fixes #8398

Thanks to @nubspixel
2024-06-04 10:02:14 +02:00
Lemongrass3110
48b4623f3e Fixed all warnings in MSVS (#8391)
Fixes #2859
Fixes #3570
Fixes #8389
2024-06-04 03:07:16 +02:00
Lemongrass3110
660b194ade Changed droplists from ERI to STL (#8370) 2024-06-04 02:40:55 +02:00
Playtester
23e7e1f367 Fixed Random Spawns (#8397)
- Fixed monsters with random spawn location to sometimes spawn on (0,0) if that cell is not a wall
- Follow-up to 5d232db
2024-06-03 19:48:55 +02:00
Playtester
1c96180fe6 Night Watch Job Bonus, Crimson Revolver (#8396)
- Fixed Sta bonus of Night Watch job
- Fixed Crimson Revolver giving 35 ATK too much
2024-06-03 16:58:31 +02:00
Lemongrass3110
545417ef11 Follow up to 1b9e46b
Fixes #8392

Thanks to @Beginerxx
2024-06-01 15:54:19 +02:00
idk-whoami
f60a4bdfaf Corrected script for some item #28 (#8340) 2024-05-31 17:10:01 +02:00
Daegaladh
1f9a43c9d2 Replaces more constant names with the official ones (#8374)
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2024-05-31 14:51:59 +02:00
Lemongrass3110
1b9e46b247 Generic cleanup of packets (#8369)
Standardized initial packet length of dynamic packets to sizeof
Standardized normal casts of packet_buffer to reinterpret_cast
Standardized packet length incrementations to static_cast with decltype
Removed unused function clif_setdisguise
Fixed an issue with string length in clif_scriptmenu
Removed struct keywords
Resolved a few warnings
2024-05-31 14:28:40 +02:00
BotGigo
4e77ada895 Illusion of underwater cooldown (#8383)
Corrected the quest menu for Illusion of underwater daily quests
2024-05-29 20:49:31 +02:00
Playtester
98eaf85a90 Arch Mage, S.MATK, Warlock Summon/Release (#8386)
- Fixed job stat bonuses of Arch Mage
- Fixed damage formula of Summon Elemental Ball / Release 2
- S.MATK is now applied before skill ratio
- Fixes #8381
2024-05-29 09:04:23 +02:00
Playtester
19f94e18f0 Renewal Guillotine Fist, Counter Slash, Shield Press Damage (#8376)
- Fixed the "constant addition" damage bonus being applied before the ratio in renewal, resulting in way too high damage for Guillotine Fist, Rapid Smiting and Shield Press
- Guillotine Fist is now reduced by SoftDEF+HardDEF in renewal
- Guillotine Fist is no longer reduced by Res
- Fixed Counter Slash adding Agi and Job Level to base damage rather than skill ratio
- Fixed Shield Press multiplying the damage by 5 instead of dividing it among 5 hits
- Only base STR of players will increase the Shield Press skill ratio now
- The fixed VIT*REFINE damage bonus of Shield Press is now a bonus that is applied even on MISS
- Fixes https://github.com/rathena/rathena/issues/8363
2024-05-28 22:47:06 +02:00
Daegaladh
3b5b5be574 Fixed compile warning (#8384) 2024-05-28 15:59:45 +02:00
Akkarinage
39644a980f Removed whitespace & duplicate label in runserver.bat (#8385) 2024-05-28 14:48:58 +01:00
Lemongrass3110
924d1ddad7 Fixed clif_clearchar_skillunit (#8371)
Follow up to cc60c46
2024-05-27 01:00:25 +02:00
Lemongrass3110
79935a75c9 Updated Hercules packets (#8368) 2024-05-26 17:31:23 +02:00
eppc0330
9e2b0b4a4d New pcblock flag PCBLOCK_EQUIP (#8367) 2024-05-26 15:43:32 +02:00
Daegaladh
05ced985e3 Replaced custom with official message names (#8361) 2024-05-26 13:17:05 +02:00
Atemo
cc60c46e5f Converted some packets to structs (#8353)
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2024-05-25 22:17:12 +02:00
Playtester
b4ae40d401 Synchronize Damage Feature (#8305)
- Added a new monster stat "ClientAttackMotion" to mob_db.yml which is the time from when a monster attacks until which the damage shows on the client at 1x speed
- Added a new config synchronize_damage; when set to "yes", the client will display the damage of normal monster attacks at the exact time it is applied on the server, removing position lag (fixes #259)

Special thanks to all people who worked together to make this possible.

Co-authored-by: aleos, Lemongrass3110, Atemo
2024-05-25 18:59:22 +02:00
Lemongrass3110
023263df7d Fixed another crash in clif_wis_message
Follow up to 7ddd035 and a44d954

Fixes #8359

Thanks to @gmragnarok
2024-05-25 15:31:30 +02:00
Pokye
7c017bac6a Missing nodynamicnpc on mapflag (#8357)
Fixes #8356
2024-05-24 15:28:07 +02:00
Atemo
361530a1b6 Converted some packets to structs (#8351) 2024-05-21 21:28:01 +02:00
Atemo
d1cf6f4ac7 Converted some packets to structs (#8332) 2024-05-20 21:13:59 +02:00
Playtester
c83f41a5a3 Consistent Dirx / Diry Array Usage (#8343)
- All skills now use the globally defined dirx/diry variables instead of defining their own
2024-05-20 09:14:18 +02:00
Playtester
5d232db89e Spawn and Free Cell Search Behavior (#8324)
- When searching for a map-wide free cell, the tiles 15 cells from the edge are no longer considered
  * Added a configuration to change the edge size to any value between 1 and 40
- When searching for a free cell, the tiles 4-5 cells from the edge are now considered invalid and trigger a retry
  * If you make the edge size smaller than this, it will use edge size instead
- Searching for a free cell now defaults to 50 tries, but if the "no spawn on player" option is active, those failed attempts are not counted towards the limit anymore
- When a monster spawns in a defined area there will now be 8 attempts to spawn it on a valid cell within the area and then one attempt on the center cell; if all 9 attempts fail, there will now be 50 tries to spawn it map-wide before it gives up
- When a monster has fixed spawn coordinates, but those coordinates are a wall, it will now spawn in a random location map-wide instead
  * This also applies to icewall blocking the cell unless the boss_monster command was used
- Each monster in an area spawn will now receive its own spawn center within the spawn area on server start
  * This results in the spawn area being larger but having a bias towards the center
  * Added a configuration to disable this behavior
- Fixed slave monsters always being active and constantly calling the "search freecell" function even though neither them nor their master have been spotted yet
- Fixed map server crash when setting no_spawn_on_player to 100 (follow-up to 33b2b02)
- Updated prontera field spawns to official episode 18+
- Updated all champion mob respawn times to 3 minutes and sorted them by map name
- Fixes #8300
2024-05-19 17:12:44 +02:00
eppc0330
949a33081f Fix slavemob bahavior (#7978)
Fixes #6885

Co-authored-by: aleos89 <aleos89@users.noreply.github.com>
2024-05-19 14:10:23 +02:00
Aleos
b81904d554 Update build_servers_gcc.yml (#8338)
Add a separate job to run specifically for GCC 13 in Ubuntu 24.04 as the package was removed from Ubuntu 22.04.

Related issue actions/runner-images#9866
2024-05-18 13:40:43 +02:00
mettool
aa62b2fa80 Corrected Boss Meow monster Class (#8336) 2024-05-17 14:52:13 +02:00
Kanin Temsrisuk
4327fb05a9 Corrected RG Golden Potion item data (#8286) 2024-05-17 14:50:42 +02:00
Akkarinage
e1e8b68b33 Updated checkout version tag 2024-05-15 19:38:03 +01:00
Akkarinage
91b501bbb2 Added Siege_Teleport_Scroll2 function 2024-05-15 14:24:36 +01:00
eppc0330
a9a8b0d0c4 Fixed plagiarized skills not removed (#8329) 2024-05-14 09:10:03 +02:00
Lemongrass3110
da8229b8f5 Added some suggested code improvements (#8331)
Fixes #8309

Thanks to @mrpond
2024-05-13 17:46:47 +02:00
Lemongrass3110
8980203f7b Small cleanup to NJ_ZENYNAGE (#8320)
Split NJ_ZENYNAGE from KO_MUCHANAGE
2024-05-13 16:50:30 +02:00
Lemongrass3110
fe9f617f97 Fixed clif_sendfakenpc (#8330)
Fixes #8321
Fixes #8328

Thanks to @kaninhot004
2024-05-13 11:45:00 +02:00
Lemongrass3110
580511c0bb Fixed a warning
Fixes #8325

Thanks to @Beginerxx
2024-05-13 07:44:36 +02:00
Playtester
f85ca81066 Fixed Magic vs. Plant Damage (#8323)
- Fixed magic damage on plants always being 0
- Follow-up to 2963e52
2024-05-11 08:52:39 +02:00
Playtester
04117614cb Attacking While Casting Crash Fix (#8322)
- Fixed a server crash that occurs when a unit did a normal attack while casting a spell (e.g. Free Cast)
- Follow-up to ffe40de
- Fixes #8319
2024-05-10 18:19:19 +02:00
Lemongrass3110
04386a8ebc Follow up to d445497 2024-05-10 00:12:10 +02:00
Jittapan Pluemsumran
d445497870 Converted a bunch of packets to structs (#8295)
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2024-05-09 23:06:32 +02:00
jasonch
1af1943f85 Added missing columns for yaml2sql (#8318)
Fixes #8317
2024-05-09 22:00:17 +02:00
Vincent Stumpf
b1a2d74b54 Merge pull request #4 from secretdataz/refactor/cmake
Added some Windows fixes, Added MAXXCON option to CMake
2024-05-09 00:10:14 -07:00
Playtester
13bc3e2bb7 Monster Powerskill Levels, Silver Sniper, Magic Decoy (#8316)
- Fixed some monsters using the normal player level 10 version of a skill instead of the special NPC powerskill version (e.g. Heal for 9999 HP)
  * See doc/mob_skill_db_powerskill.txt for more information
- Fixed Silver Sniper and Magic Decoy using Heal 10
- Fixed Magic Decoy doing normal attacks
- Fixes #8306
2024-05-08 15:08:09 +02:00
Playtester
ffe40def4a NPC_RUN, Monster Skill Interval (#8302)
- Monsters will now properly run away when using NPC_RUN (fixes #7941)
- Introduced a new function unit_get_walkpath_time that returns the time the unit needs to walk its current walkpath
  * This is now used for NPC_RUN and random walking
- Fixed an issue with mismatching timer warnings when a monster casts NPC_RUN multiple times in row

- Monsters will now always attempt to use non-berserk-state skills once per second (fixes #1700)
  * This completely replaces the "ugly" solution to use a walk_count for idle, walk and chase skills
  * This interval is now a lot more accurate and no longer influenced by external factors such as canact delay
  * This interval is now also used for lazy monsters rather than MIN_MOBTHINKTIME*10 so that MIN_MOBTHINKTIME can be reduced without having to worry about skills being cast more often
  * Angry skills no longer replace the normal attack and now follow the once per second rule; they will always first be attempted at the end of the walk delay after a normal attack
- The special follow-up attack skill monsters use when you move out of their attack range, now is only used when they are in Angry state
  * Also fixed a bug that this was checked every 100ms until the monster used a skill, instead of just once per second

- Monsters now can use chase skills even before they start moving (assuming one second has already passed since last skill check)
- Removed "hack" to make monsters cast chase skills when trapped in icewall
  * This was solved by implementing checking for chase skills before starting to move

- Monsters will now receive an aMotion walk delay after having used a skill
- A monster that could not walk randomly because of walk delay will now walk immediately once the walk delay expires
- Using angry or berserk skills will now set a monster's attack delay
2024-05-08 09:02:48 +02:00
Atemo
bcb34695a5 Updated item DB and mapcache up to may 2 2024 (#8314) 2024-05-07 17:08:29 +02:00
Banana
fd9b475446 Added a command to reload cash shop db (#3257)
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2024-05-07 10:08:55 +02:00
Aleos
8546f9f089 Resolves a potential crash from Howling Mine (#8147)
* Fixes #8146.
* Minor cleanups to ensure the Howling Mine status is active before accessing.
Thanks to @LadyNanuia!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2024-05-06 19:15:37 -04:00
idk-whoami
ffbbb94080 Corrected script for some item #27 (#8235) 2024-05-06 23:17:25 +02:00
eppc0330
c8cbc2e3a1 Fixed SHC_SHADOW_STAB damage bonus (#8288)
Fixed SHC_SHADOW_STAB damage bonus not being applied during cloaking exceed status.

Remove cloaking bonus: Bonus should be granted on only cloaking exceed status, not cloaking

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2024-05-06 21:22:54 +02:00
Lemongrass3110
a44d9540fb Fixed clif_wis_message (#8308)
Fixes #8307

Thanks to @mrpond
2024-05-06 02:04:51 +02:00
Singe Horizontal
fd36fc04b2 Fixes clif_viewequip_ack packet length (#8304) 2024-05-05 15:13:06 +02:00
Jittapan Pluemsumran
d16dccf994 Added some Windows fixes, Added MAXXCON option to CMake 2024-05-04 19:47:01 +07:00
Lemongrass3110
b48948822a Replaced NULL with nullptr (#8298) 2024-05-03 19:38:13 +02:00
idk-whoami
30928a04e1 Script correction of NPC ammo_boxes (#8275) 2024-05-03 17:50:01 +02:00
Lemongrass3110
3ada0c11be Converted some banking packets to struct (#8297) 2024-05-03 13:35:20 +02:00
Kanin Temsrisuk
90b2b9cbbf Fix auto spell list on renewal (#8299)
Follow up to 9440869
2024-05-03 10:12:31 +02:00
Daegaladh
7ddd035442 Fixed clif type conversion warnings (#8294)
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2024-05-03 09:26:02 +02:00
Lemongrass3110
38ca0998fd Cleaned up 2 size_t warnings in char.cpp (#8296) 2024-05-03 08:17:13 +02:00
Daegaladh
29a3c5263b Small optimization on change sex (#8281) 2024-05-03 00:46:40 +02:00
Lemongrass3110
827517f8cf Cleaned up a few TODOs from #7963 (#8254) 2024-05-02 22:44:31 +02:00
idk-whoami
6d2ef66bbb Script correction of Lux Anima Runestone IDs 22540 (#8258) 2024-05-02 21:35:49 +02:00
Lemongrass3110
7ebf47e31c Added GCC 12 and 13 to CI (#8293)
Follow up to d949740
2024-05-02 20:37:04 +02:00
Atemo
2ebdd50e08 Fixed warning about favorite item (#8290) 2024-05-02 15:35:00 +02:00
Jittapan Pluemsumran
d949740cd9 Moved battle_fix_damage definition to battle.cpp (#8292)
Fixes #8291
2024-05-02 13:56:20 +02:00
Playtester
16e9d52204 Database Cache Fix, Pre-Re Monster Cleanup (#8289)
- Fixed a problem that caused the DB cache to always be missing the last entry
- Removed renewal monsters from pre-re/mob_db.yml
2024-05-01 20:12:31 +02:00
Playtester
cad5cab976 Coma Rework, Exp Calc Type, Fiber Lock Range (#8287)
- Coma item bonus is no longer an additional effect / status change, but instead replaces the attack damage with setting HP/SP to 1
  * That means Coma attacks will never kill someone, even if the original attack would be lethal
  * When doing a Coma attack, the attack displays the original damage and this is also what counts towards the mob damage log
- Coma is checked for every single event that applies damage, including reflect damage, and for Provoke / Self Provoke
  * Some Renewal-only effects couldn't be tested and were left unchanged (e.g. damage from White Imprison)
- Coma now sets SP to 1 instead of 0
- bComaRace, bWeaponComaRace and bWeaponComaEle won't work on bosses, GVG and battlefield objects
- bComaClass and bWeaponComaClass no longer work on GVG and battlefield objects, but can work on bosses if you specify Class_Boss or Class_All
- Edge is now defined to only work on normal monster
- The default exp_calc_type 0 no longer counts the first attacker twice and instead works like on official servers
- Added a new exp_calc_type 2 that counts the first attacker twice as previously
- The damage logged will now include overkill damage on exp_calc_type 0 and 2, but not count Coma damage (it will count the damage you would have originally dealt instead)
- Fiber Lock now has a range of 9 instead of 7
- Fixes #8279
2024-05-01 08:58:51 +02:00
Playtester
9e959f7fd6 Renewal Offhand Damage, Left-hand Weapon Only Attack (#8285)
- Fixed renewal offhand damage being double as high as it should be
- You will now deal unarmed main hand damage if you equip a weapon only in your left hand
- Your offhand damage will now be the same regardless of whether you have a weapon in the main hand or not
- Fixes #8284
2024-04-27 15:55:41 +02:00
Playtester
0e434aa73b Grand Cross Damage and Trigger Rework (#8283)
- Grand Cross on target is now considered a full magic attack and no longer triggers drain and similar effects that only work with physical attacks
  * This problem as was introduced in d8a02e9 to fix Coma not working on Grand Cross, but the reason that Coma works on Grand Cross is because it can also trigger on Magic skills (this is already working)
- Grand Cross damage on self is still considered as "physical damage received" for reactive cards (e.g. Alarm Card), but no longer as "magical damage received" (e.g. Platinum Shield does not trigger)
- Grand Cross no longer channels through the whole "weapon attack" code and just calls the necessary parts directly (it only considers ATK, DEF/VIT_DEF and refine)
- Damage parts of Grand Cross can now go below 1 and reduce the other part (e.g. -5 physical damage and 15 magical damage now results in 10 damage instead of 16)
- Implemented the official renewal damage formula for Grand Cross:
   [((ATK+MATK)/2)*RATIO - DEF - VIT_DEF - MDEF - MDEF2]
- Fixed the order of damage processing for Grand Cross for fully accurate damage (there were a lot of rounding issues before)
- The attribute table is no longer applied twice on self damage (still applied twice on target)
- Cards that increase magic damage now work with Grand Cross (e.g. Skeggiold Card)
- Changed Grand Cross range to 9 as that's the official range (you never know when it matters)
- Fixes #1140
2024-04-27 10:22:50 +02:00
Playtester
2963e52fc6 Pre-Re Monster Stats, CSV2YAML Converter, Damage Inaccuracy Fix (#8278)
- Fixed several pre-re monster stats being 1 instead of 0
  * Issue was introduced in 05a17d8 as safety measure to prevent division by 0, but it results in wrong damage numbers
  * Players can get 0 on stats as well, so it's better to put such safety measures at the point where the division takes place
- Minimum stat for monsters is now 0 instead of 1
- Monsters that have 0 Luk after this change can no longer be cursed
- Improved csv2yaml converter to no longer lose the information whether a stat is 0 or 1
- Fixed an issue with converting Race2 in the csv2yaml converter
- Removed arbitrary "+1 MATK" bonus that was probably added due to people not figuring out why the damage was off by 1
- Fixed small damage inaccuracy issue in PVP
- Fixes #8277
2024-04-24 21:04:34 +02:00
Playtester
7c44390606 Fixed Monsters Randomly Targeting on Attack (#8274)
- Fixed immobile monsters targeting random bystanders with their spells even though they already have a target
- Fixed some Malaya Port enemies targeting randomly
- Fixes #8273
2024-04-24 11:46:45 +02:00
Kanin Temsrisuk
45b588c654 Corrected Cylinder Boots [1] item script (#8268) 2024-04-22 22:55:40 +02:00
idk-whoami
5124ddf575 Modes correction of Temple Of Demon God monsters (#8259)
Thanks to @Atemo
2024-04-22 22:54:41 +02:00
Chaos92
0f0bd685d9 Fix typo for macro_register (#8270) 2024-04-22 13:26:31 -04:00
Playtester
f15cb72f94 Monster AI Improvements, Clashing Spiral, Skid Trap, Throw Stone (#8269)
- Added config setting mob_unlock_time that defines how long a monster can be trapped (immobile) before it unlocks its target 
  * Default is 2000ms, which makes Clashing Spiral no longer cause monsters to drop their target, but Ankle Snare still will even at minimum duration 
- Monsters will now promptly use idle skills while trapped (there was a delay before)
- Increased the time the AI is still active when there are no players left on the map from 0ms to 5000ms
  * This fixes an issue that monsters never unlocked their target if it was the last player to leave the map
- Clashing Spiral now has a range of 4 instead of 5
- Skid Trap no longer has a stop effect in pre-re, but it will make monsters unlock their target and become idle
- Skid Trap still stops targets for 3 seconds in renewal, but will no longer activate on bosses
- Throw Stone now deals 30 damage when used by monsters
- Fixes #7846
2024-04-22 08:39:11 +02:00
vstumpf
2e69ccedea Merge branch 'master' into refactor/cmake 2024-04-21 05:23:58 +00:00
Playtester
75f518859f Removed Basedamage Variable from Renewal (#8264)
- As this variable is unused and is very hard to calculate in renewal's structure, it was removed completely from renewal to make the renewal code cleaner
- In pre-re it still works exactly the same as before (used for the EDP and Magnum Break bonus - renewal uses weaponATK for this instead)
- Follow-up to b5e3e5e
2024-04-21 00:08:03 +02:00
munkrej
b5e3e5e69b Fixed wrong double damage calculation for skills in renewal mode (#8260)
Note by Playtester: In renewal the "battle_calc_skill_base_damage" function adds to the ATK values rather than resetting them, so calling it twice will cause the values to be doubled, so we can't easily use this system for renewal. Will do a follow-up cleanup later.
2024-04-20 15:50:27 +02:00
Playtester
3cbdcf999f Ankle Snare Status Rework (#8263)
- SC_ANKLE no longer has a natural resistance and minimum duration
- Glacier Fist, Clashing Spiral and Tarot Card of Fate now grant SC_ANKLE instead of SC_STOP (cannot teleport while under SC_ANKLE effect)
- Grand Cross now gives SC_ANKLE to self during the spell duration
- Ankle Snare now has a minimum duration of 3000+30*baselevel milliseconds
- Ankle Snare will no longer activate on bosses in renewal
- Fixed Ankle Snare stopping bosses in pre-renewal even if you didn't enable the config setting for it
- Glacier Fist now has a minimum duration of 1500+15*baselevel milliseconds rather than it being the maximum duration
- You can now define Glacier Fist's effective base duration in the YML file without worrying about it being halved in the source code (it is still getting reduced by Agi)
- Fixed some integer overflow issues
- Fixes #8253
2024-04-20 15:41:24 +02:00
Playtester
cd7341930e Fixed Capping of Values (#8257)
- Values that are added together will now be correctly capped to their max value
- Status resistance can no longer exceed 100% (made negative success rates become positive)
2024-04-18 17:55:41 +02:00
Playtester
25b98c87db NPC_INVINCIBLE and Spell Breaker (#8255)
- NPC_INVINCIBLE now grants SC_INVINCIBLE for 300s instead of unlimited
- NPC_INVINCIBLEOFF and MER_INVINCIBLEOFF2 now just end SC_INVINCIBLE instead of having their own status change
- SC_INVINCIBLE now works like plant mode instead of just setting incoming damage to 1
- SC_INVINCIBLE now increases ATKpercent by 100 instead of increasing all damage by 75%
- SC_INVINCIBLE no longer blocks skills
- SC_INVINCIBLE now increases movement speed by 50% instead of 75%
- SC_INVINCIBLE now increases ASPD strongly
- Quagmire can no longer prevent ASPD increase (it still ends various status changes and prevents them)
- If you counter Spell Breaker with Magic Rod you now receive 20% of the caster's MaxSP
- Spell Breaker will now only deal HP damage on level 5
- Spell Breaker now can deal damage to bosses to 10% in pre-re (cannot be reduced by SC_INVINCIBLE unless you enable the "invincible_nodamage" setting)
- Spell Breaker will no longer deal damage if it would be lethal
- Added missing animation of Spell Breaker's damage
- Fixes #8228
2024-04-17 16:28:04 +02:00
Atemo
5df7de2b15 Added missing sd check for clif_skill_fail (#7963)
Fixes #8239 

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2024-04-15 22:38:46 +02:00
Playtester
089c3056cf Updated/Simplified Damage Bonus Stacking (#8252)
- Freezing Trap, Sand Attack, Gunslinger Mine, Flip Tatami and Excruciating Palm no longer are affected by +% dmg cards
- The skills that ignore +% dmg cards are now exactly those skills that also ignore EDP and the EDP/Magnum Break elemental damage bonus
- Non-players are now always affected by ATKpercent
- Simplified the code accordingly
- Fixes #8250
2024-04-14 19:12:40 +02:00
Lemongrass3110
d05e11aecd Added .git-blame-ignore-revs file (#8245) 2024-04-14 19:09:36 +02:00
Playtester
310fcd6fa1 Throw skills (Shuriken, Kunai, Coins, Venom Knife) (#8249)
- Throw skills no longer consider arrow attack unless you have a ranged weapon equipped
- Throw Shuriken is no longer modified by +% damage cards
- Throw Shuriken/Kunai no longer ignore flee
- Throw Shuriken's damage bonus is now flee-ignoring and includes skill level(x4), dagger mastery(x3) and arrow attack
- Throw Kunai's damage bonus is now three times arrow attack per hit
- Throw Shuriken/Kunai's final damage is now applied as forced neutral damage
- Fixed range of Throw Coins (9 -> 7)
- Other code improvements
- Fixes #8206
2024-04-14 07:55:31 +02:00
Vincent Stumpf
b01e7da68d Merge branch 'master' into refactor/cmake 2024-02-17 01:50:56 +00:00
Vincent Stumpf
008d25cfb2 Merge remote-tracking branch 'upstream/master' into refactor/cmake 2023-12-24 00:26:14 +00:00
Vincent Stumpf
f4c9ed691c Merge remote-tracking branch 'upstream/master' into refactor/cmake 2023-12-12 07:43:50 +00:00
Vincent Stumpf
cc397167ab Enable configurable multi-threaded compilation 2023-12-12 07:43:19 +00:00
Vincent Stumpf
8f15bc2117 Merge remote-tracking branch 'upstream/master' into refactor/cmake 2023-11-26 05:45:27 +00:00
Vincent Stumpf
bf36dd4b1f Merge remote-tracking branch 'upstream/master' into refactor/cmake 2023-11-05 01:13:39 +00:00
Vincent Stumpf
fc242d0472 remove commented code 2023-08-06 06:24:33 +00:00
Vincent Stumpf
f41a80ca59 Remove redundant ubuntu-latest build 2023-07-20 03:34:32 +00:00
Vincent Stumpf
eadff3366d Fix cmake arg order 2023-07-12 03:27:56 +00:00
Vincent Stumpf
9636aa020d Remove deprecated builds 2023-07-12 03:23:48 +00:00
Vincent Stumpf
5c2718de03 Add concurrency and dependency on CMakeLists.txt 2023-07-12 03:22:52 +00:00
Vincent Stumpf
1b3357611b Merge remote-tracking branch 'upstream/master' into refactor/cmake 2023-07-03 07:44:30 +00:00
Vincent Stumpf
b3f6ad41ba Merge branch 'master' of github.com:rathena/rathena into refactor/cmake 2023-06-19 05:44:33 +00:00
Vincent Stumpf
c789cdbadd Merge remote-tracking branch 'upstream/master' into refactor/cmake 2023-06-18 22:28:19 +00:00
Vincent Stumpf
98ac59a940 change to oop 2023-06-17 02:00:01 +00:00
Vincent Stumpf
f73e6658ca Add deprecation notice in rAthena.sln 2023-06-15 03:01:39 +00:00
Vincent Stumpf
d98166383c Add .sh filetype to athena-start 2023-06-14 07:19:05 +00:00
Vincent Stumpf
b1520ea969 Add new line after tools 2023-06-14 07:10:48 +00:00
Vincent Stumpf
ee456d8af6 Add HAVE_STRNLEN and HAVE_SETRLIMIT 2023-06-14 07:08:14 +00:00
Vincent Stumpf
1545d483c0 Build tools in cmake workflow 2023-06-14 04:57:28 +00:00
Vincent Stumpf
b6ce15af00 Don't need to copy the configure files, they're being replaced by cmake 2023-06-13 07:34:08 +00:00
Vincent Stumpf
1f474a62cf enable PCRE for mapserver 2023-06-11 07:22:21 +00:00
Vincent Stumpf
9024cc7ef8 Change most github workflows to cmake 2023-06-11 06:41:37 +00:00
Vincent Stumpf
026c014eb2 Add ENABLE_VIP option to cmake 2023-06-11 06:39:36 +00:00
Vincent Stumpf
26dee6891b Fix windows cmake 2023-06-11 05:03:44 +00:00
Vincent Stumpf
258a8e6be0 Let's add windows to the cmake ci 2023-06-11 03:07:36 +00:00
Vincent Stumpf
48b0b082b6 Whoops, let's leave the configure script in, and the linux scripts too for now 2023-06-11 02:33:46 +00:00
Vincent Stumpf
6ae46a7bf8 Add custom 'server' target 2023-06-11 02:29:17 +00:00
Vincent Stumpf
855cf12007 Move scripts to tools 2023-06-11 02:29:17 +00:00
Vincent Stumpf
ae862453bd Move extra cmake files to tools/cmake 2023-06-11 02:29:17 +00:00
Vincent Stumpf
c11d73d6a8 Add epoll support 2023-06-11 02:29:17 +00:00
Vincent Stumpf
ff86c7b9d1 Maybe make scripts work? 2023-06-11 02:29:17 +00:00
Vincent Stumpf
e1b9b0d9b3 Add support for import files
This will check and copy import files whenever we regenerate the build system
2023-06-11 02:29:17 +00:00
Vincent Stumpf
b3c47f043e Remove cmakelistsold (oops) and clean up httplib 2023-06-11 02:29:17 +00:00
Vincent Stumpf
c69587c2e7 Refactor CMake to be nicer, more modern, easier to understand 2023-06-11 02:29:15 +00:00
Vincent Stumpf
95ee5d04e6 Double visitor? 2023-06-10 06:41:25 +00:00
Vincent Stumpf
28383ee332 Initial commit of skills 2023-06-04 05:45:11 +00:00
Vincent Stumpf
857f335729 Fix cmake stuff 2023-05-26 01:58:55 +00:00
286 changed files with 51410 additions and 21071 deletions

9
.git-blame-ignore-revs Normal file
View File

@@ -0,0 +1,9 @@
# Massive EOL normalization & 'svn:eol-style native' flag setting for all txt/conf/h/c files.
# https://github.com/rathena/rathena/commit/637ae9a4dcde0d5885a18841d2f3875e06893c30
637ae9a4dcde0d5885a18841d2f3875e06893c30
# Applied AStyle code formating as discussed on tid:74602.
# https://github.com/rathena/rathena/commit/a7c32653f70bd420bdf5a621acdf3aea5c6e6002
a7c32653f70bd420bdf5a621acdf3aea5c6e6002
# Undid r16968: SVN Replaced with source:/trunk/src/@16966 (tid:74924).
# https://github.com/rathena/rathena/commit/a2bdc47dafb32f6d18ed350d8bbe79b8f679a049
a2bdc47dafb32f6d18ed350d8bbe79b8f679a049

View File

@@ -18,6 +18,8 @@ on:
# This workflow should run when a file in a source directory has been modified.
- 'src/**'
- '3rdparty/**'
# This workflow should run whenever a CMake related file has been modified
- '**/CMakeLists.txt'
jobs:
analyze:
@@ -31,18 +33,16 @@ jobs:
# The ubuntu-latest label currently points to ubuntu-20.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-latest]
# Older versions of GCC are not available via unaltered aptitude repo lists.
gcc: ['10']
# We run build checks for both Renewal and PRE-Renewal
mode: ['PRE','RE']
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
@@ -64,29 +64,29 @@ jobs:
- name: Update & Install packages
# Ubuntu runners already have most of the packages rAthena requires to build.
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2204-Readme.md
run: |
sudo apt update
sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
sudo apt install zlib1g-dev libpcre3-dev
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
#- name: Autobuild
# uses: github/codeql-action/autobuild@v2
# ✏️ If the Autobuild fails above, remove it and uncomment the following
# ?? If the Autobuild fails above, remove it and uncomment the following
# three lines and modify them (or add more) to build your code if your
# project uses a compiled language
- name: Command - configure
env:
CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-prere=${{ env.PRERE }} --enable-buildbot=yes'
run: ./configure $CONFIGURE_FLAGS
- name: Create build directory
run: cmake -E make_directory ${{github.workspace}}/build
- name: Command - make clean
run: make clean
- name: Configure CMake
working-directory: ${{github.workspace}}/build
run: cmake .. -DENABLE_PRERENEWAL=${{env.PRERE}} -DENABLE_EXTRA_BUILDBOT_CODE=ON
- name: Command - make server
run: make server
- name: Build
working-directory: ${{github.workspace}}/build
run: cmake --build . -j2 --target server
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3

View File

@@ -1,54 +0,0 @@
name: Build servers with Clang
# build_servers_clang.yml
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
on:
workflow_dispatch:
push:
branches:
- master
pull_request:
paths:
# Always trigger all Github Actions if an action or something CI related was changed
- '.github/workflows/**'
- 'tools/ci/**'
# This workflow should run when a file in a source directory has been modified.
- 'src/**'
- '3rdparty/**'
jobs:
build:
# Github Actions checks for '[ci skip]', '[skip ci]', '[no ci]', '[skip actions]', or '[actions skip]' but not a hyphenated version.
# It's a catch-all incase a Pull Request has been opened and someone is on auto-pilot.
if: "!contains(github.event.head_commit.message, 'ci-skip')"
runs-on: ${{ matrix.os }}
strategy:
matrix:
# The ubuntu-latest label currently points to ubuntu-22.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-20.04]
# Version list can be found on https://github.com/marketplace/actions/install-clang
clang: ['6.0', '7', '8', '9', '10', '11'] #, '12', '13']
steps:
- uses: actions/checkout@v2
- name: Set up Clang
uses: egor-tensin/setup-clang@v1
with:
version: ${{ matrix.clang }}
platform: x64
- name: Command - configure
env:
CONFIGURE_FLAGS: 'CC=clang-${{ matrix.clang }} CXX=clang++-${{ matrix.clang }} --enable-buildbot=yes'
run: ./configure $CONFIGURE_FLAGS
- name: Command - make clean
run: make clean
- name: Command - make all
run: make all

View File

@@ -1,55 +0,0 @@
name: Build servers with GCC
# build_servers_gcc.yml
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
on:
workflow_dispatch:
push:
branches:
- master
pull_request:
paths:
# Always trigger all Github Actions if an action or something CI related was changed
- '.github/workflows/**'
- 'tools/ci/**'
# This workflow should run when a file in a source directory has been modified.
- 'src/**'
- '3rdparty/**'
jobs:
build:
# Github Actions checks for '[ci skip]', '[skip ci]', '[no ci]', '[skip actions]', or '[actions skip]' but not a hyphenated version.
# It's a catch-all incase a Pull Request has been opened and someone is on auto-pilot.
if: "!contains(github.event.head_commit.message, 'ci-skip')"
runs-on: ${{ matrix.os }}
strategy:
matrix:
# The ubuntu-latest label currently points to ubuntu-22.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-latest]
# Older versions of GCC are not available via unaltered aptitude repo lists.
gcc: ['9', '10', '11']
steps:
- uses: actions/checkout@v2
- name: Update & Install packages
# Ubuntu runners already have most of the packages rAthena requires to build.
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
run: |
sudo apt update
sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
- name: Command - configure
env:
CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-buildbot=yes'
run: ./configure $CONFIGURE_FLAGS
- name: Command - make clean
run: make clean
- name: Command - make all
run: make all

View File

@@ -18,6 +18,8 @@ on:
# This workflow should run when a file in a source directory has been modified.
- 'src/**'
- '3rdparty/**'
# This workflow should run whenever a CMake related file has been modified
- '**/CMakeLists.txt'
jobs:
build:
@@ -30,30 +32,28 @@ jobs:
# The ubuntu-latest label currently points to ubuntu-22.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-latest]
# Older versions of GCC are not available via unaltered aptitude repo lists.
gcc: ['11']
# We run build checks for both Renewal and PRE-Renewal
mode: ['PRE','RE']
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
# A simple 'yes' and 'no' can be confusing, so we use names to display in the current job then convert them for use in the compiler.
- name: Variable Parsing - PRE
if: ${{ matrix.mode == 'PRE' }}
run: |
echo "PRERE=yes" >> $GITHUB_ENV
echo "PRERE=ON" >> $GITHUB_ENV
- name: Variable Parsing - RE
if: ${{ matrix.mode == 'RE' }}
run: |
echo "PRERE=no" >> $GITHUB_ENV
echo "PRERE=OFF" >> $GITHUB_ENV
- name: Update & Install packages
# Ubuntu runners already have most of the packages rAthena requires to build.
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2204-Readme.md
run: |
sudo apt update
sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
sudo apt install zlib1g-dev libpcre3-dev
- name: Start MySQL
run: sudo systemctl start mysql.service
@@ -61,16 +61,16 @@ jobs:
- name: Setup Database and import table data
run: ./tools/ci/sql.sh
- name: Command - configure
env:
CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-prere=${{ env.PRERE }} --enable-buildbot=yes'
run: ./configure $CONFIGURE_FLAGS
- name: Create build directory
run: cmake -E make_directory ${{github.workspace}}/build
- name: Command - make clean
run: make clean
- name: Configure CMake
working-directory: ${{github.workspace}}/build
run: cmake .. -DENABLE_PRERENEWAL=${{env.PRERE}} -DENABLE_EXTRA_BUILDBOT_CODE=ON
- name: Command - make server
run: make server
- name: Build
working-directory: ${{github.workspace}}/build
run: cmake --build . -j2 --target server
- name: Run Once - login-server
run: ./login-server --run-once

View File

@@ -1,48 +0,0 @@
name: Build servers with MSVS
# build_servers_msbuild.yml
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
on:
workflow_dispatch:
push:
branches:
- master
pull_request:
paths:
# Always trigger all Github Actions if an action or something CI related was changed
- '.github/workflows/**'
- 'tools/ci/**'
# This workflow should run when a file in a source directory has been modified.
- 'src/**'
- '3rdparty/**'
jobs:
build:
# Github Actions checks for '[ci skip]', '[skip ci]', '[no ci]', '[skip actions]', or '[actions skip]' but not a hyphenated version.
# It's a catch-all incase a Pull Request has been opened and someone is on auto-pilot.
if: "!contains(github.event.head_commit.message, 'ci-skip')"
runs-on: ${{ matrix.os }}
strategy:
matrix:
# The windows-latest label currently points to windows-2019.
# Available: windows-2016, windows-2019 and windows-2022
os: [windows-latest]
# We run build checks for both Renewal and PRE-Renewal
mode: ['PRE', 'RE']
steps:
- uses: actions/checkout@v2
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
- name: Build solution in Debug
if: ${{ matrix.mode == 'PRE' }}
run: msbuild rAthena.sln -t:rebuild -property:Configuration=Debug /p:DefineConstants="BUILDBOT%3BPRERE"
- name: Build solution in Debug
if: ${{ matrix.mode == 'RE' }}
run: msbuild rAthena.sln -t:rebuild -property:Configuration=Debug /p:DefineConstants="BUILDBOT"

View File

@@ -18,6 +18,8 @@ on:
# This workflow should run when a file in a source directory has been modified.
- 'src/**'
- '3rdparty/**'
# This workflow should run whenever a CMake related file has been modified
- '**/CMakeLists.txt'
jobs:
build:
@@ -30,32 +32,30 @@ jobs:
# The ubuntu-latest label currently points to ubuntu-22.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-latest]
# Older versions of GCC are not available via unaltered aptitude repo lists.
gcc: ['11']
# We run build checks for both Renewal and PRE-Renewal
mode: ['PRE','RE']
# Check build success for different packet-versions
packetver: ['20211103', '20200902', '20200401', '20180620', '20151104']
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
# A simple 'yes' and 'no' can be confusing, so we use names to display in the current job then convert them for use in the compiler.
- name: Variable Parsing - PRE
if: ${{ matrix.mode == 'PRE' }}
run: |
echo "PRERE=yes" >> $GITHUB_ENV
echo "PRERE=ON" >> $GITHUB_ENV
- name: Variable Parsing - RE
if: ${{ matrix.mode == 'RE' }}
run: |
echo "PRERE=no" >> $GITHUB_ENV
echo "PRERE=OFF" >> $GITHUB_ENV
- name: Update & Install packages
# Ubuntu runners already have most of the packages rAthena requires to build.
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
run: |
sudo apt update
sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
sudo apt install zlib1g-dev libpcre3-dev
- name: Start MySQL
run: sudo systemctl start mysql.service
@@ -63,13 +63,13 @@ jobs:
- name: Setup Database and import table data
run: ./tools/ci/sql.sh
- name: Command - configure
env:
CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-prere=${{ env.PRERE }} --enable-packetver=${{ matrix.packetver }} --enable-buildbot=yes'
run: ./configure $CONFIGURE_FLAGS
- name: Create build directory
run: cmake -E make_directory ${{github.workspace}}/build
- name: Command - make clean
run: make clean
- name: Configure CMake
working-directory: ${{github.workspace}}/build
run: cmake .. -DENABLE_PRERENEWAL=${{env.PRERE}} -DPACKETVER=${{matrix.packetver}} -DENABLE_EXTRA_BUILDBOT_CODE=ON
- name: Command - make all
run: make all
- name: Build
working-directory: ${{github.workspace}}/build
run: cmake --build . -j2

View File

@@ -18,6 +18,8 @@ on:
# This workflow should run when a file in a source directory has been modified.
- 'src/**'
- '3rdparty/**'
# This workflow should run whenever a CMake related file has been modified
- '**/CMakeLists.txt'
jobs:
build:
@@ -30,30 +32,28 @@ jobs:
# The ubuntu-latest label currently points to ubuntu-22.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-latest]
# Older versions of GCC are not available via unaltered aptitude repo lists.
gcc: ['11']
# We run build checks for both Renewal and PRE-Renewal
mode: ['PRE', 'RE']
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
# A simple 'yes' and 'no' can be confusing, so we use names to display in the current job then convert them for use in the compiler.
- name: Variable Parsing - PRE
if: ${{ matrix.mode == 'PRE' }}
run: |
echo "PRERE=yes" >> $GITHUB_ENV
echo "PRERE=ON" >> $GITHUB_ENV
- name: Variable Parsing - RE
if: ${{ matrix.mode == 'RE' }}
run: |
echo "PRERE=no" >> $GITHUB_ENV
echo "PRERE=OFF" >> $GITHUB_ENV
- name: Update & Install packages
# Ubuntu runners already have most of the packages rAthena requires to build.
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
run: |
sudo apt update
sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
sudo apt install zlib1g-dev libpcre3-dev
- name: Start MySQL
run: sudo systemctl start mysql.service
@@ -61,16 +61,16 @@ jobs:
- name: Setup Database and import table data
run: ./tools/ci/sql.sh
- name: Command - configure
env:
CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-prere=${{ env.PRERE }} --enable-buildbot=yes --enable-vip=yes'
run: ./configure $CONFIGURE_FLAGS
- name: Command - make clean
run: make clean
- name: Create build directory
run: cmake -E make_directory ${{github.workspace}}/build
- name: Command - make server
run: make server
- name: Configure CMake
working-directory: ${{github.workspace}}/build
run: cmake .. -DENABLE_PRERENEWAL=${{env.PRERE}} -DENABLE_EXTRA_BUILDBOT_CODE=ON -DENABLE_VIP=ON
- name: Build
working-directory: ${{github.workspace}}/build
run: cmake --build . -j2 --target server
- name: Run Once - login-server
run: ./login-server --run-once

View File

@@ -1,5 +1,5 @@
name: Build servers with CMake
# build_servers_cmake.yml
name: Build servers on Windows
# build_servers_windows.yml
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
@@ -29,25 +29,19 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# The ubuntu-latest label currently points to ubuntu-22.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-latest]
os: [windows-latest]
steps:
- uses: actions/checkout@v2
# Install latest CMake.
- uses: lukka/get-cmake@latest
- uses: actions/checkout@v4
- name: Create build directory
run: mkdir cbuild
run: cmake -E make_directory ${{github.workspace}}/build
- name: Create Unix Makefiles
run: |
cd cbuild
cmake -G "Unix Makefiles" ..
- name: Configure CMake
working-directory: ${{github.workspace}}/build
run: cmake ..
- name: Command - make
run: |
cd cbuild
make
- name: Build
working-directory: ${{github.workspace}}/build
# Execute the build. You can specify a specific target with "--target <NAME>"
run: cmake --build . -j2 --target server tools

View File

@@ -21,6 +21,8 @@ on:
# This workflow should run when a file in either the db/ or npc/ directory has been modified.
- 'db/**'
- 'npc/**'
# This workflow should run whenever a CMake related file has been modified
- '**/CMakeLists.txt'
jobs:
build:
@@ -33,55 +35,49 @@ jobs:
# The ubuntu-latest label currently points to ubuntu-22.04.
# Available: ubuntu-22.04, ubuntu-20.04
os: [ubuntu-latest]
# Only a single version of GCC is required for validating NPC scripts and database changes.
gcc: ['11']
# We run build checks for both Renewal and PRE-Renewal
mode: ['PRE', 'RE']
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
# A simple 'yes' and 'no' can be confusing, so we use names to display in the current job then convert them for use in the compiler.
- name: Variable Parsing - PRE
if: ${{ matrix.mode == 'PRE' }}
if: ${{ matrix.mode == 'PRE' }}
run: |
echo "PRERE=yes" >> $GITHUB_ENV
echo "PRERE=ON" >> $GITHUB_ENV
- name: Variable Parsing - RE
if: ${{ matrix.mode == 'RE' }}
if: ${{ matrix.mode == 'RE' }}
run: |
echo "PRERE=no" >> $GITHUB_ENV
echo "PRERE=OFF" >> $GITHUB_ENV
- name: Update & Install packages
# Ubuntu runners already have most of the packages rAthena requires to build.
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2204-Readme.md
run: |
sudo apt update
sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
sudo apt install zlib1g-dev libpcre3-dev
- name: Start MySQL
run: sudo systemctl start mysql.service
- name: Setup Database and import table data
run: ./tools/ci/sql.sh
- name: Command - configure
env:
CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-prere=${{ env.PRERE }} --enable-buildbot=yes'
run: ./configure $CONFIGURE_FLAGS
- name: Create build directory
run: cmake -E make_directory ${{github.workspace}}/build
- name: Configure CMake
working-directory: ${{github.workspace}}/build
run: cmake .. -DENABLE_PRERENEWAL=${{env.PRERE}} -DENABLE_EXTRA_BUILDBOT_CODE=ON
- name: Build
working-directory: ${{github.workspace}}/build
run: cmake --build . -j2 --target map-server
# npc.sh enables all NPC scripts in the custom and test folders.
- name: Enable All NPCs for Testing
run: ./tools/ci/npc.sh
- name: Command - make clean
run: make clean
# Create import directories
- name: Command - make import
run: make import
- name: Command - make map
run: make map
- name: Run Once - map-server
run: ./map-server --run-once

6
.gitignore vendored
View File

@@ -139,6 +139,12 @@ Thumbs.db
/yamlupgrade.bat
/navigenerator.bat
# Linux script tools
/athena-start.sh
# /function.sh
# /install.sh
# /uninstall.sh
# dlls
/libmysql.dll
/pcre8.dll

View File

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

View File

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

View File

@@ -1,29 +1,27 @@
find_path( LIBCONFIG_INCLUDE_DIRS "libconfig.h"
PATHS "${CMAKE_CURRENT_SOURCE_DIR}"
NO_DEFAULT_PATH )
find_path( LIBCONFIG_SOURCE_DIR "libconfig.c"
PATHS "${CMAKE_CURRENT_SOURCE_DIR}"
NO_DEFAULT_PATH )
mark_as_advanced( LIBCONFIG_INCLUDE_DIRS )
mark_as_advanced( LIBCONFIG_SOURCE_DIR )
add_library(libconfig STATIC)
set( LIBCONFIG_HEADERS
"${CMAKE_CURRENT_SOURCE_DIR}/grammar.h"
"${CMAKE_CURRENT_SOURCE_DIR}/libconfig.h"
"${CMAKE_CURRENT_SOURCE_DIR}/parsectx.h"
"${CMAKE_CURRENT_SOURCE_DIR}/scanctx.h"
"${CMAKE_CURRENT_SOURCE_DIR}/scanner.h"
"${CMAKE_CURRENT_SOURCE_DIR}/strbuf.h"
"${CMAKE_CURRENT_SOURCE_DIR}/wincompat.h"
CACHE INTERNAL "libconfig headers" )
set( LIBCONFIG_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/grammar.c"
"${CMAKE_CURRENT_SOURCE_DIR}/libconfig.c"
"${CMAKE_CURRENT_SOURCE_DIR}/scanctx.c"
"${CMAKE_CURRENT_SOURCE_DIR}/scanner.c"
"${CMAKE_CURRENT_SOURCE_DIR}/strbuf.c"
CACHE INTERNAL "libconfig sources" )
set( LIBCONFIG_DEFINITIONS
"-DLIBCONFIG_STATIC"
CACHE INTERNAL "libconfig definitions" )
target_sources(libconfig PRIVATE
"grammar.c"
"libconfig.c"
"scanctx.c"
"scanner.c"
"strbuf.c"
)
target_include_directories(libconfig PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
target_compile_definitions(libconfig PUBLIC "-DLIBCONFIG_STATIC")
if(WIN32)
target_sources(libconfig PRIVATE
"grammar.h"
"libconfig.h"
"parsectx.h"
"scanctx.h"
"scanner.h"
"strbuf.h"
"wincompat.h"
)
set_target_properties(libconfig PROPERTIES FOLDER "3rdparty")
endif()

View File

@@ -95,6 +95,7 @@ endif()
c4_add_dev_targets()
add_custom_target(ryml-uninstall
"${CMAKE_COMMAND}" -P "${PROJECT_SOURCE_DIR}/cmake/uninstall.cmake"
)
# rathena
if(WIN32)
set_target_properties(ryml PROPERTIES FOLDER "3rdparty")
endif()

View File

@@ -78,13 +78,6 @@ endif()
set(C4CORE_AMALGAMATED ${C4CORE_SRC_DIR}/../src_singleheader/c4/c4core_all.hpp)
list(TRANSFORM C4CORE_SRC_FILES PREPEND "${C4CORE_SRC_DIR}/" OUTPUT_VARIABLE C4CORE_SRC_FILES_FULL)
add_custom_target(c4core-amalgamate
python ${CMAKE_CURRENT_LIST_DIR}/tools/amalgamate.py ${C4CORE_AMALGAMATED}
COMMENT "${CMAKE_CURRENT_LIST_DIR}/tools/amalgamate.py ${C4CORE_AMALGAMATED}"
BYPRODUCTS ${C4CORE_AMALGAMATED}
DEPENDS ${C4CORE_SRC_FILES_FULL}
)
c4_add_library(c4core
INC_DIRS
$<BUILD_INTERFACE:${C4CORE_SRC_DIR}> $<INSTALL_INTERFACE:include>
@@ -105,3 +98,8 @@ c4_install_exports()
c4_add_dev_targets()
c4_pack_project(TYPE LIBRARY)
# rathena
if(WIN32)
set_target_properties(c4core PROPERTIES FOLDER "3rdparty")
endif()

View File

@@ -1,87 +1,78 @@
cmake_minimum_required(VERSION 2.8)
set(YAML_HEADERS
"yaml.h"
"traits.h"
"stlemitter.h"
"parser.h"
"ostream_wrapper.h"
"null.h"
"noncopyable.h"
"noexcept.h"
"mark.h"
"exceptions.h"
"eventhandler.h"
"emitterstyle.h"
"emittermanip.h"
"emitter.h"
"emitterdef.h"
"emitfromevents.h"
"dll.h"
"depthguard.h"
"binary.h"
"anchor.h"
"node/type.h"
"node/ptr.h"
"node/parse.h"
"node/node.h"
"node/iterator.h"
"node/impl.h"
"node/emit.h"
"node/convert.h"
"contrib/graphbuilder.h"
"contrib/anchordict.h"
)
list(TRANSFORM YAML_HEADERS PREPEND "include/yaml-cpp/")
## start setting
SET (this_target yaml-cpp)
PROJECT(${this_target})
set(YAML_SOURCES
"binary.cpp"
"convert.cpp"
"depthguard.cpp"
"directives.cpp"
"emit.cpp"
"emitfromevents.cpp"
"emitter.cpp"
"emitterstate.cpp"
"emitterutils.cpp"
"exceptions.cpp"
"exp.cpp"
"memory.cpp"
"nodebuilder.cpp"
"node.cpp"
"node_data.cpp"
"nodeevents.cpp"
"null.cpp"
"ostream_wrapper.cpp"
"parse.cpp"
"parser.cpp"
"regex_yaml.cpp"
"scanner.cpp"
"scanscalar.cpp"
"scantag.cpp"
"scantoken.cpp"
"simplekey.cpp"
"singledocparser.cpp"
"stream.cpp"
"tag.cpp"
"contrib/graphbuilderadapter.cpp"
"contrib/graphbuilder.cpp"
)
list(TRANSFORM YAML_SOURCES PREPEND "src/")
find_path( YAML_INCLUDE_DIRS "yaml-cpp/yaml.h"
PATHS "${CMAKE_CURRENT_SOURCE_DIR}/include"
NO_DEFAULT_PATH )
find_path( YAML_SOURCE_DIR "regex_yaml.cpp"
PATHS "${CMAKE_CURRENT_SOURCE_DIR}/src"
NO_DEFAULT_PATH )
mark_as_advanced( YAML_INCLUDE_DIRS )
mark_as_advanced( YAML_SOURCE_DIR )
add_library(yaml-cpp STATIC EXCLUDE_FROM_ALL ${YAML_SOURCES})
set( YAML_HEADERS
"${YAML_INCLUDE_DIRS}/yaml-cpp/yaml.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/traits.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/stlemitter.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/parser.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/ostream_wrapper.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/null.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/noncopyable.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/noexcept.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/mark.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/exceptions.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/eventhandler.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/emitterstyle.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/emittermanip.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/emitter.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/emitterdef.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/emitfromevents.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/dll.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/depthguard.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/binary.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/anchor.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/node/type.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/node/ptr.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/node/parse.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/node/node.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/node/iterator.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/node/impl.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/node/emit.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/node/convert.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/contrib/graphbuilder.h"
"${YAML_INCLUDE_DIRS}/yaml-cpp/contrib/anchordict.h"
CACHE INTERNAL "yaml headers" )
set( YAML_SOURCES
"${YAML_SOURCE_DIR}/binary.cpp"
"${YAML_SOURCE_DIR}/convert.cpp"
"${YAML_SOURCE_DIR}/depthguard.cpp"
"${YAML_SOURCE_DIR}/directives.cpp"
"${YAML_SOURCE_DIR}/emit.cpp"
"${YAML_SOURCE_DIR}/emitfromevents.cpp"
"${YAML_SOURCE_DIR}/emitter.cpp"
"${YAML_SOURCE_DIR}/emitterstate.cpp"
"${YAML_SOURCE_DIR}/emitterutils.cpp"
"${YAML_SOURCE_DIR}/exceptions.cpp"
"${YAML_SOURCE_DIR}/exp.cpp"
"${YAML_SOURCE_DIR}/memory.cpp"
"${YAML_SOURCE_DIR}/nodebuilder.cpp"
"${YAML_SOURCE_DIR}/node.cpp"
"${YAML_SOURCE_DIR}/node_data.cpp"
"${YAML_SOURCE_DIR}/nodeevents.cpp"
"${YAML_SOURCE_DIR}/null.cpp"
"${YAML_SOURCE_DIR}/ostream_wrapper.cpp"
"${YAML_SOURCE_DIR}/parse.cpp"
"${YAML_SOURCE_DIR}/parser.cpp"
"${YAML_SOURCE_DIR}/regex_yaml.cpp"
"${YAML_SOURCE_DIR}/scanner.cpp"
"${YAML_SOURCE_DIR}/scanscalar.cpp"
"${YAML_SOURCE_DIR}/scantag.cpp"
"${YAML_SOURCE_DIR}/scantoken.cpp"
"${YAML_SOURCE_DIR}/simplekey.cpp"
"${YAML_SOURCE_DIR}/singledocparser.cpp"
"${YAML_SOURCE_DIR}/stream.cpp"
"${YAML_SOURCE_DIR}/tag.cpp"
"${YAML_SOURCE_DIR}/contrib/graphbuilderadapter.cpp"
"${YAML_SOURCE_DIR}/contrib/graphbuilder.cpp"
CACHE INTERNAL "yaml sources" )
set( YAML_DEFINITIONS
"-std=c++11"
CACHE INTERNAL "yaml definitions" )
include_directories(${YAML_INCLUDE_DIRS} ${YAML_SOURCE_DIR})
#message(STATUS "YAML_INCLUDE_DIRS : ${YAML_INCLUDE_DIRS}, YAML_SOURCE_DIR=${YAML_SOURCE_DIR}")
ADD_LIBRARY(${this_target} STATIC ${YAML_SOURCES} )
target_compile_definitions(${this_target} PUBLIC "-DYAML_CPP_STATIC_DEFINE")
target_include_directories(yaml-cpp PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
target_compile_definitions(yaml-cpp PUBLIC "-DYAML_CPP_STATIC_DEFINE")
if(WIN32)
set_target_properties(yaml-cpp PROPERTIES FOLDER "3rdparty")
endif()

View File

@@ -1,630 +1,105 @@
#####################################################################
#
# "Getting Started with CMake", a tutorial video by Eric Wing.
# Part 1 of 6: http://www.youtube.com/watch?v=CLvZTyji_Uw
# Part 2 of 6: http://www.youtube.com/watch?v=gUW-RrRQjEg
# Part 3 of 6: http://www.youtube.com/watch?v=sz6cPhbuTk4
# Part 4 of 6: http://www.youtube.com/watch?v=JICZOkyNXbg
# Part 5 of 6: http://www.youtube.com/watch?v=lAiuLHy4dCk
# Part 6 of 6: http://www.youtube.com/watch?v=fAtJNzDZdH8
#
# You can use notepad++ for syntax highlighting.
# Naming conventions:
# WITH_* : option to use an external package or not
# ENABLE_* : option to use an internal feature/code or not
# HAVE_* : internal variable indicating if we have and are using something
#
# Maintainers: Flavio J. Saraiva (feel free to send complaints or suggestions)
# flaviojs @ rAthena forum/irc
# flaviojs2005 \A-T/ gmail <D.o,T> com
# lightaisme \A-T/ gmail <D.o,T> com
#
#####################################################################
cmake_minimum_required(VERSION 3.11)
project(rAthena)
# Configure CMake Modules
list(APPEND CMAKE_MODULE_PATH
"${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/cmake"
"${CMAKE_CURRENT_SOURCE_DIR}/tools/cmake")
#cmake_minimum_required( VERSION 2.8.4 )
# Functional changes from 2.8.3 to 2.8.4:
# string(SUBSTRING) works with length -1 as "rest of string"
# changes to some CPack generators
# CYGWIN no longer defines WIN32
# CMP0017: Prefer files from the CMake module directory when including from there.
# Update to 3.1 for CMAKE_CXX_STANDARD cross support definition
set( CMAKE_LEGACY_CYGWIN_WIN32 0 )
cmake_minimum_required( VERSION 3.1 )
project( rAthena )
if( CYGWIN )
unset( WIN32 )
endif()
set(CMAKE_CXX_STANDARD 17) # C++17...
set(CMAKE_CXX_STANDARD_REQUIRED ON) #...is required...
#set(CMAKE_CXX_EXTENSIONS OFF) #...without compiler extensions like gnu++11
# options
set(PACKETVER 20211103 CACHE STRING "Sets the PACKETVER define of the servers (see src/common/mmo.hpp)")
set(MAXCONN CACHE STRING "Sets the MAXCONN define of the servers. (see src/common/socket.hpp)")
option(ENABLE_PRERENEWAL "Whether or not to enable Pre-renewal (default=OFF)" OFF)
option(ENABLE_WEB_SERVER "Build web-server (default=ON)" ON)
option(ENABLE_RDTSC "Enable RDTSC instruction as a timing source (default=OFF)" OFF)
option(ENABLE_EXTRA_DEBUG_CODE "Enable extra debug code (default=OFF)" OFF)
option(ENABLE_MEMMGR "Enable memory manager (default=ON)" ON)
# TODO(vstumpf): If no one uses this, we can just remove it
# set(ENABLE_MEMORY "system" CACHE STRING "Enable memory library (default=system)")
option(ENABLE_PROFILER "Enable profiler (default=OFF)" OFF)
option(ENABLE_EXTRA_BUILDBOT_CODE "Enable extra buildbot code (default=OFF)" OFF)
option(ENABLE_EPOLL "Use epoll instead of select (default=OFF)" OFF)
option(ENABLE_VIP "Enable VIP system (default=OFF)" OFF)
#actually this might be misleading for arm...
if( CMAKE_SIZEOF_VOID_P EQUAL 4 )
set(architecture x86)
elseif( CMAKE_SIZEOF_VOID_P EQUAL 8 )
set(architecture x64)
else()
message( FATAL_ERROR "unexpected architecture (CMAKE_SIZEOF_VOID_P is ${CMAKE_SIZEOF_VOID_P})" )
endif()
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib/${suffixInstallStr})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib/${suffixInstallStr})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
set(CMAKE_C_CREATE_SHARED_LIBRARY)
set(CMAKE_CXX_CREATE_SHARED_LIBRARY)
set(CMAKE_DEBUG_POSTFIX "d")
set(CMAKE_RELEASE_POSTFIX "r")
# Set a default build type if none was specified
set(default_build_type "Release")
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
message(STATUS "Setting build type to '${default_build_type}' as none was specified.")
set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE
STRING "Choose the type of build." FORCE)
# Set the possible values of build type for cmake-gui
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
"Debug" "Release" "MinSizeRel" "RelWithDebInfo")
set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE
STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel" FORCE)
message(STATUS "Setting build type to '${default_build_type}' as none was specified.")
endif()
if(CMAKE_GENERATOR MATCHES "Visual Studio")
set(ENABLE_MSVC_PARALLEL ON CACHE STRING "\
Enables /MP flag for parallel builds using MSVC. Specify an integer value to control \
the number of threads used (Only works on versions of Visual Studio). Setting to ON \
lets the toolchain decide how many threads to use. Set to OFF to disable /MP completely." )
if(ENABLE_MSVC_PARALLEL)
if(ENABLE_MSVC_PARALLEL GREATER 0)
string(APPEND CMAKE_C_FLAGS " /MP${ENABLE_MSVC_PARALLEL}")
string(APPEND CMAKE_CXX_FLAGS " /MP${ENABLE_MSVC_PARALLEL}")
else()
string(APPEND CMAKE_C_FLAGS " /MP")
string(APPEND CMAKE_CXX_FLAGS " /MP")
endif()
endif()
endif()
#
# Prevent building in the source directory by default
#
option( ALLOW_SAME_DIRECTORY "Allow CMake to build in the source directory." OFF )
if( ALLOW_SAME_DIRECTORY )
elseif( "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}" )
message( FATAL_ERROR
"Do not use the source directory to build your files, instead delete CMakeCache.txt, create a separate folder and build there.\n"
"Example: (build in subdir 'build' and install to source dir)\n"
" rm -f CMakeCache.txt\n"
" mkdir build\n"
" cd build\n"
" cmake -G\"Unix Makefiles\" -DINSTALL_TO_SOURCE=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo ..\n"
" make install\n"
" cd ..\n"
" rm -rf build\n"
"To skip this check, set ALLOW_SAME_DIRECTORY to ON (-DALLOW_SAME_DIRECTORY=ON)" )
if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
message( FATAL_ERROR
"Do not use the source directory to build your files, instead delete CMakeCache.txt, create a separate folder and build there.\n"
"Example: (build in subdir 'build' and install to source dir)\n"
" rm -f CMakeCache.txt\n"
" mkdir build\n"
" cd build\n"
" cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..\n"
" make install\n"
" cd ..\n"
" rm -rf build\n")
endif()
#
# Global stuff
#
set( GLOBAL_LIBRARIES ${LINK_LIBRARIES} CACHE INTERNAL "" )# list (comma separated values)
set( GLOBAL_INCLUDE_DIRS ${INCLUDE_DIRECTORIES} CACHE INTERNAL "" )# list (comma separated values)
set( GLOBAL_DEFINITIONS ${COMPILE_DEFINITIONS} CACHE INTERNAL "" )# string (space separated values -DFOO=bar)
mark_as_advanced( GLOBAL_LIBRARIES GLOBAL_INCLUDE_DIRS GLOBAL_DEFINITIONS )
if( WIN32 )
set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -DFD_SETSIZE=4096" )
endif()
if( MSVC )
set_property( CACHE GLOBAL_LIBRARIES PROPERTY VALUE ${GLOBAL_LIBRARIES} "oldnames.lib" "ws2_32.lib" )
set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE" )
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC)
set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -fno-strict-aliasing" )
#set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -O2" ); #need more test to enable this
if(WIN32)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
endif()
#
# 3rd party
#
set( CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/cmake CACHE INTERNAL "" )
include( CheckCSourceCompiles )
include( CheckCSourceRuns )
include( CheckIncludeFile )
include( CheckFunctionExists )
include( FindFunctionLibrary )
include( TestBigEndian )
# Configure C++ Standard
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
#
# PACKETVER
#
set( PACKETVER CACHE STRING "Sets the PACKETVER define of the servers. (see src/common/mmo.h)" )
if( PACKETVER )
list( APPEND GLOBAL_DEFINITIONS PACKETVER=${PACKETVER} )
# Set build directories
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib/${suffixInstallStr})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib/${suffixInstallStr})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
if(WIN32)
set(RuntimeOutputDir "${CMAKE_BINARY_DIR}/..")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${RuntimeOutputDir})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${RuntimeOutputDir})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${RuntimeOutputDir})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${RuntimeOutputDir})
if (MSVC AND NOT MSVC_VERSION VERSION_LESS 142)
add_link_options($<$<CONFIG:Debug>:/INCREMENTAL>)
add_compile_options($<$<CONFIG:Debug>:/ZI>)
endif()
add_compile_definitions($<$<CONFIG:DEBUG>:_ITERATOR_DEBUG_LEVEL=0>)
endif()
add_subdirectory(db)
add_subdirectory(conf)
add_subdirectory(3rdparty)
add_subdirectory(src)
add_subdirectory(tools)
#
# Find git
#
message( STATUS "Detecting git" )
find_package(Git)
if(GIT_FOUND)
if(GIT_VERSION_STRING)
message(STATUS "Found git : ${GIT_EXECUTABLE} version (${GIT_VERSION_STRING})")
else()
message(STATUS "Found git : ${GIT_EXECUTABLE}")
endif()
endif()
include(GetGitVersion)
get_git_version()
#include(GetSvnVersion)
#get_svn_version(SVN_VERSION)
#message( STATUS "SVN_VERSION: ${SVN_VERSION}" )
#
# threads
#
message( STATUS "Detecting threads library" )
set( CMAKE_THREAD_PREFER_PTHREAD 1 )
find_package(Threads REQUIRED)
if( CMAKE_THREAD_LIBS_INIT )
message( STATUS "Adding global library: ${CMAKE_THREAD_LIBS_INIT}" )
set_property( CACHE GLOBAL_LIBRARIES PROPERTY VALUE ${GLOBAL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} )
endif()
message( STATUS "Detecting threads library - done" )
message( STATUS "Check if supporting Thread local storage (TLS)" )
file( READ "${CMAKE_SOURCE_DIR}/3rdparty/cmake/tests/HAVE_TLS.c" _SOURCE )
CHECK_C_SOURCE_RUNS( "${_SOURCE}" HAVE_TLS )
if( HAVE_TLS )
message( STATUS "Check for TLS- yes" )
set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -DHAVE_TLS" )
else()
message( STATUS "Check for TLS - no" )
endif()
#
# math library (FreeBSD/Linux/Solaris)
#
if( NOT WIN32 )
message( STATUS "Detecting math library (m)" )
CHECK_INCLUDE_FILE( math.h HAVE_MATH_H )
if( NOT HAVE_MATH_H )
message( FATAL_ERROR "math.h not found" )
endif()
set( CMAKE_REQUIRED_LIBRARIES ${GLOBAL_LIBRARIES} )
find_function_library( floor FUNCTION_FLOOR_LIBRARIES m )
if( FUNCTION_FLOOR_LIBRARIES )
message( STATUS "Adding global library: ${FUNCTION_FLOOR_LIBRARIES}" )
set_property( CACHE GLOBAL_LIBRARIES PROPERTY VALUE ${GLOBAL_LIBRARIES} ${FUNCTION_FLOOR_LIBRARIES} )
endif()
message( STATUS "Detecting math library (m) - done" )
endif()
#
# dynamic loading library (Linux)
#
if( NOT WIN32 )
message( STATUS "Detecting dynamic loading library (dl)" )
set( CMAKE_REQUIRED_LIBRARIES ${GLOBAL_LIBRARIES} )
find_function_library( dlopen FUNCTION_DLOPEN_LIBRARIES dl )
if( FUNCTION_DLOPEN_LIBRARIES )
message( STATUS "Adding global library: ${FUNCTION_DLOPEN_LIBRARIES}" )
set_property( CACHE GLOBAL_LIBRARIES PROPERTY VALUE ${GLOBAL_LIBRARIES} ${FUNCTION_DLOPEN_LIBRARIES} )
endif()
message( STATUS "Detecting dynamic loading library (dl) - done" )
endif()
#
# networking library (Solaris/MinGW)
#
if( NOT MSVC )
message( STATUS "Detecting networking library (socket/nsl/ws2_32)" )
#set( CMAKE_REQUIRED_LIBRARIES ${GLOBAL_LIBRARIES} )
#find_function_library( bind FUNCTION_BIND_LIBRARIES socket ws2_32 )
#if( FUNCTION_BIND_LIBRARIES )
# message( STATUS "Adding global library: ${FUNCTION_BIND_LIBRARIES}" )
# set_property( CACHE GLOBAL_LIBRARIES PROPERTY VALUE ${GLOBAL_LIBRARIES} ${FUNCTION_BIND_LIBRARIES} )
#endif()
set( CMAKE_REQUIRED_LIBRARIES ${GLOBAL_LIBRARIES} )
find_function_library( gethostbyname FUNCTION_GETHOSTBYNAME_LIBRARIES nsl )
if( FUNCTION_GETHOSTBYNAME_LIBRARIES )
message( STATUS "Adding global library: ${FUNCTION_GETHOSTBYNAME_LIBRARIES}" )
set_property( CACHE GLOBAL_LIBRARIES PROPERTY VALUE ${GLOBAL_LIBRARIES} ${FUNCTION_GETHOSTBYNAME_LIBRARIES} )
endif()
message( STATUS "Detecting networking library (socket/nsl/ws2_32) - done" )
endif()
#
# enable web server?
#
option( ENABLE_WEB_SERVER "Build web-server (default=ON)" ON )
#
# Test for big endian
#
TEST_BIG_ENDIAN( BIG_ENDIAN )
if( NOT DEFINED BIG_ENDIAN )
message( WARNING "unable to determine endianness, only LITTLE ENDIAN is supported" )
elseif( BIG_ENDIAN )
message( FATAL_ERROR "bigendian is not supported" )
endif()
#
# Test monotonic clock
#
# CLOCK_MONOTONIC clock for clock_gettime
# Normally defines _POSIX_TIMERS > 0 and _POSIX_MONOTONIC_CLOCK (for posix
# compliant systems) and __FreeBSD_cc_version >= 500005 (for FreeBSD
# >= 5.1.0, which does not have the posix defines (ref. r11983)) would be
# checked but some systems define them even when they do not support it
# (ref. bugreport:1003).
#
message( STATUS "Check for monotonic clock" )
find_library( RT_LIBRARY rt )# (optional, rt on Debian)
mark_as_advanced( RT_LIBRARY )
set( CMAKE_REQUIRED_LIBRARIES ${GLOBAL_LIBRARIES} ${RT_LIBRARY} )
file( READ "${CMAKE_SOURCE_DIR}/3rdparty/cmake/tests/HAVE_MONOTONIC_CLOCK.c" _SOURCE )
CHECK_C_SOURCE_RUNS( "${_SOURCE}" HAVE_MONOTONIC_CLOCK )
if( HAVE_MONOTONIC_CLOCK )
message( STATUS "Check for monotonic clock - yes" )
set_property( CACHE GLOBAL_LIBRARIES PROPERTY VALUE ${GLOBAL_LIBRARIES} ${RT_LIBRARY} )
set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -DHAVE_MONOTONIC_CLOCK" )
else()
message( STATUS "Check for monotonic clock - no" )
endif()
#
# Test if function exists:
# setrlimit - used to set the socket limit
# strnlen - string length with upper scan bound
# getpid - process id
# gettid - thread id
#
CHECK_FUNCTION_EXISTS( setrlimit HAVE_SETRLIMIT )
CHECK_FUNCTION_EXISTS( strnlen HAVE_STRNLEN )
CHECK_FUNCTION_EXISTS( getpid HAVE_GETPID )
CHECK_FUNCTION_EXISTS( gettid HAVE_GETTID )
foreach( define HAVE_SETRLIMIT HAVE_STRNLEN HAVE_GETPID HAVE_GETTID )
if( ${define} )
set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -D${define}" )
endif()
endforeach()
#
# Use RDTSC instruction as a timing source (time stamp counter on x86 since Pentium) (default=OFF)
#
# Enable it when you've timing issues. (ex: in conjunction with XEN or Other Virtualization mechanisms)
# Please ensure that you've disabled dynamic CPU-Frequencys, such as power saving options.
# (On the most modern Dedicated Servers cpufreq is preconfigured, see your distribution's manual how to disable it)
#
option( ENABLE_RDTSC "use RDTSC instruction as a timing source (default=OFF)" OFF )
if( ENABLE_RDTSC )
set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -DENABLE_RDTSC" )
message( STATUS "Enabled RDTSC as a timing source" )
endif()
#
# Enable extra debug code (default=OFF)
#
option( ENABLE_EXTRA_DEBUG_CODE "enable extra debug code (default=OFF)" OFF )
if( ENABLE_EXTRA_DEBUG_CODE )
set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -DDEBUG" )
message( STATUS "Enabled extra DEBUG code" )
endif()
#
# Enable EPOLL (default=OFF)
# Only for Linux
#
option( ENABLE_EXTRA_SOCKET_POLL "enable SOCKET_EPOLL (default=OFF)" OFF )
if( ENABLE_EXTRA_SOCKET_POLL )
set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -DSOCKET_EPOLL" )
message( STATUS "Enabled SOCKET_EPOLL" )
endif()
#
# Enable builtin memory manager (default=default)
#
set( MEMMGR_OPTIONS "default;yes;no" )
set( ENABLE_MEMMGR "default" CACHE STRING "enable builtin memory manager: ${MEMMGR_OPTIONS} (default=default)" )
set_property( CACHE ENABLE_MEMMGR PROPERTY STRINGS ${MEMMGR_OPTIONS} )
if( ENABLE_MEMMGR STREQUAL "default" )
# use source code default
elseif( ENABLE_MEMMGR STREQUAL "yes" )
set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -DUSE_MEMMGR" )
message( STATUS "Enabled the builtin memory manager" )
elseif( ENABLE_MEMMGR STREQUAL "no" )
set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -DNO_MEMMGR" )
message( STATUS "Disabled the builtin memory manager" )
else()
message( FATAL_ERROR "invalid option ENABLE_MEMMGR=${ENABLE_MEMMGR} (valid options: ${MEMMGR_OPTIONS})" )
endif()
#
# Enable memory library (default=system)
#
set( MEMORY_OPTIONS "system;memwatch;dmalloc;gcollect" )
set( ENABLE_MEMORY "system" CACHE STRING "enable memory library: ${MEMORY_OPTIONS} (default=system)" )
set_property( CACHE ENABLE_MEMORY PROPERTY STRINGS ${MEMORY_OPTIONS} )
if( ENABLE_MEMORY STREQUAL "system" )
# use system functions
elseif( ENABLE_MEMORY STREQUAL "memwatch" )
CHECK_INCLUDE_FILE( memwatch.h HAVE_MEMWATCH_H )
find_library( MEMWATCH_LIBRARY memwatch )
mark_as_advanced( MEMWATCH_LIBRARY )
if( HAVE_MEMWATCH_H AND MEMWATCH_LIBRARY )
message( STATUS "Adding global library: ${MEMWATCH_LIBRARY}" )
set_property( CACHE GLOBAL_LIBRARIES PROPERTY VALUE ${GLOBAL_LIBRARIES} ${MEMWATCH_LIBRARY} )
set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -DMEMWATCH" )
message( STATUS "Enabled the memory library memwatch" )
else()
message( FATAL_ERROR "Failed to enable the memory library memwatch" )
endif()
elseif( ENABLE_MEMORY STREQUAL "dmalloc" )
CHECK_INCLUDE_FILE( dmalloc.h HAVE_DMALLOC_H )
find_library( DMALLOC_LIBRARY dmalloc )
mark_as_advanced( DMALLOC_LIBRARY )
if( HAVE_DMALLOC_H AND DMALLOC_LIBRARY )
message( STATUS "Adding global library: ${DMALLOC_LIBRARY}" )
set_property( CACHE GLOBAL_LIBRARIES PROPERTY VALUE ${GLOBAL_LIBRARIES} ${DMALLOC_LIBRARY} )
set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -DDMALLOC -DDMALLOC_FUNC_CHECK" )
message( STATUS "Enabled the memory library dmalloc" )
else()
message( FATAL_ERROR "Failed to enable the memory library dmalloc" )
endif()
elseif( ENABLE_MEMORY STREQUAL "gcollect" )
CHECK_INCLUDE_FILE( gc.h HAVE_GC_H )
find_library( GC_LIBRARY gc )
mark_as_advanced( GC_LIBRARY )
if( HAVE_GC_H AND GC_LIBRARY )
message( STATUS "Adding global library: ${GC_LIBRARY}" )
set_property( CACHE GLOBAL_LIBRARIES PROPERTY VALUE ${GLOBAL_LIBRARIES} ${GC_LIBRARY} )
set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -DGCOLLECT" )
message( STATUS "Enabled the memory library gcollect" )
else()
message( FATAL_ERROR "Failed to enable the memory library gcollect" )
endif()
else()
message( FATAL_ERROR "invalid option ENABLE_MEMORY=${ENABLE_MEMORY} (valid options: ${MEMORY_OPTIONS})" )
endif()
#
# Enable profiler (default=none)
#
set( PROFILER_OPTIONS "none;gprof" )
set( ENABLE_PROFILER "none" CACHE STRING "enable profiler: ${PROFILER_OPTIONS} (default=none)" )
set_property( CACHE ENABLE_PROFILER PROPERTY STRINGS ${PROFILER_OPTIONS} )
if( ENABLE_PROFILER STREQUAL "none" )
# no profiler
elseif( ENABLE_PROFILER STREQUAL "gprof" )
if( CMAKE_C_COMPILER_ID STREQUAL "GNU" )
if( NOT HAVE_GPROF_FLAGS )
set_property( CACHE CMAKE_C_FLAGS PROPERTY VALUE "${CMAKE_C_FLAGS} -pg" )
set_property( CACHE CMAKE_EXE_LINKER_FLAGS PROPERTY VALUE "${CMAKE_EXE_LINKER_FLAGS} -pg" )
set( HAVE_GPROF_FLAGS ON CACHE INTERNAL "" )
endif()
message( STATUS "Enabled the profiler gprof" )
else()
message( FATAL_ERROR "Failed to enable the profiler gprof - not GNU" )
endif()
else()
message( FATAL_ERROR "invalid option ENABLE_PROFILER=${ENABLE_PROFILER} (valid options: ${PROFILER_OPTIONS})" )
endif()
#
# Enable extra buildbot code (default=OFF)
#
option( ENABLE_EXTRA_BUILDBOT_CODE "enable extra buildbot code (default=OFF)" OFF )
if( ENABLE_EXTRA_BUILDBOT_CODE )
set_property( CACHE GLOBAL_DEFINITIONS PROPERTY VALUE "${GLOBAL_DEFINITIONS} -DBUILDBOT" )
message( STATUS "Enabled extra BUILDBOT code" )
endif()
#####################################################################
# package stuff
#
set( CPACK_PACKAGE_NAME "rAthena" )
set( CPACK_PACKAGE_DESCRIPTION_SUMMARY "MMORPG server package" )
set( CPACK_PACKAGE_VERSION ${SVNVERSION} )
set( CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE )
#set( CPACK_MONOLITHIC_INSTALL ON )
include( CPACK OPTIONAL RESULT_VARIABLE HAVE_CPACK )
if( HAVE_CPACK )
option( WITH_CPACK "enable building packages with CPack ('package' target)" ON )
endif()
if( NOT WITH_CPACK )
# empty replacements
macro( cpack_add_component_group )
endmacro()
macro( cpack_add_component )
endmacro()
message( STATUS "Disabled package creation" )
endif()
set( Runtime "Runtime files" CACHE INTERNAL "" )
set( Runtime_base "configurations, dbs, npcs, docs, ..." CACHE INTERNAL "" )
set( Runtime_templates "conf/import and save (generated from conf/import-tmpl and save-tmpl)" CACHE INTERNAL "" )
cpack_add_component_group( Runtime DESCRIPTION ${Runtime} DISPLAY_NAME "Runtime" )
cpack_add_component( Runtime_base DESCRIPTION ${Runtime_base} DISPLAY_NAME "Base files" GROUP Runtime )
cpack_add_component( Runtime_templates DESCRIPTION ${Runtime_templates} DISPLAY_NAME "Base templates" GROUP Runtime )
set( Development "Development files" CACHE INTERNAL "" )
set( Development_base "projects, 3rdparty, sources, templates" CACHE INTERNAL "" )
cpack_add_component_group( Development DESCRIPTION ${Development} DISPLAY_NAME "Development" )
cpack_add_component( Development_base DESCRIPTION ${Development_base} DISPLAY_NAME "Base files" GROUP Development )
#
# install stuff
#
option( INSTALL_COMPONENT_RUNTIME "install/package files needed to run the project" ON )
option( INSTALL_COMPONENT_DEVELOPMENT "install/package files needed to build the project" OFF )
option( INSTALL_TO_PATH "copy files to INSTALL_PATH" OFF )
option( INSTALL_TO_SOURCE "copy files to source directory, skips what is already there (${CMAKE_CURRENT_SOURCE_DIR})" OFF )
option( INSTALL_TO_SUBDIR "copy files to subdirectory (${CMAKE_CURRENT_BINARY_DIR}/install)" OFF )
set( INSTALL_PATH "${CMAKE_INSTALL_PREFIX}" CACHE STRING "install path (only used when INSTALL_TO_PATH is set)" )
mark_as_advanced( CMAKE_INSTALL_PREFIX )
if( INSTALL_TO_PATH AND NOT ("${INSTALL_TO}" STREQUAL "path") )# changed to path
set_property( CACHE INSTALL_TO_SOURCE INSTALL_TO_SUBDIR PROPERTY VALUE OFF )
elseif( INSTALL_TO_SOURCE AND NOT ("${INSTALL_TO}" STREQUAL "source") )# changed to source
set_property( CACHE INSTALL_TO_PATH INSTALL_TO_SUBDIR PROPERTY VALUE OFF )
elseif( INSTALL_TO_SUBDIR AND NOT ("${INSTALL_TO}" STREQUAL "subdir") )# changed to subdir
set_property( CACHE INSTALL_TO_PATH INSTALL_TO_SOURCE PROPERTY VALUE OFF )
elseif( NOT INSTALL_TO_PATH AND NOT INSTALL_TO_SOURCE AND NOT INSTALL_TO_SUBDIR )# default
set_property( CACHE INSTALL_TO_SUBDIR PROPERTY VALUE ON )
endif()
if( INSTALL_TO_PATH )
set( INSTALL_TO "path" CACHE INTERNAL "" )
set_property( CACHE CMAKE_INSTALL_PREFIX PROPERTY VALUE "${INSTALL_PATH}" )
elseif( INSTALL_TO_SOURCE )
set( INSTALL_TO "source" CACHE INTERNAL "" )
set_property( CACHE CMAKE_INSTALL_PREFIX PROPERTY VALUE "${CMAKE_CURRENT_SOURCE_DIR}" )
elseif( INSTALL_TO_SUBDIR )
set( INSTALL_TO "subdir" CACHE INTERNAL "" )
set_property( CACHE CMAKE_INSTALL_PREFIX PROPERTY VALUE "${CMAKE_CURRENT_BINARY_DIR}/install" )
endif()
set( SVN_FOLDER_PATTERN "[\\.]svn" CACHE STRING "pattern of svn folder that we exclude from instalations" )
mark_as_advanced( SVN_FOLDER_PATTERN )
set( DEVELOPMENT_FILES
"${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt"
"${CMAKE_CURRENT_SOURCE_DIR}/configure"
"${CMAKE_CURRENT_SOURCE_DIR}/configure.in"
"${CMAKE_CURRENT_SOURCE_DIR}/rAthena.sln"
)
set( DEVELOPMENT_DIRECTORIES
"3rdparty"
"conf/import-tmpl"
"conf/msg_conf/import-tmpl"
"db/import-tmpl"
"src"
)
set( RUNTIME_FILES
"${CMAKE_CURRENT_SOURCE_DIR}/athena-start"
"${CMAKE_CURRENT_SOURCE_DIR}/LICENSE"
"${CMAKE_CURRENT_SOURCE_DIR}/README.md"
)
if (WIN32)
set (RUNTIME_FILES
${RUNTIME_FILES}
"${CMAKE_CURRENT_SOURCE_DIR}/dbghelp.dll"
"${CMAKE_CURRENT_SOURCE_DIR}/libmysql.dll"
"${CMAKE_CURRENT_SOURCE_DIR}/pcre3.dll"
"${CMAKE_CURRENT_SOURCE_DIR}/zlib1.dll"
"${CMAKE_CURRENT_SOURCE_DIR}/tools/charserv.bat"
"${CMAKE_CURRENT_SOURCE_DIR}/tools/logserv.bat"
"${CMAKE_CURRENT_SOURCE_DIR}/tools/mapserv.bat"
"${CMAKE_CURRENT_SOURCE_DIR}/tools/runserver.bat"
"${CMAKE_CURRENT_SOURCE_DIR}/tools/serv.bat"
)
endif(WIN32)
set( RUNTIME_DIRECTORIES
"conf"
"db"
"doc"
"log"
"npc"
"sql-files"
"tools"
)
if( INSTALL_TO_SOURCE )# skip, already in the source dir
else()
if( INSTALL_COMPONENT_RUNTIME )
install( FILES ${RUNTIME_FILES}
DESTINATION "."
COMPONENT Runtime_base )
foreach( DIR IN ITEMS ${RUNTIME_DIRECTORIES} )
if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${DIR}/" )
install( DIRECTORY "${DIR}/"
DESTINATION "${DIR}"
COMPONENT Runtime_base
PATTERN ${SVN_FOLDER_PATTERN} EXCLUDE
PATTERN "conf/import-tmpl" EXCLUDE )
else()
# create empty directory
install( CODE "file(MAKE_DIRECTORY \"\${ENV}\${CMAKE_INSTALL_PREFIX}/${DIR}\")"
COMPONENT Runtime_base )
endif()
endforeach()
endif( INSTALL_COMPONENT_RUNTIME )
if( INSTALL_COMPONENT_DEVELOPMENT )
install( FILES ${DEVELOPMENT_FILES}
DESTINATION "."
COMPONENT Development_base )
foreach( DIR IN ITEMS ${DEVELOPMENT_DIRECTORIES} )
install( DIRECTORY "${DIR}/"
DESTINATION "${DIR}"
COMPONENT Development_base
PATTERN ${SVN_FOLDER_PATTERN} EXCLUDE )
endforeach()
endif( INSTALL_COMPONENT_DEVELOPMENT )
endif()
if( INSTALL_COMPONENT_RUNTIME )
# templates
set( _TEMPLATES
"conf/import-tmpl" "conf/import"
"conf/msg_conf/import-tmpl" "conf/msg_conf/import"
"db/import-tmpl" "db/import"
)
set( INSTALL_TEMPLATES_FILE "${CMAKE_CURRENT_BINARY_DIR}/InstallTemplates.cmake" )
file( WRITE "${INSTALL_TEMPLATES_FILE}"
"macro( INSTALL_TEMPLATE _SRC _DST )\n"
" set( SRC \"${CMAKE_CURRENT_SOURCE_DIR}/\${_SRC}\" )\n"
" set( DST \"\${CMAKE_INSTALL_PREFIX}/\${_DST}\" )\n"
" if( EXISTS \"\${DST}\" )\n"
" message( \"-- Already exists: \${DST}\" )\n"
" else()\n"
" message( \"-- Installing template: \${DST}\" )\n"
" execute_process( COMMAND \"${CMAKE_COMMAND}\" -E copy \"\${SRC}\" \"\${DST}\" )\n"
" endif()\n"
"endmacro()\n"
)
while( _TEMPLATES )
list( GET _TEMPLATES 0 _SRC )
list( GET _TEMPLATES 1 _DST )
list( REMOVE_AT _TEMPLATES 0 1 )
if( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_SRC}" )
file( GLOB _PATHS "${CMAKE_CURRENT_SOURCE_DIR}/${_SRC}/*" )
foreach( _PATH IN ITEMS ${_PATHS} )
string( REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/${_SRC}/" "" _PATH "${_PATH}" )
if( NOT "${_PATH}" MATCHES "${SVN_FOLDER_PATTERN}" )
list( APPEND _TEMPLATES "${_SRC}/${_PATH}" "${_DST}/${_PATH}" )
endif()
endforeach()
else()
file( APPEND "${INSTALL_TEMPLATES_FILE}" "INSTALL_TEMPLATE( \"${_SRC}\" \"${_DST}\" )\n" )
endif()
endwhile()
install( SCRIPT "${INSTALL_TEMPLATES_FILE}"
COMPONENT Runtime_templates )
endif( INSTALL_COMPONENT_RUNTIME )
#
# sources
#
set( TARGET_LIST CACHE INTERNAL "" )
add_subdirectory( 3rdparty )
add_subdirectory( src )
#####################################################################
# final checks and warnings
#
list( LENGTH TARGET_LIST _LEN )
if( _LEN EQUAL 0 )
message( FATAL_ERROR "no targets available" )
endif()
message( STATUS "Available targets:" )
foreach( _TARGET IN ITEMS ${TARGET_LIST} )
message( STATUS "\t${_TARGET}" )
endforeach()
add_custom_target(server
DEPENDS login-server char-server map-server web-server scripts
)

View File

@@ -224,4 +224,5 @@ case $1 in
;;
esac
echo "Using the configure scripts and ./athena-start is deprecated. Use CMake and ./athena-start.sh" 1>&2
exit 1

35
conf/CMakeLists.txt Normal file
View File

@@ -0,0 +1,35 @@
include(CopyImportFiles)
set(CONF_FILES_TO_IMPORT
"atcommands.yml"
"battle_conf.txt"
"char_conf.txt"
"groups.yml"
"inter_conf.txt"
"inter_server.yml"
"log_conf.txt"
"login_conf.txt"
"map_conf.txt"
"packet_conf.txt"
"script_conf.txt"
"web_conf.txt")
copy_import_files(${CMAKE_CURRENT_SOURCE_DIR}/import-tmpl/
${CMAKE_CURRENT_SOURCE_DIR}/import
"${CONF_FILES_TO_IMPORT}")
set(MSG_FILES_TO_IMPORT
"map_msg_chn_conf.txt"
"map_msg_eng_conf.txt"
"map_msg_frn_conf.txt"
"map_msg_grm_conf.txt"
"map_msg_idn_conf.txt"
"map_msg_mal_conf.txt"
"map_msg_por_conf.txt"
"map_msg_rus_conf.txt"
"map_msg_spn_conf.txt"
"map_msg_tha_conf.txt")
copy_import_files(${CMAKE_CURRENT_SOURCE_DIR}/msg_conf/import-tmpl/
${CMAKE_CURRENT_SOURCE_DIR}/msg_conf/import
"${MSG_FILES_TO_IMPORT}")

View File

@@ -918,6 +918,11 @@ Body:
- Command: reloadbattleconf
Help: |
Reload battle settings.
- Command: reloadcashdb
Aliases:
- reloadcashshop
Help: |
Reload cash shop database.
- Command: reloadinstancedb
Help: |
Reload instance database.
@@ -956,6 +961,7 @@ Body:
atcommand battleconf statusdb
pcdb motd script
questdb msgconf packetdb
cashdb
- Command: langtype
Help: |
Params: <language>

View File

@@ -130,10 +130,19 @@ equip_self_break_rate: 100
// This affects the behaviour of skills like acid terror and meltdown
equip_skill_break_rate: 100
// Do weapon attacks have a attack speed delay before actual damage is applied? (Note 1)
// NOTE: The official setting is yes, even thought it degrades performance a bit.
// Should damage have a delay before it is applied? (Note 1)
// Some skills might not have a delay by default regardless of this setting.
// The official setting is yes, even thought it degrades performance a bit.
delay_battle_damage: yes
// Should the damage timing be synchronized between the client and server? (Note 1)
// This is not official behavior, but it should remove the position lag after being hit by a monster.
// This setting only affects normal monster attacks and takes priority over "delay_battle_damage".
// Many skills show their damage immediately, so setting "delay_battle_damage" to "no" at the same
// time might improve the experience further, but will not work for all skills.
// Tired of Dark Illusion hitting you 5 seconds too late? Then turn this on.
synchronize_damage: no
// Are arrows/ammo consumed when used on a bow/gun?
// 0 = No
// 1 = Yes

View File

@@ -33,8 +33,7 @@ max_exp_gain_rate: 0
// Method of calculating earned experience when defeating a monster:
// 0 = uses damage given / total damage as damage ratio
// 1 = uses damage given / max_hp as damage ratio
// NOTE: Using type 1 disables the bonus where the first attacker gets
// his share of the exp doubled when multiple people attack the mob.
// 2 = 0 + first attacker counts twice
exp_calc_type: 0
// Experience increase per attacker. That is, every additional attacker to the

27
conf/battle/instance.conf Normal file
View File

@@ -0,0 +1,27 @@
//--------------------------------------------------------------
// rAthena Battle Configuration File
// Originally Translated by Peter Kieser <pfak@telus.net>
// Made in to plainer English by Ancyker
//--------------------------------------------------------------
// Note 1: Value is a config switch (on/off, yes/no or 1/0)
// Note 2: Value is in percents (100 means 100%)
// Note 3: Value is a bit field. If no description is given,
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
//--------------------------------------------------------------
// Block leaving for parties, guilds or clans if they have an active instance?
// Default: yes (Official)
instance_block_leave: yes
// Block leader changes for parties or guilds if they have an active instance?
// Default: yes (Official)
instance_block_leaderchange: yes
// Block inviting for parties or guilds if they have an active instance?
// This also blocks joining parties, guilds or clans that have a running instance.
// Default: yes (Official)
instance_block_invite: yes
// Block expulsion for parties or guilds if they have an active instance?
// Default: yes (Official)
instance_block_expulsion: yes

View File

@@ -93,7 +93,7 @@ allow_equip_restricted_item: yes
// Default on official servers: yes for Pre-renewal, no for Renewal
//item_enabled_npc: yes
// Allow map_flooritem to check if item is droppable? (Note 1)
// Allow map_addflooritem to check if item is droppable? (Note 1)
// If yes, undroppable items will be destroyed instead of appearing on the map when a player's inventory is full.
// Default: yes
item_flooritem_check: yes

View File

@@ -183,3 +183,17 @@ mail_delay: 1000
// Hides items from the player's favorite tab from being sold to a NPC. (Note 1)
hide_fav_sell: no
// When searching for a random position on the map, how much of the border of the map shall not be considered?
// Officially the 15 tiles from the edge of the map on each side are not considered as target cells.
// On some maps like in Pyramids this causes there to be very few monsters in the outer areas. This also
// affects teleportation. Set this to 1 if you want it to be closer to the old emulator behavior.
// Valid values: 1-40
map_edge_size: 15
// When a player drops items, can they stack on the same cell? (Note 1)
// Officially there's no limit on how many items you can drop on the same cell.
// If you set this to "no", when you drop an item, it will only drop on a cell that has no item on it yet.
// A free cell will be searched for in eight directions. If no free cell could be found in those eight tries,
// then dropping the item will fail (the item stays in the player's inventory).
item_stacking: yes

View File

@@ -79,10 +79,10 @@ monster_chase_refresh: 30
// 8: Enable mob-warping when standing on Dimensional Door
mob_warp: 0
// If these are set above 0, they define the time (in ms) during which monsters
// will have their 'AI' active after all players have left their vicinity.
mob_active_time: 0
boss_active_time: 0
// Defines the time (in ms) during which monsters will have their AI active
// after all players have left their vicinity.
mob_active_time: 5000
boss_active_time: 5000
// Mobs and Pets view-range adjustment (range2 column in the mob_db) (Note 2)
view_range_rate: 100
@@ -163,6 +163,15 @@ no_spawn_on_player: 0
// map regardless of what the mob-spawn file says.
force_random_spawn: no
// Should each monster's center cell be randomized? (Note 1)
// Officially, at server start, each monster's center cell is set to a random cell in the spawn area.
// Each time the monster spawns it will spawn in an area around its center cell rather than the
// original center of the spawn definition. This results in a much larger total spawn area and a
// different experience each server start.
// Set this to "no" if you want all monsters of a spawn to spawn around the original center of the
// spawn definition, making the total spawn area much smaller (old eAthena behavior).
randomize_center_cell: yes
// Do summon slaves inherit the passive/aggressive traits of their master?
// 0: No, retain original mode.
// 1: Slaves are always aggressive.
@@ -302,3 +311,8 @@ slave_stick_with_master: no
// Also used in delaying the spawning of guardians when a guild is not loaded.
// Default (Official): 1000
mob_respawn_time: 1000
// Defines the time (in ms) after which a monster unlocks its target when trapped.
// During this time monsters will still be in idle mode and use idle skills on random
// targets, but they continue chasing their original target when no longer trapped.
mob_unlock_time: 2000

View File

@@ -41,6 +41,10 @@ pet_hungry_delay_rate: 100
// These bonuses are unofficial and found in the import/pet_db.yml
pet_equip_required: yes
// Should the pet equipment be destroyed if the owner doesn't have enough space in their inventory? (Note 1)
// Official behavior is "yes", setting this to "no" will leave the item equipped.
pet_unequip_destroy: yes
// When the master attacks a monster, whether or not the pet will also attack. (Note 1)
pet_attack_support: no

View File

@@ -298,12 +298,9 @@ trait_points_job_change: 7
// Official is 100.
max_trait_parameter: 100
// Max amount of RES/MRES to take into the resistance damage reduction formula.
// A setting of 625 means the max reduction of damage allowed is 50.0%.
// Formula is 100 - 100 * (5000 + RES) / (5000 + 10 * RES)
// Note: Best to leave this setting alone unless you know what your doing.
// Default: 625
max_res_mres_reduction: 625
// Max percent of RES/MRES that can be ignored by item bonus/skill.
// Default: 50
max_res_mres_ignored: 50
// Maximum AP
// Default: 1000

View File

@@ -26,8 +26,8 @@ min_skill_delay_limit: 100
// This delay is the min 'can't walk delay' of all skills.
// NOTE: Do not set this too low, if a character starts moving too soon after
// doing a skill, the client will not update this, and the player/mob will
// appear to "teleport" afterwards.
// doing a skill, the client will not update this, and the player will appear
// to "teleport" afterwards. Monsters use AttackMotion instead.
default_walk_delay: 300
// Completely disable skill delay of the following types (Note 3)
@@ -270,8 +270,10 @@ allow_skill_without_day: no
// Allow use of ES-type magic on players?
allow_es_magic_player: no
// Miracle of the Sun, Moon and Stars skill ratio (100% = 10000)
sg_miracle_skill_ratio: 2
// Miracle of the Sun, Moon and Stars skill ratio
// Valid values range from 1 (0.005% per hit) to 20000 (100% per hit)
// This chance is further reduced if AGI is above 46 (92 = halved chance)
sg_miracle_skill_ratio: 1
// Miracle of the Sun, Moon and Stars skill duration in milliseconds
sg_miracle_skill_duration: 3600000

View File

@@ -8,6 +8,9 @@
//General battle-related settings.
import: conf/battle/battle.conf
//Battleground settings
import: conf/battle/battleground.conf
//Settings specific to the client.
import: conf/battle/client.conf
@@ -17,14 +20,20 @@ import: conf/battle/drops.conf
//Experience rates, exp penalties, stats and max level settings.
import: conf/battle/exp.conf
//Feature control (on/off) settings
import: conf/battle/feature.conf
//GM levels, atcommands and hack-related configs.
import: conf/battle/gm.conf
//Guild and WoE settings
import: conf/battle/guild.conf
//Battleground settings
import: conf/battle/battleground.conf
//Homunc related configuration
import: conf/battle/homunc.conf
//Instance settings
import: conf/battle/instance.conf
//Item/card-specific and crafting related options.
import: conf/battle/items.conf
@@ -32,15 +41,16 @@ import: conf/battle/items.conf
//Mob related configuration
import: conf/battle/monster.conf
// Anything else that didn't fit anywhere else.
// Includes duel, day/night, mute/manner, log settings.
import: conf/battle/misc.conf
//Party related configuration
import: conf/battle/party.conf
//Pet related configuration
import: conf/battle/pet.conf
//Homunc related configuration
import: conf/battle/homunc.conf
//Player specific settings
import: conf/battle/player.conf
@@ -50,12 +60,5 @@ import: conf/battle/skill.conf
//Status change related settings
import: conf/battle/status.conf
//Feature control (on/off) settings
import: conf/battle/feature.conf
// Anything else that didn't fit anywhere else.
// Includes duel, day/night, mute/manner, log settings.
import: conf/battle/misc.conf
//Your custom config goes here.
import: conf/import/battle_conf.txt

View File

@@ -144,6 +144,10 @@ unknown_char_name: Unknown
// To log the character server?
log_char: yes
// Minimum length for a character name.
// Must be set to '4' unless your client uses the 'Remove 4/6 letter Character Name limit' diff patch.
char_name_min_length: 4
// Allow or not identical name for characters but with a different case (upper/lower):
// example: Test-test-TEST-TesT; Value: 0 not allowed (default), 1 allowed
name_ignoring_case: no

View File

@@ -55,9 +55,15 @@ console: off
// Note: This only works if client side password encryption is not enabled.
new_account: no
//If new_account is enabled, minimum length to userid and passwords should be 4?
//Must be 'Yes' unless your client uses both 'Disable 4 LetterUserID/Password' Diffs
new_acc_length_limit: yes
// If new_account is enabled, changes the minimum length for the account name.
// By default is set to '4' or '6' (depending on the new login UI).
// Don't change it unless your client uses the 'Remove 4/6 letter User Name limit' diff patch.
//acc_name_min_length: 6
// If new_account is enabled, changes the minimum length for the password.
// By default is set to '4' or '6' (depending on the new login UI).
// Don't change it unless your client uses the 'Remove 4/6 letter Password limit' diff patch.
//password_min_length: 6
// Account registration flood protection system
// allowed_regs is the number of registrations allowed in time_allowed (in seconds)

View File

@@ -1613,5 +1613,29 @@ map: bl_depth2
// Fantasy Series Sonic Collaboration - Dr. Eggman's Secret Base
map: 1@vrsn
// Episode 21
map: 1@ep21a
map: 1@ep21b
map: 1@mdtem
map: 1@twbs2
map: 1@wtgs
map: 2@mdtem
map: jalbe_in
map: jor_albe
map: jor_base
map: jor_crk
map: jor_crk_p
map: jor_mbase
map: jor_raise1
map: jor_raise2
map: jor_tmple1
map: jor_tmple2
map: luna_sf1
map: luna_sf2
map: mbase_in
// Market place
map: prt_mk
//------------------------- Clone Maps ---------------------------
//------------------------- Extra Maps ---------------------------

View File

@@ -775,7 +775,7 @@
730: Character cannot be disguised while in monster form.
731: Transforming into monster is not allowed in Guild Wars.
732: Item cannot be opened when your inventory is full.
//732: Free
733: Please enter a NPC file name (usage: @reloadnpcfile <file name>).
@@ -933,7 +933,10 @@
// NoBank Mapflag
831: You cannot use the Bank on this map.
//832-899 free
// @reloadcashdb
832: Cash shop database has been reloaded.
//833-899 free
//------------------------------------
// More atcommands message

View File

@@ -765,7 +765,7 @@
730: Karakter tidak dapat disguise ketika sedang berwujud monster.
731: Perubahan menjadi monster tidak diizinkan dalam Guild Wars.
732: Item tidak dapat dibuka ketika inventory penuh.
//732: Free
//733 free

View File

@@ -779,7 +779,7 @@
730: O personagem não pode ser disfarçado enquanto estiver em forma de monstro.
731: Transformar em monstro não é permitido em GvG.
732: O item não pode ser aberto quando o seu inventário está cheio.
//732: Free
733: Por favor insira um nome de arquivo NPC (uso: @reloadnpcfile <nome do arquivo>).

View File

@@ -775,7 +775,7 @@
730: El personaje no puede disfrazarse si está transformado en un monstruo.
731: No puedes transformarte en monstruo durante la guerra de clanes.
732: No puedes abrir el objeto porque tu inventario está lleno.
//732: libre
733: Introduce la ruta de archivo de un NPC (instrucciones: @reloadnpcfile <ruta>).

72
db/CMakeLists.txt Normal file
View File

@@ -0,0 +1,72 @@
include(CopyImportFiles)
# Why do we list all the files instead of using glob?
# This way, if we add a new file, the build system will know to regenerate
# and the new file will be copied over.
set(DB_FILES_TO_IMPORT
"abra_db.yml"
"achievement_db.yml"
"achievement_level_db.yml"
"attendance.yml"
"attr_fix.yml"
"battleground_db.yml"
"captcha_db.yml"
"castle_db.yml"
"const.yml"
"create_arrow_db.yml"
"elemental_db.yml"
"enchantgrade.yml"
"exp_guild.yml"
"exp_homun.yml"
"guild_skill_tree.yml"
"homunculus_db.yml"
"instance_db.yml"
"item_cash.yml"
"item_combos.yml"
"item_db.yml"
"item_enchant.yml"
"item_group_db.yml"
"item_noequip.txt"
"item_packages.yml"
"item_randomopt_db.yml"
"item_randomopt_group.yml"
"item_reform.yml"
"job_noenter_map.txt"
"job_stats.yml"
"laphine_synthesis.yml"
"laphine_upgrade.yml"
"level_penalty.yml"
"magicmushroom_db.yml"
"map_cache.dat"
"map_drops.yml"
"map_index.txt"
"mercenary_db.yml"
"mob_avail.yml"
"mob_chat_db.yml"
"mob_db.yml"
"mob_item_ratio.yml"
"mob_skill_db.txt"
"mob_summon.yml"
"pet_db.yml"
"produce_db.txt"
"quest_db.yml"
"refine.yml"
"reputation_group.yml"
"reputation.yml"
"size_fix.yml"
"skill_changematerial_db.txt"
"skill_damage_db.txt"
"skill_db.yml"
"skill_nocast_db.txt"
"skill_tree.yml"
"spellbook_db.yml"
"statpoint.yml"
"status_disabled.txt"
"status.yml"
"stylist.yml"
)
copy_import_files(${CMAKE_CURRENT_SOURCE_DIR}/import-tmpl/
${CMAKE_CURRENT_SOURCE_DIR}/import
"${DB_FILES_TO_IMPORT}")

View File

@@ -56,6 +56,7 @@
# WalkSpeed Walk speed. (Default: DEFAULT_WALK_SPEED)
# AttackDelay Attack speed. (Default: 0)
# AttackMotion Attack animation speed. (Default: 0)
# ClientAttackMotion Client attack speed. (Default: AttackMotion)
# DamageMotion Damage animation speed. (Default: 0)
# DamageTaken Rate at which the monster will receive incoming damage. (Default: 100)
# Ai Aegis monster type AI behavior. (Default: 06)
@@ -77,7 +78,7 @@
Header:
Type: MOB_DB
Version: 3
Version: 4
#Body:
# eAthena Dev Team

Binary file not shown.

View File

@@ -1241,6 +1241,26 @@ t_garden
3@vrpop
bl_depth2
1@vrsn
1@ep21a
1@ep21b
1@mdtem
1@twbs2
1@wtgs
2@mdtem
jalbe_in
jor_albe
jor_base
jor_crk
jor_crk_p
jor_mbase
jor_raise1
jor_raise2
jor_tmple1
jor_tmple2
luna_sf1
luna_sf2
mbase_in
prt_mk
//======================================================================================
// - Other/Extra maps -

View File

@@ -56,6 +56,7 @@
# WalkSpeed Walk speed. (Default: DEFAULT_WALK_SPEED)
# AttackDelay Attack speed. (Default: 0)
# AttackMotion Attack animation speed. (Default: 0)
# ClientAttackMotion Client attack speed. (Default: AttackMotion)
# DamageMotion Damage animation speed. (Default: 0)
# DamageTaken Rate at which the monster will receive incoming damage. (Default: 100)
# Ai Aegis monster type AI behavior. (Default: 06)
@@ -77,7 +78,7 @@
Header:
Type: MOB_DB
Version: 3
Version: 4
Footer:
Imports:

View File

@@ -8637,21 +8637,21 @@ Body:
Type: Usable
Weight: 10
Script: |
searchstores 10,0;
searchstores 10, SEARCHSTORE_EFFECT_NORMAL;
- Id: 12581
AegisName: Vending_Search_Scroll2
Name: Universal Catalog Gold
Type: Usable
Weight: 10
Script: |
searchstores 10,1;
searchstores 10, SEARCHSTORE_EFFECT_REMOTE;
- Id: 12591
AegisName: Uni_Catalog_Bz
Name: Universal Catalog Bronze
Type: Usable
Weight: 10
Script: |
searchstores 10,1;
searchstores 10, SEARCHSTORE_EFFECT_REMOTE;
- Id: 12609
AegisName: Old_Ore_Box
Name: Old Ore Box

File diff suppressed because it is too large Load Diff

View File

@@ -102,7 +102,7 @@
1019,Peco Peco@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,6,,,,,,
1019,Peco Peco@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
1019,Peco Peco@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,0,,,,,,19,
1020,Mandragora@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,randomtarget,always,0,,,,,,,
1020,Mandragora@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
1023,Orc Warrior@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,,,,,,,
1023,Orc Warrior@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,6,
1023,Orc Warrior@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
@@ -349,7 +349,7 @@
1067,Cornutus@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,0,,,,,,6,
1067,Cornutus@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
1067,Cornutus@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
1068,Hydra@NPC_WATERATTACK,attack,184,2,500,500,5000,no,randomtarget,always,0,,,,,,,
1068,Hydra@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,0,,,,,,,
1069,Swordfish@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
1069,Swordfish@WZ_WATERBALL,attack,86,3,500,1500,5000,yes,target,always,0,,,,,,,
1069,Swordfish@WZ_WATERBALL,chase,86,3,500,1500,5000,yes,target,always,0,,,,,,,
@@ -601,9 +601,9 @@
1117,Evil Druid@NPC_UNDEADATTACK,chase,347,3,500,500,5000,no,target,always,0,,,,,,9,
1117,Evil Druid@WZ_HEAVENDRIVE,attack,91,5,500,1200,5000,yes,target,always,0,,,,,,,
1117,Evil Druid@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,0,,,,,,,
1118,Flora@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,randomtarget,always,0,,,,,,,
1118,Flora@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
1118,Flora@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
1118,Flora@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,randomtarget,always,0,,,,,,,
1118,Flora@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
1119,Frilldora@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,0,,,,,,,
1119,Frilldora@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,0,,,,,,,
1119,Frilldora@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,0,,,,,,,
@@ -1297,7 +1297,7 @@
1276,Raydric Archer@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
1277,Greatest General@NPC_BLINDATTACK,idle,177,3,10000,1500,5000,no,randomtarget,longrangeattacked,,,,,,,6,
1277,Greatest General@NPC_BLINDATTACK,idle,177,3,10000,1500,5000,no,randomtarget,casttargeted,,,,,,,6,
1277,Greatest General@NPC_FIREATTACK,attack,186,2,500,500,5000,no,randomtarget,always,0,,,,,,,
1277,Greatest General@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,0,,,,,,,
1277,Greatest General@WZ_EARTHSPIKE,idle,90,3,5000,1500,5000,no,randomtarget,longrangeattacked,,,,,,,6,
1277,Greatest General@WZ_EARTHSPIKE,idle,90,3,5000,1500,5000,no,randomtarget,casttargeted,,,,,,,6,
1278,Stalactite Golem@NPC_STUNATTACK,attack,179,4,500,1500,5000,no,target,always,0,,,,,,6,
@@ -1580,7 +1580,7 @@
1367,Blazer@WZ_SIGHTRASHER,attack,81,5,500,1000,5000,no,target,always,0,,,,,,6,
1368,Geographer@AL_HEAL,attack,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
1368,Geographer@AL_HEAL,idle,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
1368,Geographer@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,randomtarget,always,0,,,,,,,
1368,Geographer@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,0,,,,,,,
1369,Grand Peco@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,6,
1369,Grand Peco@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
1369,Grand Peco@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
@@ -2563,8 +2563,8 @@
1510,Hylozoist@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,,
1511,Amon Ra@NPC_BLOODDRAIN,idle,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
1511,Amon Ra@NPC_BLOODDRAIN,idle,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
1511,Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
1511,Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
1511,Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,always,0,,,,,,29,
1511,Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,always,0,,,,,,29,
1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,no,self,longrangeattacked,0,1474,1477,1438,,,9,
1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,no,self,casttargeted,0,1474,1477,1438,,,9,
1511,Amon Ra@NPC_SUMMONMONSTER,attack,209,5,5000,0,10000,no,self,longrangeattacked,0,1474,1477,1438,,,9,
@@ -2583,11 +2583,11 @@
1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,skillused,83,,,,,,9,
1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,longrangeattacked,,,,,,,9,
1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,casttargeted,,,,,,,9,
1511,Amon Ra@WZ_METEOR,attack,83,11,5000,0,3000,yes,randomtarget,always,0,,,,,,9,
1511,Amon Ra@WZ_METEOR,attack,83,11,5000,0,3000,yes,target,always,0,,,,,,9,
1511,Amon Ra@WZ_FIREPILLAR,idle,80,10,10000,0,2000,yes,around2,always,0,,,,,,,
1511,Amon Ra@WZ_FIREPILLAR,idle,80,10,10000,0,2000,yes,around2,always,0,,,,,,,
1511,Amon Ra@WZ_FIREPILLAR,attack,80,10,5000,0,2000,yes,around2,always,0,,,,,,,
1511,Amon Ra@NPC_DARKBLESSING,attack,203,1,5000,0,2000,no,randomtarget,always,0,,,,,,,
1511,Amon Ra@NPC_DARKBLESSING,attack,203,1,5000,0,2000,no,target,always,0,,,,,,,
1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,5000,yes,randomtarget,always,0,,,,,,9,
1511,Amon Ra@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1511,Amon Ra@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
@@ -3398,18 +3398,18 @@
1663,Laurell Weinder@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1663,Laurell Weinder@NPC_EMOTION,attack,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1663,Laurell Weinder@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1664,Photon Cannon@NPC_WINDATTACK,attack,187,5,1000,1000,10000,yes,randomtarget,always,0,,,,,,,
1664,Photon Cannon@NPC_WINDATTACK,attack,187,3,2000,500,5000,yes,randomtarget,always,0,,,,,,,
1664,Photon Cannon@NPC_WINDATTACK,attack,187,1,10000,0,0,yes,randomtarget,always,0,,,,,,,
1665,Photon Cannon@NPC_FIREATTACK,attack,186,5,1000,1000,10000,yes,randomtarget,always,0,,,,,,,
1665,Photon Cannon@NPC_FIREATTACK,attack,186,3,2000,500,5000,yes,randomtarget,always,0,,,,,,,
1665,Photon Cannon@NPC_FIREATTACK,attack,186,1,10000,0,0,yes,randomtarget,always,0,,,,,,,
1666,Photon Cannon@NPC_WATERATTACK,attack,184,5,1000,1000,10000,yes,randomtarget,always,0,,,,,,,
1666,Photon Cannon@NPC_WATERATTACK,attack,184,3,2000,500,5000,yes,randomtarget,always,0,,,,,,,
1666,Photon Cannon@NPC_WATERATTACK,attack,184,1,10000,0,0,yes,randomtarget,always,0,,,,,,,
1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,5,1000,1000,10000,yes,randomtarget,always,0,,,,,,,
1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,3,2000,500,5000,yes,randomtarget,always,0,,,,,,,
1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,1,10000,0,0,yes,randomtarget,always,0,,,,,,,
1664,Photon Cannon@NPC_WINDATTACK,attack,187,5,1000,1000,10000,yes,target,always,0,,,,,,,
1664,Photon Cannon@NPC_WINDATTACK,attack,187,3,2000,500,5000,yes,target,always,0,,,,,,,
1664,Photon Cannon@NPC_WINDATTACK,attack,187,1,10000,0,0,yes,target,always,0,,,,,,,
1665,Photon Cannon@NPC_FIREATTACK,attack,186,5,1000,1000,10000,yes,target,always,0,,,,,,,
1665,Photon Cannon@NPC_FIREATTACK,attack,186,3,2000,500,5000,yes,target,always,0,,,,,,,
1665,Photon Cannon@NPC_FIREATTACK,attack,186,1,10000,0,0,yes,target,always,0,,,,,,,
1666,Photon Cannon@NPC_WATERATTACK,attack,184,5,1000,1000,10000,yes,target,always,0,,,,,,,
1666,Photon Cannon@NPC_WATERATTACK,attack,184,3,2000,500,5000,yes,target,always,0,,,,,,,
1666,Photon Cannon@NPC_WATERATTACK,attack,184,1,10000,0,0,yes,target,always,0,,,,,,,
1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,5,1000,1000,10000,yes,target,always,0,,,,,,,
1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,3,2000,500,5000,yes,target,always,0,,,,,,,
1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,1,10000,0,0,yes,target,always,0,,,,,,,
1668,Archdam@NPC_PIERCINGATT,attack,158,5,1000,0,5000,yes,target,always,0,,,,,,,
1668,Archdam@NPC_GUIDEDATTACK,attack,172,2,500,1000,20000,no,target,always,0,,,,,,29,
1668,Archdam@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,0,,,,,,,
@@ -3446,9 +3446,9 @@
1673,Dimik@NPC_COMBOATTACK,attack,171,4,500,700,5000,no,target,always,0,,,,,,,
1673,Dimik@NPC_COMBOATTACK,chase,171,4,500,700,5000,no,target,always,0,,,,,,,
1673,Dimik@NPC_FIREATTACK,attack,186,3,500,0,5000,yes,target,always,0,,,,,,,
1674,Monemus@NPC_FIREATTACK,attack,186,10,500,1000,30000,yes,randomtarget,always,0,,,,,,,
1674,Monemus@NPC_FIREATTACK,attack,186,3,1000,0,10000,yes,randomtarget,always,0,,,,,,,
1674,Monemus@NPC_FIREATTACK,attack,186,1,10000,0,0,yes,randomtarget,always,0,,,,,,,
1674,Monemus@NPC_FIREATTACK,attack,186,10,500,1000,30000,yes,target,always,0,,,,,,,
1674,Monemus@NPC_FIREATTACK,attack,186,3,1000,0,10000,yes,target,always,0,,,,,,,
1674,Monemus@NPC_FIREATTACK,attack,186,1,10000,0,0,yes,target,always,0,,,,,,,
1675,Venatu@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,,
1675,Venatu@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,0,,,,,,6,
1675,Venatu@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,11,
@@ -3524,11 +3524,11 @@
1688,Lady Tany@AL_TELEPORT,idle,26,1,1000,0,30000,yes,self,always,0,,,,,,,
1688,Lady Tany@AL_TELEPORT,attack,26,1,1000,0,30000,yes,self,always,0,,,,,,,
1688,Lady Tany@NPC_EXPULSION,attack,674,1,1000,1000,10000,no,target,myhpltmaxrate,60,,,,,,,
1688,Lady Tany@AC_CHARGEARROW,attack,148,1,2000,0,5000,yes,randomtarget,always,0,,,,,,6,
1688,Lady Tany@NPC_COMBOATTACK,attack,171,1,1000,0,5000,no,randomtarget,always,0,,,,,,,
1688,Lady Tany@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,randomtarget,always,0,,,,,,6,
1688,Lady Tany@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,randomtarget,always,0,,,,,,,
1688,Lady Tany@NPC_STUNATTACK,attack,179,5,500,0,5000,no,randomtarget,always,0,,,,,,,
1688,Lady Tany@AC_CHARGEARROW,attack,148,1,2000,0,5000,yes,target,always,0,,,,,,6,
1688,Lady Tany@NPC_COMBOATTACK,attack,171,1,1000,0,5000,no,target,always,0,,,,,,,
1688,Lady Tany@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
1688,Lady Tany@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,,
1688,Lady Tany@NPC_STUNATTACK,attack,179,5,500,0,5000,no,target,always,0,,,,,,,
1688,Lady Tany@NPC_DEFENDER,attack,205,1,500,0,30000,yes,self,longrangeattacked,,,,,,,29,
1688,Lady Tany@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
1688,Lady Tany@NPC_SUMMONSLAVE,attack,196,5,10000,2000,5000,no,self,slavele,2,1691,,,,,,
@@ -4055,7 +4055,7 @@
1764,Skeggiold@NPC_HOLYATTACK,chase,189,2,500,500,5000,no,target,always,0,,,,,,18,
1764,Skeggiold@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1764,Skeggiold@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1765,Valkyrie@AL_HEAL,idle,28,10,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
1765,Valkyrie@AL_HEAL,idle,28,11,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
1765,Valkyrie@AL_HEAL,attack,28,11,10000,500,10000,yes,friend,friendhpltmaxrate,60,,,,,,3,
1765,Valkyrie@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1765,Valkyrie@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,0,,,,,,,
@@ -4220,18 +4220,18 @@
1779,Ktullanux@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,0,,,,,,,
1779,Ktullanux@NPC_AGIUP,attack,350,5,10000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
1779,Ktullanux@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
1780,Muscipular@NPC_BLOODDRAIN,attack,199,1,1000,0,5000,yes,randomtarget,always,0,,,,,,,
1780,Muscipular@KN_SPEARSTAB,attack,58,5,500,800,5000,no,randomtarget,always,0,,,,,,6,
1780,Muscipular@NPC_GROUNDATTACK,attack,185,1,1000,0,5000,yes,randomtarget,always,0,,,,,,,
1780,Muscipular@NPC_BLOODDRAIN,attack,199,1,1000,0,5000,yes,target,always,0,,,,,,,
1780,Muscipular@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,0,,,,,,6,
1780,Muscipular@NPC_GROUNDATTACK,attack,185,1,1000,0,5000,yes,target,always,0,,,,,,,
1780,Muscipular@AL_HEAL,attack,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,50,,,,,,,
1780,Muscipular@AL_HEAL,idle,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,50,,,,,,,
1780,Muscipular@NPC_PETRIFYATTACK,attack,180,5,500,0,5000,yes,randomtarget,always,0,,,,,,,
1781,Drosera@NPC_BLOODDRAIN,attack,199,1,1000,0,5000,yes,randomtarget,always,0,,,,,,,
1781,Drosera@KN_PIERCE,attack,56,5,500,700,5000,no,randomtarget,always,0,,,,,,,
1781,Drosera@NPC_GROUNDATTACK,attack,185,1,1000,0,5000,yes,randomtarget,always,0,,,,,,,
1780,Muscipular@NPC_PETRIFYATTACK,attack,180,5,500,0,5000,yes,target,always,0,,,,,,,
1781,Drosera@NPC_BLOODDRAIN,attack,199,1,1000,0,5000,yes,target,always,0,,,,,,,
1781,Drosera@KN_PIERCE,attack,56,5,500,700,5000,no,target,always,0,,,,,,,
1781,Drosera@NPC_GROUNDATTACK,attack,185,1,1000,0,5000,yes,target,always,0,,,,,,,
1781,Drosera@RG_CLOSECONFINE,attack,1005,1,1000,0,30000,yes,target,always,0,,,,,,,
1781,Drosera@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,randomtarget,always,0,,,,,,6,
1781,Drosera@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,randomtarget,always,0,,,,,,,
1781,Drosera@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,0,,,,,,6,
1781,Drosera@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,0,,,,,,,
1782,Roween@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,0,,,,,,,
1782,Roween@NPC_COMBOATTACK,attack,171,4,500,500,5000,no,target,always,0,,,,,,6,
1782,Roween@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,0x308D,,,,,
@@ -5594,7 +5594,7 @@
2017,Rata@NPC_ARMORBRAKE,attack,344,3,2000,0,5000,yes,target,myhpltmaxrate,60,,,,,,,
2017,Rata@WZ_EARTHSPIKE,attack,90,5,3000,1000,5000,no,target,always,0,,,,,,6,
2017,Rata@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,0,,,,,,,
2017,Rata@SM_MAGNUM,attack,7,10,500,500,5000,no,self,always,0,,,,,,,
2017,Rata@SM_MAGNUM,attack,7,25,500,500,5000,no,self,always,0,,,,,,,
2017,Rata@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,,
2017,Rata@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
2017,Rata@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,0,,,,,,,
@@ -5694,6 +5694,14 @@
2027,Dark Shadow@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,,
2027,Dark Shadow@NPC_DARKNESSBREATH,attack,658,1,500,1000,5000,no,target,always,0,,,,,,,
//****
// NC Mechanic Summons
2042,Silver Sniper@NPC_REVENGE,idle,333,1,10000,0,0,yes,self,masterattacked,0,,,,,,,
2043,Magic Decoy Fire@MG_FIREBOLT,idle,19,10,10000,800,3500,no,randomtarget,always,0,,,,,,,
2044,Magic Decoy Water@MG_COLDBOLT,idle,14,10,10000,800,3500,no,randomtarget,always,0,,,,,,,
2045,Magic Decoy Earth@WZ_EARTHSPIKE,idle,90,10,10000,800,3500,no,randomtarget,always,0,,,,,,,
2046,Magic Decoy Wind@MG_LIGHTNINGBOLT,idle,20,10,10000,800,3500,no,randomtarget,always,0,,,,,,,
// Brasilis
2068,Boitata@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
2068,Boitata@MG_FIREBALL,idle,17,5,10000,0,5000,yes,randomtarget,always,0,,,,,,,
@@ -5771,28 +5779,3 @@
2082,Piranha@MG_COLDBOLT,chase,14,3,500,1000,5000,yes,target,always,0,,,,,,,
2082,Piranha@WZ_WATERBALL,attack,86,3,500,1000,5000,yes,target,always,0,,,,,,6,
2082,Piranha@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
//****
// NC Mechanic Summons
2042,Silver Sniper@AL_HEAL,chase,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2042,Silver Sniper@AL_HEAL,idle,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2042,Silver Sniper@AL_HEAL,attack,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2043,Magic Decoy Fire@MG_FIREBOLT,attack,19,10,10000,800,3500,no,target,always,0,,,,,,,
2043,Magic Decoy Fire@MG_FIREBOLT,chase,19,10,10000,800,3500,no,target,always,0,,,,,,,
2043,Magic Decoy Fire@AL_HEAL,chase,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2043,Magic Decoy Fire@AL_HEAL,idle,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2043,Magic Decoy Fire@AL_HEAL,attack,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2044,Magic Decoy Water@MG_COLDBOLT,attack,14,10,10000,800,3500,no,target,always,0,,,,,,,
2044,Magic Decoy Water@MG_COLDBOLT,chase,14,10,10000,800,3500,no,target,always,0,,,,,,,
2044,Magic Decoy Water@AL_HEAL,chase,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2044,Magic Decoy Water@AL_HEAL,idle,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2044,Magic Decoy Water@AL_HEAL,attack,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2045,Magic Decoy Earth@WZ_EARTHSPIKE,attack,90,10,10000,800,3500,no,target,always,0,,,,,,,
2045,Magic Decoy Earth@WZ_EARTHSPIKE,chase,90,10,10000,800,3500,no,target,always,0,,,,,,,
2045,Magic Decoy Earth@AL_HEAL,chase,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2045,Magic Decoy Earth@AL_HEAL,idle,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2045,Magic Decoy Earth@AL_HEAL,attack,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2046,Magic Decoy Wind@MG_LIGHTNINGBOLT,attack,20,10,10000,800,3500,no,target,always,0,,,,,,,
2046,Magic Decoy Wind@MG_LIGHTNINGBOLT,chase,20,10,10000,800,3500,no,target,always,0,,,,,,,
2046,Magic Decoy Wind@AL_HEAL,chase,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2046,Magic Decoy Wind@AL_HEAL,idle,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2046,Magic Decoy Wind@AL_HEAL,attack,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,

View File

@@ -4153,7 +4153,6 @@ Body:
Time: 120000
- Level: 5
Time: 60000
Duration2: 3000
Requires:
SpCost: 10
ItemCost:
@@ -4408,6 +4407,7 @@ Body:
TargetType: Ground
DamageFlags:
Splash: true
IgnoreAtkCard: true
Flags:
IsTrap: true
AlterRangeResearchTrap: true
@@ -5184,6 +5184,8 @@ Body:
MaxLevel: 1
Type: Weapon
TargetType: Attack
DamageFlags:
IgnoreAtkCard: true
Flags:
IsQuest: true
Range: 1
@@ -6885,12 +6887,9 @@ Body:
MaxLevel: 10
Type: Magic
TargetType: Self
DamageFlags:
IgnoreAtkCard: true
IgnoreFlee: true
Flags:
TargetSelf: true
Range: 5
Range: 9
Hit: Single
HitCount: 1
Element: Holy
@@ -7360,7 +7359,7 @@ Body:
Time: 1500
- Level: 5
Time: 1000
Duration2: 300000
Duration1: 300000
Requires:
SpCost: 1
Weapon:
@@ -8539,6 +8538,7 @@ Body:
HitCount: 1
SplashArea: -1
AfterCastActDelay: 4000
Duration1: 15000
Duration2: 12000
Requires:
SpCost:
@@ -8830,6 +8830,7 @@ Body:
HitCount: 1
SplashArea: -1
AfterCastActDelay: 4000
Duration1: 5000
Duration2: 5000
Requires:
SpCost:
@@ -9999,15 +10000,15 @@ Body:
Element: Weapon
Duration1:
- Level: 1
Time: 4000
Time: 2000
- Level: 2
Time: 8000
Time: 4000
- Level: 3
Time: 12000
Time: 6000
- Level: 4
Time: 16000
Time: 8000
- Level: 5
Time: 24000
Time: 10000
CastDelayFlags:
IgnoreStatus: true
Requires:
@@ -10023,7 +10024,7 @@ Body:
- Level: 5
Amount: 12
SpiritSphereCost: 1
Status: Stop
Status: Ankle
- Id: 372
Name: CH_CHAINCRUSH
Description: Chain Crush Combo
@@ -10802,7 +10803,7 @@ Body:
IgnoreDefense: true
Flags:
TargetTrap: true
Range: 5
Range: 4
Hit: Multi_Hit
HitCount: 5
Element: Weapon
@@ -10844,7 +10845,7 @@ Body:
Weapon:
1hSpear: true
2hSpear: true
Status: Stop
Status: Ankle
- Id: 398
Name: LK_HEADCRUSH
Description: Traumatic Blow
@@ -11063,7 +11064,7 @@ Body:
TargetType: Attack
DamageFlags:
NoDamage: true
Range: 7
Range: 9
Hit: Single
HitCount: 1
ActiveInstance: 3
@@ -14295,6 +14296,7 @@ Body:
TargetType: Ground
DamageFlags:
Splash: true
IgnoreAtkCard: true
IgnoreFlee: true
Flags:
AlterRangeSnakeEye: true
@@ -14380,7 +14382,7 @@ Body:
Type: Weapon
TargetType: Attack
DamageFlags:
IgnoreFlee: true
IgnoreAtkCard: true
Range: 9
Hit: Single
HitCount: 1
@@ -14398,7 +14400,6 @@ Body:
TargetType: Attack
DamageFlags:
IgnoreAtkCard: true
IgnoreFlee: true
Range: 9
Hit: Multi_Hit
HitCount: 3
@@ -14474,7 +14475,7 @@ Body:
Flags:
IgnoreBgReduction: true
IgnoreGvgReduction: true
Range: 9
Range: 7
Hit: Single
HitCount: 1
CopyFlags:
@@ -14511,6 +14512,8 @@ Body:
MaxLevel: 5
Type: Weapon
TargetType: Self
DamageFlags:
IgnoreAtkCard: true
Hit: Single
HitCount: 1
Element: Weapon
@@ -16331,7 +16334,7 @@ Body:
Flags:
IsNpc: true
HitCount: 1
Duration1: -1
Duration1: 300000
Status: Invincible
- Id: 686
Name: NPC_INVINCIBLEOFF
@@ -16343,8 +16346,6 @@ Body:
Flags:
IsNpc: true
HitCount: 1
Duration1: 60000
Status: InvincibleOff
- Id: 687
Name: NPC_ALLHEAL
Description: Full Heal
@@ -17181,6 +17182,7 @@ Body:
TargetType: Attack
DamageFlags:
Splash: true
IgnoreAtkCard: true
Flags:
IsQuest: true
Range: -1
@@ -32585,6 +32587,7 @@ Body:
TargetType: Ground
DamageFlags:
Splash: true
IgnoreAtkCard: true
Flags:
IsTrap: true
AlterRangeResearchTrap: true
@@ -32751,7 +32754,7 @@ Body:
IgnoreDefense: true
Flags:
TargetTrap: true
Range: 5
Range: 4
Hit: Multi_Hit
HitCount: 5
Element: Weapon
@@ -32794,7 +32797,7 @@ Body:
Amount: 27
- Level: 5
Amount: 30
Status: Stop
Status: Ankle
- Id: 8219
Name: ML_DEFENDER
Description: Defending_Aura

View File

@@ -769,7 +769,6 @@ Body:
NoBanishingBuster: true
NoClearance: true
RemoveOnChangeMap: true
MinDuration: 5000
- Status: Keeping
DurationLookup: NPC_KEEPING
CalcFlags:
@@ -2824,23 +2823,12 @@ Body:
Icon: EFST_INVINCIBLE
DurationLookup: NPC_INVINCIBLE
CalcFlags:
Aspd: true
Speed: true
Flags:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
EndOnStart:
Invincibleoff: true
- Status: Invincibleoff
DurationLookup: NPC_INVINCIBLEOFF
CalcFlags:
Speed: true
Flags:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
EndOnStart:
Invincible: true
- Status: Manu_Atk
Icon: EFST_MANU_ATK
Flags:

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

@@ -1,5 +1,5 @@
# This file is a part of rAthena.
# Copyright(C) 2022 rAthena Development Team
# Copyright(C) 2024 rAthena Development Team
# https://rathena.org - https://github.com/rathena
#
# This program is free software: you can redistribute it and/or modify
@@ -31469,6 +31469,698 @@ Body:
# Chance: 500
# - Item: Signet_Of_Wis2
# Chance: 500
- Id: 143
TargetItems:
Gaebolg_Armor: true
Gaebolg_Robe: true
Order:
- Slot: 3
- Slot: 2
- Slot: 1
Slots:
- Slot: 3
PerfectEnchants:
- Item: Ep21_4_Def
Price: 1000000
Materials:
- Material: Ep21_Armor_E_Stone1
Amount: 50
- Material: EP19_S_F_1_Extract
Amount: 20
- Material: EP19_S_F_2_Extract
Amount: 20
- Material: EP19_Gla_Extract
Amount: 20
- Material: EP19_S_F_3_Extract
Amount: 10
- Material: EP20_D_P_Extract
Amount: 10
- Item: Ep21_4_Mdef
Price: 1000000
Materials:
- Material: Ep21_Armor_E_Stone1
Amount: 50
- Material: EP19_S_F_1_Extract
Amount: 20
- Material: EP19_S_F_2_Extract
Amount: 20
- Material: EP19_Gla_Extract
Amount: 20
- Material: EP19_S_F_3_Extract
Amount: 10
- Material: EP20_D_P_Extract
Amount: 10
- Item: Ep21_4_Warrior
Price: 1000000
Materials:
- Material: Ep21_Armor_E_Stone1
Amount: 50
- Material: EP19_S_F_1_Extract
Amount: 20
- Material: EP19_S_F_2_Extract
Amount: 20
- Material: EP19_Gla_Extract
Amount: 20
- Material: EP19_S_F_3_Extract
Amount: 10
- Material: EP20_D_P_Extract
Amount: 10
- Item: Ep21_4_Archer
Price: 1000000
Materials:
- Material: Ep21_Armor_E_Stone1
Amount: 50
- Material: EP19_S_F_1_Extract
Amount: 20
- Material: EP19_S_F_2_Extract
Amount: 20
- Material: EP19_Gla_Extract
Amount: 20
- Material: EP19_S_F_3_Extract
Amount: 10
- Material: EP20_D_P_Extract
Amount: 10
- Item: Ep21_4_Assassin
Price: 1000000
Materials:
- Material: Ep21_Armor_E_Stone1
Amount: 50
- Material: EP19_S_F_1_Extract
Amount: 20
- Material: EP19_S_F_2_Extract
Amount: 20
- Material: EP19_Gla_Extract
Amount: 20
- Material: EP19_S_F_3_Extract
Amount: 10
- Material: EP20_D_P_Extract
Amount: 10
- Item: Ep21_4_Magician
Price: 1000000
Materials:
- Material: Ep21_Armor_E_Stone1
Amount: 50
- Material: EP19_S_F_1_Extract
Amount: 20
- Material: EP19_S_F_2_Extract
Amount: 20
- Material: EP19_Gla_Extract
Amount: 20
- Material: EP19_S_F_3_Extract
Amount: 10
- Material: EP20_D_P_Extract
Amount: 10
- Slot: 2
PerfectEnchants:
- Item: Ep21_3_Berserker
Price: 2000000
Materials:
- Material: Ep21_Armor_E_Stone2
Amount: 25
- Material: EP19_S_F_1_Extract
Amount: 30
- Material: EP19_S_F_2_Extract
Amount: 30
- Material: EP19_Gla_Extract
Amount: 30
- Material: EP19_S_F_3_Extract
Amount: 15
- Material: EP20_D_P_Extract
Amount: 15
- Item: Ep21_3_Marksman
Price: 2000000
Materials:
- Material: Ep21_Armor_E_Stone2
Amount: 25
- Material: EP19_S_F_1_Extract
Amount: 30
- Material: EP19_S_F_2_Extract
Amount: 30
- Material: EP19_Gla_Extract
Amount: 30
- Material: EP19_S_F_3_Extract
Amount: 15
- Material: EP20_D_P_Extract
Amount: 15
- Item: Ep21_3_Executioner
Price: 2000000
Materials:
- Material: Ep21_Armor_E_Stone2
Amount: 25
- Material: EP19_S_F_1_Extract
Amount: 30
- Material: EP19_S_F_2_Extract
Amount: 30
- Material: EP19_Gla_Extract
Amount: 30
- Material: EP19_S_F_3_Extract
Amount: 15
- Material: EP20_D_P_Extract
Amount: 15
- Item: Ep21_3_Wizard
Price: 2000000
Materials:
- Material: Ep21_Armor_E_Stone2
Amount: 25
- Material: EP19_S_F_1_Extract
Amount: 30
- Material: EP19_S_F_2_Extract
Amount: 30
- Material: EP19_Gla_Extract
Amount: 30
- Material: EP19_S_F_3_Extract
Amount: 15
- Material: EP20_D_P_Extract
Amount: 15
- Slot: 1
PerfectEnchants:
- Item: Ep21_2_P_Force
Price: 3000000
Materials:
- Material: Ep21_Armor_E_Stone3
Amount: 15
- Material: EP19_S_F_1_Extract
Amount: 40
- Material: EP19_S_F_2_Extract
Amount: 40
- Material: EP19_Gla_Extract
Amount: 40
- Material: EP19_S_F_3_Extract
Amount: 20
- Material: EP20_D_P_Extract
Amount: 20
- Item: Ep21_2_M_Force
Price: 3000000
Materials:
- Material: Ep21_Armor_E_Stone3
Amount: 15
- Material: EP19_S_F_1_Extract
Amount: 40
- Material: EP19_S_F_2_Extract
Amount: 40
- Material: EP19_Gla_Extract
Amount: 40
- Material: EP19_S_F_3_Extract
Amount: 20
- Material: EP20_D_P_Extract
Amount: 20
- Item: Ep21_2_G_Cooldown
Price: 3000000
Materials:
- Material: Ep21_Armor_E_Stone3
Amount: 15
- Material: EP19_S_F_1_Extract
Amount: 40
- Material: EP19_S_F_2_Extract
Amount: 40
- Material: EP19_Gla_Extract
Amount: 40
- Material: EP19_S_F_3_Extract
Amount: 20
- Material: EP20_D_P_Extract
Amount: 20
- Id: 144
TargetItems:
Gaebolg_Manteau: true
Gaebolg_Muffler: true
Order:
- Slot: 3
- Slot: 2
- Slot: 1
Slots:
- Slot: 3
PerfectEnchants:
- Item: Ep21_4_Def
Price: 1000000
Materials:
- Material: Ep21_Robe_E_Stone1
Amount: 50
- Material: EP19_S_F_1_Extract
Amount: 20
- Material: EP19_S_F_2_Extract
Amount: 20
- Material: EP19_Gla_Extract
Amount: 20
- Material: EP19_S_F_3_Extract
Amount: 10
- Material: EP20_D_P_Extract
Amount: 10
- Item: Ep21_4_Mdef
Price: 1000000
Materials:
- Material: Ep21_Robe_E_Stone1
Amount: 50
- Material: EP19_S_F_1_Extract
Amount: 20
- Material: EP19_S_F_2_Extract
Amount: 20
- Material: EP19_Gla_Extract
Amount: 20
- Material: EP19_S_F_3_Extract
Amount: 10
- Material: EP20_D_P_Extract
Amount: 10
- Slot: 2
PerfectEnchants:
- Item: Ep21_3_Speed
Price: 2000000
Materials:
- Material: Ep21_Robe_E_Stone2
Amount: 25
- Material: EP19_S_F_1_Extract
Amount: 30
- Material: EP19_S_F_2_Extract
Amount: 30
- Material: EP19_Gla_Extract
Amount: 30
- Material: EP19_S_F_3_Extract
Amount: 15
- Material: EP20_D_P_Extract
Amount: 15
- Item: Ep21_3_Caster
Price: 2000000
Materials:
- Material: Ep21_Robe_E_Stone2
Amount: 25
- Material: EP19_S_F_1_Extract
Amount: 30
- Material: EP19_S_F_2_Extract
Amount: 30
- Material: EP19_Gla_Extract
Amount: 30
- Material: EP19_S_F_3_Extract
Amount: 15
- Material: EP20_D_P_Extract
Amount: 15
- Slot: 1
PerfectEnchants:
- Item: Ep21_2_Melee
Price: 3000000
Materials:
- Material: Ep21_Robe_E_Stone3
Amount: 15
- Material: EP19_S_F_1_Extract
Amount: 40
- Material: EP19_S_F_2_Extract
Amount: 40
- Material: EP19_Gla_Extract
Amount: 40
- Material: EP19_S_F_3_Extract
Amount: 20
- Material: EP20_D_P_Extract
Amount: 20
- Item: Ep21_2_Range
Price: 3000000
Materials:
- Material: Ep21_Robe_E_Stone3
Amount: 15
- Material: EP19_S_F_1_Extract
Amount: 40
- Material: EP19_S_F_2_Extract
Amount: 40
- Material: EP19_Gla_Extract
Amount: 40
- Material: EP19_S_F_3_Extract
Amount: 20
- Material: EP20_D_P_Extract
Amount: 20
- Item: Ep21_2_Critical
Price: 3000000
Materials:
- Material: Ep21_Robe_E_Stone3
Amount: 15
- Material: EP19_S_F_1_Extract
Amount: 40
- Material: EP19_S_F_2_Extract
Amount: 40
- Material: EP19_Gla_Extract
Amount: 40
- Material: EP19_S_F_3_Extract
Amount: 20
- Material: EP20_D_P_Extract
Amount: 20
- Item: Ep21_2_Spell
Price: 3000000
Materials:
- Material: Ep21_Robe_E_Stone3
Amount: 15
- Material: EP19_S_F_1_Extract
Amount: 40
- Material: EP19_S_F_2_Extract
Amount: 40
- Material: EP19_Gla_Extract
Amount: 40
- Material: EP19_S_F_3_Extract
Amount: 20
- Material: EP20_D_P_Extract
Amount: 20
- Item: Ep21_2_Ab_All
Price: 3000000
Materials:
- Material: Ep21_Robe_E_Stone3
Amount: 15
- Material: EP19_S_F_1_Extract
Amount: 40
- Material: EP19_S_F_2_Extract
Amount: 40
- Material: EP19_Gla_Extract
Amount: 40
- Material: EP19_S_F_3_Extract
Amount: 20
- Material: EP20_D_P_Extract
Amount: 20
- Id: 145
TargetItems:
Gaebolg_Boots: true
Gaebolg_Shoes: true
Order:
- Slot: 3
- Slot: 2
- Slot: 1
Slots:
- Slot: 3
PerfectEnchants:
- Item: Ep21_4_Hp
Price: 1000000
Materials:
- Material: Ep21_Shoes_E_Stone1
Amount: 50
- Material: EP19_S_F_1_Extract
Amount: 20
- Material: EP19_S_F_2_Extract
Amount: 20
- Material: EP19_Gla_Extract
Amount: 20
- Material: EP19_S_F_3_Extract
Amount: 10
- Material: EP20_D_P_Extract
Amount: 10
- Item: Ep21_4_Sp
Price: 1000000
Materials:
- Material: Ep21_Shoes_E_Stone1
Amount: 50
- Material: EP19_S_F_1_Extract
Amount: 20
- Material: EP19_S_F_2_Extract
Amount: 20
- Material: EP19_Gla_Extract
Amount: 20
- Material: EP19_S_F_3_Extract
Amount: 10
- Material: EP20_D_P_Extract
Amount: 10
- Item: Ep21_4_Phy_Force
Price: 1000000
Materials:
- Material: Ep21_Shoes_E_Stone1
Amount: 50
- Material: EP19_S_F_1_Extract
Amount: 20
- Material: EP19_S_F_2_Extract
Amount: 20
- Material: EP19_Gla_Extract
Amount: 20
- Material: EP19_S_F_3_Extract
Amount: 10
- Material: EP20_D_P_Extract
Amount: 10
- Item: Ep21_4_Mag_Force
Price: 1000000
Materials:
- Material: Ep21_Shoes_E_Stone1
Amount: 50
- Material: EP19_S_F_1_Extract
Amount: 20
- Material: EP19_S_F_2_Extract
Amount: 20
- Material: EP19_Gla_Extract
Amount: 20
- Material: EP19_S_F_3_Extract
Amount: 10
- Material: EP20_D_P_Extract
Amount: 10
- Slot: 2
PerfectEnchants:
- Item: Ep21_3_Size_Atk
Price: 2000000
Materials:
- Material: Ep21_Shoes_E_Stone2
Amount: 25
- Material: EP19_S_F_1_Extract
Amount: 30
- Material: EP19_S_F_2_Extract
Amount: 30
- Material: EP19_Gla_Extract
Amount: 30
- Material: EP19_S_F_3_Extract
Amount: 15
- Material: EP20_D_P_Extract
Amount: 15
- Item: Ep21_3_Size_Matk
Price: 2000000
Materials:
- Material: Ep21_Shoes_E_Stone2
Amount: 25
- Material: EP19_S_F_1_Extract
Amount: 30
- Material: EP19_S_F_2_Extract
Amount: 30
- Material: EP19_Gla_Extract
Amount: 30
- Material: EP19_S_F_3_Extract
Amount: 15
- Material: EP20_D_P_Extract
Amount: 15
- Slot: 1
PerfectEnchants:
- Item: Ep21_2_Ov_Power
Price: 3000000
Materials:
- Material: Ep21_Shoes_E_Stone3
Amount: 15
- Material: EP19_S_F_1_Extract
Amount: 40
- Material: EP19_S_F_2_Extract
Amount: 40
- Material: EP19_Gla_Extract
Amount: 40
- Material: EP19_S_F_3_Extract
Amount: 20
- Material: EP20_D_P_Extract
Amount: 20
- Item: Ep21_2_Fi_Shot
Price: 3000000
Materials:
- Material: Ep21_Shoes_E_Stone3
Amount: 15
- Material: EP19_S_F_1_Extract
Amount: 40
- Material: EP19_S_F_2_Extract
Amount: 40
- Material: EP19_Gla_Extract
Amount: 40
- Material: EP19_S_F_3_Extract
Amount: 20
- Material: EP20_D_P_Extract
Amount: 20
- Item: Ep21_2_Luk_Strike
Price: 3000000
Materials:
- Material: Ep21_Shoes_E_Stone3
Amount: 15
- Material: EP19_S_F_1_Extract
Amount: 40
- Material: EP19_S_F_2_Extract
Amount: 40
- Material: EP19_Gla_Extract
Amount: 40
- Material: EP19_S_F_3_Extract
Amount: 20
- Material: EP20_D_P_Extract
Amount: 20
- Item: Ep21_2_Spl_Buster
Price: 3000000
Materials:
- Material: Ep21_Shoes_E_Stone3
Amount: 15
- Material: EP19_S_F_1_Extract
Amount: 40
- Material: EP19_S_F_2_Extract
Amount: 40
- Material: EP19_Gla_Extract
Amount: 40
- Material: EP19_S_F_3_Extract
Amount: 20
- Material: EP20_D_P_Extract
Amount: 20
- Id: 146
TargetItems:
Gaebolg_Ring: true
Gaebolg_Earring: true
Gaebolg_Glove: true
Gaebolg_Necklace: true
Order:
- Slot: 3
- Slot: 2
- Slot: 1
Slots:
- Slot: 3
PerfectEnchants:
- Item: Ep21_4_F_Spirit
Price: 1500000
Materials:
- Material: Ep21_Acc_E_Stone1
Amount: 70
- Material: EP19_S_F_1_Extract
Amount: 35
- Material: EP19_S_F_2_Extract
Amount: 35
- Material: EP19_Gla_Extract
Amount: 35
- Material: EP19_S_F_3_Extract
Amount: 15
- Material: EP20_D_P_Extract
Amount: 15
- Item: Ep21_4_E_Archer
Price: 1500000
Materials:
- Material: Ep21_Acc_E_Stone1
Amount: 70
- Material: EP19_S_F_1_Extract
Amount: 35
- Material: EP19_S_F_2_Extract
Amount: 35
- Material: EP19_Gla_Extract
Amount: 35
- Material: EP19_S_F_3_Extract
Amount: 15
- Material: EP20_D_P_Extract
Amount: 15
- Item: Ep21_4_Fatal
Price: 1500000
Materials:
- Material: Ep21_Acc_E_Stone1
Amount: 70
- Material: EP19_S_F_1_Extract
Amount: 35
- Material: EP19_S_F_2_Extract
Amount: 35
- Material: EP19_Gla_Extract
Amount: 35
- Material: EP19_S_F_3_Extract
Amount: 15
- Material: EP20_D_P_Extract
Amount: 15
- Item: Ep21_4_Sp_Power
Price: 1500000
Materials:
- Material: Ep21_Acc_E_Stone1
Amount: 70
- Material: EP19_S_F_1_Extract
Amount: 35
- Material: EP19_S_F_2_Extract
Amount: 35
- Material: EP19_Gla_Extract
Amount: 35
- Material: EP19_S_F_3_Extract
Amount: 15
- Material: EP20_D_P_Extract
Amount: 15
- Slot: 2
PerfectEnchants:
- Item: Ep21_3_Tenacity
Price: 3000000
Materials:
- Material: Ep21_Acc_E_Stone2
Amount: 35
- Material: EP19_S_F_1_Extract
Amount: 45
- Material: EP19_S_F_2_Extract
Amount: 45
- Material: EP19_Gla_Extract
Amount: 45
- Material: EP19_S_F_3_Extract
Amount: 25
- Material: EP20_D_P_Extract
Amount: 25
- Item: Ep21_3_M_Archer
Price: 3000000
Materials:
- Material: Ep21_Acc_E_Stone2
Amount: 35
- Material: EP19_S_F_1_Extract
Amount: 45
- Material: EP19_S_F_2_Extract
Amount: 45
- Material: EP19_Gla_Extract
Amount: 45
- Material: EP19_S_F_3_Extract
Amount: 25
- Material: EP20_D_P_Extract
Amount: 25
- Item: Ep21_3_Acute
Price: 3000000
Materials:
- Material: Ep21_Acc_E_Stone2
Amount: 35
- Material: EP19_S_F_1_Extract
Amount: 45
- Material: EP19_S_F_2_Extract
Amount: 45
- Material: EP19_Gla_Extract
Amount: 45
- Material: EP19_S_F_3_Extract
Amount: 25
- Material: EP20_D_P_Extract
Amount: 25
- Item: Ep21_3_M_Eessence
Price: 3000000
Materials:
- Material: Ep21_Acc_E_Stone2
Amount: 35
- Material: EP19_S_F_1_Extract
Amount: 45
- Material: EP19_S_F_2_Extract
Amount: 45
- Material: EP19_Gla_Extract
Amount: 45
- Material: EP19_S_F_3_Extract
Amount: 25
- Material: EP20_D_P_Extract
Amount: 25
- Slot: 1
PerfectEnchants:
- Item: Ep21_2_Phy_Power
Price: 4500000
Materials:
- Material: Ep21_Acc_E_Stone3
Amount: 20
- Material: EP19_S_F_1_Extract
Amount: 65
- Material: EP19_S_F_2_Extract
Amount: 65
- Material: EP19_Gla_Extract
Amount: 65
- Material: EP19_S_F_3_Extract
Amount: 35
- Material: EP20_D_P_Extract
Amount: 35
- Item: Ep21_2_Mag_Power
Price: 4500000
Materials:
- Material: Ep21_Acc_E_Stone3
Amount: 20
- Material: EP19_S_F_1_Extract
Amount: 65
- Material: EP19_S_F_2_Extract
Amount: 65
- Material: EP19_Gla_Extract
Amount: 65
- Material: EP19_S_F_3_Extract
Amount: 35
- Material: EP20_D_P_Extract
Amount: 35
- Id: 147
TargetItems:
StormBow_Furious: true
@@ -31483,6 +32175,32 @@ Body:
Demonsword_Furious: true
Foxtail_Furious: true
Setaria_Furious: true
OverSpear_Furious: true
Lance_Furious: true
Impact_Furious: true
RightShape_Furious: true
Humma_Furious: true
WheelHumma_Furious: true
GiganticAxe_Furious: true
Hammer_Furious: true
MasterSpellBook_Furious: true
Grimoire_Furious: true
Soul_Furious: true
SpiritStick_Furious: true
Lapier_Furious: true
SharpSword_Furious: true
WhiteSword_Furious: true
Stick_Furious: true
MetalVilolin_Furious: true
Harp_Furious: true
MetalWhip_Furious: true
Whip_Furious: true
Flame_Staff_Furious: true
Rifle_Furious: true
Gatling_Furious: true
Specter_Furious: true
GaleClaw_Furious: true
Exterminate_Furious: true
Reset:
Chance: 80000
Price: 500000
@@ -31647,6 +32365,18 @@ Body:
FuriousCirclet_DK: true
FuriousCirclet_ABC: true
FuriousCirclet_SH: true
FuriousCirclet_IG: true
FuriousCirclet_SHC: true
FuriousCirclet_SS: true
FuriousCirclet_MT: true
FuriousCirclet_EM: true
FuriousCirclet_SOA: true
FuriousCirclet_TR: true
FuriousCirclet_BO: true
FuriousCirclet_HN: true
FuriousCirclet_AG: true
FuriousCirclet_IQ: true
FuriousCirclet_NW: true
Reset:
Chance: 80000
Price: 500000

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -9213,7 +9213,7 @@ Body:
Vit: 1
Int: 1
- Level: 13
Agi: 1
Dex: 1
Spl: 1
- Level: 14
Sta: 1
@@ -9229,7 +9229,7 @@ Body:
Int: 1
Dex: 1
- Level: 19
Dex: 1
Int: 1
- Level: 20
Vit: 1
Int: 1
@@ -11154,7 +11154,6 @@ Body:
- Level: 2
Str: 1
Agi: 1
Sta: 1
- Level: 3
Vit: 1
Luk: 1
@@ -11190,6 +11189,7 @@ Body:
Dex: 1
- Level: 15
Luk: 1
Sta: 1
- Level: 16
Vit: 1
Int: 1
@@ -11230,13 +11230,13 @@ Body:
- Level: 30
Str: 1
Int: 1
Sta: 1
- Level: 31
Dex: 1
Con: 1
- Level: 32
Pow: 1
- Level: 33
Sta: 1
Crt: 1
- Level: 34
Crt: 1
@@ -11251,7 +11251,10 @@ Body:
- Level: 40
Pow: 1
- Level: 41
Sta: 1
Con: 1
- Level: 42
Sta: 1
- Level: 43
Crt: 1
- Level: 44
@@ -11260,6 +11263,7 @@ Body:
Con: 1
- Level: 46
Pow: 1
Sta: 1
- Level: 47
Con: 1
- Level: 48

File diff suppressed because it is too large Load Diff

View File

@@ -102,7 +102,7 @@
1019,Peco Peco@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,6,,,,,,
1019,Peco Peco@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
1019,Peco Peco@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,0,,,,,,19,
1020,Mandragora@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,randomtarget,always,0,,,,,,,
1020,Mandragora@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
1023,Orc Warrior@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,,,,,,,
1023,Orc Warrior@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,6,
1023,Orc Warrior@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
@@ -351,7 +351,7 @@
1067,Cornutus@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,0,,,,,,6,
1067,Cornutus@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
1067,Cornutus@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
1068,Hydra@NPC_WATERATTACK,attack,184,2,500,500,5000,no,randomtarget,always,0,,,,,,,
1068,Hydra@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,0,,,,,,,
1069,Swordfish@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
1069,Swordfish@WZ_WATERBALL,attack,86,3,500,1500,5000,yes,target,always,0,,,,,,,
1069,Swordfish@WZ_WATERBALL,chase,86,3,500,1500,5000,yes,target,always,0,,,,,,,
@@ -603,9 +603,9 @@
1117,Evil Druid@NPC_UNDEADATTACK,chase,347,3,500,500,5000,no,target,always,0,,,,,,9,
1117,Evil Druid@WZ_HEAVENDRIVE,attack,91,5,500,1200,5000,yes,target,always,0,,,,,,,
1117,Evil Druid@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,0,,,,,,,
1118,Flora@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,randomtarget,always,0,,,,,,,
1118,Flora@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
1118,Flora@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
1118,Flora@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,randomtarget,always,0,,,,,,,
1118,Flora@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
1119,Frilldora@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,0,,,,,,,
1119,Frilldora@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,0,,,,,,,
1119,Frilldora@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,0,,,,,,,
@@ -1301,7 +1301,7 @@
1276,Raydric Archer@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
1277,Greatest General@NPC_BLINDATTACK,idle,177,3,10000,1500,5000,no,randomtarget,longrangeattacked,,,,,,,6,
1277,Greatest General@NPC_BLINDATTACK,idle,177,3,10000,1500,5000,no,randomtarget,casttargeted,,,,,,,6,
1277,Greatest General@NPC_FIREATTACK,attack,186,2,500,500,5000,no,randomtarget,always,0,,,,,,,
1277,Greatest General@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,0,,,,,,,
1277,Greatest General@WZ_EARTHSPIKE,idle,90,3,5000,1500,5000,no,randomtarget,longrangeattacked,,,,,,,6,
1277,Greatest General@WZ_EARTHSPIKE,idle,90,3,5000,1500,5000,no,randomtarget,casttargeted,,,,,,,6,
1278,Stalactite Golem@NPC_STUNATTACK,attack,179,4,500,1500,5000,no,target,always,0,,,,,,6,
@@ -1584,7 +1584,7 @@
1367,Blazer@WZ_SIGHTRASHER,attack,81,5,500,1000,5000,no,target,always,0,,,,,,6,
1368,Geographer@AL_HEAL,attack,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
1368,Geographer@AL_HEAL,idle,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
1368,Geographer@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,randomtarget,always,0,,,,,,,
1368,Geographer@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,0,,,,,,,
1369,Grand Peco@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,6,
1369,Grand Peco@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
1369,Grand Peco@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
@@ -2569,8 +2569,8 @@
1510,Hylozoist@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,,
1511,Amon Ra@NPC_BLOODDRAIN,idle,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
1511,Amon Ra@NPC_BLOODDRAIN,idle,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
1511,Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
1511,Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
1511,Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,always,0,,,,,,29,
1511,Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,always,0,,,,,,29,
1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,no,self,longrangeattacked,0,1474,1477,1438,,,9,
1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,no,self,casttargeted,0,1474,1477,1438,,,9,
1511,Amon Ra@NPC_SUMMONMONSTER,attack,209,5,5000,0,10000,no,self,longrangeattacked,0,1474,1477,1438,,,9,
@@ -2589,11 +2589,11 @@
1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,skillused,83,,,,,,9,
1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,longrangeattacked,,,,,,,9,
1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,casttargeted,,,,,,,9,
1511,Amon Ra@WZ_METEOR,attack,83,11,5000,0,3000,yes,randomtarget,always,0,,,,,,9,
1511,Amon Ra@WZ_METEOR,attack,83,11,5000,0,3000,yes,target,always,0,,,,,,9,
1511,Amon Ra@WZ_FIREPILLAR,idle,80,10,10000,0,2000,yes,around2,always,0,,,,,,,
1511,Amon Ra@WZ_FIREPILLAR,idle,80,10,10000,0,2000,yes,around2,always,0,,,,,,,
1511,Amon Ra@WZ_FIREPILLAR,attack,80,10,5000,0,2000,yes,around2,always,0,,,,,,,
1511,Amon Ra@NPC_DARKBLESSING,attack,203,1,5000,0,2000,no,randomtarget,always,0,,,,,,,
1511,Amon Ra@NPC_DARKBLESSING,attack,203,1,5000,0,2000,no,target,always,0,,,,,,,
1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,5000,yes,randomtarget,always,0,,,,,,9,
1511,Amon Ra@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1511,Amon Ra@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
@@ -3405,18 +3405,18 @@
1663,Laurell Weinder@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1663,Laurell Weinder@NPC_EMOTION,attack,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1663,Laurell Weinder@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1664,Photon Cannon@NPC_WINDATTACK,attack,187,5,1000,1000,10000,yes,randomtarget,always,0,,,,,,,
1664,Photon Cannon@NPC_WINDATTACK,attack,187,3,2000,500,5000,yes,randomtarget,always,0,,,,,,,
1664,Photon Cannon@NPC_WINDATTACK,attack,187,1,10000,0,0,yes,randomtarget,always,0,,,,,,,
1665,Photon Cannon@NPC_FIREATTACK,attack,186,5,1000,1000,10000,yes,randomtarget,always,0,,,,,,,
1665,Photon Cannon@NPC_FIREATTACK,attack,186,3,2000,500,5000,yes,randomtarget,always,0,,,,,,,
1665,Photon Cannon@NPC_FIREATTACK,attack,186,1,10000,0,0,yes,randomtarget,always,0,,,,,,,
1666,Photon Cannon@NPC_WATERATTACK,attack,184,5,1000,1000,10000,yes,randomtarget,always,0,,,,,,,
1666,Photon Cannon@NPC_WATERATTACK,attack,184,3,2000,500,5000,yes,randomtarget,always,0,,,,,,,
1666,Photon Cannon@NPC_WATERATTACK,attack,184,1,10000,0,0,yes,randomtarget,always,0,,,,,,,
1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,5,1000,1000,10000,yes,randomtarget,always,0,,,,,,,
1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,3,2000,500,5000,yes,randomtarget,always,0,,,,,,,
1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,1,10000,0,0,yes,randomtarget,always,0,,,,,,,
1664,Photon Cannon@NPC_WINDATTACK,attack,187,5,1000,1000,10000,yes,target,always,0,,,,,,,
1664,Photon Cannon@NPC_WINDATTACK,attack,187,3,2000,500,5000,yes,target,always,0,,,,,,,
1664,Photon Cannon@NPC_WINDATTACK,attack,187,1,10000,0,0,yes,target,always,0,,,,,,,
1665,Photon Cannon@NPC_FIREATTACK,attack,186,5,1000,1000,10000,yes,target,always,0,,,,,,,
1665,Photon Cannon@NPC_FIREATTACK,attack,186,3,2000,500,5000,yes,target,always,0,,,,,,,
1665,Photon Cannon@NPC_FIREATTACK,attack,186,1,10000,0,0,yes,target,always,0,,,,,,,
1666,Photon Cannon@NPC_WATERATTACK,attack,184,5,1000,1000,10000,yes,target,always,0,,,,,,,
1666,Photon Cannon@NPC_WATERATTACK,attack,184,3,2000,500,5000,yes,target,always,0,,,,,,,
1666,Photon Cannon@NPC_WATERATTACK,attack,184,1,10000,0,0,yes,target,always,0,,,,,,,
1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,5,1000,1000,10000,yes,target,always,0,,,,,,,
1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,3,2000,500,5000,yes,target,always,0,,,,,,,
1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,1,10000,0,0,yes,target,always,0,,,,,,,
1668,Archdam@NPC_PIERCINGATT,attack,158,5,1000,0,5000,yes,target,always,0,,,,,,,
1668,Archdam@NPC_GUIDEDATTACK,attack,172,2,500,1000,20000,no,target,always,0,,,,,,29,
1668,Archdam@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,0,,,,,,,
@@ -3453,9 +3453,9 @@
1673,Dimik@NPC_COMBOATTACK,attack,171,4,500,700,5000,no,target,always,0,,,,,,,
1673,Dimik@NPC_COMBOATTACK,chase,171,4,500,700,5000,no,target,always,0,,,,,,,
1673,Dimik@NPC_FIREATTACK,attack,186,3,500,0,5000,yes,target,always,0,,,,,,,
1674,Monemus@NPC_FIREATTACK,attack,186,10,500,1000,30000,yes,randomtarget,always,0,,,,,,,
1674,Monemus@NPC_FIREATTACK,attack,186,3,1000,0,10000,yes,randomtarget,always,0,,,,,,,
1674,Monemus@NPC_FIREATTACK,attack,186,1,10000,0,0,yes,randomtarget,always,0,,,,,,,
1674,Monemus@NPC_FIREATTACK,attack,186,10,500,1000,30000,yes,target,always,0,,,,,,,
1674,Monemus@NPC_FIREATTACK,attack,186,3,1000,0,10000,yes,target,always,0,,,,,,,
1674,Monemus@NPC_FIREATTACK,attack,186,1,10000,0,0,yes,target,always,0,,,,,,,
1675,Venatu@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,,
1675,Venatu@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,0,,,,,,6,
1675,Venatu@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,11,
@@ -3531,11 +3531,11 @@
1688,Lady Tany@AL_TELEPORT,idle,26,1,1000,0,30000,yes,self,always,0,,,,,,,
1688,Lady Tany@AL_TELEPORT,attack,26,1,1000,0,30000,yes,self,always,0,,,,,,,
1688,Lady Tany@NPC_EXPULSION,attack,674,1,1000,1000,10000,no,target,myhpltmaxrate,60,,,,,,,
1688,Lady Tany@AC_CHARGEARROW,attack,148,1,2000,0,5000,yes,randomtarget,always,0,,,,,,6,
1688,Lady Tany@NPC_COMBOATTACK,attack,171,1,1000,0,5000,no,randomtarget,always,0,,,,,,,
1688,Lady Tany@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,randomtarget,always,0,,,,,,6,
1688,Lady Tany@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,randomtarget,always,0,,,,,,,
1688,Lady Tany@NPC_STUNATTACK,attack,179,5,500,0,5000,no,randomtarget,always,0,,,,,,,
1688,Lady Tany@AC_CHARGEARROW,attack,148,1,2000,0,5000,yes,target,always,0,,,,,,6,
1688,Lady Tany@NPC_COMBOATTACK,attack,171,1,1000,0,5000,no,target,always,0,,,,,,,
1688,Lady Tany@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
1688,Lady Tany@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,,
1688,Lady Tany@NPC_STUNATTACK,attack,179,5,500,0,5000,no,target,always,0,,,,,,,
1688,Lady Tany@NPC_DEFENDER,attack,205,1,500,0,30000,yes,self,longrangeattacked,,,,,,,29,
1688,Lady Tany@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
1688,Lady Tany@NPC_SUMMONSLAVE,attack,196,5,10000,2000,5000,no,self,slavele,2,1691,,,,,,
@@ -4063,7 +4063,7 @@
1764,Skeggiold@NPC_HOLYATTACK,chase,189,2,500,500,5000,no,target,always,0,,,,,,18,
1764,Skeggiold@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1764,Skeggiold@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1765,Valkyrie@AL_HEAL,idle,28,10,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
1765,Valkyrie@AL_HEAL,idle,28,11,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
1765,Valkyrie@AL_HEAL,attack,28,11,10000,500,10000,yes,friend,friendhpltmaxrate,60,,,,,,3,
1765,Valkyrie@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1765,Valkyrie@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,0,,,,,,,
@@ -4228,18 +4228,18 @@
1779,Ktullanux@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,0,,,,,,,
1779,Ktullanux@NPC_AGIUP,attack,350,5,10000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
1779,Ktullanux@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
1780,Muscipular@NPC_BLOODDRAIN,attack,199,1,1000,0,5000,yes,randomtarget,always,0,,,,,,,
1780,Muscipular@KN_SPEARSTAB,attack,58,5,500,800,5000,no,randomtarget,always,0,,,,,,6,
1780,Muscipular@NPC_GROUNDATTACK,attack,185,1,1000,0,5000,yes,randomtarget,always,0,,,,,,,
1780,Muscipular@NPC_BLOODDRAIN,attack,199,1,1000,0,5000,yes,target,always,0,,,,,,,
1780,Muscipular@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,0,,,,,,6,
1780,Muscipular@NPC_GROUNDATTACK,attack,185,1,1000,0,5000,yes,target,always,0,,,,,,,
1780,Muscipular@AL_HEAL,attack,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,50,,,,,,,
1780,Muscipular@AL_HEAL,idle,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,50,,,,,,,
1780,Muscipular@NPC_PETRIFYATTACK,attack,180,5,500,0,5000,yes,randomtarget,always,0,,,,,,,
1781,Drosera@NPC_BLOODDRAIN,attack,199,1,1000,0,5000,yes,randomtarget,always,0,,,,,,,
1781,Drosera@KN_PIERCE,attack,56,5,500,700,5000,no,randomtarget,always,0,,,,,,,
1781,Drosera@NPC_GROUNDATTACK,attack,185,1,1000,0,5000,yes,randomtarget,always,0,,,,,,,
1780,Muscipular@NPC_PETRIFYATTACK,attack,180,5,500,0,5000,yes,target,always,0,,,,,,,
1781,Drosera@NPC_BLOODDRAIN,attack,199,1,1000,0,5000,yes,target,always,0,,,,,,,
1781,Drosera@KN_PIERCE,attack,56,5,500,700,5000,no,target,always,0,,,,,,,
1781,Drosera@NPC_GROUNDATTACK,attack,185,1,1000,0,5000,yes,target,always,0,,,,,,,
1781,Drosera@RG_CLOSECONFINE,attack,1005,1,1000,0,30000,yes,target,always,0,,,,,,,
1781,Drosera@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,randomtarget,always,0,,,,,,6,
1781,Drosera@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,randomtarget,always,0,,,,,,,
1781,Drosera@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,0,,,,,,6,
1781,Drosera@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,0,,,,,,,
1782,Roween@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,0,,,,,,,
1782,Roween@NPC_COMBOATTACK,attack,171,4,500,500,5000,no,target,always,0,,,,,,6,
1782,Roween@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,0x308D,,,,,
@@ -5704,30 +5704,11 @@
//****
// NC Mechanic Summons
2042,Silver Sniper@AL_HEAL,chase,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2042,Silver Sniper@AL_HEAL,idle,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2042,Silver Sniper@AL_HEAL,attack,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2042,Silver Sniper@NPC_REVENGE,idle,333,1,10000,0,0,yes,self,always,0,,,,,,,
2043,Magic Decoy Fire@MG_FIREBOLT,attack,19,10,10000,800,3500,no,target,always,0,,,,,,,
2043,Magic Decoy Fire@MG_FIREBOLT,chase,19,10,10000,800,3500,no,target,always,0,,,,,,,
2043,Magic Decoy Fire@AL_HEAL,chase,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2043,Magic Decoy Fire@AL_HEAL,idle,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2043,Magic Decoy Fire@AL_HEAL,attack,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2044,Magic Decoy Water@MG_COLDBOLT,attack,14,10,10000,800,3500,no,target,always,0,,,,,,,
2044,Magic Decoy Water@MG_COLDBOLT,chase,14,10,10000,800,3500,no,target,always,0,,,,,,,
2044,Magic Decoy Water@AL_HEAL,chase,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2044,Magic Decoy Water@AL_HEAL,idle,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2044,Magic Decoy Water@AL_HEAL,attack,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2045,Magic Decoy Earth@WZ_EARTHSPIKE,attack,90,10,10000,800,3500,no,target,always,0,,,,,,,
2045,Magic Decoy Earth@WZ_EARTHSPIKE,chase,90,10,10000,800,3500,no,target,always,0,,,,,,,
2045,Magic Decoy Earth@AL_HEAL,chase,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2045,Magic Decoy Earth@AL_HEAL,idle,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2045,Magic Decoy Earth@AL_HEAL,attack,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2046,Magic Decoy Wind@MG_LIGHTNINGBOLT,attack,20,10,10000,800,3500,no,target,always,0,,,,,,,
2046,Magic Decoy Wind@MG_LIGHTNINGBOLT,chase,20,10,10000,800,3500,no,target,always,0,,,,,,,
2046,Magic Decoy Wind@AL_HEAL,chase,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2046,Magic Decoy Wind@AL_HEAL,idle,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2046,Magic Decoy Wind@AL_HEAL,attack,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
2042,Silver Sniper@NPC_REVENGE,idle,333,1,10000,0,0,yes,self,masterattacked,0,,,,,,,
2043,Magic Decoy Fire@MG_FIREBOLT,idle,19,10,10000,800,3500,no,randomtarget,always,0,,,,,,,
2044,Magic Decoy Water@MG_COLDBOLT,idle,14,10,10000,800,3500,no,randomtarget,always,0,,,,,,,
2045,Magic Decoy Earth@WZ_EARTHSPIKE,idle,90,10,10000,800,3500,no,randomtarget,always,0,,,,,,,
2046,Magic Decoy Wind@MG_LIGHTNINGBOLT,idle,20,10,10000,800,3500,no,randomtarget,always,0,,,,,,,
//2053,Dimik@NPC_ATTRICHANGE,idle,161,1,500,2000,50000,no,self,always,0,,,,,,10,
//2053,Dimik@NPC_EMOTION_ON,idle,474,1,100,0,60000,yes,self,always,0,20,0x81,,,,,
@@ -7980,8 +7961,8 @@
2311,Manananggal@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
2311,Manananggal@AL_TELEPORT,idle,26,1,1000,0,30000,yes,self,always,0,,,,,,,
2311,Manananggal@AL_TELEPORT,attack,26,1,100,0,30000,yes,self,always,0,,,,,,,
2311,Manananggal@NPC_BLOODDRAIN,chase,199,1,2000,0,5000,yes,randomtarget,myhpltmaxrate,50,,,,,,3,
2311,Manananggal@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,randomtarget,myhpltmaxrate,50,,,,,,3,
2311,Manananggal@NPC_BLOODDRAIN,chase,199,1,2000,0,5000,yes,target,myhpltmaxrate,50,,,,,,3,
2311,Manananggal@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,myhpltmaxrate,50,,,,,,3,
2311,Manananggal@NPC_COMBOATTACK,chase,171,5,1000,0,5000,yes,target,always,0,,,,,,7,
2311,Manananggal@NPC_COMBOATTACK,attack,171,5,1000,0,5000,yes,target,always,0,,,,,,7,
2312,Mangkukulam@AL_TELEPORT,idle,26,1,500,0,30000,yes,self,always,0,,,,,,,
@@ -8009,8 +7990,8 @@
2315,Wakwak@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
2315,Wakwak@AL_TELEPORT,idle,26,1,500,0,30000,yes,self,always,0,,,,,,,
2315,Wakwak@AL_TELEPORT,attack,26,1,50,0,30000,yes,self,always,0,,,,,,,
2315,Wakwak@NPC_BLOODDRAIN,chase,199,1,2000,0,5000,yes,randomtarget,myhpltmaxrate,50,,,,,,3,
2315,Wakwak@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,randomtarget,myhpltmaxrate,50,,,,,,3,
2315,Wakwak@NPC_BLOODDRAIN,chase,199,1,2000,0,5000,yes,target,myhpltmaxrate,50,,,,,,3,
2315,Wakwak@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,myhpltmaxrate,50,,,,,,3,
2315,Wakwak@NPC_DARKTHUNDER,chase,341,3,1000,500,5000,yes,target,always,0,,,,,,29,
2315,Wakwak@NPC_DARKTHUNDER,attack,341,3,1000,500,5000,yes,target,always,0,,,,,,29,
2315,Wakwak@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,0,
@@ -8113,7 +8094,7 @@
2331,Seaweed@AL_HEAL,idle,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,100,,,,,,2,
2337,Hidden Mob@NPC_INVISIBLE,idle,353,1,10000,0,30000,yes,self,always,0,,,,,,,
2337,Hidden Mob@NPC_INVISIBLE,attack,353,1,10000,0,30000,yes,self,always,0,,,,,,,
2337,Hidden Mob@WZ_METEOR,attack,83,5,10000,0,1000,yes,randomtarget,always,0,,,,,,,
2337,Hidden Mob@WZ_METEOR,attack,83,5,10000,0,1000,yes,target,always,0,,,,,,,
2338,Bangungot Manananggal@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
2338,Bangungot Manananggal@NPC_BLOODDRAIN,attack,199,1,1000,0,5000,no,target,always,0,,,,,,3,
2338,Bangungot Manananggal@NPC_COMBOATTACK,attack,171,5,500,700,5000,no,target,always,0,,,,,,1,
@@ -8129,11 +8110,11 @@
2339,Bangungot Mangkukulam@NPC_DARKSTRIKE,chase,340,9,500,700,5000,no,target,always,0,,,,,,29,
2339,Bangungot Mangkukulam@NPC_MENTALBREAKER,attack,159,3,500,800,5000,no,target,always,0,,,,,,14,
2339,Bangungot Mangkukulam@NPC_MENTALBREAKER,chase,159,3,500,800,5000,no,target,always,0,,,,,,14,
2340,Tiyanak@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,randomtarget,always,0,,,,,,2,
2340,Tiyanak@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,2,
2340,Tiyanak@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,29,,,,,,
2340,Tiyanak@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
2340,Tiyanak@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
2340,Tiyanak@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,randomtarget,always,0,,,,,,6,
2340,Tiyanak@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
2340,Tiyanak@NPC_REBIRTH,dead,208,3,2000,0,10000,yes,self,always,0,,,,,,,
2341,RWC Boss@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
2341,RWC Boss@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
@@ -8162,7 +8143,7 @@
2341,RWC Boss@NPC_CRITICALWOUND,attack,673,4,2000,0,5000,yes,target,always,0,,,,,,,
2343,Hidden Mob@NPC_INVISIBLE,idle,353,1,10000,0,30000,yes,self,always,0,,,,,,,
2343,Hidden Mob@NPC_INVISIBLE,attack,353,1,10000,0,30000,yes,self,always,0,,,,,,,
2343,Hidden Mob@WZ_STORMGUST,attack,89,5,10000,0,1000,yes,randomtarget,always,0,,,,,,,
2343,Hidden Mob@WZ_STORMGUST,attack,89,5,10000,0,1000,yes,target,always,0,,,,,,,
// Nightmare Pyramids
2353,Nightmare Minorous@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
@@ -8198,8 +8179,8 @@
2360,Nightmare Ancient Mummy@NPC_DARKBREATH,attack,202,4,500,800,5000,no,target,always,0,,,,,,7,
2362,Nightmare Amon Ra@NPC_BLOODDRAIN,idle,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
2362,Nightmare Amon Ra@NPC_BLOODDRAIN,idle,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
2362,Nightmare Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
2362,Nightmare Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
2362,Nightmare Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,always,0,,,,,,29,
2362,Nightmare Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,always,0,,,,,,29,
2362,Nightmare Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,no,self,longrangeattacked,0,2357,2359,2361,,,9,
2362,Nightmare Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,no,self,casttargeted,0,1474,1477,1438,,,9,
2362,Nightmare Amon Ra@NPC_SUMMONMONSTER,attack,209,5,5000,0,10000,no,self,longrangeattacked,0,2357,2359,2361,,,9,
@@ -8218,11 +8199,11 @@
2362,Nightmare Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,skillused,83,,,,,,9,
2362,Nightmare Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,longrangeattacked,,,,,,,9,
2362,Nightmare Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,casttargeted,,,,,,,9,
2362,Nightmare Amon Ra@WZ_METEOR,attack,83,11,5000,0,3000,yes,randomtarget,always,0,,,,,,9,
2362,Nightmare Amon Ra@WZ_METEOR,attack,83,11,5000,0,3000,yes,target,always,0,,,,,,9,
2362,Nightmare Amon Ra@WZ_FIREPILLAR,idle,80,10,10000,0,2000,yes,around2,always,0,,,,,,,
2362,Nightmare Amon Ra@WZ_FIREPILLAR,idle,80,10,10000,0,2000,yes,around2,always,0,,,,,,,
2362,Nightmare Amon Ra@WZ_FIREPILLAR,attack,80,10,5000,0,2000,yes,around2,always,0,,,,,,,
2362,Nightmare Amon Ra@NPC_DARKBLESSING,attack,203,1,5000,0,2000,no,randomtarget,always,0,,,,,,,
2362,Nightmare Amon Ra@NPC_DARKBLESSING,attack,203,1,5000,0,2000,no,target,always,0,,,,,,,
2362,Nightmare Amon Ra@WZ_METEOR,idle,83,11,10000,0,5000,yes,randomtarget,always,0,,,,,,9,
2362,Nightmare Amon Ra@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
2362,Nightmare Amon Ra@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
@@ -8856,11 +8837,11 @@
2481,Wraith Dead (Nightmare)@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,,,,,,,9,
2483,Baphomet (Nightmare)@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
2483,Baphomet (Nightmare)@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
2483,Baphomet (Nightmare)@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
2483,Baphomet (Nightmare)@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
2483,Baphomet (Nightmare)@KN_BRANDISHSPEAR,attack,57,10,2000,500,5000,no,target,always,,,,,,,29,
2483,Baphomet (Nightmare)@WZ_VERMILION,attack,85,10,2000,500,2000,no,target,always,,,,,,,29,
2483,Baphomet (Nightmare)@WZ_VERMILION,chase,85,10,2000,500,2000,no,target,always,,,,,,,29,
2483,Baphomet (Nightmare)@WZ_VERMILION,chase,85,10,5000,500,2000,no,target,skillused,18,,,,,,29,
2483,Baphomet (Nightmare)@WZ_VERMILION,attack,85,21,2000,500,2000,no,target,always,,,,,,,29,
2483,Baphomet (Nightmare)@WZ_VERMILION,chase,85,21,2000,500,2000,no,target,always,,,,,,,29,
2483,Baphomet (Nightmare)@WZ_VERMILION,chase,85,21,5000,500,2000,no,target,skillused,18,,,,,,29,
2483,Baphomet (Nightmare)@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,,,,,,,,
2483,Baphomet (Nightmare)@NPC_DARKBREATH,attack,202,5,2000,800,5000,no,target,always,,,,,,,29,
2483,Baphomet (Nightmare)@MO_BODYRELOCATION,chase,264,1,2000,200,1000,yes,target,always,,,,,,,,
@@ -8948,15 +8929,15 @@
2534,Blue Faceworm Queen@WZ_STORMGUST,chase,89,10,2000,1000,5000,no,target,always,,,,,,,,
2534,Blue Faceworm Queen@WZ_STORMGUST,attack,89,10,2000,1000,5000,no,target,always,,,,,,,,
2534,Blue Faceworm Queen@NPC_WATERATTACK,attack,184,9,3000,500,5000,no,target,always,,,,,,,,
2534,Blue Faceworm Queen@MG_FROSTDIVER,chase,15,10,10000,500,5000,yes,target,always,,,,,,,,
2535,Yellow Faceworm Queen@WZ_VERMILION,attack,85,10,2000,1000,10000,no,target,always,,,,,,,,
2535,Yellow Faceworm Queen@WZ_VERMILION,chase,85,10,5000,1000,10000,no,target,always,,,,,,,,
2534,Blue Faceworm Queen@MG_FROSTDIVER,chase,15,40,10000,500,5000,yes,target,always,,,,,,,,
2535,Yellow Faceworm Queen@WZ_VERMILION,attack,85,21,2000,1000,10000,no,target,always,,,,,,,,
2535,Yellow Faceworm Queen@WZ_VERMILION,chase,85,21,5000,1000,10000,no,target,always,,,,,,,,
2535,Yellow Faceworm Queen@NPC_WIDEBLEEDING,chase,665,3,10000,2000,30000,no,self,always,,,,,,,36,
2535,Yellow Faceworm Queen@NPC_WIDEBLEEDING,attack,665,3,10000,2000,30000,no,self,always,,,,,,,36,
2535,Yellow Faceworm Queen@WZ_JUPITEL,attack,84,9,1000,500,5000,yes,target,always,,,,,,,,
2535,Yellow Faceworm Queen@WZ_JUPITEL,chase,84,9,1000,500,5000,yes,target,always,,,,,,,,
2535,Yellow Faceworm Queen@NPC_WINDATTACK,attack,187,9,3000,500,5000,no,target,always,,,,,,,,
2535,Yellow Faceworm Queen@MG_THUNDERSTORM,attack,21,10,2000,1000,5000,no,target,always,,,,,,,,
2535,Yellow Faceworm Queen@MG_THUNDERSTORM,attack,21,20,2000,1000,5000,no,target,always,,,,,,,,
2536,Monster 3@NPC_INVISIBLE,idle,353,1,10000,0,30000,yes,self,always,,,,,,,,
2536,Monster 3@NPC_INVISIBLE,attack,353,1,10000,0,30000,yes,self,always,,,,,,,,
2536,Monster 3@NPC_VENOMFOG,idle,706,1,10000,0,3000,yes,self,always,,,,,,,,
@@ -9840,7 +9821,7 @@
2741,Muka Ringleader@NPC_PIERCINGATT,attack,158,2,500,0,5000,yes,target,always,,,,,,,6,
2741,Muka Ringleader@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
2741,Muka Ringleader@NPC_SUMMONSLAVE,idle,196,2,10000,700,30000,no,self,slavele,0,1055,,,,,,
2742,Furious Incarnation of Morocc@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
2742,Furious Incarnation of Morocc@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
2742,Furious Incarnation of Morocc@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,,,,,,,,
2742,Furious Incarnation of Morocc@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
2742,Furious Incarnation of Morocc@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
@@ -9853,7 +9834,7 @@
2742,Furious Incarnation of Morocc@NPC_WIDECURSE,chase,677,5,5000,800,5000,no,self,always,,,,,,,,
2742,Furious Incarnation of Morocc@SA_DISPELL,attack,289,5,100,0,30000,yes,target,always,,,,,,,,
2742,Furious Incarnation of Morocc@SA_DISPELL,chase,289,5,100,0,30000,yes,target,always,,,,,,,,
2743,Elusive Incarnation of Morocc@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
2743,Elusive Incarnation of Morocc@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
2743,Elusive Incarnation of Morocc@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,,,,,,,,
2743,Elusive Incarnation of Morocc@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
2743,Elusive Incarnation of Morocc@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
@@ -9869,7 +9850,7 @@
2744,Swift Incarnation of Morocc@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
2744,Swift Incarnation of Morocc@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
2744,Swift Incarnation of Morocc@AL_TELEPORT,attack,26,1,500,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
2744,Swift Incarnation of Morocc@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
2744,Swift Incarnation of Morocc@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
2744,Swift Incarnation of Morocc@AL_HEAL,attack,28,5,10000,500,5000,yes,self,myhpltmaxrate,50,,,,,,,
2744,Swift Incarnation of Morocc@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,,,,,,,,
2744,Swift Incarnation of Morocc@NPC_GRANDDARKNESS,attack,339,5,10000,2000,30000,no,self,myhpltmaxrate,80,,,,,,6,
@@ -11387,7 +11368,7 @@
3209,V_MAGALETA@AL_HEAL,idle,28,9,300,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
3209,V_MAGALETA@HP_ASSUMPTIO,chase,361,5,1000,1000,10000,no,self,myhpltmaxrate,99,,,,,,,
3209,V_MAGALETA@HP_ASSUMPTIO,chase,361,5,1000,1000,10000,no,friend,friendhpltmaxrate,99,,,,,,,
3209,V_MAGALETA@AL_DECAGI,chase,30,10,200,0,10000,yes,target,always,,,,,,,,
3209,V_MAGALETA@AL_DECAGI,chase,30,48,200,0,10000,yes,target,always,,,,,,,,
3209,V_MAGALETA@NPC_MAXPAIN,chase,716,5,1000,1000,60000,no,self,longrangeattacked,,,,,,,19,
3209,V_MAGALETA@PR_LEXDIVINA,chase,76,10,500,0,10000,yes,target,casttargeted,,,,,,,18,
3209,V_MAGALETA@PR_LEXAETERNA,chase,78,1,100,0,10000,yes,target,always,,,,,,,29,
@@ -11405,11 +11386,11 @@
3209,V_MAGALETA@NPC_WIDESILENCE,attack,663,2,300,500,5000,no,self,always,,,,,,,,
3210,V_KATRINN@MG_SIGHT,idle,10,1,200,0,10000,yes,self,always,,,,,,,,
3210,V_KATRINN@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
3210,V_KATRINN@WZ_JUPITEL,chase,84,10,300,0,10000,yes,target,always,,,,,,,,
3210,V_KATRINN@WZ_JUPITEL,chase,84,28,300,0,10000,yes,target,always,,,,,,,,
3210,V_KATRINN@WZ_WATERBALL,chase,86,5,300,0,10000,yes,target,always,,,,,,,,
3210,V_KATRINN@NPC_DARKSTRIKE,chase,340,10,300,0,10000,yes,target,always,,,,,,,,
3210,V_KATRINN@MG_FIREWALL,chase,18,10,300,0,10000,yes,target,always,,,,,,,,
3210,V_KATRINN@MG_FROSTDIVER,chase,15,10,300,0,10000,yes,target,always,,,,,,,,
3210,V_KATRINN@MG_FROSTDIVER,chase,15,40,300,0,10000,yes,target,always,,,,,,,,
3210,V_KATRINN@HW_NAPALMVULCAN,chase,400,5,300,0,10000,yes,target,always,,,,,,,,
3210,V_KATRINN@WZ_FROSTNOVA,chase,88,10,300,0,10000,yes,target,longrangeattacked,,,,,,,,
3210,V_KATRINN@WL_EARTHSTRAIN,chase,2216,5,300,0,10000,yes,target,always,,,,,,,,
@@ -11420,7 +11401,7 @@
3210,V_KATRINN@NPC_WIDEFREEZE,attack,664,3,300,500,10000,no,self,always,,,,,,,,
3210,V_KATRINN@NPC_DARKSTRIKE,attack,340,10,300,0,10000,yes,target,always,,,,,,,,
3210,V_KATRINN@WL_TETRAVORTEX,attack,2217,2,300,500,10000,no,target,always,,,,,,,,
3210,V_KATRINN@WZ_JUPITEL,attack,84,10,300,0,10000,yes,target,always,,,,,,,,
3210,V_KATRINN@WZ_JUPITEL,attack,84,28,300,0,10000,yes,target,always,,,,,,,,
3210,V_KATRINN@WL_EARTHSTRAIN,attack,2216,3,300,500,10000,no,target,always,,,,,,,,
3210,V_KATRINN@WZ_SIGHTRASHER,attack,81,10,300,0,10000,yes,self,always,,,,,,,,
3210,V_KATRINN@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,1641,,,,,,
@@ -11489,11 +11470,11 @@
3215,V_G_MAGALETA@HP_ASSUMPTIO,chase,361,5,1000,1000,10000,no,self,myhpltmaxrate,99,,,,,,,
3215,V_G_MAGALETA@HP_ASSUMPTIO,chase,361,5,1000,1000,10000,no,friend,friendhpltmaxrate,99,,,,,,,
3215,V_G_MAGALETA@AL_INCAGI,chase,29,10,200,0,240000,yes,self,always,,,,,,,2,
3215,V_G_MAGALETA@AL_DECAGI,chase,30,10,200,0,10000,yes,target,always,,,,,,,,
3215,V_G_MAGALETA@AL_DECAGI,chase,30,48,200,0,10000,yes,target,always,,,,,,,,
3215,V_G_MAGALETA@NPC_WIDESILENCE,chase,663,2,500,0,10000,yes,target,casttargeted,,,,,,,18,
3215,V_G_MAGALETA@AL_PNEUMA,chase,25,1,500,0,10000,yes,self,longrangeattacked,,,,,,,19,
3215,V_G_MAGALETA@AL_HEAL,chase,28,10,300,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
3215,V_G_MAGALETA@AL_HEAL,chase,28,10,300,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
3215,V_G_MAGALETA@AL_HEAL,chase,28,11,300,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
3215,V_G_MAGALETA@AL_HEAL,chase,28,11,300,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
3215,V_G_MAGALETA@AL_INCAGI,attack,29,10,200,0,240000,yes,self,always,,,,,,,2,
3215,V_G_MAGALETA@MG_SAFETYWALL,attack,12,10,100,0,10000,yes,self,always,,,,,,,,
3215,V_G_MAGALETA@AL_PNEUMA,attack,25,1,500,0,10000,yes,self,longrangeattacked,,,,,,,19,
@@ -11510,14 +11491,14 @@
3216,V_G_KATRINN@NPC_WIDEFREEZE,chase,664,5,300,3000,10000,no,self,always,,,,,,,,
3216,V_G_KATRINN@HW_NAPALMVULCAN,chase,400,5,200,1000,2000,no,target,always,,,,,,,,
3216,V_G_KATRINN@NPC_STORMGUST2,chase,723,3,300,1000,10000,no,target,always,,,,,,,,
3216,V_G_KATRINN@WZ_VERMILION,chase,85,10,300,1000,10000,no,target,always,,,,,,,,
3216,V_G_KATRINN@WZ_METEOR,chase,83,10,300,1000,10000,no,target,always,,,,,,,,
3216,V_G_KATRINN@WZ_VERMILION,chase,85,21,300,1000,10000,no,target,always,,,,,,,,
3216,V_G_KATRINN@WZ_METEOR,chase,83,11,300,1000,10000,no,target,always,,,,,,,,
3216,V_G_KATRINN@NPC_COMET,attack,708,5,300,1000,7000,no,self,always,,,,,,,,
3216,V_G_KATRINN@NPC_STORMGUST2,attack,723,3,200,1000,10000,no,target,always,,,,,,,,
3216,V_G_KATRINN@NPC_WIDESTONE,attack,666,1,200,1000,10000,no,self,always,,,,,,,,
3216,V_G_KATRINN@HW_GANBANTEIN,attack,483,1,300,500,10000,no,target,always,,,,,,,,
3216,V_G_KATRINN@WL_EARTHSTRAIN,attack,2216,5,300,1000,7000,no,target,always,,,,,,,,
3216,V_G_KATRINN@WZ_JUPITEL,attack,84,10,200,1000,10000,no,target,always,,,,,,,,
3216,V_G_KATRINN@WZ_JUPITEL,attack,84,28,200,1000,10000,no,target,always,,,,,,,,
3216,V_G_KATRINN@WL_TETRAVORTEX,attack,2217,5,300,1000,7000,no,target,always,,,,,,,,
3216,V_G_KATRINN@NPC_WIDEFREEZE,attack,664,5,200,1000,10000,no,self,always,,,,,,,,
3217,V_G_SHECIL@NPC_AGIUP,idle,350,1,1000,0,600000,yes,self,always,,,,,,,,
@@ -11534,7 +11515,7 @@
3218,V_G_HARWORD@NPC_SELFDESTRUCTION,attack,173,1,200,2000,0,no,self,myhpltmaxrate,10,,,,,,,
3218,V_G_HARWORD@BS_ADRENALINE,attack,111,10,200,0,150000,yes,self,always,,,,,,,,
3218,V_G_HARWORD@BS_MAXIMIZE,attack,114,1,100,0,60000,yes,self,always,,,,,,,,
3218,V_G_HARWORD@MC_MAMMONITE,attack,42,10,200,0,10000,yes,target,always,,,,,,,23,
3218,V_G_HARWORD@MC_MAMMONITE,attack,42,22,200,0,10000,yes,target,always,,,,,,,23,
3218,V_G_HARWORD@BS_HAMMERFALL,attack,110,10,200,0,30000,yes,target,always,,,,,,,,
3218,V_G_HARWORD@NPC_POWERUP,attack,349,5,200,0,100000,yes,self,always,,,,,,,,
3218,V_G_HARWORD@NPC_SPLASHATTACK,attack,174,1,100,0,0,yes,target,attackpcge,2,,,,,,,
@@ -11548,7 +11529,7 @@
3219,V_G_SEYREN@SM_PROVOKE,chase,6,10,100,0,10000,yes,target,always,,,,,,,29,
3219,V_G_SEYREN@SM_ENDURE,chase,8,10,500,0,30000,yes,self,longrangeattacked,,,,,,,6,
3219,V_G_SEYREN@NPC_DARKPIERCING,chase,715,1,100,0,10000,yes,target,always,,,,,,,,
3219,V_G_SEYREN@KN_TWOHANDQUICKEN,attack,60,10,1000,0,300000,yes,self,always,,,,,,,2,
3219,V_G_SEYREN@KN_TWOHANDQUICKEN,attack,60,30,1000,0,300000,yes,self,always,,,,,,,2,
3219,V_G_SEYREN@LK_SPIRALPIERCE,attack,397,5,200,0,10000,yes,target,always,,,,,,,,
3219,V_G_SEYREN@NPC_POWERUP,attack,349,5,200,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
3219,V_G_SEYREN@NPC_DRAGONBREATH,attack,731,5,300,500,10000,no,target,always,,,,,,,,
@@ -11639,7 +11620,7 @@
3223,V_B_HARWORD@NPC_SUMMONMONSTER,attack,209,1,1000,700,60000000,yes,self,myhpltmaxrate,30,3219,3214,3215,3216,3217,,
3223,V_B_HARWORD@BS_ADRENALINE,attack,111,10,200,0,150000,yes,self,always,,,,,,,,
3223,V_B_HARWORD@BS_MAXIMIZE,attack,114,1,100,0,60000,yes,self,always,,,,,,,,
3223,V_B_HARWORD@MC_MAMMONITE,attack,42,10,200,0,10000,yes,target,always,,,,,,,23,
3223,V_B_HARWORD@MC_MAMMONITE,attack,42,22,200,0,10000,yes,target,always,,,,,,,23,
3223,V_B_HARWORD@BS_HAMMERFALL,attack,110,10,200,0,10000,yes,target,always,,,,,,,,
3223,V_B_HARWORD@NPC_POWERUP,attack,349,5,200,0,100000,yes,self,always,,,,,,,,
3223,V_B_HARWORD@NPC_MAXPAIN,attack,716,10,500,1000,10000,no,self,always,,,,,,,19,
@@ -11661,7 +11642,7 @@
3224,V_B_KATRINN@NPC_WIDESTONE,attack,666,1,200,1000,10000,no,self,always,,,,,,,,
3224,V_B_KATRINN@HW_GANBANTEIN,attack,483,1,300,500,10000,no,target,always,,,,,,,,
3224,V_B_KATRINN@WL_EARTHSTRAIN,attack,2216,5,300,1000,7000,no,target,always,,,,,,,,
3224,V_B_KATRINN@WZ_JUPITEL,attack,84,10,200,1000,10000,no,target,always,,,,,,,,
3224,V_B_KATRINN@WZ_JUPITEL,attack,84,28,200,1000,10000,no,target,always,,,,,,,,
3224,V_B_KATRINN@WL_TETRAVORTEX,attack,2217,5,300,1000,7000,no,target,always,,,,,,,,
3224,V_B_KATRINN@NPC_WIDEFREEZE,attack,664,5,200,1000,10000,no,self,always,,,,,,,,
3224,V_B_KATRINN@NPC_WIDESILENCE,attack,663,5,200,1000,10000,no,self,always,,,,,,,,
@@ -11675,7 +11656,7 @@
3225,V_B_SEYREN@NPC_MAXPAIN,attack,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
3225,V_B_SEYREN@NPC_CALLSLAVE,attack,352,1,1000,0,10000,yes,self,always,,,,,,,,
3225,V_B_SEYREN@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3214,3218,3215,3216,3217,,
3225,V_B_SEYREN@KN_TWOHANDQUICKEN,attack,60,10,1000,0,300000,yes,self,always,,,,,,,2,
3225,V_B_SEYREN@KN_TWOHANDQUICKEN,attack,60,30,1000,0,300000,yes,self,always,,,,,,,2,
3225,V_B_SEYREN@LK_SPIRALPIERCE,attack,397,5,200,0,10000,yes,target,always,,,,,,,,
3225,V_B_SEYREN@NPC_DRAGONBREATH,attack,731,10,300,500,10000,no,target,always,,,,,,,,
3225,V_B_SEYREN@NPC_DRAGONBREATH,attack,731,5,300,500,10000,no,target,always,,,,,,,,
@@ -11724,7 +11705,7 @@
3228,V_CELIA@NPC_WIDEWEB,chase,721,1,500,1000,10000,no,self,always,,,,,,,,
3228,V_CELIA@NPC_PSYCHIC_WAVE,chase,736,1,500,0,10000,no,target,always,,,,,,,,
3228,V_CELIA@SA_DISPELL,chase,289,5,50,0,10000,yes,target,always,,,,,,,,
3228,V_CELIA@MG_THUNDERSTORM,chase,21,10,300,500,10000,no,target,always,,,,,,,,
3228,V_CELIA@MG_THUNDERSTORM,chase,21,20,300,500,10000,no,target,always,,,,,,,,
3228,V_CELIA@NPC_WIDESOULDRAIN,chase,680,4,300,0,10000,no,self,always,,,,,,,,
3228,V_CELIA@NPC_MENTALBREAKER,attack,159,3,50,800,10000,no,target,always,,,,,,,,
3228,V_CELIA@SA_DISPELL,attack,289,5,300,0,10000,yes,target,always,,,,,,,,
@@ -11737,7 +11718,7 @@
3229,V_CHEN@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
3229,V_CHEN@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
3229,V_CHEN@MO_BODYRELOCATION,chase,264,1,200,500,5000,no,target,always,,,,,,,28,
3229,V_CHEN@AL_DECAGI,chase,30,10,200,0,10000,yes,target,always,,,,,,,,
3229,V_CHEN@AL_DECAGI,chase,30,48,200,0,10000,yes,target,always,,,,,,,,
3229,V_CHEN@MO_BALKYOUNG,attack,1016,1,10,0,10000,no,target,always,,,,,,,19,
3229,V_CHEN@MO_EXTREMITYFIST,attack,271,1,500,1000,6000,no,target,always,,,,,,,,
3229,V_CHEN@NPC_CRITICALSLASH,attack,170,1,100,0,10000,yes,target,always,,,,,,,,
@@ -12759,7 +12740,7 @@
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@AL_DECAGI,chase,30,48,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,
@@ -12847,12 +12828,12 @@
3763,Resentful Soldier@NPC_UNDEADATTACK,attack,347,5,500,500,5000,no,target,always,0,,,,,,,
3763,Resentful Soldier@AC_CHARGEARROW,attack,148,1,500,0,15000,yes,target,always,0,,,,,,,
3764,Wizard of Truth@NPC_TALK,idle,682,10,2500,0,60000,yes,self,always,0,,,,,,,55
3764,Wizard of Truth@WZ_VERMILION,idle,85,10,10000,1000,25000,no,target,always,0,,,,,,,
3764,Wizard of Truth@WZ_VERMILION,idle,85,21,10000,1000,25000,no,target,always,0,,,,,,,
3764,Wizard of Truth@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
3764,Wizard of Truth@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
3764,Wizard of Truth@WZ_VERMILION,chase,85,10,10000,500,27000,no,target,always,0,,,,,,,
3764,Wizard of Truth@WZ_VERMILION,chase,85,21,10000,500,27000,no,target,always,0,,,,,,,
3764,Wizard of Truth@WZ_STORMGUST,attack,89,9,10000,1000,26000,no,target,always,0,,,,,,,
3764,Wizard of Truth@WZ_VERMILION,attack,85,10,10000,1000,25000,no,target,always,0,,,,,,,
3764,Wizard of Truth@WZ_VERMILION,attack,85,21,10000,1000,25000,no,target,always,0,,,,,,,
3764,Wizard of Truth@MG_FIREWALL,attack,18,9,2000,200,19000,yes,target,always,0,,,,,,,
3764,Wizard of Truth@WZ_METEOR,attack,83,9,10000,1000,29000,no,target,always,,,,,,,,
3764,Wizard of Truth@WZ_HEAVENDRIVE,attack,91,5,2000,1000,22000,no,target,always,0,,,,,,,
@@ -13124,6 +13105,108 @@
20280,G_ILL_WOOTAN_FIGHTER@KN_BRANDISHSPEAR,attack,57,5,2000,0,10000,yes,target,always,0,,,,,,6,
20280,G_ILL_WOOTAN_FIGHTER@NPC_FIREATTACK,attack,186,4,1000,0,5000,yes,target,always,0,,,,,,,
// Illusion of Teddy Bear
20255,ILL_TEDDY_BEAR_R@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
20255,ILL_TEDDY_BEAR_R@NPC_CURSEATTACK,chase,181,3,1000,500,5000,no,target,always,0,,,,,,2,
20255,ILL_TEDDY_BEAR_R@NPC_CRITICALSLASH,attack,170,1,1500,500,5000,no,target,always,0,,,,,,6,
20255,ILL_TEDDY_BEAR_R@NPC_FIREATTACK,attack,186,2,1000,0,5000,yes,target,always,0,,,,,,37,
20255,ILL_TEDDY_BEAR_R@BS_HAMMERFALL,attack,110,5,500,1500,5000,no,target,always,0,,,,,,8,
20256,ILL_TEDDY_BEAR_Y@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
20256,ILL_TEDDY_BEAR_Y@MG_LIGHTNINGBOLT,chase,20,2,1500,1000,5000,no,target,always,0,,,,,,,
20256,ILL_TEDDY_BEAR_Y@NPC_CURSEATTACK,chase,181,5,1000,500,5000,no,target,always,0,,,,,,2,
20256,ILL_TEDDY_BEAR_Y@WZ_VERMILION,attack,85,3,500,1500,10000,no,target,always,0,,,,,,6,
20256,ILL_TEDDY_BEAR_Y@WZ_STORMGUST,attack,89,3,1000,1500,10000,no,target,always,0,,,,,,37,
20256,ILL_TEDDY_BEAR_Y@HW_GANBANTEIN,attack,483,1,1000,0,5000,no,target,skillused,18,,,,,,8,
20256,ILL_TEDDY_BEAR_Y@MG_LIGHTNINGBOLT,attack,20,3,500,1500,10000,no,target,always,0,,,,,,,
20257,ILL_TEDDY_BEAR_G@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
20257,ILL_TEDDY_BEAR_G@NPC_BLOODDRAIN,chase,199,1,1500,0,5000,yes,target,always,0,,,,,,,
20257,ILL_TEDDY_BEAR_G@NPC_CLOUD_KILL,attack,739,3,500,1500,20000,no,target,always,0,,,,,,6,
20258,ILL_TEDDY_BEAR_W@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
20258,ILL_TEDDY_BEAR_W@NPC_CHEAL,chase,729,5,3000,500,3000,no,self,friendhpltmaxrate,99,,,,,,,
20258,ILL_TEDDY_BEAR_W@NPC_CHEAL,chase,729,5,3000,500,3000,no,self,myhpltmaxrate,99,,,,,,,
20258,ILL_TEDDY_BEAR_W@NPC_CHEAL,attack,729,5,1500,500,5000,no,self,always,0,,,,,,2,
20258,ILL_TEDDY_BEAR_W@AL_HEAL,attack,28,9,2000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,,
20258,ILL_TEDDY_BEAR_W@AL_HEAL,attack,28,9,2000,0,2000,yes,friend,myhpltmaxrate,99,,,,,,3,
20258,ILL_TEDDY_BEAR_W@AM_POTIONPITCHER,attack,231,4,5000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,,
20258,ILL_TEDDY_BEAR_W@AM_POTIONPITCHER,attack,231,4,5000,500,5000,no,friend,myhpltmaxrate,30,,,,,,5,
20258,ILL_TEDDY_BEAR_W@NPC_ALLHEAL,attack,687,1,10000,5000,30000,no,self,myhpltmaxrate,10,,,,,,6,
20258,ILL_TEDDY_BEAR_W@CR_HOLYCROSS,attack,253,5,500,0,5000,yes,target,always,0,,,,,,32,
20259,ILL_TEDDY_BEAR_B@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
20259,ILL_TEDDY_BEAR_B@MG_COLDBOLT,chase,14,2,1500,1000,5000,no,target,always,0,,,,,,23,
20259,ILL_TEDDY_BEAR_B@NPC_STORMGUST2,attack,723,1,500,1500,10000,no,target,always,0,,,,,,20,
20259,ILL_TEDDY_BEAR_B@NPC_WATERATTACK,attack,184,2,1500,0,5000,yes,target,always,0,,,,,,6,
20259,ILL_TEDDY_BEAR_B@MG_COLDBOLT,attack,14,3,500,1500,10000,no,target,always,0,,,,,,,
20260,ILL_TEDDY_BEAR_S@NPC_AGIUP,attack,350,1,5000,0,20000,yes,self,always,0,,,,,,,
20260,ILL_TEDDY_BEAR_S@NPC_BLEEDING2,attack,764,5,2000,500,10000,no,target,always,0,,,,,,,
20260,ILL_TEDDY_BEAR_S@NPC_CRITICALWOUND,attack,673,3,1000,500,20000,no,target,always,0,,,,,,,
20260,ILL_TEDDY_BEAR_S@NPC_WIDESIGHT,attack,669,1,10000,0,30000,yes,self,always,0,,,,,,,
20260,ILL_TEDDY_BEAR_S@NPC_WEAPONBRAKER,attack,343,1,10000,0,40000,yes,target,always,0,,,,,,,
20260,ILL_TEDDY_BEAR_S@NPC_DARKBREATH,attack,202,5,2000,3000,10000,no,target,myhpltmaxrate,60,,,,,,0,
20260,ILL_TEDDY_BEAR_S@CR_HOLYCROSS,attack,253,10,500,0,5000,yes,target,always,0,,,,,,32,
20260,ILL_TEDDY_BEAR_S@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
20260,ILL_TEDDY_BEAR_S@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
20260,ILL_TEDDY_BEAR_S@NPC_CALLSLAVE,chase,352,1,10000,0,5000,yes,self,always,0,,,,,,,
// 20260,ILL_TEDDY_BEAR_S@NPC_EARTHQUAKE_K,attack,750,5,1500,2000,20000,no,target,myhpltmaxrate,30,,,,,,,
20260,ILL_TEDDY_BEAR_S@NPC_EARTHQUAKE,attack,653,5,1500,2000,20000,no,target,myhpltmaxrate,30,,,,,,,
20260,ILL_TEDDY_BEAR_S@NPC_PULSESTRIKE,attack,661,5,3000,3000,20000,no,self,always,0,,,,,,,
20260,ILL_TEDDY_BEAR_S@NPC_SUMMONSLAVE,idle,196,1,10000,1000,30000,no,self,slavele,1,20255,20256,20257,20259,,,
20260,ILL_TEDDY_BEAR_S@NPC_SUMMONSLAVE,attack,196,1,5000,1000,30000,no,self,slavele,1,20255,20256,20257,20259,,,
20260,ILL_TEDDY_BEAR_S@NPC_POWERUP,attack,349,5,10000,0,60000,yes,self,myhpltmaxrate,20,,,,,,6,
20260,ILL_TEDDY_BEAR_S@NPC_GRANDDARKNESS,attack,339,10,3000,1000,5000,no,self,always,0,,,,,,,
20260,ILL_TEDDY_BEAR_S@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
20260,ILL_TEDDY_BEAR_S@AL_TELEPORT,walk,26,1,5000,0,10000,yes,self,rudeattacked,0,,,,,,,
20260,ILL_TEDDY_BEAR_S@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
20260,ILL_TEDDY_BEAR_S@SA_LANDPROTECTOR,attack,288,2,3000,1000,10000,no,target,groundattacked,0,,,,,,6,
20260,ILL_TEDDY_BEAR_S@AL_PNEUMA,attack,25,1,3000,0,5000,yes,target,longrangeattacked,0,,,,,,18,
20261,ILL_PITMAN@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
20261,ILL_PITMAN@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,mobnearbygt,4,,,,,,,
20261,ILL_PITMAN@NPC_SILENCEATTACK,chase,178,3,500,0,5000,no,target,always,0,,,,,,6,
20261,ILL_PITMAN@NPC_COMBOATTACK,attack,171,3,500,700,5000,no,target,always,0,,,,,,,
20261,ILL_PITMAN@TF_SPRINKLESAND,attack,149,1,500,0,5000,no,target,always,0,,,,,,6,
20261,ILL_PITMAN@SM_MAGNUM,attack,7,3,1000,0,20000,yes,self,always,0,,,,,,32,
20261,ILL_PITMAN@NPC_GUIDEDATTACK,attack,172,3,2000,0,15000,yes,target,always,0,,,,,,37,
20262,ILL_MINERAL@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
20262,ILL_MINERAL@AS_GRIMTOOTH,idle,137,3,5000,0,500,yes,target,mystatuson,0,,,,,,,
20262,ILL_MINERAL@AL_HEAL,idle,28,9,5000,0,1500,yes,friend,mystatuson,0,,,,,,18,
20262,ILL_MINERAL@TF_HIDING,chase,51,1,2000,0,10000,yes,self,always,0,,,,,,19,
20262,ILL_MINERAL@TF_HIDING,chase,51,1,10000,0,10000,yes,self,myhpltmaxrate,30,,,,,,19,
20262,ILL_MINERAL@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,mobnearbygt,4,,,,,,,
20262,ILL_MINERAL@NPC_COMBOATTACK,attack,171,3,500,700,5000,no,target,always,0,,,,,,,
20262,ILL_MINERAL@TF_SPRINKLESAND,attack,149,1,500,0,5000,no,target,always,0,,,,,,6,
20262,ILL_MINERAL@NPC_GUIDEDATTACK,attack,172,3,2000,0,15000,yes,target,always,0,,,,,,37,
20262,ILL_MINERAL@NPC_RANDOMATTACK,attack,183,2,1500,500,5000,yes,target,always,0,,,,,,,
20263,ILL_OBSIDIAN@TF_HIDING,idle,51,1,500,500,5000,yes,self,always,0,,,,,,19,
20263,ILL_OBSIDIAN@AS_GRIMTOOTH,idle,137,3,5000,0,500,yes,target,mystatuson,0,,,,,,,
20263,ILL_OBSIDIAN@WZ_EARTHSPIKE,chase,90,3,1500,500,5000,no,target,always,0,,,,,,,
20263,ILL_OBSIDIAN@CR_SHIELDCHARGE,attack,250,3,1000,1000,5000,no,target,always,0,,,,,,,
20263,ILL_OBSIDIAN@NPC_GROUNDATTACK,attack,185,2,500,500,5000,yes,target,always,0,,,,,,,
20263,ILL_OBSIDIAN@TF_HIDING,attack,51,1,500,500,50000,yes,self,always,0,,,,,,19,
20264,G_ILL_TEDDY_BEAR_R@NPC_CURSEATTACK,chase,181,3,1000,500,5000,no,target,always,0,,,,,,2,
20264,G_ILL_TEDDY_BEAR_R@NPC_CRITICALSLASH,attack,170,1,1500,500,5000,no,target,always,0,,,,,,6,
20264,G_ILL_TEDDY_BEAR_R@NPC_FIREATTACK,attack,186,5,1000,0,5000,yes,target,always,0,,,,,,37,
20264,G_ILL_TEDDY_BEAR_R@BS_HAMMERFALL,attack,110,5,500,1500,5000,no,target,always,0,,,,,,8,
20265,G_ILL_TEDDY_BEAR_Y@MG_LIGHTNINGBOLT,chase,20,2,1500,1000,5000,no,target,always,0,,,,,,,
20265,G_ILL_TEDDY_BEAR_Y@NPC_CURSEATTACK,chase,181,5,1000,500,5000,no,target,always,0,,,,,,2,
20265,G_ILL_TEDDY_BEAR_Y@WZ_VERMILION,attack,85,3,500,1500,10000,no,target,always,0,,,,,,6,
20265,G_ILL_TEDDY_BEAR_Y@WZ_STORMGUST,attack,89,3,1000,1500,10000,no,target,always,0,,,,,,37,
20265,G_ILL_TEDDY_BEAR_Y@HW_GANBANTEIN,attack,483,1,1000,0,5000,no,target,skillused,18,,,,,,8,
20265,G_ILL_TEDDY_BEAR_Y@MG_LIGHTNINGBOLT,attack,20,3,500,1500,10000,no,target,always,0,,,,,,,
20266,G_ILL_TEDDY_BEAR_G@NPC_BLOODDRAIN,chase,199,1,1500,0,5000,yes,target,always,0,,,,,,,
20266,G_ILL_TEDDY_BEAR_G@NPC_CLOUD_KILL,attack,739,3,500,1500,20000,no,target,always,0,,,,,,6,
20267,G_ILL_TEDDY_BEAR_W@NPC_CHEAL,chase,729,5,3000,500,3000,no,self,friendhpltmaxrate,99,,,,,,,
20267,G_ILL_TEDDY_BEAR_W@NPC_CHEAL,chase,729,5,3000,500,3000,no,self,myhpltmaxrate,99,,,,,,,
20267,G_ILL_TEDDY_BEAR_W@NPC_CHEAL,attack,729,5,1500,500,5000,no,self,always,0,,,,,,2,
20267,G_ILL_TEDDY_BEAR_W@AL_HEAL,attack,28,9,2000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,,
20267,G_ILL_TEDDY_BEAR_W@AL_HEAL,attack,28,9,2000,0,2000,yes,friend,myhpltmaxrate,99,,,,,,3,
20267,G_ILL_TEDDY_BEAR_W@AM_POTIONPITCHER,attack,231,4,5000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,,
20267,G_ILL_TEDDY_BEAR_W@AM_POTIONPITCHER,attack,231,4,5000,500,5000,no,friend,myhpltmaxrate,30,,,,,,5,
20267,G_ILL_TEDDY_BEAR_W@NPC_ALLHEAL,attack,687,1,10000,5000,30000,no,self,myhpltmaxrate,10,,,,,,6,
20267,G_ILL_TEDDY_BEAR_W@CR_HOLYCROSS,attack,253,5,500,0,5000,yes,target,always,0,,,,,,32,
20268,G_ILL_TEDDY_BEAR_B@MG_COLDBOLT,chase,14,2,1500,1000,5000,no,target,always,0,,,,,,23,
20268,G_ILL_TEDDY_BEAR_B@NPC_STORMGUST2,attack,723,1,500,1500,10000,no,target,always,0,,,,,,20,
20268,G_ILL_TEDDY_BEAR_B@NPC_WATERATTACK,attack,184,2,1500,0,5000,yes,target,always,0,,,,,,6,
20268,G_ILL_TEDDY_BEAR_B@MG_COLDBOLT,attack,14,3,500,1500,10000,no,target,always,0,,,,,,,
// 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,
@@ -14692,7 +14775,7 @@
21360,EP18_MD_SCHULANG_L@NPC_TELEKINESISATTACK,attack,191,2,3000,0,5000,yes,target,always,0,,,,,,,
21360,EP18_MD_SCHULANG_L@NPC_POWERUP,attack,349,3,5000,0,30000,yes,self,always,0,,,,,,,
21360,EP18_MD_SCHULANG_L@NPC_DARKSTRIKE,chase,340,3,3000,200,15000,yes,target,always,0,,,,,,,
// 21360,EP18_MD_SCHULANG_L@NPC_DEADLYCURSE2,attack,779,5,5000,1000,30000,no,self,always,0,,,,,,55,
21360,EP18_MD_SCHULANG_L@NPC_DEADLYCURSE2,attack,779,5,5000,1000,30000,no,self,always,0,,,,,,55,
21360,EP18_MD_SCHULANG_L@NPC_BLOODDRAIN,attack,199,1,2000,0,10000,yes,target,always,0,,,,,,,
21360,EP18_MD_SCHULANG_L@NPC_DARKSTRIKE,attack,340,3,3000,200,15000,yes,target,always,0,,,,,,,
21360,EP18_MD_SCHULANG_L@NPC_WIDESTONE2,attack,759,3,3000,500,30000,no,target,always,0,,,,,,,
@@ -14717,6 +14800,6 @@
21361,EP18_MD_DEMI_FREYJA_L@NPC_HELLJUDGEMENT2,attack,768,5,1000,500,120000,yes,target,always,0,,,,,,,
21361,EP18_MD_DEMI_FREYJA_L@NPC_CHANGEDARKNESS,attack,168,1,1000,0,120000,yes,self,always,0,,,,,,,
21361,EP18_MD_DEMI_FREYJA_L@NPC_CHANGEHOLY,attack,167,1,3000,0,120000,yes,self,always,0,,,,,,,
// 21361,EP18_MD_DEMI_FREYJA_L@NPC_DEADLYCURSE2,attack,779,5,5000,1000,30000,no,self,always,0,,,,,,55,
21361,EP18_MD_DEMI_FREYJA_L@NPC_DEADLYCURSE2,attack,779,5,5000,1000,30000,no,self,always,0,,,,,,55,
21361,EP18_MD_DEMI_FREYJA_L@NPC_CANE_OF_EVIL_EYE,chase,780,3,8000,300,30000,no,target,always,0,,,,,,,
21361,EP18_MD_DEMI_FREYJA_L@NPC_CANE_OF_EVIL_EYE,attack,780,5,7000,300,30000,yes,target,always,0,,,,,,,

View File

@@ -2788,6 +2788,7 @@ Body:
# bonus bFlee,20;
# }
#
# - Mob: FARMILIAR2 #TODO : Implement mob FARMILIAR2
- Mob: FARMILIAR
TameItem: Fruits_Set_Trap
EggItem: Farmiliar_Egg
@@ -3102,3 +3103,24 @@ Body:
# bonus bMaxSP,30;
# }
#
# - Mob: EP21_ICESEAHORSE
# TameItem: Ep21_Fatty_Shrimp
# EggItem: aegis_9157
# FoodItem: Pet_Food
# Fullness: 2 # unknown
# HungryDelay: 120 # unknown
# IntimacyFed: 15 # unknown
# CaptureRate: 2000 # unknown
# SpecialPerformance: false # unknown
# Script: >
# .@i = getpetinfo(PETINFO_INTIMATE);
#
# if (.@i == PET_INTIMATE_CORDIAL) {
# bonus bMRes,5;
# bonus bRes,5;
# }
# else if (.@i == PET_INTIMATE_LOYAL) {
# bonus bMRes,10;
# bonus bRes,10;
# }
#

View File

@@ -1404,21 +1404,21 @@ Body:
TimeLimit: 4h
- Id: 3455
Title: Illusion Investigation Team - Machoko
# - Id: 3456
# Title: Illusion of Teddy Bear 100 Kills
# Targets:
# - Id: 1
# Count: 100
# Location: ein_d02_i
# MapMobTargets:
# ILL_TEDDY_BEAR_B: true
# ILL_MINERAL: true
# ILL_PITMAN: true
# ILL_TEDDY_BEAR_R: true
# ILL_TEDDY_BEAR_Y: true
# ILL_TEDDY_BEAR_W: true
# ILL_OBSIDIAN: true
# ILL_TEDDY_BEAR_G: true
- Id: 3456
Title: Illusion of Teddy Bear 100 Kills
Targets:
- Id: 1
Count: 100
Location: ein_d02_i
MapMobTargets:
ILL_TEDDY_BEAR_B: true
ILL_MINERAL: true
ILL_PITMAN: true
ILL_TEDDY_BEAR_R: true
ILL_TEDDY_BEAR_Y: true
ILL_TEDDY_BEAR_W: true
ILL_OBSIDIAN: true
ILL_TEDDY_BEAR_G: true
- Id: 3457
Title: Illusion of Teddy Bear 100 Kills - Standby
TimeLimit: 4h
@@ -8038,14 +8038,74 @@ Body:
- Id: 11555
Title: In search of the taste of hometown - Waiting
TimeLimit: 4h
- Id: 11556
Title: Missing Steven
- Id: 11557
Title: Missing Steven
- Id: 11558
Title: Missing Steven
- Id: 11559
Title: Missing Steven
- Id: 11560
Title: Missing Steven
- Id: 11561
Title: Missing Steven
- Id: 11562
Title: Missing Steven
- Id: 11563
Title: Nasarian Conspiracy
Targets:
- Mob: ILL_TEDDY_BEAR_R
Count: 10
- Mob: ILL_TEDDY_BEAR_Y
Count: 10
- Mob: ILL_TEDDY_BEAR_G
Count: 10
- Id: 11564
Title: Nasarian Conspiracy
Targets:
- Mob: ILL_TEDDY_BEAR_B
Count: 10
- Mob: ILL_TEDDY_BEAR_W
Count: 10
- Id: 11565
Title: RUN!
Targets:
- Mob: ILL_PITMAN
Count: 10
- Mob: ILL_MINERAL
Count: 10
- Mob: ILL_OBSIDIAN
Count: 10
- Id: 11566
Title: Escape!!!! - Wait
Title: RUN! - Pending
TimeLimit: 4h
- Id: 11567
Title: Things That Shouldn't Exist
Targets:
- Mob: ILL_TEDDY_BEAR_R
Count: 10
- Mob: ILL_TEDDY_BEAR_Y
Count: 10
- Mob: ILL_TEDDY_BEAR_G
Count: 10
- Id: 11568
Title: Things That Shouldn't Exist
Targets:
- Mob: ILL_TEDDY_BEAR_B
Count: 10
- Mob: ILL_TEDDY_BEAR_W
Count: 10
- Id: 11569
Title: Present not to exist-wait
Title: Things That Shouldn't Exist - Pending
TimeLimit: 4h
- Id: 11570
Title: Let the Light Devour the Darkness
Targets:
- Mob: ILL_TEDDY_BEAR_S
Count: 1
- Id: 11571
Title: Let the light consume the darkness - Wait
Title: Let the Light Devour the Darkness - Pending
TimeLimit: 4h
- Id: 11596
Title: Old Memories

View File

@@ -7234,9 +7234,9 @@ Body:
Type: Magic
TargetType: Self
DamageFlags:
IgnoreAtkCard: true
IgnoreFlee: true
Range: 5
IgnoreDefense: true
SimpleDefense: true
Range: 9
Hit: Single
HitCount: 1
Element: Holy
@@ -7664,8 +7664,8 @@ Body:
Type: Weapon
TargetType: Attack
DamageFlags:
IgnoreDefense: true
IgnoreFlee: true
SimpleDefense: true
Flags:
TargetTrap: true
Range: -2
@@ -7699,7 +7699,6 @@ Body:
- Level: 5
Time: 1000
Duration1: 3000
Duration2: 300000
FixedCastTime:
- Level: 1
Time: 2000
@@ -8879,6 +8878,7 @@ Body:
HitCount: 1
SplashArea: -1
AfterCastActDelay: 300
Duration1: 15000
Duration2: 27000
Cooldown: 4000
Requires:
@@ -9136,6 +9136,7 @@ Body:
HitCount: 1
SplashArea: -1
AfterCastActDelay: 300
Duration1: 4500
Duration2: 4500
Cooldown: 4000
Requires:
@@ -9454,6 +9455,7 @@ Body:
DamageFlags:
IgnoreAtkCard: true
IgnoreFlee: true
SimpleDefense: true
Flags:
IsNpc: true
TargetSelf: true
@@ -10250,15 +10252,15 @@ Body:
Element: Weapon
Duration1:
- Level: 1
Time: 4000
Time: 2000
- Level: 2
Time: 8000
Time: 4000
- Level: 3
Time: 12000
Time: 6000
- Level: 4
Time: 16000
Time: 8000
- Level: 5
Time: 24000
Time: 10000
CastDelayFlags:
IgnoreStatus: true
Requires:
@@ -10274,7 +10276,7 @@ Body:
- Level: 5
Amount: 12
SpiritSphereCost: 1
Status: Stop
Status: Ankle
- Id: 372
Name: CH_CHAINCRUSH
Description: Chain Crush Combo
@@ -11048,7 +11050,7 @@ Body:
TargetType: Attack
Flags:
TargetTrap: true
Range: 5
Range: 4
Hit: Multi_Hit
HitCount: 5
Element: Weapon
@@ -11103,7 +11105,7 @@ Body:
2hSword: true
1hSpear: true
2hSpear: true
Status: Stop
Status: Ankle
- Id: 398
Name: LK_HEADCRUSH
Description: Traumatic Blow
@@ -11313,7 +11315,7 @@ Body:
TargetType: Attack
DamageFlags:
NoDamage: true
Range: 7
Range: 9
Hit: Single
HitCount: 1
ActiveInstance: 3
@@ -16709,7 +16711,7 @@ Body:
Flags:
IsNpc: true
HitCount: 1
Duration1: -1
Duration1: 300000
Status: Invincible
- Id: 686
Name: NPC_INVINCIBLEOFF
@@ -16721,8 +16723,6 @@ Body:
Flags:
IsNpc: true
HitCount: 1
Duration1: 60000
Status: InvincibleOff
- Id: 687
Name: NPC_ALLHEAL
Description: Full Heal
@@ -18364,6 +18364,43 @@ Body:
HitCount: 1
Duration1: 60000
Status: Relieve_off
- Id: 776
Name: NPC_DEADLYCURSE
Description: Deadly Curse
MaxLevel: 1
TargetType: Attack
DamageFlags:
NoDamage: true
Flags:
IgnoreGtb: true
IsNpc: true
Range: 1
Duration1: 15000
Status: Deadly_Defeasance
- Id: 779
Name: NPC_DEADLYCURSE2
Description: Deadly Curse 2
MaxLevel: 5
TargetType: Self
DamageFlags:
NoDamage: true
Splash: true
Flags:
IgnoreGtb: true
IsNpc: true
SplashArea:
- Level: 1
Area: 2
- Level: 2
Area: 3
- Level: 3
Area: 4
- Level: 4
Area: 5
- Level: 5
Area: 6
Duration2: 30000
Status: Deadly_Defeasance
- Id: 780
Name: NPC_CANE_OF_EVIL_EYE
Description: Cane of evil eye
@@ -19114,6 +19151,7 @@ Body:
DamageFlags:
Splash: true
IgnoreFlee: true
SimpleDefense: true
Flags:
TargetTrap: true
Range: 9
@@ -22659,6 +22697,7 @@ Body:
DamageFlags:
Splash: true
IgnoreFlee: true
SimpleDefense: true
Flags:
AllowOnMado: true
Range: 9
@@ -24523,7 +24562,7 @@ Body:
TargetType: Attack
Range: 1
Hit: Single
HitCount: 5
HitCount: -5
CopyFlags:
Skill:
Reproduce: true
@@ -28793,6 +28832,7 @@ Body:
DamageFlags:
Splash: true
IgnoreFlee: true
SimpleDefense: true
Range:
- Level: 1
Size: 7
@@ -29691,6 +29731,19 @@ Body:
- Level: 2
Amount: 100
Status: Odins_Power
- Id: 2543
Name: ALL_RAY_OF_PROTECTION
Description: Ray of Protection
MaxLevel: 1
Type: Magic
TargetType: Support
DamageFlags:
NoDamage: true
Range: 1
Hit: Single
HitCount: 1
Duration1: 60000
Status: Protection
- Id: 2544
Name: MC_CARTDECORATE
Description: Decorate Cart
@@ -33149,6 +33202,7 @@ Body:
DamageFlags:
Splash: true
IgnoreFlee: true
SimpleDefense: true
Flags:
TargetTrap: true
Range: 9
@@ -46224,7 +46278,7 @@ Body:
TargetType: Attack
Flags:
TargetTrap: true
Range: 5
Range: 4
Hit: Multi_Hit
HitCount: 5
Element: Weapon
@@ -46268,7 +46322,7 @@ Body:
Amount: 27
- Level: 5
Amount: 30
Status: Stop
Status: Ankle
- Id: 8219
Name: ML_DEFENDER
Description: Defending_Aura
@@ -46959,9 +47013,7 @@ Body:
Range: 2
Hit: Single
HitCount: 1
Duration1: 10000
Cooldown: 30000
Status: InvincibleOff
- Id: 8401
Name: EL_CIRCLE_OF_FIRE
Description: Circle of Fire

View File

@@ -72,6 +72,7 @@ Body:
Stun: true
Sleep: true
Burning: true
Protection: true
EndOnStart:
Aeterna: true
EndReturn:
@@ -125,6 +126,7 @@ Body:
Stun: true
Sleep: true
Burning: true
Protection: true
EndOnStart:
Aeterna: true
- Status: Stun
@@ -144,6 +146,7 @@ Body:
Inspiration: true
Gvg_Stun: true
Stun: true
Protection: true
- Status: Sleep
DurationLookup: NPC_SLEEPATTACK
States:
@@ -162,6 +165,7 @@ Body:
Inspiration: true
Gvg_Sleep: true
Sleep: true
Protection: true
- Status: Poison
DurationLookup: NPC_POISON
CalcFlags:
@@ -180,6 +184,7 @@ Body:
Inspiration: true
Poison: true
Dpoison: true
Protection: true
- Status: Curse
DurationLookup: NPC_WIDECURSE
CalcFlags:
@@ -198,6 +203,7 @@ Body:
Inspiration: true
Gvg_Curse: true
Curse: true
Protection: true
- Status: Silence
DurationLookup: NPC_SILENCEATTACK
States:
@@ -214,6 +220,7 @@ Body:
Inspiration: true
Gvg_Silence: true
Silence: true
Protection: true
- Status: Confusion
DurationLookup: NPC_WIDECONFUSE
Flags:
@@ -223,6 +230,7 @@ Body:
Fail:
Refresh: true
Inspiration: true
Protection: true
EndReturn:
Confusion: true
- Status: Blind
@@ -242,6 +250,7 @@ Body:
Fear: true
Gvg_Blind: true
Blind: true
Protection: true
- Status: Bleeding
Icon: EFST_BLOODING
DurationLookup: NPC_BLEEDING
@@ -259,6 +268,7 @@ Body:
Fail:
Refresh: true
Inspiration: true
Protection: true
- Status: Dpoison
DurationLookup: NPC_POISON
CalcFlags:
@@ -786,7 +796,6 @@ Body:
NoBanishingBuster: true
NoClearance: true
RemoveOnChangeMap: true
MinDuration: 5000
- Status: Keeping
DurationLookup: NPC_KEEPING
CalcFlags:
@@ -1000,6 +1009,7 @@ Body:
Flags:
SendOption: true
- Status: Extremityfist
Icon: EFST_EXTREMITYFIST
DurationLookup: MO_EXTREMITYFIST
CalcFlags:
Regen: true
@@ -2928,23 +2938,12 @@ Body:
Icon: EFST_INVINCIBLE
DurationLookup: NPC_INVINCIBLE
CalcFlags:
Aspd: true
Speed: true
Flags:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
EndOnStart:
Invincibleoff: true
- Status: Invincibleoff
DurationLookup: NPC_INVINCIBLEOFF
CalcFlags:
Speed: true
Flags:
NoDispell: true
NoBanishingBuster: true
NoClearance: true
EndOnStart:
Invincible: true
- Status: Manu_Atk
Icon: EFST_MANU_ATK
Flags:
@@ -6119,14 +6118,6 @@ Body:
NoBanishingBuster: true
NoDispell: true
RemoveOnHermode: true
- Status: Extremityfist2
Icon: EFST_EXTREMITYFIST
DurationLookup: MO_EXTREMITYFIST
Flags:
NoRemoveOnDead: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
- Status: Mtf_Aspd2
Icon: EFST_MTF_ASPD2
CalcFlags:
@@ -8935,3 +8926,21 @@ Body:
NoClearance: true
EndOnStart:
Decreaseagi: true
- Status: Protection
Icon: EFST_RAY_OF_PROTECTION
Flags:
NoClearbuff: true
NoDispell: true
NoBanishingBuster: true
NoClearance: true
EndOnStart:
Stun: true
Sleep: true
Curse: true
Stone: true
Poison: true
Blind: true
Silence: true
Bleeding: true
Confusion: true
Freeze: true

View File

@@ -63,11 +63,12 @@ The eA Job System:
EAJL_2 0x300
- The third category is type. Classes can either be normal, rebirth/advanced,
adopted, or third class.
adopted, third class or fourth class.
EAJL_UPPER 0x1000
EAJL_BABY 0x2000
EAJL_THIRD 0x4000
EAJL_FOURTH 0x8000
So using these three categories, any job class can be constructed from the
others. Let's take a swordman, for example.
@@ -143,6 +144,11 @@ EAJL_THIRD:
if(@eac&EAJL_THIRD)
mes "Wow, you've really grown!";
EAJL_FOURTH:
Checks if a class is a fourth job.
if(@eac&EAJL_FOURTH)
mes "Wow, you've really grown!";
EAJ_UPPERMASK:
The upper mask can be used to "strip" the upper/baby characteristics of a
class, used when you want to know if someone is a certain class regardless
@@ -169,13 +175,19 @@ EAJ_BASEMASK:
check will always fail for the same reasons previously explained.
EAJ_THIRDMASK:
This mask strips 3rd class attributes. It will give the "normal" class of
This mask strips 3rd class attributes. It will give the "normal" class of
a third job, regardless of rebirth/adopted status. When used on non-third
class characters, it will return the second job, or, if that also doesn't
exist, the first.
if ((@eac&EAJ_THIRDMASK) == EAJ_WARLOCK_T)
mes "You've gone through rebirth, I see.";
EAJ_FOURTHMASK:
This mask strips 4th class attributes. Although currently there are none,
it is suggested to use this for checking.
if ((@eac&EAJ_FOURTHMASK) == EAJ_DRAGON_KNIGHT)
mes "Oh you are a Dragon Knight, I see.";
The script commands eaclass, roclass:
-------------------------------------------------------------------------------

View File

@@ -31,7 +31,7 @@ This list contains all available constants referenced in the 'bonus' commands.
RC2_Bio5_Swordman_Thief, RC2_Bio5_Acolyte_Merchant, RC2_Bio5_Mage_Archer, RC2_Bio5_MVP,
RC2_Clocktower, RC2_Thanatos, RC2_Faceworm, RC2_Hearthunter, RC2_Rockridge, RC2_Werner_Lab,
RC2_Temple_Demon, RC2_Illusion_Vampire, RC2_Malangdo, RC2_EP172ALPHA, RC2_EP172BETA, RC2_EP172BATH,
RC2_Illusion_Turtle, RC2_Rachel_Sanctuary, RC2_Illusion_Luanda
RC2_Illusion_Turtle, RC2_Rachel_Sanctuary, RC2_Illusion_Luanda, RC2_Illusion_Frozen, RC2_Illusion_Moonlight
* Class (c)
Class_Normal, Class_Boss, Class_Guardian, Class_All

View File

@@ -204,6 +204,18 @@ AttackMotion: Attack animation motion. Low value means monster's attack will be
---------------------------------------
ClientAttackMotion: The time from the start of a normal attack until the damage frame shows on client. At the same time you also get stopped on the client.
This value is only needed if you use the "synchronize_damage" feature (battle/battle.conf).
If you created a custom sprite, you want to set this value to the timing of the damage frame in your *.act file.
In Act Editor you can set the damage frame by setting the frame sound to "atk". If you don't define a damage frame, it will default to the second to last
frame. Also keep in mind that the Act Editor displays slightly inaccurate speed. Every 25ms in Act Editor is 24ms in reality.
Example: Drops has a animation speed of 24ms per frame and the 13th frame (frame #12) is the damage frame. This means the damage shows after 12 frames.
That's why Drops has a ClientAttackMotion of 24*12 = 288.
---------------------------------------
DamageMotion: Damage animation motion, same as aMotion but used to display the "I am hit" animation. Coincidentally, this same value is used to determine how long it is before the monster/player can move again. Endure is dMotion = 0, obviously.
---------------------------------------

View File

@@ -10,8 +10,8 @@
When a monster uses a level 10 skill on Aegis, it will be much stronger than the
normal player version. On rAthena we reflect this by giving the monster a skill
level above the maximum player level.
The following lists explains the skill specialities and the corresponding level
level above the maximum player skill level.
The following list explains the skill specialities and the corresponding level
which needs to be put for these skills in the mob_skill_db.
Note: The "SkillDatabase::parseNode" template has a linear determination feature

View File

@@ -3,7 +3,7 @@
//===== By: ==================================================
//= rAthena Dev Team
//===== Last Updated: ========================================
//= 20130613
//= 20240414
//===== Description: =========================================
//= List of available permissions and their functions.
//============================================================
@@ -11,6 +11,12 @@
This file describes the functions of player group permissions,
configured in '/conf/groups.conf' under the "permissions" bracket.
The permission name used in '/conf/groups.conf' goes after the asterisk "*",
while the constant name used in scripts and src goes between the parentheses "()"
in the following format:
*permission_name (PC_PERM_CONSTANT_NAME)
To search for a permission, write "*" before its name.
The format of this file is as follows:
1. Basic Permissions
@@ -22,20 +28,20 @@ The format of this file is as follows:
========================
---------------------------------------
*can_trade
*can_trade (PC_PERM_TRADE)
Allows player to distribute items, such as through trades, dropping,
vending, storage, mail, etc.
---------------------------------------
*can_party
*can_party (PC_PERM_PARTY)
Allows player to create and join parties.
---------------------------------------
*attendance
*attendance (PC_PERM_ATTENDANCE)
Allows player to use the daily attendance system.
@@ -46,78 +52,78 @@ Allows player to use the daily attendance system.
===========================
---------------------------------------
*all_skill
*all_skill (PC_PERM_ALL_SKILL)
Grants player all available skills in the player's skill tree.
---------------------------------------
*all_equipment
*all_equipment (PC_PERM_USE_ALL_EQUIPMENT)
Allows player to equip any item, regardless of requirements (class, level,
etc.). Note that this can cause client errors if a sprite does not exist.
---------------------------------------
*skill_unconditional
*skill_unconditional (PC_PERM_SKILL_UNCONDITIONAL)
Allows player to use any skill, regardless of required conditions (SP,
items, etc.).
---------------------------------------
*join_chat
*join_chat (PC_PERM_JOIN_ALL_CHAT)
Allows player to join password-protected chatrooms.
---------------------------------------
*kick_chat
*kick_chat (PC_PERM_NO_CHAT_KICK)
Prevents player from being kicked from a chatroom.
---------------------------------------
*view_hpmeter
*view_hpmeter (PC_PERM_VIEW_HPMETER)
Allows player to see the HP bar of every player.
---------------------------------------
*view_equipment
*view_equipment (PC_PERM_VIEW_EQUIPMENT)
Allows player to view the equipment of every player, regardless of that
player's setting.
---------------------------------------
*hack_info
*hack_info (PC_PERM_RECEIVE_HACK_INFO)
Allows player to receive all information about players who try to hack,
spoof a name, etc.
---------------------------------------
*disable_pvm
*disable_pvm (PC_PERM_DISABLE_PVM)
Prevents player from attacking monsters.
---------------------------------------
*disable_pvp
*disable_pvp (PC_PERM_DISABLE_PVP)
Prevents player from attacking other players.
---------------------------------------
*can_trade_bounded
*can_trade_bounded (PC_PERM_TRADE_BOUNDED)
Allows player to do normal item actions with bounded items (drop, sell,
trade, etc.).
---------------------------------------
*item_unconditional
*item_unconditional (PC_PERM_ITEM_UNCONDITIONAL)
Allows player to consume any consumable item regardless the requirements
(bypass noitemconsumption mapflag, item's class, gender, status changes,
@@ -125,7 +131,7 @@ item delay, etc).
---------------------------------------
*trade_unconditional
*trade_unconditional (PC_PERM_TRADE_UNCONDITIONAL)
Allows player to ignore the trade conditions of items (drop, trade, sell, cart, storage/gstorage, mail and auction).
@@ -136,32 +142,32 @@ Allows player to ignore the trade conditions of items (drop, trade, sell, cart,
======================
---------------------------------------
*all_commands
*all_commands (PC_PERM_USE_ALL_COMMANDS)
Allows usage of all atcommands and charcommands.
---------------------------------------
*disable_commands_when_dead
*disable_commands_when_dead (PC_PERM_DISABLE_CMD_DEAD)
Disables usage of atcommands when player is dead.
---------------------------------------
*hide_session
*hide_session (PC_PERM_HIDE_SESSION)
Hides player session from being displayed by atcommands (@who, @whomap,
etc.).
---------------------------------------
*who_display_aid
*who_display_aid (PC_PERM_WHO_DISPLAY_AID)
Displays all GMs and character/account IDs in the @who command.
---------------------------------------
*any_warp
*any_warp (PC_PERM_WARP_ANYWHERE)
Allows player to bypass 'nowarp', 'nowarpto', 'noteleport', and 'nomemo'
mapflags in commands which modify a character's map or coordinates (@memo,
@@ -169,64 +175,64 @@ mapflags in commands which modify a character's map or coordinates (@memo,
---------------------------------------
*receive_requests
*receive_requests (PC_PERM_RECEIVE_REQUESTS)
Allows player to receive requests through the @requests command.
---------------------------------------
*show_bossmobs
*show_bossmobs (PC_PERM_SHOW_BOSS)
Displays boss mobs in the @showmobs command.
---------------------------------------
*channel_admin
*channel_admin (PC_PERM_CHANNEL_ADMIN)
Allows player to modify #channel settings regardless of ownership and to
join password-protected channels without a password.
---------------------------------------
*use_check
*use_check (PC_PERM_USE_CHECK)
Allows player to use the client command /check (displays character status).
---------------------------------------
*use_changemaptype
*use_changemaptype (PC_PERM_USE_CHANGEMAPTYPE)
Allows player to use the client command /changemaptype.
---------------------------------------
*command_enable
*command_enable (PC_PERM_ENABLE_COMMAND)
Enable to use atcommand while talking with NPC.
---------------------------------------
*bypass_stat_onclone
*bypass_stat_onclone (PC_PERM_BYPASS_STAT_ONCLONE)
Bypass max parameter limit while using @clonestat
---------------------------------------
*bypass_max_stat
*bypass_max_stat (PC_PERM_BYPASS_MAX_STAT)
Allow to bypass the maximum stat parameter (at conf/player.conf) to
maximum value 32,767.
---------------------------------------
*macro_detect
*macro_detect (PC_PERM_MACRO_DETECT)
Allows player to use the client command /macro_detector.
---------------------------------------
*macro_register
*macro_register (PC_PERM_MACRO_REGISTER)
Allows player to use the client commands /maco_register (used to add new captcha) and /macro_preview (used to preview captcha by ID).
Allows player to use the client commands /macro_register (used to add new captcha) and /macro_preview (used to preview captcha by ID).
---------------------------------------

View File

@@ -1,4 +1,4 @@
//===== rAthena Documentation================================
//===== rAthena Documentation================================
//= rAthena Script Commands
//===== By:==================================================
//= rAthena Dev Team
@@ -135,11 +135,26 @@ and 'doc/mapflags.txt'.
<map name>{,<x>{,<y>{,<xs>{,<ys>}}}}%TAB%monster%TAB%<monster name>{,<monster level>}%TAB%<mob id>,<amount>{,<delay1>{,<delay2>{,<event>{,<mob size>{,<mob ai>}}}}}
Map name is the name of the map the monsters will spawn on. x,y are the
coordinates where the mob should spawn. If xs and ys are non-zero, they
specify the 'radius' of a spawn-rectangle area centered at x,y.
Putting zeros instead of these coordinates will spawn the monsters randomly.
coordinates where the mob should spawn. Putting zeros instead of these
coordinates will spawn the monsters randomly.
If the coordinates are non-zero and xs and ys are above 1, each monster will
spawn in a radius around x,y. At server start, each monster will get assigned
its own center cell adding or substracting up to (xs-1),(ys-1) from the given
x,y coordinates. Each time a monster respawns, it will spawn in a radius around
its personal center cell by adding or substracting up to (xs-1),(ys-1) again.
This results in a total possible spawn area over all monsters of the spawn line
of (xs,ys)*4-3, but with a strong bias towards the center of that area:
2,2 - 5x5
3,3 - 9x9
4,4 - 13x13
5,5 - 17x17
etc.
Note this is only the initial spawn zone, as mobs random-walk, they are free
to move away from their specified spawn region.
You can disable the picking of a random center cell for each monster in the
battle config. (See /conf/battle/monster.conf::randomize_center_cell.)
Monster name is the name the monsters will have on screen, and has no relation
whatsoever to their names anywhere else. It's the mob id that counts, which
@@ -188,6 +203,8 @@ Natural enemies for AI monsters are normal monsters.
Alternately, a monster spawned using 'boss_monster' instead of 'monster' is able
to be detected on the map with the SC_BOSSMAPINFO status (used by Convex Mirror).
A boss monster spawn with fixed coordinates will always spawn at the given
coordinates, even if they are blocked (e.g. by Icewall).
** NPC names
@@ -5677,22 +5694,35 @@ Example:
---------------------------------------
*searchstores <uses>,<effect>;
*searchstores <uses>,<effect>{,"<map name>"};
Invokes the store search window, which allows to search for both vending
and buying stores. Parameter uses indicates, how many searches can be
started, before the window has to be reopened. Effect value affects,
what happens, when a result item is double-clicked and can be one of the
following:
and buying stores.
0 = Shows the store's position on the mini-map and highlights the
shop sign with yellow color, when the store is on same map
as the invoking player.
1 = Directly opens the shop, regardless of distance.
Parameter <uses> indicates how many searches can be started
before the window has to be reopened.
Example:
// Item Universal_Catalog_Gold (10 uses, effect: open shop)
searchstores 10,1;
Parameter <effect> affects what happens when a result item is double-clicked
and can be one of the following:
SEARCHSTORE_EFFECT_NORMAL : Shows the store's position on the mini-map and highlights the
shop sign with yellow color, when the store is on same map
as the invoking player.
SEARCHSTORE_EFFECT_REMOTE : Directly opens the shop, regardless of distance.
Optional parameter <map name> indicates the name of map where the stores will be searched.
If not set, the search will be on the map the invoking character is currently on.
Special values for <map name> are:
"this" : Will search for stores on the map where the invoking character is currently on. (default)
"all" : Will search for stores on all maps.
Examples:
// Item Vending_Search_Scroll (10 uses, effect: show mark on minimap, current map)
searchstores 10, SEARCHSTORE_EFFECT_NORMAL;
// Search stores (1 use, effect: open shop, all maps on the server)
searchstores 1, SEARCHSTORE_EFFECT_REMOTE, "all";
---------------------------------------
@@ -6591,7 +6621,8 @@ Available <type>:
PCBLOCK_COMMANDS Prevent the player from using atcommands/charcommands.
PCBLOCK_NPCCLICK Prevent the player from clicking/touching any NPC/shop/warp.
PCBLOCK_EMOTION Prevent the player from using emotions.
PCBLOCK_NPC Simulate NPC interaction. Useful for NPC with no mes window. Sum of PCBLOCK_MOVE|PCBLOCK_SKILL|PCBLOCK_USEITEM|PCBLOCK_COMMANDS|PCBLOCK_NPCCLICK.
PCBLOCK_EQUIP Prevent the player from replacing equipment.
PCBLOCK_NPC Simulate NPC interaction. Useful for NPC with no mes window. Sum of PCBLOCK_MOVE|PCBLOCK_SKILL|PCBLOCK_USEITEM|PCBLOCK_COMMANDS|PCBLOCK_NPCCLICK|PCBLOCK_EQUIP.
PCBLOCK_ALL Sum of all the flags.
Examples:
@@ -6620,8 +6651,8 @@ Examples:
---------------------------------------
macro_detector({<account ID>});
macro_detector({"<character name>"});
*macro_detector({<account ID>});
*macro_detector({"<character name>"});
This command will display the captcha UI challenge onto the invoking character or the given <account ID>/<character name>.
@@ -6642,6 +6673,46 @@ Example:
---------------------------------------
*permission_check(<permission>{,<char_id>});
This command will return true if the attached character has the specified permission, false otherwise.
If <char_id> is given, it will check the permission for that character instead.
A full list of the player permission constants (with the 'PC_PERM' prefix) along with the
full permissions documentation can be found in 'doc/permissions.txt'.
Example:
if (permission_check(PC_PERM_TRADE)) {
mes "You have permission to trade!";
}
else {
mes "You do not have permission to trade!";
}
end;
---------------------------------------
*permission_add(<permission>{,<char_id>});
*permission_remove(<permission>{,<char_id>});
These commands will temporarily add or remove the specified permission to the attached character,
or the given <char_id> until the player logs out.
A full list of the player permission constants (with the 'PC_PERM' prefix) along with the
full permissions documentation can be found in 'doc/permissions.txt'.
Examples:
// Adds the 'can_trade' permission to the attached character,
// allowing them to trade, drop, sell, store and mail items.
permission_add(PC_PERM_TRADE);
// Removes the 'can_party' permission from the attached character,
// preventing them from joining or creating parties.
permission_remove(PC_PERM_PARTY);
---------------------------------------
==================================
|5.- Mob / NPC -related commands.|
==================================
@@ -7944,17 +8015,15 @@ Return values:
//
---------------------------------------
*npcspeed <speed value>;
*npcwalkto <x>,<y>;
*npcstop;
*npcspeed( <speed value> {,"<npc name>"} );
*npcwalkto( <x>,<y> {,"<npc name>"} } );
*npcstop( {"<npc name>", {"<flag>"}});
These commands will make the NPC object in question move around the map. As they
currently are, they are a bit buggy and are not useful for much more than making
an NPC move randomly around the map.
These commands will make the NPC object in question move around the map.
'npcspeed' will set the NPCs walking speed to a specified value. As in the
@speed GM command, 200 is the slowest possible speed while 0 is the fastest
possible (instant motion). 100 is the default character walking speed.
'npcspeed' will permanently set the NPCs walking speed to a specified value. As in the
@speed GM command, MAX_WALK_SPEED (1000) is the slowest possible speed while MIN_WALK_SPEED (20) is the fastest
possible (instant motion). DEFAULT_NPC_WALK_SPEED (200) is the default NPC walking speed.
'npcwalkto' will start the NPC sprite moving towards the specified coordinates
on the same map it is currently on. The script proceeds immediately after the
@@ -7962,10 +8031,17 @@ NPC begins moving.
'npcstop' will stop the motion.
The <flag> value in npcstop affects how the unit is stopped. The following flags are bitwise values (can be combined using the pipe operator):
USW_NONE = Unit will keep walking to their original destination.
USW_FIXPOS = Issue a fixpos packet afterwards.
USW_MOVE_ONCE = Force the unit to move one cell if it hasn't yet.
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.
Default: USW_FIXPOS | USW_MOVE_FULL_CELL | USW_FORCE_STOP
While in transit, the NPC will be clickable, but invoking it will cause it to
stop moving, which will make its coordinates different from what the client
computed based on the speed and motion coordinates. The effect is rather
unnerving.
computed based on the speed and motion coordinates.
Only a few NPC sprites have walking animations, and those that do, do not get
the animation invoked when moving the NPC, due to the problem in the NPC walking
@@ -9780,6 +9856,7 @@ For details on the other parameters, see 'announce'.
This function checks if a party meets certain requirements, returning 1 if all
conditions are met and 0 otherwise. It will only check online characters.
The command returns 0 is the party ID does not exist.
amount - number of online party members (default is 1).
min - minimum level of all characters in the party (default is 1).

View File

@@ -58,6 +58,7 @@ IgnoreFlee - Skill ignores target's flee (Magic type always ignores)
IgnoreDefCard - Skill ignores target's defense cards.
IgnoreLongCard - Skill ignores caster's long range damage cards.
Critical - Skill can critical.
SimpleDefense - (Renewal-only) Physical damage is flatly reduced by DEF+DEF2. RES is ignored.
---------------------------------------

View File

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

View File

@@ -39,6 +39,7 @@
# WalkSpeed Walk speed. (Default: DEFAULT_WALK_SPEED)
# AttackDelay Attack speed. (Default: 0)
# AttackMotion Attack animation speed. (Default: 0)
# ClientAttackMotion Client attack speed. (Default: AttackMotion)
# DamageMotion Damage animation speed. (Default: 0)
# DamageTaken Rate at which the monster will receive incoming damage. (Default: 100)
# Ai Aegis monster type AI behavior. (Default: 06)

View File

@@ -60,6 +60,9 @@ CREATE TABLE `mob_db` (
`racegroup_ep172alpha` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172beta` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172bath` tinyint(1) unsigned DEFAULT NULL,
`racegroup_illusion_turtle` tinyint(1) unsigned DEFAULT NULL,
`racegroup_rachel_sanctuary` tinyint(1) unsigned DEFAULT NULL,
`racegroup_illusion_luanda` tinyint(1) unsigned DEFAULT NULL,
`element` varchar(24) DEFAULT NULL,
`element_level` tinyint(4) unsigned DEFAULT NULL,
`walk_speed` smallint(6) unsigned DEFAULT NULL,

View File

@@ -60,6 +60,9 @@ CREATE TABLE `mob_db2` (
`racegroup_ep172alpha` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172beta` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172bath` tinyint(1) unsigned DEFAULT NULL,
`racegroup_illusion_turtle` tinyint(1) unsigned DEFAULT NULL,
`racegroup_rachel_sanctuary` tinyint(1) unsigned DEFAULT NULL,
`racegroup_illusion_luanda` tinyint(1) unsigned DEFAULT NULL,
`element` varchar(24) DEFAULT NULL,
`element_level` tinyint(4) unsigned DEFAULT NULL,
`walk_speed` smallint(6) unsigned DEFAULT NULL,

View File

@@ -62,6 +62,9 @@ CREATE TABLE `mob_db2_re` (
`racegroup_ep172alpha` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172beta` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172bath` tinyint(1) unsigned DEFAULT NULL,
`racegroup_illusion_turtle` tinyint(1) unsigned DEFAULT NULL,
`racegroup_rachel_sanctuary` tinyint(1) unsigned DEFAULT NULL,
`racegroup_illusion_luanda` tinyint(1) unsigned DEFAULT NULL,
`element` varchar(24) DEFAULT NULL,
`element_level` tinyint(4) unsigned DEFAULT NULL,
`walk_speed` smallint(6) unsigned DEFAULT NULL,

View File

@@ -62,6 +62,9 @@ CREATE TABLE `mob_db_re` (
`racegroup_ep172alpha` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172beta` tinyint(1) unsigned DEFAULT NULL,
`racegroup_ep172bath` tinyint(1) unsigned DEFAULT NULL,
`racegroup_illusion_turtle` tinyint(1) unsigned DEFAULT NULL,
`racegroup_rachel_sanctuary` tinyint(1) unsigned DEFAULT NULL,
`racegroup_illusion_luanda` tinyint(1) unsigned DEFAULT NULL,
`element` varchar(24) DEFAULT NULL,
`element_level` tinyint(4) unsigned DEFAULT NULL,
`walk_speed` smallint(6) unsigned DEFAULT NULL,

View File

@@ -184,7 +184,28 @@ function Job_Options {
Job_Options(.@job_opt,roclass(.@eac|EAJL_THIRD)); // Expanded SN is "third" cls
}
}
// babies don't get to become 4th jobs
if (.FourthExpanded && .@eac == EAJ_REBELLION) {
Require_Level(.Req_Fourth[0], .Req_Fourth[1]);
Job_Options(.@job_opt, roclass(EAJ_NIGHT_WATCH));
}
if (.FourthExpanded && .@eac == EAJ_KAGEROUOBORO) {
Require_Level(.Req_Fourth[0], .Req_Fourth[1]);
Job_Options(.@job_opt, roclass(EAJ_SHINKIRO_SHIRANUI));
}
if (.FourthExpanded && .@eac == EAJ_SUPER_NOVICE_E) {
Require_Level(.Req_Fourth[0], .Req_Fourth[1]);
Job_Options(.@job_opt, roclass(EAJ_HYPER_NOVICE));
}
if (.FourthExpanded && .@eac == EAJ_SUMMONER) {
Require_Level(.Req_SHandler[0], .Req_SHandler[1]);
Job_Options(.@job_opt, roclass(EAJ_SPIRIT_HANDLER));
}
if (.SecondExpanded &&
((.@eac&(~EAJL_BABY)) == EAJ_NINJA || // is (Baby) Ninja
(.@eac&(~EAJL_BABY)) == EAJ_GUNSLINGER)) { // is (Baby) Gunslinger
@@ -483,6 +504,7 @@ OnInit:
// Settings
.FourthClass = true; // Enable fourth classes?
.FourthExpanded = true; // Enable new expanded fourth classes: Ex. Hyper Novice, Rebellion, Shinkiro/Shiranui?
.ThirdClass = true; // Enable third classes?
.RebirthClass = true; // Enable rebirth classes?
.SecondExpanded = true; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion?
@@ -504,6 +526,7 @@ OnInit:
setarray .Req_Fourth[0],200,70; // Minimum base level, job level to change to fourth class
setarray .Req_Exp_NJ_GS[0],99,70; // Minimum base level, job level to turn into Expanded Ninja and Gunslinger
setarray .Req_Exp_SNOVI[0],99,99; // Minimum base level, job level to turn into Expanded Super Novice
setarray .Req_SHandler[0],200,60; // Minimum base level, job level to turn into Spirit Handler
.SNovice = 45; // Minimum base level to turn into Super Novice
// Setting adjustments by PACKETVER

View File

@@ -59,7 +59,7 @@ aldeba_in,96,181,4 script Kafra Service 113,{
mes "seems that you don't";
mes "have the 20 zeny to pay";
mes "the Storage access fee...";
close;
close3;
}
mes "[Kafra Leilah]";
mes "Although this facility is";

View File

@@ -302,7 +302,7 @@ lhz_in02,91,155,5 script Assistant Beautician#li 862,{
mes "Oooh, there must";
mes "be some style that";
mes "you like, right? Hmmm...";
close;
close3;
}
}
mes "[Assistant Beautician]";
@@ -353,7 +353,7 @@ lhz_in02,91,155,5 script Assistant Beautician#li 862,{
mes "me! Thank you for using";
mes "my service and come again~";
emotion ET_CHUP;
close;
close3;
case 2:
mes "[Assistant Beautician]";
mes "Huh? Oh no, you're";

View File

@@ -263,6 +263,26 @@ function script F_CashSiegeTele {
return;
}
// Siege Teleport Scroll 2 (WoE 1.5)
//============================================================
// - Warp player to selected guild castle.
// - No arguments.
function script F_CashSiegeTele2 {
switch(select("Mardoll (arug_cas01):Cyr (arug_cas02):Horn (arug_cas03):Gefn (arug_cas04):Badanis (arug_cas05):Himinn (schg_cas01):Andlangr (schg_cas02):Vidblainn (schg_cas03):Hljod (schg_cas04):Schatirnil (schg_cas05)")) {
case 1: warp "aru_gld",159,272; end;
case 2: warp "aru_gld",86,50; end;
case 3: warp "aru_gld",63,157; end;
case 4: warp "aru_gld",307,354; end;
case 5: warp "aru_gld",298,110; end;
case 6: warp "sch_gld",300,100; end;
case 7: warp "sch_gld",284,249; end;
case 8: warp "sch_gld",102,196; end;
case 9: warp "sch_gld",140,83; end;
case 10: warp "sch_gld",70,320; end;
}
return;
}
// Curious Snowball
//============================================================
// - You can get an effect of Restore, Endure, or Wing of Butterfly.

View File

@@ -594,7 +594,7 @@ lhz_in02,100,143,3 script Hair Dresser#li 122,{
mes "you can be more daring than";
mes "that! Be fashionably adventurous, you fashionable adventurer~";
emotion ET_THROB;
close;
close3;
}
}
else {
@@ -917,7 +917,7 @@ lhz_in02,100,143,3 script Hair Dresser#li 122,{
mes "I'll make you the best looking";
mes "person in the entire world!";
emotion ET_BEST;
close;
close3;
case 2:
mes "[Prince Shammi]";
mes "Oh, did you forget which";
@@ -925,7 +925,7 @@ lhz_in02,100,143,3 script Hair Dresser#li 122,{
mes "number? By all means, please";
mes "check again! Find the one that";
mes "is perfect just for you, okay?";
close;
close3;
}
}
break;

View File

@@ -157,19 +157,19 @@ geffen,132,38,3 script Bard#2 51,{
next;
mes "[Errende]";
mes "I hope that you'll always remain honest and respectful towards other people, and that you continue to ignore greed for fortune or power.";
goto L_End;
close3;
} else if (gef_bard_q > 11 && gef_bard_q < 14) {
cutin "bard_eland02",2;
mes "[Errende]";
mes "It seems you haven't found it yet. Well, take your time, I can wait as long as you want. It doesn't really bore me, since waiting seems to be a part of my profession.";
goto L_End;
close3;
} else if (gef_bard_q == 11) {
cutin "bard_eland01",2;
mes "[Errende]";
mes "Mr. Skezti has a small book store on the book street at the right side of Mineta in Juno. If you show him the seal, he'll help you out.";
goto L_End;
close3;
} else if (gef_bard_q == 10) {
cutin "bard_eland01",2;
@@ -199,7 +199,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "show him the Seal of Friendship.";
mes "Good luck, now~";
set gef_bard_q,11;
goto L_End;
close3;
} else if (gef_bard_q == 20) {
cutin "bard_eland03",2;
@@ -249,7 +249,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "[Errende]";
mes "Waaah, wah~";
mes "You can't just ignore me like that! Where's your sense of merriment, your sense of romance?";
goto L_End;
close3;
}
} else if (gef_bard_q == 27) {
@@ -295,7 +295,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "I beseech you, if you meet him, please ask him of the 8th love and inform me of that lyric immediately~";
set gef_bard_q,22;
}
goto L_End;
close3;
} else if (gef_bard_q == 26) {
cutin "bard_eland01",2;
@@ -349,17 +349,17 @@ geffen,132,38,3 script Bard#2 51,{
mes "in advance~";
set gef_bard_q,24;
}
goto L_End;
close3;
} else if (.@inputstr$ == "Gunther") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
goto L_End;
close3;
} else if (.@inputstr$ == "Gunther Doubleharmony") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
goto L_End;
close3;
} else if (.@inputstr$ == "Errende") {
cutin "bard_eland04",2;
@@ -368,7 +368,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "If I did, why would";
mes "I not know what";
mes "this song is about?";
goto L_End;
close3;
} else {
mes "[Errende]";
@@ -381,7 +381,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "How could I forget";
mes "the 8th love?";
set gef_bard_q,26;
goto L_End;
close3;
}
} else if (gef_bard_q == 25) {
@@ -427,7 +427,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "heart wrenching song.";
mes "But at what cost to your soul?^000000";
}
goto L_End;
close3;
} else {
cutin "bard_eland01",2;
@@ -438,7 +438,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "Noboooody looooves meee";
mes "Friends foooooor never...";
mes "Ooooooooh wah!^000000";
goto L_End;
close3;
}
} else if (gef_bard_q == 24) {
@@ -464,7 +464,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "Once again,";
mes "thank you so much";
mes "for your help.";
goto L_End;
close3;
} else if (gef_bard_q == 22) {
mes "[Errende]";
@@ -480,7 +480,7 @@ geffen,132,38,3 script Bard#2 51,{
next;
mes "[Errende]";
mes "Please ask ^483D8BGunther^000000 about the ^483D8B8th love^000000 in ^483D8BAt One, I Fall in Love^000000. Thank you in advance.";
goto L_End;
close3;
} else if (gef_bard_q == 23) {
cutin "bard_eland02",2;
@@ -570,19 +570,19 @@ geffen,132,38,3 script Bard#2 51,{
mes "in advance~";
set gef_bard_q,24;
}
goto L_End;
close3;
} else if (.@inputstr$ == "Gunther") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
set gef_bard_q,26;
goto L_End;
close3;
} else if (.@inputstr$ == "Gunther Doubleharmony") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
set gef_bard_q,26;
goto L_End;
close3;
} else if (.@inputstr$ == "Errende") {
cutin "bard_eland04",2;
@@ -592,7 +592,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "I not know what this";
mes "song is about?";
set gef_bard_q,26;
goto L_End;
close3;
} else {
mes "[Errende]";
@@ -605,7 +605,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "How could I forget";
mes "the 8th love?";
set gef_bard_q,26;
goto L_End;
close3;
}
} else if (gef_bard_q == 21) {
@@ -655,7 +655,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "I beseech you, if you meet him, please ask him of the 8th love and inform me of that lyric immediately~";
set gef_bard_q,2;
}
goto L_End;
close3;
} else if (gef_bard_q == 6) {
cutin "bard_eland04",2;
@@ -699,23 +699,23 @@ geffen,132,38,3 script Bard#2 51,{
mes "I'll pay you back somehow! Thank you for your trouble in advance~";
set gef_bard_q,4;
}
goto L_End;
close3;
} else if (.@inputstr$ == "Gunther") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
goto L_End;
close3;
} else if (.@inputstr$ == "Gunther Doubleharmony") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
goto L_End;
close3;
} else if (.@inputstr$ == "Errende") {
cutin "bard_eland04",2;
mes "[Errende]";
mes "Surely you jest! If I did, why would I not know what this song is about?";
goto L_End;
close3;
} else {
mes "[Errende]";
@@ -727,7 +727,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "How could I forget";
mes "the 8th love?";
set gef_bard_q,6;
goto L_End;
close3;
}
} else if (gef_bard_q == 5) {
@@ -764,7 +764,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "heart wrenching song.";
mes "But at what cost to your soul?^000000";
}
goto L_End;
close3;
} else {
cutin "bard_eland01",2;
@@ -775,7 +775,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "Noboooody looooves meee";
mes "Friends foooooor never...";
mes "Ooooooooooh wah!^000000";
goto L_End;
close3;
}
} else if (gef_bard_q == 4) {
@@ -800,7 +800,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "Once again,";
mes "thank you so much";
mes "for your help.";
goto L_End;
close3;
} else if (gef_bard_q == 2) {
cutin "bard_eland04",2;
@@ -813,7 +813,7 @@ geffen,132,38,3 script Bard#2 51,{
next;
mes "[Errende]";
mes "Please ask ^483D8BGunther^000000 about the ^483D8B8th love^000000 in ^483D8BAt One, I Fall in Love^000000. Thank you in advance.";
goto L_End;
close3;
} else if (gef_bard_q == 3) {
cutin "bard_eland02",2;
@@ -898,27 +898,27 @@ geffen,132,38,3 script Bard#2 51,{
mes "I'll pay you back somehow! Thank you for your trouble in advance~";
set gef_bard_q,4;
}
goto L_End;
close3;
} else if (.@inputstr$ == "Gunther") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
set gef_bard_q,6;
goto L_End;
close3;
}
else if (.@inputstr$ == "Gunther Doubleharmony") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
set gef_bard_q,6;
goto L_End;
close3;
} else if (.@inputstr$ == "Errende") {
cutin "bard_eland04",2;
mes "[Errende]";
mes "Surely you jest! If I did, why would I not know what this song is about?";
set gef_bard_q,6;
goto L_End;
close3;
} else {
mes "[Errende]";
@@ -930,7 +930,7 @@ geffen,132,38,3 script Bard#2 51,{
mes "How could I forget";
mes "the 8th love?";
set gef_bard_q,6;
goto L_End;
close3;
}
} else if (gef_bard_q == 1) {
@@ -993,11 +993,7 @@ geffen,132,38,3 script Bard#2 51,{
}
}
L_End:
close2;
cutin "",255;
end;
close3;
// SubRoutine for 5 similiar dialogues of the quest
@@ -1114,7 +1110,7 @@ S_StorySong:
mes "[Errende]";
mes "Oh, how disappointing. But promise me that you will drop by later, so that we can share stories and merriment.";
}
goto L_End;
close3;
case 2:
.@num = getarg(0);
@@ -1149,7 +1145,7 @@ S_StorySong:
mes "My apologies,";
mes "But I cannot offer my services for free. Even a Bard needs zeny to live, wouldn't you agree?";
}
goto L_End;
close3;
case 2:
cutin "bard_eland03",2;
@@ -1218,7 +1214,7 @@ S_StorySong:
mes "may never know";
mes "with certainty.";
}
goto L_End;
close3;
} else if (.@random == 2) {
@@ -1321,7 +1317,7 @@ S_StorySong:
if(gef_bard_q==1) set gef_bard_q,7;
if(gef_bard_q==21) set gef_bard_q,27;
}
goto L_End;
close3;
}
mes "^483D8BA good Bard sings";
@@ -1345,7 +1341,7 @@ S_StorySong:
mes "[Errende]";
mes "H-how can you say such a thing, "+ @name$ +"? Have you ever been a Bard before? It's difficult to come up with fresh, original melodies!";
}
goto L_End;
close3;
case 3:
cutin "bard_eland01",2;
@@ -1355,7 +1351,7 @@ S_StorySong:
mes "enjoyed when you";
mes "are in the mood for it.";
mes "Please come again.";
goto L_End;
close3;
}
@@ -1364,7 +1360,7 @@ S_StorySong:
mes "[Errende]";
mes "Hmm~?";
mes "Well, alright. Though, listening to a good story or cheerful song can really do you some good. Alright then, see you later.";
goto L_End;
close3;
}
}

View File

@@ -61,7 +61,7 @@
mes "cooking when Novices";
mes "like yourself are running";
mes "around here like children.";
close;
close3;
}
cutin "orleans_1",0;
mes "[Charles Orleans]";

View File

@@ -3816,7 +3816,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 920,{
mes "wouldn't come here to pray...";
mes "Well, I hope you enjoy your";
mes "time here, adventurer.";
goto L_End;
close3;
}
mes "[Priestess Nemma]";
mes "Oh! I'm glad to see that";
@@ -3869,7 +3869,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 920,{
mes "all your journeys. May the";
mes "grace of the goddess always";
mes "support us in all that we do~";
goto L_End;
close3;
}
mes "[Priestess Nemma]";
mes "Great! How much would you";
@@ -3898,7 +3898,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 920,{
mes "protecting you, wherever you go~";
break;
}
goto L_End;
close3;
}
else {
cutin "ra_nemma03",2;
@@ -3939,7 +3939,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 920,{
mes "protecting you, wherever you go~";
break;
}
goto L_End;
close3;
case 2:
mes "[Priestess Nemma]";
mes "Oh! If you'd like some";
@@ -3968,7 +3968,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 920,{
mes "Oh, how sweet of you~";
break;
}
goto L_End;
close3;
}
}
else {
@@ -3976,7 +3976,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 920,{
cutin "ra_nemma01",2;
mes "[Priestess Nemma]";
mes "Welcome to our temple!";
goto L_End;
close3;
}
if (ra_tem_q < 1) {
mes "[Priestess Nemma]";
@@ -4009,7 +4009,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 920,{
mes "to go inside. ^333333*Sob*^000000 P-Panno!";
mes "Panno, I neeeed heeeeelp~!";
set ra_tem_q,1;
goto L_End;
close3;
}
else if ((ra_tem_q >= 1) && (ra_tem_q < 10)) {
mes "[Priestess Nemma]";
@@ -4024,7 +4024,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 920,{
mes "Panno would know";
mes "what to do... I think.";
mes "Ooh, Panno, help me!";
goto L_End;
close3;
}
else if (ra_tem_q == 10) {
cutin "ra_nemma04",2;
@@ -4050,7 +4050,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 920,{
mes "I'm outside. What if";
mes "the gate locks up again?";
mes "Oooh, what should I do?!";
goto L_End;
close3;
}
else if (ra_tem_q == 11) {
emotion ET_DELIGHT;
@@ -4062,7 +4062,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 920,{
mes "longer asking for donations,";
mes "but you can still redeem your";
mes "Lottery Tickets inside, okay?";
goto L_End;
close3;
}
else if (ra_tem_q == 12) {
mes "[Priestess Nemma]";
@@ -4089,7 +4089,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 920,{
mes "like, ^FF000020 of them^000000! Thank";
mes "you thank you thank you!";
set ra_tem_q,13;
goto L_End;
close3;
}
else if (ra_tem_q == 13) {
mes "[Priestess Nemma]";
@@ -4124,7 +4124,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 920,{
mes "to play! Hm, maybe";
mes "our pope would like";
mes "to see these too?";
goto L_End;
close3;
}
cutin "ra_nemma02",2;
mes "[Priestess Nemma]";
@@ -4143,20 +4143,16 @@ ra_temple,116,174,3 script Nemma#ra_temple 920,{
mes "have much to pay you";
mes "back with, anyway~";
}
goto L_End;
close3;
}
else {
cutin "ra_nemma01",2;
mes "[Priestess Nemma]";
mes "Welcome to our temple!";
}
goto L_End;
close3;
}
L_End:
close2;
cutin "",255;
end;
close3;
S_Donate:
.@num = getarg(0);
@@ -6329,7 +6325,7 @@ ra_temin,170,46,3 script Panno#rachel 920,{
mes "everything I know.";
mes "Remember to keep";
mes "quiet about what I said.";
goto L_End;
close3;
}
}
else if (ra_tem_q < 2) {
@@ -6358,7 +6354,7 @@ ra_temin,170,46,3 script Panno#rachel 920,{
mes "time, so please visit";
mes "me at your leisure.";
mes "Go with Freya.";
goto L_End;
close3;
case 2:
cutin "ra_fano01",2;
@@ -6397,14 +6393,14 @@ ra_temin,170,46,3 script Panno#rachel 920,{
mes "side of the hallway. However,";
mes "you can only enter if you've";
mes "been permitted beforehand.";
goto L_End;
close3;
case 3:
mes "[Priestess Panno]";
mes "......................";
mes "No chit-chat";
mes "inside the temple.";
goto L_End;
close3;
}
}
else if (ra_tem_q == 10) {
@@ -6439,7 +6435,7 @@ ra_temin,170,46,3 script Panno#rachel 920,{
mes "time, so please visit";
mes "me at your leisure.";
mes "Go with Freya.";
goto L_End;
close3;
case 2:
cutin "ra_fano01",2;
@@ -6478,7 +6474,7 @@ ra_temin,170,46,3 script Panno#rachel 920,{
mes "side of the hallway. However,";
mes "you can only enter if you've";
mes "been permitted beforehand.";
goto L_End;
close3;
case 3:
cutin "ra_fano02",2;
@@ -6525,7 +6521,7 @@ ra_temin,170,46,3 script Panno#rachel 920,{
mes "[Priestess Panno]";
mes ".........";
set ra_tem_q,11;
goto L_End;
close3;
}
}
else if (ra_tem_q == 11) {
@@ -6660,7 +6656,7 @@ ra_temin,170,46,3 script Panno#rachel 920,{
mes "Excuse me now, I need";
mes "to get back to work.";
set ra_tem_q,12;
goto L_End;
close3;
}
cutin "ra_fano02",2;
mes "[Priestess Panno]";
@@ -6668,7 +6664,7 @@ ra_temin,170,46,3 script Panno#rachel 920,{
mes "Behave yourself, and";
mes "respect those who have";
mes "come here just to worship.";
goto L_End;
close3;
L_Lottery:
if(checkweight(607,1) == 0){
@@ -6680,7 +6676,7 @@ L_Lottery:
mes "something large, unwieldy";
mes "and heavy? Put your junk";
mes "away in Storage first.";
goto L_End;
close3;
}
mes "[Priestess Panno]";
mes "Here we go";
@@ -6716,7 +6712,7 @@ L_Lottery:
else if (.@bonus_donate > 5 && .@bonus_donate < 11) getitem 518,1; //Honey 5%
else if (.@bonus_donate > 0 && .@bonus_donate < 6) getitem 526,1; //Royal Jelly 5%
else getitem 547,1; //Condensed White Potion 39%
goto L_End;
close3;
}
mes "[Priestess Panno]";
mes "You...";
@@ -6736,7 +6732,7 @@ L_Lottery:
cutin "ra_fano03",2;
mes "[Priestess Panno]";
mes "May Freya be with you.";
goto L_End;
close3;
L_End:
close2;

View File

@@ -284,7 +284,7 @@ prontera,124,297,3 script Tialfi 706,{
next;
mes "[Tialfi]";
mes "I think we'd better wait and see what's happening. Someone will deliver the news to us. Though, I am unsure of whether or not it will be good news or bad...";
close;
close3;
}
else if (BaseLevel < 70) {
cutin "god_tialpi02",2;

View File

@@ -3093,13 +3093,11 @@ OnTouch_:
end;
}
/* Currently broken.
prt_maze02,25,161,0 script #music -1,7,7,{
OnTouch_:
soundeffect "effect\\¼®¾çÀÇ ¾î½Ø½Å.wav",1;
soundeffect "effect\\¼®¾çÀÇ ¾î½Ø½Å.wav",1;
end;
}
*/
prt_maze02,132,132,0 script #skill -1,{
OnEnable:

View File

@@ -84,8 +84,8 @@ dicastes01,234,158,0 script Training Galten#a 450,{
mes "if I keep up with my training every day.";
close;
}
mes "<EFBFBD><EFBFBD>  <><EFBFBD> ▲";
mes "<EFBFBD> ▲";
mes "▲◆↑ ▲ ▲◆↑ ▲";
mes " ▲";
next;
mes "Don't know what it means.";
close;
@@ -130,7 +130,7 @@ dicastes01,248,129,0 script Training Galten#d 450,{
close;
}
mes "▲◆↑ ▲ ▲◆↑";
mes "▲◆↑ ▲<EFBFBD> <20><EFBFBD> ▲";
mes "▲◆↑ ▲ ▲◆↑ ▲";
next;
mes "Don't know what it means.";
close;

View File

@@ -323,7 +323,7 @@ lasa_fild01,60,322,3 script Vigilante Aglio#doram02 4_DR_AGLIO,{
cutin "tutorial02.BMP",4;
mes "^4d4dff!- Notice -!^000000";
mes "^4d4dffCheck out the quest details by pressing the shortcut key [Alt+U],^000000 or through the Quest icon found in the menu tray.^000000";
close;
close3;
}
mes "[Vigilante Aglio]";
mes "Whoa, you're good!";

View File

@@ -1,45 +0,0 @@
//===== rAthena Script =======================================
//= Lasagna Warps
//===== Changelogs: ==========================================
//= 1.0 First Version. [Capuche]
//============================================================
lasa_fild02,348,244,0 warp lasa_fild02#lasa_dun01 1,1,lasa_dun01,24,143
lasa_dun01,18,143,0 warp lasa_dun01#lasa_fild02 1,1,lasa_fild02,344,243
lasa_dun_q,190,14,0 warp lasa_dun_q#lasa_dun01 1,1,lasa_dun01,152,98
lasa_dun01,157,98,0 warp lasa_dun01#lasa_dun02 1,1,lasa_dun02,22,171
lasa_dun02,18,171,0 warp lasa_dun02#lasa_dun01 1,1,lasa_dun01,153,98
lasa_dun02,146,58,0 warp lasa_dun02#lasa_dun03 1,1,lasa_dun03,190,18
lasa_dun03,190,15,0 warp lasa_dun03#lasa_dun02 1,1,lasa_dun02,146,54
lasa_fild01,134,381,0 warp lasa_fild01#lasagna_1 2,2,lasagna,153,58
lasagna,150,54,0 warp lasagna#lasa_fild01_1 2,2,lasa_fild01,131,378
lasa_fild01,341,375,0 warp lasa_fild01#lasagna_2 2,2,lasagna,327,56
lasagna,327,51,0 warp lasagna#lasa_fild01_2 2,2,lasa_fild01,344,371
lasagna,358,91,0 warp lasagna#lasa_fild02 2,2,lasa_fild02,20,98
lasa_fild02,16,98,0 warp lasa_fild02#lasagna 2,2,lasagna,355,92
lasa_in01,159,61,0 warp lasa_in01#lasagna 1,1,lasagna,68,202
// Boat
conch_in,60,61,0 warp2 warp_conch_in#out 1,1,lasagna,206,323
conch_in,51,60,0 warp2 warp_conch_in#A_B 1,1,conch_in,31,60
conch_in,34,60,0 warp2 warp_conch_in#B_A 1,1,conch_in,53,59
conch_in,63,53,0 warp2 warp_conch_in#C_D 1,1,conch_in,63,33
conch_in,63,35,0 warp2 warp_conch_in#D_C 1,1,conch_in,64,55
conch_in,64,66,0 warp2 warp_conch_in#E_F 1,1,conch_in,63,89
conch_in,63,87,0 warp2 warp_conch_in#F_E 1,1,conch_in,63,64
conch_in,101,53,0 warp2 warp_conch_in#G_H 1,1,conch_in,101,33
conch_in,101,35,0 warp2 warp_conch_in#H_G 1,1,conch_in,102,55
conch_in,101,66,0 warp2 warp_conch_in#I_J 1,1,conch_in,101,89
conch_in,102,87,0 warp2 warp_conch_in#J_I 1,1,conch_in,101,64
conch_in,137,53,0 warp2 warp_conch_in#K_L 1,1,conch_in,139,33
conch_in,139,35,0 warp2 warp_conch_in#L_K 1,1,conch_in,138,55
conch_in,137,66,0 warp2 warp_conch_in#M_N 1,1,conch_in,139,89
conch_in,140,87,0 warp2 warp_conch_in#N_M 1,1,conch_in,137,64
conch_in,142,60,0 warp2 warp_conch_in#O_P 1,1,conch_in,162,61
conch_in,159,61,0 warp2 warp_conch_in#P_O 1,1,conch_in,140,59

View File

@@ -438,7 +438,7 @@ function GuardianData;
if (select( "Fire","Cancel" ) == 2) {
mes "[ Hired Kafra Employee ]";
mes "I'll work hard for you... Thank you!";
close;
close3;
}
mes "[ Hired Kafra Employee ]";
mes "Oh, my goodness! This is nonsense!";

View File

@@ -727,11 +727,11 @@ OnTimer300:
}
1@mcd,141,214,5 script Charleston 2#1 4_F_CHARLESTON02,{
cutin "dalle01.bmp",2;
if (is_party_leader() == false) {
cutin "dalle01.bmp",2;
mes "[Charleston 1]";
mes "Please let me talk to your leader about the supplementation of the factory.";
close;
close3;
}
if ('ep15_1_mcd01 > 11)
end;

View File

@@ -263,7 +263,6 @@ OnTouch:
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!";
@@ -281,8 +280,14 @@ OnTalk:
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;
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,146,221,7 script Ridsh#171_os_2 4_F_LEEDSH,{

View File

@@ -836,7 +836,7 @@ job_ko,81,124,4 script Kuuga Gai#ko 730,{
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,
26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50;
for (set .@i,getarraysize(.@n)-1; .@i>0; set .@i,.@i-1) {
set .@rand, rand(.@i);
set .@rand, rand(0,.@i);
set .@tmp, .@n[.@i];
set .@n[.@i], .@n[.@rand];
set .@n[.@rand], .@tmp;

View File

@@ -5218,7 +5218,7 @@ new_1-3,99,169,3 script Friendly Poring#ac 4_PORING,{
next;
mes "[Poring]";
mes "It may fail, but keep trying to lure way those Little Porings!";
close;
close3;
}
} else if (isbegin_quest(2297) == 1) {
mes "[Poring]";

View File

@@ -167,8 +167,8 @@ S_Sphere_Exchange:
case 1:
mes "[Kenny]";
mes "All done.";
delitem .@slug_id, .@new_count * 10;
getitem .@new_slug_id, .@old_count;
delitem .@old_id, .@new_count * 10;
getitem .@new_id, .@new_count;
close;
case 2:
close;
@@ -214,8 +214,8 @@ S_Old_Sphere_Exchange:
case 1:
mes "[Kenny]";
mes "All done.";
delitem .@slug_id, .@old_count;
getitem .@new_slug_id, .@old_count;
delitem .@old_id, .@old_count;
getitem .@new_id, .@old_count;
close;
case 2:
close;
@@ -262,7 +262,7 @@ S_Slug_Exchange:
case 1:
mes "[Kenny]";
mes "All done.";
delitem .@slug_id, .@new_count * 500;
delitem .@slug_id, .@new_count * .@req_count;
getitem 25187, .@new_count;
close;
case 2:

View File

@@ -433,6 +433,7 @@ Body:
RequiredItems:
- Index: 0
Item: Staff_Of_Bordeaux
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 30
@@ -444,6 +445,7 @@ Body:
RequiredItems:
- Index: 0
Item: Moonlight_Sword
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 60
@@ -455,6 +457,7 @@ Body:
RequiredItems:
- Index: 0
Item: Long_Mace
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 10
@@ -466,6 +469,7 @@ Body:
RequiredItems:
- Index: 0
Item: Spectral_Spear
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 20
@@ -477,6 +481,7 @@ Body:
RequiredItems:
- Index: 0
Item: Nurse_Cap
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 10
@@ -488,6 +493,7 @@ Body:
RequiredItems:
- Index: 0
Item: Apple_Of_Archer
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 10
@@ -499,6 +505,7 @@ Body:
RequiredItems:
- Index: 0
Item: Puente_Robe
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 10
@@ -510,6 +517,7 @@ Body:
RequiredItems:
- Index: 0
Item: Muffler_
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 10
@@ -521,6 +529,7 @@ Body:
RequiredItems:
- Index: 0
Item: Shoes_
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 10
@@ -534,6 +543,7 @@ Body:
RequiredItems:
- Index: 0
Item: Huuma_Fluttering_Snow
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 100
@@ -545,6 +555,7 @@ Body:
RequiredItems:
- Index: 0
Item: Combo_Battle_Glove
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 100
@@ -556,6 +567,7 @@ Body:
RequiredItems:
- Index: 0
Item: Herald_Of_GOD_
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 100
@@ -567,6 +579,7 @@ Body:
RequiredItems:
- Index: 0
Item: Clack_Of_Servival
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 100
@@ -578,6 +591,7 @@ Body:
RequiredItems:
- Index: 0
Item: Cap_
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 50
@@ -591,6 +605,7 @@ Body:
RequiredItems:
- Index: 0
Item: Infiltrator_
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 80
@@ -602,6 +617,7 @@ Body:
RequiredItems:
- Index: 0
Item: Ghoul_Leg
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 10
@@ -613,6 +629,7 @@ Body:
RequiredItems:
- Index: 0
Item: Wizardy_Staff
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 40
@@ -624,6 +641,7 @@ Body:
RequiredItems:
- Index: 0
Item: Balistar_
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 50
@@ -635,6 +653,7 @@ Body:
RequiredItems:
- Index: 0
Item: Book_Of_The_Apocalypse
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 50
@@ -646,6 +665,7 @@ Body:
RequiredItems:
- Index: 0
Item: Cape_Of_Ancient_Lord_
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 30
@@ -681,6 +701,7 @@ Body:
RequiredItems:
- Index: 0
Item: Immaterial_Sword
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 100
@@ -692,6 +713,7 @@ Body:
RequiredItems:
- Index: 0
Item: War_Axe
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 100
@@ -703,6 +725,7 @@ Body:
RequiredItems:
- Index: 0
Item: Pole_Axe
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 100
@@ -714,6 +737,7 @@ Body:
RequiredItems:
- Index: 0
Item: Huuma_Bird_Wing
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 100
@@ -725,6 +749,7 @@ Body:
RequiredItems:
- Index: 0
Item: Iron_Driver
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 100
@@ -749,6 +774,7 @@ Body:
RequiredItems:
- Index: 0
Item: Tablet
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 50
@@ -760,6 +786,7 @@ Body:
RequiredItems:
- Index: 0
Item: Hunter_Bow_
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 80
@@ -777,6 +804,7 @@ Body:
RequiredItems:
- Index: 0
Item: Goibne's_Helmet
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 120
@@ -791,6 +819,7 @@ Body:
RequiredItems:
- Index: 0
Item: Goibne's_Armor
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 80
@@ -805,6 +834,7 @@ Body:
RequiredItems:
- Index: 0
Item: Goibne's_Combat_Boots
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 80
@@ -819,6 +849,7 @@ Body:
RequiredItems:
- Index: 0
Item: Goibne's_Shoulder_Arms
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 120
@@ -828,3 +859,89 @@ Body:
- Index: 3
Item: Token_Of_Bigstone
Amount: 150
- Name: barter_ill_teddy
Items:
- Index: 0
Item: Counter_Dagger_IL
RequiredItems:
- Index: 0
Item: Counter_Dagger
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 95
- Index: 2
Item: Green_Bearopy
Amount: 75
- Index: 3
Item: Chonchon_Doll_HQ
Amount: 50
- Index: 1
Item: Gate_KeeperDD_IL
RequiredItems:
- Index: 0
Item: Gate_KeeperDD
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 95
- Index: 2
Item: Gothic_China_Doll
Amount: 75
- Index: 3
Item: NasariansSoulstone
Amount: 150
- Index: 2
Item: Survival_Staff_IL
RequiredItems:
- Index: 0
Item: Survival_Rod_
Refine: 9
- Index: 1
Item: Survival_Rod2_
Refine: 9
- Index: 2
Item: IllusionStone
Amount: 125
- Index: 3
Item: Gothic_China_Doll
Amount: 100
- Index: 4
Item: Chonchon_Doll_HQ
Amount: 100
- Index: 5
Item: Clay_Doll
Amount: 15
- Index: 3
Item: Boots_IL
RequiredItems:
- Index: 0
Item: Boots_
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 85
- Index: 2
Item: Green_Bearopy
Amount: 50
- Index: 3
Item: Gothic_China_Doll
Amount: 50
- Index: 4
Item: Headband_Of_Power_IL
RequiredItems:
- Index: 0
Item: Headband_Of_Power
Refine: 9
- Index: 1
Item: IllusionStone
Amount: 115
- Index: 2
Item: NasariansSoulstone
Amount: 100
- Index: 3
Item: Chonchon_Doll_HQ
Amount: 50
- Index: 4
Item: Clay_Doll
Amount: 5

View File

@@ -15,6 +15,7 @@
//= 1.6 Added Illusion of Underwater exchange [Capuche]
//= 1.7 Added Illusion of Twins enchanter [Capuche]
//= 1.8 Added Illusion Merchant [Haydrich]
//= 1.9 Added Illusion of Teddy Bear exchange [Atemo]
//============================================================
//============================================================
@@ -884,3 +885,53 @@ OnInit:
npcshopupdate "market_resonance_stone",100004,2000000,99999;
end;
}
//============================================================
//= Illusion of Teddy Bear
//============================================================
ein_d02_i,177,158,3 script Bear Wanting Illusion Stone#ITB 4_NASARIAN,{
.@item_name$ = getitemname(25271); // IllusionStone
mes "[Bear Wanting " + .@item_name$ + "]";
mes "If you give me an " + .@item_name$ + ", I'll do something nice for you!";
next;
switch( select( "Reason for being here", "Good thing [Illusion equipment]", "Quit" ) ) {
case 1:
mes "[Bear Wanting " + .@item_name$ + "]";
mes "I don't know why...!";
mes "The other teddy bears were in line, so I was in line too!";
mes "Whoaaaaaa!!!!";
mes "I didn't know it was here!";
next;
mes "[Bear Wanting " + .@item_name$ + "]";
mes "A teddy bear with an " + .@item_name$ + "!";
mes "Strong!";
mes "I don't have any " + .@item_name$ + "s!";
mes "Less... stronger...";
next;
mes "[Bear Wanting " + .@item_name$ + "]";
mes "What are " + .@item_name$ + "s?";
mes "I don't know but I want some!";
close;
case 2:
mes "[Bear Wanting " + .@item_name$ + "]";
mes "Makes you good with what you have!";
next;
mes "[Bear Wanting " + .@item_name$ + "]";
mes "If you want to do well, bring equipment refined to ^ff0000+9 or higher. It'll all disappear... haha?^000000";
next;
mes "[Bear Wanting " + .@item_name$ + "]";
mes "^ff0000" + .@item_name$ + "^000000!!! " + .@item_name$ + " is the most important thing, but... other materials are also needed.";
mes "For every good thing you need another good thing.";
next;
close2;
callshop( "barter_ill_teddy" );
end;
case 3:
mes "[Bear Wanting " + .@item_name$ + "]";
mes "Okay...";
close;
}
end;
}

View File

@@ -0,0 +1,29 @@
//===== rAthena Script =======================================
//= Shopping Boards
//===== Description: =========================================
//= Shopping Boards work like Bargain Hunter's Catalogues.
//= They are found in towns and search exclusively in their respective maps.
//= Searches are limited to 1 use per board click (you can re-use the board without closing it to get another search).
//= https://irowiki.org/wiki/Commerce#Shopping_Boards
//===== Changelog: ===========================================
//= 1.0 Initial version. [Pokye]
//============================================================
- script Shopping Board -1,{
searchstores 1, SEARCHSTORE_EFFECT_REMOTE;
end;
}
alberta,119,65,3 duplicate(Shopping Board) Shopping Board#alb 4_BOARD3
aldebaran,146,120,3 duplicate(Shopping Board) Shopping Board#alde 4_BOARD3
comodo,206,153,3 duplicate(Shopping Board) Shopping Board#cmd 4_BOARD3
geffen,130,68,3 duplicate(Shopping Board) Shopping Board#gef 4_BOARD3
izlude,127,116,3 duplicate(Shopping Board) Shopping Board#izl 4_BOARD3
morocc,166,109,3 duplicate(Shopping Board) Shopping Board#moc 4_BOARD3
payon,183,103,3 duplicate(Shopping Board) Shopping Board#pay 4_BOARD3
prontera,159,193,3 duplicate(Shopping Board) Shopping Board#prt1 4_BOARD3
prontera,182,214,3 duplicate(Shopping Board) Shopping Board#prt2 4_BOARD3
prontera,130,215,3 duplicate(Shopping Board) Shopping Board#prt3 4_BOARD3
prontera,146,85,3 duplicate(Shopping Board) Shopping Board#prt4 4_BOARD3
xmas,155,144,3 duplicate(Shopping Board) Shopping Board#xmas 4_BOARD3
yuno,146,187,3 duplicate(Shopping Board) Shopping Board#yuno 4_BOARD3

View File

@@ -3,329 +3,334 @@
//===== By: ==================================================
//= nanakiwurtz
//===== Current Version: =====================================
//= 1.1
//= 1.2
//===== Compatible With: =====================================
//= rAthena Project
//===== Additional Comments: =================================
//= 1.0 First version
//= 1.1 Correct Spawn by Navigation's mob data. [attackjom]
//= 1.2 Correct respawn times and prontera field spawns [Playtester]
//============================================================
abbey02,0,0 monster Swift Zombie Slaughter 2603,3,300000
gl_prison,0,0 monster Solid Zombie Prisoner 2604,1,300000
gld_dun04,0,0 monster Zombie Master Ringleader 2605,2,300000
pay_dun00,0,0 monster Furious Zombie 2606,2,300000
schg_dun01,0,0 monster Elusive Zakudam 2607,2,300000
prt_fild03,0,0 monster Swift Yoyo 2608,2,300000
ayo_fild02,0,0 monster Solid Yoyo 2609,1,300000
pay_fild06,0,0 monster Wormtail Ringleader 2610,3,300000
um_fild02,0,0 monster Furious Wootan Fighter 2611,1,300000
mosk_dun01,0,0 monster Elusive Wood Goblin 2612,2,300000
moc_fild03,0,0 monster Swift Wolf 2613,2,300000
gl_step,0,0 monster Solid Wind Ghost 2614,2,300000
gef_dun03,0,0 monster Solid Wind Ghost 2614,1,300000
pay_fild01,0,0 monster Willow Ringleader 2615,2,300000
um_fild04,0,0 monster Furious Wild Rose 2616,1,300000
gon_dun03,0,0 monster Elusive Evil Nymph 2617,2,300000
gl_sew01,0,0 monster Solid Whisper 2618,1,300000
treasure_n2,0,0 monster Weak Skeleton Ringleader 2619,2,300000
gl_cas02,0,0 monster Furious Wanderer 2620,2,300000
gefenia04,0,0 monster Elusive Violy 2621,2,300000
gefenia03,0,0 monster Swift Violy 2622,2,300000
gefenia02,0,0 monster Solid Violy 2623,2,300000
ein_fild04,0,0 monster Venomous Ringleader 2624,2,300000
juperos_01,0,0 monster Furious Venatu 2625,3,300000
mosk_dun03,0,0 monster Elusive Vavayaga 2626,2,300000
ra_san01,0,0 monster Swift Vanberk 2627,2,300000
iz_dun01,0,0 monster Solid Vadon 2628,2,300000
ein_fild02,0,0 monster Ungoliant Ringleader 2629,2,300000
bra_fild01,0,0 monster Furious Toucan 2630,3,300000
ma_fild01,0,0 monster Elusive Tiyanak 2631,2,300000
prt_sewb4,0,0 monster Solid Thief Bug 2632,2,300000
prt_sewb3,0,0 monster Thief Bug Ringleader 2633,3,300000
prt_sewb2,0,0 monster Furious Thief Bug 2634,2,300000
beach_dun3,0,0 monster Elusive Thara Frog 2635,2,300000
ein_fild03,0,0 monster Swift Teddy Bear 2636,2,300000
man_fild03,0,0 monster Solid Tatacho 2637,1,300000
mjo_dun01,0,0 monster Tarou Ringleader 2638,2,300000
ayo_dun02,0,0 monster Furious Tamruan 2639,2,300000
gl_sew03,0,0 monster Elusive Sting 2640,2,300000
lhz_fild02,0,0 monster Swift Stem Worm 2641,2,300000
moc_fild13,0,0 monster Solid Steel Chonchon 2642,3,300000
ve_fild07,0,0 monster Stapo Ringleader 2643,2,300000
beach_dun2,0,0 monster Furious Stalactic Golem 2644,2,300000
prt_fild02,0,0 monster Elusive Stainer 2645,3,300000
treasure_n1,0,0 monster Swift Spore 2646,2,300000
tur_dun02,0,0 monster Solid Solider 2647,2,300000
pay_dun02,0,0 monster Soldier Skeleton Ringleader 2648,3,300000
pay_dun01,0,0 monster Furious Soldier Skeleton 2649,2,300000
tha_t09,0,0 monster Elusive Lady Solace 2650,2,300000 //--Remove after Thanatos Ravamped Patch
pay_dun03,0,0 monster Swift Sohee 2651,2,300000
ice_dun02,0,0 monster Solid Snowier 2652,2,300000
pay_fild02,0,0 monster Boa Ringleader 2653,3,300000
ayo_fild01,0,0 monster Furious Smokie 2654,2,300000
yuno_fild06,0,0 monster Elusive Sleeper 2655,1,300000
yuno_fild02,0,0 monster Swift Sleeper 2656,2,300000
odin_tem02,0,0 monster Solid Skogul 2657,1,300000
gld2_pay,0,0 monster Skeleton General Ringleader 2658,2,300000
gld_dun01_2,0,0 monster Furious Skeleton General 2659,2,300000
mjo_dun03,0,0 monster Elusive Skeleton Worker 2660,2,300000
ice_dun01,0,0 monster Swift Siroma 2661,1,300000
mosk_fild02,0,0 monster Solid Side Winder 2662,1,300000
mjolnir_03,0,0 monster Side Winder Ringleader 2663,2,300000
ama_dun03,0,0 monster Furious Shinobi 2664,2,300000
tha_t11,0,0 monster Elusive Mistress of Shelter 2665,2,300000 //--Remove after Thanatos Ravamped Patch
hu_fild06,0,0 monster Swift Shellfish 2666,1,300000
lhz_dun03,0,0 monster Solid Cecil Damon 2667,3,300000
cmd_fild04,0,0 monster Sea Otter Ringleader 2668,2,300000
iz_dun05,0,0 monster Furious Lamp Rey 2669,2,300000
moc_fild18,0,0 monster Elusive Scorpion 2670,3,300000
mjolnir_09,0,0 monster Swift Savage Babe 2671,2,300000
prt_maze01,0,0 monster Solid Savage 2672,2,300000
mjolnir_07,0,0 monster Savage Ringleader 2673,3,300000
moc_fild16,0,0 monster Furious Sandman 2674,2,300000
thor_v03,0,0 monster Elusive Salamander 2675,2,300000
treasure02,0,0 monster Swift Sailor Skeleton 2676,1,300000
ra_fild12,0,0 monster Solid Roween 2677,2,300000
prt_fild00,0,0 monster Roda Frog Ringleader 2678,2,300000
gef_fild01,0,0 monster Furious Roda Frog 2679,2,300000
prt_fild07,0,0 monster Elusive Rocker 2680,2,300000
tha_t01,0,0 monster Swift Rideword 2681,2,300000
//tha_t01,0,0 monster Swift Rideword 2681,1,300000 //--Applied after Thanatos Revamped Patch.
c_tower1,0,0 monster Solid Rideword 2682,2,300000
gon_fild01,0,0 monster Dumpling Child Ringleader 2683,2,300000
tha_t10,0,0 monster Furious Baroness of Retribution 2684,2,300000 //--Remove after Thanatos Ravamped Patch
tha_t08,0,0 monster Elusive Baroness of Retribution 2685,2,300000
//tha_t08,0,0 monster Elusive Baroness of Retribution 2685,1,300000 //--Applied after Thanatos Revamped Patch.
tha_t07,0,0 monster Swift Baroness of Retribution 2686,2,300000
//tha_t07,0,0 monster Swift Baroness of Retribution 2686,1,300000 //--Applied after Thanatos Revamped Patch.
in_sphinx2,0,0 monster Solid Requiem 2687,2,300000
lhz_dun01,0,0 monster Remover Ringleader 2688,3,300000
mal_dun01,0,0 monster Elusive Red Eruma 2689,2,300000
gl_knt02,0,0 monster Swift Raydric 2690,2,300000
gl_knt01,0,0 monster Solid Raydric 2691,2,300000
lhz_dun02,0,0 monster Laurell Weinder Ringleader 2692,3,300000
dic_dun03,0,0 monster Furious Rake Scaraba 2693,2,300000
cmd_fild07,0,0 monster Elusive Raggler 2694,2,300000
lhz_fild01,0,0 monster Swift Rafflesia 2695,3,300000
lhz_fild01,0,0 monster Poring Ringleader 2696,2,300000
lhz_fild01,0,0 monster Furious Poring 2697,2,300000
lhz_fild01,0,0 monster Elusive Poring 2698,2,300000
gef_fild07,0,0 monster Swift Poring 2699,2,300000
ein_fild09,0,0 monster Solid Porcellio 2700,2,300000
prt_maze03,0,0 monster Poporing Ringleader 2701,2,300000
prt_maze02,0,0 monster Furious Poporing 2702,2,300000
pay_fild04,0,0 monster Elusive Poporing 2703,2,300000
ama_dun02,0,0 monster Swift Poison Toad 2704,1,300000
mjolnir_06,0,0 monster Solid Poison Spore 2705,3,300000
odin_tem03,0,0 monster Plasma Ringleader 2706,2,300000
iz_dun00,0,0 monster Furious Plankton 2707,2,300000
ein_dun01,0,0 monster Elusive Pitman 2708,2,300000
bra_dun01,0,0 monster Swift Piranha 2709,2,300000
spl_fild01,0,0 monster Solid Dark Pinguicula 2710,2,300000
spl_fild02,0,0 monster Pinguicula Ringleader 2711,2,300000
moc_fild12,0,0 monster Furious Picky 2712,2,300000
iz_dun03,0,0 monster Elusive Phen 2713,2,300000
gef_fild08,0,0 monster Swift Petite 2714,2,300000
gef_fild06,0,0 monster Solid Petite 2715,2,300000
treasure02,0,0 monster Penomena Ringleader 2716,2,300000
alde_dun03,0,0 monster Furious Penomena 2717,2,300000
moc_fild02,0,0 monster Elusive Peco Peco 2718,2,300000
in_sphinx5,0,0 monster Swift Pasana 2719,2,300000
um_fild03,0,0 monster Solid Parasite 2720,1,300000
tha_t05,0,0 monster Owl Duke Ringleader 2721,2,300000
//tha_t05,0,0 monster Owl Duke Ringleader 2721,3,300000 //--Applied after Thanatos Revamped Patch.
gef_fild10,0,0 monster Furious Orc Warrior 2722,2,300000
orcsdun01,0,0 monster Elusive Orc Zombie 2723,2,300000
orcsdun02,0,0 monster Swift Orc Skeleton 2724,2,300000
gef_fild03,0,0 monster Solid Orc Lady 2725,3,300000
tha_t12,0,0 monster Dame of Sentinel Ringleader 2726,2,300000 //--Remove after Thanatos Ravamped Patch
ein_fild05,0,0 monster Furious Noxious 2727,2,300000
hu_fild05,0,0 monster Elusive Novus 2728,2,300000
hu_fild04,0,0 monster Swift Novus 2729,2,300000
hu_fild02,0,0 monster Solid Novus 2730,2,300000
hu_fild01,0,0 monster Novus Ringleader 2731,2,300000
mag_dun02,0,0 monster Furious Nightmare Terror 2732,2,300000
gl_chyard_,0,0 monster Elusive Wraith Dead (Nightmare) 2733,2,180000,0
abbey01,0,0 monster Swift Banshee 2887,3,180000
abbey02,0,0 monster Swift Zombie Slaughter 2603,3,180000
abbey03,0,0 monster Necromancer Ringleader 2736,2,180000
abyss_01,0,0 monster Furious Ferus 2832,2,180000
abyss_02,0,0 monster Acidus Ringleader 2913,2,180000
abyss_03,0,0 monster Solid Acidus 2912,2,180000
alde_dun01,0,0 monster Arclouze Ringleader 2894,1,180000
alde_dun02,0,0 monster Solid High Orc 2805,2,180000
alde_dun03,0,0 monster Furious Penomena 2717,2,180000
alde_dun04,0,0 monster Furious Bathory 2885,1,180000
ama_dun01,0,0 monster Miyabi Doll Ringleader 2746,2,180000
ama_dun02,0,0 monster Swift Poison Toad 2704,1,180000
ama_dun03,0,0 monster Furious Shinobi 2664,2,180000
ama_fild01,0,0 monster Swift Karakasa 2789,2,180000
anthell01,0,0 monster Elusive Deniro 2857,3,180000
anthell02,0,0 monster Solid Andre 2902,2,180000
arug_dun01,0,0 monster Elusive Banshee Master 2886,2,180000
ayo_dun01,0,0 monster Leaf Cat Ringleader 2781,2,180000
ayo_dun02,0,0 monster Furious Tamruan 2639,2,180000
ayo_fild01,0,0 monster Furious Smokie 2654,2,180000
ayo_fild02,0,0 monster Solid Yoyo 2609,1,180000
beach_dun,0,0 monster Swift Medusa 2759,2,180000
beach_dun2,0,0 monster Furious Stalactic Golem 2644,2,180000
beach_dun3,0,0 monster Elusive Thara Frog 2635,2,180000
bif_fild01,0,0 monster Miming Ringleader 2751,2,180000
bif_fild02,0,0 monster Furious Little Fatum 2777,2,180000
bra_dun01,0,0 monster Swift Piranha 2709,2,180000
bra_dun02,0,0 monster Solid Iara 2795,3,180000
bra_fild01,0,0 monster Furious Toucan 2630,3,180000
c_tower1,0,0 monster Solid Rideword 2682,2,180000
c_tower2,0,0 monster Furious Clock 2871,1,180000
c_tower3,0,0 monster Elusive Alarm 2910,1,180000
c_tower4,0,0 monster Clock Ringleader 2870,2,180000
cmd_fild01,0,0 monster Elusive Grove 2808,2,180000
cmd_fild02,0,0 monster Swift Seal 2829,3,180000
cmd_fild03,0,0 monster Solid Alligator 2907,3,180000
cmd_fild04,0,0 monster Sea Otter Ringleader 2668,2,180000
cmd_fild06,0,0 monster Furious Golem 2812,2,180000
cmd_fild07,0,0 monster Elusive Raggler 2694,2,180000
cmd_fild08,0,0 monster Elusive Deniro 2857,2,180000
cmd_fild09,0,0 monster Swift Metaller 2754,2,180000
dew_dun01,0,0 monster Elusive Comodo 2867,2,180000
dew_dun02,0,0 monster Solid Banaspaty 2888,2,180000
dew_fild01,0,0 monster Swift Rafflesia Arnoldi 2906,2,180000
dic_dun01,0,0 monster Swift Uni-horn Scaraba 2799,2,180000
dic_dun02,0,0 monster Elusive Antler Scaraba 2896,2,180000
dic_dun03,0,0 monster Furious Rake Scaraba 2693,2,180000
dic_fild01,0,0 monster Swift Centipede 2873,2,180000
dic_fild02,0,0 monster Dolomedes Ringleader 2850,2,180000
ecl_fild01,0,0 monster Elusive Menblatt 2758,1,180000
ecl_tdun01,0,0 monster Solid Cenere 2874,1,180000
ecl_tdun02,0,0 monster Solid Antique Book 2898,1,180000
ecl_tdun03,0,0 monster Swift Antique Book 2897,1,180000
ein_dun01,0,0 monster Elusive Pitman 2708,2,180000
ein_dun02,0,0 monster Solid Mineral 2750,2,180000
ein_fild02,0,0 monster Ungoliant Ringleader 2629,2,180000
ein_fild03,0,0 monster Swift Teddy Bear 2636,2,180000
ein_fild04,0,0 monster Venomous Ringleader 2624,2,180000
ein_fild05,0,0 monster Furious Noxious 2727,2,180000
ein_fild06,0,0 monster Solid Holden 2745,2,180000
ein_fild07,0,0 monster Metaling Ringleader 2756,2,180000
ein_fild08,0,0 monster Solid Metaling 2755,2,180000
ein_fild09,0,0 monster Solid Porcellio 2700,2,180000
gef_dun00,0,0 monster Furious Hunter Fly 2797,1,180000
gef_dun01,0,0 monster Elusive Ghoul 2823,2,180000
gef_dun02,0,0 monster Solid Deviruchi 2854,2,180000
gef_dun03,0,0 monster Solid Wind Ghost 2614,1,180000
gef_fild00,0,0 monster Elusive Chonchon 2872,2,180000
gef_fild01,0,0 monster Furious Roda Frog 2679,2,180000
gef_fild02,0,0 monster Solid Coco 2869,3,180000
gef_fild03,0,0 monster Solid Orc Lady 2725,3,180000
gef_fild04,0,0 monster Solid Mandragora 2765,2,180000
gef_fild05,0,0 monster Swift Creamy 2863,2,180000
gef_fild06,0,0 monster Solid Petite 2715,2,180000
gef_fild07,0,0 monster Swift Poring 2699,2,180000
gef_fild08,0,0 monster Swift Petite 2714,2,180000
gef_fild09,0,0 monster Swift Coco 2868,2,180000
gef_fild10,0,0 monster Furious Orc Warrior 2722,2,180000
gef_fild11,0,0 monster Swift Goblin 2814,3,180000
gefenia01,0,0 monster Swift False Angel 2834,2,180000
gefenia02,0,0 monster Solid Violy 2623,2,180000
gefenia03,0,0 monster Swift Violy 2622,2,180000
gefenia04,0,0 monster Elusive Violy 2621,2,180000
gl_cas01,0,0 monster Elusive Carat 2877,2,180000
gl_cas02_,0,0 monster Furious Wanderer (Nightmare) 2734,2,180000,0
man_fild01,0,0 monster Solid Nephentes 2735,2,300000
abbey03,0,0 monster Necromancer Ringleader 2736,2,300000
xmas_dun02,0,0 monster Furious Myst Case 2737,2,300000
ve_fild04,0,0 monster Elusive Muscipular 2738,2,300000
moc_pryd03,0,0 monster Swift Mummy 2739,2,300000
moc_pryd02,0,0 monster Solid Mummy 2740,2,300000
moc_fild01,0,0 monster Muka Ringleader 2741,3,300000
moc_fild22,0,0 monster Furious Incarnation of Morocc 2742,3,300000
moc_fild21,0,0 monster Elusive Incarnation of Morocc 2743,2,300000
moc_fild20,0,0 monster Swift Incarnation of Morocc 2744,1,300000
ein_fild06,0,0 monster Solid Holden 2745,2,300000
ama_dun01,0,0 monster Miyabi Doll Ringleader 2746,2,300000
moc_prydn1,0,0 monster Furious Minorous 2747,2,300000
moc_pryd05,0,0 monster Elusive Minorous 2748,2,300000
in_sphinx4,0,0 monster Swift Minorous 2749,1,300000
ein_dun02,0,0 monster Solid Mineral 2750,2,300000
bif_fild01,0,0 monster Miming Ringleader 2751,2,300000
moc_prydn2,0,0 monster Furious Mimic 2752,2,300000
moc_pryd06,0,0 monster Elusive Mimic 2753,2,300000
cmd_fild09,0,0 monster Swift Metaller 2754,2,300000
ein_fild08,0,0 monster Solid Metaling 2755,2,300000
ein_fild07,0,0 monster Metaling Ringleader 2756,2,300000
iz_dun04,0,0 monster Furious Merman 2757,2,300000
ecl_fild01,0,0 monster Elusive Menblatt 2758,1,300000
beach_dun,0,0 monster Swift Medusa 2759,2,300000
mjo_dun02,0,0 monster Solid Martin 2760,2,300000
gl_in01,0,0 monster Marionette Ringleader 2761,1,300000
xmas_fild01,0,0 monster Furious Marin 2762,1,300000
in_sphinx3,0,0 monster Elusive Marduk 2763,1,300000
prt_maze03,0,0 monster Swift Mantis 2764,2,300000
gef_fild04,0,0 monster Solid Mandragora 2765,2,300000
ma_dun01,0,0 monster Manananggal Ringleader 2766,2,300000
gl_dun02,0,0 monster Furious Majoruros 2767,1,300000
prt_fild09,0,0 monster Elusive Magnolia 2768,2,300000
ve_fild03,0,0 monster Swift Magmaring 2769,2,300000
prt_fild08,0,0 monster Solid Lunatic 2770,1,300000
prt_fild01,0,0 monster Lunatic Ringleader 2771,2,300000
niflheim,0,0 monster Furious Lude 2772,1,300000
spl_fild03,0,0 monster Elusive Luciola Vespa 2773,1,300000
nif_fild02,0,0 monster Swift Loli Ruri 2774,1,300000
gon_dun02,0,0 monster Solid Enchanted Peach Tree 2775,1,300000
new_1-3,0,0 monster Baby Poring Ringleader 2776,2,300000
bif_fild02,0,0 monster Furious Little Fatum 2777,2,300000
lou_dun01,0,0 monster Elusive Jing Guai 2778,2,300000
mosk_dun02,0,0 monster Swift Les 2779,1,300000
gld_dun01,0,0 monster Solid Leib Olmai 2780,2,300000
ayo_dun01,0,0 monster Leaf Cat Ringleader 2781,2,300000
teg_dun02,0,0 monster Furious Wickebine Tres 2782,2,300000,0
teg_dun01,0,0 monster Elusive Eremes 2783,2,300000,0
ra_fild06,0,0 monster Swift Kobold Archer 2784,3,300000
ra_fild05,0,0 monster Solid Kobold 2785,3,300000
thor_v02,0,0 monster Knocker Ringleader 2786,1,300000
mjolnir_08,0,0 monster Furious Beetle King 2787,2,300000
thor_v01,0,0 monster Elusive Kasa 2788,2,300000
ama_fild01,0,0 monster Swift Karakasa 2789,2,300000
moc_pryd04,0,0 monster Solid Isis 2790,2,300000
ra_san02,0,0 monster Isilla Ringleader 2791,2,300000
gl_prison1,0,0 monster Furious Injustice 2792,2,300000
lou_fild01,0,0 monster Elusive Mi Gao 2793,1,300000
ice_dun03,0,0 monster Swift Ice Titan 2794,2,300000
bra_dun02,0,0 monster Solid Iara 2795,3,300000
lou_dun02,0,0 monster Yao Jun Ringleader 2796,1,300000
gef_dun00,0,0 monster Furious Hunter Fly 2797,1,300000
prt_fild05,0,0 monster Elusive Hornet 2798,2,300000
dic_dun01,0,0 monster Swift Uni-horn Scaraba 2799,2,300000
pay_fild09,0,0 monster Solid Horn 2800,2,300000
ra_san03,0,0 monster Hodremlin Ringleader 2801,2,300000
moc_fild17,0,0 monster Furious Hode 2802,2,300000
ra_fild04,0,0 monster Elusive Hill Wind 2803,3,300000
ra_fild03,0,0 monster Swift Hill Wind 2804,3,300000
alde_dun02,0,0 monster Solid High Orc 2805,2,300000
yuno_fild04,0,0 monster Harpy Ringleader 2806,3,300000
yuno_fild03,0,0 monster Furious Harpy 2807,3,300000
cmd_fild01,0,0 monster Elusive Grove 2808,2,300000
pay_fild10,0,0 monster Swift Greatest General 2809,2,300000
yuno_fild09,0,0 monster Solid Grand Peco 2810,2,300000
yuno_fild08,0,0 monster Grand Peco Ringleader 2811,2,300000
cmd_fild06,0,0 monster Furious Golem 2812,2,300000
prt_fild11,0,0 monster Elusive Goblin 2813,3,300000
gef_fild11,0,0 monster Swift Goblin 2814,3,300000
yuno_fild11,0,0 monster Solid Goat 2815,2,300000
yuno_fild07,0,0 monster Goat Ringleader 2816,2,300000
gld2_prt,0,0 monster Furious Dark Hammer Kobold 2817,2,300000
gld_dun03_2,0,0 monster Elusive Dark Hammer Kobold 2818,2,300000
gld2_gef,0,0 monster Swift Dark Shadow 2819,2,300000
gld_dun04_2,0,0 monster Solid Dark Shadow 2820,2,300000
gld_dun02,0,0 monster Giant Hornet Ringleader 2821,2,300000
nameless_n,0,0 monster Furious Ghoul 2822,1,300000
gef_dun01,0,0 monster Elusive Ghoul 2823,2,300000
yuno_fild12,0,0 monster Swift Geographer 2824,1,300000
yuno_fild01,0,0 monster Solid Geographer 2825,2,300000
glast_01,0,0 monster Gargoyle Ringleader 2826,1,300000
gl_sew02,0,0 monster Furious Gargoyle 2827,1,300000
ve_fild01,0,0 monster Elusive Galion 2828,1,300000
cmd_fild02,0,0 monster Swift Seal 2829,3,300000
tur_dun05,0,0 monster Solid Freezer 2830,1,300000
tur_dun03,0,0 monster Freezer Ringleader 2831,1,300000
abyss_01,0,0 monster Furious Ferus 2832,2,300000
prt_sewb1,0,0 monster Elusive Familiar 2833,1,300000
gefenia01,0,0 monster Swift False Angel 2834,2,300000
prt_fild06,0,0 monster Solid Fabre 2835,2,300000
pay_fild03,0,0 monster Fabre Ringleader 2836,3,300000
mag_dun01,0,0 monster Furious Explosion 2837,1,300000
gl_church,0,0 monster Elusive Evil Druid 2838,2,300000
prt_fild10,0,0 monster Swift Elder Willow 2839,3,300000
mjolnir_02,0,0 monster Solid Elder Willow 2840,3,300000
ra_san04,0,0 monster Echio Ringleader 2841,1,300000
mjolnir_12,0,0 monster Furious Dustiness 2842,2,300000
um_fild01,0,0 monster Swift Dryad 2843,2,300000
ve_fild02,0,0 monster Solid Drosera 2844,2,300000
moc_fild07,0,0 monster Drops Ringleader 2845,3,300000
mjolnir_04,0,0 monster Furious Driller 2846,3,300000
in_sphinx1,0,0 monster Elusive Drainliar 2847,1,300000
tur_dun01,0,0 monster Swift Dragon Tail 2848,1,300000
nyd_dun01,0,0 monster Solid Draco 2849,2,300000
dic_fild02,0,0 monster Dolomedes Ringleader 2850,2,300000
pay_dun04,0,0 monster Furious Dokebi 2851,2,300000
nif_fild01,0,0 monster Elusive Disguise 2852,2,300000
jupe_core,0,0 monster Swift Dimik 2853,3,300000
gef_dun02,0,0 monster Solid Deviruchi 2854,2,300000
ra_fild01,0,0 monster Baby Desert Wolf Ringleader 2855,2,300000
moc_fild11,0,0 monster Furious Baby Desert Wolf 2856,3,300000
cmd_fild08,0,0 monster Elusive Deniro 2857,2,300000
anthell01,0,0 monster Elusive Deniro 2857,3,300000
tha_t06,0,0 monster Swift Death Word 2858,2,300000
//tha_t06,0,0 monster Swift Death Word 2858,3,300000 //--Applied after Thanatos Revamped Patch.
tha_t04,0,0 monster Solid Death Word 2859,2,300000
tha_t03,0,0 monster Death Word Ringleader 2860,2,300000
gl_chyard,0,0 monster Furious Dark Priest 2861,2,300000
lou_dun03,0,0 monster Elusive Zhu Po Long 2862,1,300000
gef_fild05,0,0 monster Swift Creamy 2863,2,300000
iz_dun02,0,0 monster Solid Cornutus 2864,2,300000
xmas_dun01,0,0 monster Cookie Ringleader 2865,2,300000
kh_kiehl01,0,0 monster Furious Constant 2866,2,300000
dew_dun01,0,0 monster Elusive Comodo 2867,2,300000
gef_fild09,0,0 monster Swift Coco 2868,2,300000
gef_fild02,0,0 monster Solid Coco 2869,3,300000
c_tower4,0,0 monster Clock Ringleader 2870,2,300000
c_tower2,0,0 monster Furious Clock 2871,1,300000
gef_fild00,0,0 monster Elusive Chonchon 2872,2,300000
dic_fild01,0,0 monster Swift Centipede 2873,2,300000
ecl_tdun01,0,0 monster Solid Cenere 2874,1,300000
lhz_dun04,0,0 monster Celia Ringleader 2875,3,300000
gld_dun03,0,0 monster Furious Caterpillar 2876,2,300000
gl_cas01,0,0 monster Elusive Carat 2877,2,300000
mjolnir_01,0,0 monster Swift Caramel 2878,2,300000
ma_fild02,0,0 monster Solid Bungisngis 2879,2,300000
odin_tem01,0,0 monster Breeze Ringleader 2880,1,300000
lhz_fild03,0,0 monster Furious Breeze 2881,3,300000
man_fild02,0,0 monster Elusive Bradium Golem 2882,2,300000
gon_dun01,0,0 monster Swift Bloody Butterfly 2883,2,300000
pay_fild07,0,0 monster Bigfoot Ringleader 2884,2,300000
alde_dun04,0,0 monster Furious Bathory 2885,1,300000
arug_dun01,0,0 monster Elusive Banshee Master 2886,2,300000
abbey01,0,0 monster Swift Banshee 2887,3,300000
dew_dun02,0,0 monster Solid Banaspaty 2888,2,300000
tur_dun04,0,0 monster Assaulter Ringleader 2889,1,300000
mjolnir_10,0,0 monster Furious Argos 2890,2,300000
mjolnir_11,0,0 monster Elusive Argiope 2891,2,300000
mjolnir_05,0,0 monster Swift Argiope 2892,2,300000
gl_dun01,0,0 monster Solid Arclouze 2893,1,300000
alde_dun01,0,0 monster Arclouze Ringleader 2894,1,300000
juperos_02,0,0 monster Furious Apocalypse 2895,3,300000
dic_dun02,0,0 monster Elusive Antler Scaraba 2896,2,300000
ecl_tdun03,0,0 monster Swift Antique Book 2897,1,300000
ecl_tdun02,0,0 monster Solid Antique Book 2898,1,300000
gl_sew04,0,0 monster Furious Anolian 2899,2,300000
gld2_ald,0,0 monster Elusive Angra Mantis 2900,2,300000
gld_dun02_2,0,0 monster Swift Angra Mantis 2901,2,300000
anthell02,0,0 monster Solid Andre 2902,2,300000
tha_t02,0,0 monster Ancient Mimic Ringleader 2903,2,300000
ra_fild08,0,0 monster Furious Anacondaq 2904,2,300000
prt_fild04,0,0 monster Elusive Ambernite 2905,2,300000
dew_fild01,0,0 monster Swift Rafflesia Arnoldi 2906,2,300000
cmd_fild03,0,0 monster Solid Alligator 2907,3,300000
kh_dun01,0,0 monster Aliza Ringleader 2908,1,300000
kh_dun02,0,0 monster Furious Alicel 2909,1,300000
c_tower3,0,0 monster Elusive Alarm 2910,1,300000
ra_san05,0,0 monster Swift Agav 2911,2,300000
abyss_03,0,0 monster Solid Acidus 2912,2,300000
abyss_02,0,0 monster Acidus Ringleader 2913,2,300000
gl_cas02,0,0 monster Furious Wanderer 2620,2,180000
gl_church,0,0 monster Elusive Evil Druid 2838,2,180000
gl_chyard_,0,0 monster Elusive Wraith Dead (Nightmare) 2733,2,180000,0
gl_chyard,0,0 monster Furious Dark Priest 2861,2,180000
gl_dun01,0,0 monster Solid Arclouze 2893,1,180000
gl_dun02,0,0 monster Furious Majoruros 2767,1,180000
gl_in01,0,0 monster Marionette Ringleader 2761,1,180000
gl_knt01,0,0 monster Solid Raydric 2691,2,180000
gl_knt02,0,0 monster Swift Raydric 2690,2,180000
gl_prison,0,0 monster Solid Zombie Prisoner 2604,1,180000
gl_prison1,0,0 monster Furious Injustice 2792,2,180000
gl_sew01,0,0 monster Solid Whisper 2618,1,180000
gl_sew02,0,0 monster Furious Gargoyle 2827,1,180000
gl_sew03,0,0 monster Elusive Sting 2640,2,180000
gl_sew04,0,0 monster Furious Anolian 2899,2,180000
gl_step,0,0 monster Solid Wind Ghost 2614,2,180000
glast_01,0,0 monster Gargoyle Ringleader 2826,1,180000
gld_dun01_2,0,0 monster Furious Skeleton General 2659,2,180000
gld_dun01,0,0 monster Solid Leib Olmai 2780,2,180000
gld_dun02_2,0,0 monster Swift Angra Mantis 2901,2,180000
gld_dun02,0,0 monster Giant Hornet Ringleader 2821,2,180000
gld_dun03_2,0,0 monster Elusive Dark Hammer Kobold 2818,2,180000
gld_dun03,0,0 monster Furious Caterpillar 2876,2,180000
gld_dun04_2,0,0 monster Solid Dark Shadow 2820,2,180000
gld_dun04,0,0 monster Zombie Master Ringleader 2605,2,180000
gld2_ald,0,0 monster Elusive Angra Mantis 2900,2,180000
gld2_gef,0,0 monster Swift Dark Shadow 2819,2,180000
gld2_pay,0,0 monster Skeleton General Ringleader 2658,2,180000
gld2_prt,0,0 monster Furious Dark Hammer Kobold 2817,2,180000
gon_dun01,0,0 monster Swift Bloody Butterfly 2883,2,180000
gon_dun02,0,0 monster Solid Enchanted Peach Tree 2775,1,180000
gon_dun03,0,0 monster Elusive Evil Nymph 2617,2,180000
gon_fild01,0,0 monster Dumpling Child Ringleader 2683,2,180000
hu_fild01,0,0 monster Novus Ringleader 2731,2,180000
hu_fild02,0,0 monster Solid Novus 2730,2,180000
hu_fild04,0,0 monster Swift Novus 2729,2,180000
hu_fild05,0,0 monster Elusive Novus 2728,2,180000
hu_fild06,0,0 monster Swift Shellfish 2666,1,180000
ice_dun01,0,0 monster Swift Siroma 2661,1,180000
ice_dun02,0,0 monster Solid Snowier 2652,2,180000
ice_dun03,0,0 monster Swift Ice Titan 2794,2,180000
in_sphinx1,0,0 monster Elusive Drainliar 2847,1,180000
in_sphinx2,0,0 monster Solid Requiem 2687,2,180000
in_sphinx3,0,0 monster Elusive Marduk 2763,1,180000
in_sphinx4,0,0 monster Swift Minorous 2749,1,180000
in_sphinx5,0,0 monster Swift Pasana 2719,2,180000
iz_dun00,0,0 monster Furious Plankton 2707,2,180000
iz_dun01,0,0 monster Solid Vadon 2628,2,180000
iz_dun02,0,0 monster Solid Cornutus 2864,2,180000
iz_dun03,0,0 monster Elusive Phen 2713,2,180000
iz_dun04,0,0 monster Furious Merman 2757,2,180000
iz_dun05,0,0 monster Furious Lamp Rey 2669,2,180000
jupe_core,0,0 monster Swift Dimik 2853,3,180000
juperos_01,0,0 monster Furious Venatu 2625,3,180000
juperos_02,0,0 monster Furious Apocalypse 2895,3,180000
kh_dun01,0,0 monster Aliza Ringleader 2908,1,180000
kh_dun02,0,0 monster Furious Alicel 2909,1,180000
kh_kiehl01,0,0 monster Furious Constant 2866,2,180000
lhz_dun01,0,0 monster Remover Ringleader 2688,3,180000
lhz_dun02,0,0 monster Laurell Weinder Ringleader 2692,3,180000
lhz_dun03,0,0 monster Solid Cecil Damon 2667,3,180000
lhz_dun04,0,0 monster Celia Ringleader 2875,3,180000
lhz_fild01,0,0 monster Swift Rafflesia 2695,3,180000
lhz_fild01,0,0 monster Poring Ringleader 2696,2,180000
lhz_fild01,0,0 monster Furious Poring 2697,2,180000
lhz_fild01,0,0 monster Elusive Poring 2698,2,180000
lhz_fild02,0,0 monster Swift Stem Worm 2641,2,180000
lhz_fild03,0,0 monster Furious Breeze 2881,3,180000
lou_dun01,0,0 monster Elusive Jing Guai 2778,2,180000
lou_dun02,0,0 monster Yao Jun Ringleader 2796,1,180000
lou_dun03,0,0 monster Elusive Zhu Po Long 2862,1,180000
lou_fild01,0,0 monster Elusive Mi Gao 2793,1,180000
ma_dun01,0,0 monster Manananggal Ringleader 2766,2,180000
ma_fild01,0,0 monster Elusive Tiyanak 2631,2,180000
ma_fild02,0,0 monster Solid Bungisngis 2879,2,180000
mag_dun01,0,0 monster Furious Explosion 2837,1,180000
mag_dun02,0,0 monster Furious Nightmare Terror 2732,2,180000
mal_dun01,0,0 monster Elusive Red Eruma 2689,2,180000
man_fild01,0,0 monster Solid Nephentes 2735,2,180000
man_fild02,0,0 monster Elusive Bradium Golem 2882,2,180000
man_fild03,0,0 monster Solid Tatacho 2637,1,180000
mjo_dun01,0,0 monster Tarou Ringleader 2638,2,180000
mjo_dun02,0,0 monster Solid Martin 2760,2,180000
mjo_dun03,0,0 monster Elusive Skeleton Worker 2660,2,180000
mjolnir_01,0,0 monster Swift Caramel 2878,2,180000
mjolnir_02,0,0 monster Solid Elder Willow 2840,3,180000
mjolnir_03,0,0 monster Side Winder Ringleader 2663,2,180000
mjolnir_04,0,0 monster Furious Driller 2846,3,180000
mjolnir_05,0,0 monster Swift Argiope 2892,2,180000
mjolnir_06,0,0 monster Solid Poison Spore 2705,3,180000
mjolnir_07,0,0 monster Savage Ringleader 2673,3,180000
mjolnir_08,0,0 monster Furious Beetle King 2787,2,180000
mjolnir_09,0,0 monster Swift Savage Babe 2671,2,180000
mjolnir_10,0,0 monster Furious Argos 2890,2,180000
mjolnir_11,0,0 monster Elusive Argiope 2891,2,180000
mjolnir_12,0,0 monster Furious Dustiness 2842,2,180000
moc_fild01,0,0 monster Muka Ringleader 2741,3,180000
moc_fild02,0,0 monster Elusive Peco Peco 2718,2,180000
moc_fild03,0,0 monster Swift Wolf 2613,2,180000
moc_fild07,0,0 monster Drops Ringleader 2845,3,180000
moc_fild11,0,0 monster Furious Baby Desert Wolf 2856,3,180000
moc_fild12,0,0 monster Furious Picky 2712,2,180000
moc_fild13,0,0 monster Solid Steel Chonchon 2642,3,180000
moc_fild16,0,0 monster Furious Sandman 2674,2,180000
moc_fild17,0,0 monster Furious Hode 2802,2,180000
moc_fild18,0,0 monster Elusive Scorpion 2670,3,180000
moc_fild20,0,0 monster Swift Incarnation of Morocc 2744,1,180000
moc_fild21,0,0 monster Elusive Incarnation of Morocc 2743,2,180000
moc_fild22,0,0 monster Furious Incarnation of Morocc 2742,3,180000
moc_pryd02,0,0 monster Solid Mummy 2740,2,180000
moc_pryd03,0,0 monster Swift Mummy 2739,2,180000
moc_pryd04,0,0 monster Solid Isis 2790,2,180000
moc_pryd05,0,0 monster Elusive Minorous 2748,2,180000
moc_pryd06,0,0 monster Elusive Mimic 2753,2,180000
moc_prydn1,0,0 monster Furious Minorous 2747,2,180000
moc_prydn2,0,0 monster Furious Mimic 2752,2,180000
mosk_dun01,0,0 monster Elusive Wood Goblin 2612,2,180000
mosk_dun02,0,0 monster Swift Les 2779,1,180000
mosk_dun03,0,0 monster Elusive Vavayaga 2626,2,180000
mosk_fild02,0,0 monster Solid Side Winder 2662,1,180000
nameless_n,0,0 monster Furious Ghoul 2822,1,180000
new_1-3,0,0 monster Baby Poring Ringleader 2776,2,180000
nif_fild01,0,0 monster Elusive Disguise 2852,2,180000
nif_fild02,0,0 monster Swift Loli Ruri 2774,1,180000
niflheim,0,0 monster Furious Lude 2772,1,180000
nyd_dun01,0,0 monster Solid Draco 2849,2,180000
odin_tem01,0,0 monster Breeze Ringleader 2880,1,180000
odin_tem02,0,0 monster Solid Skogul 2657,1,180000
odin_tem03,0,0 monster Plasma Ringleader 2706,2,180000
orcsdun01,0,0 monster Elusive Orc Zombie 2723,2,180000
orcsdun02,0,0 monster Swift Orc Skeleton 2724,2,180000
pay_dun00,0,0 monster Furious Zombie 2606,2,180000
pay_dun01,0,0 monster Furious Soldier Skeleton 2649,2,180000
pay_dun02,0,0 monster Soldier Skeleton Ringleader 2648,3,180000
pay_dun03,0,0 monster Swift Sohee 2651,2,180000
pay_dun04,0,0 monster Furious Dokebi 2851,2,180000
pay_fild01,0,0 monster Willow Ringleader 2615,2,180000
pay_fild02,0,0 monster Boa Ringleader 2653,3,180000
pay_fild03,0,0 monster Fabre Ringleader 2836,3,180000
pay_fild04,0,0 monster Elusive Poporing 2703,2,180000
pay_fild06,0,0 monster Wormtail Ringleader 2610,3,180000
pay_fild07,0,0 monster Bigfoot Ringleader 2884,2,180000
pay_fild09,0,0 monster Solid Horn 2800,2,180000
pay_fild10,0,0 monster Swift Greatest General 2809,2,180000
prt_fild00,0,0 monster Roda Frog Ringleader 2678,2,180000
prt_fild01,0,0 monster Lunatic Ringleader 2771,2,180000
prt_fild02,0,0 monster Elusive Stainer 2645,3,180000
prt_fild03,0,0 monster Swift Yoyo 2608,2,180000
prt_fild04,0,0 monster Elusive Ambernite 2905,2,180000
prt_fild05,0,0 monster Elusive Hornet 2798,2,180000
prt_fild06,0,0 monster Solid Fabre 2835,2,180000
prt_fild07,0,0 monster Elusive Rocker 2680,3,180000
prt_fild08,0,0 monster Solid Lunatic 2770,1,180000
prt_fild08,0,0 monster Poring Ringleader 2696,1,180000
prt_fild08,0,0 monster Furious Poring 2697,1,180000
prt_fild08,0,0 monster Elusive Poring 2698,1,180000
prt_fild08,0,0 monster Swift Poring 2699,1,180000
prt_fild09,0,0 monster Elusive Magnolia 2768,2,180000
prt_fild10,0,0 monster Swift Elder Willow 2839,3,180000
prt_fild11,0,0 monster Elusive Goblin 2813,3,180000
prt_maze01,0,0 monster Solid Savage 2672,2,180000
prt_maze02,0,0 monster Furious Poporing 2702,2,180000
prt_maze03,0,0 monster Poporing Ringleader 2701,2,180000
prt_maze03,0,0 monster Swift Mantis 2764,2,180000
prt_sewb1,0,0 monster Elusive Familiar 2833,1,180000
prt_sewb2,0,0 monster Furious Thief Bug 2634,2,180000
prt_sewb3,0,0 monster Thief Bug Ringleader 2633,3,180000
prt_sewb4,0,0 monster Solid Thief Bug 2632,2,180000
ra_fild01,0,0 monster Baby Desert Wolf Ringleader 2855,2,180000
ra_fild03,0,0 monster Swift Hill Wind 2804,3,180000
ra_fild04,0,0 monster Elusive Hill Wind 2803,3,180000
ra_fild05,0,0 monster Solid Kobold 2785,3,180000
ra_fild06,0,0 monster Swift Kobold Archer 2784,3,180000
ra_fild08,0,0 monster Furious Anacondaq 2904,2,180000
ra_fild12,0,0 monster Solid Roween 2677,2,180000
ra_san01,0,0 monster Swift Vanberk 2627,2,180000
ra_san02,0,0 monster Isilla Ringleader 2791,2,180000
ra_san03,0,0 monster Hodremlin Ringleader 2801,2,180000
ra_san04,0,0 monster Echio Ringleader 2841,1,180000
ra_san05,0,0 monster Swift Agav 2911,2,180000
schg_dun01,0,0 monster Elusive Zakudam 2607,2,180000
spl_fild01,0,0 monster Solid Dark Pinguicula 2710,2,180000
spl_fild02,0,0 monster Pinguicula Ringleader 2711,2,180000
spl_fild03,0,0 monster Elusive Luciola Vespa 2773,1,180000
teg_dun01,0,0 monster Elusive Eremes 2783,2,180000,0
teg_dun02,0,0 monster Furious Wickebine Tres 2782,2,180000,0
tha_t01,0,0 monster Swift Rideword 2681,2,180000
//tha_t01,0,0 monster Swift Rideword 2681,1,180000 //--Applied after Thanatos Revamped Patch.
tha_t02,0,0 monster Ancient Mimic Ringleader 2903,2,180000
tha_t03,0,0 monster Death Word Ringleader 2860,2,180000
tha_t04,0,0 monster Solid Death Word 2859,2,180000
tha_t05,0,0 monster Owl Duke Ringleader 2721,2,180000
//tha_t05,0,0 monster Owl Duke Ringleader 2721,3,180000 //--Applied after Thanatos Revamped Patch.
tha_t06,0,0 monster Swift Death Word 2858,2,180000
//tha_t06,0,0 monster Swift Death Word 2858,3,180000 //--Applied after Thanatos Revamped Patch.
tha_t07,0,0 monster Swift Baroness of Retribution 2686,2,180000
//tha_t07,0,0 monster Swift Baroness of Retribution 2686,1,180000 //--Applied after Thanatos Revamped Patch.
tha_t08,0,0 monster Elusive Baroness of Retribution 2685,2,180000
//tha_t08,0,0 monster Elusive Baroness of Retribution 2685,1,180000 //--Applied after Thanatos Revamped Patch.
tha_t09,0,0 monster Elusive Lady Solace 2650,2,180000 //--Remove after Thanatos Ravamped Patch
tha_t10,0,0 monster Furious Baroness of Retribution 2684,2,180000 //--Remove after Thanatos Ravamped Patch
tha_t11,0,0 monster Elusive Mistress of Shelter 2665,2,180000 //--Remove after Thanatos Ravamped Patch
tha_t12,0,0 monster Dame of Sentinel Ringleader 2726,2,180000 //--Remove after Thanatos Ravamped Patch
thor_v01,0,0 monster Elusive Kasa 2788,2,180000
thor_v02,0,0 monster Knocker Ringleader 2786,1,180000
thor_v03,0,0 monster Elusive Salamander 2675,2,180000
treasure_n1,0,0 monster Swift Spore 2646,2,180000
treasure_n2,0,0 monster Weak Skeleton Ringleader 2619,2,180000
treasure02,0,0 monster Swift Sailor Skeleton 2676,1,180000
treasure02,0,0 monster Penomena Ringleader 2716,2,180000
tur_dun01,0,0 monster Swift Dragon Tail 2848,1,180000
tur_dun02,0,0 monster Solid Solider 2647,2,180000
tur_dun03,0,0 monster Freezer Ringleader 2831,1,180000
tur_dun04,0,0 monster Assaulter Ringleader 2889,1,180000
tur_dun05,0,0 monster Solid Freezer 2830,1,180000
um_fild01,0,0 monster Swift Dryad 2843,2,180000
um_fild02,0,0 monster Furious Wootan Fighter 2611,1,180000
um_fild03,0,0 monster Solid Parasite 2720,1,180000
um_fild04,0,0 monster Furious Wild Rose 2616,1,180000
ve_fild01,0,0 monster Elusive Galion 2828,1,180000
ve_fild02,0,0 monster Solid Drosera 2844,2,180000
ve_fild03,0,0 monster Swift Magmaring 2769,2,180000
ve_fild04,0,0 monster Elusive Muscipular 2738,2,180000
ve_fild07,0,0 monster Stapo Ringleader 2643,2,180000
xmas_dun01,0,0 monster Cookie Ringleader 2865,2,180000
xmas_dun02,0,0 monster Furious Myst Case 2737,2,180000
xmas_fild01,0,0 monster Furious Marin 2762,1,180000
yuno_fild01,0,0 monster Solid Geographer 2825,2,180000
yuno_fild02,0,0 monster Swift Sleeper 2656,2,180000
yuno_fild03,0,0 monster Furious Harpy 2807,3,180000
yuno_fild04,0,0 monster Harpy Ringleader 2806,3,180000
yuno_fild06,0,0 monster Elusive Sleeper 2655,1,180000
yuno_fild07,0,0 monster Goat Ringleader 2816,2,180000
yuno_fild08,0,0 monster Grand Peco Ringleader 2811,2,180000
yuno_fild09,0,0 monster Solid Grand Peco 2810,2,180000
yuno_fild11,0,0 monster Solid Goat 2815,2,180000
yuno_fild12,0,0 monster Swift Geographer 2824,1,180000

View File

@@ -14,6 +14,7 @@
//= 1.3 Official kRO 10.1 spawns [Playtester]
//= 1.4 More accurate spawns [Playtester]
//= 1.5 Corrected MVP spawn variance. [L0ne_W0lf]
//= 1.6 Added Illusion of Teddy Bear. [Atemo]
//============================================================
//==================================================
@@ -49,3 +50,46 @@ ein_dun03 monster White Porcellio 20602,22
ein_dun03 monster Jeweliant 20598,20
ein_dun03 monster Jewel 20600,3
ein_dun03 boss_monster Jungoliant 20601,1,7200000,600000,0
//==================================================
// Illusion of Teddy Bear
//==================================================
ein_d02_i monster Red Teddybear 20255,25,5000,0,"ein_d02_i_boss::OnMobDead"
ein_d02_i monster Yellow Teddybear 20256,25,5000,0,"ein_d02_i_boss::OnMobDead"
ein_d02_i monster Green Teddybear 20257,25,5000,0,"ein_d02_i_boss::OnMobDead"
ein_d02_i monster White Teddybear 20258,20,5000,0,"ein_d02_i_boss::OnMobDead"
ein_d02_i monster Blue Teddybear 20259,20,5000,0,"ein_d02_i_boss::OnMobDead"
ein_d02_i monster Pitman Labor Type 20261,20
ein_d02_i monster Piece of Spirit 20262,15
ein_d02_i monster Spirit Dwelling Obsidian 20263,15
- script ein_d02_i_boss -1,{
end;
OnMobDead:
if (playerattached()) {
if (.count < 2500)
.count++;
if (!.boss_spawn && !.cooldown && .count == 2500) {
.boss_spawn = true;
.count = 0;
killmonster "ein_d02_i", "ein_d02_i_boss::OnBossDeath";
// mapannounce "ein_d02_i", "", bc_map; // Unknown text
getunitdata( killedgid, .@data );
monster "ein_d02_i", .@data[UMOB_X], .@data[UMOB_Y], "--ja--", 20260,1, "ein_d02_i_boss::OnBossDeath"; // ILL_TEDDY_BEAR_S
end;
}
}
end;
OnBossDeath:
// (no announce)
killmonster "ein_d02_i", "ein_d02_i_boss::OnBossDeath";
.boss_spawn = false;
.cooldown = true;
initnpctimer;
end;
OnTimer7200000:
.cooldown = false;
stopnpctimer;
end;
}

View File

@@ -3,7 +3,7 @@
//===== By: ==================================================
//= Athena (1.0)
//===== Current Version: =====================================
//= 1.7
//= 1.8
//===== Additional Comments: =================================
//= 1.2 fixed some map name typos [Lupus]
//= 1.3 Official kRO 10.1 spawns [Playtester]
@@ -11,6 +11,7 @@
//= 1.5 Updated to Renewal spawns.
//= 1.6 Added Prontera Field 8 duplicates. [Euphy]
//= 1.7 Correct Spawn by Navigation's mob data. [attackjom]
//= 1.8 Official 18.1 Field 8 spawns, duplicates removed [Playtester]
//============================================================
//==================================================
@@ -90,36 +91,27 @@ prt_fild07,225,110,5,5 monster Black Mushroom 1084,3,360000,180000
//==================================================
// prt_fild08 - Prontera Field
//==================================================
prt_fild08,0,0 monster Poring 1002,110,5000
prt_fild08,0,0 monster Lunatic 1063,110,5000
prt_fild08,0,0 monster Fabre 1007,88,5000
prt_fild08,0,0 monster Little Poring 2398,33,50000
prt_fild08,0,0 monster Pupa 1008,66,5000
//==================================================
// prt_fild08 - Duplicates
//==================================================
prt_fild08a,0,0 monster Poring 1002,110,5000
prt_fild08a,0,0 monster Lunatic 1063,110,5000
prt_fild08a,0,0 monster Fabre 1007,88,5000
prt_fild08a,0,0 monster Little Poring 2398,33,50000
prt_fild08a,0,0 monster Pupa 1008,66,5000
prt_fild08b,0,0 monster Poring 1002,110,5000
prt_fild08b,0,0 monster Lunatic 1063,110,5000
prt_fild08b,0,0 monster Fabre 1007,88,5000
prt_fild08b,0,0 monster Little Poring 2398,33,50000
prt_fild08b,0,0 monster Pupa 1008,66,5000
prt_fild08c,0,0 monster Poring 1002,110,5000
prt_fild08c,0,0 monster Lunatic 1063,110,5000
prt_fild08c,0,0 monster Fabre 1007,88,5000
prt_fild08c,0,0 monster Little Poring 2398,33,50000
prt_fild08c,0,0 monster Pupa 1008,66,5000
prt_fild08d,0,0 monster Poring 1002,110,5000
prt_fild08d,0,0 monster Lunatic 1063,110,5000
prt_fild08d,0,0 monster Fabre 1007,88,5000
prt_fild08d,0,0 monster Little Poring 2398,33,50000
prt_fild08d,0,0 monster Pupa 1008,66,5000
prt_fild08,0,0 monster Poring 1002,20,5000
prt_fild08,0,0 monster Lunatic 1063,20,5000
prt_fild08,0,0 monster Fabre 1007,10,5000
prt_fild08,305,233,10,10 monster Poring 1002,2,15000
prt_fild08,305,233,10,10 monster Lunatic 1063,2,15000
prt_fild08,305,233,10,10 monster Fabre 1007,2,15000
prt_fild08,271,249,20,20 monster Poring 1002,5,15000
prt_fild08,271,249,20,20 monster Lunatic 1063,5,15000
prt_fild08,271,249,20,20 monster Fabre 1007,5,15000
prt_fild08,94,335,50,50 monster Poring 1002,20,10000
prt_fild08,166,334,50,50 monster Poring 1002,20,10000
prt_fild08,253,337,50,50 monster Poring 1002,20,10000
prt_fild08,228,230,30,30 monster Lunatic 1063,10,10000
prt_fild08,246,263,50,50 monster Lunatic 1063,10,10000
prt_fild08,190,237,50,50 monster Lunatic 1063,10,10000
prt_fild08,100,256,50,50 monster Lunatic 1063,10,10000
prt_fild08,70,164,70,70 monster Fabre 1007,20,10000
prt_fild08,144,147,70,70 monster Fabre 1007,20,10000
prt_fild08,263,79,90,90 monster Fabre 1007,20,10000
prt_fild08,336,113,40,40 monster Pupa 1008,20,10000
prt_fild08,330,269,40,40 monster Little Poring 2398,20,10000
//==================================================
// prt_fild09 - Prontera Field

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