Jump to content

Recommended Posts

Posted (edited)
2 hours ago, Elfocrash said:

Sorry for that. I thought you were on GitHub. 

 

 

Now i am worried, according to me, in the README.md file I am clear, so if you thought that, other people can think the same (sad face)

 

ea.thumb.png.2b60d2962c6565381e10f931ec889ac1.png

 

@Rootware Cause i took the "version 1" (public) and i did not use L2jFrozen 2.0 (private)... So i made my own path and in honor to the public version i called my project L2jFrozen 1.5, simple.

Edited by Dragic
Posted
2 hours ago, xFranky said:

Whoever wants to participate and help out please send me a PM. If not, I will simply abandon this idea

You should start and eventually people will join you

  • Upvote 1
Posted (edited)

Hi @xFranky,

 

You need someone like @Tryskell (or himself) to have a good understanding of the project and not to rush on committing 2 lines suggested by a random guy. Everything has to be organized in order to success. If you don't control the changes/commits, the project will end up like any other L2J fork from 2009 when everyone was having one. You really need to think it thru when doing a commit

  • what is it fixing
  • what else may that affect
  • how can you improve it
  • how can you make sure you're following a coding style
  • and testing it in every possible way

Adding customs is definitely easier. But how will this project of yours save the community?

Server owners can pay several (if not one) developers to code whatever he/she wants.

Perhaps it will only help the community if server owners would be more open minded and cooperative.

 

I'm reading every single new reply on aCis forums weekly. I'm not opening a server, but I'm very attached to the project. I'm occasionally helping people (so called "L2 buddies") with their servers, for free.

 

If I were you, I'd make a separated project, self-styled "engine" with listeners, like we/I used to be working on aCis, thanks to Seth that opened my eyes many years ago.

If you do this, you'll have one file for each feature/custom. I will c/p one example below for you.

You and your developers that wanna join you will be more satisfied with this.

Maybe you can join an existing community, such as aCis with your engine -separated categories on the forum. Try to talk to @Tryskell, @Sido and @SweeTs about it.

 

# True or false.
OlympiadSkillsSystem = False

# Skill level set to 0 will auto select max skill level.
# [classId: = skillId-skillLv];
OlympiadSkills = [101:92: = 7100-1];
public class OlympiadSkills implements EventListener
{
	private static final Logger LOG = Logger.getLogger(OlympiadSkills.class.getName());
	
	protected static final HashMap<Integer, L2Skill[]> olympiadSkills = new HashMap<>();
	
	public OlympiadSkills()
	{
		CorvusConfig config = Corax.config();
		
		String data = config.getProperty("OlympiadSkills", "");
		String[] dataHash = data.split(";");
		for (String data2 : dataHash)
		{
			String[] skillIds = data2.split("=")[1].split(",");
			L2Skill[] leIds = new L2Skill[skillIds.length];
			SkillTable table = SkillTable.getInstance();
			for (int i = 0; i < skillIds.length; i++)
			{
				String[] defs = skillIds[i].split("-");
				String skillIdValue = defs[0].replaceAll("[^\\p{L}\\p{N}]", "");
				String skillLevelValue = defs[1].replaceAll("[^\\p{L}\\p{N}]", "");
				
				int skillId = Integer.parseInt(skillIdValue);
				int level = Integer.parseInt(skillLevelValue);
				boolean max = level <= 0;
				L2Skill skill = table.getInfo(skillId, max ? table.getMaxLevel(skillId) : level);
				
				if (skill != null)
					leIds[i] = skill;
				else
					LOG.warning(getClass().getSimpleName() + ": Failed loading skill: " + skillId + " level: " + (max ? table.getMaxLevel(skillId) : level) + ". Skill dose not exist!");
			}
			
			String[] dataHash2 = data2.split("=")[0].split(":");
			for (int i = 0; i < dataHash2.length; i++)
			{
				String classIdValue = dataHash2[i].replaceAll("[^\\p{L}\\p{N}]", "");
				int classId = -1;
				if (classIdValue.isEmpty())
					continue;
				
				try
				{
					classId = Integer.parseInt(classIdValue);
					olympiadSkills.put(classId, leIds);
				}
				catch (Exception e)
				{
					e.printStackTrace();
				}
			}
		}
		
		LOG.info(getClass().getSimpleName() + ": Loaded " + olympiadSkills.size() + " balance entry(s).");
	}
	
