Перейти к содержанию
Авторизация  
XaTTa6bI4

Помощь Исходщик

Рекомендуемые сообщения

нужна помощь в исходщиках надо убрать ограничения в расах и профах и когда переключаеся что б панель на нову не переключало

 

 

 

package com.l2jserver.gameserver.model.base;

import static com.l2jserver.gameserver.model.base.ClassLevel.First;
import static com.l2jserver.gameserver.model.base.ClassLevel.Fourth;
import static com.l2jserver.gameserver.model.base.ClassLevel.Second;
import static com.l2jserver.gameserver.model.base.ClassLevel.Third;
import static com.l2jserver.gameserver.model.base.ClassType.Fighter;
import static com.l2jserver.gameserver.model.base.ClassType.Mystic;
import static com.l2jserver.gameserver.model.base.ClassType.Priest;
import static com.l2jserver.gameserver.model.base.Race.DarkElf;
import static com.l2jserver.gameserver.model.base.Race.Dwarf;
import static com.l2jserver.gameserver.model.base.Race.Elf;
import static com.l2jserver.gameserver.model.base.Race.Human;
import static com.l2jserver.gameserver.model.base.Race.Kamael;
import static com.l2jserver.gameserver.model.base.Race.Orc;

import java.util.EnumMap;
import java.util.EnumSet;
import java.util.Set;

import com.l2jserver.Config;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;

