adam1 23 Опубликовано 9 января, 2017 (изменено) Привет! подскажите плз как добавить проверку на определенный класс в пушку.хочу сделать дуал дагеры которые смогут одеть только определеные класы! дагершиков Хроники InterludeСборка aCis 360+Ps нашол только рабочую проверку на лвл персонажа (<player level="80" />)где бы на клас нарыть.. Изменено 9 января, 2017 пользователем adam1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
casdepri 8 Опубликовано 9 января, 2017 if (activeChar.getTemplate().getRace().toString() != "твой класс"){ что-то типа такого Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 9 января, 2017 Посмотри на хрониках выше, где пухи камаелей может носить только камаели. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 10 января, 2017 if (activeChar.getTemplate().getRace().toString() != "твой класс"){ что-то типа такого и что это?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
casdepri 8 Опубликовано 10 января, 2017 Ну в моем случае это проверка на рассу, если оне не че-то там, то выполняется дальше по условию и т.д. и что это?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 11 января, 2017 Ну в моем случае это проверка на рассу, если оне не че-то там, то выполняется дальше по условию и т.д. Да, но нужен класс. т.е. проверка по определенному иду класса. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 13 января, 2017 и что это?)это называется говнокод Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 13 января, 2017 (изменено) //del Изменено 13 января, 2017 пользователем Seidhe Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 13 января, 2017 if(player.getClassId().getId() == ид класса даггера) { .... разрешить одеть, или че Вам там нужно; ... } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 13 января, 2017 (изменено) и что, будешь для таких вещей для каждой расписывать проверки? тут кондишн надо вводить новый, если еще нет такого. типа такого к примеру package l2p.gameserver.stats.conditions; import org.apache.commons.lang3.ArrayUtils; import l2p.gameserver.model.Player; import l2p.gameserver.stats.Env; public class ConditionPlayerClassId extends Condition { private final int[] _ids; public ConditionPlayerClassId(int... ids) { _ids = ids; } @ Override protected boolean testImpl(Env env) { return env.character.isPlayer() && ArrayUtils.contains(_ids, ((Player) env.character).getActiveClassId()); } } зарегать его как зареганы остальные кондишны и потом юзать в описаниях вещей, к примеру так <!-- Greater Abelius Cloak (20-day) [Sigel Knight] / Хороший Плащ Авелиуса - 20 дн. [Рыцарь Сигеля] --> <armor id="40243" name="Greater Abelius Cloak (20-day)" add_name="Sigel Knight"> <!-- Плащ того, кто унаследовал силу Древнего Гиганта Авелиуса. При надевании Маг. Защ. +40, СИЛ+1, ИНТ+1, ВЫН+1, ДУХ+1. Можно использовать в течение 20 дней. --> <set name="icon" value="icon.vesper_cloack_i00" /> <set name="type" value="NONE" /> <set name="ex_type" value="CLOAK" /> <set name="crystal_type" value="R" /> <set name="crystal_count" value="0" /> <set name="crystallizable" value="false" /> <set name="weight" value="220" /> <set name="price" value="0" /> <set name="durability" value="28800" /> <set name="temporal" value="true" /> <set name="keep_type" value="1" /> <set name="enchantable" value="false" /> <set name="attributable" value="false" /> <set name="augmentable" value="false" /> <set name="destroyable" value="false" /> <set name="dropable" value="false" /> <set name="sellable" value="false" /> <set name="tradeable" value="false" /> <set name="commissionable" value="false" /> <cond msgId="113" addName="1"> <player classId="148,149,150,151" /> </cond> <skills> <skill id="16426" level="1" /> <!-- Greater Abelius Cloak (20-day) / Плащ Авелиуса - 20 дн. --> </skills> <equip> <slot id="BACK" /> </equip> <for> <add stat="pDef" order="0x10" value="50" /> <add stat="mDef" order="0x10" value="40" /> <enchant stat="pDef" order="0x0C" value="0" /> <enchant stat="mDef" order="0x0C" value="0" /> <enchant stat="maxHp" order="0x80" value="0" /> </for> </armor> P.S. пример для овера, но для акиса можно по аналогии написать без проблем. Изменено 13 января, 2017 пользователем Gaikotsu 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 13 января, 2017 и что, будешь для таких вещей для каждой расписывать проверки? тут кондишн надо вводить новый, если еще нет такого. типа такого к примеру package l2p.gameserver.stats.conditions; import org.apache.commons.lang3.ArrayUtils; import l2p.gameserver.model.Player; import l2p.gameserver.stats.Env; public class ConditionPlayerClassId extends Condition { private final int[] _ids; public ConditionPlayerClassId(int... ids) { _ids = ids; } @ Override protected boolean testImpl(Env env) { return env.character.isPlayer() && ArrayUtils.contains(_ids, ((Player) env.character).getActiveClassId()); } } зарегать его как зареганы остальные кондишны и потом юзать в описаниях вещей, к примеру так <!-- Greater Abelius Cloak (20-day) [Sigel Knight] / Хороший Плащ Авелиуса - 20 дн. [Рыцарь Сигеля] --> <armor id="40243" name="Greater Abelius Cloak (20-day)" add_name="Sigel Knight"> <!-- Плащ того, кто унаследовал силу Древнего Гиганта Авелиуса. При надевании Маг. Защ. +40, СИЛ+1, ИНТ+1, ВЫН+1, ДУХ+1. Можно использовать в течение 20 дней. --> <set name="icon" value="icon.vesper_cloack_i00" /> <set name="type" value="NONE" /> <set name="ex_type" value="CLOAK" /> <set name="crystal_type" value="R" /> <set name="crystal_count" value="0" /> <set name="crystallizable" value="false" /> <set name="weight" value="220" /> <set name="price" value="0" /> <set name="durability" value="28800" /> <set name="temporal" value="true" /> <set name="keep_type" value="1" /> <set name="enchantable" value="false" /> <set name="attributable" value="false" /> <set name="augmentable" value="false" /> <set name="destroyable" value="false" /> <set name="dropable" value="false" /> <set name="sellable" value="false" /> <set name="tradeable" value="false" /> <set name="commissionable" value="false" /> <cond msgId="113" addName="1"> <player classId="148,149,150,151" /> </cond> <skills> <skill id="16426" level="1" /> <!-- Greater Abelius Cloak (20-day) / Плащ Авелиуса - 20 дн. --> </skills> <equip> <slot id="BACK" /> </equip> <for> <add stat="pDef" order="0x10" value="50" /> <add stat="mDef" order="0x10" value="40" /> <enchant stat="pDef" order="0x0C" value="0" /> <enchant stat="mDef" order="0x0C" value="0" /> <enchant stat="maxHp" order="0x80" value="0" /> </for> </armor> P.S. пример для овера, но для акиса можно по аналогии написать без проблем. В таком случае - неверно понял суть вопроса. Точнее - сбил ответ о проверке на расу. Здесь в любом случае пришлось бы регать новый кондишн. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты