Communication between the login-server and the client is now done with structs.
Moved the definition of the global reusable packet buffer to socket.hpp
* Implemented MT_MIGHTY_SMASH
- Deals melee physical damage to all targets around the user.
- When using while under Axe Stomp buff, increases damage and number of hit.
- Fixed casting time : - (based on level 10).
- Variable Casting time : - (based on level 10).
- Cooldown: 0.3 seconds (based on level 10).
- Global cool time : - (based on level 10).
* Updated Mighty Smash to last rebalance
- Increases cooldown from 0.3 seconds to 0.5 seconds.
- Adds global cool time by 0.25 seconds.
- Increases SP consumption from 78 to 95 based on level 10.
- Reduces base damage from 3100%/3150%Atk to 1825%/1850%Atk per hit based on level 10.
- Increases number of hit from 3/5 hits to 5/7 hits.
- While under Axe Stomp buff, increases factor weight of POW in skill formula from 7 to 10.
* Implemented MT_TRIPLE_LASER
- Deals long ranged physical damage to the target.
- Can only be used when using Madogear.
- Has a chance to trigger critical, the critical chance is the user's cri.
- Damage property depends on weapon property.
- Doesn't consume magic gear fuel or cannonball.
- Fixed casting time : 0.5 seconds (based on level 5).
- Variable Casting time : 1 seconds (based on level 5).
- Cooldown: 0.25 seconds (based on level 5).
- Global cool time : - (based on level 5).
* Updated Triple Laser to last rebalance
- Increases cooldown from 0.25 seconds to 0.35 seconds.
- Adds global cool time by 0.25 seconds.
- Increases base damage from 3300%Atk to 5050%Atk per hit based on level 5.
- Increases factor weight of POW in skill formula from 10 to 12.
* Implemented MT_SPARK_BLASTER
- Deals long ranged physical damage to the target and surrounding enemies around the target with the range up to 9x9 cells.
- Can only be used when using Madogear.
- Affected by Hit/Flee calculation.
- Ignores physical defense.
- Doesn't consume magic gear fuel or cannonball.
- Damage property depends on weapon property.
- Recovers 2 AP.
- Fixed casting time : 0.5 seconds (based on level 10).
- Variable Casting time : 1.5 seconds (based on level 10).
- Cooldown: 0.7 seconds (based on level 10).
- Global cool time : 0.25 seconds (based on level 10).
* Updated Spark Blaster to last rebalance
- Reduces cooldown from 0.7 seconds to 0.5 seconds.
- Increases base damage from 7750%Atk to 9250%Atk based on level 10.
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Credits to @datawulf
* Implemented NPC_BLEEDING2
Copy from NPC_BLEEDING for now except
* element always Neutral
* differents rates
* Implemented NPC_HELLJUDGEMENT2
Copy from NPC_HELLJUDGEMENT except
* element neutral
* skills inflicts a random status effect
* Implemented NPC_WIDEFREEZE2
Copy from NPC_WIDEFREEZE
* Implemented NPC_ICEBREATH2
Copy from NPC_ICEBREATH except
* Chance 100% instead of 70%
* Splash area 4 instead of 3
* Implemented NPC_WIDEBLEEDING2
Copy from NPC_WIDEBLEEDING
* Implemented NPC_WIDECONFUSE2
Copy from NPC_WIDECONFUSE
* Implemented NPC_WIDESILENCE2
Copy from NPC_WIDESILENCE
* Implemented NPC_WIDESTUN2
Copy from NPC_WIDESTUN
* Implemented NPC_WIDESILENCE2
Copy from NPC_WIDESILENCE
* Implemented NPC_WIDESLEEP2
Copy from NPC_WIDESLEEP
* Implemented NPC_WIDECURSE2
Copy from NPC_WIDECURSE
* Implemented NPC_WIDESTONE2
Copy from NPC_WIDESTONE
Thanks to @OptimusM, @Lemongrass3110, @aleos89 !
Converted last_point to mapname
Converted save_point to mapname
Converted memo to mapname
Converted start point to mapname
Removed default map
Converted party member to mapname
Converted maplists to mapname
Removed mapindex loading
Fixed instance loading with multiple map-servers
Fixed castle loading with multiple map-servers
Fixed battleground loading with multiple map-servers
Fixed warping between map-servers
Thanks to @aleos89 for his help!
The login-server ignored the value stored in the `character_slots` column of the `login` table.
Also some additional logic fixes and safeguards.
Thanks to @Pokye
* Fixes#7195.
* Adds a new save field for battle config spawn_direction which was not working for players who log out and in.
Thanks to @SapitoSucio and @Lemongrass3110!
* Items that grant TF_DOUBLE now no longer require bDoubleRate.
* Adds pc_checkskill_flag() to return a skill's flag value.
Thanks to @eppc0330 and @secretdataz!
* 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>
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>
* Combines mob_race2 and mob_drop databases into one.
* General cleanups and optimizations.
* Includes CSV2YAML conversion tool.
Thanks to @vstumpf, @lukasrmattos, and @Lemongrass3110!
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#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.
* 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>
* 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>
* 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>
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.
* 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>
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.
* 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.
* 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!
* 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