Добрый вечер уважаемые, не подскажите как на этой сборке включить режим разработчика, в конфигах есть , чтото вроде отладки в режимах, пвп,пве, дуэли, непонял как это работает, консоль молчит, нужно, чтото родного снифера, который показывает в гс отправку и прием пакетов, тут такое имеется?
private void debugPacket(ByteBuffer buff) {
int buffSize = buff.remaining();
byte[] bytes = new byte[buffSize];
buff.get(bytes);
StringBuilder hex = new StringBuilder();
int counter = 0;
for (int i = 0; i < buffSize; i++) {
if (counter % 16 == 0) {
hex.append("\n" + fillHex(i, 4) + ": ");
}
hex.append(fillHex(bytes[i] & 0xff, 2) + " ");
counter++;
if (counter == 16) {
hex.append(" ");
int charPoint = i - 15;
for (int a = 0; a < 16; a++) {
final int t1 = bytes[charPoint++];
if (t1 > 0x1f && t1 < 0x80) {
hex.append((char) t1);
} else {
hex.append('.');
}
}
hex.append("\n");
counter = 0;
}
}
final int rest = bytes.length % 16;
if (rest > 0) {
for (int i = 0; i < 17 - rest; i++) {
hex.append(" ");
}
int charPoint = bytes.length - rest;
for (int a = 0; a < rest; a++) {
final int t1 = bytes[charPoint++];
if (t1 > 0x1f && t1 < 0x80) {
hex.append((char) t1);
} else {
hex.append('.');
}
}
hex.append("\n");
}
_log.debug( hex.toString() );
}
private static String fillHex(final int data, final int digits) {
String number = Integer.toHexString(data);
for (int i = number.length(); i < digits; i++) {
number = "0" + number;
}
return number;
}
ReceivablePacket<GameClient> msg = null;
ByteBuffer duplicateBuf = buf.duplicate();
debugPacket(duplicateBuf);
Начинаешь с Creature.moveToLocation и правишь все расчеты перемещений и текущей локацииВсем привет, может кто нибудь подскажет куда копать
наблюдаю небольшой рассинхрон положения мобов между сервером и клиентом
хорошо заметно в ближнем бою, чар подходит и ждёт несколько секунд перед ударом
или сбегается с мобом очень странно
Я в свое время "дебажил" этот баг с рассинхроном в следующий способ - на каждый тик по перемещению в сервере (там где координаты чара меняются) дропал монету без анимации - тогда рассинхрон хорошо виден в клиенте и сервере - со временем при частых кликах мыши погрешность в таймере росла и монеты падали не там, где был перс на экране (клиенте)Начинаешь с Creature.moveToLocation и правишь все расчеты перемещений и текущей локации
Собственно, годы идут - ничего не меняется ))Я в свое время "дебажил" этот баг с рассинхроном в следующий способ - на каждый тик по перемещению в сервере (там где координаты чара меняются) дропал монету без анимации - тогда рассинхрон хорошо виден в клиенте и сервере - со временем при частых кликах мыши погрешность в таймере росла и монеты падали не там, где был перс на экране (клиенте)
Смотрите в скилах самой трансформации.Всем привет!
На грации, после изучения трансформации и скила для сбора кристаллов,
при переходе в трансформацию скил сбора кристаллов не добавляется, он есть только без трансформации
пытался найти какой параметр отвечает за добавление скила, но так ничего не нашел
может кто нибудь подскажет где искать что копать)
<skill id="842" levels="1" name="Aura Bird - Owl" >
<!--
Last modify: 03.08.2009
Description: Mounts the Aura Bird - Owl.
-->
<set name="magicType" val="SPECIAL" />
<set name="icon" val="icon.skill0842" />
<set name="reuseDelay" val="10000" />
<set name="hitTime" val="2500" />
<set name="mpConsume2" val="72" />
<set name="target" val="TARGET_SELF" />
<set name="skillType" val="TRANSFORMATION" />
<set name="isReuseDelayPermanent" val="true" />
<set name="addSkills" val="884;-2;887;-2;889;-2;892;-2;911;-2;885;1;932;0;619;1;5491;1" />
<set name="npcId" val="13145" />
<set name="operateType" val="OP_ACTIVE" />
<set name="isCommon" val="true" />
<for>
<effect count="1" name="Transformation" time="18000" val="9">
<set order="0x40" stat="STR" val="41" />
<set order="0x40" stat="DEX" val="33" />
<set order="0x40" stat="CON" val="31" />
<set order="0x40" stat="INT" val="29" />
<set order="0x40" stat="WIT" val="11" />
<set order="0x40" stat="MEN" val="25" />
<add order="0x40" stat="runSpd" val="25" />
</effect>
</for>
</skill>
<------><skill id="842" levels="1" name="Aura Bird - Owl" >^M
<------><------><set name="magicType" val="SPECIAL" />^M
<------><------><set name="icon" val="icon.skill0842" />^M
<------><------><set name="reuseDelay" val="10000" />^M
<------><------><set name="hitTime" val="2500" />^M
<------><------><set name="mpConsume2" val="72" />^M
<------><------><set name="target" val="TARGET_SELF" />^M
<------><------><set name="skillType" val="TRANSFORMATION" />^M
<------><------><set name="isReuseDelayPermanent" val="true" />^M
<------><------><set name="operateType" val="OP_ACTIVE" />^M
<------><------><cond>^M
<------><------><------><and>^M
<------><------><------><------><pts can_transform="9"/>^M
<------><------><------></and>^M
<------><------></cond>^M
<------><------><for>^M
<------><------><------><!-- TODO: transform -->^M
<------><------><------><effect count="1" time="18000" name="p_transform" stackOrder="1" stackType="transform">^M
<------><------><------><------><def name="argument" val="9" />^M
<------><------><------></effect>^M
<------><------></for>^M
<------></skill>^M
skill = {[s_air_assault1];[s_air_blink1];[s_air_hold_bomb1];[s_air_energy_flare_shooting1];[s_air_energy_shot_shooting1];[s_air_energy_burster1];[s_transform_dispel1]}
additional_skill = {{76;[s_air_assault2];[s_air_hold_bomb2];[s_air_energy_flare_shooting2];[s_air_energy_shot_shooting2];[s_air_energy_burster2]};{77;[s_air_assault3];[s_air_hold_bomb3];[s_air_energy_flare_shooting3];[s_air_energy_shot_shooting3];[s_air_energy_burster3]};{78;[s_air_assault4];[s_air_hold_bomb4];[s_air_energy_flare_shooting4];[s_air_energy_shot_shooting4];[s_air_energy_burster4]};{79;[s_air_assault5];[s_air_hold_bomb5];[s_air_energy_flare_shooting5];[s_air_energy_shot_shooting5];[s_air_energy_burster5]};{80;[s_air_assault6];[s_air_hold_bomb6];[s_air_energy_flare_shooting6];[s_air_energy_shot_shooting6];[s_air_energy_burster6]};{81;[s_air_assault7];[s_air_hold_bomb7];[s_air_energy_flare_shooting7];[s_air_energy_shot_shooting7];[s_air_concentration_energy_shot7];[s_air_energy_burster7]};{82;[s_air_assault8];[s_air_hold_bomb8];[s_air_energy_flare_shooting8];[s_air_energy_shot_shooting8];[s_air_concentration_energy_shot8];[s_air_energy_burster8]};{83;[s_air_assault9];[s_air_hold_bomb9];[s_air_energy_flare_shooting9];[s_air_energy_shot_shooting9];[s_air_concentration_energy_shot9];[s_air_release_ability_shooting1];[s_air_energy_burster9]};{84;[s_air_assault10];[s_air_hold_bomb10];[s_air_energy_flare_shooting10];[s_air_energy_shot_shooting10];[s_air_concentration_energy_shot10];[s_air_energy_burster10]};{85;[s_air_assault11];[s_air_hold_bomb11];[s_air_energy_flare_shooting11];[s_air_energy_shot_shooting11];[s_air_concentration_energy_shot11];[s_air_energy_burster11]}}
public void addGiveAllSkills(final int level) {^M
lock.lock();^M
try {^M
if (level > giveLevelSkill)^M
giveLevelSkill = level;^M
else if (allSkill.size() > 0)^M
allSkill.values().stream().filter(s -> tSkills.containsKey(s.getId()) || tAdditionalSkill.containsKey(s.getId())).forEach(player::removeSkill);^M
//Обновим мап скилов которые зависят от уровня игрока.^M
fillAdditionalSkills(level, true);^M
//Тут полюбому нужно зачистить мап.^M
allSkill.clear();^M
player.getSkills().stream().filter(s -> s != null && s.getTemplate().isPassive()).forEach(s -> allSkill.put(s.getId(), s));^M
//Добавляем все скилы трансформации которые не зависят от уровня игрока.^M
allSkill.putAll(tSkills);^M
// Добавляем все скилы трансформации которые зависят от уровня игрока.^M
allSkill.putAll(tAdditionalSkill);^M
// Теперь добавим все скилы игроку.^M
allSkill.values().stream().forEach(s -> player.addSkill(s, false));^M
stateUpdate.set(false);^M
} finally {^M
lock.unlock();^M
}^M
}^M
работает, спасибо!Если добавить его в transform.txt сюда, то появляется только если изучен
Не за что, но лучше все таки сделать как надо, это можно сказать костыль.работает, спасибо!
Юзать идею можно)Вопрос, в первые просто с таким сталкиваюсь - eclipse попросту отказывается показывать ошибки, точнее как - он показывает их, но только во время компила. Сколько не компилировал через еклипс, такое вижу в первый раз) возможно кто-то знает, где в настройках проекта, это исправляется?
Или возможно у кого-то есть правильные настройки для еклипса?
Я понимаю) но уже работая с еклипсом более 5+ лет, как-то привык именно к нему, и нету желания менять что-то) возможно просто кто-то делал настройки именно под еклипс для jts. Я как бы вроде все остальное +- настроил, но вот даже если переместить куда-то класс, оно не покажет что его нету, пока просто не начнешь компилировать - тогда ошибки показывает.Юзать идею можно)
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?