You are not logged in.
Pages: 1
Идея программы в том, что-бы помочь скриптерам искать опкоды.
Программа должна упорядочить опкоды (не обязательно все) деревом категорий опкодов. При клике по Идея возникла ещё два года назад, я пытался написать эту программу прошлым летом. Сейчас я вновь возратился к этой идее и написал программу OTV v0.00001 pre-pre-alpha. Скачать OpcodeTreeView можно Здесь. Скриншот здесь
Так как я совершенно не разбираюсь в программировании, программа получилась тормознутая . Стоит ли продолжать или она не представляет интереса?
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
Идея хорошая, реализация взгляну, но думаю тоже хорошо
-=YariK=-
http://my-mods.org.ua/
Offline
В текущем состоянии программа вряд ли способна конкурировать с Opcode Search Tool.
То, что показывается русский вариант опкода - это для кого может быть очень полезно, но версия SASCM.INI от San'OK безнадежно устарела. За прошедшие полтора года была найдена масса новых опкодов.
Что касается категорий опкодов, более удобным вариантом мне кажется является движок вики:
http://www.gtamodding.com/index.php?tit … ry:OpCodes
Здесь потихоньку идет описание известных опкодов и их классификация в подгруппы.
Я, разумеется, прошу не воспринимать мои замечания как призыв остановить работу над программой Из нее вполне можно сделать настоящую конфетку, а потом подстроить под список команд IV (когда дело дойдет до скриптинга в IV).
Я столкнулся с проблемой: SASCM.ini из этого сайта нестандартен
Читай ini как текстовый файл построчно или в TstringList.
Offline
Функция показывания по типам заработала, но скорость от этого упала. Надо как-нибудь оптимизировать.
[small][/small]
Offline
Ты как работаешь со строками при поиске? Читаешь каждый раз файл; загружаешь файл в Treeview и читаешь оттуда; грузишь файл в память (TStringList, TiniFile) и читаешь из памяти?
Я в OST загружаю opcodes.txt в TStringList и работаю с ним. Получается очень быстро.
Offline
Я читаю через 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
Идеальным вариантом было бы написать свой класс, который ОДИН раз загружал бы список опкодов, анализировал каждую строку, присваивал ей определенные флаги (тип) и сохранял бы определенным образом, позволяющим быстро получить нужную строку по ее типу. Потом тебе требовалось бы выводить только нужные опкоды из этого класса, а не перелопачивать весь список каждый раз.
Самым слабым местом в подобных реализациях является перевод строки в число (StrToInt). Для 2k опкодов это съедает уйму времени. Такой перевод нужно делать один раз за весь цикл работы (при запуске), тем более что сами строки при работе с программой не меняются. Я например использую подобный метод в саннике, что дает существенный прирост скорости потом при де/компиляции.
Offline
Спасибо за совет ! Создал класс TOpcodesList, всё сделал в начале загрузки - программа строит список почти мгновенно! Завтра доделаю и выложу.
.
Также теперь из программы можно открыть обозреватель чтобы получить информацию о текущем опкоде из Wiki, и копировать все выделенные опкоды(раньше копировала только один).
[---]
Добавление от 12.06.2008:
Скачать можно Отсюда (гиперссылка).
Если не скачивается, пишите.
Last edited by VcSaJen (12-06-2008 04:32)
[small][/small]
Offline
Готова новая версия программы. Основные задуманные функции заработали, самые основные категории есть, так что можно считать бетой и выявлять многочисленные (предположительно) ошибки. Функция "расширенного" поиска заработала, но он не чета OST, так что есть функция вызова OST прямо из программы для поиска в текущей категории.
Скачать можно здесь: OTV02b.rar.
Что-то мало активности, для раскрутки я добавил ссылку в подпись.
Предлагайте новые категории, подкатегории, уточнение существующих, и типы опкодов.
[small][/small]
Offline
2VcSaJen : ты б лучше гуи доделал для Interface Editor'a , я б его как оффициальный выложил бы
Offline
Ты предложи, что доделать, я доделаю. Там только не хватает настройки альфы для здоровья и брони (в игре глючно смотрится, чем меньше альфа, тем темнее некоторые записи), и ещё координату названия машины неточно определяет.
Гуи это инструкция (guide)?
[small][/small]
Offline
Pages: 1