Jump to content

Recommended Posts

Posted

Hello everybody!

Today we're gonna see the basics in order to solve a huge problem in MaxCheaters.

I am sure that all of you have seen posts like this:

Chronicle for that code? I am using Interlude!

I always reply to these guys that this question is not 'valid'. The reason? Well, java is a language, which is not different at every chronicle. So we should all know that java will always be the same, which means that if something exists in, for example, Gracia, then it can exist in, for example, Interlude too!

 

Let's now see the basics of codes' adaptions.

 

 

Finding our Code.

 

Well, of course the basic step is finding the code we'll try to use.

Most users are trying to add Epilogue codes into Interlude, since adding Interlude stuff in Gracia wouldn't be a big problem.

 

So, let's say that you have found the code that you need and try to add it.

If you don't have a full patch, then make sure that you have added everything needed, at both: DP and GS side.

 

If everything goes well, then skip the following steps and continue reading the "Testing" part.

 

But what if you fail adding it without errors?

Then, the only thing you've gotta do is to keep reading the guide.

 

 

~Typos

 

A possible reason for the error(s) is having typos.

What do I mean?

Well, you have either, accidentaly, added something that you probably shouldn't, or the code has typos because of the Chronicles' difference.

 

If you have added something, then the only way to find out what the heck you added, is to re-aply the code, or simply find the line where the error is, and delete it.

About the second case (The Chronicles' difference), then it will be very easy to correct it, since there aren't many possible cases.

 

You may wonder now, what do I mean when telling "typos because of the chronicles' difference", right?

Well, I will answer you with an example:

 

If you try to add in Interlude something like

if (activeChar.isCursedWeaponEquipped())

then you'll find an error at the 'isCursedWeaponEquipped' part.

 

It is very easy to fix it though!

You don't need any extra java knowledge, you just need to be familiar with the client you're using!

In Interlude, the fix will be to remove one "p" from the 'Equipped'.

So, it will actually become

if (activeChar.isCursedWeaponEquiped())

 

Very annoying, but easy, isn't it?

So, this a possible reason for having errors with your code.

Let's move on.

 

 

~Visibility

 

It may sound weird, but it may be a main reason for getting errors.

I will explain it to you with another example.

 

Let's say that you are trying to add a code from Gracia to Interlude, and you are having errors.

A possible reason is to have visibility differences.

If, for example, you are using a private boolean at a part of your code, since Gracia has it like this, you may need to change its visibility to suit your code.

 

So, for example, you may need to change a private boolean into a public one.

It's very simple, you just change the word that sets the visibility (private, public, etc.).

 

It is quite easy, but if you're facing problems, then I suppose that eclipse will correct it by itself.

Don't forget to check at the error symbols, or the red lines, so that eclipse will be able to provide you with its help!

 

Let's move on..

 

 

~Missing Parts

 

Well, this one is the most common problem, although it is hard to be solved by a newbie.

What do I mean when telling 'missing parts' ?

Well, if you usually use eclipse to solve such problems, then you may have noticed that sometimes, eclipse can't provide you with the proper help, in order to solve the problem.

A possible reason for this to happen, may be that you don't have the proper codes.

 

Let me use another example.

You are trying to add a code, although you must use a proper boolean in order to make it work properly.

But what happens when you the code you're looking for doesn't exist?

The solution sounds simple, but it may be harder than you think.

 

You can either write it by yourself, but since the guide is about newbies I doubt if you can, or take it from the chronicle itself.

You have to find the proper class in which the code exists.

Then you have to open the file, but in Epilogue's/Final's/etc. Chronicle.

 

After you open the proper file at Gracia's GS, you search for the proper, for example, boolean.

I suppose that you all know how to search in eclipse >_>

 

After that, simply copy/paste what you need, at your chronicle's proper file.

If everything goes well, then you can freely compile your core, and have fun.

 

But what happens if the code you pasted needs further editing?

Well, the answer is simple: Just do what you did right now.

What do I mean? Search for what it missing in order to complete the code.

 

Let's call it a chain reaction. Don't forget what I told previously: it may sound simple, but it isn't always.

If you finally find everything needed to complete the code, then you're finally done!

Let's move on..

 

 

~Imports

 

That's the last thing we'll mention.

It may sound weird and stupid, although it is something very basic.

 

Let's say that you have copy/pasted a brand new code, and created a class..

The first thing you've gotta do, before fixing further errors, is to fix the imports.

 

The imports' problem can either be simple, or complicated.

If it is simple, then you'll just have to change the starting part, in order to suit to the project you're using.

 

For example, Gracia Epilogue's imports start with

com.l2jserver

whereas Interlude's imports start with

net.sf.l2j

 

That's the easier part, and I suppose that all of you know this.

 

If the problem is complicated, then the names of the classes may be different, so they may confuse you.

But you should know that nothing is complicated at all!

There are just a few differences at the names or the packages.

 

For example, the well known L2NpcInstance in Interlude (located in model.actor.instance), is named L2Npc in Gracia (located in model.actor).

 

It's nothing so hard, so don't let simple things fool you.

 

 

So, these are the four parts with my advice.

But the guide isn't over yet!

We have to test everything ingame.

So, let's move on the last part of the guide.

 

 

Testing the Code.

 

As you may know, Interlude is a client in which if you add something, you may ruin a whole system.

So, my advice is: after adding every single code, make sure that you test it by yourself, and check if it affects other parts of your server.

 

Javac may find 0 errors, and the gs console may find 0 errors as well.

But don't think that the code will work properly.

 

You will have to test everything by yourself to see if the code you added works properly, and if it causes further problems.

 

If, in the end, everything is fine, then you're okay.

You have added everything you wanted and it works perfectly.

 

 

 

 

So, that's all for now people!

These are the basics of "adaptions", so I suppose that you will no longer have problems, like the ones I mentioned above.

 

I hope that from now on, we will see less questions like

Will it work on X Chronicle?

 

Goodbye everybody, and enjoy testing things by yourselves.

 

PS: If you have any extra ideas about more things to add, feel free to suggest them. Just make sure that they're related to the topic.

 

 

Best Regards,

Coyote™.

Posted

It's a very good guide and usefull too. btw what compiler you use?

 

Mainly eclipse.

I mention it in the guide, since most users find it easier than maven.

Posted

WoW man!

Thank you!I didn't knew how to do it... :P you see i am newbie on eclipse!

Thank you anyway, i found it very useful!

 

Will there be a video...cause i cant understand some parts!

Posted

WoW man!

Thank you!I didn't knew how to do it... :P you see i am newbie on eclipse!

Thank you anyway, i found it very useful!

 

Will there be a video...cause i cant understand some parts!

 

Videos are not my cup of tea.

I prefer writing than using such programs..

 

Sorry, but I can't help you with this.

I may translate it in Greek, though.

Posted

I am working at an epilogue l2jserver pack and i wanted to add a code!

if (activeChar.getLevel() >= 40)
    [javac]                         ^

how should i transform it?

 

where's the error?

You just gave 2 lines..

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.


×
×
  • Create New...