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

Конфиг баланса классов.

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

Я думаю многие видели конфиг баланса дамага оружия на броню.

(DaggerVsHeavy = 1.00

DaggerVsLight = 1.00
DaggerVsRobe = 1.00) и тд..

Так вот есть проблема. Я его хочу перетащить в L2JServer который с репозитория команды.

Но при добавлении ругается на :

if ((attacker.isPlayer() && (target instanceof L2PcInstance) && (weapon != null) && (weapon.getItemType() == WeaponType.

BIGSWORD) && (skill != null)))
{
L2Armor armor = ((L2PcInstance) target).getActiveChestArmorItem();
if (armor != null)
{
if (((L2PcInstance) target).isWearingHeavyArmor())
{
damage *= Config.BIGSWORD_VS_HEAVY;
}
if (((L2PcInstance) target).isWearingLightArmor())
{
damage *= Config.BIGSWORD_VS_LIGHT;
}
if (((L2PcInstance) target).isWearingMagicArmor())
{
damage *= Config.BIGSWORD_VS_ROBE;
}
}
}

 

 

Посмотрел что да как и сделал выводы что в сборке двурук или двуручная дубина проверяются так:

<cond msgId="113" addName="1">
      <and>
            <using kind="SWORD,BLUNT" />
            <using slot="lrhand" />
      </and>
</cond>
Это взято из скила.
Собственно вопрос: Как в код добавить проверку на то что одет двурук?
Например:
if ((attacker.isPlayer() && (target instanceof L2PcInstance) && (weapon != null) && (weapon.getItemType() == WeaponType.BIGSWORD) && (skill != null) && (пушка одета в виде lrhand)))
{
L2Armor armor = ((L2PcInstance) target).getActiveChestArmorItem();
if (armor != null)
{
if (((L2PcInstance) target).isWearingHeavyArmor())
{
damage *= Config.BIGSWORD_VS_HEAVY;
}
if (((L2PcInstance) target).isWearingLightArmor())
{
damage *= Config.BIGSWORD_VS_LIGHT;
}
if (((L2PcInstance) target).isWearingMagicArmor())
{
damage *= Config.BIGSWORD_VS_ROBE;
}
}
}

Нужен конкретный код.
Хелп!)
Изменено пользователем akcent

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


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

Посмотреть метод WeaponType как у тебя в нем прописано каждое оружие

  • Upvote 1

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


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

Посмотреть метод WeaponType как у тебя в нем прописано каждое оружие

Все что есть:

SWORD(TraitType.SWORD),

BLUNT(TraitType.BLUNT),

DAGGER(TraitType.DAGGER),

BOW(TraitType.BOW),

POLE(TraitType.POLE),

NONE(TraitType.NONE),

DUAL(TraitType.DUAL),

ETC(TraitType.ETC),

FIST(TraitType.FIST),

DUALFIST(TraitType.DUALFIST),

FISHINGROD(TraitType.NONE),

RAPIER(TraitType.RAPIER),

ANCIENTSWORD(TraitType.ANCIENTSWORD),

CROSSBOW(TraitType.CROSSBOW),

FLAG(TraitType.NONE),

OWNTHING(TraitType.NONE),

DUALDAGGER(TraitType.DUALDAGGER);

 

 

И да кстати, смотрел с data/stat/items двуруки все обозначены простым SWORD ну и указано что он lrhand

<set name="weapon_type" val="SWORD" />

<set name="bodypart" val="lrhand" />

 

 

ну и как говорил так же и проверка в скилах идет на двурук

<cond msgId="113" addName="1">
      <and>
            <using kind="SWORD,BLUNT" />
            <using slot="lrhand" />
      </and>
</cond>

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


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

 

Все что есть:

SWORD(TraitType.SWORD),

BLUNT(TraitType.BLUNT),

DAGGER(TraitType.DAGGER),

BOW(TraitType.BOW),

POLE(TraitType.POLE),

NONE(TraitType.NONE),

DUAL(TraitType.DUAL),

ETC(TraitType.ETC),

FIST(TraitType.FIST),

DUALFIST(TraitType.DUALFIST),

FISHINGROD(TraitType.NONE),

