Commit Graph

347 Commits

Author SHA1 Message Date
Ubaware
2df59b293b Issue #126 : Eliminated (almost) all object creation in AbstractMovementPacketHandler. (#487)
* Eliminated (almost) all object creation in AbstractMovementPacketHandler. Pets still use old system.

* Removed debug code & comments I forgot about.
2019-07-16 20:14:18 -03:00
ronancpl
ab5cec7f33 Quest Item Restore + Packets w/ Timezone + Item/Exp-dec Field Limits
Fixed leaders being able to create expeditions even though the already passed the day limit.
Fixed overflow case in calculated max value of skills.
Implemented item expiration from DB after the due date.
Refactored item flags using byte-length instead of short.
Added FieldLimit checks for disappearing item drops and no EXP deduction in limited areas.
Added "Quest Item Restore" functionality.
Implemented item flag auto-instantiation when generating items.
Added gate state update in Papulatus lobby area.
Fixed a recent issue regarding bounding box calculation of AoE player skills.
Implemented minidungeon close, to occur as soon as the party leader leaves the area.
Refactored HenesysPQ attributed out of the MapleMap object, now they should be available from the respective event script.
Fixed friendly mobs not dropping item periodically, a recent issue after tweaking the loot system.
Fixed Papulatus expedition closing after the exped leader leaves or a minimum of player required to start is no longer there.
Fixed several expeditions closing after performing party operations, such as "change party leader".
Reviewed expected max damage calculation for summons, which would not work properly in several occasions.
Normalized timezone from packets sent to client, now using the same timezone defined from the server flags.
Fixed certain scenarios in CPQ that would happen within the stage between the "challenge accepted" and ingress in the battlefield.
Revised credits script.
Added GM checks in the autoban method.
2019-07-15 20:22:39 -03:00
Ronan Lana
0228d4e176 Update db_database.sql 2019-07-03 13:43:31 -03:00
ronancpl
fba27fb3b1 Boss Daily Entry + Maker enable actions + Duey Quick Delivery
Fixed Legendary Spirit UI getting stuck when trying to apply scrolls in equipments without upgrade slots available.
Revised map leasing. Players no longer lose ownership when changing maps. Players are allowed to lease one map each time.
Revised expeditions warping players out as soon as the leader leaves the event or the number of players inside gets to be less than the minimum required to enter.
Fixed start/complete quest commands not acting properly for some quests.
Refactored quest loadouts unnecessarily reloading MapleData.
Implemented support for daily boss limit entry, usable on expeditions.
Revised potential exploit cases within chair, face expression, quest action, summon damage and mob damage mob handlers.
Adjusted displayed date in Duey. Value displayed now should be consistent with the expected expiration time.
Refactored damage for friendly mobs getting handled inside packet structure.
Implemented support for Quick Delivery from Duey.
Fixed Horntail specifically not dropping loots after recent updates.
Refactored commands system. All commands are instanced at boot time instead of at every call.
Fixed usage of Maker skill not sending MAKER_RESULT packet to players. This automatically reenables the actions button (such as create) in Maker UI.
Adjusted minidungeons, now using time limits specified in their respective recipes.
Reviewed the "timeLimit" property utilized by maps, which was poised to work on 2 different concepts altogether.
Fixed Gaga space event, should be functional now.
Added RPS minigame, resources implemented by Arnah.
Fixed damage taken from mob auto-destruction not working properly.
2019-06-27 20:34:39 -03:00
ronancpl
a39a210c1f Conditional Buffs & M. Magnet & Loot Patch + Exp Split + Duey Rework
Fixed Monster Magnet skill when used on bosses disconnecting the caster.
Improved conditional buff system, no longer updating buffs that are not supposed to toggle.
Added party hunting in the conditional buffs system.
Refactored usage of DB by Duey. Registered Duey items now make use of the same table as the other inventory items.
Fixed non-encapsulated unlocking in reactor class.
Fixed stylish NPCs disconnecting players when trying to display empty styles list.
Fixed a deadlock case within recently implemented update buff effects (conditional buffs mechanic).
Fixed AOE mobskills not behaving well for fixed mobs (those shouldn't take into account attribute "facingLeft").
Fixed non-flipping mobs having attribute "facingLeft" updated according to controller position.
Revised aggro system no longer having bosses expire player chase.
Fixed chalkboard being depleted upon use.
Refactored MapleMapFactory, looking for normalization of the Factory design pattern the class was intended to make use at its conception.
Added MP replenishing system for mobs, gains based on its level.
Fixed indisponibility of one-of-a-kind loots due to the killer's team already having one sample each.
Reworked the EXP split system within the source. New behavior is expected to be GMS-like.
Adjusted interaction within the NPC Nein Spirit's Baby Dragon area. Only players who interacts with quests within can access the area now. One player at a time, with a timeout timer.
Fixed check of level requisites for expeditions.
2019-06-15 15:10:56 -03:00
UltimateMors
04b11e2518 Disable commands while in jail. (#474)
Prevents possible escape while in jail. (May have to also update other cash items to also prevent possible escape.)
2019-06-05 12:37:26 -03:00
ronancpl
edb3920852 Item Raise + Gachapon Rework + Minigames & M. Magnet & M. Door patch
Fixed a glitch in inventory that would happen when trying to put items into storage.
Added "Item Raise" functionality.
Adjusted Party Search. Token sessions no longer expires due to no players found, rather are sent into a brief "inactivity" period.
Fixed Fredrick stored items not being properly erased after a character deletion.
Fixed skillbooks in stacked quantities not being useable.
New tool: MapleGachaponItemidRetriever. This tool parses the gachapon descriptor file (holding several item names, for several gachapons) and generates files for each defined gachapon with itemids of the loots.
Revised Mushroom Empire transition portals that interacts with scripted items (items now are useable through inventory, no longer being automatically removed from inventory upon crossing portals).
Fixed script "secretroom" always requiring a new key (quest reward) to access the inner rooms, which would make the room unreachable.
Reworked gachapons loots throughout the game. New loots are supposed to represent an old-school MapleSEA-like escalation of gachapon loots.
Fixed issues that would show up in the case null PIN/PIC gets checked.
Reworked skill Monster Magnet, no longer using "catch success rate" as a skill progression element. This fixes the skill disconnecting caster upon failure.
Revised Mystic Doors, no longer crashing players after the caster decides to cancel the buff moments after casting (during portal deploying effect in course).
Fixed portal access to Prime Minister crashing when trying to access on a party.
Refactored the several "startQuest/completeQuest" methods widely used in the many scripting managers. Methods that does essentially the same thing now are accessed from the superclass.
Fixed "rechargeable items" not being properly accounted for slots availability in inventory slot checking.
Fixed several issues of late within minigames.
Fixed minigames regarding double results when handling some rare scenarios.
Implemented "call for leave after finishing game" functionality of minigames.
2019-06-01 21:12:40 -03:00
ronancpl
89eca2995b Minor patch
Fixed a glitch in inventory when storing items.
Fixed leaked test code throwing issues in merchant's buy action.
2019-05-26 16:36:32 -03:00
ronancpl
bb80441af0 Party Search + Conditional Buffs
Revised skillbook drops. New drop chances are related to the holder's level and boss flag.
Adjusted party bonus EXP gains. The level difference calculation now only takes into account party members that participated in the action.
Implemented Party Search in the source.
Refactored command classes initialization to take place when booting up the server.
Implemented support for conditional buffs (e.g. card buffs that takes place only in certain areas).
Implemented topological sorting when updating buffs to the player, this allows a better vision of buff streaks to the player (buff-applying the original way assumes stat override client-side, to circumvent that this algorithm makes up for the best-fit scenario).
Fixed Arans not taking Dojo's attack speed buff properly.
Fixed pets being improperly removed from the DB after performing certain inventory actions.
2019-05-16 02:14:54 -03:00
Pandabyte
397e16bb85 Added In-game GM handbook with !id command (#463)
* Added In-game GM handbook with !id command

* Removed unused import
2019-05-04 19:49:13 -03:00
ronancpl
402d7b359d Mobstatus tooltip update on controller interchanges
Fixed mob statuses being unexpectedly revoked for the new controller at transition time.
2019-05-04 19:40:09 -03:00
jongames
e70215eb9d Update and Fix PHP bcrypt to login server bcrypt compatibility (#462)
Update jBCrypt from version 0.2 to 0.4 which resolves a security bug with character encoding and corrects an integer overflow bug.
Modify jBCrypt library to handle $2y$ hashes, which are produced by PHP's password_hash bcrypt function.  The original jBCrypt library only recognizes $2a$ hashes which makes it harder for a website CMS (content management system) to interface with the server's login and databases.

Credit to: Ariel Salomon for compatibility support of 2b, 2y, and 2x hashes fe14360010 (diff-61d1d5b7b3c721fac60702cf559d70aa)
2019-05-04 11:36:12 -03:00
ronancpl
618d53c707 MoveLifeHandler & Puppets disrupting mobbuffs patch
Cleared an issue presented recently that would try to "apply a mobskill" when it should be doing a routine check, this resulting on the mob skill not being usable at all (since it'd be in cooldown).
Fixed an issue on where casting puppets on the field would disrupt current mob buffs for the caster bowman.
2019-05-03 16:05:54 -03:00
ronancpl
383495a7e9 Clean slate counting Vicious Hammer + Scroll Handler patch
Improved clean slate, now taking Vicious Hammer slots into max upgrade slots account.
Solved some exploit cases within Scroll Handler.
2019-05-02 13:48:49 -03:00
ronancpl
615caa7937 Merge branch 'pr/459' 2019-05-02 12:49:13 -03:00
ronancpl
7ae5dd659a Merge branch 'master' of https://github.com/ronancpl/HeavenMS 2019-05-02 11:02:15 -03:00
ronancpl
c2fa7883fe Several PQ platform patches + Quest complete count + Fast meso drop
Implemented CPQ challenges using the matching system.
Fixed LanguageConstants statically acting for all players.
Fixed OPQ's <On the Way Up> stage sometimes leading players to unexpected platforms.
Fixed EllinPQ fountain not giving Altaire Fragment to players.
Fixed "Lab - Unit" stage on RnJPQ, now using correlated sequences between the units.
Fixed Fredrick handing out negative values of mesos to players.
Improved "goto" command info.
Implemented quest complete count.
Fixed mobs still being "controlled" by players even though it's already dead.
Concurrently protected adding items into inventory.
Concurrently protected EXP gain through Writs of Solomon.
Adjusted smoothly respawn rate of mobs in map (solo players in a map now experiences 75% of mobs spawned).
Fixed mesos not being able to drop so frequently (prior 200ms threshold between drops).
Tweaked matchchecking so that match checking doesn't outright dispose matching members on dismissal (match still sticks to the player until they answer or timeout).
Fixed a dupe case within storage's item store.
Added any-NPC scriptable to the source.
2019-05-02 11:02:07 -03:00
CanIGetaPR
1213fff1ed Fix NPE when custom code changes a player's HP (#458) 2019-05-01 13:24:27 -03:00
GustavCrypter
58efa571ab Update MapleItemInformationProvider.java
changes to clean slate recover vicius hammer slots
2019-04-26 20:13:45 -03:00
Ronan Lana
4df2a22422 Update README.md
Adding clarifications & typo fixes on the readme.
2019-04-26 08:50:48 -03:00
CanIGetaPR
6f00bada10 Make it more clear that production use is a goal (#454)
Make it more clear that heavenms is open to becoming production-use ready but just isn't there right now. Encourage members to contribute.
2019-04-26 08:47:53 -03:00
CanIGetaPR
a4d127afcf Fixes #455 CME When moving player (#456) 2019-04-26 08:40:39 -03:00
Ronan Lana
b6a91c523f Update README.md 2019-04-23 16:29:46 -03:00
ronancpl
e18061ffaf Turnabout on Character stats concurrency + Null remote IP patch
Cleared the concurrency conflicts that started occuring after the abstract character's listener code was set to run on new thread, potentally leading to several onStatChange mishaps.
Added a check for remoteHost being possibly null when opening a new session with the client.
2019-04-23 11:14:40 -03:00
Jayden Seah
1376c295e1 Ariant Text Translation (#451)
* Translated the NPC text to English
2019-04-23 00:35:25 -03:00
ronancpl
9eb9be8e8e Small patch 2019-04-21 21:54:41 -03:00
ronancpl
bad69dc66f Stat update & Mob skill animation & Yellow EXP patch + Packet logging
Solved a deadlock case within character stat locks that would sometimes tangle up during stat update dispatch operations.
Fixed skill animation being unproperly casted when a mob tries to use a skill even though it couldn't possibly use from its current skillset.
Fixed a bug with EXP gain (on where the solo player is on a party) where the EXP would appear in yellow even after soloing a mob.
Added packet logging.

Happy Easter, folks!
2019-04-21 21:37:29 -03:00
ronancpl
d121ba7d2a Merge branch 'master' of https://github.com/ronancpl/HeavenMS 2019-04-19 21:21:35 -03:00
ronancpl
7d0575aee4 Maplers' Well-known Battlegrounds
Fulfilled merge of Drago's AriantPQ PR #438 into the source!
Adjusted MCPQ map limits predicted within battlefield's map info node.
Added max number-of-players option when creating a AriantPQ lobby.
Added party creation check when trying to create one inside the AriantPQ rooms.
Adjusted several AriantPQ mechanics, in order to either improve the existent features or make those that was still unavailable work seamlessly (score update, ariant batlle points).
2019-04-19 21:20:46 -03:00
Jayden Seah
060b984f48 Reactory Factory Small Fix + Festival of Lights (NPC) (#449)
* Fixed the "INVALID ID" while warping to certain MAPID with XML existed. (Thanks to Ronan)
* Started to fix the quest "Festival of Lights" - Now Simon warps you to the Shalom Temple in Happville
2019-04-19 00:29:37 -03:00
ronancpl
0b80389971 Party loot & Mob Skill cooldown patch
Fixed an issue with party loot that started from recent updates.
Implemented party loot permission update for players ingressing a party.
Fixed mob skills not using cooldown time.
2019-04-06 23:57:27 -03:00
weenie33
ee23a9405a Remove character at the start of the file breaking SQL syntax. Remove id column from temp_data table when deploying database to fix error running db_drops.sql after db_database.sql (#442) 2019-04-05 19:23:11 -03:00
ronancpl
a15713dfa2 "Exp-party" Pi + Event script disabled on dispose + Personal loot fix
Refactored event scripts, no longer triggering after the event is deemed disposed.
Added MCPQ access in Dimensional Doors.
Revised Crusader/Dawn Warrior's Combo Attack, no longer resetting orbs after recasting during active time.
Added 4th job advancement handing out Maple Warrior skill book.
Fixed several issues with not being able to collect drops within owned exclusivity time when back-and-forth changing maps.
Revised visual EXP gain. Players that participated most in the defeat of the mob has the gain displayed in white, else yellow, somewhat similar to GMS.
Fixed client not disconnecting properly after closing the game inside MTS/Cash Shop, leading to no update on account's login state.
Fixed wrongly inputted PIC in anti-multiclient system blocking accounts to login under the same IP.
Fixed parameterless command inputs counting as "one empty command".
2019-04-04 14:02:15 -03:00
ronancpl
0b6951527d Change channel transition patch
Solved an issue where players were being unable to return to the game once changing channels.
2019-03-28 17:09:18 -03:00
ronancpl
16deacb426 Cash shop transition patch
Solved an issue where players were being unable to return to the game once exiting the cash shop.
2019-03-27 13:27:38 -03:00
ronancpl
83266508af CPQ tidyup patch + Guild Creation matcher + Solution to Login Accid=0
Adjusted AP gains, to get it to work following the AP Reset check method.
Fixed usage of inexistent itemids on CPQ and fishing.
Fixed one-of-a-kind items being lost in player trades due to missing inventory checks.
Implemented matching system for the guild creation phase. All players intending to join the new guild must be on the Guild Headquartes and accept the creation of the guild.
Fixed changing jobs not properly updating info on the party tab.
Fixed double tooltip information on CPQ actions UI.
Fixed CPQ not disbanding after a player leaves the party/instance.
Fixed checks for "in-progress" CPQ instances.
Fixed changing maps on CPQ not leading players back to the starting battlefield.
Reviewed login system, now preventing non-local IP connecting on local server and local IP on non-local server.
Reviewed login system, now cherrypicking sessions in transition state when trying to disconnect them due to a failed login (avoiding possible mishaps due to duplicate sessions of a same account).
Adjusted PiratePQ stage 2, now mobs respawn rather than making party leader request for new waves.
Adjusted Prime Minister, its spawn is no longer related to starting the quest. It should also allow party fights.
Fixed "forcevac" command not properly applying, rather sending to inventory, "consume-on-pickup" items.
Fixed (probably) accId = 0 issue on login, that was occurring due to client accountid's being set to 0 a while before being checked once again on finishLogin().
Fixed an issue with extended time on CPQ not properly showing the end-match's visual effect.
2019-03-26 16:28:41 -03:00
Diego Armando de Freitas Matos
0d7e8daf8e ariantpq + correct use catch item 2019-03-20 19:51:45 -03:00
ronancpl
3bdf8cb2be The great MCPQ Merge offensive
Fulfilled the lovely pull request #427 from @dragoso, which added in backing code content to HeavenMS.
Implemented structural changes for the Marriage wishlist, in order to receive, maintain and distribute gifts to spouses.
Added untradeable check on wishlist gift handler.
Adjusted CPQ drops to actually load from DB rathe than hard-coded.
Fixed CPQ "random disease to player/party" functionality not applying properly.
Adjusted how CPQ maps are generated. It directly loads a new area from WZ (this process should at least removes the player's spawned mobs) rather than reset the cache at every MCPQ creation.
2019-03-15 12:08:21 -03:00
ronancpl
1383efd6c3 Merge branch 'pr/427' 2019-03-12 21:20:40 -03:00
ronancpl
9538c415e1 Trade results + Map-Ownership & Fishing + P. EXP distribution rework
Fixed an issue where players could lose priority over recently dropped items after switching maps.
Adjusted EXP bonus buffs to also cover party bonus gains.
Fixed items taken back from merchants not properly checking for stacking opportunities in player inventory.
Fixed some merchant references in visitors' player object not being properly cleared when owner closes shop.
Adjusted merchants to automatically close as soon as the merchant owner finishes maintenance process with it having no items in store.
Added trade result opcodes. Trade results now should work almost as intended originally.
Implemented server-side check for portal distance when deploying player shops and merchants.
Implemented server-side check for whether local or remote IP is being used when logging in a local/remote server (this should mitigate a few of the issues people may find when trying to log in game world).
Implemented commands designed for management of opened IO sessions.
Fixed chalkboard not showing up for owner player when changing maps.
Added "time left" functionality for merchant owners managing the opened store.
Fixed skillbooks not showing properly for other players in the map.
Fixed commands using lowercased-version of content inputted by player.
Implemented the Fredrick expected fee on using the Store Bank service.
Implemented "exclusive invitation management" in the system. Inviters are notified the invited players are already managing an invite, should it be visually "in-progress" for that one.
Implemented "map ownership". Non-map owners are unable to farm in an area if they are not party members with the owner or until the ownership rescinds.
Adjusted inventory sort feature, now sorting projectile items in such a fashion that commonly stronger versions comes before the basic ones.
Added a visual effect that shows up when obtaining Aran skills.
Revised party EXP gain system. Party bonuses now accounts a fraction of the accumulated EXP gained by members when defeating a mob, and raw EXP gained by a player is kept the same regardless of him/her being in a party or not (thus a bonus being REALLY a bonus).
Implemented a custom fishing system in the source, on which during "seasonal" times (that gets arbitrarily defined by both day-of-year and time-of-day) fishes are more likely to be hooked. Such likelihood also improved depending on the amount of mesos spent as lure.
2019-03-10 01:30:22 -03:00
Diego Armando de Freitas Matos
0a8efa4238 Cpq1 ,2 add linguas 2019-03-07 22:37:00 -03:00
Diego Armando de Freitas Matos
90ad58f17f CPQ 1 CPQ 2 CASAMENTO 2019-03-06 21:55:47 -03:00
Nulliphite
799870df63 Allow everyone on the server to receive startevent message, not just the starter themselves (#425) 2019-03-01 16:35:21 -03:00
Nulliphite
2c1f117d35 Fixed indexoutofbounds error when calling @gm without anymore parameters (#415) 2019-02-27 14:05:49 -03:00
Nulliphite
0dfd57c4ee [QoL] Added broadcast message to !startevent command to increase expo… (#414)
* [QoL] Added broadcast message to !startevent command to increase exposure

* Change broadcastmessage to not just GM
2019-02-27 14:04:27 -03:00
Jerry Wang
02ede93298 Handle reborns(rebirths) - set/get from db, flag to enable/disable and 1 basic NPC to handle it (#413)
* Added ability to handle reborn, option to enable/disable in ServerConstant

* Basic rebirth NPC for wolf spirit Ryko chan - id 9010021

* Added player message when rebirth system is off

* Removed some forgotten comments

* Ryko now displays original message if rebirth is not enabled
2019-02-23 18:54:22 -03:00
Jerry Wang
1772910a52 Added votepoints into db_database.sql (#411)
* Added GM lv0 command to read votepoints and rewardpoints

* Added missing votepoints in sql and tweaked MapleClient

* Fix read from votes

* Fix votepoints sql
2019-02-23 10:17:11 -03:00
Jerry Wang
895326e819 Added GM commands for setting reward points (#408)
* Added ability to read and update rewardpoints from MapleCharacter

* Add GM commands to give reward points
2019-02-22 23:57:46 -03:00
Jerry Wang
a7b5839244 Added ability to read and update rewardpoints from MapleCharacter (#404) 2019-02-20 14:08:19 -03:00
Víctor
7a61779611 Small update correction (#402) 2019-02-18 09:09:55 -03:00