You are not logged in.
- можно ли исключить определенную модель машины из траффика;
Файл вроде называется cargrp.dat
- как проверить, крутится ли колесо у автомобиля, с какой скоростью и т. д.
В теме "работа с компонентами машины" есть пример по вычислению угла поворота произвольного компонента. Надо вычислить угол поворота компонента, затем, после истечения известного количества времени определить угол ещё раз. По полученным данным можно определить угловую скорость вращения компонента:
32@ = 0 // здесь вычисляем угол в первый раз wait 0 // здесь вычисляем угол во второй раз 0093: 31@ = integer 32@ to_float // УглСкорость = ИзменениеУгла / 31@
Offline
Файл вроде называется cargrp.dat
Имею в ввиду, прямо в игре, то есть, можно включить и отключить, не выходя из игры.
Last edited by Dr_Emmett_Brown_2011 (13-04-2012 00:48)
Offline
Файл вроде называется cargrp.datИмею в ввиду, прямо в игре, то есть, можно включить и отключить, не выходя из игры.
Может вот эти ребята:
0732: random_car_generator_disable_model #SAVANNA 0733: random_car_generator_enable_model #SAVANNA
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
Вот КУСОК кода. Проблема в том,что объект создаётся на координатах ГГ (прямо внутри его). Но ведь я сделал манипуляции с переменными:
$X += 2 $Z -= 1
По крайней мере так в С++,но и в скриптовом тоже..
В чём проблема?
wait 1360 1@ = Object.Init(1520, 10@, 20@, 30@) 070A: AS_actor $PLAYER_ACTOR attach_to_object 1@ offset 0.05 0.06 0.05 on_bone 6 16 perform_animation "NULL" IFP_file "NULL" time -1 Actor.StorePos($PLAYER_ACTOR, $X, $Y, $Z) wait 100 $X += 2 $Z -= 1 0605: actor $PLAYER_ACTOR perform_animation_sequence "M_SMK_DRAG" IFP_file "SMOKING" 4.0 loop 1 0 0 0 time 7140 // versionA wait 7140 0605: actor $PLAYER_ACTOR perform_animation_sequence "BAT_PART" IFP_file "BASEBALL" 4.0 loop 1 0 0 0 time 530 // versionA $BEER2 = Object.Create(1520, $X, $Y, $Z) Object.Destroy(1@)
Offline
Вот КУСОК кода. Проблема в том,что объект создаётся на координатах ГГ (прямо внутри его). Но ведь я сделал манипуляции с переменными:
$X += 2 $Z -= 1По крайней мере так в С++,но и в скриптовом тоже..
В чём проблема?
Конечно так нифига у тебя не выйдет. SannyBulder не может понять сам, где у тебя integer переменные, а где float. Поставь 2.0 вместо 2 и 1.0 вместо 1.
Offline
Здрасте. У меня проблемка. Нужно сделать маркер для старта миссии.
пишу:
:START_MISSION wait 0 02A7: $223 = create_icon_marker_and_sphere 25 at -62.5517 -1448.35 9.42712 :START_MISSION_2 wait 250 if and Player.Defined($PLAYER_CHAR) 0102: actor $PLAYER_ACTOR stopped_near_point_on_foot -62.5517 -1448.35 9.42712 radius 2.0 2.0 1.0 sphere 1 Jf @START_MISSION_2 Marker.Disable($223) start_mission 1 end_thread
В игре появляется маркер, причем багнутый какой-то. Если на него встать, то ничего не происходит...
А после перезахода в файл main.scm вместо этого скрипта вот это:
wait 0 02A7: $223 = create_icon_marker_and_sphere 25 at -62.5517 -1448.35 9.42712 :INITIAL_29001 wait 250 if and Player.Defined($PLAYER_CHAR) 0102: actor $PLAYER_ACTOR stopped_near_point_on_foot -62.5517 -1448.35 9.42712 radius 2.0 2.0 1.0 sphere 1 else_jump @INITIAL_29001 Marker.Disable($223) start_mission 1 // Intro end_thread
Код почему то меняется. Исчезает :START_MISSION и откуда то появляется :INITIAL_
Вчера вроде такой же код писал (как в справке) и все работало...
p.s. Речь о GTA: Vice City.
Offline
Всем привет.
1. Как на экран вывести изображение? Нужно использовать текстуры или можно прямо изображение?
(Нашел, вот статья).
2. Как сделать проверку, которая работает на протяжении всего скрипта? Например проверка на нанесения ущерба актеру игроком:
051A: actor $STD damaged_by_actor $PLAYER_ACTOR
Что бы в любой в любой момент, если нанесен ущерб определенному актеру, это приводило к определенной метке. Например к провалу миссии.
Заранее спасибо.
Last edited by JuSskeee* (17-05-2012 09:31)
Your Banny Wrote
Offline
2. Как сделать проверку, которая работает на протяжении всего скрипта? Например проверка на нанесения ущерба актеру игроком:
051A: actor $STD damaged_by_actor $PLAYER_ACTORЧто бы в любой в любой момент, если нанесен ущерб определенному актеру, это приводило к определенной метке. Например к провалу миссии.
Заранее спасибо.
Использовать потоки
Offline
Использовать потоки
Мне это ни о чем не говорит. Приведи пример, пожалуйста.
Your Banny Wrote
Offline
2. Как сделать проверку, которая работает на протяжении всего скрипта? Например проверка на нанесения ущерба актеру игроком:
Видимо у тебя не совсем правильное представление о работе скриптов. Команды в коде исполняются друг за другом, в каждый момент времени выполняется только одна команда. Поэтому команды не могут работать "сами по себе" - для получения эффекта от какого-либо опкода его обязательно надо выполнить. Если эффект должен проявляться постоянно, то и опкод должен выполняться постоянно:
{$CLEO} 0000: while true wait 0 if player.Defined($player_char) then if 056D: actor $STD defined then if 051A: actor $STD damaged_by_actor $PLAYER_ACTOR then .... end end end end
Last edited by Den_spb (17-05-2012 18:05)
Offline
Вот вопросик. Как зовётся анимация спринта игрока? Именно игрока. А ещё хотел бы спросить, почему событие 58 (актер горит) не работает, да и почему вообще некоторые события не работают. Заранее благодарен.
Offline
Здравствуйте, ответьте на вопрос кто знает:
как можно проверить включены ли фары на автомобиле в СА?
(интересует не проверка разбиты/не разбиты, а именно включены/не включены)
Благодарен...
Offline
сначала не разобрался с переменными, затем поправил и заработало, спасибо!
это была проверка выключены ли фары. А как проверить включены или нет?
Last edited by Drift_Legend (20-05-2012 23:01)
Offline
Вообще-то наоборот - это проверка того, что фары горят (полученное число больше нуля). Если фары не горят, то по смещению 0x584 записан 0.
Вот скрипт для вывода значения на экран (для текущей машины игрока):
{$CLEO} 0000: while true wait 0 if player.Defined($player_char) then if actor.Driving($PLAYER_ACTOR) then 03C0: 0@ = actor $PLAYER_ACTOR car 0A97: 0@ = car 0@ struct 0@ += 0x584 0A8D: 0@ = read_memory 0@ size 1 virtual_protect 0 03F0: enable_text_draw 1 045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@ // ~1~ > 0 - фары горят end end end
Last edited by Den_spb (21-05-2012 10:59)
Offline
Здравствуйте. У меня такой вопрос: в клео скриптах, например если я присвою значение переменной 1@ равное еденице (тип integer), то после этого я смогу присвоить этой же переменной значение 54.312343 (тип float)? И если наоборот, тоже можно?
Offline
Как конвертить Cleo миссию в main?
Что-то отличается в строении?
Offline
Здравствуйте. У меня такой вопрос: в клео скриптах, например если я присвою значение переменной 1@ равное еденице (тип integer), то после этого я смогу присвоить этой же переменной значение 54.312343 (тип float)? И если наоборот, тоже можно?
Да, можно.
Что-то отличается в строении?
Да вроде ничего не отличается.
Offline
Можно ли проверить, загружена ли текстура? Хотя бы, через память.
Offline
здравствуйте! подскажите, кто знает, пожалуйста, как можно узнать сколько оборотов сделало колесо (хотя бы приблизительные значения)?
или какую-нибудь проверку типа: крутится/не крутится...
Last edited by Drift_Legend (08-07-2012 10:41)
Offline
здравствуйте! подскажите, кто знает, пожалуйста, как можно узнать сколько оборотов сделало колесо (хотя бы приблизительные значения)?
или какую-нибудь проверку типа: крутится/не крутится...
По-моему в структуре машины есть углы вращения компонентов. Колёса там тоже есть. Посмотри тут.
Offline
Вычисление угла поворота колеса можно использовать только при относительно невысоких скоростях движения автомобиля (когда колёса делают менее одного поворота за кадр).
Более надёжен другой способ: определяем, насколько переместился автомобиль с момента последней проверки (получаем координаты автомобиля и вычисляем расстояние между старой и новой позицией машины). Размер колеса известен:
CarStruct +0x458 = [float] Размер колёс машины из vehicle.ide
По этим данным несложно определить, сколько оборотов сделало колесо.
Last edited by Den_spb (08-07-2012 21:36)
Offline
Voron295, Den_spb, спасибо, мужики, буду копать))
Offline
еще вопросик: как заставить на транспорте (машине) гореть стоп-сигналы (не габариты) как при нажатии тормоза без участия актёра?
Offline