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

Как добавить анимацию к предмету.?

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

Всем привет! Сделал новую цп банку но вот юзается она без анимаций... Вопрос как добавить анимацию от CP potion к моей банке..???

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


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

Всем привет! Сделал новую цп банку но вот юзается она без анимаций... Вопрос как добавить анимацию от CP potion к моей банке..???

Зачем тебе новая цп банка ??? что со старой было не так?

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


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

нужна новая вип банка которая будет востонавливать больше цп

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


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

Задействуй тот же скил, что и у СP/GCP, только создай 3 лвл, ну и в клиент добавь 3 лвл скилла, индетично имеющимся

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


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

Задействуй тот же скил, что и у СP/GCP, только создай 3 лвл, ну и в клиент добавь 3 лвл скилла, индетично имеющимся

это понятно... как связать их между собой????? (как прикрутить анимцию к банке)

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

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


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

это понятно... как связать их между собой????? (как прикрутить анимцию к банке)

Анимация уже привязана к скиллу.

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


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

Анимация уже привязана к скиллу.

ты меня походу не понимаешь..... хорошо как привязать этот скилл к моей банке...

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


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

ты меня походу не понимаешь..... хорошо как привязать этот скилл к моей банке...

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

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


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

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

 

в том и дело я спрашиваю этот принцип привязки так как не могу его найти

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


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

Смотря что за сборка, либо в бд, табличка etcitems, либо в датапаке, привязать скилл 5592, 3 лвл, ну и создать этот 3 лвл, естественно.

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


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

Смотря что за сборка, либо в бд, табличка etcitems, либо в датапаке, привязать скилл 5592, 3 лвл, ну и создать этот 3 лвл, естественно.

сборка pwsoft последней ревы. как это сделать в датапаке?

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


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

Мде, на pw все как то через *опу) Попробуй этот скрипт, думаю что будет работать (не проверил, набросал на скорую руку):

package calypso;

import java.util.logging.Level;
import java.util.logging.Logger;

import net.sf.l2j.Config;
import net.sf.l2j.gameserver.ThreadPoolManager;
import net.sf.l2j.gameserver.cache.Static;
import net.sf.l2j.gameserver.datatables.SkillTable;
import net.sf.l2j.gameserver.model.L2Effect;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PetInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance;
import net.sf.l2j.gameserver.model.entity.TvTEvent;
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUser;
import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
import scripts.autoevents.lasthero.LastHero;
import scripts.items.IItemHandler;
import scripts.items.ItemHandler;

public class CPPotion implements IItemHandler {
	protected static final Logger _log = Logger.getLogger(CPPotion.class
			.getName());
	private int _herbstask;

	public CPPotion() {
		this._herbstask = 0;
	}

	private class HerbTask implements Runnable {
		private L2PcInstance _activeChar;
		private int _magicId;
		private int _level;

		HerbTask(L2PcInstance activeChar, int magicId, int level) {
			this._activeChar = activeChar;
			this._magicId = magicId;
			this._level = level;
		}

		public void run() {
			try {
				CPPotion.this.usePotion(this._activeChar, this._magicId,
						this._level);
			} catch (Throwable t) {
				CPPotion._log.log(Level.WARNING, "", t);
			}
		}
	}

	// банка
	private static final int[] ITEM_IDS = { 5592 };
	// сколько восстанавливать
	private static int RESTORE_POWER = 1000;

	public synchronized void useItem(L2PlayableInstance playable,
			L2ItemInstance item) {
		boolean res = false;
		L2PcInstance activeChar;
		if (playable.isPlayer())
			activeChar = (L2PcInstance) playable;
		else {
			if (playable.isPet()) {
				activeChar = ((L2PetInstance) playable).getOwner();
			} else {
				return;
			}
		}
		if (activeChar.isOutOfControl()) {
			activeChar.sendActionFailed();
			return;
		}
		if (item.getLocation() != L2ItemInstance.ItemLocation.INVENTORY) {
			activeChar.sendActionFailed();
			return;
		}
		int itemId = item.getItemId();
		if (!TvTEvent.onPotionUse(activeChar.getName(), itemId)) {
			activeChar.sendActionFailed();
			return;
		}
		if ((activeChar.getChannel() == 6)
				&& (LastHero.getEvent().forbPotion(itemId))) {
			activeChar.sendActionFailed();
			return;
		}
		if (activeChar.isInOlympiadMode()) {
			activeChar
					.sendPacket(Static.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVENT);
			return;
		}
		int itmobj = item.getObjectId();
		switch (itemId) {
		case 5592:
			if (activeChar.getCpReuseTime(itemId) < Config.CP_REUSE_TIME) {
				activeChar.sendActionFailed();
				return;
			}
			activeChar.setCpReuseTime(itemId);

			cpPotion(activeChar, itmobj, RESTORE_POWER);
			break;
		}
		if (res) {
			activeChar.destroyItem("Consume", itmobj, 1, null, false);
		}
	}

