#1 08-06-2008 11:15

VcSaJen
Registered: 25-08-2006
Posts: 217

Проект Opcodes Tree View

Идея программы в том, что-бы помочь скриптерам искать опкоды.
Программа должна упорядочить опкоды (не обязательно все) деревом категорий опкодов. При клике по  Идея возникла ещё два года назад, я пытался написать эту программу прошлым летом. Сейчас я вновь возратился к этой идее и написал программу OTV v0.00001 pre-pre-alpha. Скачать OpcodeTreeView можно Здесь. Скриншот здесь
Так как я совершенно не разбираюсь в программировании, программа получилась тормознутая sad. Стоит ли продолжать или она не представляет интереса?
P.S.: Я столкнулся с проблемой: SASCM.ini из этого сайта нестандартен: значения VERSION, PUBLISHER, DATE не относятся ни к какой секции, прочитать их (TIniFile) невозможно.
[---]
12.06.2008: Обновил ссылку.

22.06.2008: Новую версию скачать можно здесь: OTV02b.rar

Last edited by VcSaJen (22-06-2008 04:26)


[small][/small]

Offline

#2 08-06-2008 11:27

Yarik
Registered: 22-02-2008
Posts: 173
Website

Re: Проект Opcodes Tree View

Идея хорошая, реализация взгляну, но думаю тоже хорошо smile

Offline

#3 08-06-2008 18:11

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Проект Opcodes Tree View

В текущем состоянии программа вряд ли способна конкурировать с Opcode Search Tool.

То, что показывается русский вариант опкода - это для кого может быть очень полезно, но версия SASCM.INI от San'OK безнадежно устарела. За прошедшие полтора года была найдена масса новых опкодов.

Что касается категорий опкодов, более удобным вариантом мне кажется является движок вики:
http://www.gtamodding.com/index.php?tit … ry:OpCodes
Здесь потихоньку идет описание известных опкодов и их классификация в подгруппы.

Я, разумеется, прошу не воспринимать мои замечания как призыв остановить работу над программой smile Из нее вполне можно сделать настоящую конфетку, а потом подстроить под список команд IV (когда дело дойдет до скриптинга в IV).

Я столкнулся с проблемой: SASCM.ini из этого сайта нестандартен

Читай ini как текстовый файл построчно или в TstringList.

Offline

#4 09-06-2008 10:59

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Проект Opcodes Tree View

Функция показывания по типам заработала, но скорость от этого упала. Надо как-нибудь оптимизировать.


[small][/small]

Offline

#5 09-06-2008 15:28

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Проект Opcodes Tree View

Ты как работаешь со строками при поиске? Читаешь каждый раз файл; загружаешь файл в Treeview и читаешь оттуда; грузишь файл в память (TStringList, TiniFile) и читаешь из памяти?

Я в OST загружаю opcodes.txt в TStringList и работаю с ним. Получается очень быстро.

Offline

#6 10-06-2008 07:43

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Проект Opcodes Tree View

Я читаю через TIniFile (а в TreeView в пунктах Data - массив строк с номерами опкодов) (а отсеивание по типам я сделал так - каждому типу соответствует номер, а в OpTypesList (TStringList) - номера типов для каждого опкода, sar - это массив строк (от 0 до 3000) номеров опкодов.
CheckListBoxType - это TCheckListBox, их Index - это номер типа.

      b:=true;
      for j := 0 to CheckListBoxType.Count-1 do
        if not CheckListBoxType.Checked[J] then
          if OpTypesList.Values[sar[i]]<>'' then
            begin
              b:=StrToInt(OpTypesList.Values[sar[i]])<>J;
              if b=false then break;
            end;
      if b then begin... вывод опкода

, я уже раньше делал загрузку через TStringList, но я наверное криво это сделал, потому-что грузилось долго. Попробую сейчас.
Есть идея при выделении нескольких пунктов дерева показывать объединение или пересечение списков, и я даже это попытался реализовать, но заработала с многочисленными ошибками. Попробую исправить.

Last edited by VcSaJen (10-06-2008 07:59)


[small][/small]

Offline

#7 10-06-2008 08:19

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Проект Opcodes Tree View

Идеальным вариантом было бы написать свой класс, который ОДИН раз загружал бы список опкодов, анализировал каждую строку, присваивал ей определенные флаги (тип) и сохранял бы определенным образом, позволяющим быстро получить нужную строку по ее типу. Потом тебе требовалось бы выводить только нужные опкоды из этого класса, а не перелопачивать весь список каждый раз.

Самым слабым местом в подобных реализациях является перевод строки в число (StrToInt). Для 2k опкодов это съедает уйму времени. Такой перевод нужно делать один раз за весь цикл работы (при запуске), тем более что сами строки при работе с программой не меняются. Я например использую подобный метод в саннике, что дает существенный прирост скорости потом при де/компиляции.

Offline

#8 11-06-2008 13:52

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Проект Opcodes Tree View

Спасибо за совет grin! Создал класс TOpcodesList, всё сделал в начале загрузки - программа строит список почти мгновенно! Завтра доделаю и выложу. smile .
Также теперь из программы можно открыть обозреватель чтобы получить информацию о текущем опкоде из Wiki, и копировать все выделенные опкоды(раньше копировала только один).
[---]
Добавление от 12.06.2008:
Скачать можно Отсюда (гиперссылка).

Если не скачивается, пишите.

Last edited by VcSaJen (12-06-2008 04:32)


[small][/small]

Offline

#9 22-06-2008 04:22

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Проект Opcodes Tree View

Готова новая версия программы. Основные задуманные функции заработали, самые основные категории есть, так что можно считать бетой и выявлять многочисленные (предположительно) ошибки. Функция "расширенного" поиска заработала, но он не чета OST, так что есть функция вызова OST прямо из программы для поиска в текущей категории.
Скачать можно здесь: OTV02b.rar.

Что-то мало активности, для раскрутки я добавил ссылку в подпись.
Предлагайте новые категории, подкатегории, уточнение существующих, и типы опкодов.


[small][/small]

Offline

#10 22-06-2008 17:33

Alexander
Registered: 19-08-2006
Posts: 184
Website

Re: Проект Opcodes Tree View

2VcSaJen : ты б лучше гуи доделал для Interface Editor'a , я б его как оффициальный выложил бы

Offline

#11 23-06-2008 03:41

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Проект Opcodes Tree View

Ты предложи, что доделать, я доделаю. Там только не хватает настройки альфы для здоровья и брони (в игре глючно смотрится, чем меньше альфа, тем темнее некоторые записи), и ещё координату названия машины неточно определяет.
Гуи это инструкция (guide)?


[small][/small]

Offline

Board footer

Powered by FluxBB