Работа над Goddess of Destruction (part 7) - Страница 21 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Ответ
Опции темы
Непрочитано 11.11.2015, 13:10   #201
Изгнанные

По умолчанию Re: Работа над Goddess of Destruction (part 7)

Кто подскажет что за два неизвестных параметра в пакете ExTryMixCube
Код:
        writeC(result);
        writeD(1);
        writeC(0);
        writeD(itemId);
        writeQ(itemCount);
GenCloud вне форума Отправить сообщение для GenCloud с помощью Skype™ Ответить с цитированием
Непрочитано 11.11.2015, 14:11   #202
Аватар для Gaikotsu
Герой

По умолчанию Re: Работа над Goddess of Destruction (part 7)

 
package l2p.gameserver.network.serverpackets.alchemy;
 
import java.util.ArrayList;
 
import l2p.gameserver.model.items.Item;
import l2p.gameserver.network.serverpackets.L2GameServerPacket;
import l2p.gameserver.network.serverpackets.components.Opcode;
 
public class ExTryMixCube extends L2GameServerPacket
{
	public static final ExTryMixCube FAIL = new ExTryMixCube(2);
 
	private final int _result;
	private final ArrayList<Item> _items = new ArrayList<>();
 
	public ExTryMixCube(int result)
	{
		_result = result;
	}
 
	public void add(int itemId, long count, int type)
	{
		_items.add(new Item(itemId, count, 0, 100, type));
	}
 
	@Override
	protected final void writeImpl()
	{
		writeEx(Opcode.ExTryMixCube);
		writeC(_result);
		writeD(_items.size());
 
		for (Item item : _items)
		{
			writeC(item.getType());
			writeD(item.getId());
			writeQ(item.getCount());
		}
	}
}
 
Code: Java
Gaikotsu вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 11.11.2015, 17:03   #203
Изгнанные

По умолчанию Re: Работа над Goddess of Destruction (part 7)

Цитата:
Сообщение от Gaikotsu Посмотреть сообщение
 
package l2p.gameserver.network.serverpackets.alchemy;
 
import java.util.ArrayList;
 
import l2p.gameserver.model.items.Item;
import l2p.gameserver.network.serverpackets.L2GameServerPacket;
import l2p.gameserver.network.serverpackets.components.Opcode;
 
public class ExTryMixCube extends L2GameServerPacket
{
	public static final ExTryMixCube FAIL = new ExTryMixCube(2);
 
	private final int _result;
	private final ArrayList<Item> _items = new ArrayList<>();
 
	public ExTryMixCube(int result)
	{
		_result = result;
	}
 
	public void add(int itemId, long count, int type)
	{
		_items.add(new Item(itemId, count, 0, 100, type));
	}
 
	@Override
	protected final void writeImpl()
	{
		writeEx(Opcode.ExTryMixCube);
		writeC(_result);
		writeD(_items.size());
 
		for (Item item : _items)
		{
			writeC(item.getType());
			writeD(item.getId());
			writeQ(item.getCount());
		}
	}
}
 
Code: Java
Код:
new Item(itemId, count, 0, 100, type)
а за что эти параметры отвечают и какие значения результата существуют?
GenCloud вне форума Отправить сообщение для GenCloud с помощью Skype™ Ответить с цитированием
Непрочитано 11.11.2015, 21:53   #204
Аватар для Gaikotsu
Герой

По умолчанию Re: Работа над Goddess of Destruction (part 7)

да просто Item у меня простенький тип для хранения некоторой информации об предмете в разных ситуациях
 
package l2p.gameserver.model.items;
 
public class Item
{
	private final int _id;
	private final int _type;
	private final int _chance;
	private final int _enchant;
	private final long _count;
 
	public Item(int id, long count)
	{
		this(id, count, 0, 0, 0);
	}
 
	public Item(int id, long count, int enchant)
	{
		this(id, count, enchant, 0, 0);
	}
 
	public Item(int id, long count, int enchant, int chance)
	{
		this(id, count, enchant, chance, 0);
	}
 
	public Item(int id, long count, int enchant, int chance, int type)
	{
		_id = id;
		_count = count;
		_enchant = enchant;
		_chance = chance;
		_type = type;
	}
 
	public int getId()
	{
		return _id;
	}
 
	public long getCount()
	{
		return _count;
	}
 
	public int getEnchant()
	{
		return _enchant;
	}
 
	public int getChance()
	{
		return _chance;
	}
 
	public int getType()
	{
		return _type;
	}
}
 
Code: Java
а _result
0 - обычная награда
1 - удвоенная награда
2 - фейл
Gaikotsu вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 12.11.2015, 22:56   #205
Изгнанные

По умолчанию Re: Работа над Goddess of Destruction (part 7)

Цитата:
Сообщение от Gaikotsu Посмотреть сообщение
да просто Item у меня простенький тип для хранения некоторой информации об предмете в разных ситуациях
 
package l2p.gameserver.model.items;
 
public class Item
{
	private final int _id;
	private final int _type;
	private final int _chance;
	private final int _enchant;
	private final long _count;
 
