Иконка ресурса

Pts Data Viewer 2

Нет прав для скачивания

Алиос

Выдающийся
Участник
Сообщения
44
Розыгрыши
0
Решения
1
Репутация
184
Реакции
56
Баллы
1 338
Алиос добавил(а) новый ресурс:

Pts Data Viewer - Программа для более удобного просмотра PTS скриптов и поиска по ним

Представляю вашему внимание небольшую софтину для более удобного(в сравнении с обычными текстовыми редакторами xD) просмотра некоторых PTS-скриптов, а также поиска по ним. Изначально писал для себя, но подумал, вдруг она может оказаться полезной для любителей частенько позаглядывать в ПТС-скрипты. На данный момент, поддерживаются лишь skilldata.txt, itemdata.txt и npcdata.txt.

Написана на Java 8, запускать можно просто jar-ник по аналогии с exe. Нужна установленная jre/jdk 8 или новее, но с...

Узнать больше об этом ресурсе...
 

Алиос обновил(а) ресурс Pts Data Viewer новой записью:

Расширение функционала

Список основных изменений:

• Добавлена поддержка npcpos.txt
• Добавлена поддержка AI. Поиск и отображение с подсветкой синтаксиса примерно на уровне Notepad++.
• Добавлены новые контекстные меню, подредактированы старые.
• Контекстное меню теперь доступно при клике на:
-Выделенный элемент в блоке отображения результатов поиска.
- Выделенный параметр в блоке отображения параметров.
- Выделенный текст во всплывающем окне детального просмотра параметра.
- Выделенный текст в блоке просмотра...

Узнать больше об этом обновлении...
 
Работа проделана большая) PTS конечно не занимаюсь, но может и пригодится когда-то)
 
Работа проделана большая) PTS конечно не занимаюсь, но может и пригодится когда-то)
Спасибо) Да я и сам PTS не занимаюсь. Она мне нужна, чтобы оттуда что-то вытаскивать для своей явы. Парсить там, смотреть как должно работать и т.д. Так что, если тоже делаете что-то подобное - авось и вам пригодится.
 
1678092617448.png
Через пару нажатий ошибка итемнейма ушла, что изменилось не ясно.
Не совсем понял для чего тхт файлы из клиента.

1678092886669.png
1678093166103.webp
Отдельно файл не дает загрузить, с клиентскими тхт тоже.
 
Посмотреть вложение 48199
Через пару нажатий ошибка итемнейма ушла, что изменилось не ясно.
Не совсем понял для чего тхт файлы из клиента.

Посмотреть вложение 48200
Посмотреть вложение 48201
Отдельно файл не дает загрузить, с клиентскими тхт тоже.
Клиентские файлы подключать необязательно. Они нужны для того, чтобы работал поиск по частичному совпадению в имени скилла/предмета/npc. Например, можно в поиске по скиллам ввести "страх", и программа найдет все скиллы, в клиентском имени которых присутствует данное слово. По поводу вашей ошибки: возможно, вы подключали сами датники напрямую из клиента, но программа не умеет их декодировать. Чтобы это работало, откройте файл-эдитом npcname-e и прочие подобные файлы, после чего просто скопируйте содержимое в обычный текстовик и подключайте его. Также можете почитать руководство в архиве - возможно, там найдутся ответы на некоторые ваши вопросы.

P.S. Прошу прощения за дабл-постинг - не успел отредактировать сообщение за 5 минут.

Если не хочет читать npcdata - прикрепите сюда файл, который Вы подключали и укажите хроники pts-сборки, с которой Вы его брали. Программа тестировалась лишь на Epilogue и HF адвексов. Если у вас другие хроники, и не работает - я попробую посмотреть ваш файл и раздебажить ошибки. Тогда, возможно, завезу поддержку ваших хроник.
 
Если не хочет читать npcdata - прикрепите сюда файл, который Вы подключали и укажите хроники pts-сборки, с которой Вы его брали. Программа тестировалась лишь на Epilogue и HF адвексов. Если у вас другие хроники, и не работает - я попробую посмотреть ваш файл и раздебажить ошибки. Тогда, возможно, завезу поддержку ваших хроник.
хроники Grand Crusade, Salvation, Fafurion

Архив данных отправил вам в личку.
 
