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

Проверка на Класс

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

Привет! подскажите плз как добавить проверку на определенный класс    в пушку.
хочу сделать дуал дагеры которые смогут одеть только определеные класы! дагершиков 

Хроники Interlude
Сборка aCis 360+

Ps нашол только рабочую проверку на лвл персонажа (<player level="80" />)
где бы на клас нарыть..

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

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


Ссылка на сообщение
Поделиться на другие сайты
if (activeChar.getTemplate().getRace().toString() != "твой класс"){ 

что-то типа такого

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


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

Посмотри на хрониках выше, где пухи камаелей может носить только камаели. 

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


Ссылка на сообщение
Поделиться на другие сайты
if (activeChar.getTemplate().getRace().toString() != "твой класс"){ 

что-то типа такого

 

и что это?)

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


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

Ну в моем случае это проверка на рассу, если оне не че-то там, то выполняется дальше по условию и т.д.

 

и что это?)

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


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

Ну в моем случае это проверка на рассу, если оне не че-то там, то выполняется дальше по условию и т.д.

Да, но нужен класс. т.е. проверка по определенному иду класса.

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


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

if(player.getClassId().getId() == ид класса даггера) {

.... разрешить одеть, или че Вам там нужно;

...

}

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


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

и что, будешь для таких вещей для каждой расписывать проверки?

 

тут кондишн надо вводить новый, если еще нет такого.

 

типа такого к примеру

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. пример для овера, но для акиса можно по аналогии написать без проблем. Изменено пользователем Gaikotsu
  • Upvote 1

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


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

и что, будешь для таких вещей для каждой расписывать проверки?

 

тут кондишн надо вводить новый, если еще нет такого.

 

типа такого к примеру

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. пример для овера, но для акиса можно по аналогии написать без проблем.

 

В таком случае - неверно понял суть вопроса. Точнее - сбил ответ о проверке на расу. Здесь в любом случае пришлось бы регать новый кондишн.

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


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

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

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

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

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

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

Войти

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

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

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

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

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