Postów:
22
Dołączył:
2011-01-30
Napisano dnia: 2012-12-01 19:57:54
Mam problem z skryptem:
Kod:
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
thread 'TRUCKING'
014B: $RDTRAIN = init_parked_car_generator #RDTRAIN color 0 0 1 alarm 0 door_lock 0 0 10000 at 2496.240 -1662.557 13.53595 angle -90.0
014C: set_parked_car_generator $RDTRAIN cars_to_generate_to 101
014B: $ARTICT1 = init_parked_car_generator #ARTICT1 color 0 0 1 alarm 0 door_lock 0 0 10000 at 2496.240 -1669.267 13.53595 angle -90.0
014C: set_parked_car_generator $ARTICT1 cars_to_generate_to 101
$MARKER = Marker.CreateIconAndSphere(47, 2486.367, -1666.377,
13.34375) //ustawia maker zaladunku
0168: set_marker $MARKER size 2
:TRUCKING
if and
07AB: trailer $ARTICT1 attached_to_cab $RDTRAIN
0102: actor $PLAYER_ACTOR in_sphere 2486.367 -1666.377 13.34375 radius 2.0 2.0 4.0 sphere 1 stopped_on_foot
jf @TRUCKING2
:TRUCKING2
Player.CanMove($PLAYER_CHAR) = False
0512: show_permanent_text_box 'KURSY1'
Audiostream.Load(1@, "CLEO\CLEO_SOUND\TEXT_BOX.WAV")
Audiostream.PerformAction(1@, PLAY)
0A93: end_custom_thread
Ustalilem ze bląd dotyczy pętli :TRUCKING2.Co w niej jest żle?Jak zrobic zeby po przycisnieciu klawisza od 1 do 9 przekierowywalo do petli przypisanej klawiszowi?
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2012-12-02 11:50:10
Po pierwsze - uchwyty z car generatorów nie nadają się do używania ich w jakichkolwiek innych opcodach (mowa tu o
07AB). Po drugie:
Kod:
:TRUCKING
if and
07AB: trailer
$ARTICT1 attached_to_cab
$RDTRAIN
0102: actor
$PLAYER_ACTOR in_sphere 2486.367 -1666.377 13.34375 radius 2.0 2.0 4.0 sphere 1 stopped_on_foot
jf @TRUCKING2
:TRUCKING2
To jest bez sensu, bo jeśli warunki zwrócą False, skrypt przejdzie do
:TRUCKING2, a jeśli zwrócą True, to zrobi dokładnie to samo.
___________________
Moderator
Postów:
22
Dołączył:
2011-01-30
Napisano dnia: 2012-12-02 13:15:12
A ja co innego czytałem w tutorialu pętle na tej stronie ze ta pętla co ją zacytowałeś sprawdza i jak jest nieprawda sprawdza aż do skutku ,a jak okaże się prawda to przeskakuje do jakiejś tam pętli.Jak uważasz że jest źle to może zaproponuj lepsze rozwiązanie?
Jeśli mówisz ze "07AB: trailer $ARTICT1 attached_to_cab $RDTRAIN" jest "uchwytem car generatora" to jaka jest funkcja na sprawdzanie czy naczepa jest podpięta?
PS.Pozwolę sobie zacytować.
Cytat:
Kod:
if and
:petla1
wait 0
if and
010A: player $PLAYER_CHAR money > 1000
00F2: actor 67@ near_actor 47@ radius 20.0 20.0 0
0119: car 0@ wrecked
jf @petla1
dalszy kod
Funkcja if z dopiskiem and sprawdza czy wszystkie podane warunki są prawdziwe. W powyższym przykładzie sprawdzamy czy gracz ma więcej niż 1000$, czy aktor 67@ jest blisko aktora 47@ oraz czy auto 0@ jest zniszczone. Jeśli wszystkie te warunki zostaną spełnione, wykonywany jest dalszy kod, jeśli warunki są nieprawdziwe to sprawdzamy ponownie przeskakując do początku pętli.
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2012-12-02 15:03:08
Nie widzisz różnicy między
Kod:
:A
wait 0
if
XXX
jf @A
:B
a
Kod:
:A
wait 0
if
XXX
jf @B
:B
?
___________________
Moderator
Postów:
22
Dołączył:
2011-01-30
Napisano dnia: 2012-12-02 15:08:58
Widzę.To jak mam to rozwiązać żeby działało poprawnie?Nierobić wczale tej petli drugiej tylko podłączyć ją do pierwszej i dać "jf @petla" zamiast "jf @petla2"?
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2012-12-03 16:13:39
Car generator zastąp zwykłym spawnem i popraw pętlę tak, by pokrywała się z tą z poradnika. I pozbądź się zmiennych globalnych.
___________________
Moderator
Postów:
22
Dołączył:
2011-01-30
Napisano dnia: 2012-12-03 16:28:49
Zmiennych globalnych się pozbyłem tylko chyba nie z tego pliku skopiowałem kod.Pętle już poprawiłem.Tylko mi nie chodzi z tym żeby spawnowało mi auto z naczepą ale żeby sprawdzało czy do auta które tam na początku skryptu jest zespawnowane jest podpięta naczepa.I jest problem bo szukałem na necie takiej funkcji sprawdzającej i nie znalazłem.Istnieje w ogóle taka funkcja???
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2012-12-03 16:46:00
No 07AB właśnie to sprawdza.
___________________
Moderator
Postów:
22
Dołączył:
2011-01-30
Napisano dnia: 2012-12-03 16:51:56
Skrypt wygląda teraz tak i crashuje.Czemu?
Kod:
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
thread 'TRUCKING'
014B: $RDTRAIN = init_parked_car_generator #RDTRAIN color 0 0 1 alarm 0 door_lock 0 0 10000 at 2496.240 -1662.557 13.53595 angle -90.0
014C: set_parked_car_generator $RDTRAIN cars_to_generate_to 101
014B: $ARTICT1 = init_parked_car_generator #ARTICT1 color 0 0 1 alarm 0 door_lock 0 0 10000 at 2496.240 -1669.267 13.53595 angle -90.0
014C: set_parked_car_generator $ARTICT1 cars_to_generate_to 101
$MARKER = Marker.CreateIconAndSphere(47, 2486.367, -1666.377, 13.34375) //ustawia maker zaladunku
0168: set_marker $MARKER size 3
:TRUCKING
if and
87AB: not trailer $ARTICT1 attached_to_cab $RDTRAIN
0102: actor $PLAYER_ACTOR in_sphere 2486.367 -1666.377 13.34375 radius 3.0 3.0 3.0 sphere 0 stopped_on_foot
jf @TRUCKING
Player.CanMove($PLAYER_CHAR) = False
0512: show_permanent_text_box 'KURSY1'
Audiostream.Load(1@, "CLEO\CLEO_SOUND\TEXT_BOX.WAV")
Audiostream.PerformAction(1@, PLAY)
0A93: end_custom_thread
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2012-12-03 18:48:56
Bo ciągle nie pozbyłeś się car generatorów i zmiennych globalnych, a pętla powinna mieć w sobie
WAIT.
___________________
Moderator
Postów:
22
Dołączył:
2011-01-30
Napisano dnia: 2012-12-03 20:04:35
DZIĘĘKI SILENT!!!
Gra się uruchomiła auta stoją maker czerwony też jest są odwrócone w dobrą stronę bo tak jak mówiłeś użyłem spawnu nie car generatora i już niema $RDTRAIN tylko 1@.
I jest nowy problem.Plik FXT mam utworzony.A gdy wjadę do makera tą ciężarówką z podpiętą naczepą to mi nie zamraża ruchów gracza i nie wyświetla się text_box.
Skrypt aktualnie wygląda tak:
Kod:
thread 'TRUCKING'
Model.Load(#RDTRAIN)
Model.Load(#ARTICT1)
038B: load_requested_models
wait 1000
00A5: 1@ = create_car #RDTRAIN at 2496.240 -1662.557 13.53595
00A5: 2@ = create_car #ARTICT1 at 2496.240 -1669.267 13.53595
0175: set_car 1@ Z_angle_to 90.0
0175: set_car 2@ Z_angle_to 90.0
$MARKER = Marker.CreateIconAndSphere(47, 2486.367, -1666.377, 13.34375) //ustawia maker zaladunku
:TRUCKING1
wait 1000
if and
07AB: trailer 2@ attached_to_cab 1@
0103: actor $PLAYER_ACTOR in_sphere 2486.367 -1666.377 13.34375 radius 4.0 4.0 6.0 sphere 0 stopped_in_car
jf @TRUCKING1
Player.CanMove($PLAYER_CHAR) = False
0512: show_permanent_text_box 'KURSY1'
Audiostream.Load(1@, "CLEO\CLEO_SOUND\TEXT_BOX.WAV")
Audiostream.PerformAction(1@, PLAY)
0A93: end_custom_thread
EDIT/Działe zatrzymanie pojazdu po wjezdzie do makera tylko trzeba ideanie na srodku auta wjechać tam.chyba powieksze zasięg tego makera.
Postów:
22
Dołączył:
2011-01-30
Napisano dnia: 2012-12-06 10:28:10
Pojawiły się nowe błędy.
Ustawiłem nową lokalizacje ciezarówki i naczepy ale one ląduja jakieś 10m obok .
Wspolzedne prałem z place managera i z Menadżera Koordynatów w Sanny Bulider,i zawsze to samo.I jeszcze drogi problem z utworzeniem FXT.Niewiem jak zrobic zżeby text był w nowej linijce.
Postów:
1004
Dołączył:
2009-01-20
Napisano dnia: 2012-12-06 11:31:38
Spróbuj z tymi współrzędnymi.
Kod:
Model.Load(#RDTRAIN)
Model.Load(#ARTICT1)
038B: load_requested_models
02A7: 0@ = create_icon_marker_and_sphere 56 at 2483.3696 -1671.9985 13.3359 radius 3.0
:test1
wait 0
if
00EC: actor $PLAYER_ACTOR 0 near_point 2483.3696 -1671.9985 radius 2.5 2.5
jf @test1
Marker.Disable(0@)
00A5: 1@ = create_car #RDTRAIN at 2465.1357 -1656.9728 14.414
00A5: 2@ = create_car #ARTICT1 at 2474.1558 -1656.9728 13.3316
0175: set_car 1@ Z_angle_to 90.0
0175: set_car 2@ Z_angle_to 90.0
Po za tym jeżeli pojazdy spawnujesz w ten sposób to one powinny się spawnować prawie że tuż obok postaci albo po przez czekpont. Jeżeli po włączeniu gry pojazd z naczepą zespawnuje się za daleko ciebie to zapadanie się pod ziemie bo się kolizja nie zdąży wczytać.
Postów:
22
Dołączył:
2011-01-30
Napisano dnia: 2012-12-06 14:48:57
Ale ten marker nie jest do spawnowania aut tylko ja musze tirem z podpietom naczepa wjechac do markera zeby wybrac kurs to z jekiego powodu Marker.Disable?
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2012-12-07 14:24:37
bajos napisał(a):
Ustawiłem nową lokalizacje ciezarówki i naczepy ale one ląduja jakieś 10m obok .
Być może ciężarówka i przyczepa nie mieszczą się w podanych współrzędnych, tj. podczas spawnu "zahaczają" o jakiś obiekt lub wartość współrzędnej Z jest zbyt niska i pojazd tworzy się częściowo pod powierzchnią. Gdy dochodzi do takiej sytuacji, pojazd jest przenoszony do najbliższej ścieżki.
Rozwiązaniem tego problemu jest zmiana współrzędnych lub ustawienie odpowiedniej rotacji, aby pojazd nie wchodził w kolizję z innymi obiektami.
___________________
Administrator