You are not logged in.
Люди, вот объясните, как это происходит.
Иногда после выхода из главного меню у игрока проигрывается какая-нибудь анимация (смотрит на часы или потягивается). Но если нажать любую клавишу, анимация обрывается.
Как сделать так же, чтоб любая анимация обрывалась при нажатии любой кнопки?
Last edited by d88 (09-03-2010 16:05)
Offline
[c]05B9: AS_actor $player_actor stay_idle 1 ms[/c]
Offline
У меня появился вопросик, может кто-нибудь поможет?
В гта по адресу сPed + 0x44 и сPed + 0x48 записываются векторы движения педа относительно мировой ск. Но они меняются при изменении скорости педа (скорость вроде по адресу сPed+0x4DC) , Короче, мне нужно найти точное отношение между векторами, принимая меньший вектор за 1(что бы они не изменялись вместе со скоростью персонажа).
(Пробовал делением большего вектора на меньший, сначала думал что получилось, но встречаются какие то левые значения, и чем ближе поворот игрока к полюсам(N S W E) тем больше неточность. )
Может есть более точный способ ?
Может они изменяются по какой то формуле ?
Last edited by DimP (11-03-2010 18:12)
Offline
Это учтено , если бы я этого не учел игра бы вылетала.
Еще попробовал делить вектора на текущую скорость, но получившийся результат все равно прыгает, хотя и не так сильно(просто мне нужно очень точно ).
Last edited by DimP (11-03-2010 19:02)
Offline
Эх. Математика, 10й класс.
Вектор в N-мерном пространстве состоит из N величин. Если для трехмерного пространства брать только две, не удивительно, что получится лажа.
Длина вектора считается по теореме Пифагора. l = sqrt (x^2+y^2+z^2)
PS. Для чего может понадобиться тангенс направления вестора скорости, я, честно говоря, не понимаю
Offline
Пробовал добавлять еще Z вектор(сPed + 0x52), думаю проблема не в этом. Вектора все равно как то скачут иногда. Теорему Пифагора я помню, но ведь x y z постоянные величины ?(не может быть такого, что при направлении в одну точку с разной скоростью, длина вектора будет меняться), там скорость и наверно еще что то добавлено.
Мне это нужно чтобы к X и Y позиции игрока прибавлять cos и sin угла направления его движения умноженные на изменяющуюся величину(только не скорость ,а например, временная задержка).
(Все опыты проводил на ровной поверхности, и Z ось не учитывал)
Вроде получается, но как то криво
Last edited by DimP (12-03-2010 06:20)
Offline
Пишу в VC++, или они перепутаны в самой игре ?
Offline
Он имеет ввиду, что имена опкодов про cos и sin перепутаны в SB.
Offline
Как сделать, чтобы огонь жёг, а о дыма люди кашляли (создано частицами)? Чё-то я такого не нашёл... Все спокойно ходят сквозь огонь и дым...
Offline
Какая есть норм прога для редактирования игровой карты?
Где достать скрипты DFF->.mb/.ma/.obj/.3ds->DFF?
Offline
@3Doomer: это на 3Ds Max. А у меня Maya.
Offline
Ну ладно... Спасибо за совет, пошёл качать.
Offline
Ещё вопросик... Написал миссию, просто появляются четыре придурка. Как сделать так, чтобы когда меня арестуют/замочат, миссия проваливалась? Привожу код (без триггера).
:INTRO increment_mission_attempts thread "INTRO" gosub @INTRO_body if wasted_or_busted then gosub @INTRO_fail end gosub @CLEAN end_thread :INTRO_body Model.Load(#BULLET) Model.Load(#TURISMO) Model.Load(#BALLAS1) Model.Load(#BALLAS2) Model.Load(#MICRO_UZI) 038B: load_requested_models 016A: fade 0 time 500 ms 01B5: force_weather 1 00C0: set_current_time 20 00 wait 500 016A: fade 1 time 500 ms 02A3: enable_widescreen 1 01B4: set_player $PLAYER_CHAR can_move 0 wait 5000 016A: fade 0 time 500 ms wait 500 ms 01B4: set_player $PLAYER_CHAR can_move 1 02A3: enable_widescreen 0 016A: fade 1 time 500 ms :INTRO_body_1 wait 50 if Model.Available(#BULLET) Model.Available(#TURISMO) Model.Available(#BALLAS1) Model.Available(#BALLAS2) Model.Available(#MICRO_UZI) jf @INTRO_body_1 Car.Create(0@, #BULLET, 1728.1191, -1852.4177, 13.4141) Car.Angle(0@) = 270 0129: 1@ = create_actor_pedtype 7 model #BALLAS1 in_car 0@ driverseat 01C8: 2@ = create_actor_pedtype 7 model #BALLAS1 in_car 0@ passenger_seat 0 Car.Create(3@, #TURISMO, 1726.9397, -1857.4568, 13.4141) Car.Angle(3@) = 270 0129: 4@ = create_actor_pedtype 7 model #BALLAS2 in_car 3@ driverseat 01C8: 5@ = create_actor_pedtype 7 model #BALLAS2 in_car 3@ passenger_seat 0 04C4: store_coords_to 10@ 11@ 12@ from_actor $PLAYER_ACTOR with_offset 0 0 0 Car.DriveTo(0@, 10@, 11@, 12@) Car.DriveTo(3@, 10@, 11@, 12@) 01B2: give_actor 1@ weapon 28 ammo 99999 01B2: give_actor 2@ weapon 28 ammo 99999 01B2: give_actor 4@ weapon 28 ammo 99999 01B2: give_actor 5@ weapon 28 ammo 99999 Marker.CreateAboveActor(6@, 1@) Marker.CreateAboveActor(7@, 2@) Marker.CreateAboveActor(8@, 4@) Marker.CreateAboveActor(9@, 5@) 0004: $timer = 60000 03C3: set_timer_with_text_to $timer type 1 text 'BB_19' :INTRO_body_2 wait 100 if and Actor.Dead(1@) 075C: marker 6@ enabled then Marker.Disable(6@) end if and Actor.Dead(2@) 075C: marker 7@ enabled then Marker.Disable(7@) end if and Actor.Dead(4@) 075C: marker 8@ enabled then Marker.Disable(8@) end if and Actor.Dead(5@) 075C: marker 9@ enabled then Marker.Disable(9@) end if or not Actor.Dead(1@) not Actor.Dead(2@) not Actor.Dead(4@) not Actor.Dead(5@) then if $timer == 0 then Marker.Disable(6@) Marker.Disable(7@) Marker.Disable(8@) Marker.Disable(9@) gosub @INTRO_fail jump @CLEAN end end if and Actor.Dead(1@) Actor.Dead(2@) Actor.Dead(4@) Actor.Dead(5@) then Marker.Disable(6@) Marker.Disable(7@) Marker.Disable(8@) Marker.Disable(9@) gosub @INTRO_pass jump @CLEAN end jump @INTRO_body_2 return :INTRO_pass 01E3: text_1number_styled 'M_PASSD' 0 5000 ms 1 // MISSION PASSED! 0394: play_music 1 $INTRO_passed = 1 return :INTRO_fail 00BA: text_styled 'M_FAIL' 5000 ms 1 // ~r~MISSION FAILED! return
Last edited by ~AquaZ~ (13-03-2010 00:35)
Offline
2Den_spb: Как я понял, эта проверка должна стоять в миссии каждые ~100 мсек. Но в стандартных миссиях этого нет! Как сделать без постоянных проверок?
Offline
в миссиях используется внутреигровой механизм проверки wb. Включается и выключается опкодом 0111.
Действует так: если игрок wasted или busted, выполняется команда return. (см. функцию 0x485A50)
Offline
Спасибо, а я-то думаю, что за toggle wasted busted check...
Offline