Commit Graph

374 Commits

Author SHA1 Message Date
Gambiner
b93c9ce1d6 Overhaul of in-game text focusing on consumable items (#523)
* Update Say.img.xml

* Update Act.img.xml

* Update Check.img.xml

* Cleanup of descriptions for consumable items

- Fixed broken line returns.
- Made minor adjustments to some item descriptions to make them more GMS-like.
- Fixed various typos, spelling errors, grammar problems, etc.
- Changed description of Sunrise Dew to indicate 4050 MP recovery (was 4000).
- Added description of item effects in tooltips for Heartstopper and Smore.
- Tweaked scroll and mastery book descriptions to follow a consistent format.

* Catchup updates + small fixes

- Small fixes to text here and there.
- Say.img.xml and QuestInfo.img.xml should include updates that were made from the previous HeavenMS commit.
2019-10-06 19:03:33 -03:00
ronancpl
7ee947b404 Quest progress overview + Raise UI scripting + Shelved events loadout
Performed a syllabus over quest progress tracking. Quests that were supposed to show up as startable/completable upon achieved progress should be able to do so. Reviewed progress tracking on scripts to adequate to this scenario.
Fixed some scenarios on where quest dialog popups would appear when updating a quest progress.
Fixed some scripts not using updated package addresses after the recent package refactor.
Reviewed Raise UI, no longer rendering players unable to access CS/MTS in certain scenarios.
Fixed a check of available space in inventory, when trying to obtain items from quests, not informing the player it happened due to a one-of-a-kind item already present.
Fixed quest dialog (feature present in many quests) not showing to players when completing it.
Fixed several issues with the Cygnus 1st job advancement quests.
Added scripting within Raise UI open action. Mimiana egg uses this to keep track of player's EXP progress.
Fixed pets not getting despawned as expiration takes place.
Fixed hidden players being able to control mobs when either entering map or hidden state.
Fixed estimated HP/MP alert not taking bonuses (such as from buffs or equipments) into account.
Fixed Energy Charge refreshing buff time upon touching mobs, skewing the  uptime of the skill's stat buffs.
Switched SnakeYaml for YamlBeans, which makes up for a single JAR artifact.
Refactored a channel's event scripts loadout, now taking place after the server bootup phase.
2019-10-03 20:01:09 -03:00
ronancpl
eae6dccbc0 Broad packages refactor
Added macro update when using SP reset.
Refactored several packages containing general classes.
Fixed "worker" nomenclature in class methods misleadingly denoting "task".
2019-09-20 22:41:19 -03:00
Adam James-Liebau Johnson
181573dc74 Riizade/config file (#520)
* added POJO + yaml file

* made config members public

* switched to yaml

* modified files to use YamlConfig over ServerConstants

* removed constants from ServerConstants

* removed unused imports

* removed unused import

* removed world ini

* removed now unused .ini files

* fixed docker-launch.sh

* added jackson dependency JARs

* fixed errors

* removed unused server config values, added world defaults

* don't use env variables for docker

* fixed package imports/specifiers for js files
2019-09-20 20:49:24 -03:00
ronancpl
e169971384 Knights' Seal & I. MaxHP + Adherent mob status + Script point-warps
Fixed Seal skill not working for Blaze Wizard.
Added a check against Seal skill on bosses.
Reviewed improper usage of "random spawn point arrival" at several warps on scripts.
Refactored CPQ modules fetching players from the channel storage, this should be unneeded after a recent update on the player object from MPC.
Added door objects as a visible map object for the player server-side view component.
Fixed a few scenarios where mobs would unexpectedly show up impervious to mob status.
Fixed scenario where a player wouldn't receive disease informations from other players after changing maps.
Fixed some magic-type skills (such as Magic Claw or Freeze) not displaying damage value for other players when the player is within melee-range from the mob.
Added check for whether a given quest is scripted before trying to find the script.
Fixed registering items onto MTS leading to loss of a few of its properties (expiration, item level, etc).
Fixed "Improved MaxHP" skill gains not working for Thunderbreakers.
Refactored pet autopot to also apply on HP/MP consumption by items/skills.
Added portal sound effect on Mystic Doors.
2019-09-13 03:04:44 -03:00
Ubaware
259c2e5ba1 Fix for daily timers. Minor family fixes. Server code to change guild leader. (#513) 2019-09-13 01:25:16 -03:00
BHB88
da2395cc3a Add Aran High Defense functionality (#512)
* Add High Defense functionality

* Use proper morph models
2019-09-13 01:17:28 -03:00
ronancpl
ab756a1f5a Update mychanges_ptbr.txt 2019-08-30 00:47:29 -03:00
ronancpl
82d6d6d757 Io write Update
Removed usage of busy loop in handling sent packets.
2019-08-30 00:44:05 -03:00
ronancpl
efbce82a8b Pooled Io Write + EXP loss & Detached morph patch + Storages in World
Fixed autocommit getting called early/unavailable in a few catch blocks, when trying to save player.
Fixed the missing variable declaration in several quest scripts that were recently formatted.
Reworked the EXP loss formula applied at a knock-out. The new formula follows past discussions in several MS forums.
Fixed a deadlock issue related with party HP and party doors management.
Refactored management of packets sent to client through an IoSession. New system no longer makes use of a synchronized statement when calling announce(packet), rather makes use of dedicated threads to send queued packets for the respective players.
Fixed SP reset allowing increase of unexpected skills.
Refactored storages, no longer instantiated as coupled with the character, rather instantiated in a map within the world object, with accountid as key.
Reviewed usage of character objects of offline party members, that weren't being properly checked.
Fixed some unexpected cases with buffs and morphs (within the enhanced buff system) making the latter show up as another morph figure.
Added a "priority buff" perspective within the enhanced buff system, to let such priority items/skills take awareness over other buffs. (This would be vital for some quests, as the one reported in #514 )
Fixed EXP gains in certain scenarios showing up with less amount than the expected (due to float point operations).
Fixed a critical bug that have emerged in a recent mount-skill update, issue happened due to an improper object initialization.
Fixed mount information packet not being relayed to the player at world login time, rendering some quests not startable until the mob levels up.
2019-08-28 03:49:05 -03:00
Moozi
19e70ddf87 Added Special Field Packets (#515)
I did this on the web browser not an IDE so excuse any mistakes >.<
2019-08-26 16:45:55 -03:00
Ubaware
ec5a412e37 Added families. (#511)
* Added families.

* Added joining of families.
2019-08-19 14:16:10 -03:00
ronancpl
f958624f6a Reactor Loot + Obstacles damage mob + Static calls from scripts
Revised starting AP, now working out with flags. To supply the 9AP shortage of 4/4/4/4, two options: one giving out 9 AP from the start, other giving 4/5 AP when changing jobs (1st, 2nd). This change would also work with the autoassign for beginners flag.
Refactored several quest scripts, that would be glitching the player when doing quest start/complete and disposing under the same script status.
Cleared some cases with the quest reward system where it would call out a "full inventory" even though new inventory slots could get discovered when doing the quest loot transaction.
Fixed an issue with player stores being deployed overlapping in a few scenarios.
Fixed reduced EXP gain from kills when triggering skill Mortal Blow.
Added "open Duey" functionality when clicking "O" in the incoming package notification.
Fixed packages without messages (a quirk from quick delivery) not accounting visually as a "quick" one.
Fixed certain mounts (non-item skill mounts, such as Yeti or Spaceship) not showing up properly to other players when changing maps.
Added handler for mob damage by environment objects (OrbisPQ jail storage area).
Added a placeholder on mob's stolen items to prevent more steals to be placed as soon as the Steal mechanism is triggered.
Patched boss logs not removing recent entries from the DB tables (the reset method is actually supposed to clear every entry).
Revised a possible memory leak scenario happening due to an exception thrown midway monster kill method.
Improved reactor drops, now placing loots visible for the acting player centered (similar as to how mob loots work).
Refactored several issues in scripts, related to accessing static Java methods through an object, that would start appearing after transitioning to Java 8.
2019-08-14 21:14:15 -03:00
Periwinks
2c16a4d908 Give newly created characters proper AP count (#498)
Given in the form of AP; players were originally missing 9AP upon creation
2019-08-14 20:47:48 -03:00
kolakcc
2295317a84 Script engine refactor preparation (#492)
* Fix Invocable casting, remove useless script engine cache

* Remove useless script retry

* Remove null reference in EventManager
2019-08-14 20:47:00 -03:00
Periwinks
993398180e Fix #15 (#508) 2019-08-08 22:22:24 -03:00
Periwinks
b6ec7164d5 Fix mob DR skills (#509)
In Maplestory, there are three reflection buffs:
- Physical Reflect
- Magical Reflect
- Mixed Reflect (both combined)

Physical reflect would only reflect damage to physical users, Magical would only reflect to magical users.

In HeavenMS, the reflects are treated as an HP reflect and MP reflect, so the vanilla reflection mechanic was implemented here
2019-08-08 22:18:25 -03:00
Periwinks
d4279dc309 Fix cash shop bbsmojis (#510)
They originally caused a BBS post to not send
2019-08-08 22:15:34 -03:00
Ronan Lana
c49540bd83 Update db_database.sql
Default value NULL for completionTime timestamps.
2019-07-31 20:26:21 -03:00
Ubaware
153f5de4fa Added cash shop name changes and world transfers. (#495)
* Name changes

* World transfers. Fix NPE. Applied Arnuh's suggestions. More logging.
2019-07-31 20:22:48 -03:00
ronancpl
85812ba489 Heal & Summons atk limit + Skills on change job + Java8 scripting fix
Adjusted reactor drops, now performing spray-like for any reactor.
Revised usage of synchronized statements in several methods in the source.
Fixed a quest from the Aran questline using "password" system unpredictedly.
Fixed column name in table "reports".
Fixed commands "startquest" and "completequest" not using the quest's NPC in the talk window.
Fixed HP regen bonuses such as sauna robes and from Endure skill, when applied in maps with improved regen, leading to false-positives (with the heal on the player).
Fixed a recent typo on a property from HenesysPQ.
Fixed "Combat Step" effect showing twice for other players.
Fixed type-cast issues within some script-hubbing methods in some Java classes.
Reactivated an unused flag that ignores level difference when applying EXP gains to party players.
Fixed Gaviota not disappearing after attack, as defined in the description of the skill.
Fixed CPQ1 field 3 & 4 not allowing players to use summons/protectors.
Fixed exped leaders still receiving exped creation packets even though it was dismissed due to failure on starting (daily entry limit, other fail cases).
Fixed a locking issue that would show up due to a infinite loop case within the procedure that makes disappear items immediately if there were already many items on map.
Fixed several summon skills not using buff icons.
Fixed max damage calculation for summons getting extremely low values when either a player doesn't equip a weapon or attack value is too low.
Fixed explosive loots not taking effect at all, although loot drop-types were already implemented.
Fixed NPE cases when trying to update position of summons/dragons server-side.
Reviewed reactor reset of reactors that disappears for a while. They are now supposed to return immediately once issued a reset.
2019-07-28 17:34:52 -03:00
Ubaware
442d45bef2 Bugfix for previous movement changes. (#494) 2019-07-22 16:40:14 -03:00
Periwinks
890b1822d8 Repeat question if user has wrong pass count (#497)
Kerning City PQ Stage 1 NPC Cloto
- Originally in HeavenMS, she would tell the user they had the wrong number of passes, but not repeat the question.
- This was mainly a problem for those who accidentally skipped the window and would have to check
- With this fix, cloto follows up her 'wrong answer' speech, but also repeats the proper question associated with each player
2019-07-22 15:24:26 -03:00
kolakcc
3031ff7ab2 Fix stuck players when other player denies match request (#493)
* Fix stuck players when other player denies match request

* Add guild dismiss notification upon match dismiss/deny
2019-07-22 14:39:40 -03:00
Ubaware
187023c81f Proper coupon packet. (DB) coupon_items type 0 = mesos. (#491) 2019-07-18 19:21:23 -03:00
Ronan Lana
a29c3bcc81 Update README.md 2019-07-17 02:30:48 -03:00
kolakcc
68fae41251 Fix Java 8 support (#489) 2019-07-16 20:25:18 -03:00
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