Показать сообщение отдельно
Непрочитано 24.05.2011, 12:05   #1
Участник

Автор темы (Топик Стартер) Редактируем DAT файлы при помощи Excel.

Итак это моя первая статья на этом форуме. Это не копипаст. Если вам она понравилась, поблагодарите =)

Итак, что же нам нужно?

1) L2FileEditors
2) Microsoft Office Excel
3) Сам клиент Lineage II

Замечу, что данный гайд подойдет для любых хроник, достаточно только найти нужный L2FileEditors. И так приступим:

Для начала нам нужно разкодировать наш DAT-файл программой L2FileEditors. Для примера я буду редактировать файл etcitemgrp.dat (файл содержит информацию о разных предметах). Чтобы открыть файл, вам надо выставить ваши хроники и кодировку клиента. (Зачастую надо менять только хроники, а кодировку оставлять 413)



Вот мы открываем файл и получаем трудноредактируемые набор букв. Аля:



Но Excel нам поможет привести этот сумбур в порядок. Для того чтобы небыло никаких ошибок из за того что вы не скопировали какую нибудь строчку, делайте все в точности так как я скажу:
  • Кликайте в любой участок текста, только что открывшегося файла левой клавишей мыши
  • Нажимайте Ctrl + A
  • Нажимайте Ctrl + C
  • Затем открывайте Excel
  • Нажимайте Ctrl + V

Дальше надо выровнять ширину столбцов, делается это так:
  • Нажимайте Ctrl + A
  • Нажимайте Формат -> Столбец -> Автоподбор ширины (Microsoft Office Excel 2003)

Вот тот же участок текста, что я показывал вверху, но теперь он в Excel.



Как мы видим, столбики все выровнялись и работать с ними стало гораздо удобнее. Так же нам теперь открываются возможности Excel'я в работе с таблицами. Например мы можем быстро заменить один столбец другим (К примеру, при русификации файлов), а так же весьма интересная вещь это сравнение двух таблиц. Например у вас есть чужой DAT файл и вы хотите сравнить ваш DAT с этим. Тут вам так же поможет Excel.
  • Нажимаем Вставка -> Лист (И так пока у нас не будет 3 листа)
  • В первый лист вставляем текст нашего DAT-файла
  • Во второй вставляем DAT-файл с которым будем сравнивать.
  • Открываем третий лист и вставляем в первую ячейку текст
PHP код:
=ЕСЛИ(Лист1!A1=Лист2!A1;" ";"х"
Затем нам следует нажать Enter и "протянуть" эту формулу по всем ячейкам.
Протяжка формулы делается так:
Наведите курсор на правый нижний край ячейки с формулой:



Когда курсор примет форму крестика, нажмите левую клавишу мыши (ЛКМ) и не отпуская проведите влево на то количество столбцов, которое есть в ваших DAT-файлах и отпускаем ЛКМ:



Затем повторяем такую же операцию, но теперь уже протаскиваем все ячейки нашей строки вниз на то количество строк, которые есть в наших DAT-файлах:



Если взяли больше строк, чем в файлах, ничего страшного. В итоге, что мы имеем: Если ячейка A1 первого листа отличается от ячейки A1 второго листа то в ячейке A1 третьего листа будет стоять "х" если ячейки одинаковые то будет стоять " " (пробел). Если оба файла были одинаковые то на листе 3 вы не найдете ни одного "х", если файлы отличались то вы увидите что то типо:



Тогда смотрите соответствующие участки файлов и принимайте меры.

Ах да, чуть не забыл. После того как вы закончите редактирование файлов, их надо закодировать обратно:
  • Кликайте в любой участок текста, вашего файла в Excel
  • Нажимайте Ctrl + A
  • Нажимайте Ctrl + C
  • Затем открывайте L2FileEditors
  • Нажимайте Ctrl + A
  • Нажимайте Ctrl + V
Все, можете сохранять файл. Будьте уверены, этот способ проверялся много раз и на многих клиентах. Если что то не работает значит переделайте с нуля и строго по гайду.

P.S. маленький бонус начинающим патче-писателям. Если вы редактируете какой либо файл и встретили там строку вида:
PHP код:
a,Bla bla bla\
и хотите ее заменить на русские буквы, то вам надо "a," заменить на "u," иначе L2FileEditors выдаст вам ошибку. В итоге наша русифицированная строка будет иметь вид:
PHP код:
u,Бла бла бла\
И ошибок не будет. Удачи в патче писании!

Мой первый гайд, не забывайте. Made by Tre.

Последний раз редактировалось Ashe; 01.03.2014 в 03:19.
trevolta вне форума Отправить сообщение для trevolta с помощью ICQ Ответить с цитированием
Сказали спасибо: