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

    • wtf is your website lol ai slop
    • who have this files? or info about cached packets?
    • Hi maxcheaters, i am trying to bring back an old server ( L2Revenge) but with my own ideas, i only liked how it was and made the gameplay based on that just putting my own ideas.   So practicly is a PTS C6 with an extender that i work lately    Exp / SP is x45 adena is x200 and drops x5  so safe is +3 , max is unlimited and rate is 65% for both mage and fighter weapons I created a system that you can get on the levels the gear you need based on farm but for S grade theres a little farm to get some armor Tokens to unseal them. As you remember L2Revenge had olympiad / Tournament gear. So people abused them and had S grades that way just couldnt enchant them. So i made to be wearable only if u are nobless. That way i cancel this "exploit".  The server gives opportunity to solo and clans , epic gear ( epic weapons) or armors can be bought with raid tokens and you can craft them or get them with various ways Regarding Buffs: 24 buff slots no changes asked. Cov/Pony/Cat , siren - renewal - champion out of buffer , if u make the char as main roll u can use them or use the offline buffer system to sell them and get adenas. their time is 20 mins so that way we see again the " 1kk for rene/siren" or rec = song  Regarding armors: they are dropped ( parts ) from 3 only raids , rest lvl 76+ raids drop recipes , so crafting takes place (so if u are solo u can craft them )  there are 3 armors each armor have its purpose: Revenge Armors - Example for light ( its a glass cannon , high damage , less atk speed and less pdef ) - they mostly modify your base stats, so useable on sieges or off tank chars Titanium Armors - A little bit of balanced of all  Epic Armor - Daggers/Enchanters/Healers mostly but u can always combine your build    Regarding weapons: can be dropped from Monastery of Silence monsters or get them from NPC with Raid Tokens its like a 5% better than S grades and the S/A Activates at +4  Regarding retail gear: you need to unseal only S grades for a great amount of armor tokens all weapons on any grade need Soul crystals that are sold for adenas  stage 13 crystals are expensive or dropped from raids Regarding fun: There is a squash event a Fortress vs Fortress pvp event an RB Event at weekends and from Monday - Wednesday Tournament ( Olympiad is closed monday/tuesday/wednesday)  at tournament you can practice 1vs1 like olympiad but pots/ss allowed , gear allowed is only olympiad or tournament , each win of match gives u 5 glits at 100 glits u can be hero till restart Olympiad works the same way regarding gear allowance but works only thursday to friday and you win monthly hero Auction with Raid Tokens is activated Event medals from events can be exchanged for various items i try to make the oldschool with a little bit of new school systems Not planing to open it anytime soon as i still develop and make corrections to extender , looking forward to meet people that actually played this and are hyped to help on testing / development   P.S is c5 into interlude ( theres no akamanah / nor PI aswell , no lifestones) forgot to mention
  • 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