RAPIER(TraitType.RAPIER),

ANCIENTSWORD(TraitType.ANCIENTSWORD),

CROSSBOW(TraitType.CROSSBOW),

FLAG(TraitType.NONE),

OWNTHING(TraitType.NONE),

DUALDAGGER(TraitType.DUALDAGGER);

 

 

И да кстати, смотрел с data/stat/items двуруки все обозначены простым SWORD ну и указано что он lrhand

<set name="weapon_type" val="SWORD" />

<set name="bodypart" val="lrhand" />

 

 

ну и как говорил так же и проверка в скилах идет на двурук

<cond msgId="113" addName="1">
      <and>
            <using kind="SWORD,BLUNT" />
            <using slot="lrhand" />
      </and>
</cond>

 

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

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


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

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

Не не, тут сделано все так что просто проверяется меч двуручный или нет (bodypart=lrhand), а тип остается SWORD . Реализовано так. Вед работает и двурук распознается в игре и скилы пашет с ним. Просто тут проверка стоит на этот bodypart=lrhand , так вот я не могу найти где она написана под скилы например и как сделать мне под баланс соответсвенно.

И если дописать как ты сказал, что каждому двурук придется в xml item дописывать тип BIGSWORD И BIGBLUNT , ведь они сейчас работают на SWORD и BLUNT , ну и скилы соответственно для двурук тоже переписывать в датапаке)

Изменено пользователем akcent

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


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

"=" это знак присваивания.

из того что ты выше написал я исхожу что проще сделать будет так if (TraitType.SWORD == lrhend)) { твой код }

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

Изменено пользователем Solution
  • Upvote 1

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


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

"=" это знак присваивания.

из того что ты выше написал я исхожу что проще сделать будет так if (bodypart(как мне показалось из вышеупомянутого тобой это меч) ==(если он) lrhand(двуручный)) { твой код }

"=" это знак присваивания. Нет я имел ввиду он так обозначен в item в датапаке.

Именно так я написал в первом сообщении, что хочу сделать проверку что если меч двурук , как ты написал ( if (bodypart(как мне показалось из вышеупомянутого тобой это меч) ==(если он) lrhand(двуручный)) { твой код } ) , но я хз как, вот и спрашиваю конкретно что написать) как происходит проверка для скила в ядре)

Тут скорее нужна помощь пользователей команды L2JSERVER ) кто знает где эта проверка лежит? или как мне сделать правильно?

Изменено пользователем akcent

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


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

"=" это знак присваивания. Нет я имел ввиду он так обозначен в item в датапаке.

Именно так я написал в первом сообщении, что хочу сделать проверку что если меч двурук , как ты написал ( if (bodypart(как мне показалось из вышеупомянутого тобой это меч) ==(если он) lrhand(двуручный)) { твой код } ) , но я хз как, вот и спрашиваю конкретно что написать) как происходит проверка для скила в ядре)

Тут скорее нужна помощь пользователей команды L2JSERVER ) кто знает где эта проверка лежит? или как мне сделать правильно?

поправил то сообщение попробуй сделать так

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


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

поправил то сообщение попробуй сделать так

не он так не понимает что такое lrhand

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


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

не он так не понимает что такое lrhand

Нашел вот такое: L2Item.SLOT_LR_HAND

А с чем сравнивать хз. Подскажите)

TraitType.BLUNT == L2Item.SLOT_LR_HAND не подходит)

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


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

Нашел вот такое: L2Item.SLOT_LR_HAND

А с чем сравнивать хз. Подскажите)

TraitType.BLUNT == L2Item.SLOT_LR_HAND не подходит)

weapon.getBodyPart() == L2Item.SLOT_LR_HAND

или

weapon.getItem().getBodyPart() == L2Item.SLOT_LR_HAND

  • Upvote 1

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


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

weapon.getBodyPart() == L2Item.SLOT_LR_HAND

или

weapon.getItem().getBodyPart() == L2Item.SLOT_LR_HAND

Вот красавчик! weapon.getBodyPart() == L2Item.SLOT_LR_HAND помогло и работает) Спасибо!

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


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

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

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

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

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

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

Войти

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

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

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

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

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