#1 01-09-2010 17:29

BullDogHEMI427
From: Рязань
Registered: 02-04-2009
Posts: 54

Новая камера для авто

Для любителей экстремальной езды, высокого пилотажа или любого другого способа передвижений.
[center]Версия 2[/center]

Новый режим камеры позади транспорта. Хорош для быстрой езды на авто, заметно облегчает трюки на авиатранспорте, но вот с мотоциклом... Короче решать вам.
Камера автоматически подстраивается под размеры машины, будь то "Гольф" или автобус. Тем не менее, можно подогнать её под себя, настройка не займёт больше трёх секунд. Работает обзор назад/влево/вправо (со стрельбой из ПП).
Если после включения камеры выйти из машины и залезть в другую, заново включать мод не придётся; а если вы сели в машину той же модели, то сохранятся и настройки калибровки

Управление:
Вкл/выкл - C+N
Приблизить/отдалить - Num +/Num -
Поднять/опустить камеру - Num 9/Num 3
Поворот камеры вверх/вниз - Num *+Num 9/Num 3
Сброс калибровки - Num 5
Свободный обзор/drive-by-стрельба - G/ПКМ

Advarsel! Мод использует глобальные cleo-переменные с 0 по 5. Убедитесь, что другие моды их не используют. Если да - изменить номера соответствующих переменных.

Изменения во второй версии:
- при повороте камера движется по окружности вокруг машины, а не сдвигается вбок
- исправлены резкие скачки, камера работает гораздо плавнее
- добавлена регулировка угла наклона
- переписана формула расчёта позиции камеры
- повышена скорость реагирования на нажатия

Используется два потока, коды ниже.

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
thread "CARCAM"
//var 0 = 19@ - кастомная камера (0 - откл, 1 - откл)
//var 1 = 15@ - игрок смотрит влево/вправо/назад/осматривается
//var 2 = 4@ - смещение по Y
//var 3 = 5@ - вращение по Y
//var 4 = 6@ - смещение по Z
//var 5 = 13@ - точка направления по Z 
4@ = -5.7
5@ = 7.0
15@ = 0
19@ = 0
6@ = 1.3
7@ = 0.0
11@ = 70.0
12@ = -1
0AB3: var 0 = 0
0AB3: var 1 = 0

:CARCAM_7
wait 0
if
   Player.Defined($PLAYER_CHAR)
jf @CARCAM_7
if and
   09E7:   player $PLAYER_CHAR not_frozen
   Actor.Driving($PLAYER_ACTOR)
jf @CARCAM_7
if
   19@ == 1
then
jump @CARCAM_9
end
if and
0AB0: key_pressed 67
0AB0: key_pressed 78
jf @CARCAM_7

:CARCAM_9
wait 125
03C0: 0@ = actor $PLAYER_ACTOR car 
0407: store_coords_to 1@ 2@ 3@ from_car 0@ with_offset 0.0 3.0 0.0 
0441: 28@ = car 0@ model 
if
803B: not 28@ == 12@
then
07E4: get_model 28@ dimensions_cornerA_to 22@ 23@ 24@ dimensions_cornerB_to 25@ 26@ 27@
if
0820:   model 28@ heli 
then
4@ = 0.0
else
 if
 081F:   model 28@ plane 
 then
 0087: 4@ = 22@
 4@ *= 0.2
 else
 0087: 4@ = 22@
 4@ *= 1.7
 end
end
0087: 29@ = 23@
29@ *= 1.5
005B: 4@ += 29@
0087: 29@ = 27@
29@ *= 1.8
0063: 4@ -= 29@
4@ *= 0.88
if
4@ > -4.5
then
4@ = -4.5
end

if and
 881F:   not model 28@ plane
 8820:   not model 28@ heli 
then
0087: 6@ = 27@ 
6@ *= 1.2
0087: 29@ = 26@
29@ *= 0.2
005B: 6@ += 29@
else
0087: 6@ = 27@ 
6@ *= 0.25
0087: 29@ = 23@
29@ *= -0.25
005B: 6@ += 29@
end
0087: 13@ = 6@
end
0085: 12@ = 28@

