Jump to content

Recommended Posts

Posted

First of all greetings, I got no clue on the state of l2j and the servers nowadays, at least I hope I am posting this in the right section. Here's an idea I came up with some days ago. Try to read carefully cause it's a bit new for l2 and a bit complex.

 

Idea:

 

Enabling chatting between different servers through a p2p or master/slave architecture.

 

Details:

 

Imagine this scenario. We have two servers, lets call them L2Custom and L2Oldschool. They are both registered in the global chatting system. Here's what players and admins would be able to do.

 

Player in L2Oldschool:

 

.global Hallo everyone in Lineage 2 ! ---> Everyone in servers registered to that system would get this message, both in L2Custom and L2Oldschool

.pm L2Custom xxBestPlayerxx Hey man --> Player from L2Oldschool sends a pm to xxBestPlayerxx who is in L2Custom

 

Admin in L2Oldschool:

 

.ban L2Custom --> Bans all L2Custom incoming/outgoing chat to prevent advertising and flame if things go bad.

.ban L2custom xxBestPlayerxx --> Bans a player from L2Custom from chatting in L2Oldschool because he says shit about the server.

 

Commands and filters can be extended/applied to filter out unwanted behaviour such as server adverticement.

Posted

It's really an interesting idea, but requires a lot of work. It's like re-coding the whole chat system from scratch. I would really be glad to see it, too bad i don't have enough knowledge to help in it.

Good luck if you're going to try it :D

Posted

It's really an interesting idea, but requires a lot of work. It's like re-coding the whole chat system from scratch. I would really be glad to see it, too bad i don't have enough knowledge to help in it.

Good luck if you're going to try it :D

 

not rly, the hard part is the communications between the servers, not the chat system, the only thing that needs modification is the server socket communication, the chat system is fine, it doesnt need any heavy modification ;)

Posted

It's funny you speak about that, Cryptic studios made it with Neverwinter and Star Trek Online, the chat system is global to both those games (can see/PM online friends even if connected on another game, and probably admin side is also centralized).

 

Got an idea how the link will be made ? I guess during LoginServer hook ?

 


 

Another idea, if you manage to make it, is : adding a friend is linked to your account. Aka, when you invite someone you invite the account. Meaning if your friend logs on another character, then you still know he is online. Still an Cryptic idea.

 

Basically, on Cryptic games, a player is considered as playerName@accountName. You invite @accountName, and can see playerName when logged.

Posted

It's funny you speak about that, Cryptic studios made it with Neverwinter and Star Trek Online, the chat system is global to both those games (can see/PM online friends even if connected on another game, and probably admin side is also centralized).

 

Got an idea how the link will be made ? I guess during LoginServer hook ?

 


 

Another idea, if you manage to make it, is : adding a friend is linked to your account. Aka, when you invite someone you invite the account. Meaning if your friend logs on another character, then you still know he is online. Still an Cryptic idea.

 

Basically, on Cryptic games, a player is considered as playerName@accountName. You invite @accountName, and can see playerName when logged.

 

sockets

Posted

I would probably implement it using a Master-Slave architecture with a RESTful streaming API using HTTP.

 

For example say we have Master and Slave1 ( l2j server ) , Slave2 ( l2j server ) all of them running a web server and web client ( Jetty , Apache commons HTTPClient ).

 

From Slave1 to Master HTTP request:

 

1)/GET www.master.com/serverlist <-- Returns a list of registered servers with their Ids and Slave1 gets the Slave2's id.

2)/GET www.master.com/allow/{slave2Id}

 

From Slave1 to Master HTTP request:

1)/POST www.master.com/chat , json list of chat logs.

 

Master server reads the POST and forwards the POST to the Slave1 because Slave1 allowed Slave2 to communicate with it.

 

The basic idea flow for the chat is

 

a)SlaveX sends logs to be broadcasted to Master

b)Master receives the logs and forwards them to Slaves that have SlaveX in "allow" mode. That way you can configure which server you want to allow/block.

c)SlaveY receives the messages and pushes them into it's chatting system via shout/trade or whatever same way as some NPC's talk.

 

In every communication case above, the Slaves allow HTTP Posts/gets only from the Master IP address. That can be secured more using some clientid/clientsecret combination to authenticate the slave servers on the master server.

Posted

http://docs.oracle.com/javase/tutorial/networking/datagrams/clientServer.html

All you need ^^

 