	public boolean usePotion(L2PcInstance activeChar, int magicId, int level) {
		if ((activeChar.isCastingNow()) && (magicId > 2277) && (magicId < 2285)) {
			this._herbstask += 100;
			ThreadPoolManager.getInstance().scheduleAi(
					new HerbTask(activeChar, magicId, level), this._herbstask,
					true);
		} else {
			L2Effect effect = activeChar.getFirstEffect(magicId);
			if (effect != null) {
				effect.exit();
			}
			SkillTable.getInstance().getInfo(magicId, level)
					.getEffects(activeChar, activeChar);

			activeChar.broadcastPacket(new MagicSkillUser(activeChar,
					activeChar, magicId, level, 1, 0));
			activeChar.sendPacket(SystemMessage.id(
					SystemMessageId.YOU_FEEL_S1_EFFECT).addSkillName(magicId));
			return true;
		}
		return false;
	}

	public void cpPotion(L2PcInstance activeChar, int itemobj, int restore) {
		activeChar.destroyItem("Consume", itemobj, 1, null, false);
		activeChar.broadcastPacket(new MagicSkillUser(activeChar, activeChar,
				2166, 1, 1, 0));
		if (activeChar.getCurrentCp() != activeChar.getMaxCp()) {
			activeChar.setCurrentCp(activeChar.getCurrentCp() + restore);
		}
	}

	public int[] getItemIds() {
		return ITEM_IDS;
	}

	public static void main(String... arguments) {
		ItemHandler.getInstance().registerItemHandler(new CPPotion());
	}
}
 

кидать в /data/scripts/calypso, ну и подгрузку в scripts.cfg дописать

PS: 5592 изменить в 2х местах

Изменено пользователем Calyps0
  • Upvote 1

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


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

Мде, на pw все как то через *опу) Попробуй этот скрипт, думаю что будет работать (не проверил, набросал на скорую руку):


Error on: \gameserver\data\scripts\calypso\CPbig.java.error.log
Line: -1 - Column: -1

compilation failed
Изменено пользователем tr3sh

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


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

 

Мде, на pw все как то через *опу) Попробуй этот скрипт, думаю что будет работать (не проверил, набросал на скорую руку):


Error on: \gameserver\data\scripts\calypso\CPbig.java.error.log
Line: -1 - Column: -1

compilation failed

 

Переименуй CPbig на CPPotion и скопируй скрипт снова (чуть поправил)

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

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


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

Переименуй CPbig на CPPotion и скопируй скрипт снова (чуть поправил)

Огромное тебе спасибо!

Можно подобное на HPPotion?

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


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

Огромное тебе спасибо!

Можно подобное на HPPotion?

Можно, но меня вырубает, там пару-тройку строк изменить.

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


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

Можно, но меня вырубает, там пару-тройку строк изменить.

сделай пожалуйста! и скинь свой qiwi с меня 100

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


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

package calypso;

import java.util.logging.Level;
import java.util.logging.Logger;

import net.sf.l2j.gameserver.ThreadPoolManager;
import net.sf.l2j.gameserver.cache.Static;
import net.sf.l2j.gameserver.datatables.SkillTable;
import net.sf.l2j.gameserver.model.L2Effect;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PetInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance;
import net.sf.l2j.gameserver.model.entity.TvTEvent;
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUser;
import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
import scripts.autoevents.lasthero.LastHero;
import scripts.items.IItemHandler;
import scripts.items.ItemHandler;

