Показать сообщение отдельно
Непрочитано 27.01.2013, 23:55   #3
Аватар для Archiel
Пользователь

Автор темы (Топик Стартер) Re: Несколько видов стрел для одного лука.

Цитата:
Сообщение от Respect Посмотреть сообщение
Также пытаюсь это сделать... только на уровне клиента
вот что нарыл:
Engine.u



В клиенте, в дев моде (без серва), стрелы меняются в зависимости от лука.
Если заменить модель дропа стрел (etcitemgrp.dat), стрелы меняются.

К чему виду, грейд "привязан" к ИД предмета. Где оно привязано - х*й его знает =(
В клиенте привязки нет. Исходный код привязки вот, Inventory.java:
Код:
public L2ItemInstance findArrowForBow(L2Item bow)
	{
		if (bow == null)
			return null;

		L2ItemInstance arrow = null;

		switch (bow.getItemGradeSPlus())
		{
			default: 
			case L2Item.CRYSTAL_NONE:
				arrow = getItemByItemId(17);
				break; // Wooden arrow
			case L2Item.CRYSTAL_D:
				arrow = (arrow = getItemByItemId(1341)) != null ? arrow : getItemByItemId(22067);
				break; // Bone arrow
			case L2Item.CRYSTAL_C:
				arrow = (arrow = getItemByItemId(1342)) != null ? arrow : getItemByItemId(22068);
				break; // Fine steel arrow
			case L2Item.CRYSTAL_B:
				arrow = (arrow = getItemByItemId(1343)) != null ? arrow : getItemByItemId(22069);
				break; // Silver arrow
			case L2Item.CRYSTAL_A:
				arrow = (arrow = getItemByItemId(1344)) != null ? arrow : getItemByItemId(22070);
				break; // Mithril arrow
			case L2Item.CRYSTAL_S:
				arrow = (arrow = getItemByItemId(1345)) != null ? arrow : getItemByItemId(22071);
				break; // Shining arrow
		}

		// Get the L2ItemInstance corresponding to the item identifier and return it
		return arrow;
	}
Этот кусок я и заменил. Я добился того, чтобы стрелы можно было использовать разные. Проблема в том, что стрелу нельзя "переодеть" даблкликом. Думаю, что я её просто запихну в другой слот, свободный. Тогда можно будет переодевать. Но это уже завтра.
Archiel вне форума Отправить сообщение для Archiel с помощью ICQ Ответить с цитированием