Jump to content

'Baggos'

Legendary Member
  • Posts

    3,874
  • Credits

  • Joined

  • Last visited

  • Days Won

    27
  • Feedback

    100%

Everything posted by 'Baggos'

  1. Παραδειγματικό είναι το " ! " στον sagittarius για να καταλάβουν την σημασία του... Γι'αυτό έβαλα τον mage παρακάτω. Έφερα παράδειγμα γι'αυτήν την ένδειξη. Δεν έχω ιδέα αν πηγαίνει στον sagittarius έτσι ακριβώς, ούτε καν που το έχω δοκιμάσει. Δε θα κρυφτώ ή θα το παίξω ξερόλας, το νόημα θέλω να τυπωθεί. :P
  2. Εσύ τι δε κατάλαβες απ'όλα τα παραδείγματα? Δηλαδή έχεις συναντήσει να λέει "Κουφάλα μπλα μπλα"? 5 το πρωί θα με ένοιαζε που μπαίνει? Υποθετικά είναι μικρέ... Σταμάτα να σπαμάρεις για ποστ! Από που ξεφεύγετε εσείς ρε ζώα γαμώτο και έρχεσται εδώ...
  3. Καλησπέρα σε όλους τους φίλους εδώ στο Maxcheaters! Αυτόν τον καιρό έχω αρχίσει να ξανά ασχολούμε με την Java γλώσσα, και μαθαίνω κάποια πράγματα. Έτσι, θέλω να μοιραστώ μαζί σας κάποια από τα βήματα που κάνω για να μάθω, και ελπίζω να σας φανεί χρήσιμο! Δεν θα γράψω τίποτα σπουδαία πράγματα, απλά θα μεταφέρω κάποια από αυτά που μαθαίνω. Για τον λόγο ότι, υπάρχει ένας οδηγός στα Shares and Files, αλλά είναι στα αγγλικά. Εγώ δεν γνωρίζω αγγλικά, ίσως αυτό το πρόβλημα να το έχουν και άλλοι. Οπότε, θα μεταφέρω δικά μου πράγματα... (Θα προσπαθώ να βρίσκω χρόνο, και να βάζω περισσότερα πράγματα, και πιο χρήσιμα ακόμη). Απλώς, το Ελληνικό Section, έχει νεκρώσει κάπως, και αφού ένας "πολύ" έμπειρος δεν βοηθάει, ας κάνω την αρχή, και όποιος θέλει να βοηθήσει με τις γνώσεις του, γράφει replay από κάτω, και τον ανεβάζω με Quote. Έστω και 1 γνώση του καθένα, θα βοηθήσει πολλούς όταν γίνουν 10. ;) Ας αρχίσουμε... ============================================================= 1o ΜΕΡΟΣ: Καταρχάς χρειαζόμαστε Eclipse και ένα SVN ενός Project, για να μπορέσουμε να εργαστούμε σε αυτό που θέλουμε... Δείτε τον παρακάτω οδηγό για το πως να κάνουμε Compile με το Eclipse, και θα το καταφέρετε... Πως Να Κάνεις Compile & Πως Περνάς Έναν Java Code! Παρακάτω θα δείξω, πως μπορούμε να κάνουμε ένα συγκεκριμένο Class, να πάρει κάποιο Item που θέλουμε όταν πάρει το πρώτο του Pvp... (θα ήταν ανούσιο το να δείξω για όλους τους χαρακτήρες, άμα δε μπορούμε να τσεκάρουμε μόνο έναν). Εδώ είναι το κομμάτι Java που χρειαζόμαστε να επεξεργαστούμε για να το κάνουμε... L2PcIstance.java Πως τσεκάρουμε το οποιοδήποτε Class? Δείτε παρακάτω μερικά Class σαν παράδειγμα.. if(getClassId() == ClassId.sagittarius) if(getClassId() == ClassId.duelist) if(getClassId() == ClassId.dreadnought) if(getClassId() == ClassId.phoenixKnight) if(getClassId() == ClassId.hellKnight) Εδώ τώρα... Όπως βλέπουμε, μας λέει ότι "εάν ο παίχτης παίρνει το ClassId, το οποίο είναι π.χ sagittarius" Ας πάρουμε αυτό το κομμάτι, και να το εμπλουτίσουμε με τις σωστές εντολές. Γιατί έτσι από μόνο του είναι άχρηστο... Π.χ.. Αν ο παίχτης είναι Sagi, τι? Τίποτα! Το πέρνουμε και αρχίζουμε γράφουμε... if (getPvpKills() == 1) Εάν πάρει το πρώτο του pvp, δηλαδή πάρει 1 PvpKills (μετά το 1ο δε παίρνει τίποτα) { if(getClassId() == ClassId.sagittarius) Όπως είπαμε.. Αν το χαρακτήρας είναι Sagittarius { addItem("Draconic Bow", 7577, 1, this, true); Εδώ θα πάρει 1 Draconic Bow addItem("Euro", 57, 1000000, this, true); Εδώ, θα πάρει 1κκ Euro(Adena). sendMessage("Κουφάλα! Πήρες δώρο ένα Dc Bow(Focus) και 1kk Adena."); Εδώ, του έρχεται το μήνυμα που θέλουμε να λέει. } } Τώρα, πάμε να κάνουμε ακριβώς το αντίθετο.. Δηλαδή να πάρουν όλοι οι άλλοι, εκτός του Saggitarius. (Είναι πολύ σημαντικό αυτό, και θα καταλάβεται γιατί το κάνω...) Λοιπόν... Όποτε σε έναν κώδικα συναντάμε την ένδειξη " ! " σημαίνει το αντίθετο.. Δηλαδη... if (getPvpKills() == 1) Εάν πάρει το πρώτο του pvp, δηλαδή πάρει 1 PvpKills (μετά το 1ο δε παίρνει τίποτα) { if(getClassId() != ClassId.sagittarius) Όταν ένας χαρακτήρας, δεν είναι Saittarius.. { addItem("Gold Bar", 3470, 1, this, true); Εδώ θα πάρει 1 Gold Bar addItem("Euro", 57, 1000000, this, true); Εδώ, θα πάρει 1κκ Euro(Adena). sendMessage("Κουφάλα! Πήρες δώρο ένα Gold Bar και 1kk Adena."); Εδώ, του έρχεται το μήνυμα που θέλουμε να λέει. Ε. Ωραία αυτά... Όμως πως κάνουμε να πάρουν όλοι οι Fighter κάτι, αλλά οι Mage κάτι άλλο? Α. Εφόσον με τα παραπάνω ήμαστε οκ, και καταλάβαμε πως πάει το πράγμα, τότε διαβάστε τον παρακάτω κώδικα... if (getPvpKills() == 1) { if (!isMageClass()) Δηλαδή εάν δεν είναι μάγος.. { addItem("Angel Slayer", 6367, 1, this, true); sendMessage("Μόλις πήρες ένα Angel Slayer"); } else Εδώ τώρα... προσθέσαμε το else, οπότε, οι άλλοι θα πάρουν τα παραπάνω, και ο μάγος τα παρακάτω. (Δηλαδή, αν πάρει ο μάγος το πρώτο του PvpKill, μόνο αυτός θα πάρει το Arcana Acumen.. { addItem("Arcana Mace Acumen", 6608, 1, this, true); sendMessage("Μόλις πήρες ένα Arcana mace Acumen); } } } Εάν βγάλουμε τελειώς το if (!isMageClass()), και όλες τις γραμμές από else και κάτω... Θα πάρουν όλοι αυτά τα Item. Δηλαδή να γίνει κάπως έτσι ο κώδικας... if (getPvpKills() == 1) { { addItem("Angel Slayer", 6367, 1, this, true); sendMessage("Μόλις πήρες ένα Angel Slayer"); } } Ε. Πως μπορούμε να κάνουμε να παίρνει σε κάθε Pvp κάποιο Item? Α. Εδώ, απλά θα πρέπει να αλλάξουμε τα " == " που σημαίνουν απόλυτα το συγκεκριμένο πράγμα... Δηλαδή αν είναι (item.getItemId() == 6367, τότε σημαίνει απόλυτα γι'αυτό το Item. Το αλλάζουμε λοιπόν, με την ένδειξη " >= " που σημαίνει αυτού του, και μεγαλύτερου... Οπότε ο κώδικας μας γίνεται κάπως έτσι... if (getPvpKills() >= 1) { { addItem("Angel Slayer", 6367, 1, this, true); sendMessage("Μόλις πήρες ένα Angel Slayer"); } } Πάμε τώρα να επεξεργαστούμε κάτι άλλο για πλάκα, για να μπούμε λίγο περισσότερο στο νόημα.... Ας μάθουμε πως δίνουμε ένα Item στην μπάρα ας πούμε F9 του χαρακτήρα να το βρει όταν μπει.. Πάμε, Gameserver/network/clientpackets/CharacterCreate.java Κάνουμε αναζήτηση για: newChar.registerShortCut(new L2ShortCut(11, 0, 1, item.getObjectId(), -1, 1)); Αφού το βρήκαμε, αφήνουμε ένα κενό, και βάζουμε το παρακάτω: + if (item.getItemId() == 6367) Εδώ μας λέει... Ότι, αν το Item, έχει το ID 6367(Angel Slayer), τότε αυτό θα μπει στη μπάρα. + newChar.registerShortCut(new L2ShortCut(8, 0, 1, item.getObjectId(), -1, 1)); Εδώ, μας δείχνει που θα κάνει εγγραφή, π.χ στο F9. Εκεί θα πάει το Angel Slayer. Βάζουμε 8, για να πάει στο 9. Τώρα θα γίνει κάπως έτσι μέσα... if (item.getItemId() == 5588) // tutorial book shortcut newChar.registerShortCut(new L2ShortCut(11, 0, 1, item.getObjectId(), -1, 1)); + if (item.getItemId() == 6367) + newChar.registerShortCut(new L2ShortCut(8, 0, 1, item.getObjectId(), -1, 1)); Έτσι λοιπόν, φτιάχνουμε/επεξεργαζόμαστε κάτι δικό μας.. Όπως είπα, δεν είναι κάτι σημαντικό αυτό που ανέφερα... Αλλά ίσως απαντήσει κάποια ερωτήματα.. (Όλα τα παραπάνω αποτελούν παράδειγμα, ασχέτως αν κάτι είναι σε λάθος σειρά ή δεν ισχύει). ============================================================= 2o ΜΕΡΟΣ: Πάμε τώρα να μάθουμε, πως κάνουμε τα παραπάνω με Config. Είναι σημαντικό να γνωρίζουμε πως να φτιάξουμε ένα δικό μας Config, για έτσι ελέγχουμε αυτό που φτιάξαμε ανα πάσα στιγμή, χωρίς να μπαίνουμε Eclipse όλη την ώρα. Ο παρακάτω κώδικας, θα δώσει στους Fighter όταν πάνε στα 100 pvp kills, ένα Fighter Tattoo, ενώ στους μάγους ένα Mage Tattoo. // Add Fighter or Mage Tattoos if (Config.REWARD_TATTOOS_ENABLE) { if (getPvpKills() == Config.PVP_COUNT) { if (!isMageClass()) { addItem("Tattoo", Config.TATTOO_FIGHTER_ID, Config.FIGHTER_TATTOO_COUNT, this, true); sendMessage("Congratulations! " + Config.PVP_COUNT + " PvP Kills! You won Fighter Tattoo."); } else { addItem("Tattoo", Config.TATTOO_MAGE_ID, Config.MAGE_TATTOO_COUNT, this, true); sendMessage("Congratulations! " + Config.PVP_COUNT + " PvP Kills! You won Mage Tattoo."); } } } Για να αφήνουμε τα σωστά κενά (πιο πολύ για καλύτερη εικόνα, και διάβασμα του κώδικα είναι αυτό), πατάμε Ctrl - Shift & F (Ευχαριστώ τον NeverMore' που μου το έμαθε αυτό...) Όλα αυτά περί PvpKills, τα Item που θέλουμε να δώσουμε, το πόσα Item θέλουμε να δώσουμε και αν θέλουμε να είναι ενεργοποιημένο αυτό το σύστημα, μπορούμε εύκολα να τα επεξεργαστούμε απλά, μέσα από τα Config μας! Πάμε λοιπόν, nes/sf/l2j/Config.java (Με την ένδειξη " + " είναι όλα αυτά που πρέπει να προσθέσουμε, αυτά που είναι χωρίς " + " απλά υπάρχουν για να ξέρουμε που ακριβώς να πάμε...) Πάμε στα Config του Server μας, και φτιάχνουμε ένα νέο file με όνομα custom.properties. (Βασικά πάρτε ένα έτοιμο Property αρχείο, κάντε το μετανομασία, και απλά σβήνεται ότι έχει μέσα, και βάζετε τα καινούρια. public static final String CLANS_FILE = "./config/clans.properties"; Βρίσκουμε αυτό... + public static final String CUSTOMS_FILE = "./config/customs.properties"; Εδώ, είναι το καινούριο property file, που θα φτιάξουμε.. Εδώ θα φτιάξουμε τα Config που έχουμε δηλώσει στον κώδικα... public static final String SIEGE_FILE = "./config/siege.properties"; Βρίσκουμε αυτό... + // Custom Tattoo's + /** Fighter Tattoo */ + public static boolean REWARD_TATTOOS_ENABLE; Λοιπόν.. Εδώ αν προσέξετε στον κώδικα, έχουμε "if (Config.REWARD_TATTOOS_ENABLE)" Δηλαδή, εάν αυτό είναι ενεργοποιημένο, προχωράμε στα παρακάτω βήματα.. + public static int FIGHTER_TATTOO_COUNT; Εδώ ελέγχει τα πόσα Tattoo θέλουμε να δώσουμε στον Fighter παίχτη... addItem("Tattoo", Config.TATTOO_FIGHTER_ID, Config.FIGHTER_TATTOO_COUNT, this, true); + public static int TATTOO_FIGHTER_ID; Εδώ ελέγχει το ID του Item που θέλουμε να δώσουμε στον Fighter παίχτη... addItem("Tattoo", Config.TATTOO_FIGHTER_ID, Config.FIGHTER_TATTOO_COUNT, this, true); + + /** Mage Tattoo */ + public static int MAGE_TATTOO_COUNT; Εδώ ήμαστε στους μάγους τώρα... Είναι ίδια με τα παραπάνω... Ελέγχει τα πόσα Tattoo θέλουμε να δώσουμε στους μάγους. addItem("Tattoo", Config.TATTOO_MAGE_ID, Config.MAGE_TATTOO_COUNT, this, true); + public static int TATTOO_MAGE_ID; Εδώ ελέχγει το ID του Item που θέλουμε να δώσει στον μάγο. addItem("Tattoo", Config.TATTOO_MAGE_ID, Config.MAGE_TATTOO_COUNT, this, true); + + /** Pvp Kills they need */ + public static int PVP_COUNT; Εδώ ελέγχει τα πόσα PvpKills πρέπει να πάρει ο παίχτης, για να δώσει τα Item. Γι'αυτό και έχουμε βάλει "if (getPvpKills() == Config.PVP_COUNT)" + // -------------------------------------------------- // Clans settings // -------------------------------------------------- Πάμε τώρα να βάλουμε και κάτι ακόμη που χρειάζεται για να μπούνε όλα αυτά στο customs.properties αρχείο που φτιάξαμε... REMOVE_CASTLE_CIRCLETS = clans.getProperty("RemoveCastleCirclets", true); + + // Custom Tattoo's + ExProperties customs = load(CUSTOMS_FILE); Εδώ κάνει εγγραφή το νέο μας Config αρχείο. Δεν θα χρειαστεί στο μέλλον να το ξανά βάλουμε αν θέλουμε απλά να περάσουμε άλλες σειρές στο custom.properties, το βάζουμε μόνο όταν φτιάχνουμε νέο Config αρχείο. + /** Fighter Tattoo */ Αφού το Config που φτιάξαμε λέγεται customs.properties εκεί που έχω με κόκκινο, θα βάζουμε το όνομα των κάθε config που θέλουμε να τα στείλουμε. Ενώ με πράσινο, σημαίνει πως πηγαίνει σε αυτό το αρχείο. Με πορτοκαλί, γράφουμε τις λέξεις που θα έχουμε μέσα στα Config μας. + REWARD_TATTOOS_ENABLE = customs.getProperty("RewardTattooEnable", false); + TATTOO_FIGHTER_ID = customs.getProperty("FighterTattooID", 492); + + /** Mage Tattoo */ + TATTOO_MAGE_ID = customs.getProperty("MageTattooID", 493); + + /** Pvp Kills */ + PVP_COUNT = customs.getProperty("PvpKillsCount", 100); Πάμε τώρα μέσα στο custom.properties αρχείο που δημιουργήσαμε και γράφουμε τα παρακάτω... Με την ένδειξη " # " θα την βάζουμε όταν θέλουμε να δείξουμε κάτι στον άλλον... Μόνο να του εξηγήσουμε τι είναι αυτό το σύστημα. Εμάς όμως πρώτα, θα πρέπει να μας ενδιαφέρει να βάλουμε σωστά αυτά που έχω με κίτρινα... # Custom Tattoo Fighter/Mage. # Default: False & 100 Pvp kills. RewardTattooEnable = false # Fighter Tattoo FighterTattooCount = 1 FighterTattooID = 492 # Mage Tattoo. MageTattooCount = 1 MageTattooID = 493 # Pvp Kills Count. PvpKillsCount = 100 Αυτά ήταν παίδες... Δεν είναι κάτι δύσκολο... Για όποια απορία, ρωτήστε και είμαι στην διάθεση σας... Αύριο αν βρω χρόνο, θα ανεβάσω πως φτιάχνουμε δικό μας voicecommand, είτε για teleport, είτε για Items.
  4. :happyforever: Φτάνειιιι..
  5. Μακάρι ρε φίλε να βρεις αυτό που ψάχνεις. Απλά να θυμάσαι ότι, δεν σκέφτονται όλοι με τον ίδιο τρόπο που θα σου γράψουν.. Εννοώ ότι, θα κοιτάξει να φάει ότι μπορέσει, ασχέτως το τι θα σου λέει στην αρχή... Αν γίνει κάτι σοβαρό, θα υπάρξουν διαφωνίες γιατί είστε άγνωστοι και δε θα μπορείτε να λύσετε μέσα στο facebook. Λεφτά λες ότι έχεις και πως αυτό δεν είναι πρόβλημα... Οπότε, αφού δεν έχεις χρόνο κοίταξε να αγοράσεις απλά Developing services, χωρίς να έχει κανείς πρόσβαση στα αρχεία του Server σου! Θα του δίνεις τα λεφτά, θα σου δίνει τον κώδικα, και θα τον περνάς. Αν κάτι πάει στραβά στην συνέχεια, απλά θα του ξανά αγοράσεις κάτι άλλο. Δεν χρειάζεται να τον βάλεις στο Team, απλά κράτα επαφή με κάποιον που θα είναι πρόθυμος επί πληρωμή να βοηθάει. Αυτό χρειάζεσαι... Λες την ιδέα σου, την πληρώνεις, και σου έρχεται... Αυτή είναι η δική μου γνώμη... Άλλωστε μάλλον το θέμα σου είναι καθαρά μόνο java, client... Οπότε αγοράζεις αυτά που θες και τα περνάς. Τώρα in game, τι? Θα αγοράσεις NPC's? Κοίταξε καλά και θα βρεις πολύ όμορφα διαμορφωμένα και free! ΥΓ: Ο AbsoLutePower είναι γαμώ τα παιδιά, και γνωρίζει πράγματα.. Κάντου πρόταση να του λες αυτό που θες και να σου το φτιάχνει. (Επί πληρωμή πάντα). Δε μου αρέσει να ξεχωρίζω ανθρώπους, απλά μιλάω από προσωπική άποψη. Είχα καιρό να μπω σε αυτό το φορουμ, και δε γνωρίζω τα υπόλοιπα παιδιά.
  6. This is an example, and sweets tell you that there is already there. Does not need to put lines for equip items. If I understood correctly because English is not my forte. :P
  7. Hello.. I do not know if this is a problem or not, but try to make compile the 3 parts one by one. I was getting the same error with you then i compile the "community". If not working... i use Juno. (With Fresh version i have shitty errors).
  8. or give compile togother gameserver and data. trunk (Before edit i say first gamesever and later datapack, photo is stuck) :P
  9. He continued to teach, mate. Thank you.. I am one of the few who will read it.. We all want them ready.. ;) +1
  10. Αυτό το κομμάτι το πέρασες? L2JFrozen: data/stats/experience.xml +<experience level="82" tolevel="10499905559" /> +<experience level="83" tolevel="16800005559" /> +<experience level="84" tolevel="27299995559" /> +<experience level="85" tolevel="44100005559" /> ή αυτό.. L2JFrozen: data/xsd/experience.xsd <minInclusive value="1" /> + <maxInclusive value="85" />
  11. Yes... A better way... and equipment items! ;)
  12. Κάνε τα όλα μόνος σου αγορίνα... Οκ, θέλει χρόνο.. Όμως αν δε τον διαθέτεις, μην ανοίγεις καν.. Άνοιγε στο pc σου, κάλεσε μερικούς φίλους, βρες τα προβλήματα και με τον καιρό θα τον φτιάχνεις όλο και περισσότερο. Στείλε εδώ την ιδέα σου, δηλαδή τι θέλεις να βάλεις στον Server σου, είτε από Java side είτε από κάτι άλλο, και θα σε βοηθάνε να το κάνεις μόνος σου, με αποτέλεσμα να μαθαίνεις ακόμη περισσότερα! (Το καλό του 2015, γεμίσαμε φορουμς). Αυτά περί να βρεις Developer να κάνει μια δουλειά, είναι βλακείες, γιατί δεν παίζει το θέμα "δεν ξέρω", αλλά "βαριέμαι" να μάθω... Και εγώ έχω 3 χρόνια να ασχοληθώ με αυτά, δεν θυμάμαι σχεδόν τίποτα, και αν είδες στο Share and files, βάζω την ιδέα μου, την έχω λάθος, βοηθάνε να αποκτήσει νόημα και σωστό τρόπο! +1 δικό μου πράγμα αργότερα για όταν θελήσω στο μέλλον να ανοίξω. Το καλοκαίρι π.χ θέλω να ανοίξω, μέχρι τότε απλά μαθαίνω. Τι σημασία έχει αν ανοίξεις Μάρτιο, τι αν ανοίξεις Ιούνιο, Ιούλιο κτλπ... Ένα πράγμα για να γίνει σωστά και όπως το θέλεις, θέλει θέληση, χρόνο, και πάνω απ'όλα υπομονή. Αποτέλεσμα? Το 35% που θα δίνεις σε έναν άγνωστο από λεφτά που σου χρειάζονται, θα μένουν στην τσέπη σου, να πας με την γκομενίτσα να πιεις ποτό. Απλά τα πράγματα..
  13. On part with fewer lines: Do something like that... I do not give a try if will be work exactly so, just i give you my idea for fewer lines. Ingore the Items... is a example... Because i like your idea, i want to you find a easy way... if (Config.STARTINGS_ITEMS_RACES) { if (!newChar.isMageClass()) { if (newChar.getRace() == Race.Human) { newChar.getInventory().addItem("Angel Slayer", 6367, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Light", 6379, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Boots", 6380, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Gloves", 6381, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Helmet", 6382, 1, newChar, newChar); newChar.getInventory().addItem("TEO Necklace", 920, 1, newChar, newChar ); newChar.getInventory().addItem("TEO Earring", 858, 2, newChar, newChar); newChar.getInventory().addItem("TEO Ring", 889, 2, newChar, newChar ); } if (newChar.getRace() == Race.Elf) { newChar.getInventory().addItem("Angel Slayer", 6367, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Light", 6379, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Boots", 6380, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Gloves", 6381, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Helmet", 6382, 1, newChar, newChar); newChar.getInventory().addItem("TEO Necklace", 920, 1, newChar, newChar ); newChar.getInventory().addItem("TEO Earring", 858, 2, newChar, newChar); newChar.getInventory().addItem("TEO Ring", 889, 2, newChar, newChar ); } if (newChar.getRace() == Race.DarkElf) { newChar.getInventory().addItem("Angel Slayer", 6367, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Light", 6379, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Boots", 6380, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Gloves", 6381, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Helmet", 6382, 1, newChar, newChar); newChar.getInventory().addItem("TEO Necklace", 920, 1, newChar, newChar ); newChar.getInventory().addItem("TEO Earring", 858, 2, newChar, newChar); newChar.getInventory().addItem("TEO Ring", 889, 2, newChar, newChar ); } if (newChar.getRace() == Race.Orc) { newChar.getInventory().addItem("Angel Slayer", 6367, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Light", 6379, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Boots", 6380, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Gloves", 6381, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Helmet", 6382, 1, newChar, newChar); newChar.getInventory().addItem("TEO Necklace", 920, 1, newChar, newChar ); newChar.getInventory().addItem("TEO Earring", 858, 2, newChar, newChar); newChar.getInventory().addItem("TEO Ring", 889, 2, newChar, newChar ); } if (newChar.getRace() == Race.Dwarf) { newChar.getInventory().addItem("Angel Slayer", 6367, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Light", 6379, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Boots", 6380, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Gloves", 6381, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Helmet", 6382, 1, newChar, newChar); newChar.getInventory().addItem("TEO Necklace", 920, 1, newChar, newChar ); newChar.getInventory().addItem("TEO Earring", 858, 2, newChar, newChar); newChar.getInventory().addItem("TEO Ring", 889, 2, newChar, newChar ); } else { newChar.getInventory().addItem("Arcana Mace Acumen", 6608, 1, newChar, newChar); newChar.getInventory().addItem("DC Robe", 2407, 1, newChar, newChar ); newChar.getInventory().addItem("DC Gloves", 5767, 1, newChar, newChar); newChar.getInventory().addItem("DC Boots", 5779, 1, newChar, newChar ); newChar.getInventory().addItem("DC Helmet", 512, 1, newChar, newChar); newChar.getInventory().addItem("TEO Necklace", 920, 1, newChar, newChar ); newChar.getInventory().addItem("TEO Earring", 858, 2, newChar, newChar); newChar.getInventory().addItem("TEO Ring", 889, 2, newChar, newChar ); }
  14. It is a good idea for starting items for each class... But maybe is more "clean", if you put fewer lines. For example, make all fighter race to get the same items, apart of weapon if you want. And the same on mage... or something better, make 2 item with name "Fighter Items" or "Mage Items" give this in inventory, and then, with 2 click give all that you want... (with class check for item).
  15. Sorry, my English is shit . What do you mean ? :P hahahaha now i understand... yes it is a idea.. :lol: You've right... :( for people who do not have good computer to test.
  16. // Add Fighter or Mage Tattoos if (Config.REWARD_TATTOOS_ENABLE) { if (getPvpKills() == Config.PVP_COUNT) { if (!isMageClass()) { addItem("Tattoo", Config.TATTOO_FIGHTER_ID, Config.FIGHTER_TATTOO_COUNT, this, true); sendMessage("Congratulations! " + Config.PVP_COUNT + " PvP Kills! You won Fighter Tattoo."); } else { addItem("Tattoo", Config.TATTOO_MAGE_ID, Config.MAGE_TATTOO_COUNT, this, true); sendMessage("Congratulations! " + Config.PVP_COUNT + " PvP Kills! You won Mage Tattoo."); } } } } On eclipse i use this. :P I give wrong check here on quote. :lol: I put the wrong copy / paste lines one by one. Now is ok?
  17. take a look in my last post. i have edit with this. :P
  18. You mean this way? + // Add Fighter or Mage Tattoos + if (Config.REWARD_TATTOOS_ENABLE && !isMageClass()) + { + if (getPvpKills() == Config.PVP_COUNT) + { + addItem("Tattoo", Config.TATTOO_FIGHTER_ID, Config.FIGHTER_TATTOO_COUNT, this, true); + sendMessage("Congratulations! " + Config.PVP_COUNT + " PvP Kills! You won Fighter Tattoo."); + } + else + { + addItem("Tattoo", Config.TATTOO_MAGE_ID, Config.MAGE_TATTOO_COUNT, this, true); + sendMessage("Congratulations! " + Config.PVP_COUNT + " PvP Kills! You won Mage Tattoo."); + } + } + }
  19. I made my own way, because I did not want to do copy/paste, but I had to get an idea of ​​how to do it. Yesterday I tried like you, without the "pvpkillCount" is work, and i thought all will work if i put only addItem.Configblabla. For the reason to i create something new and not like all this is already share... This is my false... I wanted something new. and probably needs more knowledge than i thought. Anyway... Updated with your choose... also with ""if (getPvpKills() == Config.PVP_COUNT)"" and choose enable or not.. Thank thus nevertheless..
  20. I like this... It's a good idea for a pvp server. and the shit i create yesterday is good idea but i have wrong on Item. :lol: In 1 hour will be ok.
  21. Yesterday i tried with fighter and gave two, as i had no class check. Now why not? :P The PC, does not open the second window Lineage will burn. :lol: Yesterday i was in a friend. haha
  22. Updated on this: Thank you AbsolutePower for your replay... Tessa Thank you also... :P :lol: - // Check if the character is Mage, and if is, do not give Fighter Tattoo. - if (isMageClass()) - return; - - if (Config.FIGHTER_TATTOO_ENABLE && pvpKillCount == Config.PVP_COUNT) + if (Config.FIGHTER_TATTOO_ENABLE && pvpKillCount == Config.PVP_COUNT && !isMageClass()) { addItem(Config.TATTOO_FIGHTER_ID); sendMessage("Congratulations! " + Config.PVP_COUNT + " PvP Kills! You won Fighter Tattoo."); + getInventory().updateDatabase(); } - else if(Config.MAGE_TATTOO_ENABLE && pvpKillCount == Config.PVP_COUNT1 && !isMageClass()) + else if(Config.MAGE_TATTOO_ENABLE && pvpKillCount == Config.PVP_COUNT1) { addItem(Config.TATTOO_MAGE_ID); sendMessage("Congratulations! " + Config.PVP_COUNT + " PvP Kills! You won Mage Tattoo."); + getInventory().updateDatabase(); } } I do not think updateDatabase be a problem ... but i put it .
  23. Yes, but in private message do not fill again. :lol: Or make edit your post and i'll see... + if (isMageClass()) + return; What with this? :-\ We need to get it out, and put something else? this? - if (isMageClass()) - return; + if (getClassId() == ClassId.mage) + return; Or all this is wrong?
  24. Hello members of maxcheaters! I have make this idea for my test project. It's a small code. Example: if a player is mage or fighter in x pvp count, will get Custom Tattoo. (Fighter or Mage depending in class)! You can choose the count of pvp and Tattoo id you want on config. It's for pvp server.. with this, the pvp has more interest. I've seen in l2mora, giving an item pvp in every pvp, for to get these tattoos .. now instead be given an item pvp in each pvp, given once, with the count of pvp want. I think it would be best if given like this way. To have importance the pvps and trade. For example, players will trade, since it does not exist in the shop, and will go for pvp, instead of waiting for the vote reward! An example for for stats on tattoos: Data/stats/armor/0400-0499.xml <item id='492' name="Tattoo of Soul"> <for> <set val='500' order='0x010' stat='pAtk'/> <set val='300' order='0x010' stat='pAtkSpd'/> <set val='15' order='0x010' stat='rCrit'/> <add val='100' order='0x10' stat='pDef'/> <add val='50' order='0x010' stat='runSpd'/> <add val='100' order='0x10' stat='mDef'/> <enchant val='0' order='0x0C' stat='pDef'/> </for> </item> <item id='493' name="Tattoo of Avadon"> <for> <set val='500' order='0x010' stat='mAtk'/> <set val='300' order='0x010' stat='mAtkSpd'/> <set val='15' order='0x010' stat='mCrit'/> <add val='50' order='0x010' stat='runSpd'/> <add val='100' order='0x10' stat='pDef'/> <add val='100' order='0x10' stat='mDef'/> <enchant val='0' order='0x0C' stat='pDef'/> </for> </item> NOTE: On your Lineage 2 system find armorgrp.dat and do there a edit. (With L2FileEdit). Find the tattoo's name and replace "Tattoo of soul with Fighter Tattoo" and "Tattoo of Avadon with Mage Tattoo". http://pastebin.com/TjyTWj6c
×
×
  • Create New...