Jump to content

Recommended Posts

Posted

Ton garbage collector  pios ? Tis Sun einai o garbage collector, ena process pou diaxirizete tin mnimi pou desmeyei i java process. den grafeis esi ton garbage collector. Apla tunning kaneis.

Posted

H διαχειριση μνημης δεν ειναι κακή, η παραμετροποίηση ειναι κακή.

Ποιός ρυθμιζει την μνημη οταν στηνει L2J στο core με βαση την Ram του συστήματος? Ποιος ρυθμιζει τα μεγιστα και ελλάχιστα σημεία διαχείρισης στην μηχανή με βαση την Ram? Ποιός ξερει τι ειναι ο σκουπιδιάρης, πως λειτουργεί και πως ρυθμιζεται?

O server μου ξεκινα page με 2.3Gb, ολα 64bit dedicated, ρυθμιζμενος ο σκουπιδιαρης στο java core 1024Mb. Οταν εφτασε 200 ατομα online to page μετα απο 12 ωρες ήταν 2.2Gb, γιατι ο σκουπιδιαρης μαζεψε και πεταξε εξω όλα τα αχρηστα data απο την ram.

Τον σκουπιδιαρη δεν χρειαζεται να τον γραψεις ουτως ή αλλως. Να τον παραμετροποιήσεις χρειάζεται, οι περισσοτεροι πχ. δινουν ram στην java -Xmx 1024 (default)  και στον σκουπιδιαρη 256Μb. Aν 50 ατομα παιζουν για 8-10 ωρες γέμισε και ο server θελει restart...

Το ιδιο μηχανημα με 1024 ( -Xmx1024m ) και MaxPermSize=1024Μb θα χρησιμοποιήσει μεχρι 2048Mb απο την ram, το διπλάσιο δηλαδή και θα χρειαστεί επανεκκινηση σε 1 μηνα. Ο garbage ελεγχεται απο το permSize και χρησιμοποιήται βασικα για πραγματα που δεν κινούνται στην διαχείριση της Java ή απλα κινούνται συνέχεια. πχ ενα siege τρωει λιγοτερη Χm ram και περισσοτερη Perm, ενα Raid boss ή ενα duel επίσης, καθως και ενας παικτης αραχτός στην Giran για 5 ωρες...

 

Oυσιαστικα τα προβλήματα ερχονται απο αγνοια διαχειριστών περισσοτερο και λιγοτερο απο software bugs.

Posted

H διαχειριση μνημης δεν ειναι κακή, η παραμετροποίηση ειναι κακή.

Ποιός ρυθμιζει την μνημη οταν στηνει L2J στο core με βαση την Ram του συστήματος? Ποιος ρυθμιζει τα μεγιστα και ελλάχιστα σημεία διαχείρισης στην μηχανή με βαση την Ram? Ποιός ξερει τι ειναι ο σκουπιδιάρης, πως λειτουργεί και πως ρυθμιζεται?

O server μου ξεκινα page με 2.3Gb, ολα 64bit dedicated, ρυθμιζμενος ο σκουπιδιαρης στο java core 1024Mb. Οταν εφτασε 200 ατομα online to page μετα απο 12 ωρες ήταν 2.2Gb, γιατι ο σκουπιδιαρης μαζεψε και πεταξε εξω όλα τα αχρηστα data απο την ram.

Τον σκουπιδιαρη δεν χρειαζεται να τον γραψεις ουτως ή αλλως. Να τον παραμετροποιήσεις χρειάζεται, οι περισσοτεροι πχ. δινουν ram στην java -Xmx 1024 (default)  και στον σκουπιδιαρη 256Μb. Aν 50 ατομα παιζουν για 8-10 ωρες γέμισε και ο server θελει restart...

Το ιδιο μηχανημα με 1024 ( -Xmx1024m ) και MaxPermSize=1024Μb θα χρησιμοποιήσει μεχρι 2048Mb απο την ram, το διπλάσιο δηλαδή και θα χρειαστεί επανεκκινηση σε 1 μηνα. Ο garbage ελεγχεται απο το permSize και χρησιμοποιήται βασικα για πραγματα που δεν κινούνται στην διαχείριση της Java ή απλα κινούνται συνέχεια. πχ ενα siege τρωει λιγοτερη Χm ram και περισσοτερη Perm, ενα Raid boss ή ενα duel επίσης, καθως και ενας παικτης αραχτός στην Giran για 5 ωρες...

 

Oυσιαστικα τα προβλήματα ερχονται απο αγνοια διαχειριστών περισσοτερο και λιγοτερο απο software bugs.

 

