You are not logged in.
После долгого перерыва:
http://public.sannybuilder.com/gtasa_ex … 100801.rar
http://public.sannybuilder.com/gtasa_ex … 100801.rar
Добавлены описания скриптовых объектов (сферы, чекпойнты и т.д.), много структур по AI, часть работы с IPL, ощутимый кусок стриминга и т.д.
Смотреть, как все устроено, лучше в исходниках, но сразу хочу предупредить, что там есть баги (вылеты в случайные моменты времени и глючащие миссии со spook-o-meter). Искать, что я сделал не так - буду после большой чистки исходников. Предположительно, в следующей версии, gta_sa_dll и gta_iv_dll будут объединены.
Offline
Not too sure how to post here, but I'll give it a go.
sub_7201C0 -> ?renderInteriorOcclusion sub_726DF0 -> ?drawCullReflection (or) ?updateCullReflection
NOP 0x555854 (5 bytes) - disable reflection updates (makes interior mirrors carry a static image until you exit/enter - then they will be black).
Offline
@listener - Пожалуйста.
Функции sub_72A790 -> syncWeather sub_72A790 -> updateTownID (writes town ID to 0xC81314) 0 - Countryside 1 - Los Santos 2 - San Fierro 3 - Las Venturras 4 - Desert 5+ - Countryside (default) Адреса 0x8D5EB0-0x8D5FB0 -> Weather IDs (ordered weather sequence) 0x8D5EB0 -> Countryside Weather IDs 0x8D5EF0 -> LS Weather IDs 0x8D5F30 -> SF Weather IDs 0x8D5F70 -> LV Weather IDs 0x8D5FB0 -> Desert Weather IDs flt_C81324 -> Rain Density flt_C81410 -> Fog Density dword_C81328 -> (a rain flag.. changes to 1 when it rains - doesn't change back)
Last edited by Deji (11-10-2010 07:25)
Offline
Вот, нашёл названия кое-каких функций(надо бы добавить в базу=)):
sub_43CEC0 = DrawRampageText
sub_45C210 = DrawReplayText
sub_493160 = RemoveSearchlight
sub_573AE0 = SetDefaultSettings (*used to set some options by default, for example - graphic settings)
sub_589650 = _?DrawStatBox
sub_719510 = SetFontShadowRGBA arg_0 = RGBA
sub_71A700 = DrawText? (*used to redraw? textures on screen)
_allocTobjModel - arg_0 = model_ID
byte_B6EC2E - keyboard_playing (*address used to check buttons for keyboard or joypad control)
Offline
Offline
Сам искал по мере изучения движка, тут по-моему ещё не всё=)
Offline
Offline
Offline
В лимит аджастере есть пункт
STATIC LIMITS
Vehicle Models 212 Maximum number of entries allowed to be defined in the vehicles.ide file
Как можно поменять этот лимит на 213 в самом экзешнике?
И ещё хочу узнать про видеоплеер, его можно использовать как-то через cleo для проигрывания своих видеофайлов прямо в игре? Или начальные ролики при запуске - это всё что он может?
Last edited by Sergey81 (20-10-2010 23:30)
Offline
В IDA задай поиск по строке Vehicle Models и посмотри, где она используется. Найдешь процедуру, в которой все аналогичные лимиты устанавливаются. Оттуда и адрес можно узнать.
Offline
В IDA задай поиск по строке Vehicle Models и посмотри, где она используется. Найдешь процедуру, в которой все аналогичные лимиты устанавливаются. Оттуда и адрес можно узнать.
Не находит у меня ничего так. На gtaf есть пост Sacky об этом, http://pastebin.com/PkQHYSp0
но у меня выглядит в иде так:
.text:005B8FDE 010 push offset aVehiclestruct ; "VehicleStruct" .text:005B8FE3 014 push 32h .text:005B8FE5 018 mov ecx, eax .text:005B8FE7 018 call _CPool_CVehicleStruct__constructor ; // sizeof (CVehicleStruct) == 0x314 .text:005B8FEC 010 jmp short loc_5B8FF0
5B8348 совпадает. Если 5B8FE3 - это нужный адрес, какое значение туда вставлять, чтобы увеличить лимит на 1?
Offline
@Sergey81 - Sacky ошибается. На самом деле, все не так.
Вообще, я регулярно наблюдаю некоторую путаницу.
Есть игровые объекты и есть их модели. "Модель", в данном случает, подразумевает не "треугольники+текстуры", а общее описание объета (то, что находится в .ide и связанных файлах).
На каждую строчку в .ide создается объект (потомок CBaseModelInfo), который содержит данные об этой модели (дополнительно, туда могут читаться параметры из других файлов: для машин - это цвета, возможные модификации, ссылка на handling и т.д.).
Для выделения этих объектов существует массив modelCarsStore. Размер этого массива фиксирован.
Чтобы увеличить этот массив, требуется создать свой массив, подставив вместо 212 нужный размер
static struct ModelCarsStore : public ModelStoreBase<CModelCars, 212> {} modelCarsStore;
и заменить CModelCars::allocate (004C6770), чтобы она обращалась к собственному массиву.
Она вызывается в одном месте, из функции readIdeCars (0x005b6f30)
Более подробно - есть в моих исходниках (ogModels.cpp, ogConfig.cpp).
Offline
UPD. Странно что я сразу не догался, но самый простой способ - limit adj. переименовать в x3d9.dll, в x3d9.dll заменить salimits.ini на salimitz.ini, там выставить нужные лимиты, которые не нужны оригинальной SA, а потом в кастомном экзешнике, а у меня их два, gta_sanvice.exe/gta_united.exe поменять d3d9.dll на x3d9.dll. Так и сделал, всё работает.
Ну и поясню наверно, зачем это нужно. У меня в худе, при езде на машине, под спидометром выводится её название, скрипт вот такой(не мой, автор Wesser вроде бы):
:VehicleTextDisplay if 00DF: actor $PLAYER_ACTOR driving then 03C0: PL_VEHICLE = actor $PLAYER_ACTOR car 0441: 3@ = car PL_VEHICLE model 000E: 3@ -= 400 0012: 3@ *= 0x308 000A: 3@ += 0xB1F650 000A: 3@ += 0x36 0A8D: STRING = read_memory 3@ size 4 virtual_protect 0 // I found this :) 000A: 3@ += 0x4 0A8D: STRING2 = read_memory 3@ size 3 virtual_protect 0 0AB1: call_scm_func @SubString 2 STRING STRING2 end return :SubString gosub @DrawVehicleText 0AB2: ret 0 :DrawVehicleText 03E0: unknown_text_draw_flag 1 033F: set_text_draw_letter_size 0.3 1.2 081C: draw_text_outline 2 RGBA 0 0 0 255 033E: set_draw_text_position 540.0 386.0 GXT VEHICLE_TEXT return
Так вот если Vehicle Model лимит не трогать - этот код работает. Если выставить его в 213, название отображаться перестаёт. Незнаю почему так.
Last edited by Sergey81 (22-10-2010 22:22)
Offline
Ребята, подскажите, как с помощью 0AA5: call <FuncAddress> X pop X ... показать в игре субтитры, адреса функций вывода TextBox или StyledText есть, а вот с субтитрами ничего не удалось найти.
Offline
Хм, вот так
0AA5: call 0x747660 num_params 2 pop 2 "movies\\Logo.mpg" 0
можно воспроизвести интро заставку прямо в игре. У меня слышно только звук, а видео можно мельком увидеть только при сворачивании/разворачивании.
Никто не в курсе, можно ли видео отображать "поверх" самой игры?
Offline
я думаю, для этого надо копаться в DirectX, перехватывать рендер картинки на экране и поставлять кадры видео. вряд ли это простая задача.
Offline
Хорошие новости для любителей цеплять что-либо к игроку, машинам и т.п.
Wesser возможно нашёл безбаговый способ избавиться от отставания прицепленных объектов.
Подробнее тут - http://www.gtaforums.com/index.php?show … 1060525532
Offline
Не отстают также проекции) Ура)
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline
@Den_spb - Ну я имел в виду всё что отстаёт под этим словом.
Offline
0A8C: write_memory 0xB5F852 size 1 value 1 virtual_protect 0 0A8C: write_memory 0x748BC5 size 2 value 0x13C virtual_protect 1 0AA5: call 0x747660 num_params 2 pop 2 "movies\\Logo.mpg" 0 0A8C: write_memory 0xC8D4C0 size 1 value 4 virtual_protect 0 003D: // same as wait 0 - returns from script parsing 0AA5: call 0x746740 num_params 0 pop 0 0A8C: write_memory 0xBA677B size 1 value 0 virtual_protect 0 0A8C: write_memory 0xB5F852 size 1 value 0 virtual_protect 0
Offline
Вижу, база для GTAIII недавно обновилась? Спасибо, что не забываете
listener, можете мне пожалуйста обьяснить в чём разница между CShadows_addPermanentShadow и CShadows_storeShadowToBeRendered?
Last edited by DK22Pac (24-06-2011 20:54)
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline
Offline