Сообщений: 1,058
Тем: 129
Зарегистрирован: May 2009
Репутация:
11,626
Interlude
L2jTeon
Доброго времени стуок.
Возник вопрос, который скорее всего касается клиента игры, но все же я не уверен точно.
Как вы можете видеть, на чаре есть 8 фокусов, однако на 8-ой зарядке, вместо: Ваша сила повысила свой уровень до 8, выдается другое сообщение которое говорит о том, что фокусации достигли предела...
Я заглядывал в клиент, но там все впорядке, я смотрел при каком условии выдается данное сообщение, но там тоже все впорядке:
Код: public synchronized void increaseCharges(int count, int max)
{
if (_charges.get() >= max)
{
sendPacket(SystemMessageId.FORCE_MAXLEVEL_REACHED);
return;
}
// if no charges - start clear task
if (_charges.get() == 0)
restartChargeTask();
if (_charges.addAndGet(count) >= max)
{
_charges.set(max);
sendPacket(SystemMessageId.FORCE_MAXLEVEL_REACHED);
}
else
sendPacket(SystemMessage.getSystemMessage(SystemMessageId.FORCE_INCREASED_TO_S1).addNumber(_charges.get()));
sendPacket(new EtcStatusUpdate(this));
}
значение max он определяет из skills.getMaxCharges, которое в свою очередь получает значение из .xml файла с самим скилом:
<set name="maxCharges" val="8" />
Вопрос: Что мои кривые руки не так сделали? Ткните носом в мою какашку. Спасибо!
#############################################################
Тему можно закрывать, я оказался лютым раком.
Сообщений: 145
Тем: 4
Зарегистрирован: Dec 2011
Репутация:
-420
finfan Написал:Interlude
L2jTeon
Доброго времени стуок.
Возник вопрос, который скорее всего касается клиента игры, но все же я не уверен точно.
Как вы можете видеть, на чаре есть 8 фокусов, однако на 8-ой зарядке, вместо: Ваша сила повысила свой уровень до 8, выдается другое сообщение которое говорит о том, что фокусации достигли предела...
Я заглядывал в клиент, но там все впорядке, я смотрел при каком условии выдается данное сообщение, но там тоже все впорядке:
Код: public synchronized void increaseCharges(int count, int max)
{
if (_charges.get() >= max)
{
sendPacket(SystemMessageId.FORCE_MAXLEVEL_REACHED);
return;
}
// if no charges - start clear task
if (_charges.get() == 0)
restartChargeTask();
if (_charges.addAndGet(count) >= max)
{
_charges.set(max);
sendPacket(SystemMessageId.FORCE_MAXLEVEL_REACHED);
}
else
sendPacket(SystemMessage.getSystemMessage(SystemMessageId.FORCE_INCREASED_TO_S1).addNumber(_charges.get()));
sendPacket(new EtcStatusUpdate(this));
}
значение max он определяет из skills.getMaxCharges, которое в свою очередь получает значение из .xml файла с самим скилом:
<set name="maxCharges" val="8" />
Вопрос: Что мои кривые руки не так сделали? Ткните носом в мою какашку. Спасибо!
#############################################################
Тему можно закрывать, я оказался лютым раком.
зачем сразу в ядро лезть, в клиенте просто перепишите строчку с сообщением как Вам удобно и всё
Улыбаемся и машем:bye:
Сообщений: 247
Тем: 3
Зарегистрирован: Feb 2012
Репутация:
1,300
Предположим, что max = 8 и _charges = 7.
Код: if (_charges.get() >= max)
{
sendPacket(SystemMessageId.FORCE_MAXLEVEL_REACHED);
return;
}
ок, => Эта проверка вообще не имеет смысла:
Код: if (_charges.addAndGet(count) >= max)
{
_charges.set(max);
sendPacket(SystemMessageId.FORCE_MAXLEVEL_REACHED);
}
конечно же в том контексте, в котором Вы понимаете это сообщение.
Данное сообщение также означает, что игрок достиг максимального уровня зарядки, а не превысил его. То есть, это просто информационное сообщение, а не сообщение, о том что зарядиться больше нельзя. Если понимать его так, то с кодом все ок.
Если Вы хотите, чтобы показывало "Ваш уровень зарядки достиг 8 уровня.", то сделайте строгое неравенство:
Код: if (_charges.addAndGet(count) > max)
Но это будет бред, т.к. в этот участок когда ядро вообще никогда не попадет из-за проверки выше по коду.
По сути, все у Вас хорошо и менять ничего вообще не нужно, зря беспокоитесь.
// aka Deft
Сообщений: 25
Тем: 4
Зарегистрирован: Feb 2013
Репутация:
0
ребята чтоб не создавать новую тему.. хочу создать скил но пока не понял как сделать то что я хочу.. нужно чтобы этот скил регенил мп по 15 % за тик от его общего мп...не могу значения выставить правельные, кто подскажет нужные значения?
Сообщений: 794
Тем: 31
Зарегистрирован: Dec 2012
Репутация:
2,838
Saintly Написал:нужно чтобы этот скил регенил мп по 15 % за тик от его общего мп...не могу значения выставить правельные, кто подскажет нужные значения?
В % <effect count="1" name="ManaHealPercent" time="0" val="15" />
тик - что это?
Сообщений: 25
Тем: 4
Зарегистрирован: Feb 2013
Репутация:
0
Krasavella Написал:В % <effect count="1" name="ManaHealPercent" time="0" val="15" />
тик - что это? тик я имел ввиду time его по стандарту выставлю 3 тоесть чтоб раз в 3 секунды )) спс за подсказку )
просто он у меня будет активным скилом как акурэси к примеру...
Сообщений: 794
Тем: 31
Зарегистрирован: Dec 2012
Репутация:
2,838
Saintly Написал:тик я имел ввиду time чтоб раз в 3 секунды ))
<skill id="90001" levels="1" name="Mana Potion">
<set name="magicType" val="SPECIAL" />
<set name="icon" val="icon.etc_reagent_blue_i00" />
<set name="power" val="3" />
<set name="magicLevel" val="1" />
<set name="itemConsumeId" val="728" />
<set name="itemConsumeCount" val="1" />
<set name="isHandler" val="true" />
<set name="target" val="TARGET_SELF" />
<set name="skillType" val="HOT" />
<set name="operateType" val="OP_ACTIVE" />
<set name="altUse" val="true" />
<for>
<effect count="1" name="ManaHealPercent" time="3" val="15" />
</for>
</skill>
Сообщений: 25
Тем: 4
Зарегистрирован: Feb 2013
Репутация:
0
<table name="#ManaHealPercent"> 15 </table>
<effect count="1" name="ManaHealOverTime" time="3" noicon="1" val="#ManaHealPercent"/>
а не так случайно будет если он будет хилять мп раз в 3 сек?
Сообщений: 1,058
Тем: 129
Зарегистрирован: May 2009
Репутация:
11,626
Saintly Написал:тик я имел ввиду time его по стандарту выставлю 3 тоесть чтоб раз в 3 секунды )) спс за подсказку )
Я хз какие хроинки у вас, но в ИТ такое сделать можно, если создать отдельный стат прибавляющий МП реген (первое что пришло в голову)
например за тик овтечает стат прикрепляемый к эффекту:
<effect name="Buff" time="600" val="0">
<mul order="0x30" stat="regMp" val=" 2.0"/>
</effect>
сейчас мы увеличили регенерацию МП чара на 100% но не от общего кол-ва МП чара, а от его current регена МП.
чтобы всунуть 15% регена от макс МП можно сделать как описанно выше, но тогда нужно будет добавить расчитать все по времени.
Например если фокусации глада висят 10 минут то эффект будет выглядить примерно так:
<effect count=" 200" name="ManaHealPercent" time" 3" val=" 15"/>
Количество тиков
интервал между тиками
кол-во отрегениваемой маны
Есть второй вариант, если для вас принципиально, чтобы мп регенилось по тикам установленным в игре, а не по эффекту, тогда нужно будет скорее всего создат ьсвой стат, который потом может ещё и пригодится, соответственно смотреться это будет примерно так:
<effect name="Buff" time="600" val="0">
<add order="0x40" stat=" regMpPercent" val=" 15"/>
</effect>
Разницы по сути нет.
Сообщений: 25
Тем: 4
Зарегистрирован: Feb 2013
Репутация:
0
finfan, а если я его хочу сделать активным то надо поставить effect count="-1" тоесть бесконечно?
Krasavella, спс но я хочу без необходимых материалов, хотел как альтернативу сделать активный скил для регена мп
|