Jump to content

[Guide]Πως Να Κάνεις Compile & Πως Περνάς Έναν Java Code!


Recommended Posts

Καλησπέρα στα μέλη του Maxcheaters!

 

Στην προσπάθεια να κάνω Compile για να θυμηθώ το όλο θέμα, και αφού το έκανα, μετά πρόσεξα πως υπάρχουν οδηγοί δύσκολοι και με πολλά βήματα! Έτσι σκέφτηκα να ξανά ρίξω έναν οδηγό σαν Update στους παλιούς που είχα και έχουν σβηστεί φώτος.

Είναι κρίμα κάτι τόσο σημαντικό, να μένει στα πίσω πίσω ποστς, επειδή δεν είναι καλά τροποποιημένα!

(Του papaditsa ναι μεν είναι αναλυτικό, αλλά θέλει πολλά κλικ για να βρεις τα βήματα, αφού τις εικόνες τις έχει να τις κάνεις copy/paste για να τις δεις).

 

Θα προσπαθήσω να δείξω με λιγότερα βήματα, και περισσότερο αναλυτικά έτσι ώστε να καταλάβουν και οι πέτρες!

 

Αρχίζουμε..(Πάτα το "Show" για να δεις τον οδηγό).

 

 

1) Download Java

2) Download Eclipse for Java

 

Μόλις τα κάνετε Install (δε χρειάζεται να δείξουμε πως να κάνεις Install τα προγράμματα, είναι πιστεύω ανούσιο)!

Απλώς μόλις κάνεις το Install, θα σου ζητήσει που θέλεις να πάει το "Workspace" δηλαδή που να πηγαίνουν τα αρχεία μετά το Compile. Όρισε την διαδρομή ή άστο όπως είναι, και  πάτησε το "οκ".

 

Μετά μόλις μπούμε στο Eclipse, πατάμε -->Help/Install new software. (Όπως στην φώτο):

2gsg1nl.jpg

 

Προχωράμε και βάζουμε το παρακάτω λινκ εκεί που θα μας ανοίξει και θα ζητάει "type or select a site"

