#1901 09-03-2010 16:04

d88
Registered: 15-12-2009
Posts: 254
Website

Re: Один вопрос

Люди, вот объясните, как это происходит.
Иногда после выхода из главного меню у игрока проигрывается какая-нибудь анимация (смотрит на часы или потягивается). Но если нажать любую клавишу, анимация обрывается.
Как сделать так же, чтоб любая анимация обрывалась при нажатии любой кнопки?

Last edited by d88 (09-03-2010 16:05)

Offline

#1902 09-03-2010 19:37

Alien
Registered: 12-10-2008
Posts: 564

Re: Один вопрос

[c]05B9: AS_actor $player_actor stay_idle 1 ms[/c]

Offline

#1903 11-03-2010 18:10

DimP
Registered: 23-03-2009
Posts: 51

Re: Один вопрос

У меня появился вопросик, может кто-нибудь поможет?
В гта по адресу сPed + 0x44 и сPed + 0x48 записываются векторы движения педа относительно мировой ск.  Но они меняются при изменении скорости педа (скорость вроде по адресу сPed+0x4DC) , Короче, мне нужно найти точное отношение между векторами, принимая меньший вектор за 1(что бы они не изменялись вместе со скоростью персонажа).
(Пробовал делением большего вектора на меньший, сначала думал что получилось, но встречаются какие то левые значения, и чем ближе поворот игрока к полюсам(N S W E) тем больше неточность. sad )
Может есть более точный способ ?

Может они изменяются по какой то формуле ?

Last edited by DimP (11-03-2010 18:12)

Offline

#1904 11-03-2010 18:51

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

а ещё могло произойти деление на ноль))


GIMS developer

Offline

#1905 11-03-2010 19:00

DimP
Registered: 23-03-2009
Posts: 51

Re: Один вопрос

Это учтено smile, если бы я этого не учел игра бы вылетала.

Еще попробовал делить вектора на текущую скорость, но получившийся результат все равно прыгает, хотя и не так сильно(просто мне нужно очень точно crazy).

Last edited by DimP (11-03-2010 19:02)

Offline

#1906 12-03-2010 02:52

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: Один вопрос

Эх. Математика, 10й класс.
Вектор в N-мерном пространстве состоит из N величин. Если для трехмерного пространства брать только две, не удивительно, что получится лажа.

Длина вектора считается по теореме Пифагора. l = sqrt (x^2+y^2+z^2)

PS. Для чего может понадобиться тангенс направления вестора скорости, я, честно говоря, не понимаю wink

Offline

#1907 12-03-2010 06:12

DimP
Registered: 23-03-2009
Posts: 51

Re: Один вопрос

Пробовал добавлять еще Z вектор(сPed + 0x52), думаю проблема не в этом. Вектора все равно как то скачут иногда.  Теорему Пифагора я помню, но ведь x y z постоянные величины ?(не может быть такого, что при направлении в одну точку с разной скоростью, длина вектора будет меняться), там скорость и наверно еще что то добавлено.

Мне это нужно чтобы к X и Y позиции игрока прибавлять cos и sin угла направления его движения умноженные на изменяющуюся величину(только не скорость ,а например, временная задержка).
(Все опыты проводил на ровной поверхности, и Z ось не учитывал)
Вроде получается, но как то криво cry

Last edited by DimP (12-03-2010 06:20)

Offline

#1908 12-03-2010 07:00

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: Один вопрос

cos и sin перпутаны местами, так что попробуй поменять их.


I know everything and nothing...

Offline

#1909 12-03-2010 08:15

DimP
Registered: 23-03-2009
Posts: 51

Re: Один вопрос

Пишу в VC++, или они перепутаны в самой игре ?

Offline

#1910 12-03-2010 08:17

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

Он имеет ввиду, что имена опкодов про cos и sin перепутаны в SB.

Offline

#1911 12-03-2010 11:43

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Один вопрос

Как сделать, чтобы огонь жёг, а о дыма люди кашляли (создано частицами)? Чё-то я такого не нашёл... Все спокойно ходят сквозь огонь и дым...

Offline

#1912 12-03-2010 11:55

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

почему игра крашится/как правильно передать GXT-ключ в функцию???

0AB1: call_scm_func @drawelement 17 4 100.0 -100.0 32.0 32.0 45.0 255 255 255 255 255 0 0 120 'EASB' 5@ 6@ 7@

GIMS developer

Offline

#1913 12-03-2010 13:31

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: Один вопрос

чтоб передать строку нужно передавать ее по частям
т.е. например
0@s = 'suckking'
передается
0@ 1@
а
0@v = 'suckking_you'
передается
0@ 1@ 2@ 3@


I know everything and nothing...

Offline

#1914 12-03-2010 14:35

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: Один вопрос

Можешь 'succking' заменить на что угодно, это просто в качестве шутки grin


I know everything and nothing...

Offline

#1915 12-03-2010 15:07

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Один вопрос

Какая есть норм прога для редактирования игровой карты?
Где достать скрипты DFF->.mb/.ma/.obj/.3ds->DFF?

Offline

#1916 12-03-2010 15:12

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

AquaZ: KAM's MAX scripts тебе надо

mfisto: я почти ничё не понял...


GIMS developer

Offline

#1917 12-03-2010 15:36

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Один вопрос

@3Doomer: это на 3Ds Max. А у меня Maya.

Offline

#1918 12-03-2010 17:11

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

не надо спорить, в ней такими вещами НИКТО не занимается. просто поставь макс, скрипты и делай что хочешь......


GIMS developer

Offline

#1919 12-03-2010 18:17

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Один вопрос

Ну ладно... Спасибо за совет, пошёл качать.

Offline

#1920 13-03-2010 00:29

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Один вопрос

Ещё вопросик... Написал миссию, просто появляются четыре придурка. Как сделать так, чтобы когда меня арестуют/замочат, миссия проваливалась? Привожу код (без триггера).

: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

#1921 13-03-2010 06:40

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Один вопрос

if
     wasted or busted
then
     jump @INTRO_fail
end

Offline

#1922 13-03-2010 08:57

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Один вопрос

2Den_spb: Как я понял, эта проверка должна стоять в миссии каждые ~100 мсек. Но в стандартных миссиях этого нет! Как сделать без постоянных проверок?

Offline

#1923 13-03-2010 10:25

Alien
Registered: 12-10-2008
Posts: 564

Re: Один вопрос

в миссиях используется внутреигровой механизм проверки wb. Включается и выключается опкодом 0111.
Действует так: если игрок wasted или busted, выполняется команда return. (см. функцию 0x485A50)

Offline

#1924 13-03-2010 11:59

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Один вопрос

Спасибо, а я-то думаю, что за toggle wasted busted check...

Offline

#1925 13-03-2010 14:22

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

mfisto wrote:

чтоб передать строку нужно передавать ее по частям
т.е. например
0@s = 'suckking'
передается
0@ 1@
а
0@v = 'suckking_you'
передается
0@ 1@ 2@ 3@

напиши рабочий пример...


GIMS developer

Offline

Board footer

Powered by FluxBB