rogiel / l2jserver2 Goto Github PK
View Code? Open in Web Editor NEWl2j game server rewrite - interlude support added
Home Page: http://www.rogiel.com/en/blog/l2jserver2-design-overview
License: GNU General Public License v3.0
l2j game server rewrite - interlude support added
Home Page: http://www.rogiel.com/en/blog/l2jserver2-design-overview
License: GNU General Public License v3.0
Controls the behavior of bosses, will communicate with the minions controllers so that chained attacks can be performed. More advanced synchronizing between boss-minions should be performed only on Milestone II when AI is already implemented.
The ClanService is will be responsible for:
The skill API design must be yet defined.
-- Open for discussion --
An service that allow characters to store their items on a safe place until further recovered by an capable NPC.
Implements all monster related behaviors. Will drop Adena and items and grant experience when the mob is killed.
Dropping must be assisted by ItemService. Experience granting is performed by the CharacterExperienceService.
Monsters should not cast spells at this milestone yet. Spell casting can only be done through an AI which is not yet available.
We need a converter the legacy l2j item xml files to the new format. Every substitution must be done correctly. The converter should be placed in src/tools source folder.
The AIService will handle all AI actions. All NPCs are backed by an AI. Monster can have an aggressive AI (will attack automatically), non-agressive (wil only attack if attacked first) and friendly (won't ever attack).
Other NPCs have different behavior and this must be emulated correctly.
The quest engine API design must yet be defined.
-- Open for discussion --
NPCID is implemented using WorldService to locate NPC objects, if an NPC is not spawned in the world, it is not possible to select it's object with NPCID.
Implements all behavior for teleporter NPCs.
After the AIService has been implemented, it must be incorporated into MonsterController and BossController so that they can be powered by the AI engine.
Monsters should behave perfectly after this step. Cast spells, run away, call for help, help other mobs, know which character to focus fire when there are more than one target available.
The AI API design must yet be defined.
-- Open for discussion --
The DuelService will manage character duels.
Once the duel starts, it should take an snapshot of the current effects state and when this duel finishes, the state must be restored to the previous snapshotted state.
The effect API design must yet be defined.
-- Open for discussion --
Skill Masters teach players new skills and level up existing skills.
The PartyService will manage parties:
Implementation of the BlacksmithService that will back Blacksmith NPC controllers.
Castle service is responsible for managing all castles in the game, applying taxes to the towns and transferring ownership.
The NPC conversor has an issue in which it cannot write the encoding within one of Bloody Pixy HTML messages into the unified XML. While the server is loading, when NPCs are loaded from database, several error messages appear:
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
[WARN 2011-07-30 21-36-15] com.l2jserver.db.dao.jdbc.mysql5.MySQL5NPCDAO:113 - No template found for NPCTemplateID [id=31845]
PKService will manage the following:
Implement all merchant bahavior. Selling, buying and multisell.
Siege service should schedule and execute sieges every week as specified. It should interact with CastleService to transfer the castle ownership once the siege has finished.
This service handles the character experience and will level the character up when the experience reaches the minimum value.
Implements all behavior for lottery ticket seller NPCs
The MonsterNPCController wil control each monster. Once the monster is clicked it should be targeted. If clicking again, the monster will be attacked.
Implementation of the quest service that will perform all the quests in the game.
Implementation of PetService that allows creation, summoning, unsummoning, destroying and dying of pets
The login server should allow multiple game server to be authenticated with it. It will also mediate password and username verification. It should use a different database.
Also, an "bundled" version of the server should be provided. This version runs both the login and game server together allowing an easily plug-and-play architecture.
Implements all guard behavior.
PathingService is an important part. It must be implemented designed to be fast and good. I believe a A* algorithm is good enough. We don't need 3D pathing for now, height can be fixed by MapService all we need is find two-dimensional (x-y) path for the given location.
After each attack an character does to another Actor, it's attack cool down is not respected. This bug allows the character to kill really fast any actor by spamming ctrl + click commands (force attacks) on the target.
The attack cool down should be handled by AttackService.
The AdministratorService is responsible for admin related actions. All admin commands are executed by this service. Command parsing is done in the packet object.
The LotteryService implementation is responsible for managing and selecting an winner from the tickets. Two service instances should be available:
AlwaysWinLotteryService: This instance will always have an winner, meaning that it will be aware of all bets and select one at lottery time.
SimpleLotteryService: The default implementation and will select an random number, being bet or not.
Each Actor can have its behavior or stats changed by an effect. There is already an ActorEffects implementation which is an container, that will maintain control over all active effects in the actor.
PvPService will manage the following:
Implements behavior for walking NPCs
The AttackService will be responsible for issuing attacks and dispatching their events.
Broadcast service will be responsible for sending packets to others (and self too) once an specific event is dispatched. Players interested in broadcast messages must register themselves at the service, and they will start receiving notifications until they are (a) disconnected or (b) unregistered from the service.
There is already an simple implementation hard-coded in CharacterServiceImpl#enterWorld(L2Character)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.