Postów:
25
Dołączył:
2010-09-11
Napisano dnia: 2010-12-28 22:12:43
otóż zrobiłem pierwszą misję do gta sa według tutoriala z tej strony. Wszystko jest fajnie ,tylko jak podpiąć do tego drugą? Możecie się śmiać, ale jestem początkujący w tej dziedzinie. Mógłby mi ktoś to wyjaśnić jak zrobić, aby po przejściu pierwszj pojawial się marker i bym mógł zacząć drug? z góry dzienks ;}
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2010-12-29 00:58:08
Na początku oczywiście musisz zadeklarować wszystkie swoje misje, przykładowa sekcja z DEFINE:
Kod:
DEFINE OBJECTS 0
DEFINE MISSIONS 1
DEFINE MISSION 0 AT @MISJA1
DEFINE MISSION 1 AT @MISJA2
DEFINE MISSION 2 AT @MISJA3
DEFINE EXTERNAL_SCRIPTS -1
DEFINE UNKNOWN_EMPTY_SEGMENT 0
DEFINE UNKNOWN_THREADS_MEMORY 0
Markery aktywujące misje najlepiej przechowywać w sekcji "MAIN", zaraz po podstawowych ustawieniach. Wyświetlaj markery na podstawie ukończonych misji. Utwórz sobie zmienne globalne dla każdej misji, które będą cię informować o jej statusie. Po pomyślnym wykonaniu misji, przy sekcji wyświetlania "Mission Passed" dodaj odpowiednio:
Kod:
$MISJA1 = 1
Wtedy w sekcji MAIN sprawdzasz:
Kod:
:MARKER_MISJA1
if
$MISJA1 == 0
then
// tworzysz marker
jump @koniec_main
end
:MARKER_MISJA2
if
$MISJA2 == 0
then
// tworzysz marker
jump @koniec_main
end
:koniec_main
Te temat mogą Ci się przydać:
http://www.gta-mods.pl/forum/topics/view/id/629
http://www.gta-mods.pl/forum/topics/view/id/504
___________________
Administrator
Postów:
25
Dołączył:
2010-09-11
Napisano dnia: 2010-12-29 11:17:18
A to po tym sprawdzeniu drugiej misji, piszę ją tak jak pierwszą, tak ? A tak na marginesie to thx, zaraz spróbuję.
PS: Co to te zmiennge globalne i lokalne, bo zbytnio nie kapuję
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2010-12-29 11:31:44
http://www.gta-mods.pl/forum/topics/view/id/638#p3393
W tym poście masz wszystkie możliwe rodzaje zmiennych.
W skrócie, globalnych zmiennych możesz używać wszędzie, w każdym miejscu w main.scm, jak i skryptach CLEO.
Zmiennych lokalnych używa się wewnątrz danej misji, bo np. zmiennej aktora związanych z tą konkretną misją nie użyjesz już nigdzie indziej.
Zmienne globalne zapisują się w momencie zapisu stanu gry.
___________________
Administrator
Postów:
1004
Dołączył:
2009-01-20
Napisano dnia: 2010-12-29 11:49:22
Chociaż siedzę w tym dość długo to i tak jeszcze tego za bardzo nie rozumiem. Tam jest tylko napisane w zasadzie jak one wyglądają. To tak samo jak np. dać komuś samochód do naprawy i powiedzieć jak co się nazywa i niech sobie radzi sam dalej. Fajnie by było jak by ktoś to wyjaśnij dokładniej jak to się ma do pisania misji i co to powoduje już w samej grze.
Postów:
25
Dołączył:
2010-09-11
Napisano dnia: 2010-12-29 11:52:21
nie no przy kompilacji wyskakuje mi błąd : A jump to zero offset found. O co chodzi ? )0_o
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2010-12-29 12:31:20
Prawdopodobnie nie podałeś nazwy procedury przy instrukcji jump. Pokaż kod, tylko bez całej misji, żeby było czytelniej.
Widzę, że będzie trzeba wyjaśnić tę kwestię trochę dokładniej. Postaram się niedługo napisać o tym tutorial.
___________________
Administrator
Postów:
25
Dołączył:
2010-09-11
Napisano dnia: 2010-12-29 13:48:15
ok - już mam . Nie dałem poprostu na końcu main ,polecenia end_thread. Jak bede mić inne problemy to napiszę, a jak coś to dam cały kod
___________________
Postów:
25
Dołączył:
2010-09-11
Napisano dnia: 2010-12-30 10:37:27
e mam jeszcze jedno pytanie - jakim opcodem zakończyć 1-szą misję? bo jak dam cleanup i retun to mam crasha a jak dam end_thread to nie mam 2 giej misjii - HELP !
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2010-12-30 12:37:34
A zacząłeś wątek misji w ten sposób?
Kod:
:MISJA1
thread 'misja1'
// ...
end_thread
:MISJA2
thread 'misja2'
// ...
end_thread
___________________
Administrator
Postów:
25
Dołączył:
2010-09-11
Napisano dnia: 2010-12-30 17:54:26
Ok już nie mam crasha. :) a teaz mam inny problem .
Zrobiłem pierwszą misję i na końcu dałm pętle aby czytało mi to co jest w main, czyli tak
Kod:
else_jump @MAIN_293
jump @MAIN_293
A w main jest to :
Kod:
else_jump @MAIN_293
jump @MAIN_377
:MAIN_293
if
$MISJA2 == 0
else_jump @MAIN_377
$CEL = Marker.CreateIconAndSphere(34, 2528.201, -1670.007, 15.17059)
00FF: actor $PLAYER_ACTOR sphere 0 in_sphere 2528.201 -1670.007 15.17059 radius 1.0 1.0 2.0 on_foot
jump @MAIN_377
:MAIN_377
end_thread
Co teraz mam zrobić żeby połączyć to z drugą misją ?
Bo wszystko jest ok! Po przjściu pierwszej misjii pojawia się marker - tylko musze to podłączyć do drugiej misjii i przestanę was męczyć. :]
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2010-12-30 23:46:28
Nie bardzo rozumiem w czym problem. Skoro marker utworzył się poprawnie, to teraz wystarczy zrobić pętlę sprawdzającą, czy gracz wszedł na ten marker. Widzę, że u siebie umieściłeś opcode 00FF bez warunku "if", a bez niego ten opcode jest bezużyteczny.
Po utworzeniu markera dodaj:
Kod:
:check
wait 0
if
00FF: actor $PLAYER_ACTOR sphere 0 in_sphere 2528.201 -1670.007 15.17059 radius 1.0 1.0 2.0 on_foot
jf @check
start_mission 1 // MISJA2
PS. Możesz nas męczyć, od tego jest forum :) Tylko żeby była jasność na przyszłość - nie zwalnia Cię to od samodzielnego myślenia :)
___________________
Administrator
Postów:
25
Dołączył:
2010-09-11
Napisano dnia: 2010-12-31 11:55:15
Nie no MakG - ty to poprostu wymiatasz.Dzięki za wszelką pomoc. Wszystko działa jak należy. Co dotego myślenia - ciągle myślałem :). Ale z tego że jestem początkujący to co ja mogłem wymyślić. Znam mało opcode'ów i nie mogę za dużo wskurać. jednak po wejđciu na marker nastepuje drugamisja. Dyiki wielkie chopaki !!!
___________________