Массовая замена данных в xml

HolySaint

Vagabond
Появилась необходимость в массовой замене параметров npc, таких как уровень, дроп, а именно нужно найти всех npc с титулом Raid Boss, выставить им уровень 80, убрать миньонов и добавить нужный дроп, плюс возможно в последующем понадобиться заменить и статы на одни. Как и чем лучше такую работу делать?
 
Появилась необходимость в массовой замене параметров npc, таких как уровень, дроп, а именно нужно найти всех npc с титулом Raid Boss, выставить им уровень 80, убрать миньонов и добавить нужный дроп, плюс возможно в последующем понадобиться заменить и статы на одни. Как и чем лучше такую работу делать?
Notepad++
 
ну мне кажется всё таки проще будет ручками всех рейдов переделать ибо их не так много
 
Каким образом? Шаблон или регулярное выражение как использовать?
Там есть массовый поиск и замена, по файлу отдельно или по всем файлам в папке
 
Ручками не проще не разу. Я знаю про поиск и замену в notepad, но ты сам понимаешь что говоришь? Ведёшь ты в поиск Raid Boss, и что дальше? Менять то нужно не титул, а всё что ниже, или ты предлагаешь всем npc влупить 80 лвл и дроп отдельными заменами? Когда всё в бд хранились было проще с этим, пара запросов и готово, я не думаю что с файлами труднее, просто знать бы как.
 
Ручками не проще не разу. Я знаю про поиск и замену в notepad, но ты сам понимаешь что говоришь? Ведёшь ты в поиск Raid Boss, и что дальше? Менять то нужно не титул, а всё что ниже, или ты предлагаешь всем npc влупить 80 лвл и дроп отдельными заменами? Когда всё в бд хранились было проще с этим, пара запросов и готово, я не думаю что с файлами труднее, просто знать бы как.
ну как бы сначала меняешь левел для всех рейд босс, затем дроп и тд по очереди, а так да, с бд удобнее, но конечно и в бд не сильно то и правильно
 
Ручками не проще не разу. Я знаю про поиск и замену в notepad, но ты сам понимаешь что говоришь? Ведёшь ты в поиск Raid Boss, и что дальше? Менять то нужно не титул, а всё что ниже, или ты предлагаешь всем npc влупить 80 лвл и дроп отдельными заменами? Когда всё в бд хранились было проще с этим, пара запросов и готово, я не думаю что с файлами труднее, просто знать бы как.
Не вижу проблем. не хочешь не заморачивайся, меняй ручками, хочешь разберись как работает поиск и замена, выработай шаблон и меняй массово, ты спросил как, я ответил. Я все делаю через нотепад. Там же есть куча плагинов.
 
Не вижу проблем. не хочешь не заморачивайся, меняй ручками, хочешь разберись как работает поиск и замена, выработай шаблон и меняй массово, ты спросил как, я ответил. Я все делаю через нотепад. Там же есть куча плагинов.
В чем твой ответ? В названии программы? Дек её и так каждый знает, а вот как, ты и близко не ответил.
 
Last edited:
Попробуй через поиск в нотепаде++ найти всех РБ, закоменть их (<!-- -->) и вынеси их ид в отдельный файл, там где уже есть "шаблонный" рб с нужными тебе статами и дропом, и потом ctrl+c > ctrl+v, и только ид меняй.

P.S.: не кидай камнями)
 
Кажется данный пост не читал?
Ручками не проще не разу. Я знаю про поиск и замену в notepad, но ты сам понимаешь что говоришь? Ведёшь ты в поиск Raid Boss, и что дальше? Менять то нужно не титул, а всё что ниже, или ты предлагаешь всем npc влупить 80 лвл и дроп отдельными заменами? Когда всё в бд хранились было проще с этим, пара запросов и готово, я не думаю что с файлами труднее, просто знать бы как.
 
Может кому пригодится, если разберусь как так же менять дроп, дополню.
1634645755619.png
Все Raid Boss будут 80 уровня.
Найти: (?<=title="Raid Boss")(.*?)(name="level" value=")(.*?)(")
Заменить на: \1\280\4
Все Raid Fighter будут 80 уровня.
Найти: (?<=title="Raid Fighter")(.*?)(name="level" value=")(.*?)(")
Заменить на: \1\280\4
Аналогично меняем статы РБ.
 
