Giter VIP home page Giter VIP logo

l2jserver2's People

Contributors

gmlewis avatar rogiel 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

Watchers

 avatar  avatar  avatar  avatar

l2jserver2's Issues

Implementation os Boss Controller

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.

PvPService implementation

PvPService will manage the following:

  • Once a player dies, it will check if the killer is an L2Character. If it is, will increase the killer pvp count and issue an PvP Event.

PathingService implementation

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.

Implement AI for monsters and bosses

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.

SiegeService implementation

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.

AIService implementation

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.

ClanService implementation

The ClanService is will be responsible for:

  • Joining/Unjoining members
  • Permissions
  • Clan member online notification (using events)
  • Creating and deleting clans

PartyService implementation

The PartyService will manage parties:

  • Joining/Unjoining members
  • Member offline notification
  • Effects broadcast to members
  • Item drop interception
  • Creating and disposing parties

PetService implementation

Implementation of PetService that allows creation, summoning, unsummoning, destroying and dying of pets

Item template converter

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.

Effect API Design

The effect API design must yet be defined.

-- Open for discussion --

Login Server implementation

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.

AdministratorService implementation

The AdministratorService is responsible for admin related actions. All admin commands are executed by this service. Command parsing is done in the packet object.

DuelService implementation

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.

Attack cooldown is not enabled

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.

Skill API design

The skill API design must be yet defined.

-- Open for discussion --

NPC Bloody Pixy (31845) missing template XML

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]

Implement MonsterNPCController

The MonsterNPCController wil control each monster. Once the monster is clicked it should be targeted. If clicking again, the monster will be attacked.

BroadcastService implementation

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)

Effects implementation

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.

LotteryService implementation

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.

Implementation of Monster Controller

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.

CastleService implementation

Castle service is responsible for managing all castles in the game, applying taxes to the towns and transferring ownership.

PKService

PKService will manage the following:

  • Once a player attacks another player, it will start monitoring its actions
  • IF the other player attacked, its fine: it's not an PK
  • IF the other player does not attack and die, issue an CharacterPKEvent and increase character PK.

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.