Jump to content

Recommended Posts

Posted

well here's my guide for edit the subclasses.

 

1st how to list subclasses in 1 npc:

go to L2VillageMasterInstance.java located in gameserver.model.actor.instance

search for this:

       

/**
         * If the race of your main class is Elf or Dark Elf,
         * you may not select each class as a subclass to the other class,
         * and you may not select Overlord and Warsmith class as a subclass.
         *
         * You may not select a similar class as the subclass.
         * The occupations classified as similar classes are as follows:
         *
         * Treasure Hunter, Plainswalker and Abyss Walker
         * Hawkeye, Silver Ranger and Phantom Ranger
         * Paladin, Dark Avenger, Temple Knight and Shillien Knight
         * Warlocks, Elemental Summoner and Phantom Summoner
         * Elder and Shillien Elder
         * Swordsinger and Bladedancer
         * Sorcerer, Spellsinger and Spellhowler
         *
         */

in l2jfree pack(i compile it now so the last rev of gracia) is in the 739.line

under this you see that:

           

    if (npcRace == Race.Human || npcRace == Race.Elf)
                {
                    // If the master is human or light elf, ensure that fighter-type
                    // masters only teach fighter classes, and priest-type masters
                    // only teach priest classes etc.
                    if (!availSub.isOfType(npcTeachType)) availSubs.remove(availSub);

                    // Remove any non-human or light elf classes.
                    else if (!availSub.isOfRace(Race.Human)
                        && !availSub.isOfRace(Race.Elf)) availSubs.remove(availSub);
                }
                else
                {
                    // If the master is not human and not light elf,
                    // then remove any classes not of the same race as the master.
                    if (!availSub.isOfRace(npcRace)) availSubs.remove(availSub);
                }

what was that mean:

                   

if (!availSub.isOfType(npcTeachType)) availSubs.remove(availSub);

this means fighter class npc teach only fighter class subclasses and mage type npc teach only mage classes if you dont want that just delete just delete it.

 

                    // Remove any non-human or light elf classes.
                    else if (!availSub.isOfRace(Race.Human)
                        && !availSub.isOfRace(Race.Elf)) availSubs.remove(availSub);

this means the npc dont list you for subclass the orc dwarf and dark elf if the master npc(priest)is elf or human.if you dont need this delete it.

 

                {
                    // If the master is not human and not light elf,
                    // then remove any classes not of the same race as the master.
                    if (!availSub.isOfRace(npcRace)) availSubs.remove(availSub);
                }

this means if the master npc is not human or elf the npc dont list subclasses from other classes only from the master npc's class.if you dont want it just delete.

 

you need to see this if you want to list all class at 1 npc:

       

Set<PlayerClass> availSubs = currClass.getAvailableSubclasses();

        if (availSubs != null)
        {
            for (PlayerClass availSub : availSubs)
            {
                for (Iterator<SubClass> subList = iterSubClasses(player); subList.hasNext();)
                {
                    SubClass prevSubClass = subList.next();
                    int subClassId = prevSubClass.getClassId();
                    if (subClassId >= 88) subClassId = ClassId.values()[subClassId].getParent().getId();

                    if (availSub.ordinal() == subClassId
                        || availSub.ordinal() == player.getBaseClass())
                        availSubs.remove(PlayerClass.values()[availSub.ordinal()]);
                }
            }
        }

        return availSubs;

 

2nd how to edit the subclass limitations beetwen classes:

go to PlayerClass.java located in gameserver.model.base

here you see a list with all classes go down until you see the enumsets:

	
        private static final Set<PlayerClass> subclasseSet1 = EnumSet.of(DarkAvenger, Paladin, TempleKnight, ShillienKnight);
private static final Set<PlayerClass> subclasseSet2 = EnumSet.of(TreasureHunter, AbyssWalker, Plainswalker);
private static final Set<PlayerClass> subclasseSet3 = EnumSet.of(Hawkeye, SilverRanger, PhantomRanger);
private static final Set<PlayerClass> subclasseSet4 = EnumSet.of(Warlock, ElementalSummoner, PhantomSummoner);
private static final Set<PlayerClass> subclasseSet5 = EnumSet.of(Sorceror, Spellsinger, Spellhowler);

 

you see the never subclassed enumset with overlord and warsmith if you want to allow them just delete these lines:

	private static final Set<PlayerClass> neverSubclassed = EnumSet.of(Overlord, Warsmith);
subclasses.removeAll(neverSubclassed);

 

in the other 5 set you see the subclass limits beetwen classes with type you know dagger class cant sub to other dagger summoner cant sub to other cummoner class and so on...

if you want to allow these you need to delete 4 lines for each subclass set

these lines:

 

	private static final Set<PlayerClass> subclasseSet1 = EnumSet.of(DarkAvenger, Paladin, TempleKnight, ShillienKnight);

	subclassSetMap.put(DarkAvenger, subclasseSet1);
	subclassSetMap.put(Paladin, subclasseSet1);
	subclassSetMap.put(TempleKnight, subclasseSet1);
	subclassSetMap.put(ShillienKnight, subclasseSet1);

 

