This makes sure that every possible leftover of any console messages that contained \r are correctly removed when using a category based show message call.
* Fixes#4265.
* Shadow Leap's cast range is now 5-9 in pre-renewal and 6-10 in renewal.
* Shadow Slash is now considered a melee attack.
Thanks to @Indigo000!
The wrong version was given when the database was not the latest version but was still compatible with the parser's minimum version.
Additionally only in cases of full incompatibility the file name was displayed. Added this as well so the file that needs an upgrade is known to the user. This has especially been a problem with empty import databases with outdated header versions.
* Fixes (#5836)
* Multiplier value based on party members count doesn't include the party leader.
Thanks to @Tydus1 and @Indigo000!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
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>
* Fixes#5798.
* Targets will now become affected by Vacuum Extreme when walking through an active area but won't be sucked to the center unless they were standing still upon placement of the skill.
Thanks to @Rayvakarian and @Balferian!
* Fixes#5777.
* Adds a missing case for applying the Lex Divina status.
* Updates the database duration to use the correct values.
Thanks to @rubie123!
* Fixes#5768.
* Bowling Bash will no longer cause Strip Weapon.
* Fixes Brandish Spear not causing Strip Weapon for pre-renewal.
* Brandish Spear will now cause Strip Weapon for 1 second.
* Players who cast Grand Cross will have Strip Shield for 950ms and a walk delay of 1 second.
* Monsters who cast Grand Cross or Grand Darkness will not have any strip effects and a walk delay of 1 second.
Thanks to @mrjnumber1!
* Partial fix for #5766.
* Resolves the interaction between Maya Purple Card and Box of Sunlight.
* Intravision status will now end if a hat with Maya Purple Card is taken off while Box of Sunlight is active.
Thanks to @mrjnumber1!
* Fixes#5804.
* Poison React now has a chance to attack twice, with same rate of Double Attack, when the character has learned Double Attack.
* Number of hit counters is changed to 1/1/2/2/3/3/4/4/5/5.
Thanks to @eppc0330!
* Fixes#5796.
* Fixes a small typo in the documentation for script command makeitem3.
Thanks to @jaBote!
Co-authored-by: Vincent Stumpf <vincents.995@gmail.com>
* Fixes#5793.
* Adjusts the location of Loyalists Hood from Costume Garment to Garment.
* Fixes a small typo in the yaml2sql tool for the location_costume_garment column.
Thanks to @Melk3000!
* Replaced warp "Random",0,0; by itemskill "AL_TELEPORT",1; in the items script functions (#5774)
* Added an exception to bypass the mapflag MF_NOTELEPORT in pc_randomwarp for some script commands
* Fixed#5764
Thanks to @limitro !
All slaves will be killed when the monster database is reloaded.
If a monster does not exist in the database after reloading all spawned monsters of this monster ID will be killed and a warning will be issued.
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
* Corrections of the data of item 590000, 13450, 13481 and 27295
* Corrected the name of ID 22702 ~ 22707
Fixed#5750
Thanks to @Melk3000, @RagnaWay and @Balferian !
* Fixes#5758.
* Removes the skill casting restrictions on no teleport maps for Fatal Menace as the teleport effect is no longer part of the skill.
Thanks to @Badarosk0!
* 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>
* Fixes#5707.
* Fixes Cross Impact and items with bNoKnockback causing a desync in the player's position on the client.
* Cross Impact will now fail when the player is unable to reach the target.
Thanks to @eppc0330 and @Balferian!
Adds the DamageTaken flag which reduces damage done to specific naturally spawning MVP.
Fixes#3324.
Thanks to @admkakaroto, @SonaSonaSona and @Atemo!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Converts labels to camelCase.
* Converts labels to plural where needed.
* Converts Target MobID to use the Sprite name.
* Converts Rewards ItemID to use the Aegis name.
* Dependents now checks for duplicate IDs.
* Dependents now properly supports import methods.
* Added YAMLUpgrade tool to convert previous YAML databases to new format.
* Removes the unique index value for Dependent Achievement ID.
* Adds support for the AG_CHATTING achievement types triggered by script (achievementupdate script command).
* AG_CHATTING map type achievements are still disabled as behavior is unknown.
* AG_HEAR and AG_SEE are now dropped and those achievements have been converted to AG_CHATTING.
* Converts the group constants to how Aegis names them.
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Combines mob_race2 and mob_drop databases into one.
* General cleanups and optimizations.
* Includes CSV2YAML conversion tool.
Thanks to @vstumpf, @lukasrmattos, and @Lemongrass3110!
* Fixes#3259.
* Fixes SP damage bonus for levels 1-4 being too low caused by a rounding issue.
* Gate of Hell is no longer reduced by long range modifiers.
* Fixes the HP/SP damage for statusAtk and masteryAtk to properly apply the NK_IGNOREELEMENT flag when checking target players. This subsequently applies to all skills.
* Adds a new NK flag to remove any hard coded skills that can ignore long range attack modifiers from the caster's side.
Thanks to @Tokeiburu and @exneval!
* Fixes#4524.
* Adds support for the new slimmer Madogear suit.
* Adjusts script command setmadogear to support changing to this type.
* Adjusts atcommand mount to support changing to this type.
* Removes a 3rd class check from setoption for Rangers and Mechanics.
* Removes status_calc_pc call from pc_setoption so that it can be handled via normal status change calculations.
* Adds Mado_Box02 item for Mado Suit.
Thanks to @admkakaroto, @Atemo and @Lemongrass3110!
* Fixes#5651
* Resolves an issue with Golden X potion causing 1 reflect damage even if the target doesn't have any reflect abilities active.
Thanks to @eppc0330!
* Fixes#5702.
* Adds the MVP attribute to Bijou.
* Updates drop data.
Thanks to @mazvi and @Atemo!
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
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
Added a configuration that allows you to delete mails without attachment instantly after the given interval.
Introduced a define for the iteration size of how many mails will be deleted in each circle.
It his highly recommended to not increase it too high or your char server might lag, if you have a lot of mails on your server.
Always delete all mails sent by the server after the given interval in a single statement and ignoring the iteration size.
Added transaction safety for mail deletion. With this a mail and it's attachments will always be safely deleted together.
Fixed a duplication issue, when deletion of the mail would have failed, but the mail was still returned.
Fixed notification of online characters in certain rate circumstances.
* 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#554, fixes#578, and fixes#909.
The right hand attack display should only show bonuses given by weapons and not the STR/DEX bonus.
Thanks to @reigneil, @Paoly28, @panko11, and @limitro!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Only applies if you do not use the status point table.
Additionally replaced the hardcoded value with the one from the configuration.
While at it added a missing else.
Fixes#5634
Thanks to @zeffen
* Fixes a potential crash when adding new maps
* Fixes#5396.
* Fixes a potential crash on start up when adding a map to maps_athena.conf and the map has not yet been added to map_cache.dat.
Thanks to @nubspixel!
* Inverts check
* 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#5409.
* Adjusts the behavior of Advent of Star Emperor spheres to work like Millennium Shield.
* Fixes the spheres not visually being removed when the the status ends.
Thanks to @molavian053!
* Add dockerised local development environment
* Enable tini (--init) for server container
See https://docs.docker.com/compose/compose-file/#init for details
* Add local development environment documentation
* Add a tip for how-to connect a client on the same machine
* Add specialized tools/docker folder
Co-authored-by: Eric <latiosworks@gmail.com>
Correctly removing the state tracking of fake NPC usage in case the player was detached before the script ended.
Fixes#5379
Thanks to @blipblopblip and @Patotron
* Cleanup of some minor skill db issues.
* Fixes CastCancel documentation to describe default as false.
Thanks to @Tokeiburu!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* 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!
* Fixes#965.
* Fixes several skills getting their elemental damage recalculated several times resulting in extra damage.
Thanks to @exneval, @julia40124009, and @RagnarokNova!
* Fixes#3084.
* Creating random option groups now further reflects official behavior.
* Group bonuses can now be created without having to create multiple permutations of the same group.
* Specific slot options can now be defined which guarantee a bonus.
* Non-guaranteed options can now be defined along with a maximum amount.
* Random option value can now be defined as a range instead of a static value.
* Adds conversion of official random option groups.
* Includes CSV2YAML conversion tool.
Thanks to @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Since Doram's are 16 and MAPID_ALL was defined with only the first 16 bits were covered by 0xFFFF, the job restriction failed if Summoner was not explicitly allowed.
Fixes#5516
Thanks to @kaninhot004
Fixes#5510.
Resolves an issue with nodeExists not checking for null nodes resulting in parsing false-positives.
Further cleanup to the item DB SQL node parsing to allow some extra options to be toggle-able.
Default stacking options to false if not defined.
Thanks to @mplaten and @Lemongrass3110!
Fixes a couple issues with the column checking.
Adds verification to table columns to make sure table format is correct.
Cleans up the node processing.
Adds a loading progress status.
Adjusts the SQL import files to not destroy previously imported data.
Updated README.md to reflect the changes for SQL importing.
Fixes#5485Fixes#5477
Thanks to @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Only report duplicate Aegisname, if it is not the same item.
When buy and sell price caused a possible zeny exploit the whole YAML node will be reported, since it could be from import and either Buy or Sell might not exist.
* 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#5395.
* Fixes Overheat not properly accounting for the Mechanic during battle calculations.
* Minor cleanups and improvements.
Thanks to @LotusRO!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Resolves an issue with damage not being passed back to the parent function after it has been reduced by various statuses or skills.
Thanks to @teededung!
Moved changes from the Hercules file to rAthena's intermediate layer where possible.
Updated to the latest Hercules definitions.
Added missing packed attributes.
* Fixes#5401.
* Minor optimizations to core skill behavior.
* Adjusts the status timer to be stored in val4.
* Impose a unit lock before doing status damage.
* Check for status state before attempting to reapply the status timer.
Thanks to @LotusRO!
* Fixes#5413.
* Fixes an issue where achievements that check for specific base/job level events don't get triggered if battle_config.multi_level_up is enabled.
Thanks to @saya9200!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Update and correction in item_db and item_combo_db
Thanks to Edward Luciano # 1568
Thanks to 🅺🅸🅽🅶🅰🆁🆃🅴🆁 # 4210
Co-Authored-By: crazyarashi <meganekiho@gmail.com>
This reverts commit b51a87146f.
*This caused an exploit also present in the official pre-re script. NPC dialog suggests it was never intended to reenter this instance after players leaver or die.
* Follow up to 0d81697.
* Added a separate check for Mado Gear and blocking Merchant/Blacksmith/Whitesmith specific statuses.
* Harmonized the statuses with the new allowed skill list.
Thanks to @slyx88!
* Added more information in the doc about waitingroom2bg_single and bg_join commands
* Added MF_BATTLEGROUND mapflag check in waitingroom2bg_single and bg_join to prevent the player to join a bg when the battle map is not a battleground map
* Updated monsters DB (data from aegis and DP)
* Updated item_db (data from aegis and DP)
* Updated quest_db, thanks to @zackdreaver for the quests names !
* Implemented SC_EP16_2_BUFF_SS, SC_EP16_2_BUFF_SC, SC_EP16_2_BUFF_AC buff, thanks to @aleos89 !
** Not removed on change map
** Not removed on log out
** Not removed by dispell/clearance/Vanishing Buster
** Removed on death
* SQL synchronisation
Thanks to @Badarosk0, @attackjom, @admkakaroto, @JohnnyPlayy, @Angelic234, @teededung for the reviews/contributions !
* Adds the Advanced Potion Merchant who sells the Red, Yellow, White, and Blue Syrups for Concentrated Red Syrup Potion, Concentrated Blue Syrup Potion, and Concentrated Golden Syrup Potion creation.
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
* Fixes#5354.
* Fixes invalid or wrong timers getting deleted from skill_keep_using when using a second time.
* Adds skill casting checks to prevent timers from being created if the player can't cast the skill to begin with.
Thanks to @Masao87 and @admkakaroto!
* Fixes a potential crash with the mail system
* Fixes#5298.
* Resolves a potential crash with the mail system if someone is modifying packets.
* Adds an extra item verification check.
Thanks to @blipblopblip!
* Fixes#3503.
* Adjusts weight damage modifier 7%.
* Adjusts size damage modifier for small targets to 115%.
* Adjusts size damage modifier for large targets to 85%.
* Adjusts size damage modifier to only apply for players.
Thanks to @mrjnumber1!
* Fixes#5330.
* Lowers the job level from 70 to 60.
* Includes SQL file to revert any characters that may have gone beyond job level 60.
Thanks to @mazvi, @attackjom, and @Balferian!
* Fixes the Concentrated Red, Blue, and Golden Syrup Potions to only require 5 Empty Potion Bottles instead of 10.
* Fixes Golden X to return 1 damage instead of 0 on reflect.
Thanks to @Badarosk0 and Sigma!
* 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!
* updates 15.1 using aegis files
- Police quests
- Wandering Bard Quest
- gm npc
- added doom Prayers spawn event on verus04
- Corrected To Phantasmagorika! quest
- Corrected Vestige quest
- Added Reward Coordinator and Contribution Certificate Vending Machine npcs (the daily quests coming with them are officially disabled but the rewards npcs remain)
- Added the missing kafra on verus04
- Corrected the main quest
* updates 15.2
- Corrected misc npcs
- Corrected Krotzel's Request quest
- Corrected memory quest
* Corrected the item DB and quest DB
Added a sql file to replace the old player variables
* Fixes#5312.
* Fixes general item production skills not consuming catalyst items with high IDs.
* Adjusts item searching functions to use t_itemid instead of uint32.
* Adjusts script command makeitem2 to use t_itemid isntead of uint32.
* Fixes output and lookups for atcommands idsearch, autolootitem, iteminfo, whodrops, makeegg, and itemlist.
* Fixes signed vs unsigned checks.
* Fixes MVP logging.
* Fixes item drop ratio storage.
* Fixes CSV2YAML conversion checks.
Thanks to @idk-whoami and @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Fixes#5288.
* Follow up to 1c6270f.
* Changes NPC that have waiting rooms to not be disabled, but be hidden.
Thanks to @Forte22!
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
* Fixes#1679 and fixes#3176.
* Converts the skill to a unit-based skill.
* Damage is now properly calculated based on the caster's ATK.
* Damage is considered magic with the element forced to Neutral.
* Now ignores target's DEF and Land Protector.
* Kaupe and Tumbling now can avoid the first attack only.
* Removed old bits of the skill.
Thanks to @poporing, @mrjnumber1, @Daegaladh, @malufett, and @exneval!
* Fixes#5061.
* Resolves the client crashing when attempting to retrieve all attachments from mail.
* Mail should not be marked as read after retrieving the attachments from them.
* Converts packets to new struct format.
Thanks to @admkakaroto and @attackjom!
* "+x% magic damage reduction from enemy with defense element e"
* Corrected random option script: RDMOPT_MDAMAGE_PROPERTY_element_USER
* Fixes#1706: Fire Golem Card (27029)
* Corrected Books of Apocalypse (1557) script
* Applied bMagicSubDefEle bonus to some items
* Fixes#1893.
* Implements NPC_HELLBURNING skill for Horror Toy Factory Instance.
* Enables NPC_HELLBURNING for HIDDEN_MOB7.
Thanks to @Atemo and @exneval!
* Fixes#2156.
* Adjusts the two script commands to take into account the type of skill being used.
* Adjusts documentation to reflect.
* Verify skill and skill level.
Thanks to @Yuchinin and @Lemongrass3110!
Resolves some remaining issues with NPC secure timeout.
Fixed scripts freezing on close
Idle timer is reseted on closing
Fixed npc_idle_tick being set again on closing
Co-authored-by: Daegaladh <daegaladh@shadowgames.es>
* 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!
* Fixes#2671.
* Restructured battle_calc_damage to utilize battle_status_block_damage for statuses that block damage.
* Renewal Safety Wall has a hit count tracker, same as pre-renewal.
* Updated renewal Safety Wall HP formula.
* Safety Wall will now check for Land Protector before attempting to consume a Blue Gemstone.
* Moves Kyrie and other similar type status changes that may or may not block damage to the top of the list of priority.
* Adds a short delay to Parrying for the next attack when damage is successfully blocked.
* Fixes Millennium Shields remaining shields getting destroyed when damage was over 1000.
* Fixes Millennium Shields disappearing on map change.
Thanks to @Paoly28 and @mrjnumber1, @cydh, @ecdarreola, @InusualZ, and @Badarosk0!
* Fixes#5248.
* Commented out LUK bonus.
* Now reduces variable cast time by 30%.
* ASPD and cast reduction bonus now lasts for 5 seconds.
Thanks to @llchrisll!
* Updates EXP table to 200/70
* Always store exp as uint64 no matter the client date.
* Adjusts guild exp to uint64.
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Fixes#3622 and fixes#5220.
* Monsters now properly escape from the attacker.
* NPC_RUN should determine distance based on skill level > 1.
* Resolves Sphere Mine when summoned by an Alchemist not escaping.
Thanks to @Balferian, @Indigo000, and @Daegaladh!
* Players are no longer detached from the script.
* Players can't walk, attack, use items, or use skills while progress bar is active.
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
* Fixes#4529.
* Adds support for applying groups and titles to non-player objects.
* Expands script command setunitdata and getunitdata to support group ID.
* Adds script commands setunittitle and getunittitle.
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Fixes#5032.
* Soul Reaper souls will now persist relogs.
* Removed the soul_timer as the timer data is stored to the status change.
Thanks to @laziem and @Tokeiburu!
* Fixes#3268.
* Adds more safety checks for possible nullptr skill_unit_group data.
* Adjusts order of failure checks to speed up operations.
Thanks to @uddevil and @ecdarreola!
* Fixes#5110.
* Fixes a potential map server crash when non-player objects attempt to use Chain Lightning, Tetra Vortex, or Flash Combo and are kill during duration.
Thanks to @Hope8888!
* Added support to trigger 'OnTouch'/'OnTouch_' npc label when a npc is moving through npcwalkto script command.
* Fixed#502
Thanks to @aleos89, @wbgneto !
* 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
* The cards with specific 'compound on accessory side' can now only be inserted on accessory equipment using the same side.
* Fixed#4977
Thanks to @attackjom
Corrected MM_SARAH monster mode (added MD_MVP and MD_STATUS_IMMUNE to the mode)
Changed warpparty to mapwarp command in the instance script for now
Fixed#4323Fixed#5098
Thanks to @Badarosk0 and @Everade
* Adds support for instance destruction button
* Adds an extra parameter in the instance database to toggle if an instance is destroy-able or not.
* Adds support for being notified about character and Clan instances on login.
* Fixes an issue with the instance window displaying wrong instance information on an instance map when multiples instances were running for the character.
Co-authored-by: atemo <capucrath@gmail.com>
* 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!
* Fixes#4987.
* Ensemble skills apply SC_ENSEMBLEFATIGUE which should disable skill casting and reduces movement speed/ASPD by 30%.
* Applies SC_ENSEMBLEFATIGUE to both the caster and partner.
Thanks to @LordWhiplash!
* Fixes#4930.
* Fixes Mix Cooking quantity calculation to be based off the difference of the good and bad stat.
* Fixes Mix Cooking failure to create a random amount of failure material that's independent of the initial quantity calculation.
* Fixes Create Bomb to behave similar to Mix Cooking without the failure materials.
* Fixes Special Pharmacy quantity calculation to be based off of the difference of the good and bad stat along with a base quantity depending on the level used.
Thanks to @mrjnumber1 and @SeravySensei!
* Skill is no longer a unit skill but a status.
* Adjusts the attack rate timer to official.
* Skill does not proc cards.
* Skill does not reflect damage.
Thanks to @Tokeiburu, @ecdarreola, and @attackjom!
* Fixes#5065.
* Removes Blue Gemstone cost.
* No longer has a lingering hitbox.
* Deals full damage as one bundle of hits instead of pulsing individual hits.
* Can overlap with itself.
Thanks to @flamefury!
* Animations for Angelus, Impositio Manus, Suffragium, Magnificat, and Gloria no longer play for party members who are within skill range but outside of visible viewing range.
* Fixes AoE size of Magnificat and Impositio Manus.
* Fixes SP consumption of Impositio Manus.
* Fixes the splash range for Angelus and Gloria.
Thanks to @flamefury!
* Fixed an issue when several characters with the same ip are in the same guild and ip check is enabled, the character offline could receive the reward instead of the character online
Fixed#4833
Thanks to @mazvi !
* Initial implementation of the costume exchange NPC in malangdo
* Initial implementation of the costume enchant npc 'Aver De Dosh'
* Initial implementation of the costume enchant npc 'Lace La Zard'
* Added the groups box IG_Enchant_Stone_Box (number 5 to 15)
* Updated the aegis item name of the costumes
* Corrected the equipment location of some costumes
Thanks to @RagnaWay, @peney7 and @teededung for the review !
* Centralized the Summoner Power skill tree checks into one function.
* Fixes a couple passive skill bonuses not being recalculated when reaching 20 investment points.
Thanks to @exneval and @Balferian!
* Fixes#4801.
* Fixes Bard and Dancer not gaining the opposite class's skills.
* Cleans up check to not be reliant on sketchy index checks.
Thanks to @ihernandeza, @gidzdlcrz, and @Lemongrass3110!
Fixes#4646
Switches AppVeyor build worker image to Visual Studio 2015.
Fixed a bug with serv.bat, since crashes would result in a negative number sometimes, the crash would not be detected and would not be reported.
Thanks to @aleos89
Adds an upgrade script to change all existing entries to the respective gender in their account.
Cleanup of a few strange design decisions in the character server code.
Removed SEX_ACCOUNT.
Thanks to @Daegaladh for his help.
Slaves sometimes ended up with weird status calculations or insane speed, because their status got recalculated before their master and this way their speed could not be copied from the master.
Thanks to @Daegaladh
* Fixes#5005.
* Whikebain's Black Tail should not apply curse.
Thanks to @reunite-ro and @LordWhiplash!
Co-authored-by: LordWhiplash <LordWhiplash@users.noreply.github.com>
* Follow up to b6b6b13.
* Fixes#4941.
* Fixes cases of monsters getting stuck when they lose sight of their target item that is looted by another monster.
Thanks to @iraciz and @SeravySensei!
* Follow up to bfb6972.
* Adds a new return array for script command inventorylist: `@inventorylist_tradable`
* Adjusts script command countitem to not count rental items.
* 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>
* Fixes SU_POWEROFSEA max HP and max SP bonus when investing more than 20 skill points.
* Fixes SU_SPIRITOFLAND and SU_CN_POWDERING combo's perfect dodge bonus.
Thanks to @LordWhiplash, @qwerty7vp, and @Balferian!
* Fixes#4864.
* Adjusts damage formula to official.
* Adjusts damage type from Misc to Magic.
* Skill now has a 50% success chance to damage the target.
* Removes Flee and Defense Card ignore flags.
Thanks to @Masao87 and @mrjnumber1!
* Fixes#4964.
* Fixes Blood Sucker not being able to be recast on another map if caster dies while active.
* Minor cleanups and added safety checks.
Thanks to @Everade!
* Fixes#4953.
* Remove Summoner Hide when changing maps to avoid equipment from being stripped due to the inability to change equipment while the status is active.
Thanks to @Everade!
* 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.
* Fixes#4915.
* Fixes instance map names when it reaches 1000.
* Fixes instances with more than 8 character crashing the client.
* Other minor cleanups.
Thanks to @voyfmyuh and @Atemo!
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
* Fixes Acid Demonstration to use the target's VIT and not casters.
* Fixes Fire Expansion - Acid to behave like Acid Demonstration.
* Fixes Crazy Weed not doing 2 damage attacks.
* Crazy Weed is now a long ranged physical attack.
* Adjusts Hell's Plant behavior to no longer be removed on map change.
* Adds missing status icon for Hell's Plant.
* Fixes Hell's Plant attack formula when learning Summon Flora.
* Hell's Plant now uses the caster's weapon as the element.
* Hell's Plant no longer ignores the target's DEF and Element.
* Fixes Hell's Plant removing Thorns Trap.
* Removes fixed cast time from Xeno Slasher.
* Adds new Genetic Pharmacy potions (items are disabled until int32 item ID support).
* Fixes Spore Explosion's splash attack doing the same damage as the initial.
Thanks to @teededung, @Badarosk0, @cahya1992, and @OptimusM!
* Adds skill placeholder for Super Novice Expanded in the pre-renewal skill database.
* Prevents undefined skill errors for pc_checkskill.
Thanks to @gidzdlcrz!
* Fixes#4856.
* Follow up to d1f8c8c and 652d77e.
* A missing break from an old commit along with a refactor in code resulted in a "valid" fall through and breaking status change timers.
* Also fixes a potential crash with Book of Creating Star.
Thanks to @OptimusM, @technoken, @sader1992, @mazvi, and @akiyamamio16 for helping debug!
* Fixes#4808.
* Weapon Crush now uses SC_WEAPONBLOCK_ON to track the target instead of SC_COMBO.
* Also fixes Quick Draw Shot target selection.
* Quick Draw Shot and Weapon Blocking should be considered a combo and not end physical attacks when casting them.
* SC_QD_SHOT_READY will no longer become active if the player has 193+ ASPD.
* SC_QD_SHOT_READY will now end once Quick Draw Shot has been casted.
* Cleans up skill_check_condition_sc_required and removes duplicate code.
Thanks to @wdivet, @LordWhiplash, and @ecdarreola!
* Fixes#4802.
* Adds back AB_EUCHARISTICA, GN_SLINGITEM, and GN_MAKEBOMB.
* Adds back CR_CULTIVATION for renewal.
* Skills are disabled in the skill tree database but gives easy ability to re-enable.
* Fixes an issue with pre-renewal produce database spitting errors when using any production-type skills.
Thanks to @trinitynetworks!
Corrected the following combos
* Shackles + Prisoner's Uniform
* All of Vesper + Memory of Lovers
* Sprint Glove + Sprint Mail + Sprint Shoes + Sprint Ring
Thanks to Jumbo
* Fixes#4812.
* This script event can be replaced with the other various player script events.
* The trigger during equipment changing causes headache across other calculation events in source.
* Removes target SP consumption based on damage dealt by Tiger Cannon.
* This effect was removed in #4256 but accidentally merged back in through #3659.
Thanks to @Badarosk0!
Added missing status change cancel condition, when the player has reached the maximum amount of soul spheres.
Fixed duration display on the client.
Some cleanup of duplicate code.
Thanks to @aleos89
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
* Adds Star Emperor and Soul Reaper restriction in WoE:TE
* Adds Rebellion, Summoner, Star Emperor, and Soul Reaper statuses to the status_disabled database.
Thanks to @reunite-ro!
* Fixes#4770.
* Adds back missing case for pre-renewal damage calculation.
* Adds back long ranged check for Neutral Barrier in pre-renewal.
Thanks to @danieljorge17!
Walking NPCs are not supported on official servers.
Therefore we have to respawn the NPC units as player units before they start walking.
After they stop walking we respawn them as NPC units again so that they show the bubbles for talking to them again.
Since player sprites have a small aura during spawning hardcoded in the client, this aura will be shown each time they begin walking now.
Fixes#4505
Thanks to @RagnaWay and @aleos89
* Fixes#3087 and fixes#3095.
* Converts database file to YAML.
* Converts static array to unordered_map which frees up pre-allocated memory that may never be fully used.
* Got rid of all DBMap/ERS features.
* Removes MAX_INSTANCE_DATA in favor of INT_MAX.
* Includes TXT converter.
Thanks to @Lemongrass3110, @secretdataz, @Atemo, @lighta, @InusualZ, @Angelic234, @Normynator, @cydh, and @ecdarreola!
* Fixes#4743.
* Resolves an issue with power skills and default data defined in the skill's array.
* Adds back linear determination and documentation for it.
* Adds a check in the converter to not print out values of 0 for levels 6 and higher for skill unit layout and skill unit range.
* Removes these values from the skill database.
Thanks to @Surefirer and @teededung!
* Changes TimeLimit format to be human readable.
* Converts title to string.
* Converts objectives and drop items to vectors.
* General clean ups and optimizations.
* Got rid of dummy_quest.
* Added TXT to YAML converter.
Thanks to @Atemo and @Normynator!
Co-authored-by: atemo <capucrath@gmail.com>
* Fixed a bug where the player can't finish the quest if the NPC times out after obtaining the weapon.
*Fixed savepoints for pre-renewal.
*Thanks to @Tydus1
Disabled by default - as on official servers.
Gives a better warning if it is turned on and client side password encryption is enabled and the account cannot be created because of this.
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
1) global_acc_reg_num_table and global_acc_reg_str_table are used in the login server only and their configuration and access is not shared with any other component.
2) The character server does not check for global_acc_reg_str_table and global_acc_reg_str_table, but for acc_reg_str_table and acc_reg_str_table.
* Fixes#4707.
* Follow up to ea8da71.
* Skill now applies long range damage.
* Skill now does 3 hits.
* Target's placement in the AoE does not affect damage; it's all the same for each target.
* Updates strength bonus.
* Reverts Mercenary Brandish Spear to pre-renewal effects.
Thanks to @violent01 and @mrjnumber1!
* Initial implementation of these two classes skills.
* Includes kRO balancing patch: http://ro.gnjoy.com/news/devnote/View.asp?category=1&seq=3921697
Thanks to @Rytech2, @Mateuus, @nubspixel, @exneval, @idamonli, @hotspicy945, @admkakaroto, @cahya1992 and @RagnaWay!
* Fixes#4702.
* Skill no longer ignores the target's flee.
* Skill now deals 2 hit when using dagger instead of doubling the damage.
Thanks to @yashimwong!
* Fixed some part in nightmare Biolab scripts
* Updated the normal monsters death count to spawn the 'mini-boss' (100 -> 110) and 'mini-boss' death count to spawn the mvp (10 -> 4)
Adds config for Land Protector Behavior
* This battle config option adds the ability to change Land Protector to the old behavior.
* Related to #1404 and #4412.
* Thanks to @Cydh for the initial release. Thanks to @Tydus1 for the pull request!
* The player can interact with a NPC cloaked by cloakonnpc command (click, mob event..) but the NPC trigger area is disabled (= the OnTouch* part is disabled).
* The changes last until the player leaves the map, logs out, or the npc option is updated by disablenpc/enablenpc/hideonnpc/hideoffnpc/cloakonnpc/cloakoffnpc commands.
Thanks to @aleos89
* Part of #3074.
* Adds script command unadopt and atcommand unadopt to allow babies to leave their parents.
* Includes an independence flag which converts the baby to a normal class.
* Adds support for any class base level 50 or less to be adopted (in renewal mode).
* Fixes#4660.
* Resolves an issue with skill database reloading not clearing the previous data first.
* While clearing the YAML cache it will also resize the cache to the previous capacity.
Thanks to @teededung!
* Fixes#4574.
* Removes the usage of atoi as any failure returns 0.
* Adds checks for cases of invalid data.
* General cleanups and fixes.
* Fixes the import database documentation.
Thanks to @Skormie!
* Updated Hero Token Exchanger npc to match official npc
* Updated Dimensional Travel Quest to match official script
* Dimensional Travel Quest now uses the official variable for future reference and to fill the missing sequence
* Moved the npcs from dimensional travel quest to separate custom npcs from official conversion of npcs
* Added official system to spawn the mini-boss on moro_vol map
* Added Flaming Basin and Doom Prayers quests
* Updated the aegis name and english name of the items from moro_vol map
* Fixed hardcoded castle count
* Adjusted to new header format and added changelog
* Fixed rewards for multiple characters in a guild
* Fixed#4619
* Fixed#4636
Thanks to @mazvi
* Cleans up Summoner dual-cast attacks Bite, Silvervine Stem Spear, Scar of Tarou, and Picky Peck so that they behave like Professor's Double Casting.
* Adjusts success formula.
Thanks to @Rytech2!
* Fixes#4656.
* Adds an atcommand option for reloading the attendance database.
* Adds missing headers for attendance database.
* Adds missing reload options in the atcommand configuration.
Thanks to @lelouch22's suggestion!
* Fixes#4644.
* Initialize all battleground queues at startup to reduce overhead of creation/deletion during live server.
* Removes lots of duplicate code between team checks.
* Adds missing checks for script commands bg_leave and bg_desert to only warp players out using the Battleground Queue System.
* Adds documentation for script commands bg_leave and bg_desert to state players will be warped out after when using the Battleground Queue System.
* Optimizes join logic to add new players to the end of the queue rather than the front.
* Cleans up the client messages so certain responses are cleared when they need to be.
Thanks to @Balferian and @Lemongrass3110!
* Fixes#1310.
* Added a battle config which allows toggling of the Battleground Queue client feature and also toggles between the modes of scripts.
* Added script commands bg_reserve, bg_unbook, and bg_desert.
* Removed old custom Battleground scripts.
Thanks to @Lemongrass3110, @Locien, @secretdataz, @InusualZ, @Normynator, @Atemo, @iubantot, @admkakaroto, and @noobzter003!
* Added refine and bound option for mail script command.
* Made some slight corrections to the script_commands document.
* Note: Any custom scripts that use this command and give some sort of card or random option bonus need to be adjusted as refine and bound come before these options now.
Thanks to @Skormie!
Co-authored-by: Daegaladh <Daegaladh@users.noreply.github.com>
* Updates Poison Herb, Rune Stone, and Point Merchants to a simple shop that doesn’t give discounts.
Thanks to @JohnnyPlayy!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Little simplification of the code
* Extends the target type for flag 2 to match the docs (target applicable for player, monster, pet, homunculus)
Thanks to @Lemongrass3110
* Fixes an issue with knockback converting the wrong column.
* Fixes an issue with skills containing multiple elements converting the wrong column.
Thanks to @mazvi and @Lemongrass3110!
* Fixes#4589.
* Resolves an issue with the skill converter outputting the incorrect ammo type requirement.
* Also fixes an issue with physically attacking targets while having a status option active.
Thanks to @mazvi!
* Combines skill_cast_db, skill_castnodex_db, skill_copyable_db, skill_nonearnpc_db, skill_require_db, and skill_unit_db into skill_db.
* Introduces a cached YAML class for quicker lookups.
* General cleanups and optimizations.
* Includes CSV2YAML conversion tool.
Thanks to @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Fixes#1927
If aplayer is under devotion and gets attacked he will remain sitting server side, while standing up client side. This will result in the player not being able to move anymore, until he sat down/stood up again.
Since this is the real behavior on AEGIS we added a configuration for the fix, which will be enabled by default, since we think this is broken behavior. You can always turn it off in case you want to mimic official behavior.
Additionally fixed the devoting player as well:
The devoting player should also stand up when the devoted player is hit.
If the player is missed or he lucky dodges and no damage is dealt, no damage packet should be sent to the devoter.
Additionally fixed that the devoter did not use the waving damage animation, because the amotion and dmotion values were not sent.
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Fixes#4350.
* Resolved Expanded Baby classes parameter cap defaulting to the upper class.
* Fixes baby parameters for Summoners as well.
* Removed redundant baby checks due to correct order now.
Thanks to @bgamez23!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Adjusted script command announce to accept charID
* Fixes#3901.
* Script command announce will now accept a character ID to display locally.
Thanks to @sader1992!
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Follow up to 2732176.
* Fixes#4150.
* Removed an extra status calculation for players resulting in some status data being nullified.
* Adjusted status calculation for autobonus and unequipping items.
* Cleaned up delayed damage logic.
Thanks to @cydh, @Hatfun, and @NeutralDev!
Added support for signed 64 bit integer value computation into the script engine.
This is required because newer official features require support for bigger numbers inside the scripts.
This also cleans up a lot of messy code and fixes a few issues like script stack corruptions.
Thanks to @aleos89 and everyone who supported me with this.
* Adjusted documentation to match standard.
* Removed double quote from Table as there are no special characters used for these.
* Added license to import file.
* Added conf options to enable/disable monsters using idle skills and move when there's no players nearby.
Thanks to @aleos89
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Expanded Job_Baby_Rune -> Job_Baby_Rune_Knight, Job_Baby_Bishop -> Job_Baby_Arch_Bishop, Job_Baby_Cross -> Job_Baby_Guillotine_Cross, Job_Baby_Guard -> Job_Baby_Royal_Guard, and Job_Baby_Chaser -> Job_Baby_Shadow_Chaser.
* Expanded related MAPID/EAJ constants as well.
* Added deprecation notice for old constants.
* Updated database and NPC scripts to use new constants.
* Fixes#4495.
* Adjusted the monster sprite lookup to ignore any restrictions based on monster data.
Thanks to @sader1992!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Fixes#2497.
* Vacuum Extreme will now pull players into the center.
* Vacuum Extreme should only pull in players that stop within it's AoE.
* It will now ignore "no knockback" bonuses players have.
Thanks to @esu1214, @cydh and @exneval!
* Fixes#4289.
* Updated script commands setunitdata and getunitdata to support the modification of NPC view data.
* Converted mob_avail database to YAML.
Thanks to @Lemongrass3110, @4144, @exneval, @Balferian, @cahya1992 and @teededung!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Added primary key to tables that lack them
* Dropped table sstatus
* Changed some primary keys and dropped no longer needed indexes
* Indent upgrade file with spaces
[ci skip]
* Fixed upgrade query on bonus_script table
* Renamed to current date
* Added missing table to engine conversion script
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Merges atcommand_athena.conf and help.txt into a single file.
Removed some leftover settings that were removed before.
Removed CLI support for modifying the atcommand configuration file.
Moved atcommand and charcommand symbol definition into conf/battle/gm.conf
Removed some messages that are not needed anymore
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Added some missing portals to yuno and lighthalzen.
Thanks to @Daegaladh for confirming it on ASB 5.5
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Fixed an issue with random calculation on abra in some cases.
Moved some commonly used functions into util and yaml database for global usage.
Thanks to @Daegaladh and @aleos89
* Processing performance increases by an order of magnitudes.
* Generalized the path vector names to be used for future conversion functions.
* Fixed new lines.
* Added header templates.
Thanks to @Lemongrass3110!
* `bonus bVariableCast,t;` now works in pre-renewal to increase casting time
* `bonus2 bSkillVariableCast,sk,t;` now works in pre-renewal to increase casting time by skill name
* Item bonus documentation update
* Follow up to 24c4c49.
* Gentle Touch - Convert and Gentle Touch - Revitalize should not be able to be stacked with one another; only Gentle Touch - Energy Gain can stack with them.
Thanks to @teededung!
* Fixes#3735.
* Fixed Demon of the Sun Moon and Stars ASPD to now increase by a rate of 1 + skill_level.
* Cavalier Mastery and Dragon Training to be properly calculated.
Thanks to @poporing and @Balferian!
* Added the official values for the AG_GOAL_ACHIEVE.
* Refactored the leveling logic for Achievements to account for the new values.
* Moved achievement EXP to a database file.
* Added AchievementLevel player variable to allow for easy tracking in the achievement condition checks.
* Cleaned up player GUI EXP progression.
* Added a check to not save achievements that made no changes.
* Added first login achievement.
Thanks to @Lemongrass3110!
* The <quest ID> is now removed, all the conditions are handled by a <condition> argument. The <condition> is using the achievement_check_condition (like in achievement_db.yml) so any condition (in theory) can be used to display the icon.
* A new script command has been added to refresh the bubble for the given player anytime.
Thanks to @aleos89 and @secretdataz for the review!
* Added item with GUID flag as `CHKADDITEM_NEW` in pc_checkadditem
* Adjust inventory blank check for guid item to `+n`
* Moved slot check as item_data function
* Removed quantity force-set-to-1 check for buying equip from cashshop, it will gives the item to player just like item with GUID flag
* Fixes#4283.
* Corrected pet bonuses not applying on intimacy changes.
* Removed pet_equip_min_friendly battle config as bonuses are determined on intimacy in the bonus script.
Thanks to @teededung!
* Fixed CZ_STANDING_RESURRECTION check
* Player can force to resurrect as long as they have valid Token of Siegfried even in auto respawn maps
* Added command `@resurrect` to resurrect using first matched Token of Siegfried item in inventory clients that don't show Resurrect button
* Set `respawn_tid` to int
* Fixes#4131.
* Changed the behavior of achievement experience to roll over remaining experience rather than check from the total amount.
* Cleaned up achievement level logic.
Thanks to @daisyanne1380 and @SeravySensei!
* Fixes#4122.
* Added missing rate and duration reduction based on the targets stats.
* Confirmed that double damage only applies to BREAK_NECK.
* Cleaned up skill to remove jb_flag from status_change struct.
Thanks to @mrjnumber1!
* Fixes#4191.
* Magnum Break should have an aftercast delay of 2 seconds which can be reduced by Bragi (like all other skills) and no cooldown.
Thanks to @Playtester!
Implemented convertpcinfo script command
* The command allows to convert more easily a player data to another.
* It fails silently if the character is not found/online.
Thanks to @aleos89, @Normynator, @cydh !
Implemented instance_live_info script command to retrieve some data of running instances
Thanks to @Jeybla, @cydh, @Lemongrass3110 and @aleos89 for the review !
* The items implementation is based on JRO description instead of IRO description
* Yinyang combo items will be implemented later when more infos will be available
* Fixes#4177.
* Resolved some comments getting stripped from the SQL converter.
* Corrected Costume Camellia Hair Pin ending the wrong hat effect.
* Added the view ID for Costume Fluttering Feathers and Costume Show Me The Zeny.
Thanks to @CyberDevil75 and @lChyztl!
* Fixes#4146.
* Reverted some of 7f772c3 as this falls into a larger refactor scope.
* Resolved an issue where items could not be picked up from the cart when the overweight message was sent to the player.
* Added missing e_additem_result constants.
Thanks to @secretdataz, @Normynator, and @cydh!
* Fixed#4111
** Removed some costume refinability
* Fixed#4112
** Corrected Elemental Robe (ID 15177) and Elemental Cape (ID 20820) job mask
* Added missing item db for renewal.
Thanks to @mazvi
* Fixed issue #4087
* Added an extra map check in npc_touch_areanpc
* Move the npc warped by unitwarp to the new map.
Thanks to @aleos89 for the review and @Litro for testing !
* Fixes#4041.
* Created an item group used to remove hard coding of Token of Siegfried.
* Added the other Token of Siegfried's to work with this feature.
Thanks to @daisyanne1380!
* Script command instance_id now supports an instance mode argument. If no mode is given it will return the attached script's instance.
* Script commands instance_destroy, instance_npcname, instance_mapname, instance_announce now attach themselves to the script's instance by default.
* Script commands instance_enter and instance_warpall attach themselves to the player's IM_PARTY instance by default.
* Added getvariableofinstance command (similar to getvariableofnpc) to retrieve the instance variable outside the instance.
* Update documentation to match changes.
Thanks to @vykimo, @Atemo, and @Lemongrass3110!
* Fixes#3612.
* Separated the countitem-type script commands into their own functions.
* Created a global count function to be used between them.
Thanks to @kisuka, @Normynator and @Atemo!
* enablenpc / disablenpc / hideoffnpc / hideonnpc now display the npc source when the npc named doesn't exist
* Added the NPC source to status_set_viewdata when no view data has been found
* Added export_deprecated_constant3 to display the constant name replacing the deprecated
* Removed the debug message from `@ warp` when the map name is wrong
* Added clif_name_area to UMOB_LEVEL on setunitdata and a capvalue to UPET_HUNGER
* areamonster now checks if the monster ID exists
Thanks to @Normynator and @aleos89 for the review!
* Fixes#4069.
* Added caps to item bonus rates so that they don't exceed the -10000~10000 range.
* Added warning messages when initial rate exceeds range.
* Added a missing vector size check for HP/SP Vanish bonus.
Thanks to @Litro and @Lemongrass3110!
* Firewall should check at cast begin if unit max count has been reached.
* Removed redundancy with the unit max count checks by merging into a single function.
Thanks to @mrjnumber1!
* Fixes#1939 and fixes#2274.
* OnTouch NPC are now able to overlap one another and properly trigger as they do on official servers.
* When entering an overlap area it should trigger both NPC.
* Walking from overlap area to either NPC should trigger neither.
* Walking from one NPC to the other (skipping the overlap area) should trigger the NPC area you enter.
* Entering an OnTouch area will no longer stop the player from walking unless a message or menu window opens (or other events that should stop the player).
* Resolves OnTouch_ overlapping issues.
* Dead players don't trigger OnTouch_ anymore.
* Hidden players don't trigger NPC clicks when OnTouch_ label is defined.
Thanks to @Tokeiburu, @Lemongrass3110, @Atemo, and @Normynator!
* Added setpcblock to official scripts to mimic some npc interaction.
* Clean-up the docs.
* Added the WORK_IN_PROGRESS message when PCBLOCK_USEITEM and PCBLOCK_SKILL are enabled.
Thanks to @aleos89 for the review!
* Added setpcblock and getpcblock script commands.
'setpcblock' command prevents/allows the player from doing the given type of action.
'getpcblock' command return the bit-mask value of the currently enabled block flags.
The available type are:
PCBLOCK_MOVE
PCBLOCK_ATTACK
PCBLOCK_SKILL
PCBLOCK_USEITEM
PCBLOCK_CHAT
PCBLOCK_IMMUNE
PCBLOCK_SITSTAND
PCBLOCK_COMMANDS
PCBLOCK_NPCCLICK
PCBLOCK_EMOTION
PCBLOCK_ALL
Thanks to @sigtus, @secretdataz, @Lemongrass3110 and @aleos89 for the help and reviews !
Credit to https://github.com/HerculesWS/Hercules/pull/842 for the idea.
* Move HP/SP Vanish bonuses to vector
* Corrected the BF flags usage
* Immaterial Swords, Mental Destroyer, and Dark Priest trigger SPVanish by any attack types
Co-Authored-By: cydh <cydh@users.noreply.github.com>
* Implemented official pet evolution system
* Added evolved pets to pet database
* Corrected various pet system mechanics
* Migrated pet database to YAML format and the converter from CSV format
Thanks to @Lemongrass3110 @aleos89 and @Atemo for their suggestions and additional fixes
* Added getpcblock and setpcblock script commands.
* Added the docs
* Added the message 'This action is currently blocked.' when the player attempts to perform the following blocked actions
* PCBLOCK_USEITEM
* PCBLOCK_SITSTAND
* PCBLOCK_NPCCLICK
* The actions blocked are saved in state.block_action
* Click to the npc returns the WORK_IN_PROGRESS message when PCBLOCK_NPCCLICK is enabled
* Blocked action and reload script.
The player will return to his/her original state after reload script.
Thanks to @aleos89, @Lemongrass3110, @secretdataz
* Fixes#3953.
* Resolved an issue with monster's class not being properly recalculated when using script command setunitdata. For now, just allow switching between CLASS_NORMAL and CLASS_BOSS.
* Fixed HP and MaxHP adjustment for monster, homunculus, mercenary, elemental, and NPC.
* Fixed MaxSP adjustment for homunculus and elemental.
* Fixed Size adjustment for monster, homunculus, mercenary, and elemental.
* Fixed Race adjustment for monster, homunculus, mercenary, and elemental.
* Fixed the Map ID string check to support all unit types.
Thanks to @teededung and @SeravySensei!
* Fixes#4016.
* Cleaned up the way Vellum damage and Vanish damage are calculated.
* Implemented bonus3 bSPVanishRate/bHPVanishRate.
* Updated Mental Destroyer item bonus.
* Cleaned up and added documentation.
Thanks to @Balferian!
Converted Guild Skill Tree database to YAML
Please run csv2yaml to convert your existing databases if necessary.
Thanks to @aleos89, @Atemo and @Lemongrass3110
Synchronized the process of loading and parsing YAML databases.
Provides more robust parse warnings/errors.
Added Header checks to validate database versions.
Adjusted root keys to a standard name of Body.
Adjusted inter-server storages, achievements, and attendance to follow the new format.
Fixes#3483
Thanks to @Lemongrass3110!
* Added the use of DBPATH/DBIMPORT definition for guild EXP, job information, level penalties, and map cache to remove hardcoded values.
Thanks to @marky291!
Additionally if progress was being canceled and a message window was active, the user would be stuck, because no close button would show.
Fixes#3944
Thanks to @teededung, @cahya1992 and @Atemo
* Corrected Blue Bow's location.
* Corrected Ukulele_Of_Newoz, Floral_Mic_Of_Igu and Ukulele_Of_Newoz + Winged_Ring_Of_Newoz combo that should increase the SP usage of skills (instead of decrease).
* Corrects a potential map-server crash with script commands min, max, getpartymember, getguildmember, getunits, getmapunits, getareaunits, getunitdata, and channel_setgroup when a character variable is used when no character is attached to the script.
Thanks to @Tokeiburu and @Atemo!
* Fixes#2806.
* Added Old Card Album script to give a random card and give a High Weapon Box.
* Added missing item bonus (Level Up Box) for High Weapon Box.
Thanks to @Everade!
* pvpon, pvpoff, gvgon, gvgoff, gvgon3, gvgoff3 now display a message when the map doesn't exist
* The command don't return SCRIPT_CMD_FAILURE anymore when the mapflag is already in the state
* Fixes#3492.
* Resolved some item combo cards that transformed the wearer causing the stats to come awry.
* Cleaned up some documentation.
Thanks to @BrOgBr, @raelemagy, @mrjnumber1, and @Everade!
* Fixes#3908.
* Accessories that have cards which require specific left/right locations must take priority.
* Sped up position checking.
Thanks to @Badarosk0 and @Lemongrass3110!
* Cleaned up the way script commands parse arguments.
* script_isstring and script_isint will now properly check variable references.
* This allows script command arguments to contain variables without having to make source side adjustments.
* Reverted several script commands that reference the data directly.
Thanks to @Lemongrass3110!
* Fixes#131 and fixes#2699.
* Added item bonus bNoWalkDelay to replace infinite SC_ENDURE bonus in items.
* Added a warning if INFINITE_TICK is detected in the item combo bonus.
* Included some minor cleanups and additions.
Thanks to @exneval, @c0nflicts, and @esu1214!
* Fixes#3100.
* Script command getmapxy will now allow integer values for the search value.
* Deprecated UNITTYPE constants as they were replaced by BL.
* Defaulted BL_PC as the target for script command getmapxpy.
* Updated script command getunittype return value to return BL constants.
* Updated scripts to new BL constants.
Thanks to @pajodex's suggestion and @Lemongrass3110!
Problem:
if common fails target map/char/login will be disabled.
Solution:
if common fails stop cmake execution and throw an error, this will avoid building only mapcache and common_base.
* Fixes#3810.
* Partial revert of eae1161.
* Removed the item database bonuses from Throwing Increase HP/SP Potions and moved them back to source as these items require the caster's Base Level.
* Concentrated White Potion Z should only increase HP regeneration rate (not the interval).
* Vitata 500 should increase SP regeneration rate (not the interval).
Thanks to @Everade!
* Fixes#3817.
* Should give a 0.3% chance of increasing MATK by the equip's refine * 8 for 10 seconds when using magic attacks.
Thanks to @Everade and @Atemo!
Fixed getmapxy getting the first player map and coordinates in every instance
Optimization of shop by using inarray script command
Changed some values to constants
* Fixes#3872.
* Added a couple more map data validity checks on block list counting functions.
* QD Shot should no longer remove the read status.
* Dragon Trail should no longer end the Crimson Marker status.
* Some other minor optimizations/cleanups.
* Fixed a va_arg corruption
Thanks to @attackjom, @Lemongrass3110, and @teededung!
* Fixes#3611.
* Corrected Gangster's Paradise not releasing the monster invulnerability state when standing up around multiple Rogue's that know Gangster's Paradise.
* Same fix goes for Taekwon's Peaceful Break and Happy Break.
* Cleaned up some various parts of these functions as well.
Thanks to @Indigo000!
* Removed the mapflag from several instance maps. Icewall skill is already restricted with mapflag 'restricted' zone 6 which display the proper message "This skill cannot be used within this area".
* Fixes#3644.
* Corrected the loop that counts card/enchant combos at login being limited to the number of slots on the main item instead of MAX_SLOTS.
Thanks to @Badarosk0!
They now use the normal script engine and not a duplicated portion of code of it.
This is required for another pending update.
This also fixes atcommands not triggering status achievements.
Thanks to @aleos89 and @RadianFord
* Reloading the item database will now properly force a recalc on all players.
* If new item combos were added to the database and players were wearing the item combo the players would never get the bonus until unequipping and reequipping.
Thanks to @Lemongrass3110!
* Fixes#3801.
* Fixed a timer type issue causing Reflect Damage to no properly distribute damage.
* Corrected some final tick leftovers that may cause issues with other skills.
Thanks to @Angelic234 and @rAthenaCN!
With this you can now support more connections on linux, even if your system header is still set to a smaller value.
Make sure to increase the limit of open file handles with ulimit or other resource related settings.
You can change the compile time value of supported connections with ./configure --with-maxconn=value
Windows default is still 4096.
* Fixes#3820.
* Should be equippable by all classes.
* Added missing VIP bonus.
* Simplified elemental resistance bonus.
Thanks to @Everade and @Atemo!
* Fixes#3815.
* Should give Neutral resistance +5% and +1% per refine above 5.
* Added missing ranged resistance +5% and +1% per refine above 5.
Thanks to @Everade and @Atemo!
Fixes#3017
Thanks to Hercules for the idea and their implementation of it.
This deprecates Windows XP support. If you want to use it to run your server on it, you have to forcefully enable it now.
Since 64bit ticks do not exist on XP, you might encounter some issues that are already fixed on other OS.
* Fixes#3774.
* Resolved a few statuses getting removed when using Mado Gear that should be enabled.
* Added the ability to remove these statuses if the skills are disabled.
Thanks to @laziem and @Lemongrass3110!
Additionally added a script command to update the player's camera.
Added a new atcommand camerainfo for this, which is limited to admins.
Credits to @4144 for finding /setcamera
Fixes#3376
This adds support for clients after July 2018.
Since no unpacked RagexeRE exist anymore, we need to switch back over to Ragexe.
This should work without problems until 2018-11-21.
After this there are further changes required.
Thanks to @Haikenz
Fixes#3739
Thanks to @whupdo for finding the broken removal.
Fixes#3766
Since vector elements will be pushed around in the container when an element is removed,
the original pointer might be invalid at the time the end of the timer has been reached.
A big thank you to @teededung for being persistent and helping me to reproduce the issue.
Introducing a new constant INFINITE_TICK
Changed current usages in items, npcs and source to use the new and correct constant.
Replaced some invalid usages of INVALID_TIMER and replaced them with the new constant.
* Fixes#3706.
* Resolved Blessing of Shrimp not boosting SP recovery properly.
* Resolved Tasty Shrimp Party not accounting for Fresh Shrimp level learned.
* Resolved Lope not placing the caster at the selected target location.
Thanks to @Everade and @exneval!
* Fixed Skill Damage Database parsing
* Fixes#3732.
* Resolved an issue with constants not being properly parsed for the caster type.
Thanks to @RadianFord, @reunite-ro, and @Lemongrass3110!
* Changed Thanatos to Tartanos and Thanatos gears to Thanos,
to follow actual name from Ragnarok manhwa and kRO actual item name translation
* changed "Tartanos Magic Trace" to "Magic Sword Tartanos"
Signed-off-by: zackdreaver <zackdreaver@gmail.com>
* Resolved a rare case if a player logs in and the server hasn't fully initialized all of the player's items that the auto-save timer fires off and saves the player with no items.
Thanks to @Tokeiburu!
* Fixes#3703.
* Fixed bHealPower, bHealPower2, bSPGainValue, bHPGainValue, bMagicSPGainValue, and bMagicHPGainValue having a chance to potentially overflow from signed short limit.
Thanks to @Everade!
* Fixes#3649.
* Electric Shocker is able to stop MVP as well.
* Status should not stack with itself.
* Status should be cleared by normal means.
Thanks to @admkakaroto!
* Implements SU_CN_METEOR2 and SU_LUNATICCARROTBEAT2 skills.
* These skills are used as placeholders for the item requirements for skill bonuses.
Thanks to @Rytech2 and @exneval!
Added safestrncpy to char's inter configurations
Added safestrncpy to map's inter configurations
Added safestrncpy to message configurations
Adjusted some char configurations
Cleaned up logging configurations
Fixes#3624
Thanks to @mrjnumber1
* Fixes#996 and fixes#3152.
* Refactored MAX_PC_BONUS item bonuses from static arrays to vectors.
* Increased MAX_PC_BONUS to 50.
* Frees up memory from players that may not ever utilize all their static MAX_PC_BONUS item bonuses.
* Expanded bonus ResEff to not be restricted to SC_COMMON* statuses.
* Removed old ERS usages.
* Removed code redundancy and general cleanups.
Thanks to @Angelic234, @Atemo, @Lemongrass3110, and @Everade!
* Fixes#3614.
* Reins of Mount should not be applied to players who are in some sort of hidden state.
* Item delay is still applied.
Thanks to @admkakaroto and @cydh!
* Fixes#3559.
* Updated the cast range to 6 + skill_lv.
* Added Crimson Marker target checks to determine placement.
* No longer removes Crimson Marker on targets.
* Properly displays client effect.
Thanks to @Rytech2, @admkakaroto, @Tokeiburu and @exneval!
* Fixes#3666.
* When purchasing items from a NPC shop, the minimum purchase price is always 1 Zeny.
* When selling items to a NPC shop, the minimum sell price is always 0 Zeny.
Thanks to @Balferian and @dastgirp!
* Fixes#3530.
* Added constants for script commands getcastledata and setcastledata.
* Adjusted the guardian constants to adjust based on MAX_GUARDIANS define value.
* Updated scripts to reflect changes.
Thanks to @keitenai, @Atemo, and @Lemongrass3110!
* Fixes#3585.
* Resolves an issue when players change maps to instances (aside from script command instance_enter) and the active/idle timers are not adjusted.
* Cleaned up the entering and leaving checks for instances.
Thanks to @Atemo and @Lemongrass3110!
* Fixes#1658, fixes#3620.
* Fixed script command warp2 or OnTouch NPC attempting to trigger OnTouch events a second time for players in a hidden state while warping to the destination map resulting in them being sent to an invalid location.
Thanks to @exneval, @mgksrt8, @admkakaroto, and @Zeloss!
* Corrected atcommand reloadscript and NPC dialogs
* Fixes#3637.
* Force atcommand reloadscript to send a close button if a NPC dialog is active to any attached players.
* Fixed cutin removal as well.
Thanks to @kukuasir1 and @Lemongrass3110!
* Fixes#2745.
* Disabled the ability to equip old spheres and old slugs.
* Corrected some of the newer bullets name, weight, price, and effects.
* Updated the ASPD for Gunslinger/Rebellion when equipping guns.
* Spread Attack and Ground Drift now only use bullets.
* Adjusted Slug Shot skill item requirement to the new Slug Bullet.
* Separated pre-renewal and renewal ammo NPC (Kenny and Tony).
-- Renewal no longer has Tony.
-- Kenny can now trade in the Sphere bullets for new bullets.
-- Kenny can now trade in the old Slugs for Slug Bullet.
-- Added new bullets into Kenny.
Thanks to @cydh and @exneval!
* Added skill_duration mapflag.
* This mapflag sets a skill unit time limit to n% of original duration.
* Implemented mapflags for Hunter's Traps in GVG, BG, and Novice Guild maps.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
Initial release of Devil Tower memorial (walkthrough conversion)
* TO DO:
** implement Dancingblade, Pulsestrike2 and adjust ice mine skills
** correct progressbar behaviour
Thanks to all the contributors !
Special thanks to Divine Pride !
Updated npcs from ep 14.3 (official conversion)
* Adjusted permanent monster random spawn: xy are now optional
* TO DO: update questinfo to display the icon when the variable condition are met
Thanks to all the contributors !
Special thanks to https://www.divine-pride.net/ !
Initial implementation of nightmare biolab.
The missing skills will eventually be implemented later.
Thanks to all the contributor, special thanks to https://www.divine-pride.net/ !
* Removed 'set' to the new syntax and slight change
* Added the slotted versions of cutlus and Crescent_Scythe
* Corrected Wizardy_Staff positioning
* Added more weapons to enchant
* Corrected possible enchants of Twin_Edge_B, Twin_Edge_R and Poison_Forged_Spear thanks to @admkakaroto !
* Renewal Monster's ATK & MATK Calculation Updates
* Renewal Monster database updates
* ATK1 is *base* ATK, the range 80%~120% is calculated in src
* ATK2 is *base* MATK, the range 70%~130% is calculated in src
* Adjusted ATK range min~max in mobinfo atcommand
* Nothing was changed in pre-renewal system!
* Thanks to @aleos89, @slyx88 and Divine-Pride.net
We support all required features or have them ready in some pull requests.
The packet version after this will require a huge overhaul since item id sizes have been changed in all packets.
* Closes#3159.
* Adds script commands getunits, getmapunits, and getareaunits.
* Replacement for script commands getusers, getmapusers, getareausers. (In a future commit)
Thanks to @sader1992, @Atemo, and @anacondaqq!
* Fixes#3552 and fixes#3553.
* Corrected Lesser Agimat not getting removed from Old Man in Dilemma and Tikbalang Expert.
* Corrected a Buwaya Guard not continuing with the proper conversation.
Thanks to @Indigo000!
* Fixed#3517, new map from instance doesn't use unused map slots
* Fixed#3528, crashed on reloadscript if there is instance map
* Cleared map flags on reloadscript
* Corrected typo thanks to @zackdreaver
* Commented Despair_God_Morocc_Card and combo using unimplemented MM_MOROCC_ADT
Thanks to https://www.divine-pride.net/, Sigma for the translation
Also updated Rock Ridge enchant list from kRO 2016.12.07
Thanks to @JohnnyPlayy, @OptimusM, @attackjom, @teededung and @admkakaroto !
Big thanks to https://www.divine-pride.net/ !
* Fixes#3545.
* Corrected the item requirements for Repair and Shape Shift.
* Synced pre-renewal skill requirements to match renewal.
* Added a couple Mechanic items that were missing from pre-renewal.
* Updated requirements on a couple items to match pre-renewal format.
Thanks to @Questune09!
* Fixes#2787 and fixes#3513.
* Resolved some format-truncation warnings.
* The remaining will be fixed at a later time.
Thanks to @RadianFord and @Lemongrass3110!
* Added config values for `allow_bound_sell`
* 0x4 allows bound item to be sold at NPC Shops
* 0x8 restrict only guild leader who can sell guild bound item at NPC Shops or Itemshops
* Added config to allow rental items can be sold at NPC `rental_transaction` (planned for more config values based on #3490). Default to `yes` allowed to be sold, still can be restricted by item_trade, item id based.
* Fixed itemshop which ignores another item stack in inventory even for same item currency
* Fixed exploit potential by using Itemshop & Pointshop
* Now equipped item cannot be sold at NPC
* Typo and grammar fixes. Thanks to @aleos89 and @secretdataz
* Fixes#3499.
* Corrected the way target monsters are generated for Taekwon Mission.
* Requires: The mob ID is in the range [MOBID_PORING, MOBID_GREEN_IGUANA], the mob must have below 30,000 HP, the mob must give Base EXP, the mob must be CLASS_NORMAL.
* Added a new mob group: MOBG_Taekwon_Mission
* Removed hard coded checks.
* Created constants for random monster group flags.
Thanks to @mrjnumber1, @Lemongrass3110, and @cydh!
* Fixes#3476.
* Centralized all equipment stripping skills to skill_strip_equip.
* Updated success rates and durations to match official.
Thanks to @mrjnumber1!
* Added inf3 0x100000 for skill is not blocked by SC_AUTOGUARD (physical-skill only)
* Added inf3 0x200000 for skill is not blocked by SC_UTSUSEMI or SC_BUNSINJYUTSU (physical-skill only)
* Changed `NK_NO_CARDFIX_ATK` check to the flag above
* Applied those new inf3 flags for skills which are `weapon`-type and have `0x8`-nk
This setting only affects renewal mode:
- Switch to a different weapon or unequip a weapon now cancel EDP
- EDP can't be used with fist (right hand check only)
Thanks to @aleos89 and @cydh !
* Fixes#3478.
* Adjusted Banding to use proper party counting functions.
* Corrected the DEF and HP Regen bonus for Banding.
* Banding Defense will no longer stack on itself.
Thanks to @admkakaroto and @exneval!
* Fixes#1155.
* Added specific checks for weapons when equipping ammo.
* Ammo is removed if the required weapon is removed.
* Added battle configs to disable behavior.
Thanks to @Atemo, @exneval, and @benching!
* Resolves PvP timers and effects not displaying properly.
* Resolves any GvG effects not displaying properly.
* If PvP or GvG is disabled, stop players from attacking.
* Moved PvP timer and attack functions to appropriate locations.
* Removed redundancy from atcommands.
Item scripts from kRO 2017.05.10 update
* Iara Card
* Piranha Card
* Curupira Card
* Tucan Card
* Jaguar Card
* Headless Mule Card
* Boitata Card
* 'Tucan Card' have been changed to 'Toucan Card' to match the monster's name which drops the card
* Added the cards in the monster's card drop slot as suggested by @Lemongrass3110 !
* Follow up to 4f97c74.
* Fixes#3357.
* Updated Sphere Absorption to official behavior
* Sphere Absorption will fail if casted on an ally.
* Should only succeed on self or enemy targets.
* Removed Cursed Circle check as it's not needed anymore.
* Fixes#3369, fixes#3370, and fixes#3382.
* Converted maps storage container back to static array.
* Converted mapflag storage containers to unordered_map.
* Removed a lot of redundancy and recursive lookups.
* Fixed a couple short-circuit checks to help with performance.
* Fixed multiple instance creation/destruction issues.
* Fixed PK Mode attempting to set PvP on flags that are already active.
* Getting MF_RESTRICTED will return the map's zone value instead of the state.
* Converted mapflag macros to inline functions.
Thanks to @teededung, @lelouch22, @mazvi, @Lemongrass3110, and @cydh!
Fixes#3310
Replaced some still hardcoded values with their define constants.
Added a function to check if a walk will be diagonal and fixed invalid calculation for it.
Thanks to @DavidPS92
* Revert of 9a009bf.
* Spiritual Sphere Absorption should still take the spheres from the target even if Cursed Circle is used on the caster.
Thanks to @Raf4h!
Follow up to a942853.
Fixes#3336.
Moved map_data storage to std::map container.
Created map_getmapdata to obtain pointer to map_data.
Got rid of MAX_MAP_PER_SERVER define.
Resolved deletion of instances causing other instances to lose their intended map ID.
Refactored warp suggestions
Thanks to @teededung, @anacondaqq, @cydh and @Lemongrass3110!
* Follow up to a942853.
* Removed ADJUST_SKILL_DAMAGE define so that the mapflag is always enabled.
* Cleaned up atcommand mapinfo and skill_damage mapflag interaction.
* Cleaned up atcommand mapflag to not allow setting of special mapflags that require extra arguments (Please use script command setmapflag).
* Using script command setmapflag for MF_NOSAVE will default to SavePoint.
* Using script command setmapflag for MF_PVP_NIGHTMAREDROP will default to normal official drop values.
* Exported constants for skill_damage mapflag types.
Thanks to @ecdarreola, @cydh, and @Lemongrass3110!
* Created setter and getter functions.
* Adjusted all calls to use these functions.
* Converted mapflags to C++ map container.
* Converted drop_list to vector.
* Converted skill_damage ERS into vector and increased limit from UINT8 to UINT16.
* Cleaned up several functions to be more dynamic to reduce redundancy that was all over the place.
* Renamed nosumstarmiracle to nosunmoonstarmiracle.
* Adjusted skill_damage mapflag to use proper defined constants.
* Refactored map index into a vector.
Thanks to @Lemongrass3110 for a lot of help and @secretdataz!
* Fixes#3317.
* Resolves the Guild Storage Expansion skill not refreshing the map server cached data.
* Updated some inter server checks to grab the proper max size of guild storages.
Thanks to @admkakaroto and @Lemongrass3110!
* Fixes#2622.
* Added a new battle config for renewal.
* Adjusted the battle config to support dropping the recovery weight to 0.
* Added the new weight limit packet.
Thanks to @functor-x and @Lemongrass3110!
Banquet for Heroes ep16.1 - walkthrough conversion
* Added main quests of ep16.1 and the quests entries
*** Walther's daily quest will be enabled after quest_db refactor
* Added instances Ritual of Blessing and Room of Consciousness
* Added monsters spawn and entries on prt_prison, prt_cas and prt_q maps
* Prontera castle map changed in this ep
- Moved some NPCs from prt_castle to prt_cas
- Added warps on prt_cas
- Succession of the Prince quest is removed in ep16.1
Thanks to @admkakaroto, https://www.divine-pride.net/
@yoonjunho72, @teededung, @ecdarreola, @spinzaku and to all the contributors !
* Fixes#3301.
* Force the Guild Storage Expansion skill to save on level up so the next time the guild storage is opened the proper increase is shown.
Thanks to @spinzaku!
* Fixes#3265.
* Fixes bAddDamageClass, bAddMagicDamageClass, bAddDefMonster, and bAddMDefMonster not checking for the correct source/target class.
Thanks to @uddevil!
Fixes#2887 - thanks to @Everade
Fixes#3292 - thanks to @admkakaroto
Added a script command to open the roulette window from server side.
Added support for clients >= 2018-05-16
Fixed losing behavior for roulette
Enabled roulette system by default
Added a server side delay
Added missing sql log enum value 'Y'
Thanks to @Everade, @admkakaroto, @V0rr, @ecdarreola, @Haikenz and everyone else who contributed to this.
* Fixes#499 and part of #1303.
* Implements Guild Storage Expansion Skill which requires client 2013-12-23 or newer (enable by default depending on client date in src/config/packets.hpp).
* Implements guild storage permission which requires client 2014-02-05 or newer.
* Expanded script command guildopenstorage return values.
* Fixes#2169
* #CASHPOINTS and #KAFRAPOINTS now will be logged correctly when used by scripting
* Fixed a bug where points removed cash as well
* Small cleanup for pc_paycash and pc_getcash
* Thanks to @Lemongrass3110, @ecdarreola
Fixed status changes that are displayed for players that walk into the area after status change start being sent out with an invalid duration, since the timer was not yet created and causing an infinite duration packet to be sent.
Fixes#3182
Thanks to @Everade
Clients that do not support this ignore this anyway.
Party name is not displayed when you are in a clan unlike with a guild.
You can use display_party_name if you want to show it.
* Alphabetically sorted includes.
* Updated copyright and license text to match across all files.
* Removed pragma once define in header files in lieu of ifdef guards.
* Fixes#3225.
* While Crystallized Wind damage is increased 50%.
* Corrected an arrow state check for Crystallization on weapon damage reduction.
* Corrected elemental damage calculation for targets in pre-renewal mode.
Thanks to @flamefury!
* Fixes#3191.
* Adjusted movement speed reduction from -50% to -70%.
* Adjusted ASPD reduction from -15% to -30%.
* Adjusted physical DEF reduction from -10% to -30% for players only (mobs are still -10%).
* Adjusted variable cast time increase from +15% to fixed cast time +50%.
Thanks to @flamefury!
* Fixes#3217.
* A number of spelling and grammatical issues across the Dewata quests fixed in addition to the above issue.
Thanks to @danielbernard and @teededung!
* Fixes#3205.
* Follow up to 801d3ed.
* Resolved some string literals requiring a space.
* Redefine my_bool for MySQL 8.0 or later.
Thanks to @bentheexo and @secretdataz!
* Slight edits of custom Mushroom Event
- changed the monster count variable to mobcount script command
- changed killmonster label to only kill the mushrooms of the event
* Fixes#2099.
* Added Emergency Magic Gear.
-- Mounts the user to a Madogear.
-- Only usable by Mechanic class.
-- Has a reuse delay of 3 minutes.
* Increased maximum weight limit by 1500.
* HP naturally recovers similar to Swordman Moving HP-Recovery.
* Updated Emergency Cool's interaction with Overheat calculation.
* Added new Emergency Cool cooling devices.
* The three cooling devices now lower Overheat by 45, 75, and 105 respectively.
* Overheat now only increases on every attack by 1 or by 3 with Fire element.
* The Overheat limit is increased to 150, 200, 280, 360, and 450 respective to skill level.
* Updated the check for Acceleration, Self Destruction, Shape Shift, Emergency Cool, Magnetic Field, Neutral Barrier, and Stealth Field to also check inventory for required equipment.
* Updated Magic Gear Master NPC.
-- Added Emergency Magic Gear purchase option.
-- Added High Quality Cooler and Special Cooler upgrade options.
Thanks to @Felleonel, @Rytech2, @exneval and @mrjnumber1!
* Added missing maps to map_cache and its mapflags
* Added nowarp, nowarpto, pvp_noparty for RWC maps suggested by @Atemo
* Added mapflag/gvg_noparty.txt file to ignores party alliances on GvG-enabled maps.
* Fixes#3197.
* Bloody_Roar: Perfect dodge should not be affected, Flee should be reduced by Agi + BLvl instead of flat -160
* Bloody_Roar_C: Flee/Perfect dodge should not be affected, should restore 3 HP every 5 seconds
Thanks to @danielbernard!
* Added missing maps to map_cache
- additionnally removed the commented 'extra maps'
- Added mapflags on instances and dungeons maps
Credit to @zackdreaver for some map name
* Correct Variable Cast Rate for Geffen Magic Robe
* Fixes#3195
* Geffen Magic Robe (Renewal) (15074) is currently set to reduce variable cast rate by 15%, with an additional 5% at refine level 9. This should be an increase of 15%, reduced to 10% at level 9.
Thanks to @Balferian !
* Added new achievement.
* Updated score for Exploring Poring's life (2).
* Updated Reborn in Valhalla reward.
* Removed The Beginning of Outdoor and The First Step Becoming a Chef achievements as they are no longer listed.
* Initiale release of Instance Airship Assault
Walkthrough of airship assault instance based on Ziu's work
Thanks to @aleos89, @secretdataz and https://www.divine-pride.net/ !
* Follow up 87e7e8891b
- combo 18823:19246 : value for bResEff should be 10000 to immune the status
- combo 18823:28372 : according to the description the cast reduction is 2s
- item Imperial_Feather : according to the description of ID 18823 the bonus apply when base agi is 108 too
* Reverted combo 18823:28372 to match the database value, thanks to @aleos89 !
* Fixes#2510.
* Added Holink and Wagjak values to their own entries in the refine database.
* Added several anti-hack checks to refine NPC.
Thanks to the suggestion from @mazvi and @Atemo!
* Fixes#3031.
* Added missing Royal Guard Necklace and Imperial Glove.
* Added bSkillDelay bonus which increases delay of skill sk by t milliseconds.
Thanks to @iubantot and @Secret!
This adds support for /changedress and /nocosplay by adding an atcommand for it and redirecting the client command to it.
Thanks to @Everade for finding this.
Fixes#3108
Fixed wrong usage of EVENT_NAME_LENGTH, since this should have been UCHAR_MAX as well.
Converted C struct to C++ map/vector.
Removed limit of 255 events of a cached type.
Thanks to @ignizh and @secretdataz
* Fixes#2163, fixes#2720, and fixes#2761.
* Feint Bomb now closer mimics official behavior.
* Monsters now properly target the clone and refrain from attacking the Shadow Chaser.
* Shadow Chasers are now able to cast skills while in Feint Bomb hiding state.
* Removed extra skill cast value that wasn't used.
* Removed extra mob target release function as one already existed.
* Corrected Zanzou and Genwaku target release behavior as well.
Thanks to @ilovelemon, @redlightliu, and @MrAntares!
* Fixes#2969.
* Resolves unit skills that use UF_RANGEDSINGLEUNIT not being properly removed by other skills that clear unit types.
Thanks to @admkakaroto and @exneval!
* Fixes#3058.
* Updated links for prerequisites
* Updated Discord link as subdomain no longer exists
* Removed IRC links.. we haven't used this in forever!
Signed-off-by: Akkarinage <akkarin@rathena.org>
* Fixes#1086, fixes#2799, and fixes#3049.
* Fire Expansion Level 1 now lasts 10 seconds longer with stacked with Demonic Fire.
* Fire Expansion Tear Gas will no longer damage players on non-PvP type maps.
* Fire Expansion Acid is now misc type instead of magic.
* Corrected a possible map crash with Demonic Fire and Fire Expansion interactions.
* Demonic Fire can only have one instance on the ground at a time.
* Miscellaneous cleanups.
Thanks to @jamon18, @uddevil, and @LolyAll!
* Fixes#3052.
* Changed previous cartridges to item type 2 from item type 18.
* Added missing cartridges: Flare, Lightning, Ice, Poison, and Blind.
Thanks to @Questune09!
Developers can get up and running quickly with a Dockerized development environment that installs all dependencies needed to run and develop on rAthena.
<!-- NOTE: Anything within these brackets will be hidden on the preview of the Issue. -->
* **rAthena Hash**:
@@ -21,7 +30,7 @@ How to get your GitHub Hash:
* Result: <!-- Describe the issue that you experienced in detail. -->
* Expected Result: <!-- Describe what you would expect to happen in detail. -->
* How to Reproduce: <!-- If you have not stated in the description of the result already, please give us a short guide how we can reproduce your issue. -->
* Official Information:<!-- If possible, provide information from official servers (kRO or other sources) which prove that the result is wrong. Please take into account that iRO (especially iRO Wiki) is not always the same as kRO. -->
* Official Information:<!-- If possible, provide information from official servers (kRO or other sources) which prove that the result is wrong. Please take into account that iRO (especially iRO Wiki) is not always the same as kRO. -->
<!-- * _NOTE: Make sure you quote ``` `@atcommands` ``` just like this so that you do not tag uninvolved GitHub users!_ -->
> rAthena is a collaborative software development project revolving around the creation of a robust massively multiplayer online role playing game (MMORPG) server package. Written in C, the program is very versatile and provides NPCs, warps and modifications. The project is jointly managed by a group of volunteers located around the world as well as a tremendous community providing QA and support. rAthena is a continuation of the eAthena project.
Table of Contents
---------
1. What is rAthena?
2. Prerequisites
3. Installation
4. Troubleshooting
5. Helpful Links
6. More Documentation
7. How to Contribute
[Forum](https://rathena.org/board)|[Discord](https://rathena.org/discord)|[Wiki](https://github.com/rathena/rathena/wiki)|[FluxCP](https://github.com/rathena/FluxCP)|[Crowdfunding](https://rathena.org/board/crowdfunding/)|[Fork and Pull Request Q&A](https://rathena.org/board/topic/86913-pull-request-qa/)
// NOTE: This allows you to configure different settings for homunculus, separated from normal idle timer and 'idletime_option'.
// It will only apply to homunculus-only kills and it will not affect normal autoloot and party share options.
idletime_hom_option: 0x1F
// The rate at which homunculus gain experience from kills. (Note 2)
// Only applies to renewal mode.
// Official: 10%
homunculus_exp_gain: 10
// The hunger rate, less than or equal to, at which a homunculus' hunger delay changes. (Note 2)
// See 'homunculus_starving_delay' for the delay value.
// Set to 0 to disable.
// Official: 10
homunculus_starving_rate: 10
// Homunculi normally lose hunger every 60 seconds but when the 'homunculus_starving_rate' is met the hunger delay drops to 20 seconds (in milliseconds).
// 1: Enable mob-warping when standing on NPC-warps
// 2: Enable mob-warping when standing on Priest Warp Portals
// 4: Disable warping when the target map is a 'nobranch' map.
// 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
@@ -135,6 +136,14 @@ mob_spawn_delay: 100
plant_spawn_delay: 100
boss_spawn_delay: 100
// Should the mobs respawn time have variance applied to it? (Note 3)
// On official servers monsters spawned by the boss_monster command (mostly MVPs) have variance, legacy Athena behavior is that variance is applied for all mobs.
// 0: None
// 1: Boss monsters (official)
// 2: Normal monsters
// 3: All monsters (legacy Athena)
mob_spawn_variance: 1
// Should mobs not spawn within the viewing range of players?
// 0 is disabled, otherwise it is the number of retries before giving up
// and spawning the mob within player-view anyway, unless the max (100) is used,
@@ -262,3 +271,24 @@ monster_hp_bars_info: yes
// This can be legit gameplay (e.g. players keeping an MVP stuck inside icewall), but if you want to prevent any
// exploits and be notified about them, you can set this to yes.
monster_stuck_warning: no
// Rate at which monsters use their idle skills when there are no players nearby (Note 2)
// On official servers monsters use their idle skills if they have been spotted once, even if there are no players nearby anymore.
// On small-medium sized servers this can cause all monsters like eggs and Fabre/Pupa to metamorph.
// To switch it off, set it to 0.
mob_nopc_idleskill_rate: 100
boss_nopc_idleskill_rate: 100
// Rate at which monsters move when there are no players nearby (Note 2)
// On official servers monsters always move if they have been spotted once, even if there are no players nearby anymore.
// To switch it off, set it to 0.
mob_nopc_move_rate: 100
boss_nopc_move_rate: 100
// When killing a monster, do AG_BATTLE type achievements trigger for everyone in the same party within the area?
// Area is limited to area_size battle config.
achievement_mob_share: no
// Should slaves teleport back to their master if they get too far during chase? (Note 1)
76: Toutes les compétences sont ajoutées à votre arbre de compétence.
77: Résultat de '%s' (nom: id):
78: %s: %d
78: %s: %u
79: %d résultats sont affichés.
80: Veuillez donner le nom/id du montre.
81: Votre niveau de GM ne vous autorise pas à effectuer cette action sur le Joueur spécifié.
@@ -183,7 +183,7 @@
166: Aucun équipement n'a été raffiné.
167: 1 objet raffiné.
168: %d objets raffinés.
169: L'objet (%hu: '%s') ne peut pas s'équiper.
169: L'objet (%u: '%s') ne peut pas s'équiper.
170: L'objet ne peut pas s'équiper.
171: %d - void
//172: You replace previous memo position %d - %s (%d,%d).
@@ -449,8 +449,7 @@
// Homunculus messages
450: Vous possédez déjà un homunculus
// Return pet to egg message
451: Vous ne pouvez pas remettre votre pet dans son oeuf car votre inventaire est plein.
//451 free
// Message System
460: Entrez une langue (usage: @langtype <langue>).
@@ -513,7 +512,7 @@
537: Personnage '%s' (compte: %d) essaie d'utiliser un bot (il essaie de détecter un faux mob).
// Trade Spoof Messages
538: Hack sur échange: Personnage '%s' (account: %d) essaie d'échanger plus d'Objets qu'il ne possède.
539: Ce Joueur a %d d'une sorte d'Objet (id: %hu), et tente d'en échanger %d.
539: Ce Joueur a %d d'une sorte d'Objet (id: %u), et tente d'en échanger %d.
540: Joueur définitivement bloqué.
// Rare Items Drop/Steal announce
541: '%s' obtient de %s l'Objet %s (chance: %0.02f%%)
@@ -880,7 +879,7 @@
// @reloadatcommand
1036: Erreur à la lecture de groups.conf, reload échoué.
1037: Erreur à la lecture de atcommand_athena.conf, reload échoué.
//1037 free
// @mapinfo
1038: Entrez un numéro de la liste (usage: @mapinfo <0-3> <map>).
@@ -1056,9 +1055,9 @@
1189: Objet trouvable.
1190: Vous ramasser déjà automatiquement cet Objet.
1191: Votre liste d'Objet à ramasser est pleine. Supprimez des Objets avec @autolootid -<nom_ou_ID_Objet>.
1192: Ramassage automatique de: '%s'/'%s' {%hu}
1192: Ramassage automatique de: '%s'/'%s' {%u}
1193: Actuellement vous ne ramassez pas automatiquement cet Objet.
1194: Onjet supprimé: '%s'/'%s' {%hu} de votre liste de 'autolootitem'.
1194: Onjet supprimé: '%s'/'%s' {%u} de votre liste de 'autolootitem'.
1195: Vous pouvez avoir %d Objets dans votre liste d'Objets ramassés automatiquement avec 'autolootitem'.
1196: Pour ajouter un Objet à votre liste, utilisez "@alootid +<nom_ou_ID_Objet>". Pour supprimer un Objet de la liste, utilisez "@alootid -<nom_ou_ID_Objet>".
1197: "@alootid reset" videra votre liste d'Objets ramassés automatiquement avec 'autolootitem'.
@@ -1148,12 +1147,12 @@
1239: Entrez un nom de monstre/ID (usage: @mobinfo <nom_du_monstre_ou_ID>).
1240: Monstre MVP: '%s'/'%s'/'%s' (%d)
1241: Monstre: '%s'/'%s'/'%s' (%d)
1242: Lv:%d HP:%d Base EXP:%u Job EXP:%u HIT:%d FLEE:%d
1242: Lv:%d HP:%d Base EXP:%llu Job EXP:%llu HIT:%d FLEE:%d
1194: Предмет: '%s'/'%s' {%hu} удалён из списка автоматической сборки предметов.
1194: Предмет: '%s'/'%s' {%u} удалён из списка автоматической сборки предметов.
1195: Вы можете иметь %d предметов в списке автоматической сборки предметов.
1196: Чтобы добавить предмет в список используйте "@alootid +<ID/название предмета>". Чтобы удалить предмет из списка: "@alootid -<ID/название предмета>".
75: En estos momentos no hay ninguna guerra de clanes.
76: Se han añadido todas las habilidades a tu árbol de habilidades.
77: Estos son los resultados de la búsqueda de '%s' (nombre: ID):
78: %s: %d
78: %s: %u
79: Total de resultados: %d
80: Debes introducir el nombre del monstruo o su ID.
81: Tu nivel de GM no te permite utilizar este comando en ese jugador.
@@ -179,7 +179,7 @@
166: No se ha refinado ningún objeto.
167: Se ha refinado 1 objeto.
168: Se han refinado %d objetos.
169: El objeto (%hu: '%s') no puede ser equipado.
169: El objeto (%u: '%s') no puede ser equipado.
170: No puedes equiparte ese objeto.
171: %d - vacío
//172: Has reemplazado tu lugar memorizado %d - %s (%d,%d).
@@ -458,8 +458,7 @@
// Mensajes de homúnculos
450: Ya tienes un homúnculo.
// Mensaje al devolver la mascota al huevo
451: No puedes devolver tu mascota al huevo porque tu inventario está lleno.
//451 free
// Sistema de mensajería
460: Introduce un idioma válido (instrucciones: @langtype <idioma>)
@@ -546,7 +545,7 @@
// Mensajes del sistemade intercambio de objetos
538: Se ha detectado una irregularidad en el intercambio de objetos del personaje '%s' (cuenta: %d), está intentando intercambiar más de lo que tiene.
539: Ese jugador tiene %d unidades del objeto (id: %hu), pero ha intentado intercambiar %d.
539: Ese jugador tiene %d unidades del objeto (id: %u), pero ha intentado intercambiar %d.
540: Ese jugador ha sido bloqueado.
// Anuncios de consecución de objetos poco comunes y robos de objetos.
@@ -734,19 +733,19 @@
707: Serás VIP hasta: %s
708: El jugador será VIP hasta: %s
709: El objeto %hu ha sido eliminado de tu inventario.
710: El objeto %hu ha sido eliminado de tu carro.
711: El objeto %hu ha sido eliminado de tu almacén.
709: El objeto %u ha sido eliminado de tu inventario.
710: El objeto %u ha sido eliminado de tu carro.
711: El objeto %u ha sido eliminado de tu almacén.
// Item shop
712: No tienes suficientes %s (%hu).
712: No tienes suficientes %s (%u).
713: No tienes suficientes '%s'.
714: Listado de la tienda de objetos: %s (%hu)
714: Listado de la tienda de objetos: %s (%u)
715: Listado de puntos de la tienda: '%s'
716: Tu '%s' ahora es: %d
// MVP EXP reward message
717: ¡Enhorabuena! ¡Eres todo un MVP! ¡¡Puntos de experiencia obtenidos: %u!!
717: ¡Enhorabuena! ¡Eres todo un MVP! ¡¡Puntos de experiencia obtenidos: %llu!!
// @showrate
718: La información de ratio personal no se mostrará.
@@ -1018,7 +1017,7 @@
// @reloadatcommand
1036: Ha ocurrido un error al cargar el archivo groups.conf.
1037: Ha ocurrido un error al cargar el archivo atcommand_athena.conf.
//1037 free
// @mapinfo
1038: Introduce un número de la lista (instrucciones: @mapinfo <0-3> <mapa>).
@@ -1195,11 +1194,11 @@
1189: Ese objeto no existe.
1190: Ese objeto ya estaba programado para ser recogido automáticamente.
1191: Tu lista de recogida de objetos de forma automática está llena. Elimina alguno de esos objetos con @autolootid <nombre/ID del objeto>.
1192: Recogiendo: '%s'/'%s' {%hu}
1192: Recogiendo: '%s'/'%s' {%u}
1193: No estás recogiendo ese objeto.
1194: Has eliminado'%s'/'%s' {%hu} de tu lista de recogida de objetos.
1194: Has eliminado'%s'/'%s' {%u} de tu lista de recogida de objetos.
1195: Puedes almacenar %d objetos en tu lista de recogida de objetos.
1196: Para añadir un nuevo objeto a la lista utiliza @alootid <nombre/ID del objeto>. Para eliminar un objeto utiliza @alootid <nombre/ID del objeto>.
1196: Para añadir un nuevo objeto a la lista utiliza @alootid +<nombre/ID del objeto>. Para eliminar un objeto utiliza @alootid -<nombre/ID del objeto>.
1197: "@alootid reset" reiniciará tu lista de recogida de objetos.
1198: Tu lista de recogida de objetos está vacía.
1199: Lista de objetos para recoger automáticamente:
@@ -1287,12 +1286,12 @@
1239: Introduce el nombre/ID de un monstruo (instrucciones: @mobinfo <nombre/ID del monstruo>).
1240: Monstruo MVP: '%s'/'%s'/'%s' (%d)
1241: Monstruo: '%s'/'%s'/'%s' (%d)
1242: Nv:%d HP:%d EXP de base:%u EXP de oficio:%u HIT:%d FLEE:%d
1242: Nv:%d HP:%d EXP de base:%llu EXP de oficio:%llu HIT:%d FLEE:%d
// Defines if an item cannot be used under special circumstances.
//
// Structure of Database:
// ItemID,Flag,Group ID Override
//
// Flag:
// 1 = Cannot use item while sitting
// ... [more to come]
//
// Group ID Override:
// Group ID necessary to override this setting.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.