/**
* @author luisantonioa
*/
public enum PlayerClass
{
HumanFighter(Human, Fighter, First),
Warrior(Human, Fighter, Second),
Gladiator(Human, Fighter, Third),
Warlord(Human, Fighter, Third),
HumanKnight(Human, Fighter, Second),
Paladin(Human, Fighter, Third),
DarkAvenger(Human, Fighter, Third),
Rogue(Human, Fighter, Second),
TreasureHunter(Human, Fighter, Third),
Hawkeye(Human, Fighter, Third),
HumanMystic(Human, Mystic, First),
HumanWizard(Human, Mystic, Second),
Sorceror(Human, Mystic, Third),
Necromancer(Human, Mystic, Third),
Warlock(Human, Mystic, Third),
Cleric(Human, Priest, Second),
Bishop(Human, Priest, Third),
Prophet(Human, Priest, Third),

ElvenFighter(Elf, Fighter, First),
ElvenKnight(Elf, Fighter, Second),
TempleKnight(Elf, Fighter, Third),
Swordsinger(Elf, Fighter, Third),
ElvenScout(Elf, Fighter, Second),
Plainswalker(Elf, Fighter, Third),
SilverRanger(Elf, Fighter, Third),
ElvenMystic(Elf, Mystic, First),
ElvenWizard(Elf, Mystic, Second),
Spellsinger(Elf, Mystic, Third),
ElementalSummoner(Elf, Mystic, Third),
ElvenOracle(Elf, Priest, Second),
ElvenElder(Elf, Priest, Third),

DarkElvenFighter(DarkElf, Fighter, First),
PalusKnight(DarkElf, Fighter, Second),
ShillienKnight(DarkElf, Fighter, Third),
Bladedancer(DarkElf, Fighter, Third),
Assassin(DarkElf, Fighter, Second),
AbyssWalker(DarkElf, Fighter, Third),
PhantomRanger(DarkElf, Fighter, Third),
DarkElvenMystic(DarkElf, Mystic, First),
DarkElvenWizard(DarkElf, Mystic, Second),
Spellhowler(DarkElf, Mystic, Third),
PhantomSummoner(DarkElf, Mystic, Third),
ShillienOracle(DarkElf, Priest, Second),
ShillienElder(DarkElf, Priest, Third),

OrcFighter(Orc, Fighter, First),
OrcRaider(Orc, Fighter, Second),
Destroyer(Orc, Fighter, Third),
OrcMonk(Orc, Fighter, Second),
Tyrant(Orc, Fighter, Third),
OrcMystic(Orc, Mystic, First),
OrcShaman(Orc, Mystic, Second),
Overlord(Orc, Mystic, Third),
Warcryer(Orc, Mystic, Third),

DwarvenFighter(Dwarf, Fighter, First),
DwarvenScavenger(Dwarf, Fighter, Second),
BountyHunter(Dwarf, Fighter, Third),
DwarvenArtisan(Dwarf, Fighter, Second),
Warsmith(Dwarf, Fighter, Third),

dummyEntry1(null, null, null),
dummyEntry2(null, null, null),
dummyEntry3(null, null, null),
dummyEntry4(null, null, null),
dummyEntry5(null, null, null),
dummyEntry6(null, null, null),
dummyEntry7(null, null, null),
dummyEntry8(null, null, null),
dummyEntry9(null, null, null),
dummyEntry10(null, null, null),
dummyEntry11(null, null, null),
dummyEntry12(null, null, null),
dummyEntry13(null, null, null),
dummyEntry14(null, null, null),
dummyEntry15(null, null, null),
dummyEntry16(null, null, null),
dummyEntry17(null, null, null),
dummyEntry18(null, null, null),
dummyEntry19(null, null, null),
dummyEntry20(null, null, null),
dummyEntry21(null, null, null),
dummyEntry22(null, null, null),
dummyEntry23(null, null, null),
dummyEntry24(null, null, null),
dummyEntry25(null, null, null),
dummyEntry26(null, null, null),
dummyEntry27(null, null, null),
dummyEntry28(null, null, null),
dummyEntry29(null, null, null),
dummyEntry30(null, null, null),
/*
* (3rd classes)
*/
duelist(Human, Fighter, Fourth),
dreadnought(Human, Fighter, Fourth),
phoenixKnight(Human, Fighter, Fourth),
hellKnight(Human, Fighter, Fourth),
sagittarius(Human, Fighter, Fourth),
adventurer(Human, Fighter, Fourth),
archmage(Human, Mystic, Fourth),
soultaker(Human, Mystic, Fourth),
arcanaLord(Human, Mystic, Fourth),
cardinal(Human, Priest, Fourth),
hierophant(Human, Priest, Fourth),

evaTemplar(Elf, Fighter, Fourth),
swordMuse(Elf, Fighter, Fourth),
windRider(Elf, Fighter, Fourth),
moonlightSentinel(Elf, Fighter, Fourth),
mysticMuse(Elf, Mystic, Fourth),
elementalMaster(Elf, Mystic, Fourth),
evaSaint(Elf, Priest, Fourth),

shillienTemplar(DarkElf, Fighter, Fourth),
spectralDancer(DarkElf, Fighter, Fourth),
ghostHunter(DarkElf, Fighter, Fourth),
ghostSentinel(DarkElf, Fighter, Fourth),
stormScreamer(DarkElf, Mystic, Fourth),
spectralMaster(DarkElf, Mystic, Fourth),
shillienSaint(DarkElf, Priest, Fourth),

titan(Orc, Fighter, Fourth),
grandKhavatari(Orc, Fighter, Fourth),
dominator(Orc, Mystic, Fourth),
doomcryer(Orc, Mystic, Fourth),

fortuneSeeker(Dwarf, Fighter, Fourth),
maestro(Dwarf, Fighter, Fourth),

dummyEntry31(null, null, null),
dummyEntry32(null, null, null),
dummyEntry33(null, null, null),
dummyEntry34(null, null, null),

maleSoldier(Kamael, Fighter, First),
femaleSoldier(Kamael, Fighter, First),
trooper(Kamael, Fighter, Second),
warder(Kamael, Fighter, Second),
berserker(Kamael, Fighter, Third),
maleSoulbreaker(Kamael, Fighter, Third),
femaleSoulbreaker(Kamael, Fighter, Third),
arbalester(Kamael, Fighter, Third),
doombringer(Kamael, Fighter, Fourth),
maleSoulhound(Kamael, Fighter, Fourth),
femaleSoulhound(Kamael, Fighter, Fourth),
trickster(Kamael, Fighter, Fourth),
inspector(Kamael, Fighter, Third),
judicator(Kamael, Fighter, Fourth);

private Race _race;
private ClassLevel _level;
private ClassType _type;

private static final Set mainSubclassSet;
private static final Set neverSubclassed = EnumSet.of(Overlord, Warsmith);

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

private static final EnumMap> subclassSetMap = new EnumMap<>(PlayerClass.class);

static
{
Set subclasses = getSet(null, Third);
subclasses.removeAll(neverSubclassed);

mainSubclassSet = subclasses;

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

subclassSetMap.put(TreasureHunter, subclasseSet2);
subclassSetMap.put(AbyssWalker, subclasseSet2);
subclassSetMap.put(Plainswalker, subclasseSet2);

subclassSetMap.put(Hawkeye, subclasseSet3);
subclassSetMap.put(SilverRanger, subclasseSet3);
subclassSetMap.put(PhantomRanger, subclasseSet3);

subclassSetMap.put(Warlock, subclasseSet4);
subclassSetMap.put(ElementalSummoner, subclasseSet4);
subclassSetMap.put(PhantomSummoner, subclasseSet4);

subclassSetMap.put(Sorceror, subclasseSet5);
subclassSetMap.put(Spellsinger, subclasseSet5);
subclassSetMap.put(Spellhowler, subclasseSet5);
}

PlayerClass(Race pRace, ClassType pType, ClassLevel pLevel)
{
_race = pRace;
_level = pLevel;
_type = pType;
}

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

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

subclasses.remove(this);

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

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

Set unavailableClasses = subclassSetMap.get(this);

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

}
else
{
subclasses = getSet(Kamael, Third);
subclasses.remove(this);
// Check sex, male subclasses female and vice versa
// If server owner set MaxSubclass > 3 some kamael's cannot take 4 sub
// So, in that situation we must skip sex check
if (Config.MAX_SUBCLASS <= 3)
{
if (player.getAppearance().getSex())
{
subclasses.removeAll(EnumSet.of(femaleSoulbreaker));
}
else
{
subclasses.removeAll(EnumSet.of(maleSoulbreaker));
}
}
if (!player.getSubClasses().containsKey(2) || (player.getSubClasses().get(2).getLevel() < 75))
{
subclasses.removeAll(EnumSet.of(inspector));
}
}
}
return subclasses;
}