and so on for each set you want allow for subclass.

 

now allow elf class to sub for dark elf:

search for this:

				switch (_race)
			{
				case Elf:
					subclasses.removeAll(getSet(DarkElf, Third));
					break;
				case DarkElf:
					subclasses.removeAll(getSet(Elf, Third));
					break;
			}

here you see case Elf.case elf means the npc remove all delf class from master npc if you are elf and in case DarkElf the master npc remove all class from elf race if you are dark elf the only thing you need to do is delete these things if you want to allow them.

 

now let see the kamael.For kamael i dont want to allow all class to sub to that shitty race because of the wing...if a warlord for example sub to kamael he cant use kamael skills because of they are wing reletad and it's make errors in gs consol...

so i show 2 things you can edit with kamael classes.

1st thing subclass beetwen male and female classes:

				subclasses = getSet(Kamael, Third);
			subclasses.remove(this);
			//Check sex, male can't subclass female and vice versa
			if (player.getAppearance().getSex())
				subclasses.removeAll(EnumSet.of(maleSoulbreaker));
			else
				subclasses.removeAll(EnumSet.of(femaleSoulbreaker));

search for this here you can see male cant sub to female and female cant sub to male.delete it if you want to allow.

2nd the inspector class:

				if (player.getTotalSubClasses() < 2)
				subclasses.removeAll(EnumSet.of(inspector));

here you can edit how many completed subclass needed to be an inspector.you need to edit number in player.getTotalSubClasses.

 

i think it's done now.The kamael section is totally untested!(because i hate them too much:D)

If you have problem post it.

credits to me.

  • 1 month later...
Posted

ummm i have l2jfree and i dont have model in my gameserver folder... where is it located?

 

Its in the java not directly in your downloaded gs folder.

 

L2VillageMasterInstance.java located in gameserver.model.actor.instance

Posted

Its in the java not directly in your downloaded gs folder.

 

L2VillageMasterInstance.java located in gameserver.model.actor.instance

 

ummm what where is gameserver.model.actor.instance located? lol... i only see like data, sql, etc...

Posted

ummm what where is gameserver.model.actor.instance located? lol... i only see like data, sql, etc...

 

if you dont know java you cant make it...thats how it looks..if you want to learn it...

http://www.maxcheaters.com/forum/index.php?topic=44325.0

  • 4 weeks later...
Posted

Id like to add the fallowing

 

With this you can set form what race a main's subclass can be. Something like non-mutant substuck servers.

You can set orcs subclass only from orcs , orc subclass from dark elven and human etc...As you wish...

 

Go to net/sf/l2j/gameserver/model/base/PlayerClass.java

 