(http://subclipse.tigris.org/update_1.12.x/) Το βάζουμε εκεί χωρίς την παρένθεση όπως στη φώτο και πατάμε "add".

 

2jcy0s6.jpg

 

 

Μετά τσεκάρουμε τα 2 κουτάκια που θα μας ανοίξουν και πατάμε τα 2 "next" και το 1 "finish" όπως στις φώτο:

 

u6ceu.jpg

 

smqct5.jpg

 

o5nv3a.jpg

 

Τώρα, απλά το αφήνουμε να κάνει την εγκατάσταση, και μόλις μας βγάλει το "Secutiry warning" πατάμε οκ.

Λίγο αργότερα, θα μας ζητήσει να κάνει "επανεκκίνηση" του Eclipse. Πατάμε "yes" φυσικά!

(Δεν χρειάζεται φώτο, επειδή είναι ένα βήμα όπου θα πάει σωστά μόνο του, αν όλα τα παραπάνω δουλέψουν σωστά.).

 

 

Μετά, πηγαίνουμε Window-->Show view-->Other.

Διπλό κλικ στο SVN, και επιλέγουμε "SVN Repositories" και πατάμε "οκ".

 

zEI1h87.png

 

 

Ωραία! Δημιουργήσαμε το SVN Repositories, όπου τώρα μπορούμε να βάλουμε SVN για να κάνουμε Compile!

Δεξί κλικ μέσα στο άσπρο κενό κάτω από το "SVN Repositories", New-->Repository location.

 

xpTUAqu.png

 

 

Μόλις γίνει το παραπάνω θα μας ανοίξει ένα παραθυράκι όπου θα ζητάει URL. (Βάζουμε το SVN που θέλουμε και πατάμε "Finish").

Όπως θα δείτε, θα μας δημιουργήσει έναν σύνδεσμο, πατάμε δεξί κλικ και "Checkout" και μετά "Finish"

(Επίσης, μπορούμε να βάλουμε όνομα project σε ότι θέλουμε. Π.χ αντί για trunk, σε "L2J bla bla").

Τώρα, απλά περιμένουμε να περαστούν τα αρχεία του SVN στο Eclipse!

 

cOmtKhp.png

 

Θα δούμε πάνω, πως τώρα έχουνε περαστεί όλα τα αρχεία του SVN στο eclipse μας!

Οπότε, πάμε στο Datapack πατάμε διπλό κλικ, πάμε στο Build.xml, δεξί κλικ και Run as 1.

(Το ίδιο και στο Gameserver).

 

WFNEg4T.png

 

 

ΥΓ: Υπάρχουν 2 σημαντικά βήματα ώστε να μην πάει λάθος το Compile. Θα τα δείξω στο τέλος του ποστ.

 

 

Μετά πάμε στο C:\Users\blabla\workspace\trunk\datapack\build, θα δούμε μέσα ένα L2JFrozen_DataPack.rar.

Φτιάχνουμε νέο φάκελο και βάζουμε τι όνομα θέλουμε. Δεξί κλικ στο "L2JFrozen_DataPack.rar" και μετά "Extrack files". ΟΧΙ EXTRACK HERE!

Ψάχνουμε τον φάκελο που δημιουργήσαμε και το τρέχουμε εκεί μέσα!!!

Μόλις τελειώσει, πάμε στο C:\Users\blabla\workspace\trunk\gameserver\build, βρίσκουμε το L2JFrozen_Gameserver.rar.

Δεξί κλικ στο "L2JFrozen_Gameserver.rar" και μετά "Extrack files".  Ψάχνουμε τον φάκελο που δημιουργήσαμε πριν στο Datapack, και το τρέχουμε εκεί μέσα!!!

Μόλις τελειώσει,  μέσα στον φάκελο που δημιουργήσαμε, έχουμε ένα Compiled Project!

 

 

ΥΓ2: Τα 2 σημαντικά βήματα ώστε να μην πάει λάθος το Compile.

 

Πρέπει να ωρίσουμε διαδρομή για το JAVA_HOME, και να ρίξουμε την νέα Java μέσα στο Eclipse.

Για να ωρίσουμε JAVA_HOME, πάμε Πίνακας ελέγχου---> Σύστημα---> Ρυθμήσεις συστήματος για προχωρημένους. Εκεί που θα μας ανοίξει, θα πατήσουμε "Μεταβλητές Περιβάλλοντος". πατάμε "Δημιουργία και γράφουμε "JAVA_HOME και από κάτω C:\Program Files\Java\jdk1.7.0_71\bin".

(Κοιτάμε όλα ένα προς ένα, να είναι όπως στην φώτο).

 

hUeWNyL.png

 

Το δεύτερο, είναι πως πρέπει να πάμε μέσα στο Eclipse, στο Window--> Preferences. Πατάμε διπλό κλικ στο Java, και μετά Installed JREs. Μετά πατάμε "Search" και βρίσκουμε στα Program Files, τo Java που κάναμε εγκατάσταση.  Αφού το βρίκαμε, το περνάμε και κάνουμε κλικ στο κουτάκι του για να πιαστεί. Θα πρέπει να είναι όπως στην παρακάτω φώτο...

C:\Program Files\Java\jdk1.7.0_71.

 

n9c6mbP.png

 

 

 

 

Στο πως περνάμε έναν κώδικα, θα δείξω με δεύτερο ποστ από κάτω, για να μην κουράζουν όλα σε ένα.

Edited by 'Baggos'
  • Upvote 1
Link to comment
Share on other sites

Εδώ θα δείξω πως περνάμε έναν κώδικα Java στο Project μας. Να ξέρετε, πως το δύσκολο δεν είναι το πως να περνάμε έναν κώδικα, αλλά το πως θα τον επερξεργαστούμε στην πορεία. Δεν θα είναι όλοι κομμένοι και ραμμένοι στα μέτρα μας! Θα χρειαστεί κάποτε να αντικαταστήσουμε ένα λάθος με το σωστό!

Θα δείξω με έναν μεγάλο κάπως κώδικα πως τον περνάμε, γιατί δε θα ήταν οδηγός αν σας έδειχνα με 3 σειρές κώδικα!!!

 

 

Αρχίζουμε...(Πάτα το "Show" για να δεις τον οδηγό).

 

 

Πάμε και βρίσκουμε πιον κώδικα θέλουμε να περάσουμε... Π.χ αυτόν εδώ:

Double Exp-Sp In Saturday.

 

Πάμε στο Eclipse--> Gameserver/head-src/com/l2jfrozen Config.Java και το ανοίγουμε.

Ψάχνουμε τις σειρές με Alt & F:

     public static float RATE_XP;
     public static float RATE_SP;

και από κάτω βάζουμε τις σειρές με το + που λέει ο κώδικας. Μετά σβήνουμε τα "+".

     public static float RATE_XP;
     public static float RATE_SP;
+    public static float SATURDAY_RATE_XP;
+    public static float SATURDAY_RATE_SP;

WqcmOb1.png

 

Το ίδιο και στις παρακάτω σειρές. Ψάχνουμε με Alt & F τις σειρές χωρίς "+"

     RATE_XP = Float.parseFloat(server.getProperty("RateXp", "1."));
     RATE_SP = Float.parseFloat(server.getProperty("RateSp", "1."));
+    SATURDAY_RATE_XP = Float.parseFloat(server.getProperty("SaturDayXp", "2."));
+    SATURDAY_RATE_SP = Float.parseFloat(server.getProperty("SaturDaySp", "2."));

Αφού τα περάσουμε, πατάμε "Αποθήκευση" ή (Control & S).

NOTE: Πριν ανεβάσω την φώτο που δείχνει τι σβήνουμε, θέλω να τονίσω κάτι... Δεν είναι όλα τα "Property" ίδια. Οπότε, όταν ψάχνουμε σειρές για να περάσουμε έναν κώδικα στα Config, Θα τις ψάχνουμε μέχρι εκεί που ανοίγει η παρένθεση. Δηλαδή χωρίς το "(server.getProperty("SaturDaySp", "2."));". Επειδή άλλα μπορεί να λένε (rates ή κάτι άλλο.getProperty), αναλόγως αυτόν που τα φτιάχνει.

Οπότε, αφού στο Frozen τα έχεις αλλιώς τα config, αντικαταστούμε το Server.getProperty με το rates.getProperty.

 

iKoKghC.png

 

 

Τώρα.. Συνεχίζουμε και πάμε:

Στο Config.Properties (Αναλόγως που τα έχει το project. Του τύπου που έφτιαξε τον κώδικα, τα rates του server στα properties, τα είχε σαν server.getProperty. Ενώ το Frozen τα'χει rates.getProperty. Άρα στα Config μας τα'χει σαν Rates.properties.

 

Rates.properties

# ------------------------
#  Normal Rates -
# ------------------------
RateXp = 1.00
RateSp = 1.00
+    SaturDayXp = 2.
+    SaturDaySp = 2.

Αυτό είναι για τα config μας! Έτσι ώστε να ωρίζουμε το σάββατο πόσο να είναι το xp/sp.

(Δεν νομίζω να χρεάζεται να δίνω φώτο πάλι για το τι ψάχνουμε και τι σβήνουμε σε έναν κώδικα).

 

Μετά πάμε, Gameserver/head-src/com/l2jfrozen/L2Npc.java

_    /**
_     * Return the Exp Reward of this L2Npc contained in the L2NpcTemplate (modified by _RATE_XP).<BR><BR>
_     */
_    public int getExpReward()
_    {         
_      return (int) (getTemplate().rewardExp * Config.RATE_XP);                
_    }
 
+        private int Savvato()
+        {
+             return Calendar.getInstance().get(Calendar.SATURDAY);
+        }
+        private int dayofweek()
+        {
+             return Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
+        }
 
+    /**
+     * Return the Exp Reward of this L2Npc contained in the L2NpcTemplate (modified by +RATE_XP).<BR><BR>
+     */
+    public int getExpReward()
+    {
+       if(dayofweek() == Savvato())
+           return (int) (getTemplate().rewardExp * Config.SATURDAY_RATE_XP);
+       else
+               return (int) (getTemplate().rewardExp * Config.RATE_XP);
+              
+    }
 
_    /**
_     * Return the SP Reward of this L2Npc contained in the L2NpcTemplate (modified by _RATE_SP).<BR><BR>
_     */
_    public int getSpReward()
_    {
_       return (int) (getTemplate().rewardSp * Config.RATE_SP);
_    }
 
+    /**
+     * Return the SP Reward of this L2Npc contained in the L2NpcTemplate (modified by +RATE_SP).<BR><BR>
+     */
+    public int getSpReward()
+    {
+       if(dayofweek() == Savvato())
+               return (int) (getTemplate().rewardExp * Config.SATURDAY_RATE_SP);
+       else
+           return (int) (getTemplate().rewardSp * Config.RATE_SP);

Στην παρακάτω φώτο δείχνω τι μας λέει ο κώδικας να σβήσουμε.. Όπου κόκκινο, τα σβήνουμε εντελώς. Με μαύρο σβήνουμε μόνο τα "+"
 
amera8W.png
 
Μετά, πηγαίνουμε Gameserver και  πατάμε διπλό κλικ, πάμε στο Build.xml, δεξί κλικ και Run as 1.
Μόλις τελειώσει σωστά, και χωρίς έρρορ, θα έχουμε περάσει τον κώδικα στο Project.
Πάμε πάλι C:\Users\blabla\workspace\trunk\gameserver\build, θα δούμε μέσα ένα L2JFrozen_Gameserver.rar.
Δεξί κλικ στο "L2JFrozen_Gameserver.rar" και μετά "Extrack files" και το βάζουμε στον φάκελο που δημιουργήσαμε στην αρχή.

 

 

Δεν είναι κάτι το πολύ δύσκολο να γίνουν τα παρακάτω. Σιγά σιγά καθώς περνάει ο καιρός, θα αρχίσετε να καταλαβαίνεται έναν κώδικα από μόνοι σας!

 

Καλή συνέχεια...

Edited by 'Baggos'
Link to comment
Share on other sites

l2jmxcdeveloper2015 promote that guy already

Το θέμα είναι να υπάρχει στα Ελληνικά καθαρογραμμένα. Δεκάδες τέτοια θέματα υπάρχουν, αλλά τι να τα κάνεις όταν μπερδεύουν το Compile με το πως να ανοίξεις έναν Server στο ίδιο θέμα. Πολλές λέξεις που μπερδεύουν κάποιον που δε ξέρει.

Όταν ο άλλος ξέρει να ανοίξει Server, τότε θα κοιτάξει για το πως να περάσει κώδικα ή πως να κάνει Compile. Κανείς δεν άρχισε από το 0 και έκανε τα πάντα από 1 οδηγό και μόνο.

Link to comment
Share on other sites

  • 5 weeks later...

ωραιος ο βαγγος αλλα πια ειναι ι διαφορα στο compile με το περασμα του κωδικα;  :P

Όταν κάνουμε Compile, παίρνουμε τα αρχεία του Project από το SVN.

Το πέρασμα ενός κώδικα, είναι άλλο πράγμα. Π.χ, πειράζουμε την Java, και βάζουμε στον Server μας κάτι που θέλουμε.

Link to comment
Share on other sites

Όταν κάνουμε Compile, παίρνουμε τα αρχεία του Project από το SVN.

Το πέρασμα ενός κώδικα, είναι άλλο πράγμα. Π.χ, πειράζουμε την Java, και βάζουμε στον Server μας κάτι που θέλουμε.

Βάγγο θες διάβασμα μου φαίνεται..

 

 

ωραιος ο βαγγος αλλα πια ειναι ι διαφορα στο compile με το περασμα του κωδικα;  :P

Ρίξε μια ματιά εδώ. Αν και θεωρητικά, μια σχετική γνώση να έχεις γίνονται κατανοητά.

Link to comment
Share on other sites

Όταν κάνουμε Compile, παίρνουμε τα αρχεία του Project από το SVN.

Το πέρασμα ενός κώδικα, είναι άλλο πράγμα. Π.χ, πειράζουμε την Java, και βάζουμε στον Server μας κάτι που θέλουμε.

 

eklapsa

Link to comment
Share on other sites

Βάγγο θες διάβασμα μου φαίνεται..

 

 

Ρίξε μια ματιά εδώ. Αν και θεωρητικά, μια σχετική γνώση να έχεις γίνονται κατανοητά.

 

eklapsa

Εμ, ρώτησε "πια ειναι ι διαφορα στο compile με το περασμα του κωδικα;"

Η ουσία της απάντησης, είναι στο τι χρησιμεύει όλο αυτό που κάνουμε... Γιατί το κάνουμε εδώ μέσα στο L2.

Όλο αυτό του wiki, απαντάει σε γενικά.. Τι να την κάνεις όλη την θεωρία σε αυτή την ερώτηση?

Είπα γιατί κάνουμε compile εδώ τα SVN..

Δεν είπα ούτε τι είναι το compile, ούτε κάτι τέτοιο...

 

Φόρουμ παιχνιδιού είναι, όχι μάθημα για να δίνεις όλες τις θεωρίες που χρειάζεται.

Μάλλον δεν είναι το ποιος θέλει διάβασμα, αλλά τι απάντηση θα δώσεις..

Χαλαρώστε γνώστες, όλη ηθεωρία του Compile θα κολλήσει αλλού, όχι εδώ...

Link to comment
Share on other sites

Εμ, ρώτησε "πια ειναι ι διαφορα στο compile με το περασμα του κωδικα;"

Η ουσία της απάντησης, είναι στο τι χρησιμεύει όλο αυτό που κάνουμε... Γιατί το κάνουμε εδώ μέσα στο L2.

Όλο αυτό του wiki, απαντάει σε γενικά.. Τι να την κάνεις όλη την θεωρία σε αυτή την ερώτηση?

Είπα γιατί κάνουμε compile εδώ τα SVN..

Δεν είπα ούτε τι είναι το compile, ούτε κάτι τέτοιο...

 

Φόρουμ παιχνιδιού είναι, όχι μάθημα για να δίνεις όλες τις θεωρίες που χρειάζεται.

Μάλλον δεν είναι το ποιος θέλει διάβασμα, αλλά τι απάντηση θα δώσεις..

Χαλαρώστε γνώστες, όλη ηθεωρία του Compile θα κολλήσει αλλού, όχι εδώ...

Εφόσον υπάρχει έλλειψη γνώσης σε κάποια θέματα, ποιος ο λόγος να μπει κάποιος στον κόπο να διαβάζει αυτά τα guide που έχουν να κάνουν με το Lineage 2 χωρίς να ξέρει κάποια άλλα πράγματα.

Ας μην συνεχιστεί τουλάχιστον σε αυτό το νήμα, η συζήτηση γιατί θα είναι ανούσιο. Συμφωνώ σε αυτό που λες, ότι ίσως να ήταν αρκετά γενική η απάντηση μου, αλλά όσους και να ρωτήσεις εδώ πέρα, που ασχολούνται με αυτό θα σου πουν με μεγάλη σιγουριά ότι τα περισσότερα εκτός των παραπομπών, τα έμαθανα μόνοι τους. Χωρίς κάποια ιδιαίτερη εξήγηση. Διαφορετικά, στο κατάλληλο section μπορούν να δημιουργηθούν διάφορες απορίες και ερωτήσεις, έτσι ώστε να επιλυθούν. Το να πει κάποιος (πιτσιρίκος σε πολλές των περιπτώσεων) να φτιάξω ένα server και να μάθω να κάνω compile, εφόσον δεν γνωρίζει τα βασικά, το θεωρώ ιεροσυλία.

Ίσα ίσα πως εάν ακολουθήσει κάποιος αυτή την τακτκική, και το φόρουμ θα είναι πιο οργανωμένο και θα υπάρχει καλύτερη ενημέρωση. Και διάκριση αυτών που γνωρίζουν και αυτών που απλά κάνουν ένα copy/paste χωρίς να καταβαίνουν την ουσία αυτών που κάνουν.

Link to comment
Share on other sites

Εφόσον υπάρχει έλλειψη γνώσης σε κάποια θέματα, ποιος ο λόγος να μπει κάποιος στον κόπο να διαβάζει αυτά τα guide που έχουν να κάνουν με το Lineage 2 χωρίς να ξέρει κάποια άλλα πράγματα.

Ας μην συνεχιστεί τουλάχιστον σε αυτό το νήμα, η συζήτηση γιατί θα είναι ανούσιο. Συμφωνώ σε αυτό που λες, ότι ίσως να ήταν αρκετά γενική η απάντηση μου, αλλά όσους και να ρωτήσεις εδώ πέρα, που ασχολούνται με αυτό θα σου πουν με μεγάλη σιγουριά ότι τα περισσότερα εκτός των παραπομπών, τα έμαθανα μόνοι τους. Χωρίς κάποια ιδιαίτερη εξήγηση. Διαφορετικά, στο κατάλληλο section μπορούν να δημιουργηθούν διάφορες απορίες και ερωτήσεις, έτσι ώστε να επιλυθούν. Το να πει κάποιος (πιτσιρίκος σε πολλές των περιπτώσεων) να φτιάξω ένα server και να μάθω να κάνω compile, εφόσον δεν γνωρίζει τα βασικά, το θεωρώ ιεροσυλία.

Ίσα ίσα πως εάν ακολουθήσει κάποιος αυτή την τακτκική, και το φόρουμ θα είναι πιο οργανωμένο και θα υπάρχει καλύτερη ενημέρωση. Και διάκριση αυτών που γνωρίζουν και αυτών που απλά κάνουν ένα copy/paste χωρίς να καταβαίνουν την ουσία αυτών που κάνουν.

Ναι, συμφωνώ πως δεν χρειάζεται να πάρει περισσότερα replay αυτή η συζήτηση.

Απλώς, δεν έχει να κάνει με την γενική εκμάθηση στον ορισμό Compile, εδώ μέσα. Ένα πρόγραμμα το χρησιμοποιούμε για κάποιον σκοπό όπως εμείς θέλουμε. Ασχέτως αν δεν γνωρίζουμε την πραγματική "θεωρία" του!

Εδώ μέσα το παρόν πρόγραμμα, κάποιοι το έχουμε γι'αυτό το θέμα.. Να παίρνουμε από τα SVN τα αρχεία... Να κάνουμε τι θα κάνουμε στη Java του Lineage.. Τέλος μετά.. Αφού δε χρησιμεύει σε κάτι άλλο που θέλουν να κάνουν, κάποιοι όπως και εγώ, δεν θέλω και δε με νοιάζει να γνωρίζω την πραγματική του ουσία... Δεν θα με βοηθούσε κάπου εμένα προσωπικά.. Ούτε προγραμματιστής θα γίνω από εδώ μέσα όπως νομίζουν μερικοί ότι γίνονται, ούτε κάτι τέτοιο.. Τον χρόνο μου περνάω στο συγκεκριμένο παιχνίδι...

Δεν είμαι εδώ μέσα ούτε για να μάθω τις θεωρίες του κάθε προγράμματος, αλλά ούτε να τις ψευτο-διδάξω.

 

Τέσπα.. Καλή συνέχεια ρει..

Edited by 'Baggos'
Link to comment
Share on other sites

apla o ka9e asxetos erxete kai to paristanei ka9igitis edw mesa, nta3ei den ton adikw, to low forum fteei, i oi mods pou eprepe na kanoun insta junk topics/guides apo tetia atoma. Ala i evgenia mas marane

Link to comment
Share on other sites

εγω ρε παιδια ρωτισα πια ειναι η διαφορα το ενα με το αλλο οχι τι κανι το καθε ενα. με καλυψε ο βαγγος.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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...