Jump to content

brett16

Members
  • Posts

    158
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by brett16

  1. It's a nice guide. I also added these lines so you can only subclass another class in the same race you are. Now I would like to make it so there subclass stacks with their main class. Does anyone know of a guide I could learn how to do this?

    switch (player.getRace())

    {

    case elf:

    subclasses.removeAll(getSet(DarkElf, Third));

                    subclasses.removeAll(getSet(Human, Third));

                    subclasses.removeAll(getSet(Dwarf, Third));

                    subclasses.removeAll(getSet(Orc, Third));

    break;

    case darkelf:

    subclasses.removeAll(getSet(LightElf, Third));

                    subclasses.removeAll(getSet(Human, Third));

                    subclasses.removeAll(getSet(Dwarf, Third));

                    subclasses.removeAll(getSet(Orc, Third));

    break;

    case orc:

                      subclasses.removeAll(getSet(LightElf, Third));

                      subclasses.removeAll(getSet(DarkElf, Third));

                      subclasses.removeAll(getSet(Human, Third));

                      subclasses.removeAll(getSet(Dwarf, Third));

                      break;

    }

  2. I Have the gain XP & SP through pvp kill, What I'm not sure about is how to add XP & SP to a party if a party member gets a pvp kill. This is what I tried.

    setPvpKills(getPvpKills() + 1);

    if (Config.PVPEXPSP_SYSTEM)

    {

    addExpAndSp(Config.ADD_EXP, Config.ADD_SP);

    }

    setPvpKills(getPvpKills() +1);

    if (Config.PVPEXPSP_SYSTEM && isInParty());

    {

    addExpAndSp(Config.ADD_EXP, Config.ADD_SP, Config.RATE_PARTY_XP, Config.RATE_PARTY_SP);

    }

    I'm really not sure what the variable would be to add the addExpAndSp configs to the party.

  3. I Have the gain XP & SP through pvp kill, What I'm not sure about is how to add XP & SP to a party if a party member gets a pvp kill. This is what I tried.

    setPvpKills(getPvpKills() + 1);

    if (Config.PVPEXPSP_SYSTEM)

    {

    addExpAndSp(Config.ADD_EXP, Config.ADD_SP);

    }

    setPvpKills(getPvpKills() +1);

    if (Config.PVPEXPSP_SYSTEM && isInParty());

    {

    addExpAndSp(Config.ADD_EXP, Config.ADD_SP, Config.RATE_PARTY_XP, Config.RATE_PARTY_SP);

    }

    I'm really not sure what the variable would be to add the addExpAndSp configs to the party.

  4. Maybe I did this wrong but I used 4 ids from the compressed soulshot pack, when I open them I still get soulshots.

    package lt.equal.gameserver.handler.itemhandlers;

     

    import lt.equal.gameserver.handler.IItemHandler;

    import lt.equal.gameserver.model.L2ItemInstance;

    import lt.equal.gameserver.model.actor.instance.L2PcInstance;

    import lt.equal.gameserver.model.actor.instance.L2PlayableInstance;

    import lt.equal.gameserver.network.SystemMessageId;

    import lt.equal.gameserver.network.serverpackets.ItemList;

    import lt.equal.gameserver.network.serverpackets.SystemMessage;

    import lt.equal.util.Rnd;

     

    public class CompShotPacks implements IItemHandler

    {

    private static final int[] ITEM_IDS =

    {

    5134, 5135, 5136, 5137 //packs ids

    };

     

    private int[] Pack1 = {6847,6849,6851,6853,6855,6857,6859,6861,6863,6865,6867,6869,6871,6873,6875,6877,6879,6881,6883,6885,6887,6889,6891,6893,6895,6897,6899,7580};

    private int[] Pack2 = {1889,5550,4042,1895,1887,4044,1893,1881,1888,1890,4043};

    private int[] Pack3 = {5553,5552,5551,4048,5554};

    private int[] Pack4 = {6698,6699,6700,6701,6702,6703,6704,6706,6705,6707,6708,6709,6710,6711,6712,6713,6714,6688,6689,6690,6691,6692,6693,6694,6695,6696,7579,6697};

     

    public void useItem(L2PlayableInstance playable, L2ItemInstance item)

    {

    if (!(playable instanceof L2PcInstance))

    return;

    L2PcInstance activeChar = (L2PcInstance) playable;

     

    int itemId = item.getItemId();

    int itemToCreateId = 0;

    int amount = 0;

     

    switch(itemId)

    {

    case 1: //first pack id

    {

    if(getChance(30))

    {

    itemToCreateId = Pack1[Rnd.get(Pack1.length)];

    amount = 1;

    }

    break;

    }

    case 2: //second pack id

    {

    if(getChance(Rnd.get(30, 70))) // random chance

    {

    itemToCreateId = Pack2[Rnd.get(Pack2.length)];

    amount = Rnd.get(1, 5);

    }

    break;

    }

    case 3: //third pack id

    {

    if(getChance(Rnd.get(30, 70))) // random chance

    {

    itemToCreateId = Pack3[Rnd.get(Pack3.length)];

    amount = Rnd.get(1, 2);

    }

    break;

    }

    case 4: //fourth pack id

    {

    if(getChance(Rnd.get(30, 70))) // random chance

    {

    itemToCreateId = Pack4[Rnd.get(Pack4.length)];

    amount = Rnd.get(1, 3);

    }

    break;

    }

    }

     

    activeChar.getInventory().destroyItem("Extract", item, activeChar, null);

    activeChar.getInventory().addItem("Extract", itemToCreateId, amount, activeChar, item);

     

    SystemMessage sm = new SystemMessage(SystemMessageId.EARNED_S2_S1_S);

    sm.addItemName(itemToCreateId);

    sm.addNumber(amount);

    activeChar.sendPacket(sm);

     

    ItemList playerUI = new ItemList(activeChar, false);

    activeChar.sendPacket(playerUI);

    }

     

    private boolean getChance(int i)

    {

    return i > Rnd.get(100);

    }

     

    public int[] getItemIds()

    {

    return ITEM_IDS;

    }

    }

  5. Sorry for double post. Would it be easier to create my own pack items? I need 4 in total for now. These are the list of items I need to have a chance to open in the first pack. the amount of 1 for these is fine.

     

    Pack 1: Random chance to get these items.

    6861

    6863

    6853

    6855

    6857

    6859

    6865

    6867

    6869

    6871

    6873

    6875

    6877

    6879

    6881

    6883

    6885

    6887

    6889

    6891

    6893

    6895

    6897

    6899

    7580

    6847

    6849

    6851

     

    Pack 2 random chance to get these: Random amount 1-5

    Sealed Tateossian Earring Part

    Sealed Tateossian Ring Gem

    Sealed Tateossian Necklace Chain

     

    Sealed Imperial Crusader Breastplate Part

    Sealed Imperial Crusader Gaiters Pattern

    Sealed Imperial Crusader Gauntlets Design

    Sealed Imperial Crusader Boots Design

    Sealed Imperial Crusader Helmet Pattern

    Sealed Imperial Crusader Shield Part

     

    Sealed Draconic Leather Armor Part

    Sealed Draconic Leather Gloves Fabric

    Sealed Draconic Leather Boots Design

    Sealed Draconic Leather Helmet Pattern

     

    Sealed Major Arcana Robe Part

    Sealed Major Arcana Gloves fabric

    Sealed Major Arcana Boots Design

    Sealed Major Arcana Circlet Pattern

     

    Forgotten Blade Edge

    Basalt Battlehammer Head

    Imperial Staff Head

    Angel Slayer Blade

    Shining Bow Shaft

    Dragon Hunter Axe Blade

    Saint Spear Blade

    Demon Splinter Blade

    Heavens Divider Edge

    Draconic Bow Shaft

    Arcana Mace Head

     

    Pack 3 random chance to get these items: Random amount 1-3

    Arcsmith's Anvil

    Warsmith's Mold

    Leolin's Mold

    Maestro Mold

    Warsmith's Holder

     

    Pack 4 random chance to get these items: Random amount 1-5

    Compound Braid

    Durable Metal Plate

    Enria

    Metallic Fiber

    Varnish of Purity

    Thons

    Oriharukon

    Coarse Bone Powder

    Synthetic Cokes

    Mithril Alloy

    Asofe

     

    I will be getting the item codes for those later but this is just to show you want I'm trying to do.

  6. Thank you, This is the whole .java and I wanted to make sure I entered it correct. Because Eclipse is giving me an error saying Rnd cannot be resolved.

    public class CompShotPacks implements IItemHandler

    {

    private static final int[] ITEM_IDS =

    {

    5134, 5135, 5136, 5137, 5138, 5139, /**/5250, 5251, 5252, 5253, 5254, 5255 // SS

    // 5140, 5141, 5142, 5143, 5144, 5145, /**/ 5256, 5257, 5258, 5259, 5260, 5261, // SpS

    // 5146, 5147, 5148, 5149, 5150, 5151, /**/ 5262, 5263, 5264, 5265, 5266, 5267 // BSpS

    };

    private boolean getChance(int i)

    {

    return i > Rnd.get(100);

    }

     

    public void useItem(L2PlayableInstance playable, L2ItemInstance item)

    {

    if (!(playable instanceof L2PcInstance))

    return;

    L2PcInstance activeChar = (L2PcInstance) playable;

     

    int itemId = item.getItemId();

    int itemToCreateId = 0;

     

    boolean chance20 = 20 > Rnd.get(100), chance30 = 30 > Rnd.get(100);

    int amount = 0; // default regular pack

     

    if (itemId >= 5134 && itemId <= 5139) // SS

    {

    if (itemId == 5134 && chance20) // No Grade

    itemToCreateId = 7580;

                amount = Rnd.get(1, 2);

    }

    if (itemId == 5135 && chance30)

    {

    itemToCreateId = 6847;

    amount = Rnd.get(1, 2);

    }

    activeChar.getInventory().destroyItem("Extract", item, activeChar, null);

    activeChar.getInventory().addItem("Extract", itemToCreateId, amount, activeChar, item);

     

    SystemMessage sm = new SystemMessage(SystemMessageId.EARNED_S2_S1_S);

    sm.addItemName(itemToCreateId);

    sm.addNumber(amount);

    activeChar.sendPacket(sm);

     

    ItemList playerUI = new ItemList(activeChar, false);

    activeChar.sendPacket(playerUI);

    }

     

    public int[] getItemIds()

    {

    return ITEM_IDS;

    }

    }

  7. I was going to try to create my own compressed pack to open into a list of possible items. I didn't know where to start so I thought I would edit some that already exist. I wasn't really sure how to do this so I thought I would post what I got to see if I'm on the right track. Don't want to mess up the file and my source code.

    Current code from CompShotPacks.java

    public void useItem(L2PlayableInstance playable, L2ItemInstance item)

    {

    if (!(playable instanceof L2PcInstance))

    return;

    L2PcInstance activeChar = (L2PcInstance) playable;

     

    int itemId = item.getItemId();

    int itemToCreateId = 0;

    int amount = 0; // default regular pack

     

    if (itemId >= 5134 && itemId <= 5139) // SS

    {

    if (itemId == 5134) // No Grade

    itemToCreateId = 1835;

    else

    itemToCreateId = itemId - 3672;

     

    amount = 300;

    }

    else if (itemId >= 5250 && itemId <= 5255) // Greater SS

    {

    if (itemId == 5250) // No Grade

    itemToCreateId = 1835;

    else

    itemToCreateId = itemId - 3788;

     

    amount = 1000;

    }

    else if (itemId >= 5140 && itemId <= 5145) // SpS

    {

    }

    else if (itemId >= 5256 && itemId <= 5261) // Greater SpS

    {

    }

    What I want to do is add a list of possible items that have a random chance to open and a random min-max amount. This is my attempt I don't know the code to do random min-max amount yet.

    public void useItem(L2PlayableInstance playable, L2ItemInstance item)

    {

    if (!(playable instanceof L2PcInstance))

    return;

    L2PcInstance activeChar = (L2PcInstance) playable;

     

    int itemId = item.getItemId();

    int itemToCreateId = 0;

    int amount = 0; // default regular pack

     

    if (itemId >= 5134 && itemId <= 5139) // SS

    {

    if (itemId == 5134) // No Grade

                              (Rnd.get(100) > 20)

    itemToCreateId = 7580;

    amount = 1;

                              (Rnd.get(100) > 30)

    itemToCreateId = 6847;

    amount = 1;

    }

    Hopefully it would open and give you a 20% chance to recieve 1 of item 7580 and 30% chance to recieve 1 of 6847. This pack doesn't need random amount because its for recipes.

    But if I edit the next pack I want it to open up into mats then I would need the random min-max amount. Which I don't know how to add so I can set the min amount and max amount right there.

    Example:

    Open pack,

    (Rnd.get(100) >20)

    itemToCreateId = 57;

    (Rnd.get(3 - 5) (Get Min 3 or max of 5)

    I don't know what the min max is so I just took a guess.

     

     

     

  8. Using brain doesn't hurt.

     

            int itemReward = Config.MOD_GVE_AMOUNT_PACK_BY_PVP;
    
            if (Rnd.get(100) > 50)
            {
                   addItem("Loot", 5139, itemReward, this, true);
            }

    I typed the code in my post wrong, The only thing different from what you posted and what I had was there was no space between

    int itemReward = Config.MOD_GVE_AMOUNT_PACK_BY_PVP; and

    if (Rnd.get(100) >50)

     

    but adding the space between the 2 made it work, so thank you.

×
×
  • Create New...