It's safe, it's streightforward, you wont need to over-complicate yourself with TCP procedures, and you wont be afraid of syn ACK packet floods :P (before you say smth regarding UDP flood, you'll get flooded with udp on standard ports like services 0 and 80, if you open a obscure one it wont affect anything)

 

Also, a good thing to it is, you dont need to maintain connections, each connection stands tll all data is written and flushed out :P So you wont need another server to maintain connections, that is vulnerable to attack :P. No master no slaves, just short and efficient connections.

 

PS: it supports Selectors, and nio Channels :P

Posted

less work than you might think, since l2j separated the community server you can try to mod the new cb server so multiple servers can connect to it once and if you do it right there you have your cross server forum :)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Posts

    • @Mobius I only asked you one question! All your previous versions are sh*t and the last version is the best ? Because this is what you said.
    • Close that LOLserver. And change name to L2Wipe&Money.
    • Open Beta January 17th & 21:00 UTC +2 Launch Date January 24th & 21:00 UTC +2 Click Here to Explore Vanilla Gracia Final Low-Rate Server. Join our Discord Community     Following the success of our Vanilla project, we decided to launch it again as Last PlayINERA’s Server! Core Settings *Vanilla will have Strict Botting & Client Limitation Rules and Chronicle Progression from Gracia Final to Gracia Epilogue to H5 in Long term! XP: x4 SP: x4 Adena: x2 Drop: x2 Spoil: x3 Manor: x0.4 (60% reduction) - Festive sweeper enabled! Seal Stones: x2 Herbs: x1 Safe Enchant: +3 Maximum Enchant: Retail Enchant Rate: Dynamic General Settings Auto-loot Can be toggled Buffs Adventurer Guide buffs are free, retail level limit removed. Buff Slots: 20 (+ 4) Summon buffs will remain on re-summoning & on death while Noblesse blessing is applied! (Olympiad excluded) Pet buffs will be saved on relog but not during summon/unsummon. Event Buffer [NEW] Event Buffer is enabled and will spawn randomly between 18:00 ~ 23:00 in Giran for 10 minutes, it will apply Farm Only buffs that are cancelled in PvP, Siege / Epic PvP zones & while in a chaotic state! Duration: 1-hour! Territory Wars every two weeks on Saturday. Castle sieges every two weeks on Sunday Class Transfer 1st Class Transfer: Available for purchase with either Adena or iCoin 2nd Class Transfer: Available for purchase with either Adena or iCoin 3rd Class Transfer: Quest or iCoin (the 3rd class transfer will become available for purchase with iCoin as soon as someone has entered the Hall of Fame for completing the 3rd class transfer quest for the class in question) Hellbound Hellbound Lv. 0-6: ATOD x1 Hellbound Lv. 7-12: ATOD x2 Tiat & Ekimus will become available at Stage 12 Hellbound can only be leveled up by killing monsters. No quests or raids are needed To open Hellbound, a party must kill Baylor in the Crystal Caverns The following items are now tradable: Ancient Tome of the Demon  Hidden First Page  Hidden Second Page  Demon Contract Fragment INERA Hub Library Clan Recruitment System Options Services Milestone Rewards Earn rewards for reaching various daily/one-time goals Client Limit: 1 (+1 with Standard Premium) Shift + Click Information on Monsters SP are required to learn new skills Offline shops Lasts for 15 days Olympiad Olympiad period: 1st and 15th day of the month (14th & Last day of month is the last day) 3 Vs. 3 match disabled Class-based matches will be held over the weekends One registration per HWID (PC) Minimum participants: 9 Party Matching System Earn bonuses for finding a group via the Party Matching system Vote Reward System World Chat No limits for first day! Available from level 20 Raid Bosses Epic Raid Boss zones will turn into a PvP zone while the Epic Raid Boss is alive ( + means Random) Server will start with all grand raids dead. Normal Raids: 12h (+6 hours random). Subclass raids, respawn 12h (+6 hours random). Noblesse Barakiel 12h (+6 hours random, PvP zone). Anakim & Lilith are static 24 hours respawn. Queen Ant: 24 hours (+2 hours random). Core: 40 hours (+2 hours random). Orfen: 32 hours (+2 hours random). Antharas Respawn: 8 Days. Randomly spawns at 19:00 ~ 21:00 Boosted to level 83 on Hellbound stage 7. Valakas Respawn: 10 Days. Randomly spawns at 19:00 ~ 21:00 Baium Respawn: 5 Days. Randomly spawns at 21:00 ~ 23:00 Boosted to level 83 on Hellbound stage 7. Frintezza Respawn: 2 Days. Randomly spawns at 21:00 ~ 23:00 Instanced Zaken Zaken (Day): Monday, Wednesday, Friday at 6:30. Zaken (Day): 9 players, LvL 55-65, 1hr max. Zaken (Night): Wednesday at 6:30 Zaken (Night): 18-45 players, LvL 55-65, 6hr max. Tiat: Saturday at 6:30, 18-36 players, 2 hrs max. Boosted to level 85. Ekimus: 24h at 6:30, 18-27 players, 1hr max. Tully’s Workshop (Darion & Tully): 24h +-1h. Tower of Naia (Beleth): 5 days, 18 min. & 36 max.
  • Topics

×
×
  • Create New...