Den ta ksereis kala. To Xmx sou orizei Young kai Tenured space size ( Tenured = permenent pou les ). To ratio exei mia default timi , ektos an tin oriseis esi me parametro xxratio nomizo einai ? Anyway an esi doseis 1 giga xmx kai meta tou peis maxpermsize 1 giga episis, ayto den tah sou desmeysei 2 giga. Tha sou desmeysei 1 giga, to opio tha to xorisei se dio partitions ena gia young kai ena gia tenured. Kai dinei sto tenured tin dinatotita to command sou na desmeysei otan gemizei mexri kai olo to space. Otan omos arxisei logo memory leaks ktl to tenured na gemizei, tote pernei olo to meros apo to young. To young pezei olo kai sixnotera garbage collection giati den exei poli xoros kai ta objects dimiourgounte sixna me apotelesma na exeis me megalo frequency small Garbage collections. To kalitero einai to Tenured space na einai fixed kai megalo , oste akoma kai an gemisei na ginei full GC na adiasei ap omesa oti mporei.

 

Diladi den prepei na tou doseis full to space na to diaxirizete, giati etsi to afinis na krataei gia poli kairo antikeimena pou den xrisimopoiountai. PX enas char kathete online gia 2 meres, kai meta bgenei. An esena to GC exei ta privs na megalosei to tenured oso thelei, anti na kalesei full GC otan gemisei, tha megalonei olo kai perissotero kobontas space apo to young me apotelesma na krata mesa axrista pragmata ( ton char pou ekane logout meta apo 2 meres ) eno eprepe na ta kserasei me full GC kathe 5-6 ores ( gia to logou to alithes, poli pio sintoma ).

 

 

Posted

Οκ όπως τα λες αφού τα γνωρίζεις καλύτερα... μονο που αναφερεις 2 πράγματα και κανεις σοβαρά λαθη και στα 2 :)

 

Δεν ειπα θα δεσμευσει 2Gb ... "Το ιδιο μηχανημα με 1024 ( -Xmx1024m ) και MaxPermSize=1024Μb θα χρησιμοποιήσει μεχρι 2048Mb απο την ram" (θα φτασει καπoια στιγμή τα 2Gb δηλαδή και δεν 'μοιραζεται'... 1ο μεγα και βασικό λαθος το Xmx παραμενει 1024), επίσης δεν ειπα πως per = garb "Ο garbage ελεγχεται απο το permSize και χρησιμοποιήται βασικα για πραγματα που δεν κινούνται στην διαχείριση της Java ή απλα κινούνται συνέχεια".

 

Επίσης 2ο μεγα και σημαντικό λαθος, τακτικές και PermGen δεν είναι το ίδιο, σχετίζονται, αλλά δεν είναι το ίδιο πράγμα. Οι ακριβείς λεπτομέρειες εξαρτώνται από την εφαρμογή της JVM που χρησιμοποιούμε, αλλά και απο το Page που συνδέονται με αυτήν.

Μια τρίτη γενιά συνδέεται στενά με την τακτική γενιά και αυτή είναι η μόνιμη γενιά. Η μόνιμη γενιά είναι ιδιαίτερη διότι διαθέτει στοιχεία που απαιτούνται από την εικονική μηχανή για να περιγράψει τα αντικείμενα που δεν έχουν ισοδυναμία στο επίπεδο γλώσσας Java. Για παράδειγμα, τα αντικείμενα που περιγράφουν τις κατηγορίες και είναι σαν μέθοδοι αποθηκευμένες στη μόνιμη γενιά.

Επίσης τυχόν 'strings' που έχουν εγκλεισθεί και λεπτομέρειες 'τάξης', αυτές συνήθως αποθηκεύονται σε Perm, ενώ ειναι τακτικοί με μεγάλη διάρκεια ζωής των αντικειμένων Java.

Ανέφερα απλα μια τεχνική διαχείρισης, που δεν ειναι μοναδική, έχει πολλες τεχνικές ορισμού πόρων.

Οι τεχικές και η στρατηγική διαχείρισης κανουν την διαφορά, που πιστέψτε με πρακτικα εχουν διαφορα απόδοσης μερα με την νυχτα...

 

"Στου κουφου την πορτα οσο θελεις βροντα" Ελληνική λαϊκή ρήση που εχει πολυ βαθύ στοχαμό, με απεριόριστη μεταφορά αλληγοριακών συμβάντων στην κοινωνία του δήθεν:)

Posted

 

