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: 36 Dołączył: 2010-10-25
#
Chciałem przerobić swoją misję w scm na strukture typowo R*

Według szablonu dodałem po nazwie thread

Kod:
:Mission
0050: gosub @Mission_Start
if
0112: wasted_or_busted // mission only
then
0050: gosub @Mission_Failed
end
0050: gosub @Mission_Cleanup

end_thread

:Mission_Start
$ONMISSION = 1
...
(Tutaj wszystko jest ok, na początku wczytuje dane modele, wymagane rzeczy i wykonuje kod polegający na ruchu pojazdu z kamerą. Na końcu czeka 5000ms i przechodzi do procedury :PLAYER1)
...
0460: set_camera_transverse_delay 0 time 4000 
wait 5000

:PLAYER1
fade 0 1000
wait 1000
fade 1 1000
00AB: put_car $VCAR at 2762.88 -2595.3 0.0
0826: enable_hud 1
0581: enable_radar 1
02EB: restore_camera_with_jumpcut
0373: set_camera_directly_behind_player
00A1: put_actor $PLAYER_ACTOR at -1615.13 -129.59 15.13
01B4: set_player $PLAYER_CHAR can_move 1
09BA: show_entered_zone_name 1

return // tutaj się kończy Mission_Start

:CHECK
wait 0
if
00EC: actor $PLAYER_ACTOR 0 near_point -1716.54 -295.975 radius 10.0 10.0
jf @check

gosub @Mission_Passed
return

:Mission_Cleanup
$ONMISSION = 0
01C2: remove_references_to_actor $ASTAY1
009B: destroy_actor $ASTAY2
0AAD: set_audiostream 0@ perform_action 0 
0AAE: release_audiostream 0@ 
00D8: mission_cleanup
return

:Mission_Failed
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1
return

:Mission_Passed
01E3: show_text_1number_styled GXT 'M_PASS' number 5000 time 5000 style 1
0109: player $PLAYER_CHAR money += 5000
0394: play_music 1
return


Problem się pojawia po:

Kod:
:PLAYER1
fade 0 1000
wait 1000
fade 1 1000


Gra łapie crasha i nie wiem dlaczego. Przez chwile jestem wstanie zobaczyć zarys gracza, a po czym crash.
Postów: 878 Dołączył: 2009-01-20
#
Niepotrzebny jest ten "return":
Kod:
return // tutaj się kończy Mission_Start

zakładając, że chcesz dalej wykonać kod, czyli procedurę CHECK1. Tak to od razu wracasz do głównej procedury i wykonujesz sekcję "Mission_Cleanup". Crash najprawdopodobniej jest spowodowany jedną z funkcji właśnie w "Mission_Cleanup", pewnie próbujesz usunąć coś, co nie istnieje, ale nie jestem w stanie powiedzieć dokładnie nie widząc początkowego kodu.

___________________
Administrator
Postów: 36 Dołączył: 2010-10-25
#
Faktycznie coś z Mission_Cleanup się kaszani. Usunąłem Mission_Cleanup całkowicie i jakoś działa, ale z tego co mi się wydaje po aresztowaniu bądź śmierci powinien wrócić do odtwarzania ponownie misji, a u mnie kończy się to tylko jako respawn na posterunku lub szpitala. Pokazuje mi się tylko napis Busted lub Wasted, ani słychu o Mission Failed.

//edit:
Wywaliłem tego return'a

//edit2:
Nie rozumiem tego nawet jeśli dam samo:
Kod:
:Mission_Cleanup
$ONMISSION = 0
mission_cleanup
return


To po dotarciu do zdeklarowanego punktu, w którym ma się znaleźć gracz żeby zakończyć misję gra dostaje crasha.

//edit3:
Cóż najwyraźniej coś mam namieszane w main.scm bo zostawiłem tylko samą misję z pickupami i pojazdami. Nie wiem jeszcze co, ale dojdę do tego co krzaczy mi.

No i znalazłem, jedna rzecz w if or krzaczy. Będę musiał inaczej zrobić ten warunek.

Przy okazji chciałbym zadać jeszcze pytanie odnośnie misji. Chcę stworzyć zwykły sphere (te czerwony walec) i gdy na niego wejdziemy wystartowała druga misja. Próbowałem coś sklecić w sekcji MAIN, ale gra łapie crasha po wejściu na maker'a zamiast wczytać drugą misje.
Postów: 878 Dołączył: 2009-01-20
#
Kod:

4@ = Marker.CreateIconAndSphere(46, 1@, 2@, 3@)

:check
if
 00FF:   actor $PLAYER_ACTOR sphere 0 in_sphere 1@ 2@ 3@ radius 1.2 1.2 2.0 on_foot
jf @check

// start misji

___________________
Administrator
Postów: 628 Dołączył: 2009-01-22
#
Można zrobić to prościej - zamiast tworzyć marker opcodem, wystarczy ustawić flagę 'sphere' na 1. Chociaż, jeśli chcesz zrobić tak, jak robi Rockstar, użyj jednak markera przez opcode. Oni markery do uruchomienia misji robią tak, ale wszelkie markery w trakcie misji są już jako sphere 1. Dziwne, ale ich wygląd różni się nieco.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 36 Dołączył: 2010-10-25
#
Ok, dzięki wielkie.
Chyba mogę tutaj pisać swoje dalsze problemy ze skryptowaniem bo tak co chwile bym musial nowy temat zakładać :)

Problem jest taki. Chcę ustawić pojazdowi, żeby miał drzwi otwarte. Otwarte mam na myśli że można do niego wsiąść a także drzwi mają być na oścież ustawione.

Kod:
020A: set_car 11@ door_status_to 6

Takie coś dodałem, ale jednak to nie to.
Postów: 1004 Dołączył: 2009-01-20
#
Żeby drzwi były otwarte to daj to:
Kod:
0657: car 35@ open_componentA 2

i mam nadziej że o to ci chodzi.
Postów: 36 Dołączył: 2010-10-25
#
Dzięki o to mi chodziło :)

Następna sprawa, a zarazem mój następny problem jaki napotkałem. Mam utworzony maker i cutscenka aktywuje się właśnie gdy wyjedziemy na niego pojazdem. Chwile czeka, zaciemnienie, rozjaśnienie i ustawia gracza we wskazanym miejscu. Jednakże teleportuje mi go razem z pojazdem :|. Polecenia car destroy użyć nie mogę z przyczyny Mission Failed. Jak ten problem rozwiązać?
Postów: 1004 Dołączył: 2009-01-20
#
Po do jechania do celu najpierw musisz podczas zaćmienia wywalić postać z wozu. Robisz to tym opcodem
Kod:
0633: AS_actor $PLAYER_ACTOR exit_car
. Następnie tworzysz pętle sprawdzającą czy aktor znajduje się poza pojazdem. Opcod, który sprawdza czy gracz jest poza pojazdem wygląda tak
Kod:
80DB:   not actor $PLAYER_ACTOR in_car $s1
I dopiero po tej pętli dajesz dalszy ciąg misji, czyli przenosisz postać gdzie tam chcesz.
Postów: 628 Dołączył: 2009-01-22
#
Jeśli chcesz zostawić w miejscu pojazd, to zamiast kazać CJowi wyjść z auta normalnie, możesz wyrzucić go o wiele szybciej tym opcodem:

Kod:
0792: disembark_instantly_actor $PLAYER_ACTOR

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Poprzedni 1 Następny
Zaloguj się lub zarejestruj się, żeby pisać na forum.
Created & Powered by MakG