diff --git a/README.md b/README.md index c82836594ba..3544bc946b5 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Java 8 SDK & NetBeans bundle: https://www.oracle.com/technetwork/pt/java/javase/ **Change log:** - * Fixed Monster Magnet crashing the caster when trying to pull fixed mobs. https://gofile.io/?c=BW7dVM + * Fixed Monster Magnet crashing the caster when trying to pull fixed mobs, credits to Shavit. https://gofile.io/?c=BW7dVM * Cleared need for administrator privileges (OS) to play the game, credits to Ubaware. @@ -98,11 +98,7 @@ By taking the v83 MapleStory as the angular stone, incrementally look forward to HeavenMS development as we can see right now achieved an acceptable state-of-the-art. A heartfelt thanks for everyone that contributed in some way for the progress of this server! -As development and support for fixing features that were implemented here is still up, with **your** help we can improve it even further! Please help where you can to better the server for everyone. - -Furthermore, you can actively help improving the server by issuing pull requests with informative details about what's changing. - -Note for anyone up to contribute further pull requests: make awareness to use __english language__ in codes and messages, as usage of any other languages will render it open to faculty of whether this content will be ready to be accepted or *further changes are going to be requested* before it becomes apt to merge. +A case study has been conducted with the objective of overview results achieved during HeavenMS development. Those can be checked out on: https://heavenms-survey.home.blog/2019/12/24/project-visualizations/ #### Support HeavenMS @@ -204,7 +200,7 @@ The client's set-up is quite straightforward: 2. Once done, erase these files: "HShield" (folder), "ASPLnchr.exe", "MapleStory.exe" and "Patcher.exe". 3. Extract into the client folder the "localhost.exe" from the provided link. 4. Overwrite the original WZ files with the ones provided from either one of those folders on the Google Drive: - - "commit???_wz" (last published RELEASE, referring to commit of same number). + - "commit397_wz" (last published RELEASE, referring to commit of same number). - "current_wz" (latest source update). #### Editing localhost IP target diff --git a/config.yaml b/config.yaml index 15ec53a7a64..548322fe203 100644 --- a/config.yaml +++ b/config.yaml @@ -159,7 +159,7 @@ worlds: server: #Thread Tracker Configuration - USE_THREAD_TRACKER: true #[SEVERE] This deadlock auditing thing will bloat the memory as fast as the time frame one takes to lose track of a raindrop on a tempesting day. Only for debugging purposes. + USE_THREAD_TRACKER: false #[SEVERE] This deadlock auditing thing will bloat the memory as fast as the time frame one takes to lose track of a raindrop on a tempesting day. Only for debugging purposes. #Database Configuration DB_URL: "jdbc:mysql://localhost:3306/heavenms" @@ -180,8 +180,8 @@ server: COUPON_INTERVAL: 3600000 #60 minutes, 3600000. UPDATE_INTERVAL: 777 #Dictates the frequency on which the "centralized server time" is updated. - ENABLE_PIC: false #Pick true/false to enable or disable Pic. Delete character requires PIC available. - ENABLE_PIN: false #Pick true/false to enable or disable Pin. + ENABLE_PIC: true #Pick true/false to enable or disable Pic. Delete character requires PIC available. + ENABLE_PIN: true #Pick true/false to enable or disable Pin. BYPASS_PIC_EXPIRATION: 20 #Enables PIC bypass, which will remain active for that account by that client machine for N minutes. Set 0 to disable. BYPASS_PIN_EXPIRATION: 15 #Enables PIN bypass, which will remain active for that account by that client machine for N minutes. Set 0 to disable. @@ -206,40 +206,40 @@ server: SHUTDOWNHOOK: true #Server Flags - USE_CUSTOM_KEYSET: true #Enables auto-setup of the HeavenMS's custom keybindings when creating characters. + USE_CUSTOM_KEYSET: false #Enables auto-setup of the HeavenMS's custom keybindings when creating characters. USE_DEBUG: false #Will enable some text prints on the client, oriented for debugging purposes. USE_DEBUG_SHOW_INFO_EQPEXP: false #Prints on the cmd all equip exp gain info. USE_DEBUG_SHOW_RCVD_PACKET: false #Prints on the cmd all received packet ids. USE_DEBUG_SHOW_RCVD_MVLIFE: false #Prints on the cmd all received move life content. USE_DEBUG_SHOW_PACKET: false USE_SUPPLY_RATE_COUPONS: true #Allows rate coupons to be sold through the Cash Shop. - USE_IP_VALIDATION: true #Enables IP checking when logging in. + USE_IP_VALIDATION: false #Enables IP checking when logging in. USE_CHARACTER_ACCOUNT_CHECK: false #Enables one-character-per-account check when logging in. This might be resource intensive. USE_MAXRANGE: true #Will send and receive packets from all events on a map, rather than those of only view range. USE_MAXRANGE_ECHO_OF_HERO: true USE_MTS: false USE_CPQ: true #Renders the CPQ available or not. - USE_AUTOHIDE_GM: false #When enabled, GMs are automatically hidden when joining. Thanks to Steven Deblois (steven1152). - USE_BUYBACK_SYSTEM: true #Enables the HeavenMS-builtin buyback system, to be used by dead players when clicking the MTS button. - USE_FIXED_RATIO_HPMP_UPDATE: true #Enables the HeavenMS-builtin HPMP update based on the current pool to max pool ratio. + USE_AUTOHIDE_GM: true #When enabled, GMs are automatically hidden when joining. Thanks to Steven Deblois (steven1152). + USE_BUYBACK_SYSTEM: false #Enables the HeavenMS-builtin buyback system, to be used by dead players when clicking the MTS button. + USE_FIXED_RATIO_HPMP_UPDATE: false #Enables the HeavenMS-builtin HPMP update based on the current pool to max pool ratio. USE_FAMILY_SYSTEM: true USE_DUEY: true USE_RANDOMIZE_HPMP_GAIN: true #Enables randomizing on MaxHP/MaxMP gains and INT accounting for the MaxMP gain on level up. USE_STORAGE_ITEM_SORT: true #Enables storage "Arrange Items" feature. USE_ITEM_SORT: true #Enables inventory "Item Sort/Merge" feature. USE_ITEM_SORT_BY_NAME: false #Item sorting based on name rather than id. - USE_PARTY_FOR_STARTERS: true #Players level 10 or below can create/invite other players on the given level range. - USE_AUTOASSIGN_STARTERS_AP: false #Beginners level 10 or below have their AP autoassigned (they can't choose to levelup a stat). Set true ONLY if the localhost doesn't support AP assigning for beginners level 10 or below. + USE_PARTY_FOR_STARTERS: false #Players level 10 or below can create/invite other players on the given level range. + USE_AUTOASSIGN_STARTERS_AP: true #Beginners level 10 or below have their AP autoassigned (they can't choose to levelup a stat). Set true ONLY if the localhost doesn't support AP assigning for beginners level 10 or below. USE_AUTOASSIGN_SECONDARY_CAP: true #Prevents AP autoassign from spending on secondary stats after the player class' cap (defined on the autoassign handler) has been reached. - USE_STARTING_AP_4: true #Use early-GMS 4/4/4/4 starting stats. To overcome AP shortage, this gives 4AP/5AP at 1st/2nd job advancements. + USE_STARTING_AP_4: false #Use early-GMS 4/4/4/4 starting stats. To overcome AP shortage, this gives 4AP/5AP at 1st/2nd job advancements. USE_AUTOBAN: false #Commands the server to detect infractors automatically. USE_AUTOBAN_LOG: true #Log autoban related messages. Still logs even with USE_AUTOBAN disabled. USE_AUTOSAVE: true #Enables server autosaving feature (saves characters to DB each 1 hour). - USE_SERVER_AUTOASSIGNER: true #HeavenMS-builtin autoassigner, uses algorithm based on distributing AP accordingly with required secondary stat on equipments. + USE_SERVER_AUTOASSIGNER: false #HeavenMS-builtin autoassigner, uses algorithm based on distributing AP accordingly with required secondary stat on equipments. USE_REFRESH_RANK_MOVE: true USE_ENFORCE_ADMIN_ACCOUNT: false #Forces accounts having GM characters to be treated as a "GM account" by the client (localhost). Some of the GM account perks is the ability to FLY, but unable to TRADE. - USE_ENFORCE_NOVICE_EXPRATE: true #Hardsets experience rate 1x for beginners level 10 or under. Ideal for roaming on novice areas without caring too much about losing some stats. + USE_ENFORCE_NOVICE_EXPRATE: false #Hardsets experience rate 1x for beginners level 10 or under. Ideal for roaming on novice areas without caring too much about losing some stats. USE_ENFORCE_HPMP_SWAP: false #Forces players to reuse stats (via AP Resetting) located on HP/MP pool only inside the HP/MP stats. USE_ENFORCE_MOB_LEVEL_RANGE: true #Players N levels below the killed mob will gain no experience from defeating it. USE_ENFORCE_JOB_LEVEL_RANGE: false #Caps the player level on the minimum required to advance their current jobs. @@ -258,17 +258,17 @@ server: USE_BUFF_MOST_SIGNIFICANT: true #When applying buffs, the player will stick with the highest stat boost among the listed, rather than overwriting stats. USE_BUFF_EVERLASTING: false #Every applied buff on players holds expiration time so high it'd be considered permanent. Suggestion thanks to Vcoc. USE_MULTIPLE_SAME_EQUIP_DROP: true #Enables multiple drops by mobs of the same equipment, number of possible drops based on the quantities provided at the drop data. - USE_BANISHABLE_TOWN_SCROLL: true #Enables town scrolls to act as if it's a "player banish", rendering the antibanish scroll effect available. - USE_ENABLE_FULL_RESPAWN: true #At respawn task, always respawn missing mobs when they're available. Spawn count doesn't depend on how many players are currently there. + USE_BANISHABLE_TOWN_SCROLL: false #Enables town scrolls to act as if it's a "player banish", rendering the antibanish scroll effect available. + USE_ENABLE_FULL_RESPAWN: false #At respawn task, always respawn missing mobs when they're available. Spawn count doesn't depend on how many players are currently there. USE_ENABLE_CHAT_LOG: false #Write in-game chat to log USE_REBIRTH_SYSTEM: false #Flag to enable/disable rebirth system - USE_MAP_OWNERSHIP_SYSTEM: true #Flag to enable/disable map ownership system - USE_FISHING_SYSTEM: true #Flag to enable/disable custom fishing system + USE_MAP_OWNERSHIP_SYSTEM: false #Flag to enable/disable map ownership system + USE_FISHING_SYSTEM: false #Flag to enable/disable custom fishing system USE_NPCS_SCRIPTABLE: true #Flag to enable/disable serverside predefined script NPCs. #Events/PQs Configuration USE_OLD_GMS_STYLED_PQ_NPCS: true #Enables PQ NPCs with similar behaviour to old GMS style, that skips info about the PQs and immediately tries to register the party in. - USE_ENABLE_SOLO_EXPEDITIONS: true #Enables start expeditions with any number of players. This will also bypass all the Zakum prequest. + USE_ENABLE_SOLO_EXPEDITIONS: false #Enables start expeditions with any number of players. This will also bypass all the Zakum prequest. USE_ENABLE_DAILY_EXPEDITIONS: false #Enables daily entry limitations in expeditions. USE_ENABLE_RECALL_EVENT: false #Enables a disconnected player to reaccess the last event instance they were in before logging out. Recall only works if the event isn't cleared or disposed yet. Suggestion thanks to Alisson (Goukken). @@ -277,17 +277,17 @@ server: USE_ANNOUNCE_CHANGEJOB: false #Automatic message sent to acquantainces when changing jobs. #Cash Shop Configuration - USE_JOINT_CASHSHOP_INVENTORY: true #Enables usage of a same cash shop inventory for explorers, cygnus and legends. Items from exclusive cash shop inventories won't show up on the shared inventory, though. + USE_JOINT_CASHSHOP_INVENTORY: false #Enables usage of a same cash shop inventory for explorers, cygnus and legends. Items from exclusive cash shop inventories won't show up on the shared inventory, though. USE_CLEAR_OUTDATED_COUPONS: true #Enables deletion of older code coupon registry from the DB, freeing so-long irrelevant data. ALLOW_CASHSHOP_NAME_CHANGE: true #Allows players to buy name changes in the cash shop. ALLOW_CASHSHOP_WORLD_TRANSFER: true #Allows players to buy world transfers in the cash shop. #Maker Configuration - USE_MAKER_PERMISSIVE_ATKUP: true #Allows players to use attack-based strengthening gems on non-weapon items. + USE_MAKER_PERMISSIVE_ATKUP: false #Allows players to use attack-based strengthening gems on non-weapon items. USE_MAKER_FEE_HEURISTICS: true #Apply compiled values for stimulants and reagents into the Maker fee calculations (max error revolves around 50k mesos). Set false to use basic constant values instead (results are never higher than requested by the client-side). #Custom Configuration - USE_ENABLE_CUSTOM_NPC_SCRIPT: true #Enables usage of custom HeavenMS NPC scripts (Agent E, Coco, etc). Will not disable Abdula (it's actually useful for the gameplay) or quests. + USE_ENABLE_CUSTOM_NPC_SCRIPT: false #Enables usage of custom HeavenMS NPC scripts (Agent E, Coco, etc). Will not disable Abdula (it's actually useful for the gameplay) or quests. USE_STARTER_MERGE: false #Allows any players to use the Equipment Merge custom mechanic (as opposed to the high-level, Maker lv3 requisites). #Commands Configuration @@ -311,8 +311,8 @@ server: MAX_AP: 32767 #Max AP allotted on the auto-assigner. MAX_EVENT_LEVELS: 8 #Event has different levels of rewarding system. BLOCK_NPC_RACE_CONDT: 500 # (0.5 * 1000) Time the player client must wait before reopening a conversation with an NPC. - TOT_MOB_QUEST_REQUIREMENT: 77 #Overwrites old 999-mobs requirement for the ToT questline with new requirement value, set 0 for default. - MOB_REACTOR_REFRESH_TIME: 30000 # (30 * 1000) Overwrites refresh time for those reactors oriented to inflict damage to bosses (Ice Queen, Riche), set 0 for default. + TOT_MOB_QUEST_REQUIREMENT: 0 #Overwrites old 999-mobs requirement for the ToT questline with new requirement value, set 0 for default. + MOB_REACTOR_REFRESH_TIME: 0 # (30 * 1000) Overwrites refresh time for those reactors oriented to inflict damage to bosses (Ice Queen, Riche), set 0 for default. PARTY_SEARCH_REENTRY_LIMIT: 10 #Max amount of times a party leader is allowed to persist on the Party Search before entry expiration (thus needing to manually restart the Party Search to be able to search for members). NAME_CHANGE_COOLDOWN: 2592000000 # (30*24*60*60*1000) Cooldown for name changes, default (GMS) is 30 days. WORLD_TRANSFER_COOLDOWN: 2592000000 # (30*24*60*60*1000) Cooldown for world tranfers, default is same as name change (30 days). @@ -340,40 +340,40 @@ server: #Some Gameplay Enhancing Configurations #Scroll Configuration USE_PERFECT_GM_SCROLL: true #Scrolls from GMs never uses up slots nor fails. - USE_PERFECT_SCROLLING: true #Scrolls doesn't use slots upon failure. - USE_ENHANCED_CHSCROLL: true #Equips even more powerful with chaos upgrade. - USE_ENHANCED_CRAFTING: true #Apply chaos scroll on every equip crafted. - USE_ENHANCED_CLNSLATE: true #Clean slates can be applied to recover successfully used slots as well. - SCROLL_CHANCE_ROLLS: 10 #Number of rolls for success on a scroll, set 1 for default. - CHSCROLL_STAT_RATE: 3 #Number of rolls of stat upgrade on a successfully applied chaos scroll, set 1 for default. + USE_PERFECT_SCROLLING: false #Scrolls doesn't use slots upon failure. + USE_ENHANCED_CHSCROLL: false #Equips even more powerful with chaos upgrade. + USE_ENHANCED_CRAFTING: false #Apply chaos scroll on every equip crafted. + USE_ENHANCED_CLNSLATE: false #Clean slates can be applied to recover successfully used slots as well. + SCROLL_CHANCE_ROLLS: 1 #Number of rolls for success on a scroll, set 1 for default. + CHSCROLL_STAT_RATE: 1 #Number of rolls of stat upgrade on a successfully applied chaos scroll, set 1 for default. CHSCROLL_STAT_RANGE: 6 #Stat upgrade range (-N, N) on chaos scrolls. #Beginner Skills Configuration - USE_ULTRA_NIMBLE_FEET: true #Massive speed & jump upgrade. - USE_ULTRA_RECOVERY: true #Massive recovery amounts overtime. - USE_ULTRA_THREE_SNAILS: true #Massive damage on shell toss. + USE_ULTRA_NIMBLE_FEET: false #Massive speed & jump upgrade. + USE_ULTRA_RECOVERY: false #Massive recovery amounts overtime. + USE_ULTRA_THREE_SNAILS: false #Massive damage on shell toss. #Other Skills Configuration USE_FULL_ARAN_SKILLSET: false #Enables starter availability to all Aran job skills. Suggestion thanks to Masterrulax. - USE_FAST_REUSE_HERO_WILL: true #Greatly reduce cooldown on Hero's Will. - USE_ANTI_IMMUNITY_CRASH: true #Crash skills additionally removes the mob's invincibility buffs. Suggestion thanks to Celestial. - USE_UNDISPEL_HOLY_SHIELD: true #Holy shield buff also prevents players from suffering dispel from mobs. - USE_FULL_HOLY_SYMBOL: true #Holy symbol doesn't require EXP sharers to work in full. + USE_FAST_REUSE_HERO_WILL: false #Greatly reduce cooldown on Hero's Will. + USE_ANTI_IMMUNITY_CRASH: false #Crash skills additionally removes the mob's invincibility buffs. Suggestion thanks to Celestial. + USE_UNDISPEL_HOLY_SHIELD: false #Holy shield buff also prevents players from suffering dispel from mobs. + USE_FULL_HOLY_SYMBOL: false #Holy symbol doesn't require EXP sharers to work in full. #Character Configuration - USE_ADD_SLOTS_BY_LEVEL: true #Slots are added each 20 levels. - USE_ADD_RATES_BY_LEVEL: true #Rates are added each 20 levels. + USE_ADD_SLOTS_BY_LEVEL: false #Slots are added each 20 levels. + USE_ADD_RATES_BY_LEVEL: false #Rates are added each 20 levels. USE_STACK_COUPON_RATES: false #Multiple coupons effects builds up together. - USE_PERFECT_PITCH: true #For lvl 30 or above, each lvlup grants player 1 perfect pitch. + USE_PERFECT_PITCH: false #For lvl 30 or above, each lvlup grants player 1 perfect pitch. #Quest Configuration USE_QUEST_RATE: false #Exp/Meso gained by quests uses fixed server exp/meso rate times quest rate as multiplier, instead of player rates. #Quest Points Configuration - QUEST_POINT_REPEATABLE_INTERVAL: 24 #Minimum interval between repeatable quest completions for quest points to be awarded. - QUEST_POINT_REQUIREMENT: 16 #Exchange factor between N quest points to +1 fame, set 0 to disable the entire quest point mechanism. - QUEST_POINT_PER_QUEST_COMPLETE: 4 #Each completed quest awards N quest points, set 0 to disable. - QUEST_POINT_PER_EVENT_CLEAR: 1 #Each completed event instance awards N quest points, set 0 to disable. + QUEST_POINT_REPEATABLE_INTERVAL: 25 #Minimum interval between repeatable quest completions for quest points to be awarded. + QUEST_POINT_REQUIREMENT: 0 #Exchange factor between N quest points to +1 fame, set 0 to disable the entire quest point mechanism. + QUEST_POINT_PER_QUEST_COMPLETE: 0 #Each completed quest awards N quest points, set 0 to disable. + QUEST_POINT_PER_EVENT_CLEAR: 0 #Each completed event instance awards N quest points, set 0 to disable. #Guild Configuration CREATE_GUILD_MIN_PARTNERS: 6 #Minimum number of members on Guild Headquarters to establish a new guild. @@ -390,16 +390,16 @@ server: FAMILY_MAX_GENERATIONS: 1000 #Maximum depth of family tree. (Distance from leader to farthest junior) #Equipment Configuration - USE_EQUIPMNT_LVLUP_SLOTS: true #Equips can upgrade slots at level up. - USE_EQUIPMNT_LVLUP_POWER: true #Enable more powerful stat upgrades at equip level up. - USE_EQUIPMNT_LVLUP_CASH: true #Enable equip leveling up on cash equipments as well. - USE_SPIKES_AVOID_BANISH: true #Shoes equipped with spikes prevents mobs from banishing wearer. + USE_EQUIPMNT_LVLUP_SLOTS: false #Equips can upgrade slots at level up. + USE_EQUIPMNT_LVLUP_POWER: false #Enable more powerful stat upgrades at equip level up. + USE_EQUIPMNT_LVLUP_CASH: false #Enable equip leveling up on cash equipments as well. + USE_SPIKES_AVOID_BANISH: false #Shoes equipped with spikes prevents mobs from banishing wearer. MAX_EQUIPMNT_LVLUP_STAT_UP: 10000 #Max stat upgrade an equipment can have on a levelup. MAX_EQUIPMNT_STAT: 32767 #Max stat on an equipment by leveling up. - USE_EQUIPMNT_LVLUP: 7 #All equips lvlup at max level of N, set 1 to disable. + USE_EQUIPMNT_LVLUP: 1 #All equips lvlup at max level of N, set 1 to disable. #Map-Chair Configuration - USE_CHAIR_EXTRAHEAL: true #Enable map chairs to further recover player's HP and MP (player must have the Chair Mastery skill). + USE_CHAIR_EXTRAHEAL: false #Enable map chairs to further recover player's HP and MP (player must have the Chair Mastery skill). CHAIR_EXTRA_HEAL_MULTIPLIER: 10 #Due to only being able to be send up-to-255 heal values, values being actually updated is the one displayed times this. CHAIR_EXTRA_HEAL_MAX_DELAY: 21 #Players are expected to recover fully after using this skill for N seconds. @@ -431,8 +431,8 @@ server: EVENT_LOBBY_DELAY: 10 #Cooldown duration in seconds before reopening an event lobby. #Dojo Configuration - USE_FAST_DOJO_UPGRADE: true #Reduced Dojo training points amount required for a belt upgrade. - USE_DEADLY_DOJO: false #Should bosses really use 1HP,1MP attacks in dojo? + USE_FAST_DOJO_UPGRADE: false #Reduced Dojo training points amount required for a belt upgrade. + USE_DEADLY_DOJO: true #Should bosses really use 1HP,1MP attacks in dojo? DOJO_ENERGY_ATK: 100 #Dojo energy gain when deal attack DOJO_ENERGY_DMG: 20 #Dojo energy gain when recv attack diff --git a/docs/feature_list.md b/docs/feature_list.md index 2b247a965ec..95c34d36d46 100644 --- a/docs/feature_list.md +++ b/docs/feature_list.md @@ -1,4 +1,4 @@ -# HeavenMS + Credits: @@ -10,6 +10,10 @@ Thora - Contributor GabrielSin - Contributor +Masterrulax - Contributor + +MedicOP - Adjunct Developer + --------------------------- DISCLAIMER: --------------------------- @@ -26,13 +30,17 @@ Feature list: PQs: -* HPQ/KPQ/LPQ/LMPQ/OPQ/EllinPQ/PiratePQ/MagatiaPQ/HorntailPQ/AmoriaPQ/TreasurePQ/ElnathPQ/HolidayPQ. +* HPQ/KPQ/LPQ/LMPQ/OPQ/APQ/EllinPQ/PiratePQ. +* RnJPQ/HorntailPQ/TreasurePQ/ElnathPQ/HolidayPQ. * CWKPQ as Expedition-based event. * Expeditions: Scarga/Horntail/Showa/Balrog/Zakum/Pinkbean. +* Monster Carnival 1 & 2 - thanks Dragohe4rt & Jayd! +* AriantPQ - thanks Dragohe4rt & Jayd! * GuildPQ + Guild queue with multi-lobby system available. * Brand-new PQs: BossRushPQ, CafePQ. * Mu Lung Dojo. * Capt. Latanica remade as an event (parties can now fight the boss). +* Expeditions with daily/weekly entries system available. Skills: @@ -42,6 +50,10 @@ Skills: * Server is using heuristics to calculate fee costs for the Maker (errors sums up to 8k mesos, reagent errors stacks up comformant with it's level). * New skill: Chair Mastery (max lv 1) - Players having this passive skill can gain a significant boost of HP/MP recovery when sitting on a field/map chair. * Mu Lung Dojo skills functional. +* M. Magnet on bosses no longer crash. +* M. Magnet on fixed mobs no longer crash - thanks shavit! +* Skills that uses up HP/MP triggers pet autopot. +* Skills that imbue weapon with elemental attribute (WK Charges, Snow Charge, etc) is now visible for other players. Quests: @@ -57,6 +69,11 @@ Quests: * Reviewed Aran questline. * Reviewed 4th job skill questlines as a whole. * Complete overhaul on the 3rd job quiz (explorers), with all 40-question pool now made available. +* Quest items supposed to be lootable, as those are required to start quests, shows up properly. +* Exclusive quest items that went missing from inventory reacquireable from NPC quest talk. +* Mechanics for Item Raise functionality operational. +* Players no longer are given movement control just after completing a quest but still talking with the NPC. +* Quests that makes use of progress data shows up as completeable to the player on conditions met. Player Social Network: @@ -74,6 +91,9 @@ Player Social Network: * Protected concurrently and improved the face expression system, guarding from trivial packet spam and exploits. * All upgradeable non-cash equipments in inventory with level & EXP information available for read by anyone, given proper visibility. * Further improved the existent minigame mechanics: remarkably checking out for no-item match requests, allowing different omok/matchcard match layouts and status update on the player matchbox tooltips. +* Further improved the trading system. +* Party Search system nominal. +* Wedding Wishlists - thanks Dragohe4rt! Cash & Items: @@ -90,6 +110,10 @@ Cash & Items: * Close-quarters evaluation mode for items (sandbox). * Further improved Karma scissors & Untradeable items mechanics. * Reviewed pet/item position data inconsistency within CASH inventory. +* Implemented close-quarters trial mode for items. +* Reviewed stylish-related contents, close to GMS-like. +* Plastic surgeons/stylists no longer stuck characters. +* Reworked gachapon loots, website-lists lookalike. * Spikes on shoes. * Vega's spell. * Owl of Minerva. @@ -98,6 +122,7 @@ Cash & Items: * Kite. * Cash Shop Surprise. * Maple Life. +* EXP Increase. Monsters, Maps & Reactors: @@ -106,7 +131,8 @@ Monsters, Maps & Reactors: * Monsterbook displays drop data info conformant with the underlying DB (needs custom wz). See more on the MobBookUpdate feature. * Every skill/mastery book is now droppable by mobs. * Mobs now can drop more than one of the same equipment (number of possible drops defined at droptime, uses the minimum/maximum quantity fields on DB). -* Mobs only drops items that are visible/collectable by the player's party. +* Mobs only drops loot from items that are visible/collectable by the player's party. +* Mobs shouldn't fall from foothold too often now. * Redesigned HT mechanics for spawn and linked damage to the sponge. * Reviewed aspects of MoveLifeHandler: implemented banish move, patched MP cost not contabilized on non-skill mob moves and slightly fixed mobs dropping from footholds in certain cases. * Limited item count on maps, smartly expiring oldest registered items, preventing potential item flooding. @@ -114,7 +140,7 @@ Monsters, Maps & Reactors: * Added Boss HP Bar for dozens of bosses (needs provided custom wz). * If multiple bosses are on the same area, client will prioritize Boss HP bar of the target of the player. * Boss HP Bar and Server Messages now toggles (server message disappears when a boss battle is detected, and returns afterwards). Idea thanks to GabrielSin. -* Improved map bounding checks for item drop points, assuring most of the items dropped will be available to pickup inside the accessible map area. +* Improved map bounding checks for item drop points, assuring most of the items dropped will be available to pickup inside the walkable map area. * Boats, elevator and other travelling mechanics fully working. * HP decreasing overtime on maps and mechanics to prevent them (consumables, equips) fully functional. * Crimson Balrog boat approaching visual effect made functional. @@ -128,6 +154,10 @@ Monsters, Maps & Reactors: * Added World Tour and Masteria continents in the world map. * Reviewed World Map's town/field tooltips and links from the main world map and Masteria region. * Giant Cake (anniversary-themed boss) drops Maple equipments, Maple scrolls, summoning bags and many more interesting items. +* Enhanced aggro system, with real-time damage output target redirection. +* Puppets influence mob aggroing. +* Limited quantity of summons an individual mob can perform. +* Damage Reflect (MobSkill) status no longer lags to display. PQ potentials: @@ -148,6 +178,7 @@ Player potentials: * Reviewed keybinding system. * Account's Character slots: either each world has it's own count or there's a shared value between all worlds. * Optional cash shop inventory separated by player classes or fully account-ranged. +* Rock-paper-scissors minigame - thanks Arnah! Server potentials: @@ -163,6 +194,7 @@ Server potentials: * Added players-appointed bestsellers item ranking system for Owl of Minerva and Cash Shop. * Tweaked pet/mount hunger: calculations for fullness/tiredness takes active time of the subject into account. * Consistent experience and meso gain system. +* Fredrick Store Bank now has expirable storage, which warns the player of time remaining and eventually delete unclaimed items. * NPC crafters (equips, plates/jewels, etc) now won't take items freely if the requirement conditions are not properly met. * Improved Duey mechanics: package received popup and reviewed many delivery mechanics. * Pet item pickup now gives preference to player attacks rather than forcing attack disables when automatically picking up. @@ -173,6 +205,8 @@ Server potentials: * Mastery book announcer displays droppers of needed books of a player, by reading underlying DB. * Custom jail system (needs provided custom wz). * Custom buyback system. +* Custom fishing system, having planned 'seasonal' catch times. +* Custom map leasing system. * Delete Character (requires ENABLE_PIC activated). * Smoothed up view-all-char feature, now showing properly all available characters and not disconnecting players too often. * Centralized getcurrenttime throughout several server handlers, boosting it's performance overall. @@ -186,6 +220,8 @@ Server potentials: * Bypassable PIN/PIC system for players that were already authenticated and are currently loggedin and active. * Accounts can be created automatically when trying to login on an inexistent account - credits to shavit. * Usage of Bcrypt (up-to-date) as the main password hashing algorithm, replacing old SHA's - credits to shavit. +* Implemented matching system, on which all involved players accepts the term or at least one denies/times-out before an event takes place. +* Implemented support for custom spawn areas for NPCs & mobs. Custom NPCs: @@ -196,6 +232,7 @@ Custom NPCs: * Dalair: automatized equipment-merger. * Donation Box: automatized item-buyer. * Coco & Ace of Hearts: C. scroll crafters. +* Barry (MapleTV): fill book & exchange items for scroll. Server Commands: @@ -246,8 +283,10 @@ Project: * Developed many survey tools for content profiling. * Developed a robust anti-exploit login coordinator system. * Protected many flaws with login management system. +* Remodeled item scripts, properly using NPC dialogs. * Channel, World and Server-wide timer management. * Heavily reviewed future task management inside the project. Way less trivial schedules are spawned now, relieving task overload on the TimerManager. +* Developed services to act as a central task scheduler, in order to spawn less timer threads. * ThreadTracker: embedded auditing tool for run-time deadlock scanning throughout the server source (relies heavily on memory usage, designed only for debugging purposes). Exploits patched: diff --git a/docs/mychanges_ptbr.txt b/docs/mychanges_ptbr.txt index 7714778d3e7..1a2cac6e6be 100644 --- a/docs/mychanges_ptbr.txt +++ b/docs/mychanges_ptbr.txt @@ -2355,4 +2355,8 @@ Corrigido autoaggro não atuando devidamente em mobs assim que jogador entra no Corrigido anunciador de skillbooks não reportando etc de quest para começar, quando lidando com questlines onde se obtém a skill diretamente. 21 Dezembro 2019, -Corrigido mobs em estado "fake" desaparecendo da tela assim que muda-se o controlador do mesmo. \ No newline at end of file +Corrigido mobs em estado "fake" desaparecendo da tela assim que muda-se o controlador do mesmo. + +26 Dezembro 2019, +Revisado bosses no Dojo levando dano integral de Bamboo Rain (deveria ser 30% do MaxHP do mesmo). +Corrigido atributo padrão "partySearch" definido com valor booleano inadequado na DB. \ No newline at end of file diff --git a/scripts/npc/9977777.js b/scripts/npc/9977777.js index fcf7833e05d..26b5fcdf43d 100644 --- a/scripts/npc/9977777.js +++ b/scripts/npc/9977777.js @@ -61,7 +61,8 @@ function writeFeatureTab_Skills() { addFeature("Maker skill features developed - pckts thanks Arnah."); addFeature("Chair Mastery - map chair boosts HP/MP rec."); addFeature("Mu Lung Dojo skills functional."); - addFeature("Monster Magnet skill on bosses no longer crash."); + addFeature("M. Magnet on bosses no longer crash."); + addFeature("M. Magnet on fixed no longer crash - thanks shavit!"); addFeature("HP/MP consumption from skills triggers pet autopot."); addFeature("Elemental weapon imbue visibility for other players."); } @@ -70,6 +71,7 @@ function writeFeatureTab_Quests() { addFeature("Doll house quest functional."); addFeature("Q. items required to start quests shows up properly."); addFeature("Quests are now rewarding items properly."); + addFeature("Items from starting quest reacquireable on NPC talk."); addFeature("Selection of rewards works properly."); addFeature("Loads of quests have been patched."); addFeature("Aran questline has been reviewed."); diff --git a/sql/db_database.sql b/sql/db_database.sql index 85f55c30f27..344eb49dbaf 100644 --- a/sql/db_database.sql +++ b/sql/db_database.sql @@ -200,7 +200,7 @@ CREATE TABLE IF NOT EXISTS `characters` ( `dataString` varchar(64) NOT NULL DEFAULT '', `lastLogoutTime` timestamp NOT NULL DEFAULT '2015-01-01 05:00:00', `lastExpGainTime` timestamp NOT NULL DEFAULT '2015-01-01 05:00:00', - `partySearch` tinyint(1) NOT NULL DEFAULT '0', + `partySearch` tinyint(1) NOT NULL DEFAULT '1', `jailexpire` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `accountid` (`accountid`), diff --git a/src/constants/game/GameConstants.java b/src/constants/game/GameConstants.java index 9ccb30228c7..c74dcbb90c0 100644 --- a/src/constants/game/GameConstants.java +++ b/src/constants/game/GameConstants.java @@ -589,11 +589,14 @@ public static boolean isDojoPartyArea(int mapid) { return mapid >= 925030100 && mapid < 925040000; } + public static boolean isDojoBoss(int mobid) { + return mobid >= 9300184 && mobid < 9300216; + } + public static boolean isDojoBossArea(int mapid) { return isDojo(mapid) && (((mapid / 100) % 100) % 6) > 0; } - public static boolean isPyramid(int mapid) { return mapid >= 926010010 & mapid <= 930010000; } diff --git a/src/net/server/channel/handlers/AbstractDealDamageHandler.java b/src/net/server/channel/handlers/AbstractDealDamageHandler.java index f61a9ed7d09..51f6d73fc89 100644 --- a/src/net/server/channel/handlers/AbstractDealDamageHandler.java +++ b/src/net/server/channel/handlers/AbstractDealDamageHandler.java @@ -25,6 +25,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -290,6 +291,18 @@ else if(attack.skill == Shadower.BOOMERANG_STEP) } } + if (GameConstants.isDojoBoss(monster.getId())) { + if (attack.skill == 1009 || attack.skill == 10001009 || attack.skill == 20001009) { + int dmgLimit = (int) Math.ceil(0.3 * monster.getMaxHp()); + List _onedList = new LinkedList<>(); + for (Integer i : onedList) { + _onedList.add(i < dmgLimit ? i : dmgLimit); + } + + onedList = _onedList; + } + } + for (Integer eachd : onedList) { if(eachd < 0) eachd += Integer.MAX_VALUE; totDamageToOneMonster += eachd;