"Στου κουφου την πορτα οσο θελεις βροντα" Ελληνική λαϊκή ρήση που εχει πολυ βαθύ στοχαμό, με απεριόριστη μεταφορά αλληγοριακών συμβάντων στην κοινωνία του δήθεν:)

 

Εγώ είμαι ο κουφός φυσικά, αλλά κάποιος άλλος δίνει 1024m στο heap που κρατάει class definitions και νομίζει θα πάει ένα μήνα για αυτό το λόγο. Εκτός αν ο server σου κάνει class reloading κάθε λεπτό, και χρειάζεται να μαζεύεις παλιά class objects συνεχώς, τι να πω ... enlighten me ..

Posted

"Στου κουφου την πορτα οσο θελεις βροντα" Ελληνική λαϊκή ρήση που εχει πολυ βαθύ στοχαμό, με απεριόριστη μεταφορά αλληγοριακών συμβάντων...

 

Το εγραψα και αναφερεται σε ολους γενικα που δεν λαμβανουν υπόψιν μια άλλη γνωμη έστω και λανθασμένη, σε ολους που δεν εχουν την διορατικότητα να συλλαβουν οτι κατι μπορει να ειναι και αλλιώς, σε ολους οσους θεωρουν την γωνια παρατήρησης απο το παραθυρό τους σαν την μοναδική οπτική γωνία του κόσμου, σε ολους οσους αγνοούν την έννοια της σχετικότητας και του εποικοδομητικού διαλόγου.

Δεν αναφερομαι σε εσενα προσωπικά, επίσης καταλαβαίνω πως είσαι απο τους λιγους εδω μεσα Leluche που γνωριζεις πραγματι πράγματα και ασχολήθηκες πολυ για να τα κατανοήσεις...

Οπως ανεφερες σε αλλο post δεν δινει κανενας σχεδόν σημασία σε αυτα που γράφω, δηλαδή μπαινακης και βγαινακης, που στο εδω καθεστως δεν διαφερει απο την πορτα του κουφού.

 

Ναι αν προκαθορισεις την ram με βαση τα ατομα που θελεις να διαχειριστείς και ρυθμισεις σωστα τον server θα μπορεις να κανεις restart μια φορα την βδομαδα. Πειτε μου τυπο server, λειτουργικό σύστημα, max connections και μπορω να υπολογισω την ram και τις ρυθμισεις της με πολυ καλη προσέγγιση.

Οποιος υποτίθεται γνωστης δεν μπορει να το κανει αυτό τοτε ειναι ενας χημικός που δεν γνωρίζει τα ml που χωρανε οι πειραματικοί δοκιμαστικοί σωλήνες του... δηλαδή συντομα θα εχουμε μια καλή εκρηξη... στην περιπτωση μας server crash.

Posted

Όταν λες τις ρυθμίσεις της ram τι εννοείς ? Γιατί για τον garbace collector παίζει μεγάλο ρόλο ο server, περισσότερο από την δομή του μηχανήματος. Για το πώς ρυθμίζεις τον Garbace collector δεν υπάρχει συγκεκριμένη πρόταση. Άν διαβάσεις 10 διαφορετικά papers από 10 διαφορετικά πανεπιστήμια, θα πάρεις 100 διαφορετικές απαντήσεις για το πώς ο garbage collector πρέπει να γίνει tune. Και με το δίκιο τους. Ένας server πχ που κάνει create μικρά object με μεγάλο rate και μικρό life-time θέλει τελείως διαφορετικό setup από ένα server με τις αντίθετες ρυθμίσεις.

 

Τώρα που το σκέφτομαι θα ήταν καλή ιδέα να γράψουμε ένα tool (αν δεν υπάρχει ήδη ) που κάνει monitoring τον server σου gia object creation frequencies/sizes etc και να κάνει στο τέλος ένα profiling των αποτελεσμάτων από τις μετρήσεις που πήρε για μία εβδομάδα πχ. Για να μπορεί κανείς να βλέπει στο περίπου πώς ανταποκρίνεται ο server του και να ρυθμίζει τον GC πιο σωστά.

Posted

Ετσι ειναι και για τον λογο αυτον επιμενω λίγο... αν κοιταξεις σε 20 Πανεπιστημια θα παρεις 200... χαχα

Τα ποιο πολλα θεματα αυτου του τυπου επιλύονται με τεχνικες που βασιζονται στην στατιστική παρακολούθηση.

Καταρχήν "οι ακριβείς λεπτομέρειες εξαρτώνται από την εφαρμογή της JVM που χρησιμοποιούμε, αλλά και απο το Page που συνδέονται με αυτήν".

