Merged Rytech2/4CrAM-Open@978d4fc406
Original author is @Rytech2 and all credits belong to him.
Cleanups by @Lemongrass3110, @aleos89 and @Atemo.
Co-authored-by: Rytech2 <rytech16@gmail.com>
Co-authored-by: aleos <aleos89@users.noreply.github.com>
Co-authored-by: Atemo <capucrath@gmail.com>
* Converts the Skill Tree Tables file into YAML.
* Includes CSV2YAML converter.
* Corrected the tree according to the client (SkillInfoList)
* Removed 3rd jobs tree from pre-renewal, some required stats not being loaded by default
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Fixes#6360.
* Adds missing HP/SP values for Rebellion, Baby Rebellion, Expanded Super Novice, Expanded Super Baby, Baby Summoner, Star Emperor, Baby Star Emperor, Soul Reaper, and Baby Soul Reaper.
* Adds official HP/SP values for Summoner, Baby Summoner, Star Emperor, Baby Star Emperor, Soul Reaper, and Baby Soul Reaper. These are missing levels 176-200 though.
* Fixes the BonusStats parser to properly check for the max job level.
* Adds several logical checks for blocking level 0 during parse.
* Adds several logical checks for skipping content over a job's max level for HP/SP and BEXP/JEXP.
* Fixes the SP values being filled against the max job level instead of base level if the HP/SP Table wasn't being used.
* The parser will now properly fill the HP/SP array with 0's so that the loadingFinished() function can properly calculate a value to insert if something is missing.
* Adds a better solution to CSV2YAML when checking for the max base level when converting HP/SP.
* Fixes the CSV2YAML generating bad job bonus stat conversions.
Thanks to @kaninhot004 and @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Converts the job_db, job_db2, job_basehpsp_db, job_exp, and job_param_db to YAML.
* Optimizes several places utilizing C++ features.
* Removes 3rd class job data from pre-renewal.
* Adds minimal support for 4th jobs.
* Job level bonus stats now supports multiple bonuses per level as well as an integer for the specific stat instead of only being limited to 1.
* Includes CSV2YAML converter.
Thanks to @Lemongrass3110, @Atemo, @Balferian, @attackjom, @dimasshotta!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Fixes#6346.
* Resolves an issue with bonus3 bAutoSpell, bonus3 bAutoSpellWhenHit, and bonus4 bAutoSpellOnSkill having their self and target flags flipped.
Thanks to @Anjuts and @mazvi!
* Fixes#6153.
* Fixes variable types to avoid any loss of data.
* Fixes AutoSpellOnSkill random level cast being mixed with the target selection flag.
* Removes the overloaded use of variables for the autospell bonuses.
Thanks to @randell1993 and @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Fixes#6232.
* Follow up to 9e4dc7d.
* Fixes the aftercast delay of skills so that status and item bonuses properly stack before calculating the final result.
* bSkillDelay should add directly to the time and not be included in the rate formula.
Thanks to @AsurielRO!
* Fixes#6095.
* Proper implementation of Soul Attack for Doram.
* Adds the missing client EFST when learning the skill.
* Fixes the behavior so that skills that block or reduce ranged attacks are properly taken into account.
Thanks to @Everade!
If use_statpoint_table was disabled and the player got additional stats or status points from somewhere (bugs in scripts, gm commands, etc.) they were not reset correctly, because the additional points were taken into account when reseting the stats.
Thanks to @Everade
* Fixes#5449.
* Updates several Monster Transform items with their updated bonuses.
Thanks to @Balferian!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* 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 !
* Combines mob_race2 and mob_drop databases into one.
* General cleanups and optimizations.
* Includes CSV2YAML conversion tool.
Thanks to @vstumpf, @lukasrmattos, and @Lemongrass3110!
* 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!
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#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>
* 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>