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

Запрет Итема На Ивенте

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

Ребята подскажите как запретить юзать разные банки на ивенте (без дополнительных конфигов) или кто уже делал такое, можете показать пример

 

вот создал перечень итемов

private static int[] _itemIds = { 725,726,727,728,5592,13750,10178,10179 };

 

теперь как их запретить в - UseItem

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


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

ну например добавить игроку хранилище запрещенных предметов и добавлять туда нужные ид например при реге на эвент, а при окончании эвента очищать.

ну и затем проверять в UseItem например так

	if (activeChar.isForbiddenItem(itemId))
	{
		activeChar.sendPacket(new SystemMessage(SystemMsg.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addItemName(itemId));
		return;
	}

 

другой вариант - ввести для игроков какой-то флаг - в котором будет выставляться признак того, что игрок участвует в эвенте.

а для вещей ввести параметр - запрещающий их использование на эвенте

и опять же в UseItem проверять типа так

	if (activeChar.isInPvPEventMode() && !item.getTemplate().isAllowedOnPvPEvent())
	{
		activeChar.sendPacket(new SystemMessage(SystemMsg.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addItemName(itemId));
		return;
	}

 

P.S. аналогично можно запрещать еще скажем и использование определенных скиллов на эвенте.

  • Upvote 1

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


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

Ясно, спасибо за подсказку, постараюсь реализовать +

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

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


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

Если итемы имеют свой скилл можно напрямую в ДП запретить

 

<not>

<player event="true">

</not>

 

А сделав через <cond msgId=""> припаять сообщение на попытку использования )

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


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

Можно взять механизм запрета итемов, скилов и т.д с олимпиады.

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


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

Если итемы имеют свой скилл можно напрямую в ДП запретить

 

<not>

<player event="true">

</not>

 

А сделав через <cond msgId=""> припаять сообщение на попытку использования )

 

этот параметр ядро не поддержывает в скилах (( сделал так

 

<cond msgId="1508" addName="1">
<not>
<player instance_zone="607" />
<player instance_zone="608" />
<player instance_zone="609" />
<player instance_zone="610" />
</not>
</cond>

 

ошибок не даёт но почемуто не работает тоже

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

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


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

Можно взять механизм запрета итемов, скилов и т.д с олимпиады.

это ты про проверку на то что игрок находится в зоне определенного типа?

можно и так. но мне лично такой способ никогда не нравился - слишком громоздко и нерационально.

 

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

	<set name="allowed_on_olympiad" value="false" />
	<set name="allowed_on_pvp_event" value="false" />

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


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

 

 

этот параметр ядро не поддержывает в скилах (( сделал так

 

<cond msgId="1508" addName="1">
<not>
<player instance_zone="607" />
<player instance_zone="608" />
<player instance_zone="609" />
<player instance_zone="610" />
</not>
</cond>

 

ошибок не даёт но почемуто не работает тоже

скорее уж так:

<cond msgId="1508" addName="1">
<not>
	<or>
		<player instance_zone="607" />
		<player instance_zone="608" />
		<player instance_zone="609" />
		<player instance_zone="610" />
	</or>
</not>
</cond>

З.Ы. не оптимальна такая проверка - каждый раз при юзе скилла/итема такое проверять - не очень.

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


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

Спасибо, так работает - понимаю столько проверок маразм, но без вмешательство в ядро по другому не как не получилось ))

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


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

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

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

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

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

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

Войти

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

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

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

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

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