Перейти к содержимому


Фотография

Скриптинг в GTA IV


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 215

#81 JNikc

JNikc

    Активный участник

  • Пользователи
  • PipPipPip
  • 36 сообщений
  • Пол:Мужчина
  • Город:SPB

Отправлено 02 June 2009 - 16:59

IDE Delphi? Нравится! 1. Но в данном контексте получается, что между пользователем скриптового языка и игрой встает нечто большее, чем могло бы быть. Нужно просто сгенерировать dll на основе паскаль текста и функций asi (=dll) файла? Ну так для этой цели не нужна IDE Delphi достаточно компилятора. 2. Вот ещё нашёл: Delphi 10 lite, это ветка продукта Delphi в котором соответсвующий dcc32 свободный для некомерческого использования. 3. Т.е. по умолчанию подразумевается, что Обладатель ГТА4 для скриптерства должен иметь Delphi (который, если по честному, стоит ого-го). Обладателю GTASA достаточно было заполучит SB3+CLEO. 4. Использования маленькой вставки-компилятора позволяет получить IDE (в смысле уже у SB++), как раньше.

Сообщение отредактировал JNikc: 02 June 2009 - 17:12


#82 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 03 June 2009 - 06:02

Врятли кто станет задумываться о легальности dcc32, хотя на форумах уровня gtaF все может быть.

P.S. Еще есть Turbo Delphi (из пакета Turbo Explorer) бесплатный и довольно удобный.

Сообщение отредактировал Dageron: 03 June 2009 - 06:07

в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#83 JNikc

JNikc

    Активный участник

  • Пользователи
  • PipPipPip
  • 36 сообщений
  • Пол:Мужчина
  • Город:SPB

Отправлено 03 June 2009 - 12:39

Если у меня не пропадет интернет (что может быть), попробую выложить пример такого Дельфи-Хукера-Без-Дельфи.

#84 Seemann

Seemann

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 266 сообщений
  • Пол:Мужчина
  • Город:Россия, Иркутск/СПб

Отправлено 03 June 2009 - 14:42

Я в начале тоже думал про FPC, но он оказался тем еще мастдайным убожеством. Проще все-таки делфу качнуть (есть сборки 7-й версии размером в 20-60 MB)

#85 JNikc

JNikc

    Активный участник

  • Пользователи
  • PipPipPip
  • 36 сообщений
  • Пол:Мужчина
  • Город:SPB

Отправлено 04 June 2009 - 01:06

P.S. Еще есть Turbo Delphi (из пакета Turbo Explorer) бесплатный и довольно удобный.


Ну это собственно единственный свободный компилятор от Borland, etc. Только там, насколько помню нет ком. строчного варианта.

Проще все-таки делфу качнуть (есть сборки 7-й версии размером в 20-60 MB)


Да, наверно проще, и лучше даже. При таком методе скриптерства (язык высокого уровня + asi библиотека) мощнее будет.

Но редактор + консольный компиллер - вместе = несколько мегабайт. Просто выигрышь в простоте для тех, кого отпугивает delphi и кто только начал пробывать писать скрипты...

Сообщение отредактировал JNikc: 04 June 2009 - 01:10


#86 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 05 June 2009 - 08:21

JNikc, расскажи про такой способ компилирования поподробнее. Какие возможности этот dcc32 представляет?Мне идея очень даже понравилась с таким вот IV-компилятором. :)
По идее, можно реализовать и C++ скрипты так же, и подсветку синтаксиса для Delphi/C++/lua (а почему бы и нет? Alice удобна отсутствием компилятора в принципе). Кроме того если я не ошибаюсь, первый SCO-компилятор тоже будет ком. строчный.
А значит, объединив это все в одном "красивом" gui получается очень удобная программа.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#87 JNikc

JNikc

    Активный участник

  • Пользователи
  • PipPipPip
  • 36 сообщений
  • Пол:Мужчина
  • Город:SPB

Отправлено 06 June 2009 - 20:48

Наконец возродился И-нет!

Dageron, фишка в том, что ВСЁ что мы делаем в Дельфи (в смысле компиляции) может проделать консольная dcc32. Работает она так - запускается из ком. строки с разными параметрами, например параметр -b означает полную компиляцию, берет из dcc32.cfg путь к стандартным модулям (windows, sysutilits...) и компилит все dpr, которые ей передали, все pas, которые указаны в uses должны быть прописаны либо в dcc32.cfg, либо быть в текущей папке. Так можно откомпилировать всё что угодно, вплоть до многооконной разработки... И для этого нужен только компилятор < 1 mb, удивительно...

