Czy wiesz, że... rejestracja trwa tylko 20 sekund?
Strona główna forum Szukaj Rejestracja
Witaj, nieznajomy!
Poprzedni 1 Następny
Postów: 294 Dołączył: 2011-07-27
#
Mam pytanie dotyczące akapitu "Zmienne CLEO" w tym artykule:
http://www.gta-mods.pl/artykuly/53/zmienne
Czy to oznacza że w CLEO można ustawić więcej zmiennych lokalnych niż 33?
Postów: 628 Dołączył: 2009-01-22
#
Korzystając z tych opcodów, teoretycznie tak.

___________________
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
#
Bo chciałem zrobić skrypt dodający więcej ikonek na mapie/radarze, tak około 50 nowych i właśnie zabrakło mi zmiennych. Mógłbyś pokazać jak wykorzystać te opcody w takim skrypcie:
Kod:
thread 'NONAME' 
0A95: enable_thread_saving 

:NONAME_13
if 
  $ONMISSION == 0 
else_jump @NONAME_562 
1@ = Marker.CreateIconWithoutSphere(48, 1837.0, -1682.0, 14.0)
      .
      .
      .
49@ = Marker.CreateIconWithoutSphere(48, -2551.115, 193.657, 5.2)
50@ = Marker.CreateIconWithoutSphere(48, 2507.44, 1242.31, 9.833)

:NONAME_537
  $ONMISSION == 0 
else_jump @NONAME_13 
wait 0 
jump @NONAME_537 

:NONAME_562
Marker.Disable(1@)
      .
      .
      .
Marker.Disable(49@)
Marker.Disable(50@)

:NONAME_677
  $ONMISSION == 1 
else_jump @NONAME_13 
wait 0 
jump @NONAME_677 
0A93: end_custom_thread 
Postów: 628 Dołączył: 2009-01-22
#
Ja nie ufam tym zmiennym (inne mody mogą je nadpisać i nawet o tym nie będziesz wiedziać), a stawianie markerów przez CLEO to trochę zły pomysł (po zapisaniu gry i usunięciu takiego modu markery zostaną na zawsze. Dobrze jednak, że dałeś 0A95, wtedy da się to jakoś jeszcze przetrawić). Jak bardzo chcesz ich użyć, najlepiej zrobić to tak (przeorganizowałem lekko ten skrypt, by był czytelniejszy):

Kod:
0A95: enable_thread_saving
// 31@ jest naszą flagą \'ikony stworzone\'  


while 
true
    0001: wait 0 ms
    if
        
0038:   $ONMISSION == 0
    then
        
if
            0039:   31@ == 0    // Markery nie istnieją?

        then
            
1@ = Marker.CreateIconWithoutSphere(48, 1837.0, -1682.0, 14.0)
                  .
                  .
                  .
            29@ = Marker.CreateIconWithoutSphere(48, x, y, z)
            // Dojeżdżamy do ostatniej zmiennej, której możemy użyć zwyczajnym sposobem

            // 30@ zachowamy jako wymaganą zmienną tymczasową, a 31@ jest użyte jako flaga

            30@ = Marker.CreateIconWithoutSphere(48, x, y, z)    
            0AB3: var 423 = 30@     // Zmienna CLEO nr 423 (miejmy nadzieję, że żaden inny skrypt CLEO jej nie używa) zawierać będzie teraz uchwyt do tego marketu

                  .
                  .
                  .
            {49@30@ = Marker.CreateIconWithoutSphere(48, -2551.115, 193.657, 5.2)
            0AB3: var 442 = 30@
            {50@30@ = Marker.CreateIconWithoutSphere(48, 2507.44, 1242.31, 9.833)
            0AB3: var 443 = 30@
            
            0006: 31@ = 1
        end
    
else
        if
            
0039:   31@ == 1    // Markery istnieją?    

        then
            
Marker.Disable(1@)
                  .
                  .
                  .
            0AB4: 30@ = var 423
            Marker.Disable(30@)
            // Proces analogiczny do tworzenia markerów, tylko w drugą stronę

            // Pobieramy uchwyt ze zmiennej CLEO do zwykłej zmiennej lokalnej i wyłączamy marker

                .
                .
                .
            0AB4: 30@ = var 442
            Marker.Disable({49@30@)
            0AB4: 30@ = var 443
            Marker.Disable({50@30@
            
            0006: 31@ = 0
        end
    
end
end


Uważaj jednak na ten skrypt - tworząc 50 ikon na raz jest szansa, że uderzysz w limit 175 ikon i np. ten wskaźnik celu zaznaczany klawiszem PPM przestanie działać.

___________________
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
#
Chyba wszystko dobrze zrobiłem, ale część ikonek się nie pojawia. Prawdopodobnie przekroczyłem limit bo nie ma też tych żółtych plamek pokazujących lotniska. Wiesz może ile tych ikonek jest standardowo w grze?
I powiedz mi o co chodzi z tym nadpisaniem zmiennych?

Edit:
W sumie mogłoby być tak że np. po wciśnięciu danego klawisza pokazywałaby się połowa z tych ikonek, a po wciśnięciu innego pokazywałaby się druga część, a ta pierwsza by znikała. A obydwie części byłby w osobnych skryptach, które łączyłby jeden wspólny z powyższym sterowaniem. Dałoby się tak zrobić?
Postów: 628 Dołączył: 2009-01-22
#
artgin89 napisał(a):

W sumie mogłoby być tak że np. po wciśnięciu danego klawisza pokazywałaby się połowa z tych ikonek, a po wciśnięciu innego pokazywałaby się druga część, a ta pierwsza by znikała. A obydwie części byłby w osobnych skryptach, które łączyłby jeden wspólny z powyższym sterowaniem. Dałoby się tak zrobić?


Tak.

A liczba ikonek standardowo jest różna, zależy od postępu w grze. Ale skoro tu przekroczyłeś limit, to obstawiam że jest to 130-140.

___________________
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 mógłbyś pokazać jak powinien wyglądać taki skrypt z tym sterowaniem odnoszącym się do dwóch osobnych skryptów?
Poprzedni 1 Następny
Zaloguj się lub zarejestruj się, żeby pisać na forum.
Created & Powered by MakG