Σημειωσε πως εχω γραψει σε VB software που παρακολουθει συνεχώς τον server και μεσα απο καναλια με την βοήθεια του Winsock εχω τα δεδομενα σχεδόν real time στο pc μου (καθε 5  sec), θελω να το δημοσιοποιήσω σύντομα με την μορφή realTop με auto login Vote system and game statistics σαν το πλεον αξιόπιστο συστημα τυπου top100.

Επίσης εχω μονιμο ενα 2ο test server οπου γινονται ολες οι δοκιμές πριν την μεταφορα τους στον main server. Για το λογο αυτο ο live server ειναι 100% uptime και δεν εχει σκασιματα.

Ο L2j στην αρχική εγκατασταση παρουσιάζει αρκετές αστάθειες και δημιουργεί αδικαιολόγητες υπερφορτώσεις στον επεξεργαστή.

Το παρατηρησα οταν δοκιμαζα στην αρχή τον server παιζοντας στα ορια μνημης και ποσοτητας δεδομένων. Ειχε φτασει σε ενα config πορων-δεδομενων να λειτουργει μονιμα με 40% χρέωση στον CPU με ενα admin online ολο και ολο.

Αυτο μου κινησε την περιέργεια και αρχισα να καταγραφω τις συμπεριφορές του, οχι τοσο για το L2, αλλα περισσοτερο για την Java.

Κατεληξα τοτε στο οτι o L2j οποιοδήποτε πρόβλημα ή μικροπρόβλημα φορτωνω-ξεφορτώνω δεδομένα το ρίχνει στην CPU.

Εκει τεθηκε το πρώτο ερώτημα για το πως και γιατί. ( υποτιθεται πως οι γνωσεις μου ειναι SQL, C++ και VB.net και VB6).

Παρατήρησα συμπεριφορές που δεν ειχα γνωρισει μεχρι αυτην την στιγμή. Η πρωτες μου μετρήσεις ειχαν να κανουν με τα πακετα του αρχικού φορτώματος στην ram. Εκεί λύθηκε ευκολα οπου με ενα προχειρο υπολογισμό αποδείχθηκε πως αντι να εχεις πολλή ram στην JVM καλύτερα να εχεις πολύ ram στον MySQL, να εχει δηλαδή οσον το δυνατον γρηγορότερη απάντηση στα ερωτήματα. Γλυτώνει το stack η μηχανή και ταυτόχρονα δεν γεμιζει το καζανι αναμονής. Αυτα όμως τα αναπαντητα ερωτήματα οσο συσσωρευονται τοσο περισσοτερο μετακινούν δεδομένα προς τον garbage, οπου γεμιζει γρηγορα και εκει ολα τελειώνουν, σε σωζει το restart. Σε καποια δοκιμή μου στακαρισε ακομα και τον mySQL με αποτέλεσμα να εχει 10πλάσια ποσοτητα επαναλαμβανόμενων δεδομένων στην μνήμη του.

Ας δουμε καποιο παραδειγμα, οταν λεω ρυθμιση μνημης δεν εννοώ τιποτε περισσοτερο απο καλή διαχείριση της διαθεσιμης μνήμης Ram του server.

Πρωτα απο ολα συμφωνουμε στο οτι o garbage δεν οριζεται από τον προγραμματιστή, αλλα μπορούμε με τεχνικες να οδηγήσουμε σε αυτον τα δεδομενα που θελουμε, σαν τους cownboys που οδηγούν το κοπαδι εκει που θελουν. Το πρωτο που παρατηρησα διαβαζοντας ηταν το προβλημα της εκδοσης java και του MySQL. Συμπερασματικα ξεκίνησα με τελευταιες εκδοσεις 1.6.2 και 5.5 στα 64 bit και τα περασα και στο core του game. To eclipse εχω να το αναβαθμισω 4-5 μηνες, αναφερει πως δεν μπορει να διαχειρισθει αυτες τις εκδοσεις αλλα το compile το κανει μια χαρά μιας και ο compiler ειναι εξωτερικός. Οι τελευταίες εκδοσεις της java εχουν απο μονες τους καλύτερη διαχείρηση στις 2ης και 3ης ταξης κατανομές δεδομένων.

 

Στην J2SE 1.4 υπήρχαν τέσσερις συλλέκτες απορριμμάτων οπου μπορουσε να επιλέξει ο χρηστης μια, αλλα δεν υπήρχε σαφήνεια για την απόδοση του συστήματος αναλογα με την επιλογή που θα έκανε. Στην έκδοση 1.5.0 η επιλογή του συλλέκτη στηρίζεται στην κατηγορία της μηχανής κατά την οποία η εφαρμογή θα ξεκινήσει με τον ορισμο και θα τον ακολουθήση σε μονιμη βάση. Επισης στις νεες εκδοσεις μπορει ο χρήστης να ορισει τις δυνατοτητες συλλογής απορριμμάτων με παύσεις, μέτρια συχνότητα και τη διάρκεια συλλογής.

Επίσης η διαδοχική οδήγηση του κοπαδιού προς αυτο το κομματι της μνημης ειναι το προτεινομενο και δεν επωφελούμαστε απο από τον παραλληλισμό μεταβίβασης. Ειδικότερα, οι εικονικές μηχανές για την πλατφόρμα Java μέχρι και την έκδοση 1.3.1 δεν έχουν παράλληλο ξεσκαρτάρισμα, οπότε η επίδραση της συλλογής απορριμμάτων σε ένα σύστημα πολλαπλών επεξεργαστών αυξάνεται με την παράλληλη εφαρμογή σε σχέση με την σειριακή εφαρμογή.

Επομένως το πρωτο που πρεπει να μετρήσουμε ειναι το μεγεθος των πακέτων προς ξεσκαρτάρισμα, τον μεσο αριθμό τους, και τον χρόνο αναγκαιας αμεσης διαγραφής.

Αν για παράδειγμα δαπανήσουμε το 1% του χρόνου στη συλλογή των απορριμμάτων σε ένα σύστημα μονοεπεξεργαστικό αυτό μεταφράζεται σε περισσότερο από μια απώλεια 20% στην απόδοση για 32bit συστήματα. Στο 10% του χρόνου το ξεσκαρτάρισμα, που φυσικά δεν θεωρείται εξωφρενικό ποσό του χρόνου στη συλλογή απορριμμάτων στις αιτήσεις μονοεπεξεργαστικού συστήματος, ποσο περισσοτερο τοτε που το 75% της διακίνησης χάνεται όταν η κλιμάκωση ανεβει μέχρι και 16 ή και 32 επεξεργαστές. Οι περισσοτεροι servers ειναι σημερα τετραπύρηνοι και συμπερασματικα το 25% της διακίνησης το γλυτώνουμε μονο και μονο με την χρήση συσστήματος, java και mySql στα 64bit.

Από την έκδοση J2SE Πλατφόρμα 1.5x είναι ένα χαρακτηριστικό που αναφέρεται απο τον παραγωγό ως εργονομία. Ο στόχος της εργονομίας είναι να προσφέρει καλή απόδοση από το JVM με ελάχιστη ρύθμιση της γραμμής εντολών (αυτο βεβαια στην .net αρχισε το 2005). Η εργονομία προσπαθεί να επιτύχει την καλύτερη επιλογή αναμεσα σε Garbage collector, Heap size και Runtime compiler.

Αυτο ακριβώς ειναι το σημείο στο οποίο εμεις βαζουμε το χερι μας και προσπαθούμε να εκμεταλλευτούμε με τον καλύτερο δυανατόν τρόπο.

Τις παύσεις λόγω αποκομιδής απορριμμάτων ειναι το πρώτο που πρπει να μετρήσουμε. Αυτο είναι σχετικά εύκολο να μετρηθεί και να εκτιμηθεί με τον ελεγχο των διαγνωστικών στην έξοδο της ιδιας της εικονικής μηχανής.

Ο ποιο 'καλος' τροπος θα προτεινα ειναι απευθείας στην GC με την χρήση της εντολής επιχείρημα +PrintGCTimeStamps (εγγραφή σε log file) ή την -verbose: GC η οποία εκτυπώνει τις πληροφορίες σε κάθε συλλογή που γίνεται και εχει την μορφή (εξαρταται βεβαια και απο την εκδοση της JVM):

 [GC 235555K->75000K(69852K), 0.2300771 secs]

 [GC xxxxxxK->xxxxxK(xxxxxK), 0.2454258 secs]

 [GC xxxxxxK->xxxxxK(xxxxxK), 0.2254258 secs] και κλείνει με

 [Full GC 235458K->72333K(695665K), 1.8479984 secs]

 

Αυτο το 1.8479984 περιπου δηλαδή 2 sec θα παγωσει τον gameserver για 1.8 secs ή θα τον 'λαγκάρει'. Αν ο server εχει πολυ κόσμο μεσα σε αυτο το 1.8 sec θα συσσωρευθούν νέα αιτήματα και ο server θα κρασαρει πολυ σύντομα ( εδω ειναι θεμα μεγεθους μνημης ram, για τα ποσα sec θα αντέξει).

Σε ενα 4πυρηνο με 64bit ολα και νεες εκδοσεις JVM, mySql ειναι απο μονο του 25% μικροτερο.

Αν εμεις γνωρίζουμε τα πακετα και ανεβασουμε τον σκουπιδιαρη σε μεγεθος αριθμού πακέτων * μεγεθος πακετων / χρονο ξεσκαρταρισματος το αποτέλεσμα ειναι - Χ% lag του σερβερ <> - % stuck <> -% CPU <> και τελικα χαλαό άδειασμα χωρις καμια επιπτωση στην απόδοση, που και αυτο με την σειρα του καταλήγει υπο απόλυτες συνθήκες server restart ποτε για αυτο τον λογο. Δεν ξερω αν ειναι εφικτο αλλα αξιζει να το προσεγγίσει οσο μπορεί ο καθενας.

Επειδή ομως ο σκουπιδιαρης δεν οριζεται πλήρως παρα μονο σαν 'τυπος-ειδος', γινομαστε οι cownboys που θα οδηγήσουν το κοπαδι εκει μεσω του αμεσα συσχετισμένου μονοπατιού που ονομαζουμε PermGen και μπορουμε να το ορίσουμε σε μια υποδιαίρεση ram που εχουμε και θελουμε να διαχειρισθούμε για αυτη την συγκεκριμενη λειτουργία με βασικο γνωμονα και αναλογια του (1.8479984).

 

  • 1 month later...
  • 4 weeks later...
  • 2 weeks later...
Posted

egw apiti ksero den iparxoun arxia original l2off (kai min mou pite oti ta klepsane apo ton official den exoume apodiksis gia afto) oyte kseri kanenas pos einai akribos rithmizmena ta skills tis ncsoft, ti thelo na pw, oti ta legomena arxia (pack l2off) den einai tipote parapanw apo arxi l2java pou ta exoun pari orizmeni Developers kai ta exwn metatrepisi me tin doithia metaglotisti se arxia c++ opote an ena skill den einai sosta rithmizmeno stin java den tha einai rithmizmeno kai stin c++ kai min mou pi kanis oti i Developers kseroun akribos na rithmizoune ola ta skills opos ta exi o official oute einai dinaton na kseri enas Developer 100% olo to linege kai pos einai i simperifora olon ton xaraxtiron, kai ala pola den xriazete na ta analiso kserete ti lew, skeftite oti stin ncsof  iparxioun 6-7 omades me Developers pou i kathe omada exi analabi 1 komati apo to stisimo tou lineage, kai skeftite afti i terastia eteri me tetia organosi kai korifeous Developers pou plirononte poli kala kata kerous exoune brethi bugs, tha sas po ena xaraxtiristiko bug ston official osi pezate tha to thimaste i redsky ston teon ixan bri bug kai pigenane ta skills +30, opote min lete oti afta ta legomena pack l2off einai kathara apo bugs, sigoura einai pio kala apo ena l2j server nai, ala se kamia periptosi den einai official

  • 2 weeks later...
Posted

Βοήθησε πολλούς αυτό το topic!!(Μαζί με εμένα!!) Δεν έχω ασχοληθεί με OFF Server αλλά από ότι βλέπω φαίνεται :)

  • 3 weeks later...
Posted

Να ρωτήσω,εγώ που θα πάω να γραφτό σήμερα για μάθω την γλώσσα C++...τι να του πω; γιατί θέλω να μάθω αυτό το συγκεκριμένο πράγμα για το L2,να του πω να με μάθει να φτιάχνω pack Off και να γίνω Developer;

 

Δώστε μου συμβουλές...

Posted

Να ρωτήσω,εγώ που θα πάω να γραφτό σήμερα για μάθω την γλώσσα C++...τι να του πω; γιατί θέλω να μάθω αυτό το συγκεκριμένο πράγμα για το L2,να του πω να με μάθει να φτιάχνω pack Off και να γίνω Developer;

 

Δώστε μου συμβουλές...

LOL 1oν πρεπει να μαθεις C#!

2oν απο e-books ή πίγεναι σε βιβλιοπολεία για να αγοράσεις βιβλία για το θεμα αυτο!

3ον αν μαθεις άπιαστη C# και ασχοληθείς αποκλειστικά με  το l2 τοτε μην μαθεις καθολου!

