Jump to content

Recommended Posts

Posted

Καλησπέρα Maxcheaters,

Αποφάσισα σήμερα να κάνω το 1ο μου share με θέμα "εισαγωγή java code".Σε αυτό το topic θα ασχοληθούμε με L2j Int.

 

 

Αρχικά κάνουμε compile συμφωνα με το guide του extremedwarf (για όσους δεν έχουν κάνει) http://www.maxcheaters.com/forum/index.php?topic=84234.0 αλλά στο svn repositories τοποθετούμε

 

(core) ==> http://l2jserver.com/svn/branches/L2_GameServer_it/

(datapack) ==> http://l2jdp.com/svn/branches/IT_Datapack/

 

και μετά συνεχίζουμε κανονικά το compile.

 

 

Λοιπόν,

στο θέμα μας.Παίρνουμε ένα τυχαίο code. Εγώ επέλεξα αυτο ==> http://www.maxcheaters.com/forum/index.php?topic=107019.0

 

(περισσότερα θα βρείτε εδώ) http://www.maxcheaters.com/forum/index.php?topic=105735.0

 

Ας αναφέρουμε κάποια βασικά πράγματα που πρέπει να γνωρίζουμε.

Όπου λέει + το προσθέτουμε και όπου - το αφαιρούμε. Προσοχή σε code του styl

 

           switch (_race)

            {

+               case Human:

+                  subclasses.removeAll(getSet(Kamael, Third));

+                  break;

+               case DarkElf:

+                  subclasses.removeAll(getSet(Kamael, Third));

+                  break;

               case Elf:

+                  subclasses.removeAll(getSet(Kamael, Third));

-                  break;

-               case DarkElf:

+                  subclasses.removeAll(getSet(Kamael, Third));

+                  break;

+               case Orc:

+                  subclasses.removeAll(getSet(Kamael, Third));

+                  break;

+               case Dwarf:

+                  subclasses.removeAll(getSet(Kamael, Third));

                  break;

            }

προσθέτουμε και αφαιρούμε μόνο τις γραμμές που έχει + και - και όχι τα { και } που βρίσκονται πάνω και κάτω.Επίσης με control + f κάνουμε αναζήτηση

 

Πάμε να το δούμε αναλυτικότερα και με φωτογραφίες

(για το συγκεκριμένο code)

 

Αρχικά,

 

ανοίγουμε java.net.sf.l2j.gameserver.model.actor.instance.L2VillageMasterInstance.java

 

το code λέει:

-        final Race npcRace = getVillageMasterRace();

-        final ClassType npcTeachType = getVillageMasterTeachType();

+        getVillageMasterRace();

+        getVillageMasterTeachType();

 

άρα πατάμε control και f και κάνουμε search final Race npcRace = getVillageMasterRace(); μετά πατάμε find  και αυτό μας πάει αυτόματα στη σειρά εκείνη. Έπειτα διαγράφουμε τις 2 πρώτες σειρές και αντικαθιστούμε με τις 2 τελευταίες.(προσοχή όταν αντιγράφουμε σβήνουμε τα - και τα +)

ορίστε και φώτο :

(1) replace1.jpg

και (2) replace2.jpg

 

 

Τώρα συνεχίζουμε:

 

το code λέει:

 

Find these lines and delete theme:

Quote

 

               if (npcRace == Race.Human || npcRace == Race.Elf)

               {

                   // If the master is human or light elf, ensure that fighter-type

                   // masters only teach fighter classes, and priest-type masters

                   // only teach priest classes etc.

                   if (!availSub.isOfType(npcTeachType)) availSubs.remove(availSub);

 

                   // Remove any non-human or light elf classes.

                   else if (!availSub.isOfRace(Race.Human)

                       && !availSub.isOfRace(Race.Elf)) availSubs.remove(availSub);

               }

               else

               {

                   // If the master is not human and not light elf,

                   // then remove any classes not of the same race as the master.

                   if (!availSub.isOfRace(npcRace)) availSubs.remove(availSub);

               }

 

Άρα control και f κάνουμε αναζήτηση μια από τις παραπάνω σειρές έτσι ώστε να τις βρούμε και να τις διαγράψουμε

 

photo ==> (3) replace3.jpg

και (4) replace4.jpg

 

Μετά απ αυτό λέει Go to: java.net.sf.l2j.gameserver.model.base.PlayerClass.java άρα ανοίγουμε το java.net.sf.l2j.gameserver.model.base.PlayerClass.java

 

#Find this line and delete it:  private static final Set<PlayerClass> neverSubclassed = EnumSet.of(Overlord, Warsmith); άρα control και f, τη βρίσκουμε και τη διαγράφουμε

 

 

 

ύστερα λέει

 

 

Find this line and delete it:

Quote

     subclasses.removeAll(neverSubclassed);

     

Now do like this:

Quote

           switch (_race)

            {

+               case Human:

+                  subclasses.removeAll(getSet(Kamael, Third));

+                  break;

+               case DarkElf:

+                  subclasses.removeAll(getSet(Kamael, Third));

+                  break;

               case Elf:

+                  subclasses.removeAll(getSet(Kamael, Third));

-                  break;

-               case DarkElf:

+                  subclasses.removeAll(getSet(Kamael, Third));

+                  break;

+               case Orc:

+                  subclasses.removeAll(getSet(Kamael, Third));

+                  break;

+               case Dwarf:

+                  subclasses.removeAll(getSet(Kamael, Third));

                  break;

            }

 

 

άρα κάνουμε αναζήτηση το subclasses.removeAll(neverSubclassed);

το διαγράφουμε και κάνουμε αναζήτηση switch (_race) και προσθέτουμε τα + και αφαιρούμε τα - όπως σας έδειξα πιο πάνω μέχρι  subclasses.removeAll(getSet(Kamael, Third));

πιθανόν να σας βγάλει error στη λέξη kamael επειδή είναι interlude αλλάξτε την σε _race έτσι ώστε να φαίνεται όπως στην εξής φωτογραφία ==> (5) replace5.jpg

 

Τώρα στο τελευταίο μέρος του code μας λέει

 

@@ -294,6 +321,4 @@

            else

               subclasses.removeAll(EnumSet.of(femaleSoulbreaker));

-            if (player.getTotalSubClasses() < 2)

-               subclasses.removeAll(EnumSet.of(inspector));

         }

      }

το @@ -294,6 +321,4 @@ μας δείχνει τη σειρά στην οποία πρέπει να ψάξουμε αν και μπορεί να μας είναι και άχρηστη διότι με τις τροποποιήσεις που κάνουμε μπορεί να σβήσουμε η να προσθέσουμε κάποιες σειρές έτσι ώστε να είναι λανθασμένη.Τέλος πάντων όπως πριν control + f βρίσκουμε τις 2 σειρές που έχουν (-) και τις διαγράφουμε.

(Για να αποθηκευτούν οι αλλαγές δεξί click στο build.xml==>run as==> 1 Ant Build περιμένετε περίπου ένα λεπτό μέχρι να πει build successful και μετά πηγαίνετε στο C:/workspace/L2_Gameserver_It/build αντιγράφετε το l2jserver.jar και το αντικαθιστάτε με αυτό που βρίσκεται στο login και gameserver.Έπειτα ένα restart και έχουν εφαρμοστεί)

 

 

Αυτό ήταν πιστεύω να βοήθησα αρκετούς ;-)

Credits : σε μένα :D

(Σημείωση έχω ξαναδεί παρόμοιο guide αλλά ήταν πολύ απλό και στα Αγγλικά δυστιχώς πολλοί Έλληνες δεν έχουν τη δυνατότητα να μιλήσουν/διαβάσουν  αγγλικά γι αυτό δημιούργησα και αυτό) αα και συγνώμη αν υπάρχει παρόμοιο στα Ελληνικά τόσο καιρό που είμαι μέλος δεν έχω δει κάτι.

 

Εφαρμόστε το και πείτε μου πιθανά errors :)

Edit: (Έβαλα 50 posts γιατί προφανώς κάποια bot ήθελαν να μου το καταστρέψουν)

 

Φιλικά,

ŜiŕBǔttǿńž. :)

Posted

Ωραία αυτά που γράφεις φίλος αλλά είναι δικά σου ή τα βρήκες σε άλλο φόρουμ?Αν ναι βάλε τα σωστά κρέντιτς!

Posted

Ωραία αυτά που γράφεις φίλος αλλά είναι δικά σου ή τα βρήκες σε άλλο φόρουμ?Αν ναι βάλε τα σωστά κρέντιτς!

δικά μου είναι έχω πει και στον Maxtor να μου αλλάξει το name αλλά ακόμα περιμένω
Posted

δικά μου είναι έχω πει και στον Maxtor να μου αλλάξει το name αλλά ακόμα περιμένω

Οκ τότε.Ευχαριστώ και συνέχισε έτσι.
Posted

thnx poli helpfull ine !!

τίποτα

Polh kalo file mou!

Kai para polh katanohto!

 

Alla exoun ginei kai alla guides!Alo ena guide den alazei tpt!