Практически прикрутил поддержку GOD+ хроник, но есть проблема: реальные статы считает, скорее всего, неправильно, ввиду изменения формулы на этих хрониках. Я знаю формулы расчета на Gracia/HF, но понятия не имею, по каким формулам считать Hp/Mp/атаку/защиту и прочее. Если есть знающие люди, готовые помочь - буду вам крайне признателен за любую информацию. Интересуют формулы для хроник выше GOD, а также интересно, менялись ли они между этими хрониками, и если да, то на каких что менялось, за что отвечают новые атрибуты, такие как LUC и CHA?

P.S. Имею ввиду вот эти формулы.

Java:
public static int calcExp(final int level, final float acquire_exp_rate)
{
    return (int) (acquire_exp_rate * level * level);
}

public static double getLevelMod(final int level)
{
    return (89. + level) / 100.0;
}

public static int calcMaxHp(final float base, final int CON)
{
    double result = base;
    switch(config.CHRONICLES)
    {
        case GRACIA_HF:
        case GOD:
            result = base * getConBonus(CON);
            break;
    }

    return (int) result;
}

public static int calcMaxMp(final float base, final int MEN)
{
    double result = base;
    switch(config.CHRONICLES)
    {
        case GRACIA_HF:
        case GOD:
            result = base * getMenBonus(MEN);
            break;
    }

    return (int) result;
}

public static int calcPhysAtk(final float base, final int STR, final int level)
{
    double result = base;
    switch(config.CHRONICLES)
    {
        case GRACIA_HF:
        case GOD:
            result = base * getStrBonus(STR) * getLevelMod(level);
            break;
    }

    return (int) result;
}

public static int calcMagAtk(final float base, final int INT, final int level)
{
    double result = base;
    switch(config.CHRONICLES)
    {
        case GRACIA_HF:
        case GOD:
            result = base * getIntBonus(INT) * getLevelMod(level);
            break;
    }

    return (int) result;
}

public static int calcPhysDef(final float base, final int level)
{
    double result = base;
    switch(config.CHRONICLES)
    {
        case GRACIA_HF:
        case GOD:
            result = base * getLevelMod(level);
            break;
    }

    return (int) result;
}

public static int calcMagDef(final float base, final int MEN, final int level)
{
    double result = base;
    switch(config.CHRONICLES)
    {
        case GRACIA_HF:
        case GOD:
            result = base * getMenBonus(MEN) * getLevelMod(level);
            break;
    }

    return (int) result;
}

public static int calcMoveSpd(final float base, final int DEX)
{
    double result = base;
    switch(config.CHRONICLES)
    {
        case GRACIA_HF:
        case GOD:
            result = base * getDexBonus(DEX);
            break;
    }

    return (int) result;
}
 
Можно вопрос? Зачем считать реальные статы мобов без пассивок? Зачем в принципе нужны эти данные, если они по сути ничего не значат?
 
Можно вопрос? Зачем считать реальные статы мобов без пассивок? Зачем в принципе нужны эти данные, если они по сути ничего не значат?
Согласен. С каким нибудь exp\sp это ещё применимо, но вот по статам уже вопрос. Для подобного нужно реализовывать дополнительное чтение массива мульти_скилл_листа, с последующим чтением самих скиллов и их бонусов, что бы привести статы НПЦ в реальную реальность.
Да и то всё равно останутся некоторые мобы\боссы, который помимо мультилиста имею ещё и какие то бонусные эффекты в АИ, которые аналогично поменяют их статы при тех или иных условиях.

А по факту да - статы то посчитать можно, но то, что в моба забито +35% м дефа, 70% м атаки и допустим 200% хп - уже никто не учтёт и конечный стат из тулзы всё равно будет не тот, что в игре.

Слишком заморочно и по факту имеет крайне мало смысла. Я бы лучше озаботился шарами тулз для генерации дроплистов\рандом\капсюлед, что бы малюткам было удобнее. Вот такие вещи действительно имеют место.
 
