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

Анимация при эквипе

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

Хочу сделать, чтоб при одевании шапки срабатывала анимации. Например одели шапку и сработала анимация берсерка(каст бп). Где и как это сделать? В редактировании клиент получилось только вскрыть анимации(и то нифига не понятно ибо не по названию расположены они) и сделать при точке другое свечение(хиро, валакаса плюха и т.д.). 
Знаю что можно через ядро делать абнормал эффект. Получилось сделать свечение невита при одевании пуза. Но как я понимаю, анимация и абнормалы это вообще разные вещи? Или нет?
Помогите пожалуйста. Инфа чисто для себя, ну очень уж интересное занятие это. Не собираюсь заниматься какой-либо продажей и т.д. и в конкуренты набиваться кому-то тоже не хочу :)

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


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

Хочу сделать, чтоб при одевании шапки срабатывала анимации. Например одели шапку и сработала анимация берсерка(каст бп). Где и как это сделать? В редактировании клиент получилось только вскрыть анимации(и то нифига не понятно ибо не по названию расположены они) и сделать при точке другое свечение(хиро, валакаса плюха и т.д.). 

Знаю что можно через ядро делать абнормал эффект. Получилось сделать свечение невита при одевании пуза. Но как я понимаю, анимация и абнормалы это вообще разные вещи? Или нет?

Помогите пожалуйста. Инфа чисто для себя, ну очень уж интересное занятие это. Не собираюсь заниматься какой-либо продажей и т.д. и в конкуренты набиваться кому-то тоже не хочу :)

проверка  что одевается если  правда применить эффект скила потом одеть ту вещь

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


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

Если сборка на основе лоста/феникса, то можно задействовать OnEquipListener, при одевании проверяем ид итема на нужный нам и рассылаем пакет MagicSkillUse от игрока с нужным нам скиллом. 

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


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

Ап
Ребята конечно логичные) Но где писать условие? Это ядро или на уровне клиента можно?
Как рассылать пакеты? 

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


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

Ап

Ребята конечно логичные) Но где писать условие? Это ядро или на уровне клиента можно?

Как рассылать пакеты? 

ядро править 

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


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

В каком направлении копать? 

функция де одевается итем или пакет

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


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

функция де одевается итем или пакет

Спасиб, попробуем)

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


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

Так и не услышал названия сборки, поэтому кину пример для лоста:

package services;

import org.mmocore.gameserver.listener.inventory.OnEquipListener;
import org.mmocore.gameserver.model.Playable;
import org.mmocore.gameserver.model.items.ItemInstance;
import org.mmocore.gameserver.network.l2.s2c.MagicSkillUse;

public class EffectOnEquip implements OnEquipListener {

	@Override
	public void onEquip(int slot, ItemInstance item, Playable actor) {
		// проверяем ид итема
		if(item.getItemId() == 11111)
		{
			actor.broadcastPacket(new MagicSkillUse(actor, ид_скилла, лвл_скилла, 0, 0));
		}
	}

	@Override
	public void onUnequip(int slot, ItemInstance item, Playable actor) {
		// можно добавить действия при снятии
	}
}

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


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

Ах, сборка l2j-dev

Тогда вот этот код должен работать

package services;
 
import org.mmocore.gameserver.listener.actor.player.OnPlayerEnterListener;
import org.mmocore.gameserver.listener.inventory.OnEquipListener;
import org.mmocore.gameserver.listener.script.OnInitScriptListener;
import org.mmocore.gameserver.model.Playable;
import org.mmocore.gameserver.model.Player;
import org.mmocore.gameserver.model.actor.listener.PlayerListenerList;
import org.mmocore.gameserver.model.items.ItemInstance;
import org.mmocore.gameserver.network.l2.s2c.MagicSkillUse;
 
public class EffectOnEquip implements OnInitScriptListener {

	private static final OnEquipListener eqListenerImpl = new OnEquipListenerImpl();
	private static final OnPlayerEnterListener enterListenerImpl = new OnPlayerEnterListenerImpl();

	@Override
	public void onInit() {
		PlayerListenerList.addGlobal(enterListenerImpl);
	}
	
	private static final class OnPlayerEnterListenerImpl implements OnPlayerEnterListener
	{
		@Override
		public void onPlayerEnter(Player player) {
			player.getInventory().addListener(eqListenerImpl);
		}		
	}
	
	private static final class OnEquipListenerImpl implements OnEquipListener
	{
		@Override
		public void onEquip(int slot, ItemInstance item, Playable actor) {
			if(item.getItemId() == 11111)
				actor.broadcastPacket(new MagicSkillUse(actor, ид_скилла, лвл_скилла, 0, 0));
		}
	 
		@Override
		public void onUnequip(int slot, ItemInstance item, Playable actor) {}
	}
}

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


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

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

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

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

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

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

Войти

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

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

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

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

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