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


Фотография

Скриптинг в LCS и VCS (PSP/PS2)


Сообщений в теме: 74

#41 SILENT_Pavel

SILENT_Pavel

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

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 21 August 2012 - 01:07

Было бы здорово продолжить разбирать Debug функции лсс и всс, я тут пошептался с теми кто копает параллельно всс функции, так вот еще никто не смог реализовать такие вещи как загадочные просмоторщики зданий, моделей автомобилей, зданий и остальных. Правда есть информация что часть из них лишь обрывок недееспособного кода, по крайней мере в всс, часть рабочая, надеюсь это не так на самом деле...

#42 Dageron

Dageron

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

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


Отправлено 21 August 2012 - 11:34

Код там действительно обрывками. Даже в *.gxt есть текстовые строки к этим функциям, хотя в main.scm они нигде не используются. Из работоспособного - находил только меню редактирования погоды (только в LCS; в VCS, возможно, оно тоже есть). Проглядел мельком тему на gtaf, увидел какие вопросы там были. Меню отладки разблокировано на main.scm с PS2-версии, поэтому если поставить его на PSP, то в любом случае нужно начинать новую игру. У меня пока работы хватает, но в любом случае постараюсь поработать над полноценным редактором скриптов (декомпилятор у меня уже написан, работает конечно помедленнее чем в SB, но код выдает почти такой же; сейчас надо делать парсер и компилятор).
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#43 SILENT_Pavel

SILENT_Pavel

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

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 21 August 2012 - 21:36

Еще на гтаф существует темка по конвертированию кодов формата cheatdevice в ARMAX и остальные, а получается возможно перенести object spawner или многие значения недостаточно переконвертировать, а еще и просчитать заново?

#44 maXedR

maXedR

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений
  • Город:Львов


Отправлено 23 August 2012 - 18:42

SILENT_Pavel и Dageron
А можно ссылку на разблокированное debug-меню?

#45 SILENT_Pavel

SILENT_Pavel

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

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 23 August 2012 - 19:08

@maXedR
Пожалуйста

#46 LEX SAFONOV

LEX SAFONOV

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

  • Пользователи
  • PipPipPip
  • 56 сообщений

Отправлено 24 August 2012 - 09:34

Копался сёдня снова в ЛСС мейне, там довольно много вещиц для отладки игры оставили. Например очень полезная вещь - телепорт в нужную локацию, точнее там набор локаций, в которые можно телепортнуть игрока. Пропуск миссий тоже упоминали уже в теме, как и карс-спавнер\Просмотрщик моделей. Ещё отрыл выбор оружий(тоже упоминали). Added: нашёл выбор времени и погоды(упоминали). Так же есть просмотрщик катсцен, просмотрщик анимаций. Ещё отрыл чит-поток, который накидывает игроку полные жизни и броню + кидает денег 100000. Попробовать переделать чтоле это под вайс :) . Ведь всё в открытом виде лежит, да и баги можно будет подправить. Алсо, если нужно будет кому, то могу скинуть названия потоков. Так же понял почему миссия по зачистке улиц от шпаны нормально не работает - её тупо нет в месте объявления миссий и она валяется как обычный поток(и вызывается так же), врезультате мы получаем ошибки в памяти и баги(дополнительное место в памяти игра не выделяет, поэтому происходит сплошная мешанина. В мейне и так на СТОЛЬКО задротно использовали потоки и переменные, что назвать разработчиков нормальными на ум не приходит, самые натуральные консолезадроты).

Сообщение отредактировал LEX SAFONOV: 24 August 2012 - 09:58


#47 maXedR

maXedR

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений
  • Город:Львов


Отправлено 24 August 2012 - 14:07

@SILENT_Pavel
Очень благодарю за ссылку.

#48 SILENT_Pavel

SILENT_Pavel

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

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 24 August 2012 - 15:20

LEX SAFONOV
Да, лучше заняться всс, его меньше изучили. А вообще я не очень понял под "открыл/нашел" означает полностью работоспособный модженный main нужного размера под две платформы или просто капание в хексе без сохранения?

Сообщение отредактировал SILENT_Pavel: 18 September 2012 - 05:45


#49 LEX SAFONOV

LEX SAFONOV

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

  • Пользователи
  • PipPipPip
  • 56 сообщений

Отправлено 24 August 2012 - 15:57

В ЛСС мейн, что на ПСП, что на ПС2 одинаков. Рылся я в раскомпиленом в SB мейне. Тут конкретно нужно найти способ запуска нужного потока в нужный момент, а не тупо дописывание строчек через хекс. (на сколько я понимаю срабатывает дебаг меню только один раз, если его тупо добавлять через хекс)

Сообщение отредактировал LEX SAFONOV: 24 August 2012 - 16:00


#50 SILENT_Pavel

SILENT_Pavel

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

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 24 August 2012 - 16:15

LEX SAFONOV
Ну да, всмысле под хексом я описался, имел ввиду "раскомпиленом в SB мейне".

В ЛСС мейн, что на ПСП, что на ПС2 одинаков.

В псп версии другой размер, Но все равно можно поставить пс2 мейн, работать будет, но стандартные сохранения не загрузит, только свои "дебагнутые". Я хотел задать вопрос, в плане что это теория "работает, погода, чит меню" или реальный пройденный тест на эмуляторе или приставке одной из? Оно часто после активации на практике не срабатывает.

Сообщение отредактировал SILENT_Pavel: 18 September 2012 - 05:46


#51 LEX SAFONOV

LEX SAFONOV

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

  • Пользователи
  • PipPipPip
  • 56 сообщений

Отправлено 25 August 2012 - 14:20

Если смотреть на это методом предположения, то не срабатывает возможно из-за неправильного запуска дебага. Поток @DEBMENU создан не только для дебага(он работает изначально, точнее его отдельные элементы). Вдобавок он поделён на тучи кусков, которые срабатывают и вызываются из других потоков через опкод 05AE(обращение к конкретно взятому потоку, как к функции в програмировании, т.е. передача туда параметров\констант и т.п.). К примеру - вызов проигрывания звука в миссиях происходит тоже из потока @DEBMENU, только вызывается не весь поток сразу, а лиш отдельный кусок, в котором будет стоять return(возврат значения).

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





Сами же вещи, типа выбирания погоды\времени\просмотрщик моделей валяются в отдельно созданных потоках и не удивлюсь что для них корректный запуск в общем мейне либо убрали, либо оставили, но надо искать.

Вообще это всё нужно запускать отдельно, а не через добавление строки хексом. Если Dageron таки намутит нормальный компилятор скриптов для ЛСС, то можно будет прописать в самое начало запуск этих отдельных элементов с клавиш и должно работать всё куда менее бажно. (однако мы все прекрасно знаем, что в ЛСС всё было сделано через жопу для повышения производительности)

#52 SILENT_Pavel

SILENT_Pavel

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

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 25 August 2012 - 18:22

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

Ну знаете... как по мне так лучше вредно, чем ничего вообще и годами писать компилятор (не намек в сторону кого-то, никто ж быстро такое не пишет).А так конечно спасибо за развернутое разъяснение, нужны будут тесты на консоли железной или эмуляторе обращайтесь. :)

Сообщение отредактировал SILENT_Pavel: 18 September 2012 - 05:46


#53 Lego

Lego

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

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 26 August 2012 - 11:10

>> создан не только для дебага
феерическая [[убрано]], создан он как раз для дебага.
то, что метка нахывается многабукаф_100500 ничего не значит, кроме, того что смещение следующего за неё опкода равно 100500 (см. настройки санни) и пора бы это понимать.

санни билдер неправильно распознаёт, что отноится к потоку, а что - нет. грубо говоря, санни считает всё, что ниже опкода thread принадлежащим этому треду вплоть до следующего треда (никаких претензий к Seemann'у - вполне логично сделано, всё равно всех случаев не предусмотришь, да и не надо).

>> К примеру - вызов проигрывания звука в миссиях происходит тоже из потока @DEBMENU, только вызывается не весь поток сразу, а лиш отдельный кусок, в котором будет стоять return(возврат значения).
это, условно говоря, SCM-функция, вызванная опкодом call с параметрами 0@ = первый агрумент и т.д. (название опкода кагбе намекае)
эти функции идут после потока дебаг, но никак к нему не относятся.

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

>> Чтоже делается через хекс - мы добавляем строку в начало мейна, где запускается целиком весь этот поток.
чтобы запустить этот поток достаточно инвертировать проверку if not debug_disabled в начале мейна (т.е. обнуллить самый старший бит; алсо в ини санника этот опкод unknown) - я делал это ещё года 3 назад. тогда вы не только запустите поток, но и пропустите первую миссию и т.д.

Сообщение отредактировал Dageron: 26 August 2012 - 16:57
Нарушение правил форума: Параграф 2, пункт 2.2 (ненормативная лексика)


#54 LEX SAFONOV

LEX SAFONOV

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

  • Пользователи
  • PipPipPip
  • 56 сообщений

Отправлено 26 August 2012 - 14:40

Вообще скриптинг в ЛСС не больно далеко улетел от васи, так что вполне логично, что этот поток состоит из отдельных кусков, которые использовались по надобности. Однако мучает ещё вопрос на счёт просмотра анимаций и моделей...

#55 Dageron

Dageron

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

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


Отправлено 26 August 2012 - 17:15

Lego

чтобы запустить этот поток достаточно инвертировать проверку if not debug_disabled в начале мейна (т.е. обнуллить самый старший бит; алсо в ини санника этот опкод unknown) - я делал это ещё года 3 назад. тогда вы не только запустите поток, но и пропустите первую миссию и т.д.

Вообще говоря первая миссия пропускается всегда. В той версии, которая сейчас у SILENT_Pavel-а, - просто все проверки, связанные с 4F06 (опкод is_debug_disabled), заменены на опкоды 0100 (задержка - wait 0). Раньше я поступал иначе - запуск потока @debmenu добавлял в ту часть, где инициализируются все основные потоки (в начало main-а). И всегда работало одинаково.

я ни разу не видел вызова куска потока с какой-нибудь метки, хотя и технически это должно быть возможно

Такая штука работает, причем вполне прилично.
Конечно, это полное нарушение логики кода, но для некоторых трюков бывает полезно.

LEX SAFONOV
Молодец, что разбираешься :) .

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