	public Item(int id, long count)
	{
		this(id, count, 0, 0, 0);
	}
 
	public Item(int id, long count, int enchant)
	{
		this(id, count, enchant, 0, 0);
	}
 
	public Item(int id, long count, int enchant, int chance)
	{
		this(id, count, enchant, chance, 0);
	}
 
	public Item(int id, long count, int enchant, int chance, int type)
	{
		_id = id;
		_count = count;
		_enchant = enchant;
		_chance = chance;
		_type = type;
	}
 
	public int getId()
	{
		return _id;
	}
 
	public long getCount()
	{
		return _count;
	}
 
	public int getEnchant()
	{
		return _enchant;
	}
 
	public int getChance()
	{
		return _chance;
	}
 
	public int getType()
	{
		return _type;
	}
}
 
Code: Java
а _result
0 - обычная награда
1 - удвоенная награда
2 - фейл
А какой тип отправлять для Тяжелых Камней ветра, ибо какие не перебирал вылетает просто пустое окно.
GenCloud вне форума Отправить сообщение для GenCloud с помощью Skype™ Ответить с цитированием
Непрочитано 13.11.2015, 00:46   #206
Пользователь

По умолчанию Re: Работа над Goddess of Destruction (part 7)

Цитата:
Сообщение от Amadeo Посмотреть сообщение
Hi im trying to know how works the SP progress downbar in %, only gaining 1sp shows 100% and in 0sp 0% i look in UserInfo but nothing i don't see any solution anybody can take a hand with that problem? thanks
Anybody knows about this bar works?
Amadeo вне форума Ответить с цитированием
Непрочитано 13.11.2015, 13:11   #207
Изгнанные

По умолчанию Re: Работа над Goddess of Destruction (part 7)

Цитата:
Сообщение от GenCloud Посмотреть сообщение
А какой тип отправлять для Тяжелых Камней ветра, ибо какие не перебирал вылетает просто пустое окно.
Помещаю три итема в список, выводит 0 - просто черное окно.
GenCloud вне форума Отправить сообщение для GenCloud с помощью Skype™ Ответить с цитированием
Непрочитано 13.11.2015, 14:40   #208
Олдфаг

По умолчанию Re: Работа над Goddess of Destruction (part 7)

Цитата:
Сообщение от Amadeo Посмотреть сообщение
Anybody knows about this bar works?
this bar have no special packet
anything needed is in userinfo packet

fragment:
....
WriteQ(UserInfo->_exp);
WriteF(getExpPercent(UserInfo->_level,UserInfo->_exp)); //exp percent
smeli вне форума Ответить с цитированием
Непрочитано 14.11.2015, 01:27   #209
Пользователь

По умолчанию Re: Работа над Goddess of Destruction (part 7)

I don't know not works for me

Код:
writeQ(_activeChar.getExp());
writeF(Experience.getExpPercent(_activeChar.getLevel(), _activeChar.getExp()));
these are my lines
Amadeo вне форума Ответить с цитированием
Непрочитано 14.11.2015, 20:12   #210
Аватар для Gaikotsu
Герой

По умолчанию Re: Работа над Goddess of Destruction (part 7)

Цитата:
Сообщение от GenCloud Посмотреть сообщение
А какой тип отправлять для Тяжелых Камней ветра, ибо какие не перебирал вылетает просто пустое окно.
проще наверное будет весь пакет показать...
 
package l2p.gameserver.network.clientpackets.alchemy;
 
import l2p.commons.util.Rnd;
import l2p.gameserver.data.holder.AlchemyDataHolder;
import l2p.gameserver.enums.Race;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.alchemy.LollyCubeData;
import l2p.gameserver.model.items.ItemInstance;
import l2p.gameserver.model.skills.CommonSkill;
import l2p.gameserver.network.clientpackets.L2GameClientPacket;
import l2p.gameserver.network.serverpackets.MagicSkillUse;
import l2p.gameserver.network.serverpackets.alchemy.ExTryMixCube;
import l2p.gameserver.network.serverpackets.components.SystemMsg;
import l2p.gameserver.utils.ItemUtils;
import l2p.gameserver.utils.Log;
 
public class RequestAlchemyTryMixCube extends L2GameClientPacket
{
	private static final long MAX_COUNT = 1_000_000_000;
 
	private int[] _objectId;
	private long[] _count;
 
	@Override
	protected void readImpl()
	{
		int count = readD();
 
		_objectId = new int[count];
		_count = new long[count];
 
		for (int i = 0; i < count; i++)
		{
			_objectId[i] = readD();
			_count[i] = Math.min(readQ(), MAX_COUNT);
		}
	}
 