Ладно, я взял старый dcc из Delphi 5 1999 года и прикрепил его к текстовому редактору, можно уже компилить что угодно, даже если в системе нет дельфи... Единствоенно - код должен быть написан в стиле Дельфи 5. А ScriptingEnums.pas использует новый синтаксис, такого вида:

eIntStatistic = (
	STAT_MISSIONS_PASSED = 253, //Missions passed
	STAT_MISSIONS_FAILED = 254, //Missions failed
	STAT_MISSIONS_ATTEMPTED = 255, //Missions attempted

вот на этом старый компилятор брыкается... Так что нужно либо переписать по старому (вопрос к знатокам), либо поставить другой компилятор - просто заменить dcc.

Наконец-то загрузил. Код редактора + компилятор:

Сообщение отредактировал JNikc: 06 June 2009 - 21:19


#88 JNikc

JNikc

    Активный участник

  • Пользователи
  • PipPipPip
  • 36 сообщений
  • Пол:Мужчина
  • Город:SPB

Отправлено 06 June 2009 - 21:25

По идее, можно реализовать и C++ скрипты так же, и подсветку синтаксиса для Delphi/C++/lua (а почему бы и нет? Alice удобна отсутствием компилятора в принципе). Кроме того если я не ошибаюсь, первый SCO-компилятор тоже будет ком. строчный.
А значит, объединив это все в одном "красивом" gui получается очень удобная программа.


Это конечно пока из области фантастики, но хотель бы иметь общий ГУИ и подключать к нему (в виде плагинов, консольных приложений, библиотек) компиляторы, для разных целей - для SA, для GTA4 в принципе, при наличии самих компиляторов это кажется естественным.

В примере выше я по нажатии на run, например, беру код на паскале, добавляю заголовки, окончание, генерирую cfg, генерирую батник по всем правилам, а потом его же и запускаю, появляется черное окошко, и управление передается компилятору (какому угодно), и тот уже пишет сообщения. так даже прикольно.

#89 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 07 June 2009 - 15:12

Молодец, отличная программа получилась. Это безусловный прорыв будет во всем мировом GTA-скриптинге если в перспективе удастся объединить под одной "крышей" все доступные хуки.
Разумеется, Delphi - важнее всего на данный момент, да и кроме того дальше нашего форума он пока, к сожалению, не популярен. На gtaforums люди обрадуются.

И очень хочется поучаствовать в разработке) Вот, например, моя готовая подсветка синтаксиса:
Изображение
Разумеется, могу сделать и лучше, добавить настройки как в SB.

Кстати, помните про несовместимость C++ хука (на котором Seemann базировал Delphi) с третьим патчем?
Сейчас такая штука появилась интересная -смотрите тут. Сделано из исходников Aru с добавлением интересной возможности работы с DirectX и интерфейсом игры. Мультиплеерные возможности не в счет...
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#90 JNikc

JNikc

    Активный участник

  • Пользователи
  • PipPipPip
  • 36 сообщений
  • Пол:Мужчина
  • Город:SPB

Отправлено 07 June 2009 - 18:32

Молодец, отличная программа получилась. Это безусловный прорыв будет во всем мировом GTA-скриптинге если в перспективе удастся объединить под одной "крышей" все доступные хуки.


;;;-))) Не понял только, серьезно ты или нет? Я даже почти ничего не делал - в Дельфях есть готовый шаблон для MDI-приложений. А SynEdit для подцветки я тоже уже прицепил. Прикольно. Осталось только треугольничек play поставить, чтобы откомпилированная программа сразу запускалась.

Вобщем средствами IDE Delpi можно написать аналог IDE Delphi, добавить dcc32, и получится IDE Delphi в миниатюре :-) Вот такое метопрограмирование (но не по копирайту)...

Примечание по dcc32 - оное будет работать и без конфига, просто нужно ВСЕ модули кинуть в ту же папку, и лучше в откомпилированном виде, не pas а dcu.

А программку эту я пересмотрел. Назвал её Kontact Edit (KEdit - cool proga :-0). Она должна предоставлять все удобства просто в редактировании текста, брать язык интерфейса из ini файлов папки lang, естесвенно запоминать все свои настройки и последние файлы. А далее , в чем собственно КОНТАКТ, сканировать в папке PlugIn те же ini файлы, в ini файлах мы прописываем путь к плагину, способ передать ему ком. строчные параметры, и синтаксис. Получается такой список плагинов, их можно составлять в линию, например:

ИСХОДНЫЙ ТЕКСТ -> ФИЛЬТР1 (macro.ini) -> ФИЛЬТР2 (compiller.ini) -> КОНЕЧНЫЙ ФАЙЛ.

Способ подцветки определяется по ini файлу заглавного плагина...

Например если в системе установлен Дельфи, то плагин дельфи можно вызывать просто dcc32 из ком.строки и не копировать ничего. Также при установке MSDEV иногда прописывается ком. компилятор в комстрочные команды.

Вот такая задумка, даже если не использовать в GTA Sctng , то может быть полезно, когда нужно пропускать файл(ы) через несколько программ (прям как в НИксаХ)...

Хотел ещё сделать окошко ком. строки полупрозрачным, но ему функция SetLayeredWindowAttributes паралельна. ???

#91 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 08 June 2009 - 08:23

Вообще-то я действительно серьезно. Но, как вижу, ты и сам уже со всем управился (и достаточно быстро).
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#92 JNikc

JNikc

    Активный участник

  • Пользователи
  • PipPipPip
  • 36 сообщений
  • Пол:Мужчина
  • Город:SPB

Отправлено 09 June 2009 - 19:20

На самом деле я действительно серьёзно.


Тоже хочется чего нибудь запрограмировать? Я только за! То что нужно поменять Memo на SynMemo, сделать настройки, добавить других удобств, это само собой.

А есть какие-нибудь (реально безумные) идеи? Что-нибудь такое,,, когда пишешь, нельзя все предусмотреть, было бы хорошо послушать предложения. И, конечно, если есть идеи или какой-нибудь код, то отлично!

Между тем я немного поменял интерфейс и написал пару классов... Ту програму убрал, скоро прибудет новая итерация. А пока покажу пару идей (тож скриншотов дабавил). Вот например Sanny Builder - это и редактор, и компилятор и средства взаимодействия с GTA, поэтому я так моделирую его работу:

ТЕКСТ -> Macro -> Sanny Builder -> Copy -> GTASA

Макро - это пока только макрообработка без параметров (просто замена), Санни можно вызвать с параметрами ком. строки, поэтому можно сделать консольным "плагином", GTA тоже вызывается с параметрами - для быстрой загрузки без заставок. Ну а copy копирует полученный файл в нужную папку (если все ОК). Эта последовательность сразу дорабатывает, компилирует скрипт передо мной и запускает GTA.

А дельфи скрипт работает тогда примерно так (ещё не пробывал):

ТЕКСТ -> Copy -> Delphi -> Copy -> GTA4.

На будующее я сделал ещё так:

ТЕКСТ -> CompillerSCO -> Copy -> GTA4.

За неимением (?) CompillerSCO выделяется красным, но в будущем можно будет его добавить.

Конечно в такой схеме может возникнуть куча багов не связанных с программой - компилятор не скомпилирует, или не так скомпилирует, а цепочка будет продолжаться (в принципе можно добавить в INI доп. параметры, чтобы это обойти).

Если все это запустить на другом компе, то скорее всего все будет недоступным, потому что пути к программам в INI нужно переписать.

Ну вот что сейчас уже есть... ???

Прикрепленные файлы

  • Прикрепленный файл  1.jpg   65.07К   36 загрузок
  • Прикрепленный файл  2.jpg   23.98К   24 загрузок
  • Прикрепленный файл  3.jpg   25.3К   24 загрузок


#93 JNikc

JNikc

    Активный участник

  • Пользователи
  • PipPipPip
  • 36 сообщений
  • Пол:Мужчина
  • Город:SPB

Отправлено 11 June 2009 - 16:31

Снова привет. Такая история - брыкнулся Дельфи на Висте... Пишет, что не найден файл и указывает реальный путь к нему же. Так вот, сделал небольшой скрипт и стал писать ентот KEdit непостредственно внутри KEdit. Запускаю скрипт, это без Де, указан только путь, и все компилится! А на системе вообще нет SynEdit, оказалось там были приатачены dcu, и я их собой приволок. Вот. Пока не очень часто открываю, но может на выходных займусь.

Прикрепленные файлы

  • Прикрепленный файл  4.jpg   121.99К   18 загрузок


#94 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 12 June 2009 - 04:37

Ну это вообще - компилировать программу из самой себя). Лучше Delphi переустанови. p.s. Может выложишь текущую версию, очень хотелось бы посмотреть что это такое.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#95 JNikc

