You are not logged in.
аа, наверно в клео 4 было добавлено, а ты мчто в моём скрипте изменил? да и там по идее теперь вообще переменные 1 и 2 не участвуют ))
А что, уже CLEO 4 вышла?
Сейчас искал опкод для занесения текущей активной зоны игрока в переменную.
И не нашёл! Сам диву даюсь. Был же какой-то, а сейчас пропал... Напомните, пожалуйста!
Ещё один вопрос. На этот раз более существенный (хотя, всё относительно). Как вручную вывести на экран состояние того или иного стата. В игре это используется при отображении прироста (+) или запущения (-) какого-либо скилла.
И, раз уже затронул тему, спрошу ещё одно. Как можно остановить изменение какого-нибудь скилла. Заморзить стат, запретить повышение, или же понижение.
Last edited by Daeman (27-03-2010 12:23)
Offline
Я тоже об этом подумал сначала, но не знаю как лучше оформить переходы. В моём случае, будет далеко не две миссии, но идти они должны одна за другой.
Offline
@Sw[ee]t
Обычно это делается путем переменной какой нибудь, например, так делает R* в своем скрипте, просто ставишь после завершения миссии $Check_miss = 1, а в главном теле проверяешь, если она равна единице и миссия завершена (не забывай про следующее:
0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here
), то начинаем другую миссию. В принципе рабочая схема.
I know everything and nothing...
Offline
Как заставить танк ПАЛИТЬ по мне?
_______________________________
Странный ГЛЮК, все последние опкоды на поток в логе = 0001 (wait). Почему?
Last edited by ~AquaZ~ (27-03-2010 20:17)
Offline
Если ты про то, что после окончании игры в логе заканчиваются опкодом 0001: то это все правильно, т.к пока потоки не получат первый 0001: игра не закончится. Поэтому все нормально, таков движок, но это и логично ведь события в скрипте имеют определенную последовательность выполнения, за это отвечает как раз 0001:.
I know everything and nothing...
Offline
@Sw[ee]t
Обычно это делается путем переменной какой нибудь, например, так делает R* в своем скрипте, просто ставишь после завершения миссии $Check_miss = 1, а в главном теле проверяешь, если она равна единице и миссия завершена (не забывай про следующее:
0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here), то начинаем другую миссию. В принципе рабочая схема.
Спасибо. Посмотрю что можно с этим сделать
Offline
да, хотя изначально динамика выключена для обоих...и включать приходится опкодом
object.init получается бесполезен
Не совсем уж бесполезен. Такая solid'ность задействована в некоторых опкодах.
Например,
0339: anything_in_cube_cornerA 227@ 228@ 229@ cornerB 230@ 231@ 232@ solid 0 car 0 actor 1 object 0 particle 0
или
06BD: no_obstacles_between 67@ 68@ 69@ and 287@ 288@ 289@ solid 1 car 0 actor 0 object 0 particle 0
То есть, тут проявлятся вся разница между объектом типа solid и динамическим.
Хотя, отчасти с тобой согласен, мала эта разница. Слишком невелика.
Вопрос: какими опкодами реализованы стационарные пулемётные установки (были на крыше здания в одной из миссий)
Самым что ни на есть прямым ии детальным путём. Меня тоже уже заинтересовывал этот факт. Разбирался.
В мэйне на миссии создаютси объекты, а когда игрок в маркере возле них нажимает кнопку, то игрока помещают в туррет объекта и даруют миниган.
Осуществить, собственно, несложно, но вот выглядит привлекательно.
Находится это в теле миссии 100 ("Up, Up and Away!") Если быть точным - метка HEIST5_6682, строка 349515 , во всяком случае, у меня.
И ещё вопросик возник, как заставить вертолёт двигаться быстро?
Может банально увеличить максимально развиваемую вертолётом скорость? (00AD)
Отвечая на вопросы, сам задался вопросом.
Чему могут быть равны значения четвёртого параметра (в данном случае, равного 29) в опкоде
06E1: AS_actor 50@ using_car 51@ target_car 69@ with_order 29 max_speed 30.0 traffic_flag 2
А также напомните, если не затруднит, траффик-флаги. Что-то уже не помню, какие там есть.
Кто-нибудь знает, или опять всё придётся вручную тестить?
Offline
Как сделать, чтоб у грузовика BARRACKS изменить тип кузова - всмысле он либо накрыт брезентом либо ничем не накрыт?
Здесь тебе нужен опкод 0506
Для этой модели (#BARRACKS) существуют три вариации.
Offline
@Daeman
29,30,31,32 я тестил и использовал в своих скриптах когда то, это короче позиции относительно тачки, влево, вправо, впереди позади, только порядок я не помню.
флаги такие 0 - ехать по правилам
1 - ехать по правилам, но игнорировать тачки
2 - ехать без правил
3 - ехать без правил, но игнорировать тачки
Last edited by mfisto (28-03-2010 21:27)
I know everything and nothing...
Offline
То есть этот параметр (четвёртый) в опкоде 06E1 отвечает за положение, на котором водитель будет вести машину относительно другой тачки?
Также остался открытым всё ещё интересующий меня вопрос.
Как вручную вывести на экран состояние того или иного стата. В игре это используется при отображении прироста (+) или запущения (-) какого-либо скилла.
И, раз уже затронул тему, спрошу ещё одно. Как можно остановить изменение какого-нибудь скилла. Заморзить стат, запретить повышение, или же понижение.
Как изменить цвет полоски брони и здоровья? Это лучше сделать через SCM, или патчить EXE?
Если всё ещё интересует ответ на этот вопрос.
Гораздо проще настроить цвет через память, а не разными текстурными методами.
0A8C: write_memory 0xBAB22C size 4 value 0@ virtual_protect 0 - для жизней, для бара брони и полоски дыхания не помню, по-моему пылится где-то на моддинге.
Со значением ("value") раздолье для экспериментов.
Вот несколько довольно сносных вариантов, хотя всё зависит от тематики игры (если уж свершилась глобальная модернизация, иначе говоря глобал-мод), а также определяется вкусами тестера.
// -14870092
// -149000
// -210000
// -254000
// -277000
// -1279000
Насколько я помню, параметр цвета равен записи RGB. То есть для каждого цвета из трёх (красный, зелёный, голубой) выделяется трёхзначное число, за исключением нулевого значения. В этом случае число для цвета будет однозначным и равным единственному нулю (0).
Хотя, всё слишком запутано, с этим можно согласиться, посмотрев предложенные мною значения. Цвет здесь может выражаться отрицательным параметром.
Last edited by Daeman (29-03-2010 04:33)
Offline
Решил поэкспериментировать с работой с файлами.
Написал пробный скрипт.
Цель довольно простая: при входе в игру в файл записывается текст.
:0
wait 0
if
0AAB: file_exists "CLEO\TEST.txt"
jf @0
1@v = "WHAT"
2@v = "ARE"
3@v = "YOU"
4@v = "DOING?"
0A9A: 0@ = openfile "CLEO\TEST.txt" mode 0x77 // IF and SET
0A9E: writefile 0@ size 64 from 1@ // 4 ячейки variable-length string по 16байт каждая, итого 16х4=64б
0A9B: closefile 0@
0A93: end_custom_thread
Всё бы ничего, но текст получается не такой, какой хотелось бы ожидать.
Финальный вид текста таков (при просмотре через блокнот):
"WHATARE YOU DOING? " в конце куча пробелов
А в СБ вовсе литературно не читабелен.
Там проявляются квадратики, замещающие пробелы при просмотре через блокнот, они также невосприимчивы для буфера обмена.
А уж с числами вообще какая-то чушь получается...
Offline
А я-то думал, что оставшееся место пропускается и не учитывается... а!
То есть, в исправленном виде скрипт должен выглядеть так.
:0 wait 0 if 0AAB: file_exists "CLEO\TEST.txt" jf @0 1@v = "WHAT" 2@v = "ARE" 3@v = "YOU" 4@v = "DOING?" 0A9A: 0@ = openfile "CLEO\TEST.txt" mode 0x77 // IF and SET 0A9E: writefile 0@ size 15 from 1@ // по одному байту на каждый символ, итого 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1...=16) 0A9B: closefile 0@ 0A93: end_custom_thread
Offline
Всё равно, результат не тот. В "исправленном варианте получилось"
"WHATARE YOU DOI"
Кучи пробелов в конце нет, текст получился обрезанным.
Ещё вопрос. Почему между первым и вторым словом нет пробела, а между другими имеются?
Offline
0A9E предназначен для вывода в бинарный файл. Для вывода в текстовый файл надо пользоваться опкодами cleo 4:
{$CLEO} wait 0 if file.Open(0@, "CLEO\TEST1.TXT", "w") then 0AD9: write_formatted_text "%s %s %s %s" in_file 0@ "WHAT" "ARE" "YOU" "DOING?" file.Close(0@) end 0a93:
Last edited by Alien (29-03-2010 08:41)
Offline
Кто знает, как поезд перевести с одного пути на другой? Желательно мягенько, без "перепрыга".
Offline
А точнее?
Offline
КАКОЙ ОПКОД ПЕРЕМЕСТИТ ПОЕЗД С ОДНОГО ПУТИ НА ДРУГОЙ?
Offline
Ууу... А как найти этот оффсет? Или передвинуть поезд с одного пути на другой через память? Например создать основной путь и отклонение от него как отдельные пути, и переместить поезд? И как свести поезд с рельс?
Last edited by ~AquaZ~ (30-03-2010 20:19)
Offline
При старте игры tracks-файлы загружаются в память. Чтобы поменять путь поезда во время игры, нужно изменить значения в тех адресах памяти, куда загружены эти файлы. Адреса можно узнать путём изучения кода gta_sa.exe.
Есть скрипт, позволяющий переводить стрелки, можно было бы изучить его код, но он защищён от декомпиляции.
Last edited by Den_spb (30-03-2010 20:48)
Offline