	@Override
	public void listen(Event event, Object... params)
	{
		switch (event.eventId)
		{
			case EventKeys.Olympiad.portPlayerToArena:
			{
				Player player = (Player) params[0];
				
				L2Skill[] skills = olympiadSkills.get(player.getClassId().getId());
				if (skills != null)
				{
					for (L2Skill skill : skills)
						player.addSkill(skill, false);
				}
				else
					LOG.warning(getClass().getSimpleName() + ": Missing skill for classId: " + player.getClassId().getId());
				
				break;
			}
			case EventKeys.Olympiad.portPlayerBack:
			case EventKeys.Cleanup:
			{
				Player player = (Player) params[0];
				
				L2Skill[] skills = olympiadSkills.get(player.getClassId().getId());
				if (skills != null)
				{
					for (L2Skill skill : skills)
						player.removeSkill(skill.getId(), true);
				}
				
				break;
			}
		}
	}
}

 

Edited by Trance
  • Like 1
  • Upvote 1
Posted (edited)

Well aside from what the OP suggests we could combine our resources and open a multiversion server. If im not mistaken L2jserver and others were working on a universal login. Just get a bunch of people to develop their servers and put everything under one roof. Im sure if 20 people contribute a few eu/usd we could rent a hude dedicated server and offer cool servers without donations for everyone to enjoy. That i think is the only way to revive this community.

Edited by Porthos
Posted (edited)
10 hours ago, Porthos said:

Well aside from what the OP suggests we could combine our resources and open a multiversion server. If im not mistaken L2jserver and others were working on a universal login. Just get a bunch of people to develop their servers and put everything under one roof. Im sure if 20 people contribute a few eu/usd we could rent a hude dedicated server and offer cool servers without donations for everyone to enjoy. That i think is the only way to revive this community.

 

There's a whole world between multiversion login and multiversion server.

 

"Just get a bunch of people"... Do you know how much ppl already contributed to L2J, and you still got that feeling nothing is working correctly ?

 

Until you're a real life project manager, and got illimited human ressources, simply forget the idea. It took me 9y to put aCis where it is (bad tongues could say I didn't work for almost 3 full years, but bad tongues are unable to assure project management for as long time), and I don't even count all people who contributed.

 

So a MULTIVERSION server ? With all checks, races which are/aren't here, features to desactivate/activate, scripts rewards rates/differences/full rework on GoD ? Lol. Gl with that.

 

I don't even count human ego in the story. Who will be the leader of such thing ? And who seriously will accept it ?

Edited by Tryskell
Posted (edited)

 

13 hours ago, Porthos said:

Well aside from what the OP suggests we could combine our resources and open a multiversion server. If im not mistaken L2jserver and others were working on a universal login. Just get a bunch of people to develop their servers and put everything under one roof. Im sure if 20 people contribute a few eu/usd we could rent a hude dedicated server and offer cool servers without donations for everyone to enjoy. That i think is the only way to revive this community.

 

To ask that, you do not comprehend the changes that make each version different.

The changes between different versions are beyond idiotic level. (I call that NC level)

Take it from someone that supports 20 different branches and counting.

 

The only thing you can achive by something like that,

is make your server extensively use resources for no reason.

 

The best solution for this:

- Multiple simultaneous projects on same Eclipse environment.

- SVN for simultaneous commits and easy branch comparison using Eclipse.

- Keep code compatible between different versions.

 

See how same changes are committed between different versions

Note that C1 and C6 rarely share the same changes with the rest versions.
https://bitbucket.org/MobiusDev/l2j_mobius/src/master/

 

Edited by Mobius
Posted
36 minutes ago, Porthos said:

Cant we alternatively just have a single login server and everyone would connect their servers to it?

Something like that.