Хороший вопрос! Причин несколько:
1) Никто и не говорит об идеальной точности соответствия с реальными статами мобов, но согласитесь, что основные характеристики NPC с учетом CON-ов и левелбонусов всяких, пусть даже без пассивок и баффов из АИ, куда ближе к правде, чем лишь их базовые значения. У большинства же мобов, за редким исключением, пассивки и баффы в из АИ лишь незначительно влияют на статы, в то время как базовые значения от реальных отличаются кардинально, то есть, таким образом, в большинстве случаев можно будет примерно понять, что моб из себя представляет. Саму программу, в идеале, хотелось бы сделать универсальной и полезной как для ПТС-админов, так и для ява-разрабов, а также продвинутых игроков, сделать из неё некую универсальную базу знаний, которая кушает данные из ПТС-сборки и клиента интересующих человека хроник, и отображает их в более-менее читаемом виде. А если учесть тот факт, что в доброй половине ява-сборок у нпц отсутствует куча стат-функций, а те же хп/атаки/защиты вписываются сразу посчитанными с учетом конов/левелов, но без учета пассивок - то, что покажет программа, будет +/- соответствовать тому, что прописано в XML нпц их явы, а также всяких базах знаний в инете.
2) Я подумываю в будущем добавить возможность считать статы с учетом пассивок, а если это делать - без просчетов до скиллов все равно не обойтись.
3) Если этот функционал уже есть, не хотелось бы его урезать или выпускать обнову, в которой для других поддерживаемых хроник эти статы будут считаться ошибочно.

P.S. По поводу тулзов для генерации дроплистов: эта программа позиционируется больше как информер, чем как редактор/генератор. Если такое и делать, то отдельным софтом. А вот с чем действительно стоит заморочиться, так это с читаемостью имеющихся данных.
Например, при дабл-клике на дроплист форматировать его вывод, приводя в более читаемый вид в стиле xml в явах.

1679255895558.png
 
Интересуют формулы для хроник выше GOD, а также интересно, менялись ли они между этими хрониками, и если да, то на каких что менялось, за что отвечают новые атрибуты, такие как LUC и CHA?
1679258809132.webp

Правда для нпц она бесполезна, там в базе у всех 40, что дает бонус множителя 1
 
А если учесть тот факт, что в доброй половине ява-сборок у нпц отсутствует куча стат-функций, а те же хп/атаки/защиты вписываются сразу посчитанными с учетом конов/левелов, но без учета пассивок - то, что покажет программа, будет +/- соответствовать тому, что прописано в XML нпц их явы, а также всяких базах знаний в инете.
У кого как - я к примеру в хмл держу именно базовые значения, т.е. такие же как в птс.
А к конечным значениям, к которым применяются уже бонусы от пассивок и т.п., я эти базовые значения привожу при загрузке хмлок при старте сервера.
---
Формулы расчета этого всего по идее никак не поменялись - те же что во времена до ГоД, просто отличия в конечных результатах из-за того что поменялись значения бонусов базовых стат, ну т.е. от STR/CON/INT и т.д.
Ну и еще левелмод для 100+ уровней чуть по другому считается, не как для 1-99 уровней.
 
У кого как - я к примеру в хмл держу именно базовые значения, т.е. такие же как в птс.
А к конечным значениям, к которым применяются уже бонусы от пассивок и т.п., я эти базовые значения привожу при загрузке хмлок при старте сервера.
---
Формулы расчета этого всего по идее никак не поменялись - те же что во времена до ГоД, просто отличия в конечных результатах из-за того что поменялись значения бонусов базовых стат, ну т.е. от STR/CON/INT и т.д.
Ну и еще левелмод для 100+ уровней чуть по другому считается, не как для 1-99 уровней.
бля, ну все правильно сделал. :)
 
  • Ха-ха-ха
Реакции: kick
У кого как - я к примеру в хмл держу именно базовые значения, т.е. такие же как в птс.
А к конечным значениям, к которым применяются уже бонусы от пассивок и т.п., я эти базовые значения привожу при загрузке хмлок при старте сервера.
---
Формулы расчета этого всего по идее никак не поменялись - те же что во времена до ГоД, просто отличия в конечных результатах из-за того что поменялись значения бонусов базовых стат, ну т.е. от STR/CON/INT и т.д.
Ну и еще левелмод для 100+ уровней чуть по другому считается, не как для 1-99 уровней.
Может и не менялись, но я посмотрел, какую белиберду мне насчитало по старым формулам у того же Баюма в хрониках Grand Crusade - мне статы показались нелогичными. Но может я и ошибаюсь.
1680381972896.webp
 
Может и не менялись, но я посмотрел, какую белиберду мне насчитало по старым формулам у того же Баюма в хрониках Grand Crusade - мне статы показались нелогичными. Но может я и ошибаюсь.
Посмотреть вложение 48769
Возможно из-за того, что бонус от статов считается по какой-то старой формуле, а не берется статично из скриптов.
 
Возможно из-за того, что бонус от статов считается по какой-то старой формуле, а не берется статично из скриптов.
Смотря какие статы ты имеешь ввиду? Если бонусы от STR, CON и т.д, то их подтянул из скриптов гранд крусейда.
 
Смотря какие статы ты имеешь ввиду? Если бонусы от STR, CON и т.д, то их подтянул из скриптов гранд крусейда.
Да, именно их и имел ввиду. Тогда нужно вникать. Это первое, что пришло в голову.
 
Может и не менялись, но я посмотрел, какую белиберду мне насчитало по старым формулам у того же Баюма в хрониках Grand Crusade - мне статы показались нелогичными. Но может я и ошибаюсь.
ну вот для примера у меня Баюм -
С такими базовыми статами (у меня некоторые статы отличаются от оффовских, т.к. я его усилял немного - слишком он слабоват по сути получается с стандартными значениями)
XML:
    <!-- Баюм / Baium -->
    <npc id="29020" name="Баюм" title="">
        <stat name="type" value="Boss" />
        <stat name="ai" value="Baium" />
        <stat name="class" value="LineageMonster.baium" />
        <stat name="level" value="78" />
        <stat name="rewardExp" value="11090077" />
        <stat name="rewardSp" value="2661" />
        <stat name="collisionHeight" value="174.00" />
        <stat name="collisionRadius" value="65.00" />
        <stat name="baseSTR" value="164" />
        <stat name="baseCON" value="111" />
        <stat name="baseDEX" value="55" />
        <stat name="baseINT" value="188" />
        <stat name="baseWIT" value="78" />
        <stat name="baseMEN" value="149" />
        <stat name="baseHpMax" value="53342293" />
        <stat name="baseHpReg" value="750" />
        <stat name="baseMpMax" value="18000" />
        <stat name="baseMpReg" value="99" />
        <stat name="basePAtk" value="6616.34824" />
        <stat name="basePDef" value="3240.718563" />
        <stat name="baseMAtk" value="25862.37832" />
        <stat name="baseMDef" value="2395.807785" />
        <stat name="basePAtkSpd" value="253" />
        <stat name="baseMAtkSpd" value="2362" />
        <stat name="baseRunSpd" value="120" />
        <stat name="baseWalkSpd" value="80" />
        <stat name="baseAtkRange" value="40" />
        <stat name="baseCritRate" value="40" />
        <stat name="pAccuracyMod" value="4.75" />
        <stat name="pEvasionMod" value="7" />
        <stat name="aggroRange" value="1000" />
        <ai_params>
            <set name="maxPursueRange" value="20000" />
            <set name="selfAggroChance" value="100" />
            <set name="madnessChance" value="5" />
        </ai_params>
        <minions>
            <minion npc_id="29021" count="5" />    <!-- Архангел / Archangel -->
        </minions>
        <skills>
            <skill id="4045" level="1" />    <!-- Устойчивость к Обессиливанию Босса / Full Magic Attack Resistance -->
            <skill id="4127" level="1" />    <!-- Атака Баюма / Baium Attack -->
            <skill id="4256" level="1" />    <!-- Устойчивость к Оглушению / Stun Resistance -->
            <skill id="4415" level="3" />    <!-- Одноручный Меч / One-handed Sword -->
            <skill id="4416" level="1" />    <!-- Нежить / Undead -->
            <skill id="14765" level="4" />    <!-- Сопротивление Вампиризму / Blood Siphon Resistance -->
        </skills>
        <attributes>
            <defence attribute="fire" value="0" />
            <defence attribute="water" value="0" />
            <defence attribute="wind" value="0" />
            <defence attribute="earth" value="0" />
            <defence attribute="holy" value="0" />
            <defence attribute="unholy" value="0" />
        </attributes>
    </npc>
 
Назад
Сверху Снизу