public static final EnumSet getSet(Race race, ClassLevel level)
{
EnumSet allOf = EnumSet.noneOf(PlayerClass.class);

for (PlayerClass playerClass : EnumSet.allOf(PlayerClass.class))
{
if ((race == null) || playerClass.isOfRace(race))
{
if ((level == null) || playerClass.isOfLevel(level))
{
allOf.add(playerClass);
}
}
}
return allOf;
}

public final boolean isOfRace(Race pRace)
{
return _race == pRace;
}

public final boolean isOfType(ClassType pType)
{
return _type == pType;
}

public final boolean isOfLevel(ClassLevel pLevel)
{
return _level == pLevel;
}

public final ClassLevel getLevel()
{
return _level;
}
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

/**

* Character Sub-Class Definition <BR>

* Used to store key information about a character's sub-class.

* @author Tempy

*/

public final class SubClass

{

private static final byte _maxLevel = Config.MAX_SUBCLASS_LEVEL < ExperienceTable.getInstance().getMaxLevel() ? Config.MAX_SUBCLASS_LEVEL : (byte) (ExperienceTable.getInstance().getMaxLevel() - 1);

 

private PlayerClass _class;

private long _exp = ExperienceTable.getInstance().getExpForLevel(Config.BASE_SUBCLASS_LEVEL);

private int _sp = 0;

private byte _level = Config.BASE_SUBCLASS_LEVEL;

private int _classIndex = 1;

 

public SubClass(int classId, long exp, int sp, byte level, int classIndex)

{

_class = PlayerClass.values()[classId];

_exp = exp;

_sp = sp;

_level = level;

_classIndex = classIndex;

}

 

public SubClass(int classId, int classIndex)

{

// Used for defining a sub class using default values for XP, SP and player level.

_class = PlayerClass.values()[classId];

_classIndex = classIndex;

}

 

public SubClass()

{

// Used for specifying ALL attributes of a sub class directly,

// using the preset default values.

}

 

public PlayerClass getClassDefinition()

{

return _class;

}

 

public int getClassId()

{

return _class.ordinal();

}

 

public long getExp()

{

return _exp;

}

 

public int getSp()

{

return _sp;

}

 

public byte getLevel()

{

return _level;

}

 

/**

* First Sub-Class is index 1.

* @return int _classIndex

*/

public int getClassIndex()

{

return _classIndex;

}

 

public void setClassId(int classId)

{

_class = PlayerClass.values()[classId];

}

 

public void setExp(long expValue)

{

if (expValue > (ExperienceTable.getInstance().getExpForLevel(_maxLevel + 1) - 1))

{

expValue = ExperienceTable.getInstance().getExpForLevel(_maxLevel + 1) - 1;

}

 

_exp = expValue;

}

 

public void setSp(int spValue)

{

_sp = spValue;

}

 

public void setClassIndex(int classIndex)

{

_classIndex = classIndex;

}

 

public void setLevel(byte levelValue)

{

if (levelValue > _maxLevel)

{

levelValue = _maxLevel;

}

else if (levelValue < Config.BASE_SUBCLASS_LEVEL)

{

levelValue = Config.BASE_SUBCLASS_LEVEL;

}

 

_level = levelValue;

}

 

public void incLevel()

{

if (getLevel() == _maxLevel)

{

return;

}

 

_level++;

setExp(ExperienceTable.getInstance().getExpForLevel(getLevel()));

}

 

public void decLevel()

{

if (getLevel() == Config.BASE_SUBCLASS_LEVEL)

{

return;

}

 

_level--;

setExp(ExperienceTable.getInstance().getExpForLevel(getLevel()));

}

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Согласен, тоже ничего не понял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

суть моих мисель обьясню на примери

паладин он не моет брать саб танков овера крафтера и камов

суть вопроса как снять ети огранечения

 

и если моно что ю табличка бистрава запуска не минялася

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если я тебя правильно понял, то тебе нужно все сабы в 1 NPC без ограничений.

Вот патч.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...