Czy wiesz, że... możesz podsyłać newsy, artykuły, pliki i zdjęcia?
Strona główna forum Szukaj Rejestracja
Witaj, nieznajomy!
Poprzedni 1 Następny
Postów: 248 Dołączył: 2009-06-27
#
Jak rozumiem, zaletą i głównym zastosowaniem zmiennych globalnych, np. $103, $PLAYER_ACTOR jest możliwość używania podstawionej wartości w więcej niż jednym skrypcie. Tymczasem..
przy:
Kod:
00A0: store_actor $PLAYER_ACTOR position_to $SPOTTED_SUSPECT_X $SPOTTED_SUSPECT_Y $SPOTTED_SUSPECT_Z // patrzcie na to
end

if and
not $UNITS >= 10
010F:   player $PLAYER_CHAR wanted_level > 0
then
0A94: start_custom_mission "missions/radiowoz1" // i na to

w skrypcie .cs oraz przy:
Kod:
0376: 33@ = create_random_actor_at $SPOTTED_SUSPECT_X $SPOTTED_SUSPECT_Y $SPOTTED_SUSPECT_Z

w skrypcie *.cm wyłącza się gra. Natychmiastowo i bez raportu.

Jak obejść ten problem bez ingerowania w main.scm?

___________________
http://www.gta-mods.pl/public/images/userbar
Postów: 878 Dołączył: 2009-01-20
#
Zauważyłem, że CLEO nie obsługuje komunikacji pomiędzy skryptem *.cs, a misją *.cm poprzez zmienne globalne.
Dlatego będziesz musiał użyć innego sposobu:

Ustawienie zmiennej o ID "51" na wartość "1" (możesz przypisać tu dowolną inną wartość.
Kod:
0AB3: var 51 = 1


Odczytanie zmiennej "51" i przypisanie jej do zmiennej lokalnej "0@".
Kod:
0AB4: 0@ = var 51


Numer zmiennej może być od 0 do 999.

___________________
Administrator
Postów: 248 Dołączył: 2009-06-27
#
To jest prawidłowy zapis? Sprawdź mnie:
Kod:

// cs
0AB3: var 1 = 1534.0
0AB3: var 2 = -1454.4
0AB3: var 3 = 23.1345
// cm
0AB4: 1@ = var 1
0AB4: 2@ = var 2
0AB4: 3@ = var 3
Car.Create(0@, #COPCARLA, 1@, 2@, 3@)


___________________
http://www.gta-mods.pl/public/images/userbar
Postów: 628 Dołączył: 2009-01-22
#
Tak.

Poza tym, w CLEO da się ustawić tak, żeby zmienne globalne się komunikowały między sobą, trzeba je alokować na to samo ID. W takim skrypcie jak Ty dałeś, każda z tych nazw jest pewnie alokowana na inne ID, i przez to to nie działa + nadpisuje ważne zmienne globalne z normalnej gry (dlatego właśnie nikt nie poleca ich stosowania w CLEO).

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 248 Dołączył: 2009-06-27
#
Dzięki za profesjonalny język :-D, ale jak alokować ID zmiennej globalnej?

___________________
http://www.gta-mods.pl/public/images/userbar
Postów: 628 Dołączył: 2009-01-22
#
Lepiej używać już zmiennych CLEO do komunikacji między skryptami, zmienne globalne mogą powodować niekompatybilność Twoich cleosów z modami main.scm.

Jakby się uprzeć, to można je też połączyć poprzez czytanie zmiennych lokalnych jednego skryptu przez drugi, ale to dość wysoka szkoła jazdy :)

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 248 Dołączył: 2009-06-27
#
No wiesz, co do kompatybilności z modami main.scm to nie sądzę żeby panom z R* chciało się wprowadzać zmiennej typu $SUSPECT_X do "stiuningowania" inteligencji oficerów przynajmniej do poziomu Need For Speed. A tym m.in. się teraz zajmuję :-)

Jeśli to wysoka szkoła jazdy, to ja dziękuję. Jeszcze do tego poziomu nie dojechałem. Jeśli chcesz, możesz napisz jak to zrobić, może bardziej doświadczeni ode mnie z tego skorzystają. Twój wybór.
---
Mam ten sam efekt. Próbuję to wrzucić to main.scm i działają zmienne globalne, ale mam masę innych błędów. Zobaczę czy da się naprawić.

___________________
http://www.gta-mods.pl/public/images/userbar
Postów: 628 Dołączył: 2009-01-22
#
Chodzi że zmienne nie są zapisywane jako nazwy, tylko jako ID, stąd niekompatybilność. Użyj zmiennych CLEO, tak będzie najprościej.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 248 Dołączył: 2009-06-27
#
To podaj przykład zmiennych CLEO i tych drugich, bo nie ogarniam.

___________________
http://www.gta-mods.pl/public/images/userbar
Postów: 878 Dołączył: 2009-01-20
#
Zmienne lokalne:
Kod:
1@ = 3


Zmienne globalne:
Kod:
$ZMIENNA = 3


Zmienne CLEO:
Kod:
0AB3: var 1 = 3

___________________
Administrator
Postów: 248 Dołączył: 2009-06-27
#
Już przeniosłem wszystko do main.scm :-) Próbowałem robić tak z tym var'em i nie było crashu, ale pojazd mi nie jeździł. Miałem mniej więcej tak:
Kod:
{$CLEO .cs}
...
....: store_actor $PLAYER_ACTOR pos_to $SUSPECT_X $SUSPECT_Y $SUSPECT_Z
0AB3: var 1 = $SUSPECT_X
i tak dalej
...start_custom_mission "missions/miejski1"
end_custom_thread


Kod:
{$CLEO .cm}
...
0AB4: $SUSPECT_X = var 1
0AB4: $SUSPECT_Y = var 1
0AB4: $SUSPECT_Z = var 1
Car.DriveTo(0@, $SUSPECT_X, $SUSPECT_Y, $SUSPECT_Z)
... 


Teraz, jak to napisałem, domyślam się, że był problem z ..globalnymi?
MakG - musisz zablokować funkcję wklejania kodu, bo przez to ludzie nie widzą własnych błędów :-D

___________________
http://www.gta-mods.pl/public/images/userbar
Poprzedni 1 Następny
Zaloguj się lub zarejestruj się, żeby pisać na forum.
Created & Powered by MakG