This is required for features like #6640
Added COLOR_LIGHT_YELLOW
Cleaned up color definitions, its useless to store them as string first.
Dynamic NPCs will stay when you switch map and come back in time.
Dynamic NPCs will be removed instantly when you log out.
You can only create one dynamic NPC at a time.
Thanks to @Atemo!
* Adds the official client macro detection system.
* Includes the ability to load imagery at server boot.
* See doc/captcha_db.txt for more information!
Thanks to @Asheraf and @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Fixes#7256.
* Adds battle config guild_skill_relog_type to allow the ability to save Guild Skill cooldowns on relog or reset them.
* Adjusts the check to account for any new Guild Skills.
Thanks to @Xypr0 and @Lemongrass3110!
* Fixes#5906.
* Player skills and items that have the ability to break a target's equipment will no longer "break" a non-player's equipment.
* WS_MELTDOWN (Shattering Strike) is able to bypass the non-player check as it does affect all target types.
* Adds a battle config to toggle the behavior.
Thanks to @Tydus1, @Xelliekins, @Atemo, @Daegaladh, and @Lemongrass3110!
- Fixes#6647 (b)
- Related to #1140
- Follow-up to ce4aed2
- Re-implemented Grand Cross / Grand Darkness
- Both skills can hit up to 4 times
- Each cell of both skills will stop dealing damage if it dealt damage at least 3 times
- The interval is now fixed to 300ms regardless of how many targets are on a single cell
- Fixes#6884
- Updated skill ranges of NPC and Homunculus skills to their official values
- Implemented the official skill selection mechanic where when a mob picks a skill but can't cast it due to range, it will not check for any skills below
- Added a configuration to reset this to the previous behavior
- Fixes#6899
- Monsters will now always walk to the end of their chase path before checking for their target again (you can still change this by changing monster_chase_refresh in monster.conf)
- A monster's chase range is now exactly as defined in mob_db.yml except when it was just attacked
- A just-attacked monster's chase range is now only enhanced until it reaches its original target cell
- Ranged monsters will now always stop when their target is in attack range, even if they still have attack delay
- Fixed a small math error when calculating chase path
- When a monster loses its target, it will now always spread to an empty cell when it was chasing something and reaches the end of its chase path, but will no longer spread when it was already attacking the target that disappeared (it will still spread if you set the custom mob_ai setting for this)
- Fixed monsters not starting to chase a target while they are randomly walking
Thanks to @aleos89 for support.
* Removes the initialization of Status Changes via hard-code and puts it into YAML form.
* From this database it is much easier to delegate icons, calc flags, opt flags, miscellaneous flags, and several other things for all stats changes.
* Statuses can quickly be reloaded via atcommand reloadstatus.
Thanks to @cydh, @Atemo, @Lemongrass3110, and the others who helped!
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
Co-authored-by: atemo <capucrath@gmail.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Split pre-re/re setting
** Changing of equipment while interacting with NPCs is allowed on pre-renewal by default
** Changing of equipment while interacting with NPCs is not allowed on renewal by default
* Added a message when the player tries to change the equipment while talking to npc
Fixed#6566
Thanks to @aleos89, @Lemongrass3110 and @Balferian !
Added some missing checks for distance to the target monster and if the target monster is hiding.
Fixes#6395
Thanks to @Everade and @mrjnumber1
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Merged Rytech2/4CrAM-Open@978d4fc406
Original author is @Rytech2 and all credits belong to him.
Cleanups by @Lemongrass3110, @aleos89 and @Atemo.
Co-authored-by: Rytech2 <rytech16@gmail.com>
Co-authored-by: aleos <aleos89@users.noreply.github.com>
Co-authored-by: Atemo <capucrath@gmail.com>
* Converts the job_db, job_db2, job_basehpsp_db, job_exp, and job_param_db to YAML.
* Optimizes several places utilizing C++ features.
* Removes 3rd class job data from pre-renewal.
* Adds minimal support for 4th jobs.
* Job level bonus stats now supports multiple bonuses per level as well as an integer for the specific stat instead of only being limited to 1.
* Includes CSV2YAML converter.
Thanks to @Lemongrass3110, @Atemo, @Balferian, @attackjom, @dimasshotta!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Adds the official pillar effect on dropped items depending on how many random options were applied to them.
Thanks to @limitro, @Atemo, and @Lemongrass3110!
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
* Updates various skills following kRO's job improvement patch.
* Change log: https://ro.gnjoy.com/news/notice/View.asp?BBSMode=10001&seq=7275&curpage=2
* Does not include changes to homunculus HP/SP level up bonuses as more information is required.
Thanks to @ecdarreola, @attackjom, @Haydrich, @rye305, @eppc0330, @Badarosk0, and @Lemongrass3110!
Overhaul of the refine database
Added blacksmith blessing to existing NPCs.
Thanks to @Atemo, @aleos89, @cydh and everyone who tested it.
Co-authored-by: Atemo <capucrath@gmail.com>
* Fixed#5570.
* Adds the ability for mercenary to trigger autoloot.
* Adds idle sharing and idle option configs for granular settings.
Thanks to @saya9200's suggestion and @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Removed the ignore_items_gender config.
Fixed some existing items.
Moved some restrictions that were removed on official servers into the import folder.
Fixes#5458
Thanks to @HenryAlvarez12, @aleos89, @Atemo and @Daegaladh
* Fixes#5489.
* Removes the gutterline feature from Bowling Bash in renewal mode.
* Skill will now behave as a normal 5x5 AoE.
* Fixes knockback getting removed during battle calculation.
Thanks to @humanwizzard and @Daegaladh!
* Fixes#4183.
* Adds 3 new guild skills: GD_CHARGESHOUT_FLAG, GD_CHARGESHOUT_BEATING, and GD_EMERGENCY_MOVE
* Changes 5 minute guild global cooldown to be 3 minute individual cooldowns for GD_RESTORE, GD_REGENERATION, GD_BATTLEORDER, GD_EMERGENCYCALL, and GD_ITEMEMERGENCYCALL.
* Reduces GD_RESTORE fixed cast time from 10 seconds to 1.
* Fixes#1061.
* Skills no longer assign 20% of the variable cast to fixed cast.
* Inverts the skill database behavior so that 0 actually means 0 cast time and -1 represents 20% behavior for backwards support.
* Updates documentation.
Thanks to @Tokeiburu!
* Combines item_avail, item_buyingstore, item_delay, item_flag, item_nouse, item_stack, and item_trade databases into one.
* General cleanups and optimizations.
* Includes CSV2YAML conversion tool.
* Includes YAML2SQL conversion tool.
* Adjusts dummy_item from being created by malloc and now creates it by make_shared.
* Item combos are now stored as a STL.
Thanks to @Lemongrass3110, @Atemo, and @cydh!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Fixes#3502.
* Adjusts map_foreachindir to include the caster's cell when calculating area of effect.
* Adds battle config 'skill_eightpath_same_cell' to allow toggling of the effect.
Thanks to @mrjnumber1!
* Fixes#2242.
* When a homunculus is starving (hunger between 0-10) their hunger delay drops from 60 seconds to 20 seconds.
* Added battle configs to allow easy adjustment.
Thanks to @mmalka and @mrjnumber1!
* Added RC_PLAYER_DORAM to differentiate summoner race from monster race RC_BRUTE (similiarly to RC_Player_Human and RC_DemiHuman)
* Replaced PC_Player by RC_Player_Human and added a deprecation notice
* Fixes#5003.
* Adds a battle config to toggle the ability for slaves to teleport back to their master when they are too far away.
* Officially, players can drag slaves away from the master without them teleporting back.
* Determined that slaves don't become completely stuck but rather immobile until a target comes in range again.
Thanks to @poporing and @Daegaladh!
* Fixes#5018.
* Adds support for sharing battle-type Achievements when killing monsters.
* The behavior mimics Quest objectives.
* Adds a battle_config to easily toggle (off by default until confirmed on kRO).
Thanks to @MccloudBR's suggestion!
* Queue data will now be kept available until a Battleground event is over.
* Players can now join an active Battleground.
* Adds a more detailed queue state tracking feature.
* When a battleground is being prepared and not enough players click accept, stop the battleground from beginning.
* When a player logs off or leaves a queue they will now properly be removed from the queue.
* Cleans up MinPlayers and MaxPlayers parsing to not accept values less than 1.
* Resolves players not being able to join an active battleground (up to MaxPlayers) unless someone quit early.
* Adds a team size priority check to avoid adding more players to a larger team.
* Fixes battlechat messages.
* Adds a battle_config to disable the ability for players on maps with MF_NOWARP to join Battlegrounds.
* Adds a new optional ActiveEvent label to the database.
* Fixes a typo in Flavius 2 during unbooking process.
* Cleans up the behavior of the Battle Therapists to use areapercentheal and areawarp.
* Fixes KVM score not properly set on the first Battleground.
* Fixes the global timer checks not ending the main timers on Flavius and Tierra Gorge.
* Added an extra bg_reserve on global timer checks in case someone tries to join the battleground just before it's ended.
* Fixed OnReadyCheck being called on global timer checks, causing the battlegrounds to start when there were no players on the map.
* Fixed a bug on Tierra Gorge where multiple barricade walls could be stacked.
* Fixes Croix also receiving 9 badges when Guillaume wins.
* Adjusts StartDelay default to 0.
* Add a database setting to give the ability to enable or disable joining as an individual, party, or guild.
* Add a database setting to restrict jobs from entering Battlegrounds.
* Better documents script commands bg_reserve and bg_unbook.
* Other fixes and cleanups.
Thanks to @roSBK and @Daegaladh, @admkakaroto, @Artuvazro, and @Atemo!
Co-authored-by: Daegaladh <Daegaladh@users.noreply.github.com>
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
* When reloading the skill_db clear out Abra, Magic Mushroom, and Reading Spell Book databases as well.
* Fixes NC_SHAPESHIFT and NC_REPAIR checking an invalid ItemCost slot based on the old implementation.
* Updated a lot of references to the old skill databases.
* Partial revert of ea8da71.
* Adjusts the battle config for the area size back to 14 cells.
* Adjusts the Bard/Dancer songs to be 15 cells rather than attempting to use AREA_SIZE.
Adds missing checks for Super Novice Expanded, Star Emperor and Soul Reaper.
Enables bodystyles saving by default, since all sprites have been released officially long enough.
Adjusted the mismatching default value for max_body_style.
Fixes#4787
Thanks to @reunite-ro