Парсинг скилов из 507 клиента [ Orc Village - Warg ]

Thatgun

Свой человек
Участник
Сообщения
36
Розыгрыши
0
Репутация
27
Реакции
57
Баллы
588
Где в клиенте эти данные <effect level=...>могут быть ?

Это из скилов серва от L2Scripts

<effect level="1">
<i_p_attack power="694" crit_rate="5" ignore_def_mode="2" ignore_def_factor="5" />
</effect>

<effect level="1">
<p_physical_attack equip_categories="all" value="10" mode="per" />
<p_physical_attack equip_categories="all" value="60" mode="diff" />
</effect>


Аналогичные данные из скилов Mobius Suoerion 502P


Облазил все dat файлы с которыми может работать Mobius Dat Editor.

Ни чего по <effects> не нашел.

Искал и по значениям тоже
<value level="1">738</value>
 
Павер в скилнейме, остальное в скилгруп.
Вот например скилл [190] Fatal Strike

вижу power тут


вот Skillgrp.txt
здесь что-то наподобие этого не вижу: crit_rate="5" ignore_def_mode="2" ignore_def_factor="5"



Дат эдитор не все забирает из Skillgrp.dat ?
 
все проще - некоторых значений просто нету на стороне клиента.
Корейцы так же любят иногда делать разные умения (на клиенте написано пвп защита, на сервере просто защита) (на клиенте написано 20%, на сервере 15%)
 
а откуда тогда все это берут ?

тот же самый [190] скил в сборке от Скриптов



он же в сборке Mobius Superion


это ток тип эффекта "PhysicalDamage" или "i_p_attack"
а их же там целая прорва разных типов эффектов в других скилах
 
взяли скиллы, которые были в слитых ПТС для примера - ошибка.
Логично что их просто спарсили.
 
Ты про оболочку?
Модельку я сам файнтюнил.
 
Оффтоп:
в овере, первых рев подобный кошмар был, и в большенстве Interlude сурсов так же осталось, а еще формулы кое какие не так считают как хотелось бы (хотя у мобиуса все так же).
"фишки" у скриптов и мобиуса, почти одинакомые, все "почти одинаково поломано/порезано тупой пилой"...
 
как запилишь что то по парсерам, поделись или описание обучения AI скинь).
Ну а что...
 
ну не знаю - в большинстве сборок все же юзаются те же таблицы значений для более компактного описания и все такое
а тут какое-то бессмысленное раздутие описания скилла наблюдается

просто для понимания пример описания того же 190-го скилла у меня - компактно и в целом все наглядно и понятно
XML:
    <skill id="190" levels="37" name="Фатальный Удар" pts_name="s_fatal_strike11">
        <stat name="icon" value="icon.skill0190" />
        <stat name="magic_type" value="physic" />
        <stat name="magic_level" value="{38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74}" />
        <stat name="effect_point" value="{183 188 193 198 203 208 213 218 223 228 233 237 242 247 252 257 261 266 271 275 279 284 288 292 296 300 304 307 311 314 317 320 323 326 328 331 333}" />
        <stat name="mp_consume2" value="{36 37 38 38 40 41 42 43 44 46 47 48 50 50 51 52 53 55 56 57 58 60 61 61 62 63 65 66 67 68 69 70 71 72 73 74 75}" />
        <stat name="hit_time" value="1.08" />
        <stat name="hit_cancel_time" value="0.5" />
        <stat name="cool_time" value="0.72" />
        <stat name="reuse_delay" value="3" />
        <stat name="cast_range" value="40" />
        <stat name="effective_range" value="400" />
        <stat name="target" value="one" />
        <stat name="skill_type" value="damage" />
        <stat name="operate_type" value="A1" />
        <stat name="next_action" value="attack" />
        <cond msg_id="113">
            <using weapon="sword;buster;twohandsword;blunt;twohandblunt;staff;twohandstaff" />
        </cond>
        <for>
            <effect name="i_p_attack" params="{738 784 833 884 937 992 1049 1109 1171 1236 1302 1371 1443 1516 1592 1670 1750 1832 1917 2003 2091 2181 2272 2366 2460 2556 2653 2751 2850 2950 3050 3151 3252 3353 3453 3553 3653};15;1;0" />
        </for>
    </skill>
 
Оффтоп:
ТА понимаю, когда начинал с овером было в чем разобраться, а потом уж пошло и поехало, и стало вовсе пофиг в каком виде записана инфа - главное понимание.
Но скрипты - всегда стандарты "разбивали", ничего же не изменилось.

