Jump to content

Xanderॐ

Banned
  • Posts

    691
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by Xanderॐ

  1. I didn't take into account the future of Olympiad when I thought about that type of event. Mainly because I never liked olympiad for reasons that some people stated in this topic. Anyhow after some thoughtful days I took cortesy of designing the system in detail and implementing it in my test server. At frist I thought it would need lots of coding, turns out it wasn't that difficult feature. So here's my implementation in detail. 1)Each player can have Hero points. At any given time, the top1 player of each class that has the most hero points becomes the hero automatically. The game checks the ranking at intervals. 2)The hero points reset to zero every two weeks. This is the Heroic period. In other words all points get removed from the game every two weeks. 3)Points enter the game by ancient heroic spirit's blessings towards the players. Siegheart, Lionna, Bartz etc, bestow heroic points into the game on multiple occasions. Some of them: a)At the start of the heroic period every person online gets 200 hero points from Bartz. b)Lionna sends 1500 points in every event of the game (e.g. TvT ). The winning team splits the 1000 points equally. The losers split the 500. c)Sieghart sends 10.000 points in every castle under siege. Providing there are attackers and defenders, the winning clan splits those points equally among it's online members. d)Erica sends random points from 0 to 20, randomly to people that are participating in pvp as a reward for their courage of risking to lose hero points in battle. 4)Points exit the game by performing special abilities. Each special ability costs 1% of your hero points. Currently there are two special abilities. a).stealth, makes you invisible as long as you dont perform actions or move. Can't be used in combat or when you are surrounded by players. b).locate <playername> allows you to locate the whereabouts of a person. 5)Points change hands ingame during pvp or pk. The rules are as follows: a)When you kill someone in pvp, you get 5% of his points. If you are in party, the points split equally in your party. b)When you pk someone in pvp, you get 10% of his points. Same party rules apply. Clearing karma is custom and not easy as in killing one mob. c)When you kill a pk, you get 50% of his points. d)When you win someone in olympiad, you get 10% of his points.
  2. Not so simple cause some classes can't really do pvps. I mean we do have healers dont we ? Can't expect them to get a bow and go out there pretending to be archers ... I believe teamplay should be a factor that determines heroes, especially those in the support classes.
  3. Sadly, I'm retired. On different circumstances I would probably code it. But I'm sure the younger guys are equally good to code it ;)
  4. Recently I played a game that had a heroic system a little bit different than Lineage 2 one ( olympiad ). For those of you that watch tennis and know about the tennis rankings this will be pretty easy to understand. Without further delay here's an adaptation of that system to Lineage 2: The game time is divided into periods. Each period has a stable duration, ( example 2 weeks ) during which, players can accumulate points. For each class, people are ranked based on points they accumulate. At any point in time, the person that has the most points ( Ranked 1 ) becomes the hero in that class. At the end of each period, the points reset. You get points by doing achievements that demand good pvp in solo or in team. Each achievment gives specific amount of points. Achievements can be things like : Be on a clan that conquers a castle, be on a clan that defends sucessfully a castle, play a lot in pvp without dying many times, have a TVT winning ration of >0.5 and so on. The main concept is that your rightfulness as a hero is judged by many game aspects and not just by going 1 vs 1 on olympiad.
  5. Anyhow no hard feelings, my intetion was not to mock your project, but when you share something and go public, you can't go "whatever I'll do what I want". There's going to be feedback from others and you must always consider it.
  6. @Pauler I didn't mock your project. But if your project is just for your amusement as you said and if you want to name every class like a food ( quoting your words ), then you can go do that in private. What's the point of creating a topic about such project to flame bite everyone around here ? And since you already got five pages of arguing where handlers should be ... I think you kinda succeeded in that. Let me repeat myself, when you share something, you do it to create value for others, not for your amusement nor to satisfy your eager for flame/trolling creation.
  7. This is a bad coding practice. Easier, faster and implementation agnostic since this code section does not need to know the class type of the handler to evaluate. And it avoids reflecting on the Class<?> equality.
  8. Where do we start :) Damn L2J community is still striving and going good. That's interesting news, but now on a more serious note regarding the packs and some replies here. The educational myth Personally, I don't believe L2 to be the best option for educational purposes. Mainly because L2J and generally private servers is a concept way too close to the market. Everything around here is done for the money. It is not a good ground for education when everyone expects your product to reach production state and make money. There are countless of open source projects out there for Java Developers that want to learn to use Java Technologies. Some that I could name are the Jetty Open Source Web Server, Apache Solr Indexer, the NoSQL Cassandra database etc. They all include amazing technologies, JAX-RS, JAXB, EJB3, Spring, Hibernate etc. The new hot L2J Project I'll pretend to be your grandpa, "listen kid", you don't create a new L2J Project just because you want to refractor the code in a way you believe is the right one. If you ask ten people where they want handlers to be, you will get ten different answers, even if they can be in the core, or in the datapack. The same will go for the name of L2PcInstance class. Purity is not a goal you should pursue in real life. On the other hand, chaos isn't a goal either. You can't create a pack full of shitty customs just because you learnt how to adopt every share out there to your pack. Why should a pack exist ? A pack should exist if it gives value to the people that need it. Ask this question to yourself when you create a pack, what am I doing different than the others that will make my target group prefer me over them ? Specifically for your pack, you should ask what does it do better than acis, in which sections does it improve it. That's how you can find your packs identity. I could name some reasons where acis fails and you could succeed. Examples: lack of custom codes, lack of essential things like custom gatekeeper/buffer, lack of SVN access for easy sync. PS: That's not a reason for handlers to stay in the core -.-'. And it violates the Liskov principle of Object Oriented Programming.
  9. 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 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.
  10. 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.
  11. Anyhow different opinions :P Good luck with the share ( and dont get affected by bullies like borntobeahero ).
  12. You should not get the ids from a static xml file but allow each player to define ids by himself. The way we did it in L2Relapse/Retro on the past was: 1)Wear the visual set. 2)Press dressme command to grab all those ids from the current ( visual ) armor and store to the db. 3)Change to your main armor and populate UserInfo, CharInfo from the information found on the DB for every character. Remember, dressme is all about letting players decide how they wanna look like, not force them to look like an xml says ;)
  13. Actually, the reloading proccess is right there. I was just looking at your latest public release of the source. The whole proccess is handled the same way the Scripts/Quest get reloaded. The key classes here are the L2ScriptEngineManager and the L2ScriptEngine under the scripting package. Specifically there's a method called reloadAllScriptsInDirectory or something that takes as an argument the File object that points to the directory containing all the scripts. Then it recursively iterates all the files in the dir, compiles them based on the classpath this engine was initialized from and runs their main method. This is how the handlers get loaded in the latest chronicles. Each Handler that implements its interface is responsible in registering itself to the handler container map through its main method or as L2JServer did it, a Master handler contains a main method that registers all the main-less handlers to the core container. My point was not that though. The point: was the handlers ever in the datapack before they get moved in the core, or where they always in the core to start with ? Obviously the benefit we both see is that you can instantly reload chunks of code with a single call and develope without having to restart the whole JVM proccess. Cheers :)
  14. Ok now I got confused. So it is in the interest of interlude packs to move business logic content like handlers from the core to the datapack or no ? I'm very new to Interlude, so I don't know a thing about whats going on there.
  15. Ok cause I was wondering the same. I really liked how ScriptEngine used to compile and load java classes that implemented core interfaces :(
  16. Question, I just tried aCis, why were the handlers moved into the core in every single l2j pack ? o0 ?
  17. Pretty straightforward I see thanks. Isn't aCis thought still under heavy development ? Has there been any server going live with aCis ?
  18. Since I downloaded interlude again and because it's been a long time since I coded anything for L2J, I'm thinkinig to write some custom things for interlude. Which lead us to the current topics question, aside from all the pile of garbage that goes around is there any pack that currently fullfils the following criteria : 1)Stable: Less NPE, less memory leaks, less game mechanic exploits. 2)Developed status: Most of the main features done. 3)Not under heavy alpha development : Less frequent commits, less refractor. 4)Able to go live in a server: Not something that is just for testing. Thanks a lot.
  19. Use the start button from inside the updater, don't run the game through the L2.exe
  20. I hear nice things about the server, but it seems a configuration mistake is disallowing like 50% of the players from joining. Me myself, can't connect, its as if some firewall is blocking my IP address.
  21. You too and good luck with your server :)
  22. I didn't understand, me, Seketh, who ?
  23. I know its a remake since the old owner is not part of the team anymore. But I wanna believe that part of him lives inside them. That's why I didn't say I'll get addicted or something but download the client and try it ;)
  24. I never played echo since I was not that active in L2J back during its golden age. Taking a look at their old forums though, seeing the community anthusiasm and the teams motivation, I can say that the new ecoKinetics will be a server worth try even for an old brat like me. Downloading interlude :)
  25. O my my , did I write that part of the code ? Shame on me :P If you are not in JDK7, in the catch block close the connection or in a finally block as tryskell said, better that way.
×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock