-
Posts
7,281 -
Credits
0 -
Joined
-
Last visited
-
Days Won
2 -
Feedback
0%
Content Type
Articles
Profiles
Forums
Store
Everything posted by Fanky
-
hm. το πέρασα για exshowscreenmsg >.> λολ έχεις δίκιο,είναι μωβ..λάθος >.<
-
fanky. source/..../gameserver.clientpackets.enterworld.java
-
μόνο το μωβ κάτω αριστερά είναι απο το system του :P
-
για κάνε μια paste εδώ το enterworld σου.
-
τότε ο μόνος τρόπος για να τα βγάλεις αυτά είναι να δεις εάν είναι configurable,εαν δεν είναι..τότε δεν μπορείς να κάνεις τίποτα. ΥΓ: μην χρησιμοποιείς έτοιμα pack,χωρίς τον πηγαίο κώδικα.
-
από μόνα τους γίνονται augment?
-
Για τα μπλέ γράμματα και το πάνω μοβ,κάνε paste εδώ το enterworld.java σου και το charactercreate.java για να σου πω τι να σβήσεις/αλλάξεις,και θα είσαι οκ. για το άλλο mob πάνω απο τα announcements είναι στην γραμμή 94(ή 98 ή κατι τέτοιο δεν θυμάμαι ακριβώς) του αρχείου του system σου,systemmsg-e(το ανοίγεις με fileedit)
-
τα 15 απο τα 200; αυτό,εαν το έκανα καλά,είναι 7,5% rate. πόσο το θες εσύ; κοίταξε τα config σου,στα config σου είναι το rate.
-
[HELP]Gameserver,loginserver
Fanky replied to t3r0's question in Request Server Development Help [Greek]
τότε δεν έχεις αλλάξει το όνομα της db στα config σου,κοίταξε το σου λέω και θα το βρεις. -
[HELP]Gameserver,loginserver
Fanky replied to t3r0's question in Request Server Development Help [Greek]
frozen είναι,δες τις εικόνες :P -
[HELP]Gameserver,loginserver
Fanky replied to t3r0's question in Request Server Development Help [Greek]
κάνε paste εδώ τα config του gameserver/loginserver. -
[HELP]Gameserver,loginserver
Fanky replied to t3r0's question in Request Server Development Help [Greek]
δεν έχεις φτιάξει σωστά τα config του loginserver και του gameserver,έχεις βάλει λάθος όνομα στην db(configs). κοίταξε το >.> -
[HELP]Gameserver,loginserver
Fanky replied to t3r0's question in Request Server Development Help [Greek]
αυτό δεν είναι κάποιο error,τι νούμερο πάτησες; -
[HELP]Gameserver,loginserver
Fanky replied to t3r0's question in Request Server Development Help [Greek]
το ότι όντως σου βγάζει αυτό το error σημαίνει ότι κάτι έχεις κάνει λάθος. ξεκίνα με την db,και μετά βλέπουμε. -
you did what zake told you? it's prolly the solution.
-
[HELP]Gameserver,loginserver
Fanky replied to t3r0's question in Request Server Development Help [Greek]
εάν είναι όντως λάθος,ναι. -
γιατί βάζεις caps; λολ,chill. πήγαινε στα html τους,αλλάζουν απο εκεί αυτά.(πχ εάν το npc έχει id 150 και είναι gatekeeper πας data/html/teleport/150) πιστεύω να κατάλαβες.
-
[HELP]Gameserver,loginserver
Fanky replied to t3r0's question in Request Server Development Help [Greek]
κάτι δεν θα έχεις κάνει σωστά,και μάλλον σου λέει abnormaly όχι abdone :P σου λέει τίποτα άλλο; βάλε μια φωτο. -
Επειδή έχω δει πολλούς στο req dev help gr/eng l2j να κολλάνε σε πρακτικά απλούς κώδικες,και αυτό είναι λογικό μιας και δεν έχετε την απαραίτητη εμπειρία,αποφάσισα να κάνω αυτόν εδώ τον οδηγό ώστε να προσπαθήσω να σας βοηθήσω για να ξεπέρασετε αυτό το πρόβλημα. Ότι patch/code δείτε θα είναι coded πάνω σε clean l2j interlude(www.l2jserver.com),όχι πως έχει καμία διαφορά,απλά το διευκρινίζω για να μην υπάρχουν χαζές ερωτήσεις :P Λοιπόν,έχουμε και λέμε. Πριν λίγο καιρό,είχα ένα request(σε πμ) όταν ο παίκτης παίρνει το ίτεμ του noblesse(που το είχε custom στο σέρβερ του) να κάνει pop-up ένα html που να του δίνει οδηγίες για το τι να κάνει(ΠΡΟΣΟΧΗ:δεν είναι quest,για παράδειγμα μπορεί να του λέει ότι πρέπει να πάρει 100 pvp και 10pk για να γίνει noblesse,ή κάτι τέτοιο..η περίπτωση quest είναι άλλη και λίγο πιο περίπλοκη κατάσταση). Ας αρχίσουμε με αυτόν τον κώδικα: Όταν ένας παίκτης πατάει ένα συγκεκριμένο item(το id θα το βάλετε εσείς) να εμφανίζετε ένα html(pop-up) οπού θα του δίνει πληροφορίες για το πως να γίνει noble(εκεί μέσα,μπορείτε να βάλετε ότι πληροφορία θέλετε εσείς,πχ πληροφορίες για τον σέρβερ ή κατι τέτοιο).Για να μην σας τα πολυλογό θα κάνω ένα κώδικα,που όταν πατάς ένα συγκεκρίμενο item(id) θα σου εμφανίζετε ένα html με χ,y,z πληροφορίες. Αφού θέλουμε καινούργιο αντικείμενο,που πάμε; σωστά,net.sf.l2j.handler.itemhandlers και κάνουμε ένα καινούργιο αρχείο με όνομα PopUpHtml(ότι όνομα θέλετε βάζετε εσείς) (βάζω φωτογραφίες ώστε να μην έχετε απορίες για αυτά τα πράγματα :P) Συνεχίζουμε,αφού κάνατε το αρχείο θα είναι έτσι http://i49.tinypic.com/2r3z8g0.png[/img] όπως θα δείτε και σε κάθε άλλο αντικείμενο,πρέπει να χρησιμοποιήσουμε το implements δίπλα απο την κλάση μας(για αρχή,αυτό να είναι το στάνταρ σας(όταν κάνετε ένα νεο αντικείμενο,πρέπει να χρησιμοποιήτε implements IItemHandler,δεν μπορώ να σας εξηγήσω atm ποια είναι η χρήση του,το ίδιο και για το extends). Ώστε θα γίνει κάπως έτσι http://i48.tinypic.com/2m6v12q.png[/img] Μην ανυσηχείτε για το error που βγήκε,πηγαίντε πάνω στο error και πατήστε το πρώτο,όπως στην φωτογραφία http://i48.tinypic.com/263a2gw.png[/img] Για να μην αναρωτιέστε,όταν κάνουμε implements (το extends είναι αρκετά διαφορετικό) σε μία κλάση υπάρχουν και 'συνέπειες' :P,πρέπει να χρησιμοποιήσουμε της μεθόδους της κλάσης που κάναμε implements.Τέλος πάντων,όπως είπα και πριν αυτά τώρα σας τα λέω γενικά,δεν είναι ο σκοπός του τοπικ να σας μάθω το implements & extends.Συνεχίζουμε,όταν πάτησετε το πρώτο θα γίνει κάπως έτσι: http://i46.tinypic.com/2vs58n5.png[/img] Τα πράσινα γράμματα,σβήστετα(και το return null;)δεν χρειάζονται είναι απλά πληροφορίες που σας είναι άχρηστες(τώρα:P). Ωραία λοιπόν,ξεκινάμε τον κώδικα.(Ναι ξέρω,θα σας έβγαλε ότι είναι λάθος το getItemIds() αλλά μην ψαρώσετε :P) Πρώτα από όλα,δηλώνουμε το Id του item.Κάντε το όπως στην φωτογραφία: http://i50.tinypic.com/2mk2h0.png[/img] Για αυτούς που αναρωτιούνται γιατί σβήσαμε το return null; και βάλαμε αυτό,θα το καταλάβαιτε στην πορία(ελπίζω). Επίσης για αυτούς που αναρωτιούνται γιατί έβαλα πινακες(αυτά εδώ [] στην java λέγονται πίνακες,και γενικα είναι πιο εύχριστοι,θα κάνω έναν οδηγό σήμερα σχετικά με τους πίνακες :P). Επίσης,το ID του αντικείμενου μας,είναι εντελώς τυχαίο,βάλτε ότι σας καπνίσει εκεί. Συνεχίζουμε, public void useItem(L2PlayableInstance playable, L2ItemInstance item) { } εδώ μέσα θα περιέχεται όλος μας ο κώδικας(ο main),οπότε ας ξεκινήσουμε να τον γεμίζουμε :P (απο εδώ και πέρα σταματάω τις φωτογραφίες,για να εξηγώ καλύτερα). Πρώτα,ξεκινάμε με το στάνταρ check,που είναι σε όλα και για ΟΛΑ τα itemhandlers, if (!(playable instanceof L2PcInstance)) return; L2PcInstance activeChar = (L2PcInstance)playable στην συνέχεια 'θέτουμε' το id του ιτεμ μας, int itemId = item.getItemId(); Μετά,συνεχίζουμε: if (itemId == 1) Εδώ λέμε,πως εαν πατήσουμε ένα item που έχει id 1 τότε να: { String htmFile = "data/html/.../PopUpItem.htm"; String htmContent = HtmCache.getInstance().getHtm(htmFile); NpcHtmlMessage infoHtml = new NpcHtmlMessage(1); infoHtml.setHtml(htmContent); activeChar.sendPacket(infoHtml); } Εδώ αν το δείτε καλα,παίζει συνέχεια με τα objects.Εδώ θα σας βγάλει κάμποσα errors,αλλά μην ψαρώσετε είναι λόγο των imports,πατήστε πάνω στο error και κάντε Imports την κλάση που σας ζητάει,και θα είναι οκ.Αυτές οι 5 γραμμές παραπάνω είναι stadar για pop up html,οπότε δεν θέλετε παραπάνω εξηγήσεις εδώ.(Για αυτούς που ενδιαφέρονται να μάθουν γιατί είναι έτσι,πηγαίντε στις κλάσεις που κάνατε imports προηγουμένος,και θα το καταλάβετε :P).Ας εξηγήσω την μόνη γραμμή που σας είναι πραγματικά χρήσιμη σε αυτόν τον κώδικα,και είναι η εξής: String htmFile = "data/html/.../PopUpItem.htm"; Εκεί είναι που θα είναι το htm σας,το βάζετε όπου θέλετε εσείς,δεν έχει σημασία(καλό είναι να το βάλετε εκεί που είναι και το welcome,δηλαδή data/html(εάν θυμάμαι καλά)). Μετά φτιάχνετε το htm και το βάζετε εκεί που θέλετε εσείς(απλά μετά να είστε σίγουροι ότι θα είναι σωστή η απο πάνω γραμμή). Τέλος,ο κώδικας(core side,εξηγώ απο κάτω για dp) θα είναι έτσι: http://i47.tinypic.com/amfn7a.png[/img] Σημείωση: Δεν έχω καν dp(όπως θα είδατε) και επειδή θα μου πάρει χρόνο δεν θα την κατεβάσω(αυτοί που δεν ξέρετε να κάνετε δείτε πως είναι το welcome και κάντε το c/p(απλά αλλάξτε τις πληροφορίες που έχει μέσα). Τώρα πάμε να κάνουμε ένα άλλου τύπο κώδικα : Όταν ένας παίκτης μπαίνει μέσα στο game,εάν έχει πάνω απο 100 pvp & 100pk & είναι noble & είναι και hero,να κάνει ένα announcement o σέρβερ. (έβαλα πολλά & ώστε να δείτε πως θα το χρησιμοποιούμε). Αφού μας λέει 'όταν ένας παίκτης μπαίνει μέσα στο game' ο κόσμος να γυρίσει ανάποδα,εμεις πάμε στο enterworld.java. To enterworld.java είναι υπευθυνο για το τι θα κάνει ο παίκτης όταν μπει μέσα στο παιχνίδι. Αρκετά με το μπλα μπλά,πάμε να τα δούμε στην πράξη: ξεκινάμε,ο κώδικας αυτός είναι αρκετά απλός πάμε όπου θέλουμε στο enterworld.java(μην πάτε και μου το βάλετε κάτω απο καμια μέθοδο :P),βάλτε π.χ εδώ Announcements.getInstance().showAnnouncements(activeChar); (Ναι καλά καταλάβατε εδώ κάνει load τα announcements,αν το σβήσετε αυτό δεν θα φαίνονται τα announcements σε κανέναν :P) Λοιπόν πάμε απο κάτω,και αρχίζουμε: if (activeChar.getPvpKills() > 100 & activeChar.getPkKills() > 100 & activeChar.isNoble() & activeChar.isHero()) { Announcements.getInstance().announceToAll("Server's legend "+activeChar.getName()+" with 100 pvp & 100pk & noble & hero stus is currently online"); } και ναι,αυτό ήτανε!δύσκολο; Ο κώδικας απο την αρχή είναι απλός,κάνει check για το εάν όντως ισχύουν τα δεδομένα μας(ΠΡΟΣΟΧΗ:Εαν έστω και ένα δεν ισχύει,ο κώδικας δεν θα λειτουργήσει. Και για να σας δώσω ένα παράδειγμα για την προηγούμενη πρόταση μου,θα σας κάνω τον ίδιο κώδικα ώστε να δείτε πως ο παραπάνω κώδικας θα δουλέψει εαν ισχύει μόνο ένα(ή περισσότερα). if (activeChar.getPvpKills() > 100 || activeChar.getPkKills() > 100 || activeChar.isNoble() || activeChar.isHero()) { Announcements.getInstance().announceToAll("Server's legend "+activeChar.getName()+" with 100 pvp & 100pk & noble & hero stus is currently online"); } νταν νταν,αυτό ήτανε.Όπως καταλάβατε το || σημαίνει ή,και το & σημαίνει και. Πάμε τώρα και για έναν τελευταίο κώδικα,(UnSponsored για εσένα αυτό το κομμάτι(κυρίως) :P) Λοιπόν,όταν ένας παίκτης μπαίνει στο παιχνίδι να του έρχετε ένα μήνυμα με πληροφορίες για αυτόν. Όπως είπα,αφού λέει 'μπαίνει στο παιχνίδι' ο κόσμος να γυρίσει ανάποδα πάμε στο enterworld.java ξεκινάμε. Πηγαίντε κάτω απο τον προηγούμενο κώδικα και βάλτε,αυτα: activeChar.sendMessage("Welcome : "+activeChar.getName()); activeChar.sendMessage("Your class: "+activeChar.getClassId()); activeChar.sendMessage("PvP Kills: " + activeChar.getPvpKills()); activeChar.sendMessage("PK Kills: " + activeChar.getPkKills()); activeChar.sendMessage("PvP Flags: " + activeChar.getPvpFlag()); activeChar.sendMessage("HP, CP, MP: " + activeChar.getMaxHp() + ", " + activeChar.getMaxCp() + ", " + activeChar.getMaxMp()); activeChar.sendMessage("Level: " + activeChar.getLevel()); activeChar.sendMessage("There are: "+L2World.getInstance().getAllPlayers().size()+" players online"); Ντάξ,εδώ πιστεύω δεν θέλετε και πολλές εξηγήσεις,αλλά για κάθε περίπτωση,ας εξηγήσω τι κάνει το καθένα. Το πρώτο του λέει το 'welcome name',το δεύτερο του λέει τι class είναι,το τρίτο πόσα pvp έχει,το τέταρτο πόσα pk,το πέμπτο πόσα pvp & pk έχει,το έκτο πόσο hp,mp,cp έχει,το έβδομο πόσα lvl είναι και το τελευταίο πόσα άτομα υπάρχουν μέσα στον σέρβερ όταν κάνει αυτός log in. Ξέρω,αυτά ίσως σας φαίνονται γελοία,αλλά οκ..όπως είπα είναι για αρκετά καινούργιους. Τελείωσα με τον οδηγό,πιστεύω να καταλάβατε 2-3 πράγματα παραπάνω. Κάποιες συμβουλές,αν είστε καινούργιοι μην πάτε αμέσως σε μεγάλα πράγματα.Ξεκινήστε με voicedcommands,απλά πράγματα για αρχή(p.x όταν πατάς .noble να σε κάνει noblesse) μετά κάντε απλά και μικρά πραγματάκια στο enterworld.java(όπως είναι ο τρίτος κώδικας(και ο δεύτερος)),μετά πηγαίνετε στα itemhandlers,και μετά (αφου τα κάνετε αυτά ξανά και ξανά μέχρι να είστε σίγουροι ότι τα μάθετε(ή τουλάχιστον τα καταλάβατε αρκετά)) ξεκινήστε να κάνετε μικρά features στο pcinstance. Μην πάτε για μεγάλα πράγματα ενω είστε καινούργιοι,θα απογοητευτείτε αρκετά μιας και δεν θα μπορέσετε να τα καταφέρετε. Το pcinstance περιέχει ένα 75-80% όλων των μεθόδων που χρησιμοποιούμε στους περισσότερους κώδικες,καθίστε και διαβάστε τις,ώστε να τις μάθετε κάποια στιγμή :P(πρέπει να μάθετε τουλάχιστον τις βασικές/αυτές που βρίσκεις μέχρι και σε κώδικες 3-4 γραμμών). Τέλος,να θυμάστε πάντα ότι όλοι αρχίζουμε απο το 0 και λίγοι φτάνουμε κάπου,εσείς που θα φτάσετε(στο χέρι σας είναι)?!
-
go to charactercreate.java and change the followin' line: newChar.setXYZInvisible(template.spawnX, template.spawnY, template.spawnZ); to newChar.setXYZInvisible(X, Y, Z);
-
[HELP] how can i use a compiled db ??????
Fanky replied to Equagf's question in Request Server Development Help [L2J]
if the datapack is another file(no inc in source) and source has already a datapack,you cant use it in this way >.> dunno if I get it well anyway. -
λινκ για βάσεις; μπράβο ρε >.>