Даже имея под руками на сегодня кучу LLM, можно неделю ее помучать и тебе перепишут пол ДП под формат что ты желаешь - и он будет простой и интуитивный (помни про скриптов и то что они все стандарты "на шлют", как и своих клиентов)...

Ну и , много формул/триггеров когда не работают по актуальному патчу (который на сервер использую), то в целом не важен формат записи, даже такой вот "безсмысленный".

Сорян, вспомнил общение с ТП скриптов))
 
Это делали для гибкости, а еще в строчке можно глаза сломать пока насчитаешь нужный уровень
Еще можно создавать диапозоны, если значение повторяется

Еще можно через формулы сокращать и делать заточки не прописывая каждый уровень
 
да ты бог, кому смертным до тебя... формат формируется командой для удобства команды, а не для мнения экспертов по типу тебя. если человек работает через IDE и руки не из ж, то формат довольно таки читаемый и удобный к редактированию.
 
Ну расчет по формулам я тоже юзаю + так же могу по необходимости и давать стату/эффект только конкретным уровням/подуровням скилла
XML:
    <skill id="10021" levels="7" name="Подъем Щита" pts_name="s_knight_power_blocking1" enchant_levels="20">
        <table name="#val1">0</table>
        <table name="#val2">0</table>
        <stat name="icon" value="icon.skill10021_2" />
        <stat name="magic_type" value="physic" />
        <stat name="magic_level" value="{85 90 95 99 100 102 104}" />
        <stat name="effect_point" value="2" />
        <stat name="mp_consume2" value="{58 61 63 66 69 72 75}" />
        <stat name="hit_time" value="0.5" />
        <stat name="reuse_delay" value="60" />
        <stat name="target" value="self" />
        <stat name="skill_type" value="buff" />
        <stat name="operate_type" value="A2" />
        <stat name="auto_use" value="buff" />
        <stat name="abnormal_type" value="knight_buff3" />
        <stat name="abnormal_level" value="10" />
        <stat name="abnormal_time" value="{10}" />
        <stat name="abnormal_visual_effect" value="shield_defence2" />
        <stat name="next_action" value="none" />
        <cond msg_id="113">
            <and>
                <using kind="shield" />
                <player check_abnormal="knight_buff3;10;3" />
            </and>
        </cond>
        <enchant route="1" name="Время" levels="3+">
            <table name="#abnormal_time" type="add">{enchant_level * 0.5}</table>
        </enchant>
        <enchant route="2" name="Могущество" levels="3+">
            <table name="#val1" type="add">{0.6 + enchant_level * 0.4}</table>
        </enchant>
        <enchant route="3" name="Ветер" levels="3+">
            <table name="#val2" type="add">{enchant_level * 2}</table>
        </enchant>
        <for>
            <effect name="p_effect">
                <add order="0x40" stat="damageShield" value="10" levels="4+" />
                <mul order="0x30" stat="pDef" value="{50 60 70 70 80 90 100};per" />
                <mul order="0x30" stat="pDefCritRate" value="-100;per" />
                <mul order="0x30" stat="pAtk" value="#val1;per" sub_levels="2001:2020" />
                <add order="0x40" stat="runSpd" value="#val2" sub_levels="3001:3020" />
            </effect>
        </for>
    </skill>
 
Имхо удобнее чем ПТС формат скиллов - тяжело придумать. Максимально просто, удобно и совместимо, особенно если учитывать, что скиллы с одним ИД не обязательно должны иметь схожую механику, да и ситуаций, когда у скилла например есть второй уровень, но нет первого, тоже довольно распространены. Поэтом одна запись на один индекс - самое простое и удобное для формата «создал и забыл». Да и KV-пары разбирать через табуляцию в сотни раз проще, чем писать адские парсеры под такие монструозные xml

Ваще, в ладвадеве такая же хуета как и в линукс дистрибутивах) Уже 20+ лет кодится, а какого-то общего, унифицированного формата нет.
 
Последнее редактирование:
По мне так наоборот птс формат слишком громоздкий - в большинстве скиллов от уровня к уровню меняются зачастую одно-два значения, а в итоге приходится для каждого уровня копипастить кучу текста.
я конечно понимаю что подобное проще как автоматом генерить, так и считывать/разбирать, но выглядит это как-то монструозно, особенно для скиллов с заточкой к примеру.

З.Ы. а по тому что разные уровни скилла могут кардинально отличаться по свойствам/эффекту - никто не мешает для подобных случаев и в хмл полностью раздельно отдельные уровни расписывать - я у себя как раз для подобных ситуаций такую возможность тоже сделал в свое время.
 
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…