Сообщений: 1,607 
	Тем: 78 
	Зарегистрирован: Feb 2011
	
 Репутация: 
 13,414
	 
 
	
	
		Короче, суть такова:  клац
Сам сурс:  клац
Основа, как несложно догадаться, оверовская. Копирайты в разных местах самые разные. Какие-то намеки на westeros в конфигах. Небольшие косяки с пакетами, легко исправляющиеся. В целом - не rest-zone с товарищем дарвином. Глубоко не копал, ибо нет ни желания, ни времени.
 
PS: Awakeninger, BrainEater - где я, кто все эти люди?
	  
	
	
	
	
 
 
	
	
	
		
	Сообщений: 406 
	Тем: 10 
	Зарегистрирован: Jun 2008
	
 Репутация: 
 2,862
	 
 
	
	
		Zeratyl Написал:Короче, суть такова: клац 
Сам сурс: клац 
 
Основа, как несложно догадаться, оверовская. Копирайты в разных местах самые разные. Какие-то намеки на westeros в конфигах. Небольшие косяки с пакетами, легко исправляющиеся. В целом - не rest-zone с товарищем дарвином. Глубоко не копал, ибо нет ни желания, ни времени. 
 
PS: Awakeninger, BrainEater - где я, кто все эти люди? Сборка кидалы Хиттр ( поменяли копирайты и тд ) которая была до нас 
и которую кинули в шару ее же разрабы.
	  
	
	
Человек просто обязан ошибаться, раз другие учатся на его ошибках .......
 
	
	
 
 
	
	
	
		
	Сообщений: 555 
	Тем: 2 
	Зарегистрирован: Feb 2011
	
 Репутация: 
 1,507
	 
 
	
		
		
		09-12-2013, 12:03 AM 
(Сообщение последний раз редактировалось: 09-12-2013, 12:09 AM   KID.)
		
	 
	
		Залез в l2next.gameserver.network.serverpackets.Beautyshop.ExResponseBeautyRegistResetPacket и обалдел. 
[src=java]	protected void writeImpl() 
	{ 
		writeQ(_adena_count); //Кол-во Адены 
		writeQ(_item_count); //Кол-во Доп.Итемов 
		writeD(_check);		//Поставить/Удалить  
		writeD(1);//Успешно ли 
		writeD(1); 
		 
		Player activeChar = getClient().getActiveChar(); 
		if(activeChar == null) 
		{ 
			return; 
		} 
		 
		if(_adena_count > 0) 
		{ 
			ItemFunctions.removeItem(activeChar, 57, 15000000, true); 
		} 
		if(_item_count > 0) 
		{ 
			ItemFunctions.removeItem(activeChar, 36308, 3, true); 
		} 
 
 
	}[/src] 
это каким гавнокодером надо быть, что бы воткнуть такое в импл 
 
хотя посмотрел дальше, мде, кому-то стоит отрубить руки, это жесть
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 1,065 
	Тем: 20 
	Зарегистрирован: Mar 2010
	
 Репутация: 
 3,855
	 
 
	
	
		хых, мало что голимый хардкод, дак еще и делается все зачем-то в серверном пакете, а не в клиентском, который этот серверный пакет вызывает. 
З.Ы. да и само по себе формирование пакета корявое - не хватает полей, а в большей части текущих вобще муть шлется.
 
З.З.Ы.
 
			вот примерно так должен выглядеть кошерный пакет 
			
[SRC="java"]package l2p.gameserver.network.serverpackets; 
 
import l2p.gameserver.Config; 
import l2p.gameserver.model.Player; 
import l2p.gameserver.network.serverpackets.components.ServerPacket; 
 
public class ExResponseBeautyRegistReset extends L2GameServerPacket 
{ 
	private int _type; 
	private int _result; 
	private int _hairStyle; 
	private int _hairColor; 
	private int _face; 
	private long _adena; 
	private long _coins; 
 
	public ExResponseBeautyRegistReset(Player player, int type, int result) 
	{ 
		_type = type; 
		_result = result; 
		_hairStyle = player.getNewHairStyle() > 0 ? player.getNewHairStyle() : player.getHairStyle(); 
		_hairColor = player.getNewHairColor() > 0 ? player.getNewHairColor() : player.getHairColor(); 
		_face = player.getNewFace() > 0 ? player.getNewFace() : player.getFace(); 
		_adena = player.getAdena(); 
		_coins = player.getItemCount(Config.BS_COIN_ITEM_ID); 
	} 
 
	@Override 
	protected void writeImpl() 
	{ 
		writeEx(ServerPacket.ExResponseBeautyRegistReset); 
		writeQ(_adena); 
		writeQ(_coins); 
		writeD(_type); 
		writeD(_result); 
		writeD(_hairStyle); 
		writeD(_face); 
		writeD(_hairColor); 
	} 
} 
[/SRC] 
 
		 
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 555 
	Тем: 2 
	Зарегистрирован: Feb 2011
	
 Репутация: 
 1,507
	 
 
	
	
		Gaikotsu, он далек от "кошерности". классы пакетов, как и запросов в л2 сфере одноразовые, создание 7 новых переменных для отправки такого простого пакета - дорого. 
пакет не должен ничего создавать, в том числе и никакой логики в его конструкторе. 
идеал - в него вошли данные и ушли в сокет
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 3,967 
	Тем: 90 
	Зарегистрирован: Nov 2010
	
 Репутация: 
 15,337
	 
 
	
	
		Т.е. для того, чтобы отправить один и тот же пакет 1к игроков мы должны создавать под каждого новый экземпляр? Ну... чтобы сэкономить на переменных.   
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 555 
	Тем: 2 
	Зарегистрирован: Feb 2011
	
 Репутация: 
 1,507
	 
 
	
	
		Ro_0TT Написал:Т.е. для того, чтобы отправить один и тот же пакет 1к игроков мы должны создавать под каждого новый экземпляр? Ну... чтобы сэкономить на переменных.   
Что-то не вяжется
 Цитата:чтобы отправить один и тот же пакет 
Цитата:создавать под каждого новый экземпляр? 
К примеру у игрока есть несколько привязанных к нему классов, в которых есть все эти переменные, и в пакет уходит лишь этот класс, не создавая новые переменные
 
В случае отправки каждого нового экземпляра этого пакета (вес переменных минимум 36 байт) = 36 * 1000 уже имеем ~36кб. 
А что если подумать о User/CharInfo? 
но на самом деле, зачем же об этом заморачиваться?
	  
	
	
	
	
 
 
	
	
	
		
	Сообщений: 3,967 
	Тем: 90 
	Зарегистрирован: Nov 2010
	
 Репутация: 
 15,337
	 
 
	
	
		KID Написал:Что-то не вяжется Да вроде все вяжется, может не так выразился. Можно создать один экземпляр пакета и отправить его всем игрокам. А можно создать несколько экземпляров одного и того же пакета, для каждого игрока. Это я про мгновенную отправку, при создании экземпляра.
 KID Написал:К примеру у игрока есть несколько привязанных к нему классов, в которых есть все эти переменные, и в пакет уходит лишь этот класс, не создавая новые переменные. В ситуации с L2J, где все переменные необходимо проверять, это не всегда выгодно.
 KID Написал:В случае отправки каждого нового экземпляра этого пакета (вес переменных минимум 36 байт) = 36 * 1000 уже имеем ~36кб. 
А что если подумать о User/CharInfo? 
но на самом деле, зачем же об этом заморачиваться? Действительно, ради такой экономии.. зачем заморачиваться   . Как я написал выше, в ситуации с L2J, безопаснее и удобнее хранить все в переменных пакета.
	  
	
	
	
	
 
 
	
	
	
		
	Сообщений: 555 
	Тем: 2 
	Зарегистрирован: Feb 2011
	
 Репутация: 
 1,507
	 
 
	
	
		мои последние слова были пропитаны концентрированным сарказмом 
для недосервера в 300-1000 онлайна такие цифры не влияют, но для серверов ступенькой выше - требования вырастают геометрически
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 4,692 
	Тем: 85 
	Зарегистрирован: Mar 2009
	
 Репутация: 
 23,364
	 
 
	
	
		KID Написал:Gaikotsu, он далек от "кошерности". классы пакетов, как и запросов в л2 сфере одноразовые, создание 7 новых переменных для отправки такого простого пакета - дорого. 
пакет не должен ничего создавать, в том числе и никакой логики в его конструкторе. 
идеал - в него вошли данные и ушли в сокет 
А потом раз и проснулся? Да? :redlol:
 
Про логику согласен, но вот про "пакет не должен ничего создавать" можно поподробнее, а лучше в примерах, если можно.
	  
	
	
Fortuna - non penis, in manus non recipe.
 
	
	
 
 
	 
 |