You are not logged in.
Версия для VC https://gta.com.ua/forum/index.php?show … try2245903
Версия для GTA3 https://gta.com.ua/forum/index.php?show … try2244957
Дополнительные персонажи и транспорт спецслужб
Для GTA3 тоже разобрал, но пока сделано на конкретные ID с ограничениями, переделаю, будет как для San Andreas.
Что-то обошлось без анонсов тут, но уже вышли две новые версии Sanny Builder. Список изменений есть на главной странице
https://sannybuilder.com/ru/index.html
Хорошая новость. Я думал, что проект уже больше обновляться не будет. Хотя SB сейчас мало пользуюсь, всё больше с plugin-sdk. Иногда для того, чтобы улучшить какой-либо свой предыдущий скрипт "достаю с полки SB".
Анимацию PED не надо загружать и выгружать, она загружается изначально. Надо только проверять загружена ли она.
{$CLEO} 0000: while true wait 0 if Player.Defined($PLAYER_CHAR) then if 0AD2: 1@ = player $PLAYER_CHAR targeted_actor then if and 8184: not actor 1@ health >= 100 00E1: player 0 pressed_key 17 02D8: actor $PLAYER_ACTOR current_weapon == 25 051A: actor 1@ damaged_by_actor $PLAYER_ACTOR then if 04EE: animation "PED" loaded then 0829: actor 1@ perform_animation "KO_SHOT_FRONT" IFP_file "PED" 4.0 time 0 and_dies wait 1000 end end end end end
Только с рандомом проблема
В опкодах случайного выбора значения из какого-либо диапазона, правое значение в диапазон не входит.
И ещё вот эту строчку
10@ < 55
попробуй записать так
001B: 55 > 10@
Кстати в вашем скрипте не весь тюнинг сохраняется
Не весь. На все детали не хватило переменных.
и еще вы же мне сами писали, проверяй наличие авто после wait, а у вас:
Ошибки в старых скриптах возможны. Я тоже когда-то учился, как ты сейчас. Проверять надо.
Выше ты писал про сокращение размера скрипта. Размер скрипта не столь важен. Важен хорошо читаемый правильный оптимизированный код скрипта. Вот эти строчки можно сократить (P.S. тем более, что это условие всегда будет ложным)
if and 0@ == 23 0@ == 0 0@ == 1 0@ == 2 0@ == 3 0@ == 4 0@ == 5
до такого варианта
if or 0@ == 23 8019: not 0@ > 5
а если взять отсчёт не от 23, а от 24 т.е. 0, то ещё короче
if 8019: not 0@ > 5
не могу найти указатель на второй номер, сохраняется только первый.
Какой номер ты имеешь ввиду?
0AE2: почему-то глючит если много машин захватывать, а мне порядка 30-ти штук надо как то удержать от удаления... Бида.
Дело не в количестве. Возможно код неправильно написан.
Опкод не подойдет, прицеп может быть, а может и не быть.
В структуре транспорта есть m_pTrailer адрес +0x4C8 (size 4), по которому можно определить есть у транспорта прицеп или нет. И предыдущий адрес +0x4C4 (size 4) - это m_pTractor
0118: actor 0@ dead
ты прав CLEO уже не выдерживает, зато MoonLoader выдерживает
А причём здесь CLEO?
По первому вопросу смотри здесь https://github.com/DK22Pac/plugin-sdk/b … Physical.h
m_nPhysicalFlags
Для CLEO смещение +0x40
Там придётся проверять установлен ли соответствующий бит в 1
По второму вопросу писали здесь https://sannybuilder.com/forums/viewtop … 131#p15131
Поделюсь своей базой GTA III, правда, версии 1.1. Структур много, а вот имена брал из lib'ы VC, а не III, поэтому некоторые функции без имени, а некоторые - с неправильным, но таких немного, предпочитал пропускать, чем придумывать имена, а когда нашел lib III уже было лень править . Все, что касается RW, меня интересовало мало, так что в конце все очень пусто. Да, иногда делал разные фичи типо битовых полей как-то оригинально, так что сильно не пинайте
https://yadi.sk/d/c5bOEQYSy4Att
Как-то пропустился мимо этот пост... Посмотрел эту базу только сейчас. Спасибо.
Скорее всего нет таких опкодов.
@4lifeGTA
На сколько правильно я понял, то номер слота передаётся в эту функцию.
0AA5: call 0x619060 num_params 1 pop 0 7
Нумерация идёт от нуля, поэтому цифра 7 - это восьмой слот. Попробуй заменить на другой номер слота.
Прошу подскажите опкод который проверяет находится ли игрок в интерьере или на улице.
09E8: 0@ = actor $PLAYER_ACTOR active_interior if 0@ == 0 then // игрок на улице end
Ну все, у меня все получилось
Написал бы каким образом, чтобы и другие знали.
Скачал прогу IDA и открыл gta_sa.exe
...
многие клео скрипты требуют оригинальный ехешник v0.1, а после моих манипуляций с ехе, совместимость с ним этих клео не пострадает?
Открывать надо не сам exe, а базу с адресами из этого exe. Для SA эта база "наиболее полная". База exe 1.0. Работа с базой на сам exe не влияет. В базе ты ищешь нужные адреса и потом используешь эти адреса в скриптах или плагинах.
Пытаюсь найти в main.scm процесс который устанавливает количество боеприпаса в выпавшем пикапе оружия из убитого/умершего педа. Пока результаты поиска порождают только новые вопросы wall , может кто направит в нужную сторону? Главная цель, уменьшить/увеличить это количество. Помогите люди добрые...
Для какой игры вопрос? В любом случае это в exe. Смотри соответствующую базу в IDA, например, для SA это функция
.text:004591D0; CPed::CreateDeadPedWeaponPickups
С наступающим Новым Годом!
Подскажите пожалуйста, как сделать, чтобы в коде функции вместо названия констант было бы само значение константы. Например, адрес (GTA3)
.data:006107AC flt_6107AC dd 2.0
в коде функции записано так
.text:00585753 fadd flt_6107AC
Как сделать, чтоб вместо flt_6107AC показывалось само значение 2.0? Или хотя бы в псевдокоде выводилось само значение?
IDA 6.8 (если это имеет значение)
Спасибо. Хорошо буду иметь ввиду, но я пока хочу только посмотреть, что к чему.
А можно получить SDK для создания опкодов на вайс?
Скиньте пожалуйста ссылку ещё раз, а то по этой ссылке уже ничего нет.
С днём программиста!
Всем привет форумчане! Подскажите, можно-ли в SCM или в CLEO сделать сихранизатор времени? Т.е если время компьютера например 13:29 то, и в игре тоже 13:29. Чтобы было реальное время.
В виде плагина пойдёт? Alexander ещё в 2007-м написал.
Пока нет, но надеюсь, что с помощью DK22Pac скоро будут и структуры в базе. У меня пока с разбором структур слабо получается.