έχουν γίνει μεν αλλά στα Αγγλικά και πολύ απλά (το αναφέρω πιο πάνω). Πιστεύω ότι το δικό μου είναι παραπάνω αναλυτικό και κατανοητό για τους newbies.
Posted

έχουν γίνει μεν αλλά στα Αγγλικά και πολύ απλά (το αναφέρω πιο πάνω). Πιστεύω ότι το δικό μου είναι παραπάνω αναλυτικό και κατανοητό για τους newbies.

No, είχα κάνει και εγώ ενα guide πιο παλιά, λιγο πιο επεξηγηματικό από το δικό σου (http://www.maxcheaters.com/forum/index.php?topic=124802.0) . Αλλά και βέβαια 2ο guide βοηθαεί, δεν κάνει τπτ κακό.

Συνέχισε έτσι.

Posted

No, είχα κάνει και εγώ ενα guide πιο παλιά, λιγο πιο επεξηγηματικό από το δικό σου (http://www.maxcheaters.com/forum/index.php?topic=124802.0) . Αλλά και βέβαια 2ο guide βοηθαεί, δεν κάνει τπτ κακό.

Συνέχισε έτσι.

δεν είδα τίποτα soz :P

Pisteuw oti auto to topic aksizei karma.

polloi psaxnoun gia to pws tha baloun java code me eclipse

και εγώ αυτό πιστεύω μακάρι να μου δώσουν
Posted

φίλε τα σπάει το share και εσύ και ο extreme με βοηθήσατε αρκετά

πραγματικά αξίζει karma

bot ?

 

Posts: 1

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

    • I think that solves the freeze thing, anyway great share! 
    • Introducing: Daily & Weekly Missions!   I've released a major panel update with a new Missions system and expanded language support.   Players can now complete daily and weekly missions directly through the panel and claim rewards such as balance or items. Mission progress is tied to in-game activity and supported panel actions, and the update also adds a dedicated Missions page, dashboard mission previews, claimable mission indicators, and full admin tools for creating and managing missions.   The Roll page now shows the potential reward drops below the roll container.   Alongside this, I’ve expanded the panel’s language support with new locale options, including Bulgarian, Czech, Georgian, Lithuanian, Polish, Romanian, Japanese, Simplified Chinese, and Traditional Chinese.     The Demo is now updated with the new features for you to try out!
    • I sell complete packs. If you want to add an item, NPC, etc., you have to do that yourselves. Your friend bought the pack; he's the one who needs to configure his server type. He received what he bought as agreed, and I'm saying this without knowing who you're talking about, because anyone who buys something receives what was agreed upon.   Regards. mmmmm L2Velmore ????   If that's the one, I see everything went well... if I remember correctly you were crying over $100, I gave you a better price, and I suppose you made thousands with that... And you're still coming back to complain? :=)
    • I know many people have struggled with this specific issue and had trouble setting up the correct behavior for Toggle skills in aCis. By default, toggles interrupt the player's movement (retail-like), which often feels clunky to players who prefer a smoother, more modern experience. I've prepared a clean solution that eliminates this "freeze" and allows for fluid movement while toggling your auras. Below is the code on how to achieve this. Hope it helps! Changes in PlayerAI.java: Modified doActiveIntention to properly update the active state without stalling. Removed the forced stop() during toggle casting. Added a MoveToLocation broadcast to ensure other players see your movement correctly (prevents visual "teleporting" or desync). Best regards 😃 diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/ai/type/PlayerAI.java b/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/ai/type/PlayerAI.java index ba0425a..1b2658d 100644 --- a/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/ai/type/PlayerAI.java +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/ai/type/PlayerAI.java @@ -28,6 +28,7 @@  import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;  import net.sf.l2j.gameserver.network.serverpackets.AutoAttackStart;  import net.sf.l2j.gameserver.network.serverpackets.ChairSit; +import net.sf.l2j.gameserver.network.serverpackets.MoveToLocation;  import net.sf.l2j.gameserver.network.serverpackets.MoveToLocationInVehicle;  import net.sf.l2j.gameserver.network.serverpackets.MoveToPawn;  import net.sf.l2j.gameserver.network.serverpackets.StopMove; @@ -159,7 +160,10 @@      @Override      public synchronized void doActiveIntention()      { -        doIdleIntention(); +        prepareIntention(); +        _currentIntention.updateAsActive(); +        if (!getActor().isMoving()) +            thinkIdle();      }            @Override @@ -280,8 +284,9 @@                    if (skill.isToggle())          { -            getActor().getMove().stop();              getActor().getCast().doToggleCast(skill, target); +            if (getActor().isMoving()) +                getActor().broadcastPacket(new MoveToLocation(getActor()));          }          else          { https://pastebin.com/twZujZ3Y
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..