JNikc

    Активный участник

  • Пользователи
  • PipPipPip
  • 36 сообщений
  • Пол:Мужчина
  • Город:SPB

Отправлено 13 June 2009 - 15:31

Дельфи поставил) А то больно неудобно текст редактировать... Насчет выложить код - там все на живую пока и многие вещи только предполагаются, а вообще достаточно тривиально. Как то хочется ещё сделать. Тем не менее штуковина уже работает и я её пользую. Просто незаменимо, потому что все ети интерпретаторы, которые под windows только консольные - ими же невозможно пользоваться, замучиешься. Пока буду кормить скриншотами)). 1. Батники больше не используются, всё через прямые вызовы. Получается очень быстро. 2. Что касается само-компиляции, то она предполагается (окоцко на 1 сш). Т.е. можно рассматривать прямо в программе исходный код из папки ../source, редактировать его, нажимать Rebuild All. При этом программа закрывается, перекомпилируется и снова запускается. Такой вот бред)... Соотвественно прикладывать бинарник к исходникам не имеет смысла, он может постоянно само-обновляться. 3. Как я говорил "плагины" могут быть одиночными из ini, либо составленными в линии, которые сохраняются в pil. В настройках появились ассоциации расширений либо с одиночными плагинами, либо с линиями. При этом запускается это дело 4 способами: 1. Несколько файлов на обработку, этим я пока не занимался. 2. По умолчанию - весь файл на обработку. 3. Если выделен фрагмент текста, то только фрагмент. 4. Режим интерпретации, по нажитию enter строчка отправляется на обработку и появляется результат. 4. В ПРИНЦИПЕ, хотелось бы иметь плагины и в dll, потому что это в сто раз быстрее, и вообще как-то по-людски - у некоторых интерпреторов exe только обращаются к dll. Ну и пара примеров: На 2 скрине работа в интерпретаторе Ruby через прогу. На 3 - обработка фрагмента Лисповской программы - считаем квадратный корень. Т.к. lua - тож интерпретатор, можно его также подключить, ну не знаю... Ещё делал такую тему - прописывал htm подобные файлы стандартному браузеру, определял head и tail (добавляются в начало и в конец) как <html><head><title>TEST</title></head><body> и </body></html>. И теперь по выделению куска текста и нажатии F9, можно тестировать html-код - сразу запускается браузер и видно результат.

Прикрепленные файлы

  • Прикрепленный файл  5.jpg   21.39К   17 загрузок
  • Прикрепленный файл  6.jpg   56.15К   18 загрузок
  • Прикрепленный файл  7.jpg   60.75К   18 загрузок


#96 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 14 June 2009 - 15:16

Можно пожелать лишь только удачи в дальнейших разработках. Так, чтобы получилась действительно удобная среда для скриптинга в GTA IV.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#97 Вадим Буренков

Вадим Буренков

    Участник

  • Пользователи
  • PipPip
  • 12 сообщений
  • Пол:Мужчина
  • Город:Тверь
  • Интересы:Программирование, GTA, Crysis, SannyBuilder, коньки, велик.

Отправлено 15 June 2009 - 09:19

Классная вещь получается.Жду релиза! :rolleyes: А на каком языке ContactEdit пишется, проэкту помошь требуется? Может я чем помочь смогу? Знаю паскаль, Delphi и немного C++(мне только исполнилось 15 поэтому все изучал сам с книгой и чего то могу не знать) Раньше писал моды на GTASA (скрипты на SannyBuilder, создавал карты, менял кнфиги игры) а теперь хочу с гта4 попробовать.

#98 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 15 June 2009 - 14:40

Программа на Delphi пишется. Если интересно, то начни лучше именно со скриптов к Delphi Hook.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#99 Вадим Буренков

Вадим Буренков

    Участник

  • Пользователи
  • PipPip
  • 12 сообщений
  • Пол:Мужчина
  • Город:Тверь
  • Интересы:Программирование, GTA, Crysis, SannyBuilder, коньки, велик.

Отправлено 15 June 2009 - 17:24

Столкнулся с проблемой: у меня GTA от 1С и пропатчена русским обновлением 1.0.2.1. Проблемы с установкой Delphi Hook исчезнут если я установлю английский патч 1.0.2.0? Seeman написал что обновление с поддержкой 1.0.3 будет после выхода С++ хука, а он уже вышел(сооющение №71).

#100 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 15 June 2009 - 17:28

Поставь второй английский патч. С ним работает 100%.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012




Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных