#1 24-08-2010 01:49

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

GPS 4 GTASA

Данный скрипт написан 3Doomer-ом при поддержке Viger 24.08.2010, как реализация системы pathfinding на движке GTA San Andreas
То, что долго работает - знаю, влом исправлять.

Архив, так-же, содержит QuickOpcode v2.0 за авторством Viger и плагин под это чудо, имени меня, тоже под его авторством.
Не забудьте скачать с сайта (SannyBuilder.com) CLEO 4, чтобы всю это мракобесие не ругалось на вас английскими букофками.

Исходник прилагается в целях поржать/поучиться.

Разрешается выкладывать сие ужасное творение везде, где захочется, но при указании одного из реквизитов автора.

Реквизиты:
3Doomer2@gmail.com
ICQ 466645558

Забирайте, злые дети http://ifolder.ru/19008448

==========

{$CLEO .cs}
0662: NOP "By 3Doomer"
wait 1000
//USER DEFINED VARS
25@=30.0 //point placement distance
26@=30.0 //point pass radius
27@=0 //point radar type
//END OF USER DEFINED VARS
while true
    wait 200
    while Player.Defined($PLAYER_CHAR)
        wait 200
        while Actor.Driving($PLAYER_ACTOR)
            wait 200
            8@=0.0
            9@=0.0
            10@=1000.0
            03E5: show_text_box 'GPSHLP1'   
            03C0: 0@ = actor $PLAYER_ACTOR car
                while Actor.Driving($PLAYER_ACTOR)
                    wait 200
                    if
                        0AB6: store_target_marker_coords_to 8@ 9@ 10@
                    then
                    fade 0 500
                    while fading
                        wait 100
                    end
                    02C1: store_to 8@ 9@ 10@ car_path_coords_closest_to 8@ 9@ 10@  
                    player.CanMove($PLAYER_CHAR,false)
                    0519: set_car 0@ locked 1
                    099A: set_car 0@ collision_detection 0
                    01EB: set_traffic_density_multiplier_to 0.0
                    03DE: set_pedestrians_density_multiplier_to 0.0
                    00BF: 15@ = current_time_hours, 16@ = current_time_minutes
                    actor.Create(17@,4,#MALE01,0.0,0.0,1000.0)
                    car.StorePos(0@,1@,2@,3@)
                    4@ = car.Angle(0@)
                    19@ = car.Health(0@)
                    model.Load(#BANSHEE)
                    while not model.Available(#BANSHEE)
                        wait 100
                    end
                    02C1: store_to 5@ 6@ 7@ car_path_coords_closest_to 1@ 2@ 3@
                    car.Create(18@,#BANSHEE,5@,6@,7@)
                    car.PutAt(0@,5@,6@,7@)
                    0395: clear_area 1 at 5@ 6@ 7@ radius 1000.0 
                    0175: set_car 18@ Z_angle_to 4@
                    036A: put_actor 17@ in_car 18@
                    model.Destroy(#BANSHEE)
                    car.SetImmunities(18@,1,1,1,1,1)
                    00AD: set_car 18@ max_speed_to 500.0
                    01EC: make_car 18@ very_heavy 1
                    0423: set_car 18@ improved_handling_to 20.0
                    00AE: set_car 18@ traffic_behaviour_to 2
                    00AF: set_car 18@ driver_behaviour_to 2 
                    car.DriveTo(18@,8@,9@,10@)
                    car.StorePos(18@,5@,6@,7@)
                    0A9A: 14@ = openfile "CLEO/GPS.tmp" mode 0x6277
                    marker.CreateIconWithoutSphere(13@,0,5@,6@,7@)
                    0A9E: writefile 14@ size 4 from 13@
                    while   80FE:   not actor 17@ sphere 0 in_sphere 8@ 9@ 10@ radius 10.0 10.0 10.0   
                            wait 500
                            0731: set_car 18@ y_angle_to 0.0
                            0224: set_car 0@ health_to 19@
                            0224: set_car 18@ health_to 1000
                            00C0: set_current_time_hours_to 15@ minutes_to 16@
                            car.StorePos(18@,11@,12@,13@)
                            if
                                0AB0:  key_pressed 8
                            then
                                car.DriveTo(18@,11@,12@,13@)
                            end
                            050A: 13@ = distance_between_XYZ 11@ 12@ 13@ and_XYZ 5@ 6@ 7@
                            if
                                0025:   13@ > 25@
                            then
                                car.StorePos(18@,5@,6@,7@)
                                car.PutAt(0@,5@,6@,7@)
                                marker.CreateIconWithoutSphere(13@,27@,5@,6@,7@)
                                0A9E: writefile 14@ size 4 from 13@
                            end
                    end
                    0A9B: closefile 14@
                    01EB: set_traffic_density_multiplier_to 1.0
                    03DE: set_pedestrians_density_multiplier_to 1.0
                    actor.DestroyInstantly(17@)
                    actor.RemoveReferences(17@)
                    car.Destroy(18@)
                    car.RemoveReferences(18@)
                    car.PutAt(0@,1@,2@,3@)
                    0A9A: 1@ = openfile "CLEO/GPS.tmp" mode 0x6272
                    099A: set_car 0@ collision_detection 1
                    0519: set_car 0@ locked 0
                    player.CanMove($PLAYER_CHAR,true)
                    camera.Restore_WithJumpCut()
                    fade 1 500
                    gosub @readfile
                    while true
                        wait 200
                        if
                            00FE:   actor $PLAYER_ACTOR sphere 1 in_sphere 11@ 12@ 13@ radius 26@ 26@ 26@
                        then
                            marker.Disable(2@)
                            gosub @readfile
                        end
                        if or
                            8AB6: not store_target_marker_coords_to 8@ 9@ 10@
                            00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere 5@ 6@ 7@ radius 26@ 26@ 26@
                            not actor.Driving($PLAYER_ACTOR)
                        then
                            while 8AD6: not end_of_file 1@ reached
                                wait 0
                                marker.Disable(2@)
                                0A9D: readfile 1@ size 4 to 2@
                            end
                            0A9B: closefile 1@
                            Break
                        end
                    end
                    while 0AB6: store_target_marker_coords_to 8@ 9@ 10@
                        wait 200
                        if
                            not actor.Driving($PLAYER_ACTOR)
                        then
                            Break
                        end
                    end
                    end //targeted
                end //driving
            end //in car
            01C3: remove_references_to_car 0@   
    end //pldef
end //cycle

:readfile
0A9D: readfile 1@ size 4 to 2@
0A32: 3@ = marker 2@ handle
3@+=8
0A8D: 11@ = read_memory 3@ size 4 virtual_protect 0
3@+=4
0A8D: 12@ = read_memory 3@ size 4 virtual_protect 0
3@+=4
0A8D: 13@ = read_memory 3@ size 4 virtual_protect 0
return

Last edited by 3Doomer (24-08-2010 11:21)


GIMS developer

Offline

Board footer

Powered by FluxBB