No, each project have his own rules about Loginserver <-> gameserver.
It could be possible only if every pack adopt standard methodology

Posted

Thank each and everyone for their support, but I believe, it was a waste of time to ask people who would want to contribute in such a thing. Only a few people have responded positively, but I haven't seen anything. I will most likely start something by myself and let others just contribute, if they want, whenever they want, as I will be sharing my links to everyone.

 

The way how I will make this is, I will come to the community to ask what features they would like to see, then I will be starting it myself, and when I feel is in an "okish" standard to be released, I will share the link to the public. If anyone has to suggest any correction, this will be welcomed on my GitHub Repositories, as for each feature I will be starting to work on, it will have its own repository.

Posted
On 1/22/2020 at 12:53 PM, Tryskell said:

(bad tongues could say I didn't work for almost 3 full years,...

 

Bad tongues say you can't answer properly on fb.

  

On 1/15/2020 at 10:42 PM, Reynald0 said:

Even if is not about money, how will you pay to L2jaCis, webserver (if you will use), domain (if you will use), server to host your test server (if you will use).

 

Nowdays, if you are above 15yo, those are very cheap to cover.

 

On 1/22/2020 at 1:01 AM, Trance said:

Hi  @Sido!

 

Sup @Trance !

 

On 1/23/2020 at 2:36 AM, xFranky said:

Thank each and everyone for their support,....  anyone ... will be welcomed...

 

Web related, if you need my help, let me know :)

  • Like 1
Posted
3 hours ago, Trance said:

@xFranky, and yet, you haven't answered my reply.

Hello @Trance. I am sorry about that. Silly me!

 

On 1/21/2020 at 11:01 PM, Trance said:

Hi @xFranky,

 

You need someone like @Tryskell (or himself) to have a good understanding of the project and not to rush on committing 2 lines suggested by a random guy. Everything has to be organized in order to success. If you don't control the changes/commits, the project will end up like any other L2J fork from 2009 when everyone was having one. You really need to think it thru when doing a commit

  • what is it fixing
  • what else may that affect
  • how can you improve it
  • how can you make sure you're following a coding style
  • and testing it in every possible way

Adding customs is definitely easier. But how will this project of yours save the community?

Server owners can pay several (if not one) developers to code whatever he/she wants.

Perhaps it will only help the community if server owners would be more open minded and cooperative.

 

I'm reading every single new reply on aCis forums weekly. I'm not opening a server, but I'm very attached to the project. I'm occasionally helping people (so called "L2 buddies") with their servers, for free.

 

If I were you, I'd make a separated project, self-styled "engine" with listeners, like we/I used to be working on aCis, thanks to Seth that opened my eyes many years ago.

If you do this, you'll have one file for each feature/custom. I will c/p one example below for you.

You and your developers that wanna join you will be more satisfied with this.

Maybe you can join an existing community, such as aCis with your engine -separated categories on the forum. Try to talk to @Tryskell, @Sido and @SweeTs about it.

 

Initially, my project concept or idea was not to create a derival of aCis, but about a group of multiple but separated from one another, up-to-date and available features, which aims people that are looking for a particular feature. The advantages were to reduce the developer's time on looking for the features that are hard to be found either on MxC or Google, and they will not be out-of-date


Part of this idea for the features was to be based on aCis for creating and building up those features, and make them available for multiple L2J packs that enables an easier adaptation of the code. In order to achieve this was to make use of GitHub. GitHub has a great engine for keeping a track of all the commits and, which allows me to either approve or amend commits as I see necessary. Additionally, everyone could contribute, without been told for what to do, when they are suitable and find free time. Therefore, I will have a total control about what is going on with the repositories, where any developer at any given point of time, can see all the commits and why they are made, in order to go ahead and update their code.


The idea of "saving the community" was because I remember myself when I started l2 developing, while I had no knowledge of coding. I was able to search the forum to find what I was looking for and simply figure out how to make simple changes without harming anything else. The majority of the code was available to the public, and it gave me the opportunity of learning code. Nowadays, this has been reduced, and in order to get a feature, as simple as a PvP and PK colour (I just gave an example to justify what I mean as simple code) you have to pay someone between 20€ to 100€, even though it is just 20 max lines of code. I just wanted to encourage developers to be more open minded, and give away simple things, since they could earn the trust of the community, create a good reputation, potentially increase of their customers, improve their code and coding style as they will be getting suggestions of how they could improve in the future and helping the L2 development community to grow up again. This can give them a nice feeling for contributing and helping hundreds of people.


When it comes to the engine which you mention, which is a great example, is easy and possible to be done. I just needed ideas and motivation, which are gone since a few days ago 
for something that have happened to me, so I am waiting them to come back and recover. I might have to take some time off from coding and drink a lot of Vodka. Idk. 


Nevertheless, I could just start by myself and if anyone wanted to commit, they would be more than welcome including yourself. However, there is an issue which I learned recently. We are not allowed to have any aCis source code and pack shared on MxC, after the request of @Tryskell to Maxtor, which forces me to respect his decision, therefore this idea with the GitHub is not possible, since I have to share the link of the repository, in order for the whole idea to work. I could alternatively have diff files available but the whole concept would be corrupted. If I had the "Ok" from either @Tryskell, @SweeTs or @Sido to share a link of their source files to the public, with the promise of keeping all the repositories up-to-date with the latest free available sources, this concept can revive again! However, it is unlikely to happen and therefore I might just discontinue this idea.


Anyway, I like your idea and I will keep it in mind along with the advices you have given me on your post. I am thankful for that and for the time you have spent.

Posted (edited)
46 minutes ago, xFranky said:

Nevertheless, I could just start by myself and if anyone wanted to commit, they would be more than welcome including yourself. However, there is an issue which I learned recently. We are not allowed to have any aCis source code and pack shared on MxC, after the request of @Tryskell to Maxtor, which forces me to respect his decision, therefore this idea with the GitHub is not possible, since I have to share the link of the repository, in order for the whole idea to work. I could alternatively have diff files available but the whole concept would be corrupted. If I had the "Ok" from either @Tryskell, @SweeTs or @Sido to share a link of their source files to the public, with the promise of keeping all the repositories up-to-date with the latest free available sources, this concept can revive again! However, it is unlikely to happen and therefore I might just discontinue this idea.

 

@xFranky You can use L2jFrozen 1.5, we have kind of engine letting you integrate customs without modifying too much the main project (L2jFrozen 1.5).

You can create a script to download the last commit made in my SVN repository every 5 minutes and upload to your repository at the same time. So you can become a L2jFrozen 1.5  mirror with your work or work from others.

I only ask you to put in your README.md the link of the real repository in SourceForge.

Edited by Reynald0
  • Upvote 1
Posted (edited)
14 hours ago, xFranky said:

The idea of "saving the community" was because I remember myself when I started l2 developing, while I had no knowledge of coding. I was able to search the forum to find what I was looking for and simply figure out how to make simple changes without harming anything else. The majority of the code was available to the public, and it gave me the opportunity of learning code. Nowadays, this has been reduced, and in order to get a feature, as simple as a PvP and PK colour (I just gave an example to justify what I mean as simple code) you have to pay someone between 20€ to 100€, even though it is just 20 max lines of code. I just wanted to encourage developers to be more open minded, and give away simple things, since they could earn the trust of the community, create a good reputation, potentially increase of their customers, improve their code and coding style as they will be getting suggestions of how they could improve in the future and helping the L2 development community to grow up again. This can give them a nice feeling for contributing and helping hundreds of people.

 

That may be a bit off-topic but I request that you reconsider your choice. The problem is actually those dozens of private servers being around. Those greedy of admins have already drained enough of free material for more than a decade now, especially from l2j community, and the majority of them still failed to develop a decent project. This proves 'that majority' consists of immature and irresponsible people nowadays. Private servers have to be reduced and only those worth of managing such projects should start one.

 

If you wish to start something, don't let it be for free or it's gonna be wasted.

