Giter Site home page Giter Site logo

mapleserver2's Introduction

MapleServer2

This is an open source MapleStory2 server emulation project created in C#. It is being developed completely for educational purposes only. This software is being provided "as-is", completely for free. As a result, we, nor anybody who chooses to contribute, are not responsible for any damages or other liability as a result of this software.

This software is licensed under the GNU GPL. Because of this, every user is free to use this software and choose how they want to use it, and assume all liability and risks themselves for that choice. Please read the license if you are unsure about your rights.

More Information/Docs Docs: https://mapleme.me/docs Setup Guide: https://mapleme.me/docs/setup/prerequisites FAQ: https://mapleme.me/docs/faq

Join the community discord if you are interested in contributing to this project or would like assistance getting set up.

Star History

Star History Chart

mapleserver2's People

Contributors

0x4808d avatar alanmorel avatar andrew-gan avatar andyv91 avatar angelotadeucci avatar bwu113 avatar ccasusensa avatar clockworkx avatar craftingmod avatar darkvergus avatar decafhotchocolate avatar gugarosa avatar gwagwaflamingo avatar icegabriel avatar integralcoder95 avatar jamiedavidson avatar kochirasu avatar kvoeten avatar maddosan avatar mettaursp avatar michaelowens avatar nobodylikesaleech avatar quotopian avatar rhydev avatar snowawa avatar sparkymod avatar tlworks avatar voodoonofx avatar wevvin avatar zintixx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mapleserver2's Issues

Combat/Skills

  • Skill damage
  • Player health handling, taking damage over time, respawn/dying handler
  • Adding buffs/debuffs correctly
  • Cooldowns and spirit usage
  • Stamina usage

Achievements (Trophies)

  • Achievement conditions

- Gaining trophies based on conditions from XML (ie. Jump 100 times)
- View your trophy list
- Loading trophy list on login/field enter
- Loading correct trophy count when writing character data
- Progress updates as you get close to completing a trophy (ie. 25%, 50%, 75%, 90%, 95%, 99%, 99.5%)

Experience System

  • Gaining experience (basic implementation)
  • Leveling up
  • Experience curved correctly
  • EXP
    • Mobs
    • Quests
    • Daily rewards
    • Others

IOException break the server if client crashes or it's closed abruptly

This exception can happen when the client closes but it doesn't break the server.
If the client crashes or its closed abruptly it breaks the server. I assume it's because the read/write threads for packets get closed/stuck?

Stack trace:

[ERROR] MapleServer2.Servers.Game.GameSession: Exception writing to socket:  System.IO.IOException: Unable to write data to the transport connection: Uma conexão estabelecida foi anulada pelo software no computador host..
 ---> System.Net.Sockets.SocketException (10053): Uma conexão estabelecida foi anulada pelo software no computador host.
   at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   --- End of inner exception stack trace ---
   at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   at MapleServer2.Network.Session.SendRaw(Packet packet) in D:\Projetos\MapleStory2\MapleServer2\MapleServer2\Network\Session.cs:line 297    at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   at MapleServer2.Network.Session.SendRaw(Packet packet) in D:\Projetos\MapleStory2\MapleServer2\MapleServer2\Network\Session.cs:line 297

Double-mounts aren't working.

Issue:
The mount itself works and the owner will be able to mount it, but the 2nd player won't be able to board the mount.

Some IDs you can test this on:
50600210
50600218
50600240

Pets

  • Pet catching
  • Pet spawning
  • Using pets
  • Pet stats
  • Pet level up
  • Pet fusion
  • Pet evolution
  • Change talents
  • Album
  • Inventory pets
  • Different rarities giving more bonus stats

Attributes and Stats

  • Player stat visuals (advanced view)
  • Gear adding correct stat points and updating visuals
  • Access to variables for damage calculations
  • Adding stat points

Rankings

  • Guild ranking
  • Trophy ranking
  • Dark descent rankings (ranking reset and belt giveaway)
  • Fastest dungeon raids
  • Star architect

Gathering/Mining

- Giving Life Skill experience
- Limits on # of harvests
- Harvesting nodes in house separate from open world

  • Calculation of low to impossible is set to low * 1.3 which is wrong. Right now there's no solution available. Nexon is pepega brain

Low: 10 Imp: 13 which is correct however from 2nd tier onwards its no longer correct as seen below.
Low: 14 imp: 19 = 1.35
Low: 17 imp: 22 = 1.29
Low: 23 imp: 29 = 1.26
Low: 29 imp: 37 = 1.27

Guilds

- Creating
- Joining
- Viewing members

  • Searching for guilds
  • Guild applications
  • Setting guild ranks
  • Creating custom guild roles
  • Guild trophies
  • Guild house
  • Guilds level
  • Guild NPCs
  • Guild raids

Enchanting

Issues:
Ophelia:

  • Gives +5 levels per attempt
  • Gives 10 fail-stacks per attempt, whether successful or fail
  • 90% success rate per level, though not sure if it actually applies
  • Levels 10-15 don't require sacrificial copies
  • Materials don't get taken away after an attempt

