Czy wiesz, że... na forum możesz uzyskać pomoc nt. modowania GTA?
Strona główna forum Szukaj Rejestracja
Witaj, nieznajomy!
Poprzedni 1 Następny
Postów: 294 Dołączył: 2011-07-27
#
Witam, chciałem napisać skrypt, który sprawiałby, że gdy w ciągniku są włączone światła to również włączą się automatycznie w naczepie i odwrotnie. Tylko problem w tym, że nie wiem jak zdefiniować tą naczepę, tzn. jak przypisać ją do zmiennej. Pomoże ktoś? :)
Postów: 628 Dołączył: 2009-01-22
#
To proste. Wolałbyś wersję dla CLEO4 czy dla CLEO3 i 4?

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 294 Dołączył: 2011-07-27
#
Wolałbym lepszą (prostszą, stabilniejszą) wersję :) Nie ma znaczenia czy cleo 3 czy 4.
Postów: 628 Dołączył: 2009-01-22
#
Wiesz, spojrzałem do swoich zbiorów funkcji i okazało się że ktoś już kiedyś o takie coś prosił, nie wiem czy to nie Ty :P

Tak czy inaczej, tamta funkcja była napisana dawno i jest stosunkowo wolna. Napisałem ją od nowa:

Wersja dla CLEO3/CLEO4 - tylko dla 1.0US/EU:

Kod:
:GET_TRAILER_ATTACHED_TO_CAB
{
 Parameters:
   Passed:
     0@ - Car handle
   Result:
     1@ - Attached trailer handle

 Example:
   if 
0AB1: call_scm_func @GET_TRAILER_ATTACHED_TO_CAB 1 from_cab 0@ store_to 1@ // IF and SET

}
0A8D: 1@ = read_memory 0x5D4807 size 4 virtual_protect 0
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
0A97: 0@ = car 0@ struct
0@ += 0x4C8
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
if 
not 0@ == 0
then
    
0A8D: 2@ = read_memory 1@ size 4 virtual_protect 0
    1@ += 0x4
    0A8D: 3@ = read_memory 1@ size 4 virtual_protect 0
    0062: 0@ -= 2@
    0@ /= 0xA18
    005A: 3@ += 0@
    4@ = 0
    0A8D: 4@ = read_memory 3@ size 1 virtual_protect 0
    0@ *= 0x100
    005A: 0@ += 4@
    0485: return_true
    0AB2: ret 1 0@
end
059A: return_false
0AB2: ret 1 0


Wersja tylko dla CLEO4, ale działa z każdym EXE który jest wspierany przez CLEO4 - nawet Steamowy:

Kod:
:GET_TRAILER_ATTACHED_TO_CAB
{
 Parameters:
   Passed:
     0@ - Car handle
   Result:
     1@ - Attached trailer handle

 Example:
   if 
0AB1: call_scm_func @GET_TRAILER_ATTACHED_TO_CAB 1 from_cab 0@ store_to 1@ // IF and SET

}
0A97: 0@ = car 0@ struct
0@ += 0x4C8
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
if 
not 0@ == 0
then
    
0AEB: 0@ = car_struct 0@ handle
    0485: return_true
    0AB2: ret 1 0@
end
059A: return_false
0AB2: ret 1 0



___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 294 Dołączył: 2011-07-27
#
A wiesz może jak to "wkomponować" w poniższy kod, żeby działało zarówno jak gracz prowadzi pojazd z naczepą, jak również kiedy gra steruje takimi pojazdami z naczepami. Chodzi o coś takiego, że gdy np. robi się ciemno to gra włączając światła w ciągniku włączała by również w jego naczepie, dołączonej za pomocą tego kodu.

Kod:

{$CLEO}
0000: TRAILER 

while  
true
    0001:  wait  0 ms
    4@ = #ARTICT1
    068D: get_camera_position_to 1@ 2@ 3@ 
    if  
0AE2: 0@ = random_vehicle_near_point 1@ 2@ 3@ in_radius 300.0 find_next 0 pass_wrecked 1 //IF  and  SET 

    then
         
repeat
            0001:  wait  0 ms // Dajmy mu chwilę czasu, niech nie przycina gry 

            if  
8119:    not  car 0@ wrecked   //  To  załatwia wszystkie sprawdzenia czy pojazd istnieje itp. 

            then
                 
if  or
                     
0137:   car 0@ model == #LINERUN
                    0137:   car 0@ model == #RDTRAIN
                    0137:   car 0@ model == #PETRO 
                then
                     
0A97: 7@ = car 0@ struct
                    0A8E: 8@ = 7@ + 0x4A4
                    0A8E: 9@ = 7@ + 0x42F
                    0A8D: 10@ = read_memory 8@ size 1 virtual_protect 0
                    0A8D: 11@ = read_memory 9@ size 1 virtual_protect 0 
                    if  
and
                        8039:    not  10@ == 2     // Dzięki temu przyczepy NIE pojawią się na ciężarówkach stworzonych przez SCM...

                        88B7:    not  test 11@ bit 4   // a dzięki temu sprawdzimy, czy do tego pojazdu kiedyś doczepiono już naczepę (moja własna flaga)

                        09D0:   car 0@ on_wheels
                        87AB:     not   trailer -1 attached_to_cab 0@ 
                    then
                         
0247: load_model 4@ 

                        while   
8248:     not   model 4@ available
                            0001:   wait   0 ms 
                        end

                         
00A5: 6@ = create_car 4@ at 0 0 0
                        0893: put_trailer 6@ on_cab 0@
                        01C3: remove_references_to_car 6@
                        0249: release_model 4@

                        08BD: set 11@ bit 4      // Oznaczmy, że do tego pojazdu doczepiliśmy już kiedyś naczepę

                        0A8C: write_memory 9@ size 1 value 11@ virtual_protect 0 
                    end
                 
end 
            end
         
until 8AE2:  not  0@ = random_vehicle_near_point 1@ 2@ 3@ in_radius 300.0 find_next 1 pass_wrecked 1 //IF  and  SET 

    end
end

Poprzedni 1 Następny
Zaloguj się lub zarejestruj się, żeby pisać na forum.
Created & Powered by MakG