and you got this code

	public final Set<PlayerClass> getAvailableSubclasses(L2PcInstance player)
{
	Set<PlayerClass> subclasses = null;

	if (_level == Third)
	{
		if (player.getRace() != Kamael)
		{
			subclasses = EnumSet.copyOf(mainSubclassSet);

			subclasses.remove(this);

			switch (_race)
			{
				case Elf:
					subclasses.removeAll(getSet(DarkElf, Third));
					break;
				case DarkElf:
					subclasses.removeAll(getSet(Elf, Third));
					break;
			}

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

			Set<PlayerClass> unavailableClasses = subclassSetMap.get(this);

			if (unavailableClasses != null)
				subclasses.removeAll(unavailableClasses);

		}

 

 

You probably noticed already the code

case Elf:

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

break;

case DarkElf:

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

break;

 

That code means that the elf classes are deleted from a dark elf's character menu when he talks to a subclass manager and vice-versa.

 

For example you want an orc to be able to subclass only from its own race...Youre gonna use this

 

case Elf:

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

break;

case DarkElf:

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

break;

+case Orc:

+subclasses.removeAll(getSet(Elf, Third));

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

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

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

+subclasses.removeAll(getSet(Kamael, Third));

+break;

 

The point is that for every race that you wanna change, you delete the other races.

  • 4 months later...

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

    • 冬天是享受优惠、省钱的好时机。 首次下单时使用促销码 SOCNET 即可获得 15% 折扣 ,适用于全场商品! 前往商店(网站) 前往商店(Telegram 机器人)
    • Winter is the time to save with benefits. Activate the promo code SOCNET on your first order and get a 15% discount on the entire assortment! Go to the store (website) Go to the store (Telegram bot)
    • Winter is the time to save with benefits. Activate the promo code SOCNET on your first order and get a 15% discount on the entire assortment! Go to the store (website) Go to the store (Telegram bot)
    • L2 Kings    Stage 1 – The Awakening Dynasty and Moirai Level Cap: 83 Gear: Dynasty -Moirai & Weapons (Shop for Adena + Drop from mobs/instances ) Masterwork System: Available (Neolithics S required with neolithics u can do armor parts foundation aswell) Class Cloaks: Level 1 - Masterwork sets such us moirai/dynasty stats are boosted also vesper(stage 2) Olf T-Shirt: +6 (fails don’t reset) safe is +2 Dolls: Level 1 Belts: Low & Medium Enchant: Safe +3 / Max +8 / Attribution Easy in Moirai-Dynasty . Main Zones: Varka Outpost: Easy farm, Adena, EXP for new players = > 80- 100kk hour Dragon Valley: Main farm zone — , 100–120kk/hour Weapon Weakness System active (all classes can farm efficiently) Archers get vampiric auto-hits vs mobs Dragon Valley Center: Main Party Zone — boosted drops (Blessed enchants, Neolithics chance) => farm like 150-200kk per hour. Dragon Valley North: Spoil Zone (Asofe + crafting materials for MW) Primeval Isle: Safe autofarm zone (low adena for casual players) ==> 50kk per hour Forge of the Gods & Imperial Tomb: Available from Stage 1 (lower Adena reward in compare with Dragon Valley) Hellbound also avaliable from stage 1 In few words all zones opened but MAIN farm zone with boosted adena and drops is Dragon valley also has more mobs Instances: Zaken (24h Reuse) → Instead of Vespers drop Moirai , 100% chance to drop 1 of 9 dolls lvl 1, Zaken 7-Day Jewelry Raid Bosses (7 RBs): Drop Moirai Parts + Neolithic S grade instead of Vespers parts that has 7 Rb Quest give Icarus Weapons Special Feature 7rb bosses level up soul crystals aswell. Closed Areas : Monaster of SIlence, LOA, ( It wont have mobs) / Mahum Quest/Lizardmen off) Grand Epics: Unlocked on Day 4 of Stage 1 → Antharas, Valakas, Baium, AQ, etc ================================================================================= Stage 2 – Rise of Vespers Level Cap: 85 Gear: Moirai Armors (Adena GM SHOP / Craft/ Drop) Weapons: Icarus Cloaks: Level 2 Olf: +8 Dolls: Level 2 Belts: High & Top Enchant: Safe +3 / Max +8 Masterwork can be with Neolithics S84 aswell but higher so craft will be usefull aswell. 7 Raid Boss Quest Updated: Now works retail give vesper weapons 7rb Bosses Drops : Vespers Instances: Zaken : Drops to retail vespers + the dolls and the extra items that we added on stage 1 New Freya Instance: Added — drops vespers and instead of mid s84 weapons will drop vespers . Extra drops Blessed Bottle of Freya - drops 100% chance 1 of 9 dolls. Farm Areas Dragon Valley remains main farm New Zone : Lair of Antharas (mobs nerfed and added drop Noble stone so solo players can farm too) New Party Zone : LOA Circle   ============================================================================   Stage 3 – The Vorpal ERA Gear: Vorpal Unclock Cloaks: Level 3 Olf: +10 (max cap) Dolls: Level 3 Enchant: Safe +3 / Max +12 Farm Zones : Dragon Valley Center Scorpions becomes a normal solo zone (no longer party zone) Drops:   LOA & Knorik → Mid Weapons avaliable in drop New Party Zone Kariks Instances: Easy Freya Drops Mid Weapons Frintezza Release =================================================================================     Stage 4 – Elegia Era (Final Stage) Elegia Unlock Gear: Elegia Weapons: Elegia TOP s84 ( farmed via H-Freya/ Drops ) Cloaks: Level 5 Dolls: Level 3 (final bonuses) Enchant: Safe +6 / Max +16 Instances: Hard Freya → Drops Elegia Weapons + => The Instance will drop 2-3 parts for sure and also will be able to Join with 7 people . Party Zone will have also drop chances for elegia armor parts and weapons but small   Events (Hourly): Win: 50 Event Medals + 3 GCM + morewards Lose: 25 Medals + 1 GCM + more rewards Tie: 30 Medals + 2 GCM + more rewards   ================================================================================ Epic Fragments Currency Participating in Daily Bosses mass rewarding all players Participating in Instances (zaken freya frintezza etc) all players get reward ================================================================================ Adena - Main server currency (all items in gm shop require adena ) Event Medals (Festival Adena) - Event shop currency Donation coins you can buy with them dressme,cosmetics and premium account Epic Fragments you can buy with them fake epic jewels Olympiad Tokens you can buy many items from olympiad shop (Hero Coin even items that are on next stages) Olympiad Win = 1000 Tokens / Lose = 500 Tokens ================================================================================= Offline Autofarm Allows limited Offline farming requires offline autofarm ticket that you get by voting etc ================================================================================= Grand Epics have Specific Custom NPC that can spawn Epics EU/LATIN TIME ZONE ================================================================================= First Olympiad Day 19 December First Heroes 22 December ( 21 December Last day of 1st Period) After that olympiad will be weekly. ================================================================================= Item price and economy Since adena is main coin of server and NOT donation coins we will always add new items in gm shop with adena in order to burn the adena of server and not be inflation . =================================================================================        
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock