| 
		
	
	
	
		
	Сообщений: 15 
	Тем: 0 
	Зарегистрирован: Feb 2012
	
 Репутация: 
-6 
	
	
		elastic Написал:This method returns "skill points consume * skill_learned_level" as i remember, the first idea which came to my head, but it works :redlol: 
Could you share that method please... im kind of rusty with java x querry's    im sorry to bother...  Its my last question! :Olen': I swear! :Olen':
	 
	
	
	
		
	Сообщений: 441 
	Тем: 15 
	Зарегистрирован: Oct 2012
	
 Репутация: 
3,319 
	
	
		jalemao Написал:Could you share that method please... im kind of rusty with java x querry's  im sorry to bother...  Its my last question! :Olen': I swear! :Olen': No problem    Код: Class Skill.java
 public int getAcquirePointsConsume()
 {
 return _acquire_count * _level;
 }
 
	
	
	
		
	Сообщений: 666 
	Тем: 15 
	Зарегистрирован: Aug 2014
	
 Репутация: 
1,790 
	
	
		У кого есть дамп эртеи 606, поделитесь пожалуйста.
	 
	
	
	
		
	Сообщений: 329Тем: 16
 Зарегистрирован: Nov 2014
 
	
	
		ув. пользователи форума, кто знает какие евент тригеры задействованы зоне эпика Линдвиора? известен только 1, активация которого происходит после включения генераторов.
	 
	
	
	
		
	Сообщений: 102 
	Тем: 0 
	Зарегистрирован: Dec 2012
	
 Репутация: 
139 
	
	
		люди злые, кто подскажет? не могу никак нормально собрать пакет CharSelectionInfo - если отправляю брошку и камни, то у меня ошибка arrayBoundOfIndex - 31мне интересно, в CharSelectionInfo они должны отправляться? + в Inventory - сколько PAPERDOLL слотов? у меня 31 + TOTALSLOTS = 32
 
 а если отправляю пустые нули вместо брошки и камней = 7шт. то отличное отображение персов=((((
 
 P.S. брошка и камни сделаны по аналогии таликов....
 
	
	
	
		
	Сообщений: 666 
	Тем: 15 
	Зарегистрирован: Aug 2014
	
 Репутация: 
1,790 
	
	
		silvermain Написал:люди злые, кто подскажет? не могу никак нормально собрать пакет CharSelectionInfo - если отправляю брошку и камни, то у меня ошибка arrayBoundOfIndex - 31мне интересно, в CharSelectionInfo они должны отправляться? + в Inventory - сколько PAPERDOLL слотов? у меня 31 + TOTALSLOTS = 32
 
 а если отправляю пустые нули вместо брошки и камней = 7шт. то отличное отображение персов=((((
 
 P.S. брошка и камни сделаны по аналогии таликов....
 Код: protected final void writeImpl(){
 writeC(0x09);
 writeD(_size);
 writeD(_maxCharPerAcc);
 writeC(_unk);
 writeC(_playMode);
 writeD(_isKoreaClient);
 writeC(_gift);
 
 int i = 0;
 for (CharSelectInfoPackage charInfoPackage : charSelectionInfo)
 {
 writeS(charInfoPackage.getName());
 writeD(charInfoPackage.getCharId());
 writeS(_loginName);
 writeD(_sessionId);
 writeD(charInfoPackage.getClanId());
 writeD(_builderLevel);
 writeD(charInfoPackage.getSex());
 writeD(charInfoPackage.getRace());
 writeD(charInfoPackage.getBaseClassId());
 writeD(_serverId);
 writeD(charInfoPackage.getX());
 writeD(charInfoPackage.getY());
 writeD(charInfoPackage.getZ());
 writeF(charInfoPackage.getCurrentHp());
 writeF(charInfoPackage.getCurrentMp());
 writeQ(charInfoPackage.getSp());
 writeQ(charInfoPackage.getExp());
 int lvl = charInfoPackage.getLevel();
 writeF(Experience.getExpPercent(lvl, charInfoPackage.getExp()));
 writeD(lvl);
 writeD(charInfoPackage.getKarma());
 writeD(charInfoPackage.getPk());
 writeD(charInfoPackage.getPvP());
 
 for (int j = 0; j < 7; j++)
 {
 writeD(0x00);
 }
 
 writeD(0x00);
 writeD(0x00);
 
 for (int PAPERDOLL_ID : Inventory.PAPERDOLL_ORDER)
 {
 writeD(charInfoPackage.getPaperdollItemId(PAPERDOLL_ID));
 }
 
 writeD(charInfoPackage.getVisualItemId(Inventory.PAPERDOLL_RHAND));
 writeD(charInfoPackage.getVisualItemId(Inventory.PAPERDOLL_LHAND));
 writeD(charInfoPackage.getVisualItemId(Inventory.PAPERDOLL_GLOVES));
 writeD(charInfoPackage.getVisualItemId(Inventory.PAPERDOLL_CHEST));
 writeD(charInfoPackage.getVisualItemId(Inventory.PAPERDOLL_LEGS));
 writeD(charInfoPackage.getVisualItemId(Inventory.PAPERDOLL_FEET));
 writeD(charInfoPackage.getVisualItemId(Inventory.PAPERDOLL_LRHAND));
 writeD(charInfoPackage.getVisualItemId(Inventory.PAPERDOLL_HAIR));
 writeD(charInfoPackage.getVisualItemId(Inventory.PAPERDOLL_DHAIR));
 
 writeH(0);
 writeH(0);
 writeH(0);
 writeH(0);
 writeH(0);
 
 writeD(charInfoPackage.getHairStyle());
 writeD(charInfoPackage.getHairColor());
 writeD(charInfoPackage.getFace());
 
 writeF(charInfoPackage.getMaxHp()); // hp max
 writeF(charInfoPackage.getMaxMp()); // mp max
 writeD(charInfoPackage.getAccessLevel() > -100 ? charInfoPackage.getDeleteTimer() : -1);
 writeD(charInfoPackage.getClassId());
 writeD(i == _lastUsedIndex ? 1 : 0);
 writeC(Math.min(charInfoPackage.getPaperdollEnchantEffect(Inventory.PAPERDOLL_RHAND), 127));
 writeH(charInfoPackage.getPaperdollAugmentationId(Inventory.PAPERDOLL_RHAND));
 writeH(charInfoPackage.getPaperdollAugmentationId(Inventory.PAPERDOLL_LHAND));
 writeD(getTransform(charInfoPackage));
 writeD(_petObjectId);
 writeD(_petLvl);
 writeD(_petFood);
 writeD(_petFoodLvl);
 writeF(_petHP);
 writeF(_petMP);
 
 writeD(charSelectionInfo.getVitalityPoints());
 writeD(200); // Vitality percent
 writeD(5); // Vitality items count
 writeD(charInfoPackage.getAccessLevel() > -100 ? 0x01 : 0x00);
 writeC(charInfoPackage.getNoblesse());
 writeC(charInfoPackage.getHero());
 writeC(_unk2);
 i++;
 }
 }
вроде так, а должны отправляться или нет, нудно на офе смотреть 
п.с. думаю что скорее всего не должны, возможно это добавят позже, хотя я могу ошибаться
	 
	
	
	
		
	Сообщений: 466 
	Тем: 10 
	Зарегистрирован: Dec 2012
	
 Репутация: 
398 
	
	
		silvermain Написал:люди злые, кто подскажет? не могу никак нормально собрать пакет CharSelectionInfo - если отправляю брошку и камни, то у меня ошибка arrayBoundOfIndex - 31мне интересно, в CharSelectionInfo они должны отправляться? + в Inventory - сколько PAPERDOLL слотов? у меня 31 + TOTALSLOTS = 32
 
 а если отправляю пустые нули вместо брошки и камней = 7шт. то отличное отображение персов=((((
 
 P.S. брошка и камни сделаны по аналогии таликов....
 
У тебя в массив не влазит значение (мб неправильно запихнул). На лыже насколько я помню 31 слот (так как LRHAND в ней нет и оно отправляется как LHAND (или RHAND не помню).  
Подсказка: индексы массивов начинаются с 0, то есть если обычным счетом определенный объект нумерован как 32, то индекс в массиве ему будет дан как 31.
	 
	
	
	
		
	Сообщений: 102 
	Тем: 0 
	Зарегистрирован: Dec 2012
	
 Репутация: 
139 
	
	
		Warencense Написал:У тебя в массив не влазит значение (мб неправильно запихнул). На лыже насколько я помню 31 слот (так как LRHAND в ней нет и оно отправляется как LHAND (или RHAND не помню). Подсказка: индексы массивов начинаются с 0, то есть если обычным счетом определенный объект нумерован как 32, то индекс в массиве ему будет дан как 31.
 
такс, смотри, у меня в Inventory стоит так:
 
			Inventory.java PHP код: <?php public static final int PAPERDOLL_UNDER = 0;
 public static final int PAPERDOLL_HEAD = 1;
 public static final int PAPERDOLL_HAIR = 2;
 public static final int PAPERDOLL_HAIR2 = 3;
 public static final int PAPERDOLL_NECK = 4;
 public static final int PAPERDOLL_RHAND = 5;
 public static final int PAPERDOLL_CHEST = 6;
 public static final int PAPERDOLL_LHAND = 7;
 public static final int PAPERDOLL_REAR = 8;
 public static final int PAPERDOLL_LEAR = 9;
 public static final int PAPERDOLL_GLOVES = 10;
 public static final int PAPERDOLL_LEGS = 11;
 public static final int PAPERDOLL_FEET = 12;
 public static final int PAPERDOLL_RFINGER = 13;
 public static final int PAPERDOLL_LFINGER = 14;
 public static final int PAPERDOLL_LBRACELET = 15;
 public static final int PAPERDOLL_RBRACELET = 16;
 public static final int PAPERDOLL_DECO1 = 17;
 public static final int PAPERDOLL_DECO2 = 18;
 public static final int PAPERDOLL_DECO3 = 19;
 public static final int PAPERDOLL_DECO4 = 20;
 public static final int PAPERDOLL_DECO5 = 21;
 public static final int PAPERDOLL_DECO6 = 22;
 public static final int PAPERDOLL_CLOAK = 23;
 public static final int PAPERDOLL_BELT = 24;
 public static final int PAPERDOLL_BROACH = 25;
 public static final int PAPERDOLL_STONE1 = 26;
 public static final int PAPERDOLL_STONE2 = 27;
 public static final int PAPERDOLL_STONE3 = 28;
 public static final int PAPERDOLL_STONE4 = 29;
 public static final int PAPERDOLL_STONE5 = 30;
 public static final int PAPERDOLL_STONE6 = 31;
 public static final int PAPERDOLL_TOTALSLOTS = 32;
 
 
в L2GameServerPacket так:
 
			L2GameServerPacket PHP код: <?php private static final int[] PAPERDOLL_ORDER = new int[]
 {
 Inventory.PAPERDOLL_UNDER,
 Inventory.PAPERDOLL_REAR,
 Inventory.PAPERDOLL_LEAR,
 Inventory.PAPERDOLL_NECK,
 Inventory.PAPERDOLL_RFINGER,
 Inventory.PAPERDOLL_LFINGER,
 Inventory.PAPERDOLL_HEAD,
 Inventory.PAPERDOLL_RHAND,
 Inventory.PAPERDOLL_LHAND,
 Inventory.PAPERDOLL_GLOVES,
 Inventory.PAPERDOLL_CHEST,
 Inventory.PAPERDOLL_LEGS,
 Inventory.PAPERDOLL_FEET,
 Inventory.PAPERDOLL_CLOAK,
 Inventory.PAPERDOLL_RHAND,
 Inventory.PAPERDOLL_HAIR,
 Inventory.PAPERDOLL_HAIR2,
 Inventory.PAPERDOLL_RBRACELET,
 Inventory.PAPERDOLL_LBRACELET,
 Inventory.PAPERDOLL_DECO1,
 Inventory.PAPERDOLL_DECO2,
 Inventory.PAPERDOLL_DECO3,
 Inventory.PAPERDOLL_DECO4,
 Inventory.PAPERDOLL_DECO5,
 Inventory.PAPERDOLL_DECO6,
 Inventory.PAPERDOLL_BELT,
 Inventory.PAPERDOLL_BROACH,
 Inventory.PAPERDOLL_STONE1,
 Inventory.PAPERDOLL_STONE2,
 Inventory.PAPERDOLL_STONE3,
 Inventory.PAPERDOLL_STONE4,
 Inventory.PAPERDOLL_STONE5,
 Inventory.PAPERDOLL_STONE6
 };
 
 
и на закуску CharSelectionInfo так:
 
			CharSelectionInfo PHP код: <?php protected final void writeImpl()
 {
 writeC(0x09);
 int size = (_characterPackages.length);
 writeD(size);
 
 // Can prevent players from creating new characters (if 0); (if 1, the client will ask if chars may be created (0x13) Response: (0x0D) )
 writeD(Config.MAX_CHARACTERS_NUMBER_PER_ACCOUNT);
 writeC(0x00);
 writeC(0x01);
 writeD(0x02);
 writeC(0x00);
 
 long lastAccess = 0L;
 
 if (_activeId == -1)
 {
 for (int i = 0; i < size; i++)
 {
 if (lastAccess < _characterPackages[i].getLastAccess())
 {
 lastAccess = _characterPackages[i].getLastAccess();
 _activeId = i;
 }
 }
 }
 
 for (int i = 0; i < size; i++)
 {
 CharSelectInfoPackage charInfoPackage = _characterPackages[i];
 
 writeS(charInfoPackage.getName());
 writeD(charInfoPackage.getObjectId());
 writeS(_loginName);
 writeD(_sessionId);
 writeD(charInfoPackage.getClanId());
 writeD(0x00); // ??
 
 writeD(charInfoPackage.getSex());
 writeD(charInfoPackage.getRace());
 
 if (charInfoPackage.getClassId() == charInfoPackage.getBaseClassId())
 {
 writeD(charInfoPackage.getClassId());
 }
 else
 {
 writeD(charInfoPackage.getBaseClassId());
 }
 
 writeD(0x01); // active ??
 
 writeD(charInfoPackage.getX());
 writeD(charInfoPackage.getY());
 writeD(charInfoPackage.getZ());
 
 writeF(charInfoPackage.getCurrentHp());
 writeF(charInfoPackage.getCurrentMp());
 
 writeQ(charInfoPackage.getSp());
 writeQ(charInfoPackage.getExp());
 writeF((float) (charInfoPackage.getExp() - ExperienceTable.getInstance().getExpForLevel(charInfoPackage.getLevel())) / (ExperienceTable.getInstance().getExpForLevel(charInfoPackage.getLevel() + 1) - ExperienceTable.getInstance().getExpForLevel(charInfoPackage.getLevel()))); // High Five
 // exp %
 writeD(charInfoPackage.getLevel());
 
 writeD(charInfoPackage.getKarma());
 writeD(charInfoPackage.getPkKills());
 writeD(charInfoPackage.getPvPKills());
 
 writeD(0x00);
 writeD(0x00);
 writeD(0x00);
 writeD(0x00);
 writeD(0x00);
 writeD(0x00);
 writeD(0x00);
 writeD(0x00);
 writeD(0x00);
 
 for (int slot : getPaperdollOrder())
 {
 writeD(charInfoPackage.getPaperdollItemId(slot));
 }
 
 |- - - - - - - -|
 |    writeD(0); |
 |    writeD(0); |  либо я комментирую строки в
 |    writeD(0); |  L2GameServerPacket - (брошь и стоуны)
 |    writeD(0); |  и оставляю данный столбик, либо всё пишу
 |    writeD(0); |  верно и вылетает arrayBoundIndex - 31 =
 |    writeD(0); |  PAPERDOLL_STONE6 =((((
 |- - - - - - - -|
 
 //визуалка
 writeD(0);
 writeD(0);
 writeD(0);
 writeD(0);
 writeD(0);
 writeD(0);
 writeD(0);
 writeD(0);
 writeD(0);
 
 writeH(0);
 writeH(0);
 writeH(0);
 writeH(0);
 writeH(0);
 
 writeD(charInfoPackage.getHairStyle());
 writeD(charInfoPackage.getHairColor());
 writeD(charInfoPackage.getFace());
 
 writeF(charInfoPackage.getMaxHp()); // hp max
 writeF(charInfoPackage.getMaxMp()); // mp max
 
 long deleteTime = charInfoPackage.getDeleteTimer();
 int deletedays = 0;
 if (deleteTime > 0)
 {
 deletedays = (int) ((deleteTime - System.currentTimeMillis()) / 1000);
 }
 writeD(deletedays); // days left before
 // delete .. if != 0
 // then char is inactive
 writeD(charInfoPackage.getClassId());
 writeD(i == _activeId ? 0x01 : 0x00); // c3 auto-select char
 
 writeC(charInfoPackage.getEnchantEffect() > 127 ? 127 : charInfoPackage.getEnchantEffect());
 writeD(charInfoPackage.getAugmentationId());
 
 // writeD(charInfoPackage.getTransformId()); // Used to display Transformations
 writeD(0x00); // Currently on retail when you are on character select you don't see your transformation.
 
 // Freya by Vistall:
 writeD(0x00); // npdid - 16024 Tame Tiny Baby Kookaburra A9E89C
 writeD(0x00); // level
 writeD(0x00); // ?
 writeD(0x00); // food? - 1200
 writeF(0x00); // max Hp
 writeF(0x00); // cur Hp
 
 // High Five by Vistall:
 writeD(charInfoPackage.getVitalityPoints()); // H5 Vitality
 writeD(200);
 writeD(5);
 writeD(1);
 writeC(0);
 writeC(0);
 writeC(1);
 }
 }
 
 
	
	
	
		
	Сообщений: 527 
	Тем: 17 
	Зарегистрирован: Oct 2010
	
 Репутация: 
1,919 
	
	
		ошибка в методе getPaperdollItemId() а именно там inv объявлен массивом с размером 31
	 
	
	
	
		
	Сообщений: 1,065 
	Тем: 20 
	Зарегистрирован: Mar 2010
	
 Репутация: 
3,855 
	
	
		GenCloud Написал:ув. пользователи форума, кто знает какие евент тригеры задействованы зоне эпика Линдвиора? известен только 1, активация которого происходит после включения генераторов. [SRC="java"]private static final int[] EventTriggerRecharge = Util.createRangeArray(21170102, 21170110); 
private static final int[] EventTriggerCannonShoot = { 21170120, 21170124, 21170130, 21170100 };[/SRC] 
наверняка есть еще, но мне в принципе и этих хватило пока
	 |