Edited by DnR

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



  • Posts

    • in conclusion when somebody who has a project for 10+ years still on development writes an e-say to try until you succeed and then advertises his project, one of the reasons is he needs money, so l2j has once more become pure expensive hobby, you wont make money out of it.   You can still use L2jFrozen and get better results for this, i know some people that done it    keep in mind that C in aCis stands for Crappy, and after all these years its not a cool wordplay anymore, its a fact, prove me wrong.
    • First, don't really follow the "main voice", moreover if you consider it an hobby. Simply do what you want, you got only one life so use it as you want. If you make it an hobby, it's exactly like piano, or velo - only practice makes you better.   Secondly, how do you learn things ? It's actually a really important question, since some can simply be scholar, read books (theory) then practice ; and some simply can't read books. I'm the second type, I hated school, I find it boring - my knowledge in Java comes from try-and-fail. You improve your coding style every year or so, I can myself rewrite my own code (which I already considered top-notched) after a while. You always learn something new - even if Java barely evolves. L2J is a fun way to learn programming, it's a giant sandbox where you can edit anything, and I believe it should be taken as it.   My own way of learning was as follow : Add existing customs, no matter what they are : the point is to know main classes used by L2J / customs. L2J is barely Java knowledge ; the true knowledge is to know WHAT to search in WHICH location (what I call, organization). You have to understand than EVERYTHING you think already exists, in a form on another, in the source code. A custom is only the association of the different mechanisms you found "here and there", glued together in a proper goal. Once you know main classes to edit, and the customs you added are compiling fine, the main point is to know WHAT exactly you DID. Try to understand WHY and WHERE you actually copied the code. Third point would be to MANIPULATE the customs you added in order to fit your wish. First edit little values, then logic conditions ; eventually add a new Config, or a new functionality to the custom. Fourth point would be to begin to craft your own ideas. Once again, EVERYTHING already exists, in a form or another. You want a cycled event ? You got Seven Signs main task as exemple. Npc ? Search any type of Npc and figure out what it does. Fifth point would be to understand Java - mostly containers (WHAT and WHERE to use them), variables types and main Java mechanisms (inheritance, static modifier, etc). You should also begin to cut your code into maintainable classes or methods. Java can actually run without optimization, but bigger your ideas, more optimized and well-thought it should be. It's direct saved time in the future, and you would thank yourself doing so. Main tips : ALWAYS use any type of versioning system - GIT or SVN. It allows to save your work, step by step and eventually revert back anytime you want if you terribly messed up. L2J is 80% organization knowledge, and 20% Java knowledge. Basically, if you know WHAT and WHERE to search, if you aren't dumb, it's easy to replicate and re-use things. Cherry on top is to use a already good coded pack to avoid copy-paste crap and get bad habits. Avoid any type of russian or brazilian packs, for exemple - their best ability is to leak someone's else code. Obviously you need some default sense of logic, but Java and programming in general help you to improve it.   Finally, most of your questions could be solved joining related Discord (at least for aCis, I can't speak for others) - from the moment your question was correctly asked (and you seemed to search for the answer). My community (and myself) welcomes newbies, but got some issues with noobies.   The simpliest is to try, fail and repeat until you succeed - it sounds stupid, but that's basically how life works.   PS : about Java ressources, before ChatGPT, it was mostly about stackoverflow website, and site like Baeldung's one. With ChatGPT and alike, you generally double-cross AI output to avoid fucked up answers. Also, care about AI, they are often hallucinating really hard, even today. They can give you complete wrong answer, you tell them they are wrong, and they say "indeed, I suck, sorry - here's a new fucked up answer". You shouldn't 100% rely over AI answer, even if that can give sometimes legit answers, full code or just skeletons of ideas.   PPS : I don't think there are reliable ressources regarding L2J itself, also most of the proposed code decays pretty fast if the source code is actually maintained (at least for aCis). Still, old coded customs for old aCis sources are actually a good beginner challenge to apply on latest source.
    • WTS: - AQ - Baium - Zaken  - Frintezza - Vesper Fighter Focus Fire Element   pm for detalis
  • Topics

×
×
  • 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