Commit Graph

44 Commits

Author SHA1 Message Date
ronancpl
cc541f39d5 Dynamic World/Channel shutdown + Equip levels on Duey + AP/SP patch
Implemented dynamic world/channel shutdown, coupling with the dynamic deployment from last commit rendering on a fully automated world/channel management.
Fixed some spawned mobs not being properly registered on events.
Implemented a respawn mechanic sensitive to number of players on map. More mobs will spawn the greater the number of players is. Server flag: USE_ENABLE_FULL_RESPAWN = false.
Implemented a mechanic for delayed mob loot drops, on which the delay is determined by the death animation duration. Server flag: USE_SPAWN_LOOT_ON_ANIMATION = true.
Fixed EIM being disposed incorrectly when the dispose is called through scripts.
Protected concurrently AP and SP distribution handlers.
Slightly improved HealOvertimeHandler performance.
Fixed Duey not propagating equipment level and experience when transfering items.
Buyback now has a short grace period, granting the returning player time for decision making (players won't die right away, rather sticks at 1HP).
Reviewed item monitor task not properly protected concurrently.
Fixed some issues with ropes on some Kampung Village maps.
Fixed "maxhpmp" command allowing to pass negative values.
2018-07-28 22:00:52 -03:00
ronancpl
8aadf7c369 Dynamic World/Channel deployment + Channel scheduler update
Added "8-slot SETUP expand" item on the CashShop.
Solved a concurrency issue on the fameGainByQuest method.
Refactored many resource freeing modules throughout the source code.
Implemented dynamic deployment of worlds and channels on the server system. Only creation of channels and worlds are available on this feature.
Added a dedicated worker for schedules requested on EventManager.
Fixed a potential cause for deadlocks on the channel schedulers' system.
Refactored many schedules used by the EventManager and Channel, futher improving overall scheduling performance on the server.
2018-07-23 20:45:41 -03:00
ronancpl
bee8b5259b Heal GMS + Improved chnl workers & Pshop tooltip + Equips on party HP
Slightly improved channel and disease announce workers performance.
Completion of repeatable quests no longer generates fame to players.
Equipment drop rates of Leprechaun were slightly decreased.
Fixed Pet Item Ignore not checking certain exploit cases correctly.
Optimized Pet Item Ignore server handler performance.
Fixed some exploits and improved performance on PetLootHandler.
Improved concurrency protection on MapleInventoryManipulator.
Heal skill effect on players now works GMS-intended, as description says. Also removed the delayed Heal cast effect to others.
Fixed party player HPBar not accounting the player's HP stat gained on equips towards the effective MaxHP.
The duration of mists generated by mobs has been rescaled to 10x longer than what has been displayed until now (wz duration property is supposed to actually be in 100ms).
Optimized timer management for mob skill cooldown and elemental effectiveness.
Implemented an additional inventory check system, to be used in cases where it's expected to remove a set group for items (with quantity) to then add a new group of items.
Fixed Player Shop/Hired Merchant "vacancy" tooltip, now properly showing whether the store has a visitor room or is already full at that time.
Fixed Player Shops only using the standard stand type.
Fixed cash pet food ignoring certain pet itemids when reading data from WZ.
2018-07-21 14:40:46 -03:00
ronancpl
f439c158e2 Login Purification + Optimized currenttime calls + Standardized WZ
Repelled ultimately the game-breaking issue that was introduced recently on the revamp of the login phase.
Optimized the getcurrenttime calls to the OS. Made most of the handler calls fetch directly from the Server object instead, the Server itself delegated with periodically updating the current time value. The result is an slightly delayed currenttime, backed with realtime value update within minutes.
Protected concurrently inventory sort handlers. Expected no more NullPointers from the sorting feature.
Added a server flag to limit cash items being sold on player shops/hired merchants.
Stabilized the MapleTV mechanics, and activities properly split by world.
Normalized Character.wz: equipments supposed to have the "cash" property now implements it.
Normalized String.wz: every item that doesn't have a "name" property now implements it.
Normalized the XMLs that lost indentation on the last source update.
New tool: MapleInvalidItemWithNoNameFetcher. Fetches and reports itemids throughout the XMLs that doesn't contain the "name" property and equipments that lacks "cash" property.

Frolic Omniknight references aside, if you have run into any more issues regarding the new login system, please open an issue and show the steps you've done to reach the problem.
2018-07-18 13:00:53 -03:00
ronancpl
ad812de001 Improved login phase + C. scheduler & EXP share & MoveLifeHandler fix
Refactored login system, caching account data, merging some queries and using way less DB queries on login.
Server now uses associative tables for character-account and character-world, lowering considerably usage of some DB queries.
Fixed getPartyMembersOnSameMap method trying to access disconnected members, promptly throwing nulls.
Improved EXP distribution system, now crediting damage-contributing EXP to the party when the player is not present on the map.
Improved the "View-all-chars" feature mechanics, not so often disconnecting players for server response timeout anymore.
Improved Mystic Doors mechanics, now correctly spawning party players at actual door location on the off-town map.
Fixed "fly" command not working properly. All characters of that account are able to use this mechanic (client session limitation).
Fixed a critical deadlock issue on the new channel scheduler system.
Fixed some mobs not using skills, issue brought on the latest MoveLifeHandler update.
Improved slightly skill/movement synergy on the MoveLifeHandler responses.
GMs no longer creates Hall-of-fame PlayerNPCs when reaching max class level.
Fixed monsterValue script method being triggered multiple times for party members.
Fixed pinkbean not dropping items inside expedition.
Moved "recharge" command from Donator to JrGM.
2018-07-14 13:10:40 -03:00
ronancpl
94425ba616 EXP system & Mob buffs/diseases optimization
Solved a problem within EXP distribution system that would hand out less overall EXP than the expected when the amount to be earned is low.
Optimized mob buffs and diseases, now using a dedicated thread to process all status expirations on a batch.
Refactored MonitoredLockTypes names to something more easily identificable.
Added a delay on mob effect applications, to be registered in after the cast animation time.
Fixed Flame Thrower acting passively when a attacking skill is used by the player.
2018-06-30 22:48:02 -03:00
ronancpl
6cef01f946 GMS-like Wedding + Scissors of Karma + Maple Life + Buyback
Properly developed the Marriage feature in the source.
Added TRAVEL_RATE server flag, a modifier for the travel frequency rate.
Corrected stance for players in 3rd party view when entering a map to work similarly as GMS.
Fixed mobs spamming skills incoherently.
Added code support for old GMS-like PQ NPCs, where party leaders just need to click once to start a new PQ.
Implemented podium system for the Hall of Fame PlayerNPCs.
Improved character load-out system, now using way less queries to the DB in the process.
Fixed birthday field for accounts not being read correctly.
Further implemented the incomplete yet-existing Scissors of Karma mechanic.
Fixed Duey not propagating item flags when packaging an item.
Added a custom buyback system.
Refactored the character creation system, now offering support for Maple Life.
Fixed some issues with the PlayerNPC positioning system.
Added server flag allowing AP assignment for novices (beginners under level 11).
Fixed Strategy Time (GPQ) announcement being sent twice to guilds in certain cases.
Tweaked mount EXP system now awarding it accordingly with the amount of tiredness healed.
Removed the randomness aspect of closeness gain when feeding the pet, now acting accordingly with amount of fullness gained.
Fixed an exploit with Arwen script.
Fixed travel-back from Florina forcefully sending players to Lith Harbor in certain situations.
Thoroughly reviewed job skill questlines for Explorers and Aran.
Localhost edit: removed MTS block in certain maps (useful for the buyback system).
Localhost edit: removed party blocks for novices.
Localhost edit: removed AP assigning block for novices.
Localhost edit: removed speed cap.
Localhost edit: removed Maker block popping up when inputting ATK gems on non-weapons.
2018-06-05 02:40:53 -03:00
ronancpl
fca7b2adaa Implemented Kites, PlayerNPCs and C. Shop Surprise & Tweaked login
Added code support for Kites.
Reviewed concurrent access issues with pet autopot.
Addressed PlayerStorage issue where characters would not be properly deregistered from channel PlayerStorage in certain situations.
Implemented harp quest (questid 3314) because of reasons.
Added SFX to signalize KC/NLC subway departing/approaching.
Changed traveling time values to work similarly to GMS.
Properly developed the PlayerNPC feature in the source.
Added autodeployable PlayerNPC system and Hall of Fame.
Solved a glitch with NLC mayor's quiz questline that would allow a player to restart the quiz as many times one would see fit.
Added a custom server flag that allows overwriting the ToT 999 mobs to a new value (technically it doesn't overwrite, rather sets the player at quest start with 999 - n credited mobs).
Fixed permanent pets expiring after a while.
Added code support for Cash Shop Surprise item.
Reviewed login handler system as a whole, protecting many exposed flaws.
Solved a bug with ULTRA_THREE_SNAILS sometimes taking wrong etc shell from inventory.
2018-05-19 14:28:06 -03:00
ronancpl
727dfb2d62 Poison/slow update + Map-persistent diseases + Selling zero-qty rechs.
Rebalanced CafePQ rewards.
Rebalanced drop chance of some equipments and HT drops with high rates.
Fixed an weird issue where a "Targa hat" would appear as a debuff effect.
Added visual effect to be displayed to other players when the custom "Chair Mastery" skill is being used.
Slow disease is now visible to other players.
Poison damage now displays the correct damage amount to other players.
Disease status are now visible for other players when changing maps.
Fixed recharging price being accounted incorrectly.
Fixed zero-quantity rechargeables not being able to sell at NPC shops.
2018-05-03 14:05:23 -03:00
ronancpl
7d0f1cb311 Password on minigames + Broadcast diseases + Missing reactor scripts
Added script for several uncoded reactors with drop data on DB.
Improved quest status updates on the DB, now using a common "characterid" column.
Fixed several disease status not appearing for other players.
Fixed MapleTV item being taken twice per operation.
Implemented password system for minirooms such as omok/match cards. Passwords as player names will suggest to the system that player is being "invited" to the private game.
2018-05-01 02:26:55 -03:00
ronancpl
7d448cce4f Lower-bracket equip levelup & Channel/World capacity patch
Rebalanced the low level section of the equipment level up system.
Fixed EQUIP_EXP_RATE not acting as expected to be.
Changed chscroll system, now using a new flag instead of the SCROLL_CHANCE_RATE.
Optimized PlayerStorage, now using a proper name map when searching for a character name.
Tweaked some aspects of the BalrogPQ.
Improved the channel capacity bar and world server capacity checks throughout the source.
2018-04-25 12:01:24 -03:00
ronancpl
ede8ad8551 Overall wedding implementation
Implementation of the wedding feature.
2018-04-10 21:50:29 -03:00
ronancpl
3f8904ef44 Mounts & map boundings fix + Quest rates + MapleInvalidItemIdFetcher
Fixed a critical bug that would sometimes default the written mount data on the DB, causing data loss.
Removed all invalid itemids from the drop data.
Added quest rates. Instead of using the player's rates, quest rates stacks up with the server's exp and drop rates when giving quest rewards, making the values the same for all.
Adjusted map boundings to better suit the item drop positions inside the field.
New tool: MapleInvalidItemIdFetcher. It reads all existing itemids from the wz and reports inexistent itemids on the DB's drop data.
2018-02-04 14:08:18 -02:00
ronancpl
1190513d0c Improved item & drop-point checking + Dojo fixes + Duey revamp
Fixed some issues with items being dropped sometimes out-of-reach and in a weird way.
Improved item checking function, now looking up one-of-a-kind items properly.
Fixed some issues with dojo skills and possible exploits in dojo progression.
Improved Duey, now displaying better info to players.
2018-01-03 18:45:56 -02:00
ronancpl
012f965f6a New Year cards + Info on PlayerShops/HiredMerchants
New Year is coming soon! Figured out implementation for the New Year cards. Opcodes and packet structures are thanks to Eric.
New Year effect crashes/dc's the player in some cases.
Added informative notes to shop owners when transactioning an item/bundle.
2017-12-19 16:40:45 -02:00
ronancpl
b9b0015e00 Preparing for release
Solving conflicts.
Set constants to GMS-like. Ready for release.
2017-11-29 10:34:46 -02:00
ronancpl
85a81b9bf9 Neo City + Revamped EllinPQ + New Release
Fixed Neo City area, now playable.
Overhauled the EllinPQ mechanics, such as the "CLEAR" effect when passing maps, and some bug fixes along the way.
Refactored a lot of out-of-place classes and properly renamed a few others through the project.
Updated readme and licenses through the source, preparing the stage for the new release.
2017-11-29 00:57:50 -02:00
ronancpl
71ad2ee3a9 Quest clock & ThreadTracker & MapleArrowFetcher patches
Fixed quest timer UI not disappearing on the client on quest complete.
Fixed a bug on ThreadTracker, not displaying properly the last acquired lock-type.
Fixed MapleArrowFetcher giving out same values from min and max ranges. Max should always be greater than min. Updated DB drops.
Readjusted player ids now starting from 1 again, and moved field oids to start counting from 1bil.
2017-11-18 11:24:24 -02:00
ronancpl
2b38b62683 ThreadTracker + Attempt on NPC Disappearing fix
Engineered the ThreadTracker: server-embedded deadlock auditing tool, which will print error messages in case of found deadlocks (also showing all in-use locks on the time of the issue).
Changed the player's id on DB now starting from 20mil, thus preventing players from overwriting NPC/mobs with same oid in-game. Requires proper testing to see if the issue has been cleared.
2017-11-16 12:22:32 -02:00
ronancpl
44949aea37 Buff System & Map skipping fix + properly disposing Storage + Fairness to locks
Fixed buff system behaving oddly if a buff has value zero, that would render some skills "broken".
Fixed players skipping maps when trying to access portals while under a poor Internet connection.
Fixed storage not disposing players properly in cases where the players does not meet the storage conditions.
Set some locks to use fairness strategy when dealing with atomic code, in order to make the calls to it properly synchronized.
Fixed Aran introductory questline stucking players when certain conditions were met.
Added drop data for some mob versions of Fairy, Yeti and Pepe.
2017-10-29 16:02:50 -02:00
ronancpl
75e11e1996 Roaring tiger + party EXP fix + Owl leaderboard
Fixed Roaring Tiger messenger effect sticking on the client after the end on the animation. Fixed an issue with party EXP handing to low-level players leech EXP. Fixed party EXP system giving players way too much EXP in some cases. Added Owl item search ranking feature, items most searched can be displayed by the Owl instead of the hard-coded counterpart.
2017-10-20 12:48:49 -02:00
ronancpl
1ec7487bd3 White scroll & PiratePQ fix + Party for starters + concurrency protection on event scripts
Fixed successful scrolled items not using up an upgrade slot when using white scroll. Fixed some issues with the PiratePQ and added a "clear all boxes to complete a stage"-mode. Added "Party for Starters" feature. Added concurrency protection on event script modules.
2017-10-13 03:31:51 -03:00
ronancpl
3a882c7f31 Exp gain & Chaos scroll fix + Diet's MK Overhaul
Fixed issues with negative experience being distributed to characters
when killing a mob, rendering "Exp reset". Fixed chaos scroll behaving
oddly. Refactored debuff expirations to manage one list with registered
debuffs and expire times, thus lifting some load from the TimerManager.
Added concurrency protection on how World deals with parties. Thanks to
the DietStory dev team, fixed some issues with the MK maps.
2017-10-04 02:35:52 -03:00
ronancpl
ddbd679f88 Hired Merchant & Player shop fixes + Owl of Minerva
Thanks to BenjixD DietStory's dev team, many bugs found by them have
been patched (pirate quests, missing drop data, fly command, etc).
Implemented Owl of Minerva. Fixed many issues with Hired Merchant and
Player Shops. Fixed an error with the slot checking system. Added Wish
Tickets (circa-2006 GMS event) to be dropped on AmoriaPQ.
2017-09-29 18:35:42 -03:00
ronancpl
de7e686a92 Protected Hired Merchant + Buff system patch
Fixed some issues with Fredrick not retrieving the right amount of items
from Hired Merchants. Added concurrency protection for HM. Patched a
minor issue on buff system.
2017-09-26 00:18:14 -03:00
ronancpl
9c72ce1e3a Revamped buff system + skill cd/buff schedule rework
Completely rearranged buff system (system can smartly check for the best
statup to take effect for it's duration, or the server can be flagged to
act as usual). Refactored scheduling system for buffs expiration and
cooldowns to use one single thread per player rather than one per
instance.
2017-09-22 19:09:56 -03:00
ronancpl
f387d589b2 Autosave feature + Pet Ignore fix
Added experimental autosaver feature. Fixed pet ignore feature not
saving/loading data in some cases. Added concurrency protection for
inventory classes and monster book.
2017-09-11 16:53:40 -03:00
ronancpl
e064d5cbfa Vegas's spell + pet/mounts schedule revamp + CafePQ
Added Vega's Spell feature. Refactored mounts and pets schedules (now
one thread runs globally updating stats). Fixed Pet Ignore now saving to
DB. Fixed Flash Jump animation not appearing for other players just
after changing jobs. Fixed 3rd job, now as a proper event with timeout.
Introducing Brand-new PQ: CafePQ.
2017-09-08 14:36:58 -03:00
ronancpl
6628e3db54 Experimental DB pool + fixed stat overflow on equips
Implemented EXPERIMENTAL DBCP (connection pool), trying to improve
concorrent access to DB. Added door portals on Kerning Square. Fixed
equipments getting stat overflow when upgrading stats. Fixed expiring
pets crashing the client in some cases.
2017-08-23 18:01:17 -03:00
ronancpl
0a2e382c3b Savior Commit
Fixed some bugs regarding dojo, updated drop data, minor tweaks on
Mystic Doors, added expeditions for Showa Manor, Zakum and Pink Bean,
smart search for item slots on quest/npc rewarding system, attempt on
boss HPbar to focus on player's current target, quests with selectable
rewards now hands the item correctly, after the first PQ instance next
ones are loaded more smoothly.
2017-08-04 00:04:46 -03:00
ronancpl
b7c0bb6c07 Attempt on Mystic Doors
Partially fixed Mystic Doors.
2017-07-09 20:00:31 -03:00
ronancpl
6b2b3616d6 Guild & Alliances Patches
As reported by J0k3r613, patched guild system not recognizing properly
the guild leader just after creation. Patched many more issues related
to guilds and alliances.
2017-06-21 01:17:25 -03:00
ronancpl
7f6d420cf1 Coupon buff fix + concurrency fixes
Fixed coupon buff icon not showing properly. Fixed some cases involving
coupons and buff removal not dealing properly with concurrent access.
2017-06-19 17:44:01 -03:00
ronancpl
42fe74955d Guild PQ + fixed negative EXP error
Implemented Guild PQ. Fixed a problem introduced earlier where negative
EXP would be deemed as "integer overflow", provoking many game breaking
issues as result.
2017-06-18 03:19:53 -03:00
ronancpl
81f9226286 GuildPQ Queue system + revamped Warp mechanic
Added a queue system for waiting guilds outside the GPQ area. Changed
the way players are transported through maps on non-portal passing
cases: if not defined, a spawn point is chosen randomly for each player.
2017-06-13 20:47:58 -03:00
ronancpl
7a8bba98ca Fixed Guild Creation
Fixed a bug on guild creation process where the leadership would not be
assigned instantly to the guild leader (would need to change channels or
reconnect to take effect).
2017-06-12 14:53:11 -03:00
ronancpl
e1c95352c8 MapleCouponInstaller + EXP/DROP Coupon System
Added mechanics for the EXP/DROP cash coupons (such as enabling
out-of-time active coupons via command and automatic update of active
ones over the designed interval). Created MapleCouponInstaller as means
to gather info about the coupon intervals and rates from the WZs (the
generated SQL table is already updated on the db_database.sql file).
2017-05-30 13:40:27 -03:00
ronancpl
d0396e4c36 Protected Trade/Quest system + Expirable quests
Added true protection against race conditions on player trades and fixed
some situational issues. Character's quest status table also received
concurrency treatment. Quests with time limit now expires properly.
Increased subtly the performance on the server start-up.
2017-05-26 23:09:42 -03:00
ronancpl
702c69897b Fixed Guild Alliances + minor Guild rework
All Guild Alliances system is now functional. Tweaked guilds in order to
sync MapleGuildCharacter objects that were supposed to be the same when
being accessed from both MapleGuild and MapleCharacter classes.
2017-05-26 01:21:54 -03:00
ronancpl
a636f63114 Partial solution on Guild Alliances
Revamped DB tables and enabled some functionalities on Guild Alliances,
such as create one, expel/quit one and rank players.
2017-05-24 19:52:00 -03:00
ronancpl
73557f0d61 More PQ-esque script modules + HP Bar on some bosses
Completed (hopefully, now!) implementation of automated modules for PQ
scripting. Added HP bar for some bosses that wouldn't display it before
(like King Slime, Alishar and CRog).
2017-05-09 20:02:10 -03:00
ronancpl
1d8caff63f Boss Rush PQ Rewarding System + minor patches
Introducing BRPQ rewarding system (KPQ/LPQ clear-like) and patched
issues regarding "no apparent party leader" after party leader
disconnects and reconnects.
2017-04-29 12:05:26 -03:00
ronancpl
939b214fb5 New PQ: Boss Rush PQ + Ellin/PiratePQ bug fixes
Introducing Boss Rush PQ. Corrected a few issues regarding rewardings in
PiratePQ and EllinPQ and implemented a standardized way to script PQs.
2017-04-25 11:55:44 -03:00
ronancpl
972517e7b2 source
Source for my MapleSolaxiaV2 (v83 MapleStory).
2015-11-02 23:17:21 -02:00