Ребята из фриланса запили скрипт на perl под мой нужды, делюсь с вами.
Можно массово заменить как дроп так и споил так и другие данные, разным вариациями настройки скрипта.
Структура архива:
1635337227700.png
OUT - обработанные файлы
XML - файлы для обработки
edit_xml.pl - скрипт для поиска и замены дропа по атрибутам
edit_xml_sweep.pl - скрипт для поиска и замены спойла по атрибутам
perl.dll
perl.exe
perl.txt
RATED_GROUPED.XML - на что менять дроп
SWEEP.XML - на что менять споил

Выполнить скрипт в командной строке: perl название_скрипта.pl
Например: perl edit_xml.pl
 

Attachments

  • Edit_XML_Perl.zip
    340.3 KB · Views: 23
Ребята из фриланса запили скрипт на perl под мой нужды, делюсь с вами.
Можно массово заменить как дроп так и споил так и другие данные, разным вариациями настройки скрипта.
Быстро лвл выставить через замену массовую <set name="level" value="76"/>, подскажите как с помощью вашего скрипта дроп лист заменить но только что бы у Боссов, а у миньенов не добавлять, боссы и их файтеры сразу в одном XML


Code:
<!--my RATED_GROUPED start-->
    <rewardlist type="RATED_GROUPED">
    <group chance="100.0">
        <reward item_id="1111" min="1" max="1" chance="20.0"/>
        <reward item_id="2222" min="1" max="1" chance="20.0"/>
        <reward item_id="3333" min="1" max="1" chance="20.0"/>
        <reward item_id="4444" min="1" max="1" chance="20.0"/>
        <reward item_id="5555" min="1" max="1" chance="20.0"/>
    </group>
    </rewardlist>
<!--my RATED_GROUPED stop-->

Я так понимаю по этому файлу заменит у всех подрят NPC в XML файле?
Как запустить замену ?
 
Last edited:
29000-29099.xml
25500-25599.xml
25400-25499.xml
25300-25399.xml
25200-25299.xml
25100-25199.xml
25000-25099.xml


тут правишь своих Raid Boss
 
Проще написать скрипт, который будет парсить ваш xml и делать то, что вам нужно.
 
Появилась необходимость в массовой замене параметров npc, таких как уровень, дроп, а именно нужно найти всех npc с титулом Raid Boss, выставить им уровень 80, убрать миньонов и добавить нужный дроп, плюс возможно в последующем понадобиться заменить и статы на одни. Как и чем лучше такую работу делать?
Можешь и на экселе + notepad
 
Быстро лвл выставить через замену массовую <set name="level" value="76"/>, подскажите как с помощью вашего скрипта дроп лист заменить но только что бы у Боссов, а у миньенов не добавлять, боссы и их файтеры сразу в одном XML


Code:
<!--my RATED_GROUPED start-->
    <rewardlist type="RATED_GROUPED">
    <group chance="100.0">
        <reward item_id="1111" min="1" max="1" chance="20.0"/>
        <reward item_id="2222" min="1" max="1" chance="20.0"/>
        <reward item_id="3333" min="1" max="1" chance="20.0"/>
        <reward item_id="4444" min="1" max="1" chance="20.0"/>
        <reward item_id="5555" min="1" max="1" chance="20.0"/>
    </group>
    </rewardlist>
<!--my RATED_GROUPED stop-->

Я так понимаю по этому файлу заменит у всех подрят NPC в XML файле?
Как запустить замену ?
На самом деле работы на 5 минут.
Заходим на l2j.ru, берём айди по отдельности и заменяем дроп.
Если 76-го уровня боссы только нужны, то по времени ещё меньше будет.
 
На самом деле работы на 5 минут.
Заходим на l2j.ru, берём айди по отдельности и заменяем дроп.
Если 76-го уровня боссы только нужны, то по времени ещё меньше будет.
лвл боссов я сделал с помощью обычной замены в notepad++ я хотел этот скрипт понять как запустить что бы заменить массово именно через него что бы вручную не вставлять
 
Back
Top