91 Commits

Author SHA1 Message Date
Lemongrass3110
373d724bdf Follow up to df7ccca 2021-09-20 20:40:57 +02:00
Lemongrass3110
df7cccaa56
Fixed autobonus on the same equip slot (#6257)
Fixes #2079

Thanks to @LunarSHINING for reporting and testing
Thanks to @Tokeiburu for the initial report
Thanks to @Atemo and @aleos89 for reviewing
2021-09-19 23:22:43 +02:00
Atemo
f230b13ded
Converted statpoint.txt to YAML (#6010)
* Converts the Statpoint Database into YAML.
* Includes CSV2YAML converter.
* Added start_status_points to inter_athena.conf

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2021-07-05 19:06:49 +02:00
Lemongrass3110
55ca79961d Follow up to f77cb8a
Added a check for required inventory slots.
Additionally fixed some checks that have been wrong for years.
2021-04-15 01:34:39 +02:00
Lemongrass3110
f77cb8a37b
Fixed RODEX's retrieve all feature (#5842)
Thanks to @limitro
2021-04-11 02:27:17 +02:00
Lemongrass3110
1a8cfbffc0
Initial release of the refine UI (#2494)
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>
2021-04-11 00:05:15 +02:00
Atemo
195b21d4a8
Fixed an issue with warp "Random",0,0;
* 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 !
2021-04-02 18:18:49 +02:00
Aleos
2b94f0aeff
Implements autoloot support for Mercenary (#5594)
* 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>
2021-02-27 17:14:10 -05:00
Aleos
7992e0891b
Converts the mob database to YAML (#5435)
* Combines mob_race2 and mob_drop databases into one.
* General cleanups and optimizations.
* Includes CSV2YAML conversion tool.
Thanks to @vstumpf, @lukasrmattos, and @Lemongrass3110!
2021-02-16 17:09:06 -05:00
Aleos
c36f6b820f
Adds support for new Madogear appearance (#5081)
* 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!
2021-02-01 16:09:24 -05:00
Atemo
a33887b59f
Questinfo correction (#5523)
* Corrected questinfo bubble not always being displayed
* Docs updated
* Changed qi_display to std::vector

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

Thanks to @lighta @aleos89 @Lemongrass3110 !
2021-01-15 22:49:35 +01:00
Aleos
d4d8130bcf
Adds item bonus bReduceDamageReturn (#5601)
* Fixes #5488.
* Adds item bonus bReduceDamageReturn which reduces melee, ranged, and magic reflected damage.
Thanks to @Atemo!
2020-12-07 08:50:26 -05:00
Lemongrass3110
81e7d8ef89
Converted penalty db to YAML (#5562)
Fixes #5463

Added penalty for MVP exp and MVP drops
Removed penalty support for monster classes

Thanks to @attackjom and @aleos89
2020-11-21 01:05:07 +01:00
Vincent Stumpf
de621fee16
Fix erroneous freeing of global combo script (#5483)
Fixes #5476
When removing a combo, we free the bonus script in the global map
Thanks to @saya9200
2020-10-25 22:53:43 +01:00
Lemongrass3110
ed473d066d
Cleaned up hat effect code (#5462)
Converted from self written container to std::vector.
Converted clif code to struct usage.
2020-10-23 01:07:12 +02:00
Aleos
04cfe17b2b
Converted item database to YAML (#4335)
* 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>
2020-10-21 19:02:11 -04:00
Jittapan Pluemsumran
8e84f0e9ef
Grouped bonus arrays into a single struct (#5454) 2020-10-19 11:08:11 +07:00
Lemongrass3110
2d9ef842e4
Added additional idle options (#5284)
Previously no NPC interaction was taken into account.
This will be fixed and enabled by default now.
2020-08-08 12:36:28 +02:00
Vincent Stumpf
3776bfbaa3
Support itemids up to ~2 billion (#5141)
Co-authored-by: aleos89 <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2020-08-08 12:06:07 +02:00
Cydh Ramdh
b898c9bc29
Added "bonus2 bMagicSubDefEle,e,x;" (#4375)
* "+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
2020-08-04 11:04:30 -04:00
Cydh Ramdh
1658f273de
Adjust EXP storage to uint64 (#4377)
* 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>
2020-07-28 16:43:46 -04:00
Jittapan Pluemsumran
2e04ca98b0
Random options update (#3993)
* Implemented additional random options from official server
Fixed #3988

Thanks to @Stolao @cydh @aleos89
2020-06-30 23:39:40 +02:00
Aleos
cef956d352
Soul Reaper souls now persist relog (#5142)
* 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!
2020-06-29 13:49:01 -04:00
Aleos
3804d7f603
Adds support for instance destruction button (#5073)
* 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>
2020-06-17 14:52:22 -04:00
Aleos
35c3301dda
Clean up Summoner Power skill checks (#4999)
* 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!
2020-06-06 22:42:30 -04:00
Lemongrass3110
45cd5808b7
Initial support for newer packet versions (#4944)
Basic support for packets up to April 2020
Changing the default packet version to 2020-04-01

Thanks to everyone involved!
2020-06-03 16:35:10 +02:00
Aleos
7cc59c6708
Adjusts a few checks for item tradability (#4995)
* Follow up to bfb6972.
* Adds a new return array for script command inventorylist: `@inventorylist_tradable`
* Adjusts script command countitem to not count rental items.
2020-05-25 20:28:11 -04:00
Aleos
14c388b401
Resolves some Battleground issues (#4725)
* 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>
2020-05-25 12:39:36 -04:00
Aleos
44e5c5bcc7
Job Improvement Project - Rune Knight (Part 2) (#4709)
* Fixes #4708.
* kRO Changelog: http://ro.gnjoy.com/news/update/View.asp?seq=243&curpage=1
Thanks to @ecdarreola, @Litro, @Haydrich, and @LordWhiplash!
2020-05-18 13:35:07 -04:00
Aleos
931155ee33
Job Improvement Project - Super Novice (#4429)
* Fixes #4427.
* kRO Changelog: http://ro.gnjoy.com/news/notice/View.asp?BBSMode=10001&seq=7081
Thanks to @Rytech2!
2020-05-07 14:48:44 -04:00
Daegaladh
ca56c060cf
Added independent idle time and settings for homunculus share (#4761)
* Follow up to 921b3e2c3e9eae36cbf2ca35bcede6e0d73ba074
2020-04-27 20:21:22 +02:00
aleos
0021b6d577 Revert "SQL synchronization"
This reverts commit 53761b952af832455526401acfc8b388a60a5d84.
2020-03-24 17:49:00 -04:00
rAthenaAPI
53761b952a SQL synchronization 2020-03-24 18:38:07 +01:00
Aleos
412d90048d
Implemented Star Emperor and Soul Reaper classes (#4386)
* 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!
2020-03-24 13:37:58 -04:00
Atemo
de80c5aab6
[Suggestion] Implement cloakonnpc/cloakoffnpc (#4688)
* 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
2020-03-11 22:47:23 +01:00
Aleos
ea8da71cdd
Rebalancing of 1st/2nd/Transcendent class skills (#4072)
* Fixes #3715.
* kRO changelog: http://ro.gnjoy.com/news/notice/View.asp?seq=7040
* Refactored size_fix database to YAML.
Thanks to @flamefury for his translations!
Thanks to @Angelic234, @mrjnumber1, @Badarosk0, @OptimusM, @attackjom, @Playtester, Melvo, @cydh, @cahya1992, Sigma, @whupdo, @teededung, @ecdarreola, @hotspicy945, @RagnaWay, @sader1992 for bug testing!
2020-03-06 10:57:19 -05:00
Aleos
97372ff423
Adds reload attendance database atcommand (#4657)
* 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!
2020-02-23 17:10:17 -05:00
Aleos
2931c00bd4
Implemented the Battleground Queue System (#3995)
* 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!
2020-02-12 08:26:59 -05:00
Lemongrass3110
b86926a7a2
Fixed a compiler warning in script.cpp (#4586)
Fixes #4582

Thanks to @idk-whoami and @aleos89
2020-02-03 14:44:58 +01:00
Aleos
dca3797d44
Converted the skill database to YAML (#4531)
* 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>
2020-01-31 14:14:08 -05:00
Aleos
271489960a
Corrected Feint Bomb infinite status (#4550)
* Fixes #4508.
* Resolves an issue where Feint Bomb was giving users infinite duration from AoE statuses.
Thanks to @laziem!
2020-01-23 16:09:52 -05:00
Daegaladh
921b3e2c3e
Added conf option for homunculus idle no share (#4548)
* Added conf option to make characters stop receiving exp/drop from homunculi when they are idle
2020-01-22 18:55:59 +01:00
Aleos
bf9a3b47fe
Removed an extra status calculation for players (#4525)
* 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!
2020-01-17 20:30:35 -05:00
Lemongrass3110
e72c7360cf
Added int64 support to the script engine (#4522)
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.
2020-01-13 14:44:48 +01:00
Aleos
c52b3b784a
Expanded a couple baby job names (#4500)
* 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.
2020-01-01 22:53:40 -05:00
Aleos
783009d642
Updated Achievement EXP to official values (#4326)
* 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!
2019-10-11 09:42:01 -04:00
Atemo
b412c4fcab
questinfo requirement update (#4168)
* 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!
2019-10-06 17:15:46 +02:00
Cydh Ramdh
17f32a1756
Fixed CZ_STANDING_RESURRECTION check (#4242)
* 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
2019-07-22 22:27:35 +07:00
Joam
aae31a19a5 Update Itemdb (JRO item) (#4161)
* 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
2019-06-25 20:03:33 +02:00
Jittapan Pluemsumran
7ad1b32d7d Additional fixes for cart exploit (#4148)
* 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!
2019-05-14 14:19:26 -04:00