Полоска каста скила и ТП

BadStealth

Величайший
Местный
Победитель в номинации 2023
Победитель в номинации 2022
Победитель в номинации 2021
Победитель в номинации 2020
Просветитель
Клиент разработчик
Старожил I степени
Преподаватель
За веру и верность форуму
Победитель в номинации 2019
Сообщения
309
Розыгрыши
0
Репутация
431
Реакции
610
Баллы
1 573
Ребят интересует следующий вопрос. Где, вернее в каком окне прописана та самая полоска, которая появляется во время каста скила или ТП- на головой перса.
Все излазил так и не понял где она прописана. И как она прописана. А главное в каком окне- хотел просто как в GOD сделать чтобы при касте писалось название выполняемого действия.
 
Просмотрел все EV_ReceiveMagicSkillUse.
Но ссылку на саму полоску не нашел. Именно на сам ProgressBar- который двигается.
 
А прогрессБар уже самому сделать надо)
 
Дак он есть. При касте скила прогрессБар уже есть. Над персом появляется. А вот где он прописан чтобы его изменить- вот что я не могу найти. К какому окну он относиться- вот что я ищу.
Просто хочу изменить его вид- и дописать имя действия которое выполняется при воспроизведении прогрессБара.
Как в Helios!
 
Дак он есть. При касте скила прогрессБар уже есть. Над персом появляется. А вот где он прописан чтобы его изменить- вот что я не могу найти. К какому окну он относиться- вот что я ищу.
Просто хочу изменить его вид- и дописать имя действия которое выполняется при воспроизведении прогрессБара.
Как в Helios!
Кажется я изначально не понял вопроса.
Возьми и нарисуй новые текстурки под прогрессбар, и что мешает выводить имя действия поверх того-же прогресс бара или выше бара, там уже как хочешь.
А он нативный, лол.
да ладно:eek:
 
Кажется я изначально не понял вопроса.
Возьми и нарисуй новые текстурки под прогрессбар, и что мешает выводить имя действия поверх того-же прогресс бара или выше бара, там уже как хочешь.

да ладно:eek:
Я и спрашиваю в каком окне искать корни этого прогрессБара... Чтобы что-то поменять надо знать где менять- я и спрашиваю где менять чтобы поменять.
 
c2ae49aad6.jpg

перерисуй эти текстурки как тебе угодно... не понимаю что еще ты хочешь изменить в прогрессбаре
 
Все сделал- имена прописал. Бар появляется- но я не знаю как расчитать время каста.
Полоска над головой при касте- показывает каст, но время показа самой полоски по какой формуле расчитывается?
Чтобы при конце каста Бар с надписью исчезал. Посмотрел нечто похожее реализовывал edKith(Persy). Как он расчитывал время показа оскна и полоски? Кто в курсе? Я по UsedSkillInfo.HitTime*1000 ставлю пока- но там на время каста влияет показатель еще скорости каста. А по какой формуле идет расчет я не знаю. Кто в курсе- подскажите.
 
UsedSkillInfo.HitTime*1000 - Зачем?? UsedSkillInfo.HitTime - это чистый каст скилла, если скилл кастует 500 мс, то по твоей формуле бар будет висеть 500000 мс, то есть почти 10 минут..
 
UsedSkillInfo.HitTime*1000 - Зачем?? UsedSkillInfo.HitTime - это чистый каст скилла, если скилл кастует 500 мс, то по твоей формуле бар будет висеть 500000 мс, то есть почти 10 минут..
Потому что при моей формуле идет 5.00*1000=5000.00 мс.
Отсчет идет в секундах.
 
Последнее редактирование:
Не смотрел в эту сторону.. тогда узнавать по какой формуле скорость каста влияет на время каста.
 
Не смотрел в эту сторону.. тогда узнавать по какой формуле скорость каста влияет на время каста.
Вот и спрашиваю по какой формуле идет расчет времени каста.
Посмотрел у себя в сборке там на стороне сервера расчет идет по такой примерно формуле.
HitTime = (((UsedSkillInfo.HitTime*333)*1000)/AttackerInfo.nMagicCastingSpeed);
Но вот если изменить расчет на сервере то получается что в клиенте расчет останется- и будет опять рассинхрон.
 
Последнее редактирование:
По идее эта формула должна быть почти одинаковой на всех серверах, которые ссылаются на офф данные.
 
Кстате... А в самом клиенте получается тоже в скилах прописано время каста скилов?
 
В датнике есть таблица skill_hit_time..
Ага посмотрел и нашел что есть различия в скилах. А теперь вопрос- при использовании моей формулы, значения берутся с клиента игры- а на самом сервере другие значения. Как итог скиловая пооска или висит дольше чем нужно или наполняется быстрее чем нужно. Как исправить? Но вот полоска каста которая над головой перса- она нормально все анимирует- все как надо. Знает кто как она берет значения?
 
Ага посмотрел и нашел что есть различия в скилах. А теперь вопрос- при использовании моей формулы, значения берутся с клиента игры- а на самом сервере другие значения. Как итог скиловая пооска или висит дольше чем нужно или наполняется быстрее чем нужно. Как исправить? Но вот полоска каста которая над головой перса- она нормально все анимирует- все как надо. Знает кто как она берет значения?
дак конечно пакетом с сервера hf 0x6B (SetupGauge)
Код:
/*
 * Copyright (C) 2004-2015 L2J Server
 *
 * This file is part of L2J Server.
 *
 * L2J Server is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * L2J Server is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package com.l2jserver.gameserver.network.serverpackets;

public final class SetupGauge extends L2GameServerPacket
{
    public static final int BLUE = 0;
    public static final int RED = 1;
    public static final int CYAN = 2;
    
    private final int _dat1;
    private final int _time;
    private final int _time2;
    private int _charObjId;
    
    public SetupGauge(int dat1, int time)
    {
        _dat1 = dat1;// color 0-blue 1-red 2-cyan 3-green
        _time = time;
        _time2 = time;
    }
    
    public SetupGauge(int color, int currentTime, int maxTime)
    {
        _dat1 = color;// color 0-blue 1-red 2-cyan 3-green
        _time = currentTime;
        _time2 = maxTime;
    }
    
    @Override
    protected final void writeImpl()
    {
        writeC(0x6b);
        writeD(_charObjId);
        writeD(_dat1);
        writeD(_time);
        writeD(_time2);
    }
    
    @Override
    public void runImpl()
    {
        _charObjId = getClient().getActiveChar().getObjectId();
    }
}
 
Назад
Сверху Снизу