На самом деле это не критично, так как дальше end_thread игра ничего выполнять не будет.

Вообще скриптинг в ЛСС не больно далеко улетел от васи, так что вполне логично, что этот поток состоит из отдельных кусков, которые использовались по надобности. Однако мучает ещё вопрос на счёт просмотра анимаций и моделей...

Сейчас посмотрю, что там еще можно сделать... Честно говоря именно эти функции я в подробностях не смотрел; так что пока не будем делать поспешных выводов. Потоки @playch/@bview/@wetime/@mocaps/@anims вызываются из-под @debmenu, следовательно, должны работать.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#56 Lego

Lego

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

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 26 August 2012 - 18:51

кстати, насчёт функций. у меня тут как раз есть ини-файл с проименованными метками и переменными для VCS PS2 (в аттаче). есть и vcsscm.ini с некоторыми найденными опкодами (но его не выкладываю - у меня есть одна идея, если интересно - могу рассказать). короче, все функции начинаются с FUNCTION_ в переменных есть "псевдомассивы" - так как CustomArrays у меня не заработал. не забывайте, что имена массивов SB указывает верно, а имена глобалок - нет (реальное смещение на 256 меньше) > Вообще скриптинг в ЛСС не больно далеко улетел от васи не знаю, что значит "улетел". принципиально ничего не изменилось со времён GTA3, посему меня и поражает подобное непонимание.

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

  • Прикрепленный файл  vcs.zip   5.89К   77 загрузок


#57 maXedR

maXedR

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений
  • Город:Львов


Отправлено 26 August 2012 - 19:02

А есть для ЛСС опкоды какие-нить обновленные?

#58 Dageron

Dageron

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

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


Отправлено 26 August 2012 - 19:07

Разобрался с некоторыми составляющими отладочного меню.
(скриншоты делал с локализованной версии; другой не было под рукой, поэтому часть текста на русском)

Меню просмотра персонажей:
Изображение

Меню просмотра локаций (и перемещения к ним):
Изображение
(на мой взгляд самая полезная и интересная функция)

Меню выбора и просмотра катсцен:
Изображение

Также есть меню просмотра анимаций, но оно практически неработоспособное.
Выбор погоды - работает нормально.

А есть для ЛСС опкоды какие-нить обновленные?

Вот последняя версия со всеми обновлениями.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#59 SILENT_Pavel

SILENT_Pavel

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

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 26 August 2012 - 20:24

Dageron
Здорово! Спасибо что копаешься в этом, несколько вопросов:
  • А просмотр зданий как бы просто крутится вокруг выбранного здания в городе и все? Вообще все здания в игре?
  • И просмотр моделек персонажей ничего не делает кроме просмотра? в всс вроде цвет менялся одежды
  • Старые функции работают вместе с этими одновременно или нет?

Сообщение отредактировал SILENT_Pavel: 18 September 2012 - 05:46


#60 tram73

tram73

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

  • Пользователи
  • PipPipPip
  • 40 сообщений
  • Пол:Мужчина
  • Город:Архангельск


Отправлено 27 August 2012 - 04:24

круто! )) и что теперь можно телепортироваться везде по городу? :) (как в чит девайсе ПСП-шном?)

Сообщение отредактировал tram73: 27 August 2012 - 04:25




Ответить



  


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

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