Сообщений: 34
Тем: 9
Зарегистрирован: May 2013
Репутация:
-161
Подскажите как сделать, чтобы банки регенерировали НР/МР тока когда персонаж сидит, пробовал сделать но не получается, максимум получилось, это юзать ее можно только когда персонаж сидит, но когда он поднимается баночка все равно регенерирует... подскажите...:Olen':
Я бы изменил мир, но Бог не дает исходники...
Сообщений: 855
Тем: 9
Зарегистрирован: Jul 2011
Репутация:
2,852
ZefirKO Написал:Подскажите как сделать, чтобы банки регенерировали НР/МР тока когда персонаж сидит, пробовал сделать но не получается, максимум получилось, это юзать ее можно только когда персонаж сидит, но когда он поднимается баночка все равно регенерирует... подскажите...:Olen':
Посмотрите на примере работы скила Relax у хуманов.
Aka Stels
Сообщений: 1,058
Тем: 129
Зарегистрирован: May 2009
Репутация:
11,626
Иными словами:
Белая банка восполняющая HP до изменения
[SRC="xml"]<skill id="2037" levels="1" name="Greater Healing Potion">
<set name="target" val="TARGET_SELF" />
<set name="skillType" val="HOT" />
<set name="operateType" val="OP_ACTIVE" />
<set name="isPotion" val="true" />
<set name="buffDuration" val="15000" />
<set name="reuseDelay" val="10000" />
<cond msgId="113" addName="1">
<player flying="False" />
</cond>
<for>
<effect count="7" name="HealOverTime" noicon="1" time="2" val="100" stackOrder="3" stackType="hp_recover" />
</for>
</skill>[/SRC]
После изменения
[SRC="xml"] <skill id="2037" levels="1" name="Greater Healing Potion">
<set name="target" val="TARGET_SELF" />
<set name="skillType" val="HOT" />
<set name="operateType" val="OP_ACTIVE" />
<set name="isPotion" val="true" />
<set name="buffDuration" val="15000" />
<set name="reuseDelay" val="10000" />
<cond msgId="113" addName="1">
<player flying="False" />
</cond>
<for>
<effect count="0x7fffffff" name="Relax" time="2" val="2">
<add order="0x40" stat="regHp" val="5"/>
</effect>
</for>
</skill>[/SRC]
Сообщений: 34
Тем: 9
Зарегистрирован: May 2013
Репутация:
-161
йошкин кот, а й правду Релакс))) спасибо!
еще такое дело, ставлю проверку
<cond msgId="2600">
<player level="50" />
</cond>
тогда все персонажи не достигшие 50 уровня не могут юзать предмет, а как зделать так что бы можно вписать с какой лвл-а по какой можна юзать предмет, допусти 50-60 меньше лвл-а и выше лвл-а не могут юзнуть только 50-60! заранее спасибо!
Я бы изменил мир, но Бог не дает исходники...
Сообщений: 1,058
Тем: 129
Зарегистрирован: May 2009
Репутация:
11,626
Если сборка на основе лыжи, то примерно так:
DocumentBase.java ищем метод parsePlayerCondition()
внутри него ищем такое чудо:
[SRC="java"] else if ("level".equalsIgnoreCase(a.getNodeName()))
{
int lvl = Integer.decode(getValue(a.getNodeValue(), template));
cond = joinAnd(cond, new ConditionTargetLevel(lvl));
}[/SRC]
и примерно меняем на такой:
[SRC="java"]else if ("level".equalsIgnoreCase(a.getNodeName()))
{
FastList<Integer> array = new FastList<>();
StringTokenizer st = new StringTokenizer(a.getNodeValue(), ",");
while (st.hasMoreTokens())
{
String item = st.nextToken().trim();
array.add(Integer.decode(getValue(item, template)));
}
cond = joinAnd(cond, new ConditionTargetLevel(array));
}[/SRC]
После этого, пробуйте так:
[SRC="xml"]<player level="50,51,52,53,54,55,56,57,58,59,60"/>[/SRC]
Пример не идеален ибо он не удовлетворяет вашим потребностям, в итоге вы вводите кол-во лвлов через запятую. Тем более, я в java не силён и там могут быть ошибки.
Сообщений: 855
Тем: 9
Зарегистрирован: Jul 2011
Репутация:
2,852
ZefirKO Написал:йошкин кот, а й правду Релакс))) спасибо!
еще такое дело, ставлю проверку
<cond msgId="2600">
<player level="50" />
</cond>
тогда все персонажи не достигшие 50 уровня не могут юзать предмет, а как зделать так что бы можно вписать с какой лвл-а по какой можна юзать предмет, допусти 50-60 меньше лвл-а и выше лвл-а не могут юзнуть только 50-60! заранее спасибо! Опять же смотрим банки которые регенят много СР\НР\МР (не помню название, эликсиры вроде). В них разграничение по грейдам.
Aka Stels
Сообщений: 34
Тем: 9
Зарегистрирован: May 2013
Репутация:
-161
FastList<Integer> и FastList<>(); выбивает ошыбку... а так всьо хорошо=(
Я бы изменил мир, но Бог не дает исходники...
Сообщений: 314
Тем: 14
Зарегистрирован: Sep 2008
Репутация:
360
Можно дописать кондишен, а можно в L2Skill добавить параметры и в skillhandlers написать вообще новый скилл с любой механикой, которую захочется. Там это делается элементарно, нужен только эклипс и мозги.
Сообщений: 34
Тем: 9
Зарегистрирован: May 2013
Репутация:
-161
Shayne, Блин ты голова... такое елементарное и туплю так жостко... спасибо тебе огромное)))
finfan, многие бы клянчили денги за ето, а ты просто взял и написал! спасибо тебе огромное!!
Я бы изменил мир, но Бог не дает исходники...
Сообщений: 1,058
Тем: 129
Зарегистрирован: May 2009
Репутация:
11,626
ZefirKO Написал:FastList<Integer> и FastList<>(); выбивает ошыбку... а так всьо хорошо=(
Смотрите в импорты:
аля import javolution.util.FastList;
даже нет, отставить смотреть на импорты. Если у вас сборка на лыжах, то там все в порядке.
Я бы опрокинул ваш взор на ConditionPLayerLevel.java:
старый ConditionPlayerLevel
[SRC="java"]
private final int _level;
public ConditionTargetLevel(int level)
{
_level = level;
}
@Override
public boolean testImpl(Env env) {
if (env.target == null)
return false;
return env.target.getLevel() >= _level;
}
[/SRC]
его нужно переписать под ваш новый кондишен (чтобы понимал FastList).
|