:CARCAM_14
19@ = 1
03C0: 0@ = actor $PLAYER_ACTOR car 
if and
   Actor.InCar($PLAYER_ACTOR, 0@)
   Player.Defined($PLAYER_CHAR)
jf @CARCAM_42
if
0500:   player $PLAYER_CHAR skin == "EMPTY" on_bodypart 1
then
0AB3: var 0 = 0
jump @CARCAM_7
end
0407: store_coords_to 1@ 2@ 3@ from_car 0@ with_offset 0.0 3.0 0.0 
0087: 11@ = 10@
0AB3: var 0 = 1
0AB3: var 2 = 4@
0AB3: var 3 = 5@
0AB3: var 4 = 6@
0AB3: var 5 = 13@

:CARCAM_25     //Нажатие C+N, отсутствие машины или лишение управления
03C0: 0@ = actor $PLAYER_ACTOR car 
if
09E7:   player $PLAYER_CHAR not_frozen
then
33@ = 0
end
if and
   not Car.Wrecked(0@)
   33@ <= 100
jf @CARCAM_42
if or
8AB0: not key_pressed 67
8AB0: not key_pressed 78
jf @CARCAM_40


:CARCAM_29        //Нажатие -
wait 0
if
0AB0:   key_pressed 109
jf @CARCAM_34
if
15@ == 0
then
4@ -= 0.1
else
4@ += 0.1
end
jump @CARCAM_14

:CARCAM_34        //Нажатие +
wait 0
if
0AB0:   key_pressed 107
jf @CARCAM_35
if
15@ == 0
then
4@ += 0.1
else
4@ -= 0.1
end
jump @CARCAM_14

:CARCAM_35        //Нажатие 5           
if
0AB0:   key_pressed 101
jf @CARCAM_36
0441: 28@ = car 0@ model 
07E4: get_model 28@ dimensions_cornerA_to 22@ 23@ 24@ dimensions_cornerB_to 25@ 26@ 27@
if
0820:   model 28@ heli 
then
4@ = 0.0
else
 if
 081F:   model 28@ plane 
 then
 0087: 4@ = 22@
 4@ *= 0.2
 else
 0087: 4@ = 22@
 4@ *= 1.7
 end
end
0087: 29@ = 23@
29@ *= 1.5
005B: 4@ += 29@
0087: 29@ = 27@
29@ *= 1.8
0063: 4@ -= 29@
4@ *= 0.88
if
4@ > -4.5
then
4@ = -4.5
end

if and
 881F:   not model 28@ plane
 8820:   not model 28@ heli 
then
0087: 6@ = 27@ 
6@ *= 1.2
0087: 29@ = 26@
29@ *= 0.2
005B: 6@ += 29@
else
0087: 6@ = 27@ 
6@ *= 0.25
0087: 29@ = 23@
29@ *= -0.25
005B: 6@ += 29@
end
0087: 13@ = 6@
jump @CARCAM_14

:CARCAM_36        //Нажатие заднего вида
if and
00E1:   player 0 pressed_key 5
00E1:   player 0 pressed_key 7
15@ == 0
jf @CARCAM_37
if and
4@ < 0.0
5@ > 0.0
then
4@ *= -1.0
5@ *= -1.0
15@ = 1
0AB3: var 1 = 0
end

:CARCAM_37        //Отжатие заднего вида
if and
80E1:   not player 0 pressed_key 5
80E1:   not player 0 pressed_key 7
jf @CARCAM_38
if
15@ == 1
then
4@ *= -1.0
5@ *= -1.0
15@ = 0
jump @CARCAM_14
else
0AB3: var 1 = 0
end

:CARCAM_38        //Нажатие на "посмотреть влево/вправо"
wait 0
if or
00E1:   player 0 pressed_key 5
00E1:   player 0 pressed_key 7
jf @CARCAM_POINTCHANGE
if or
80E1:   not player 0 pressed_key 5
80E1:   not player 0 pressed_key 7
jf @CARCAM_POINTCHANGE
if and
   not Actor.DrivingPlane($PLAYER_ACTOR)
84A9:   not actor $PLAYER_ACTOR driving_heli 
jf @CARCAM_POINTCHANGE
0AB3: var 1 = 1
Camera.Restore_WithJumpCut
jump @CARCAM_36

:CARCAM_POINTCHANGE        //Нажатие на "посмотреть вверх/вниз"
if and
0AB0: key_pressed 105
0AB0: key_pressed 106
then
13@ += 0.1
end
if and
0AB0: key_pressed 99
0AB0: key_pressed 106
then
13@ -= 0.1
end

:CARCAM_39        //Нажатие на свободный обзор
if or
0AB0:   key_pressed 71
0AB0:   key_pressed 2
jf @CARCAM_61
Camera.Restore_WithJumpCut
0AB3: var 1 = 1
gosub @CARCAM_54
jump @CARCAM_14

:CARCAM_40        //Выход по C+N
19@ = 0
0AB3: var 0 = 0
Camera.Restore_WithJumpCut
wait 200
jump @CARCAM_7

:CARCAM_42        //Выход по отсутствию машины
0AB3: var 0 = 0
19@ = 1
Camera.Restore_WithJumpCut
wait 200
jump @CARCAM_7

0AB3: var 1 = 0
jump @CARCAM_14

:CARCAM_54        //Отключение свободного обзора
wait 0
if and
8AB0:   not key_pressed 71  
8AB0:   not key_pressed 2  
jf @CARCAM_54
0AB3: var 1 = 0
return

:CARCAM_61        //Нажатие 9
if and
0AB0: key_pressed 105
8AB0: not key_pressed 106
jf @CARCAM_64
6@ += 0.1
13@ += 0.1
jump @CARCAM_14

:CARCAM_64        //Нажатие 3
if and
0AB0: key_pressed 99
8AB0: not key_pressed 106
jf @CARCAM_14
6@ -= 0.1
13@ -= 0.1
jump @CARCAM_14
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
thread "CARCAM_SET"
//var 0 = 19@ - кастомная камера (0 - откл, 1 - откл)
//var 1 = 15@ - игрок смотрит влево/вправо/назад/осматривается
//var 2 = 4@ - смещение по Y
//var 3 = 5@ - вращение по Y
//var 4 = 6@ - смещение по Z
//var 5 = 13@ - точка направления на Z 
const 
Z_Mult = 9.0
X_Mult = 18.5
Dif_Limit = 1.33
Dif_LimitMin = -1.33
Dif_LimitX = 2.5
Dif_LimitMinX = -2.5
Dif_LimitZoom = 1.0
Dif_LimitZoomMin = -1.0
end
11@ = 70.0
16@ = 0.0
17@ = 0.0
18@ = 0.0

:CARCAM_SET_2
wait 0
if
Player.Defined($PLAYER_CHAR)
jf @CARCAM_SET_2
0AB4: 19@ = var 0
if and
19@ == 1
Actor.Driving($PLAYER_ACTOR)
jf @CARCAM_SET_2
03C0: 0@ = actor $PLAYER_ACTOR car 
if
  not 0@ == -1
jf @CARCAM_SET_2
if
   Actor.InCar($PLAYER_ACTOR, 0@)