Peachy:

  • Materials don't get taken away after an attempt
  • Seems like 2 attempts = +1 level

Video Example:
https://youtu.be/kvRANRZ2jxA

Parties

  • Basic usage (create, leave, invite)
  • Correctly update HP/Location and grey out if not on the same map
  • Summon party scroll
  • Vote to kick
  • Enter Dungeon support and detecting dungeon to enter

World Map

  • Hot spots, fishing spots, etc.
  • Saving map exploration progress

Discord link invalid

I would be interested in getting more involved with the project. Unfortunately, the link to the Discord server is no longer valid. ☹

Quests

  • Completing quests and giving their respective awards
  • Being able to accept quests and enter hidden/instanced areas
  • Handle all quest conditions

Implement badges packet

Issue:
"Badges" aren't saving once you switch characters/sign off. This is every badge in the section of your character, not just 1.

For example, pretty much all of these disappear.
MapleStory2_3xmUe9NWFX

Housing

  • House triggers
  • House commands
    • Survey
    • HostBall
    • Roll
    • RandomUser
    • HostGravity
    • HostAlarm
    • Card
  • Loading player houses from account
  • Block placement, properties (teleporters) etc.
  • Daily design box
  • Star architect score
  • Housing Settings (disable skill use)
  • Saving and loading of house designs
  • Life skills blocks
  • Interactable furniture
  • Portal cubes
  • Unlock blocks trough trophies/others

Bypassing the Attribute Points "cap"

Issue:
You can bypass the attribute point cap by switching characters and adding points.
Not sure if it's relevant to the "42949" points down at the bottom (another bug!), but you can only +1 point if you relog overall, you can't +1 to multiple lines.

Video Example:
https://youtu.be/gx-mAm2OF6I

Dungeons

  • Instances
  • 4 player and 10 player (and inbetween)
  • Custom scripting to handle triggers
  • Rewards
  • Ranking system (S+, S, A, etc.)

Not enough space in packet: 66 00 03 01

Upon trying to visit the Maple Arena "Arena Shop" (And presumably some others, untested as of right now) the gameserver will crash with the following Exception:

image

Location:
image

Listed as reminder for @Zintixx

Engineering

Implement unknown mode logging on handlers (ex: RequestItemInventoryHandler.cs)
Make each mode in handler handled in a different method (ex: RequestItemInventoryHandler.cs)
Use 1 packet file per SendOp
Replace all hard-coded modes in send packets with enums
Rewrite broadcast packet system
Implement full inventory handling
Remove all PacketWriter instances outside of standalone Packet files
Remove public void Send(params byte[] packet) inside Session.cs

Black Market/Auction House

- Buying items and deducting meso
- Listing new items
- Listing fees

  • Searching/Filters (missing stats filter)
  • Meso market

Crafting

  • Taking required materials and giving result
  • Giving experience
  • Cost per item

Mobs

SOME WORK AS BEEN MADE BUT A COMPLETE REWORK WOULD BE BETTER

  • Behavior
  • Movement AI
  • Spawning and Respawning

Cutscenes

  • Cutscenes during quests / job intros

Minimap

  • Correctly show player on minimap
  • Show other players correctly (party, friend, etc.)

Fishing

  • Mastery
  • Fishing buffs
  • Bait and special lures (events)
  • Catching fish (minigame, RNG)

Taxis

  • Figure out correct price formula for car taxis
  • Save discovered taxis

Prestige

  • Prestige bonus stats
  • Daily bonus prestige limit
  • Prestige milestone rewards
  • Update on player profile
  • Weekly missions

Mounts

  • Air mounts
  • Ground mounts
  • Dual-rider mounts works fine, but three riders mount needs a little fix. Third player stays in the same slot as the second player.

NPCs

  • Scripting
  • Proper dialogue (currently can't converse with NPCs, they say one line)
  • Quest dialogue
  • NPC movement
  • Npc's should look towards the player when talking

Clubs

  • Editing buff

Leaving
Add support for kicking members
Editing name
Creating
Inviting

Implement portraits

Issue:
Portraits/Icons/Logos/Avatars, whatever you want to call it, aren't saving. Most likely because it's to do with a UGC server so I guess this would fall under a feature more than a bug? Put it here anyway though :)

Video Example:
https://youtu.be/ADi2dEZOd-I

RequestItemUse deletes items it shouldn't

Right now RequestItemUse always removes the item used from the inventory, however, some items are multi-use. Currently the biggest thing is affects is Instruments which disappear after a single use. Not sure how to check for it, possibly in the item metadata.
@rhydev

Traits

  • Trait menu and increasing/resetting

2-handed weapons are rolled with 1-handed weapon values

Example:
A 2-handed weapon will at most have 5.6% Physical/Magic Pierce, or 1.6% piercing.
The correct values should be 11.2% Physical/Magic Pierce, or 3.2% piercing.

Just need to 2x the values for the 1-handed weapons on the 2-handed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.