#1 01-02-2010 09:42

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

Swatvan с пулемётом (CLEO)

Скрипт создаёт полицейский броневик (Swatvan), который будет припаркован у здания вокзала на станции Клюквы. К автомобилю будет прицеплен пулемёт (minigun), который, как и водяная пушка, может вращаться в горизонтальной и вертикальной плоскостях - в зависимости от направления обзора камеры. Огонь из пулемёта осуществляется правой кнопкой мыши.
Кроме того, автомобиль будет полностью неуязвимым, а колёса - пуленепробиваемыми.
Также есть возможность заблокировать двери на данном автомобиле - для этого нужно нажать [ (после того, как игрок войдёт в машину). Блокировка снимается автоматически, сразу после выхода игрока из автомобиля.
Если на обозначенном месте автомобиль не появился, то следует отъехать на какое-то расстояние, а затем вернуться.

{$CLEO}
0A95: enable_thread_saving
014B: 9@ = init_parked_car_generator 601 1 1 0 alarm 0 door_lock 0 1 40000 at -1968.4062 100.8711 27.6875 angle 90.0
014C: set_parked_car_generator 9@ cars_to_generate_to 101
while true
    wait 0
    if
        player.Defined($player_char)
    then
        if
            856E:   not car 30@ defined
        then
            if
                03CA:   object 31@ exists
            then
                object.Destroy(31@)
            end
            if
                00EC:   actor $PLAYER_ACTOR 0 near_point -1968.4062 100.8711 radius 200.0 200.0
            then
                073E: get_car_in_sphere -1968.4062 100.8711 26.6875 radius 10.0 model 601 handle_as 30@
            end    
        else
            if
                83CA:   not object 31@ exists
            then
                model.Load(362)
                repeat
                    wait 0
                until model.Available(362)
                object.Create(31@ 362 0.0 0.0 -100.0)
                model.Destroy(362)
                if and
                    056E: car 30@ defined
                    03CA:   object 31@ exists
                then
                    0681: attach_object 31@ to_car 30@ with_offset 0.3 0.0 2.0 rotation 0.0 30.0 94.0
                    car.SetImmunities(30@ 1 1 1 1 1)
                    053F: set_car 30@ tires_vulnerability 0 
                end            
            else
                if
                    056E: car 30@ defined
                then
                    if
                        actor.InCar($PLAYER_ACTOR 30@)
                    then
                        if
                            0AB0:  key_pressed 219 // [ button - lock doors
                        then
                            020A: set_car 30@ door_status_to 2
                        end
                        if
                            82BF:   not car 30@ sunk
                        then     
                            068D: get_camera_position_to 0@ 1@ 2@ 
                            068E: get_camera_target_point_to 3@ 4@ 5@
                            0174: 17@ = car 30@ Z_angle
                            //-----------------------------------------------------------вычисляем угол по X
                            050A: 6@ = distance_between_XYZ 0@ 1@ 2@ and_XYZ 3@ 4@ 5@
                            0087: 10@ = 5@ // (float)  
                            0063: 10@ -= 2@ // (float)
                            0073: 10@ /= 6@ // (float) = sin
                            0087: 7@ = 10@ // (float)
                            0087: 8@ = 10@ // (float)
                            006B: 10@ *= 7@ // (float) 
                            006B: 10@ *= 7@ // (float) 
                            10@ /= 6.0
                            005B: 8@ += 10@ // (float)
                            10@ *= 6.0
                            006B: 10@ *= 7@ // (float) 
                            006B: 10@ *= 7@ // (float) 
                            10@ *= 0.075
                            005B: 8@ += 10@ // (float)
                            10@ /= 0.075
                            006B: 10@ *= 7@ // (float) 
                            006B: 10@ *= 7@ // (float)
                            10@ *= 0.0446 
                            005B: 8@ += 10@ // (float)  arcsinX = X + (X^3)/6 + (X^5)*3/40 + (X^7)*15/336
                            8@ *= -57.296 // переводим радианы в градусы
                            8@ += 360.0
                            //-----------------------------------------------------------вычисляем угол по Z
                            0063: 3@ -= 0@ // (float)
                            0063: 4@ -= 1@ // (float)
                            0604: get_Z_angle_for_point 3@ 4@ store_to 2@  // 1 параметр - x2-x1   2 параметр - y2-y1               
                            //-----------------------------------------------------------вычисляем смещения по осям X и Y
                            0063: 2@ -= 17@ // (float) 
                            2@ += 270.0   // пусть миниган будет располагаться справа от водяной пушки
                            02F6: 3@ = cosine 2@ // (float) синус
                            02F7: 4@ = sine 2@ // (float) косинус
                            3@ *= -0.3
                            4@ *= 0.3
                            //-----------------------------------------------------------прикрепляем миниган
                            2@ -= 176.0  // 94 градуса - поправка на расположение опорной точки минигана
                            if
                                8@ < 320.0
                            then
                                8@ = 320.0
                            end
                            if
                                8@ > 395.0
                            then
                                8@ = 395.0
                            end
                            if and
                                056E: car 30@ defined
                                03CA:   object 31@ exists
                            then
                                0681: attach_object 31@ to_car 30@ with_offset 3@ 4@ 2.0 rotation 0.0 8@ 2@
                                if
                                    0AB0: key_pressed 2 // ПКМ - огонь
                                then           
                                    0400: store_coords_to 11@ 12@ 13@ from_object 31@ with_offset 1.17 0.0 0.42
                                    0400: store_coords_to 14@ 15@ 16@ from_object 31@ with_offset 1150.0 -100.0 550.0
                                    06BC: create_M4_shoot_from 11@ 12@ 13@ target 14@ 15@ 16@ energy 1000
                                    066E: create_particle "GUNFLASH" attached_to_object 31@ with_offset 1.17 0.0 0.42 rotation  0.866024961519 0 0.500000766025 flag 1 handle_as 18@ 
                                    064C: make_particle 18@ visible 
                                    064F: remove_references_to_particle 18@
                                end
                            end
                        end // not car sunk
                    else
                        020A: set_car 30@ door_status_to 0 // door unlock
                        if or
                            8202:   not actor $PLAYER_ACTOR near_car 30@ radius 200.0 200.0 flag 0
                            02BF:   car 30@ sunk  
                        then
                            car.RemoveReferences(30@)
                        end
                    end  // actor in car         
                end  // car defined
            end  // object 31@ exists  
        end    
    end
end

Скрины:
346a7f2a101bt.jpg  5262908a79b2t.jpg

Offline

#2 27-12-2015 15:12

TRANKLER
Registered: 27-12-2015
Posts: 2

Re: Swatvan с пулемётом (CLEO)

А вот интересно... Можно ли изменить орудие на Swatvan'e на то что у rhino? ( Заменить водомёт на пушку ).

Offline

Board footer

Powered by FluxBB