public class CPPotion implements IItemHandler {
protected static final Logger _log = Logger.getLogger(CPPotion.class
.getName());
private int _herbstask;

public CPPotion() {
this._herbstask = 0;
}

private class HerbTask implements Runnable {
private L2PcInstance _activeChar;
private int _magicId;
private int _level;

HerbTask(L2PcInstance activeChar, int magicId, int level) {
this._activeChar = activeChar;
this._magicId = magicId;
this._level = level;
}

public void run() {
try {
CPPotion.this.usePotion(this._activeChar, this._magicId,
this._level);
} catch (Throwable t) {
CPPotion._log.log(Level.WARNING, "", t);
}
}
}

// банка
private static final int[] ITEM_IDS = { 11111, 22222 };
// сколько восстанавливать
private static int CP_RESTORE_POWER = 1000;
private static int HP_RESTORE_POWER = 1000;
// реюз в мс
private static int CP_REUSE = 200;
private static int HP_REUSE = 15000;

public synchronized void useItem(L2PlayableInstance playable,
L2ItemInstance item) {
boolean res = false;
L2PcInstance activeChar;
if (playable.isPlayer())
activeChar = (L2PcInstance) playable;
else {
if (playable.isPet()) {
activeChar = ((L2PetInstance) playable).getOwner();
} else {
return;
}
}
if (activeChar.isOutOfControl()) {
activeChar.sendActionFailed();
return;
}
if (item.getLocation() != L2ItemInstance.ItemLocation.INVENTORY) {
activeChar.sendActionFailed();
return;
}
int itemId = item.getItemId();
if (!TvTEvent.onPotionUse(activeChar.getName(), itemId)) {
activeChar.sendActionFailed();
return;
}
if ((activeChar.getChannel() == 6)
&& (LastHero.getEvent().forbPotion(itemId))) {
activeChar.sendActionFailed();
return;
}
if (activeChar.isInOlympiadMode()) {
activeChar
.sendPacket(Static.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVENT);
return;
}
int itmobj = item.getObjectId();
switch (itemId) {
// банка цп
case 11111:
if (activeChar.getCpReuseTime(itemId) < CP_REUSE) {
activeChar.sendActionFailed();
return;
}
activeChar.setCpReuseTime(itemId);

cpPotion(activeChar, itmobj, CP_RESTORE_POWER);
break;
// банка хп
case 22222:
if (activeChar.getCpReuseTime(itemId) < HP_REUSE) {
activeChar.sendActionFailed();
return;
}
activeChar.setCpReuseTime(itemId);

hpPotion(activeChar, itmobj);
break;
}
if (res) {
activeChar.destroyItem("Consume", itmobj, 1, null, false);
}
}

public boolean usePotion(L2PcInstance activeChar, int magicId, int level) {
if ((activeChar.isCastingNow()) && (magicId > 2277) && (magicId < 2285)) {
this._herbstask += 100;
ThreadPoolManager.getInstance().scheduleAi(
new HerbTask(activeChar, magicId, level), this._herbstask,
true);
} else {
L2Effect effect = activeChar.getFirstEffect(magicId);
if (effect != null) {
effect.exit();
}
SkillTable.getInstance().getInfo(magicId, level)
.getEffects(activeChar, activeChar);

activeChar.broadcastPacket(new MagicSkillUser(activeChar,
activeChar, magicId, level, 1, 0));
activeChar.sendPacket(SystemMessage.id(
SystemMessageId.YOU_FEEL_S1_EFFECT).addSkillName(magicId));
return true;
}
return false;
}

public void cpPotion(L2PcInstance activeChar, int itemobj, int restore) {
activeChar.destroyItem("Consume", itemobj, 1, null, false);
activeChar.broadcastPacket(new MagicSkillUser(activeChar, activeChar,
2166, 1, 1, 0));
if (activeChar.getCurrentCp() != activeChar.getMaxCp()) {
activeChar.setCurrentCp(activeChar.getCurrentCp() + restore);
}
}

public void hpPotion(L2PcInstance activeChar, int itemobj) {
activeChar.destroyItem("Consume", itemobj, 1, null, false);
activeChar.broadcastPacket(new MagicSkillUser(activeChar, activeChar,
2038, 1, 1, 0));
if (activeChar.getCurrentHp() != activeChar.getMaxHp()) {
activeChar.setCurrentHp(activeChar.getCurrentHp() + HP_RESTORE_POWER);
}
}

public int[] getItemIds() {
return ITEM_IDS;
}

public static void main(String... arguments) {
ItemHandler.getInstance().registerItemHandler(new CPPotion());
}
}

  • Upvote 2

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


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

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

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

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

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

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

Войти

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

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

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

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

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