jf @CARCAM_SET_2
Model.Load(#WHEEL_OR1)
while not Model.Available(#WHEEL_OR1)
wait 0
end
0407: store_coords_to 1@ 2@ 3@ from_car 0@ with_offset 0.0 3.0 0.0 
21@ = Object.Create(#WHEEL_OR1, 1@, 2@, 3@)
0750: set_object 21@ visibility 0 
0681: attach_object 21@ to_car 0@ with_offset 0.0 0.0 0.0 rotation 0.0 0.0 0.0  
05A6: get_object 21@ rotation_velocity_about_an_axis_X 1@ axis_Y 2@ axis_Z 3@ through_center_of_body 

:CARCAM_SET_9
wait 0
0AB4: 19@ = var 0
0AB4: 15@ = var 1
if
  15@ == 0
then
  if and
  19@ == 1
  Player.Defined($PLAYER_CHAR)
  Actor.Driving($PLAYER_ACTOR)
  8500:   not player $PLAYER_CHAR skin == "EMPTY" on_bodypart 1
  jf @CARCAM_SET_13
03C0: 0@ = actor $PLAYER_ACTOR car 
9@ = 1.0
0087: 16@ = 1@
0087: 17@ = 3@
05A6: get_object 21@ rotation_velocity_about_an_axis_X 1@ axis_Y 2@ axis_Z 3@ through_center_of_body 
0AB4: 4@ = var 2
0AB4: 5@ = var 3
0AB4: 6@ = var 4
0AB4: 13@ = var 5
0087: 7@ = 4@

1@ *= X_Mult          //X angle
0087: 20@ = 16@
0063: 20@ -= 1@
if
20@ >= Dif_LimitX
then
16@ -= Dif_LimitX
0087: 1@ = 16@
end

0087: 20@ = 16@
0063: 20@ -= 1@
if
Dif_LimitMinX >= 20@
then
16@ -= Dif_LimitMinX
0087: 1@ = 16@
end

3@ *= Z_Mult           //Z angle
0087: 20@ = 17@
0063: 20@ -= 3@
if
20@ >= Dif_Limit
then
17@ -= Dif_Limit
0087: 3@ = 17@
end

0087: 20@ = 17@
0063: 20@ -= 3@
if
Dif_LimitMin >= 20@
then
17@ -= Dif_LimitMin
0087: 3@ = 17@
end

02F7: 8@ = cosine 3@ // (float) 
006B: 4@ *= 8@
02F6: 8@ = sine 3@ // (float) 
006B: 7@ *= 8@
02F6: 8@ = sine 1@
8@ += 1.0
0087: 9@ = 6@
006B: 9@ *= 8@
02E3: 10@ = car 0@ speed
10@ *= 4.0
10@ -= 100.0
if
10@ < 0.0
then
10@ = 0.0
else
 if
 10@ > 120.0
 then
 10@ = 120.0
 end
end
10@ /= 5.0
10@ += 70.0
0087: 20@ = 11@
0063: 20@ -= 10@ 
if
20@ >= Dif_LimitZoom
then
0087: 20@ = 11@ 
20@ -= Dif_LimitZoom
0087: 10@ = 20@
end
0087: 20@ = 11@
0063: 20@ -= 10@ 
if
20@ <= Dif_LimitZoomMin
then
0087: 20@ = 11@ 
20@ -= Dif_LimitZoomMin
0087: 10@ = 20@
end
0679: put_camera_on_vehicle 0@ offset 7@ 4@ 9@ rotation 0.0 0.0 13@ 0.0 2
0922: set_camera_zoom_in_factor 11@ out_factor 10@ timelimit 100 mode 1
0087: 11@ = 10@
end
jump @CARCAM_SET_9

:CARCAM_SET_13
wait 0
Object.Destroy(21@)
Model.Destroy(#WHEEL_OR1)
0AB3: var 0 = 0
jump @CARCAM_SET_2

Кому интересно, "дубовый вариант":

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
thread "CARCAM"
4@ = -5.7
5@ = 7.0
15@ = 0
19@ = 0
6@ = 1.3
7@ = 0.0
11@ = 70.0
12@ = -1
Model.Load(#WHEEL_OR1)
038B: load_requested_models 

:CARCAM_7
wait 0
if
   Player.Defined($PLAYER_CHAR)
jf @CARCAM_7
if
   Actor.Driving($PLAYER_ACTOR)
jf @CARCAM_7
if and
   19@ == 1
   Model.Available(#WHEEL_OR1)
then
wait 125
jump @CARCAM_9
end
if and
0AB0: key_pressed 67
0AB0: key_pressed 78
jf @CARCAM_7
if
   Model.Available(#WHEEL_OR1)
jf @CARCAM_7
wait 125

:CARCAM_9
wait 0
if
   not Model.Available(#WHEEL_OR1)
then
Model.Load(#WHEEL_OR1)
while not Model.Available(#WHEEL_OR1)
wait 0
end
end
03C0: 0@ = actor $PLAYER_ACTOR car 
0407: store_coords_to 1@ 2@ 3@ from_car 0@ with_offset 0.0 3.0 0.0 
0441: 28@ = car 0@ model 
if or
   19@ == 0
803B: not 28@ == 12@
then
07E4: get_model 28@ dimensions_cornerA_to 22@ 23@ 24@ dimensions_cornerB_to 25@ 26@ 27@
0087: 4@ = 23@
0087: 29@ = 4@
4@ *= 2.0
0087: 6@ = 27@
6@ *= 1.67
0087: 30@ = 29@
30@ *= 0.05
29@ *= 0.2
005B: 4@ += 29@
005B: 6@ += 30@
  if
     4@ > -4.5
  then
  4@ = -4.5   
  end
  if   
     6@ < 1.5
  then
  6@ = 1.5 
end
end
0085: 12@ = 28@
20@ = Actor.Angle($PLAYER_ACTOR)
21@ = Object.Create(#WHEEL_OR1, 1@, 2@, 3@)
0750: set_object 21@ visibility 0 
0681: attach_object 21@ to_car 0@ with_offset 0.0 0.0 4.0 rotation 0.0 0.0 0.0  


:CARCAM_14
wait 0
19@ = 1
03C0: 0@ = actor $PLAYER_ACTOR car 
if
   Actor.InCar($PLAYER_ACTOR, 0@)
jf @CARCAM_42
if
0500:   player $PLAYER_CHAR skin == "EMPTY" on_bodypart 1
then
19@ = 0
jump @CARCAM_7
end
0407: store_coords_to 1@ 2@ 3@ from_car 0@ with_offset 0.0 3.0 0.0 
02E3: 10@ = car 0@ speed 
10@ -= 15.0
if
   10@ > 0.0
  then
  if
  10@ > 25.0
    then
    10@ = 25.0
    end
    10@ /= 1.5
  else
  10@ = 0.0
end
10@ += 70.0
//0922: set_camera_zoom_in_factor 11@ out_factor 10@ timelimit 333 mode 1 
//0460: set_camera_transverse_delay 20@ time 60
0087: 11@ = 10@
0679: put_camera_on_vehicle 0@ offset {7@} 0.0 4@ 6@ rotation {8@} 0.0 5@ 1.0 0.0 2

:CARCAM_25
wait 0
03C0: 0@ = actor $PLAYER_ACTOR car 
if
   Actor.InCar($PLAYER_ACTOR, 0@)
jf @CARCAM_42
if or
8AB0: not key_pressed 67
8AB0: not key_pressed 78
jf @CARCAM_40

:CARCAM_29
wait 0
if
0AB0:   key_pressed 109
jf @CARCAM_34
if
15@ == 0
then
4@ -= 0.1
else
4@ += 0.1
end
jump @CARCAM_14

:CARCAM_34
wait 0
if
0AB0:   key_pressed 107
jf @CARCAM_35
if
15@ == 0
then
4@ += 0.1
else
4@ -= 0.1
end
jump @CARCAM_14

:CARCAM_35
wait 0
if
0AB0:   key_pressed 101
jf @CARCAM_36
0441: 28@ = car 0@ model 
07E4: get_model 28@ dimensions_cornerA_to 22@ 23@ 24@ dimensions_cornerB_to 25@ 26@ 27@
0087: 4@ = 23@
0087: 29@ = 4@
4@ *= 2.0
0087: 6@ = 27@
6@ *= 1.67
0087: 30@ = 29@
30@ *= 0.05
29@ *= 0.2
005B: 4@ += 29@
005B: 6@ += 30@
if
   4@ > -4.5
then
4@ = -4.5   
end
if   
   6@ < 1.5
then
6@ = 1.5 
end
jump @CARCAM_14

:CARCAM_36
wait 0
if and
00E1:   player 0 pressed_key 5
00E1:   player 0 pressed_key 7
15@ == 0
jf @CARCAM_37
if and
4@ < 0.0
5@ > 0.0
then
4@ *= -1.0
5@ *= -1.0
15@ = 1
end

:CARCAM_37
wait 0
if and
80E1:   not player 0 pressed_key 5
80E1:   not player 0 pressed_key 7
15@ == 1
jf @CARCAM_38
4@ *= -1.0
5@ *= -1.0
15@ = 0
jump @CARCAM_14

:CARCAM_38
wait 0
if or
00E1:   player 0 pressed_key 5
00E1:   player 0 pressed_key 7
jf @CARCAM_39
if or
80E1:   not player 0 pressed_key 5
80E1:   not player 0 pressed_key 7
jf @CARCAM_39
if and
   not Actor.DrivingPlane($PLAYER_ACTOR)
84A9:   not actor $PLAYER_ACTOR driving_heli 
jf @CARCAM_39
Camera.Restore_WithJumpCut
jump @CARCAM_48

:CARCAM_39
wait 0
if or
0AB0:   key_pressed 71
0AB0:   key_pressed 2
jf @CARCAM_61
Camera.Restore_WithJumpCut
gosub @CARCAM_54
jump @CARCAM_14

:CARCAM_40
wait 0
19@ = 0
Camera.Restore_WithJumpCut
Object.Destroy(21@)
wait 200
jump @CARCAM_7

:CARCAM_42
wait 0
Camera.Restore_WithJumpCut
Object.Destroy(21@)
wait 200
jump @CARCAM_7

:CARCAM_48
wait 0
if and
80E1:   not player 0 pressed_key 5
80E1:   not player 0 pressed_key 7
jf @CARCAM_51
jump @CARCAM_14

:CARCAM_51
wait 0
if and
00E1:   player 0 pressed_key 5
00E1:   player 0 pressed_key 7
jf @CARCAM_37
jump @CARCAM_36

:CARCAM_54
wait 0
if and
8AB0:   not key_pressed 71  
8AB0:   not key_pressed 2  
jf @CARCAM_54
return

:CARCAM_61
wait 0
if
0AB0: key_pressed 105
jf @CARCAM_64
6@ += 0.2
jump @CARCAM_14

:CARCAM_64
wait 0
if
0AB0: key_pressed 99
jf @CARCAM_69
6@ -= 0.2
jump @CARCAM_14

:CARCAM_69
wait 0
05A6: get_object 21@ rotation_velocity_about_an_axis_X 1@ axis_Y 2@ axis_Z 3@ through_center_of_body 
0087: 8@ = 3@
3@ *= -1.0
0087: 7@ = 3@
jump @CARCAM_14

Скрины:
284487-6027e-36267238-h200.jpg284487-20f47-36267239-h200.jpg
284487-12ffd-36267240-h200.jpg284487-194be-36267241-h200.jpg
284487-c5498-36267242-h200.jpg284487-befb4-36267243-h200.jpg

Last edited by BullDogHEMI427 (27-12-2011 11:21)


Also known as HemiG
It's cool to Hate. It's cool to be a bloody guitarist.
284487-39e63-35897154-h200.jpg

Offline

#2 01-09-2010 19:13

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

Re: Новая камера для авто

судя по описанию записывающий в переменные края машины (по коллизии, всмысле).

07E4: get_model 1@ dimensions_cornerA_to 2@ 3@ 4@ dimensions_cornerB_to 5@ 6@ 7@

Записывает габаритные размеры модели (не обязательно транспорт) в переменные. 2@, 3@, 4@ - левый задний нижний угол модели; 5@, 6@, 7@ - правый передний верхний угол.

Last edited by Den_spb (01-09-2010 19:18)

Offline

#3 22-09-2010 17:55

BullDogHEMI427
From: Рязань
Registered: 02-04-2009
Posts: 54

Re: Новая камера для авто

Спасибо. То-то я его не мог найти ни на car, ни на vehicle=).
После пар сделаю автокалибровку по размеру машины.

Обновил первый пост. Ещё раз прошу помощи с тем, как заставить камеру плавно менять оффсет относительно машины.


Also known as HemiG
It's cool to Hate. It's cool to be a bloody guitarist.
284487-39e63-35897154-h200.jpg

Offline

#4 03-10-2010 09:11

Mirshan
Registered: 07-03-2009
Posts: 1

Re: Новая камера для авто

Отличный скрипт, с "дубовой" камерой вполне можно ездить. Только на моем широкоформатном мониторе по-умолчанию она слишком близко и не видна нижняя часть машины.

BullDogHEMI427 wrote:

Если проблемы будут решены, то получим новую, приятную для игры камеру smile .

По-моему, легче найти параметры камеры в коде игры, уменьшить инерцию и увеличить скорость камеры.

Offline

#5 19-04-2011 17:27

BullDogHEMI427
From: Рязань
Registered: 02-04-2009
Posts: 54

Re: Новая камера для авто

После стольких месяцев забития на моддинг меня втянуло обратно crazy

Решение с плавностью нашёл - разбил код на два потока, первый - включает камеру, считывает нажатия и т.п., после чего через глобальные клео-переменные передаёт их во второй, который просчитывает доп. смещения и ставит камеру. Сейчас довожу до ума их работу, не сегодня - завтра выложу код.


Also known as HemiG
It's cool to Hate. It's cool to be a bloody guitarist.
284487-39e63-35897154-h200.jpg

Offline

#6 20-04-2011 05:18

444andrei444
Registered: 29-03-2011
Posts: 317
Website

Re: Новая камера для авто

А не мог бы файл прикрепить , у меня инет только на теле , не переписывать же мне все по одному символу

Offline

#7 20-04-2011 14:28

BullDogHEMI427
From: Рязань
Registered: 02-04-2009
Posts: 54

Re: Новая камера для авто

А не мог бы файл прикрепить , у меня инет только на теле , не переписывать же мне все по одному символу

Всё доставим


Also known as HemiG
It's cool to Hate. It's cool to be a bloody guitarist.
284487-39e63-35897154-h200.jpg

Offline

#8 20-04-2011 16:38

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

Re: Новая камера для авто

Решение с плавностью нашёл - разбил код на два потока, первый - включает камеру, считывает нажатия и т.п., после чего через глобальные клео-переменные передаёт их во второй, который просчитывает доп. смещения и ставит камеру. Сейчас довожу до ума их работу, не сегодня - завтра выложу код.

Лучше конечно, один поток, чем два. А чтобы не было проблем с быстродействием, необходимо снизить число wait-ов к минимуму (желательно до 1). После каждой метки wait-ы ставить не надо - они необходимы только в циклах.

Offline

#9 22-04-2011 18:37

BullDogHEMI427
From: Рязань
Registered: 02-04-2009
Posts: 54

Re: Новая камера для авто

Лучше конечно, один поток, чем два. Необходимо снизить число wait-ов к минимуму (желательно до 1). После каждой метки wait-ы ставить не надо

Спасибо, потом может верну в один поток.

Обновил первый пост. Плавности камере не хватает, задний вид срабатывает с задержкой, но и так хорошо. Позже могу добавить ещё разных функций.


Also known as HemiG
It's cool to Hate. It's cool to be a bloody guitarist.
284487-39e63-35897154-h200.jpg

Offline

#10 27-12-2011 11:32

BullDogHEMI427
From: Рязань
Registered: 02-04-2009
Posts: 54

Re: Новая камера для авто

Извиняюсь за даблпост, между постами прошло восемь месяцев crazy
-----
Повыбрасывал вэйты откуда можно, добвил пару фич - всё в первом посте.


Also known as HemiG
It's cool to Hate. It's cool to be a bloody guitarist.
284487-39e63-35897154-h200.jpg

Offline

Board footer

Powered by FluxBB