	@Override
	protected void runImpl()
	{
		final Player player = getClient().getActiveChar();
 
		if (player == null || player.getAppearance().getRace() != Race.ERTHEIA)
			return;
 
		if (player.getSkillLevel(CommonSkill.ALCHEMY_CUBE.getId()) < 1)
		{
			player.sendPacket(SystemMsg.YOU_MUST_LEARN_THE_NECESSARY_SKILLS_FIRST, ExTryMixCube.FAIL);
			return;
		}
 
		if (player.isDead())
		{
			player.sendPacket(SystemMsg.YOU_CANNOT_USE_ALCHEMY_WHILE_DEAD, ExTryMixCube.FAIL);
			return;
		}
 
		if (player.isInCombat())
		{
			player.sendPacket(SystemMsg.YOU_CANNOT_USE_ALCHEMY_DURING_BATTLE, ExTryMixCube.FAIL);
			return;
		}
 
		if (player.isActionsDisabled())
		{
			player.sendPacket(SystemMsg.YOU_CANNOT_USE_ALCHEMY_WHILE_IMMOBILE, ExTryMixCube.FAIL);
			return;
		}
 
		if (player.isProcessingRequest() || player.getPrivateStoreType() != Player.STORE_PRIVATE_NONE)
		{
			player.sendPacket(SystemMsg.YOU_CANNOT_USE_ALCHEMY_WHILE_TRADING_OR_USING_A_PRIVATE_STORE_OR_SHOP, ExTryMixCube.FAIL);
			return;
		}
 
		LollyCubeData cube = AlchemyDataHolder.getInstance().getLollyCube(player.getSkillLevel(CommonSkill.ALCHEMY_CUBE.getId()));
 
		if (cube == null)
		{
			player.sendPacket(ExTryMixCube.FAIL);
			return;
		}
 
		long count = 0L;
		long price = 0L;
		long additionalItemCount = 0L;
 
		for (int i = 0; i < _objectId.length; i++)
		{
			ItemInstance item = player.getInventory().getItemByObjectId(_objectId[i]);
 
			if (item != null && !item.isEquipped() && item.getCount() >= _count[i])
			{
				count += _count[i];
				price += AlchemyDataHolder.getInstance().getPrice(item.getItemId()) * _count[i];
 
				if (item.getItemId() == cube.getAdditionalItemId())
					additionalItemCount = _count[i];
			}
		}
 
		if (count < 1 || price < 1)
		{
			player.sendPacket(ExTryMixCube.FAIL);
			return;
		}
 
		for (int i = 0; i < _objectId.length; i++)
		{
			ItemInstance item = player.getInventory().getItemByObjectId(_objectId[i]);
 
			if (!player.getInventory().destroyItem(item, _count[i]))
			{
				player.sendPacket(ExTryMixCube.FAIL);
				return;
			}
 
			Log.LogItem(player, Log.LollyCubeRemove, item, _count[i]);
		}
 
		long rewardCount = cube.getRewardCount(_objectId.length, price);
 
		if (rewardCount < 1)
		{
			player.sendPacket(ExTryMixCube.FAIL);
			return;
		}
 
		ExTryMixCube packet = new ExTryMixCube(0);
		int rewardRate = 1;
		boolean randomSuccess = false;
 
		if (additionalItemCount > 0)
		{
			if (Rnd.chance(cube.getExtraRewardChance()))
			{
				ItemUtils.addItem(player, cube.getExtraRewardId(), cube.getExtraRewardCount(), true);
				Log.LogItem(player, Log.LollyCubeAdd, cube.getExtraRewardId(), cube.getExtraRewardCount());
				packet.add(cube.getExtraRewardId(), cube.getExtraRewardCount(), 2);
				randomSuccess = true;
			}
 
			if (additionalItemCount > 1 && Rnd.chance(cube.getDoubleRewardChance(additionalItemCount)))
			{
				rewardRate = 2;
				rewardCount *= rewardRate;
				randomSuccess = true;
			}
		}
 
		ItemUtils.addItem(player, cube.getRewardId(), rewardCount, true);
		Log.LogItem(player, Log.LollyCubeAdd, cube.getRewardId(), rewardCount);
 
		if (randomSuccess)
			player.sendPacket(new MagicSkillUse(player, CommonSkill.ALCHEMY_CUBE_RANDOM_SUCCESS.getSkill()));
 
		packet.add(cube.getRewardId(), rewardCount, rewardRate > 1 ? 1 : 0);
		player.sendPacket(packet);
	}
}
 
Code: Java
Gaikotsu вне форума Ответить с цитированием
Сказали спасибо:
Ответ

Метки
development, goddess of destruction, l2j, l2p, lineage 2 tauti owned!, tauti, vistall убил 2 часа, атата, гео tauti за картоху, геодата бункера, иди копай, карательный отряд, картоха vs ява, ололо - жесть, технология батарей 0о, у корейцев недержание, шаурмэ фейл


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа над Goddess of Destruction (part 6) Ashe Lineage II 1304 11.07.2015 20:00
Работа над Goddess of Destruction (part 5) Ozzy Lineage II 980 09.10.2013 09:13
Работа над Goddess of Destruction Вопрос Мараторий Lineage II 29 11.06.2013 18:01
Работа над Goddess of Destruction (part 2) Ozzy Lineage II 411 22.06.2011 15:58
Адаптируем SQL BimBom Работа со скриптами 9 14.10.2009 15:14


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 07:11. Часовой пояс GMT +3.

Вверх