Η C# ειναι για σοβαρούς προγραμματιστές οχι για l2off pack μονάχα!

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

    • With EA Sports FC 27 officially announced, many players are hoping to get their hands on a coveted Closed Beta code. The FC 27 beta gives fans an early opportunity to test new gameplay features, modes, and updates before the game's full release. Ultimate Team is expected to be one of the most anticipated modes, giving players an early look at the in-game economy and how valuable FIFA 27 coins may be at launch. While there's no guaranteed way to receive a beta invitation, there are several steps you can take to maximize your chances. These methods have helped many players receive beta codes in previous years, and they're still the best options heading into FC 27.     1. Enable EA Email Communications The first and most important step is to make sure EA can actually contact you. Log in to your EA account and head to Communication Preferences. Here, you'll find options related to emails about products, events, and promotions. Make sure to: • Turn on promotional emails. • Set email frequency to "Any Time" instead of monthly updates. • Save your changes. EA typically sends Closed Beta invitations via email, so if these settings are disabled, you could miss your chance entirely.   2. Add FC Games to Your Favorite Titles Under your EA account preferences, you'll find a section for favorite games. Add any football-related EA titles you play, including: • EA Sports FC 26 • EA Sports FC 27 (if available) • EA Play • Other EA football games This helps EA understand your interests and may improve your chances of being selected for football-related tests.   3. Select Your Preferred Platforms Another useful step is updating your preferred gaming platforms. Choose all the systems you actively use, such as: • PlayStation 5 • Xbox Series X|S • PC • Nintendo Switch 2 There's no official confirmation that selecting more platforms increases your odds, but it doesn't hurt to ensure EA knows where you can participate in the beta. Just remember: if you don't own a particular console, there's little point in selecting it.   4. Verify Your Email Address Double-check that the email address associated with your EA account is verified. An unverified email could prevent important messages from reaching you, including beta invitations. It only takes a few seconds to confirm, and it's one of the easiest things to overlook.   5. Link Your Gaming Accounts Make sure your EA account is connected to the platforms you play on. Common account links include: • PlayStation Network • Xbox Network • Steam • Epic Games • Nintendo Account Having your accounts linked ensures your profile is fully set up and ready if you're selected for the FC 27 beta.   6. Consider Joining EA's Playtesting Program If you're interested in testing games beyond FC 27, consider signing up for EA's playtesting program. EA occasionally invites players to participate in early tests for upcoming titles. While joining doesn't guarantee you'll receive an FC 27 beta code, it can improve your chances of being considered for future playtests. Players selected for EA playtests are usually notified via email, so keeping your communication settings enabled remains essential.     Is There a Guaranteed Way to Get an FC 27 Beta Code? Unfortunately, no. EA selects participants based on a variety of factors, and luck still plays a significant role. Even players who have received beta codes in previous years aren't guaranteed to get one again. That said, following the steps above gives you the best possible chance: 1. Enable EA email communications. 2. Set email frequency to "Any Time." 3. Add FC titles to your favorite games. 4. Select your active gaming platforms. 5. Verify your email address. 6. Link your platform accounts. 7. Join EA's playtesting program.   When Does the EA Sports FC 27 Closed Beta Begin? If selected, players may receive their invitations around July 31, so keep an eye on your inbox and check your spam folder regularly. The Closed Beta is scheduled to kick off on August 5 and will remain available until August 25. This gives invited participants nearly three weeks to explore the game and provide feedback to EA. Compared to past beta tests, this is a relatively lengthy testing period, suggesting that EA is placing a strong emphasis on collecting player impressions and identifying potential issues ahead of the official release. Below are the launch and closing times for major regions around the world: Region / Time Zone EA FC 27 Closed Beta Start Date & Times EA FC 27 Closed Beta End Date & Times Pacific Time (PT) 10:00 AM—August 5 10:00 AM—August 25 Central Time (CT) 12:00 PM—August 5 12:00 PM—August 25 Eastern Time (ET) 1:00 PM—August 5 1:00 PM—August 25 Brasilia Time (BRT) 2:00 PM—August 5 2:00 PM—August 25 British Summer Time (BST) 6:00 PM—August 5 6:00 PM—August 25 Central European Summer Time (CEST) 7:00 PM—August 5 7:00 PM—August 25 China Standard Time (CST) 1:00 AM—August 6 1:00 AM—August 26 Korean Standard Time (KST) 2:00 AM—August 6 2:00 AM—August 26 Japan Standard Time (JST) 2:00 AM—August 6 2:00 AM—August 26 Australian Eastern Time (AET) 3:00 AM—August 6 3:00 AM—August 26 New Zealand Standard Time (NZST) 5:00 AM—August 6 5:00 AM—August 26   Which Modes Are Included in the Closed Beta? EA is using the FC 27 Closed Beta to evaluate several of the game's most important experiences before launch. Participants may gain access to popular modes such as Ultimate Team, Career Mode, and Clubs, as well as The Grounds, a brand-new addition making its debut in FC 27. Because multiple game modes are being tested simultaneously, the extended beta period gives players ample time to try different features and report their findings.   Final Thoughts Getting an EA Sports FC 27 Closed Beta code isn't guaranteed, but spending a few minutes optimizing your EA account settings can make a big difference. Every year, thousands of players receive invitations, and many of them simply have their accounts properly configured and ready to go. If you're lucky enough to get a code, you'll be among the first players to experience FC 27's new gameplay changes and features before launch. Until then, keep an eye on your inbox, stay patient, and good luck—you might be kicking off your FC 27 journey sooner than expected.
    • If you need in L2off i can hook you up! many people know me here and the work i offer. Live example https://l2exalta.org
    • Almost 16 years, you never know when a random Korean finds this topic and shares it.
    • Update: Version 3.1.2: * Improved compaction: deleting even a few textures now always reduces the file (previously small deletions could still slightly grow some packages, such as fonts); Version 3.1.1: * Deleting textures now actually shrinks the package: on save it is automatically compacted, reclaiming the space of the deleted textures (format and encryption preserved); Version 3.1.0: * La2Tools now checks for updates on startup and lets you know when a newer version is available on the site; Version 3.0.9: * Fixed textures that appeared blank in some clients (their object carries an embedded shader the reader mis-parsed) — they now decode and display correctly; * ShaderCode is now editable: Texture Properties → Material → ShaderCode shows the texture's real HLSL shader (was a fixed placeholder before); edit it and Apply — works across client formats (Interlude-era through Essence 542); Version 3.0.8: * BMP now imports as a native format, like UnrealEd: 8-bit BMP becomes a P8 (paletted) texture with a real Engine.Palette, 24/32-bit becomes RGBA8, 16-bit becomes G16; * Compress to P8 — adaptive 256-color palette (median-cut quantization); P8 is also selectable as an import "Convert to" target; * Copy / Cut / Paste now works for P8 (paletted) textures; * Non-power-of-two textures are highlighted in red (tiles and table) with a tooltip; new "Fix texture size" menu item pads them to a power of two while keeping the displayed size; * Reads "broken" packages that were tampered to block editors (corrupted size fields) — the client still loads them and now so does La2Tools; * "Repair package" — shown only for a tampered package (its tab is marked red) and restores the corrupted size fields; * Added client license 30 support (reads and imports its textures); * Import dialog now auto-resizes to fit its content; Version 3.0.7: * Import: the file name is now parsed smartly — package.group.name automatically fills the Group and Name fields (the package prefix is ignored); * Import: live name validation with an inline hint and tooltip — OK is blocked until the name is valid (allows - + ' etc., forbids only characters illegal in file names); * Import: textures whose size is not a power of two are now auto-padded for ALL formats (DDS/TGA/BMP too, not only PNG/JPG/GIF) — padded to a power of two with UClamp/VClamp preserving the original display size; * Texture filter now has a clear (×) button; * Light theme: visible Chrome-style tab outlines; Version 3.0.6: * "Save as..." — toolbar button and tab-menu item: save a package under a new name to any folder, choosing the format (Old/New) and Lineage2Ver121 encryption; the tab switches to the saved file; * Tab right-click menu reworked: Save, Save as... and Settings on top; Copy path and Open in Explorer at the bottom; Version 3.0.5: * Animation grouping now follows AnimNext links instead of frame names — chains group correctly with any naming (mixed prefixes, non-sequential or 0-/1-based numbers); * GIF import: animation parameters (frame rate) and TotalFrameNum are now written only to the first frame, the rest keep just the AnimNext link — matches the game's own format; same fix applied to "Create animation"; Version 3.0.4: * Clipboard <-> Explorer: Ctrl+C in the browser then Ctrl+V in Explorer pastes the textures as files; copy files in Explorer then Ctrl+V in the browser imports them; * Rename a package right from Package settings (handles Lineage2Ver121 re-keying); * Hotkeys: F1 (About), F2 (rename), F5 (reload from disk, asks if unsaved), Delete, Enter (Properties), Ctrl+W (close tab); * The application icon now appears in the title bar of every dialog and sub-window; * Fixed flipped preview when importing TGA files;  Download (Installer) |  Download (Portable)
    • Hello! I am creating a new L2 Editor version with most bugs fixed and new features added. PM me for more info!
  • 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..