Czy wiesz, że... możesz podsyłać newsy, artykuły, pliki i zdjęcia?
Strona główna forum Szukaj Rejestracja
Witaj, nieznajomy!
Poprzedni 1 2 Następny
Postów: 205 Dołączył: 2010-11-23
#
Witam jestem nowy na tej stronie i mam parę pytań odnośnie pisania cutscenek do GTA SA jednak teraz zadam tylko jedno. Wszystko zacząłem wg tego poradnika : http://www.gta-mods.pl/articles/view/id/1. Ale że nie chciało mi się tworzyć dialogów postanowiłem je wyciąć no i tak zrobiłem. Po ukończeniu i po wykonaniu opcji Kompiluj pojawił mi się problem gdzie ja mam to wkleić ? gdy podmieniam oryginalny plik main.scm nie mogę włączyć swoich starych savów i nowej gry ( jest to oczywiste ) i chciałbym widzieć gdzie ja mam to wstawić całą swoją nową cutscenkę. Proszę o odpowiedź.
Postów: 878 Dołączył: 2009-01-20
#
Jeśli użyłeś tego samego szablonu, co w podanym poradniku, to misja/cutscenka powinna wystartować automatycznie, po zastosowaniu funkcji:
Kod:
start_mission 0


Liczba 0 jest przypisana do konkretnej misji (procedury) zdefiniowanej na początku całego skryptu.

Kod:
DEFINE MISSIONS 1
DEFINE MISSION 0 AT @MISJA


A więc wystarczy, że po wątku "MAIN", utworzysz procedurę "MISJA" lub jakąś inną o dowolnie wybranej nazwie.

Wszystko jest dokładnie opisane w poradniku, więc może powinieneś przeczytać te kluczowe rzeczy jeszcze raz. Może to być ciężkie do zrozumienia za pierwszym razem.

___________________
Administrator
Postów: 205 Dołączył: 2010-11-23
#
Mam to wszystko wpisane, tylko gdzie i jak to zapisać bo tego punktu nie rozumiem w poradniku. Bo jak mogę zapisać o nazwie main.scm skoro taki plik już istnieje i gdy go zamienię nie mogę nic zrobić. U mnie wygląda to tak :


Kod:
DEFINE OBJECTS 1
DEFINE OBJECT SANNY BUILDER 3.04      

DEFINE MISSIONS 1
DEFINE MISSION 0 AT @ZABICIE_KOLESIA   // Initial 1

DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script

DEFINE UNKNOWN_EMPTY_SEGMENT 0

DEFINE UNKNOWN_THREADS_MEMORY 0

{$VERSION 3.1.0027}

//-------------MAIN---------------
thread 'MAIN' 
set_weather 3 
00C0: set_current_time_hours_to 21 minutes_to 0 
01F0: set_max_wanted_level_to 6 
$PLAYER_CHAR = Player.Create(#NULL, 0.0, 0.0, 0.0)
$PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR)
Player.SetClothes($PLAYER_CHAR, "PLAYER_FACE", "HEAD", Head)
Player.SetClothes($PLAYER_CHAR, "JEANSDENIM", "JEANS", Legs)
Player.SetClothes($PLAYER_CHAR, "SNEAKERBINCBLK", "SNEAKER", Shoes)
Player.SetClothes($PLAYER_CHAR, "VEST", "VEST", Torso)
Player.Build($PLAYER_CHAR)
Player.CanMove($PLAYER_CHAR) = True
016C: restart_if_wasted_at 2027.77 -1420.52 15.99 angle 137.0 town_number 0 
016D: restart_if_busted_at 1550.68 -1675.49 14.51 angle 90.0 town_number 0 
fade 1 0 
start_mission 0  // Initial 1
end_thread 

//-------------Mission 0---------------
// Originally: Initial 1

:ZABICIE_KOLESIA
thread 'ZABICIE KOLESIA' 
$WOZ = Car.Create(#TURISMO, 2288.79, -1673.199, 14.3883)
Car.Angle($WOZ) = 358.2751
0229: set_car $WOZ primary_color_to 2 secondary_color_to 1 
072A: put_actor $PLAYER_ACTOR into_car $WOZ driverseat 
072A: put_actor $PLAYER_ACTOR into_car $WOZ driverseat 
$CEL = Marker.CreateIconAndSphere(56, 2485.974, -1670.766, 13.0223)
054C: use_GXT_table 'ZABICIE ' 
00BC: show_text_highpriority GXT 'TXT1' time 3000 flag 1 

:ZABICIE_KOLESIA_134
wait 10 
if 
0103:   actor $PLAYER_ACTOR in_sphere 2485.974 -1670.766 13.0223 radius 3.0 3.0 3.0 sphere 0 stopped_in_car 
else_jump @ZABICIE_KOLESIA_134 
Player.CanMove($PLAYER_CHAR) = False
fade 0 1000 
wait 1000 
Marker.Disable($CEL)
$OFIARA = Actor.Create(Criminal, #SHMYCR, 2496.866, -1643.766, 13.7826)
$KOLEGA = Actor.Create(CivMale, #WMYCLOT, 2498.976, -1643.547, 13.7826)
01B2: give_actor $OFIARA weapon 26 ammo 20 // Load the weapon model before using this 
0639: AS_actor $OFIARA rotate_to_actor $KOLEGA 
0639: AS_actor $KOLEGA rotate_to_actor $OFIARA 
0605: actor $OFIARA perform_animation_sequence "IDLE_CHAT" IFP_file "PED" 4.0 loop 1 0 0 0 time -1 // versionA 
0605: actor $KOLEGA perform_animation_sequence "IDLE_CHAT" IFP_file "PED" 4.0 loop 1 0 0 0 time -1 // versionA 
032B: $UZI = create_weapon_pickup #MICRO_UZI group 5 ammo 50 at 2489.812 -1663.398 13.3359 
032B: $MP5 = create_weapon_pickup #MP5LNG group 5 ammo 30 at 2488.254 -1663.246 13.3359 
032B: $TEC9 = create_weapon_pickup #TEC9 group 5 ammo 50 at 2486.949 -1662.613 13.3359 
$CEL2 = Marker.CreateAboveActor($OFIARA)
02A3: enable_widescreen 1 
fade 1 1000 
Camera.SetPosition(2489.774, -1655.042, 13.3536, 0.0, 0.0, 0.0)
Camera.OnVehicle($WOZ, 15, 2)
00BC: show_text_highpriority GXT 'TXT2' time 3000 flag 1 
wait 3000 
Camera.SetPosition(2497.218, -1649.142, 14.5602, 0.0, 0.0, 0.0)
Camera.OnPed($OFIARA, 15, 2)
00BC: show_text_highpriority GXT 'TXT3' time 2000 flag 1 
wait 2000 
02A3: enable_widescreen 0 
Player.CanMove($PLAYER_CHAR) = True
Camera.Restore

:ZABICIE_KOLESIA_594
wait 10 
if 
02E0:   actor $PLAYER_ACTOR aggressive 
else_jump @ZABICIE_KOLESIA_629 
01B9: set_actor $OFIARA armed_weapon_to 26 
05E2: AS_actor $OFIARA kill_actor $PLAYER_ACTOR 

:ZABICIE_KOLESIA_629
wait 10 
if 
   Actor.Dead($PLAYER_ACTOR)
else_jump @ZABICIE_KOLESIA_709 
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1  // ~r~MISSION FAILED!
Marker.Disable($CEL)
Marker.Disable($CEL2)
Car.Destroy($WOZ)
Actor.DestroyInstantly($OFIARA)
Actor.DestroyInstantly($KOLEGA)
Pickup.Destroy($UZI)
Pickup.Destroy($MP5)
Pickup.Destroy($TEC9)
start_mission 0  // Initial 1

:ZABICIE_KOLESIA_709
wait 10 
if 
   Actor.Dead($OFIARA)
else_jump @ZABICIE_KOLESIA_594 
01E3: show_text_1number_styled GXT 'M_PASS' number 100 time 5000 style 1  // MISSION PASSED!~n~~w~$~1~
Player.Money($PLAYER_CHAR) += 100
0394: play_music 1 
Marker.Disable($CEL2)
end_thread 


Prosze jeżeli mógłbyś sprawdź czy mam to wszystko dobrze zrobione.
Postów: 628 Dołączył: 2009-01-22
#
Nie zakańczaj wątku MAIN, wprowadź go w pętlę, czyli zamiast end_thread daj:

Kod:
while true
wait 250
end


Co do skryptu:

1. Po co dekompilujesz własne mody?
2. Nazwa wątku nie powinna przekraczać 7 znaków.
3. Misje powinny być pisane w formacie takim, jak jest pokazane TU.
4. Możesz spokojnie używać wait 0 zamiast wait 10.
5. Zmień zmienne globalne na lokalne.

Zanim się dokładnie przerazisz tymi pięcioma punktami - ŻADEN z nich nie jest wymagany do stabilnego działania gry (może poza trzecim). Skrypt zadziała także tak, jak napisałeś go Ty, ale im wcześniej oduczysz się błędów, które napisałem wyżej, tym lepiej :)

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 205 Dołączył: 2010-11-23
#
Dzięki Silent nie wiem czy wiesz ale tych cutscenek uczę się dopiero jakieś 2-3 godz xD wiec nie wymagaj aż tyle ode mnie.
Co do tych punktów :
1. Nie wiem o co chodzi xD
2. Teraz będę tego przestrzegał.
3. Napewno się przyda :)
4. Tego nie wiedziałem
5. Tak jak w 1 pkt nie wiem o co chodzi.

No i 6 nadal nie wiem jak i gdzie to zapisać aby mógł zrobić tą misję.
Postów: 628 Dołączył: 2009-01-22
#
Takie coś co masz musisz po prostu skompilować i wrzucić do katalogu datascript.
Ale mogę poznać, że już to robiłeś.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 878 Dołączył: 2009-01-20
#
Jak na tak krótki czas, to i tak dużo już zrozumiałeś i zrobiłeś :) Co do uruchomienia misji - po skompilowaniu skryptu będziesz miał dwa pliki - "main.scm" i "script.img", oba wklejasz do katalogu
Kod:
GTA San Andreas/data/script


Wygodnie jest też użyć opcji w Sanny Builder - "Kompiluj i kopiuj", wtedy pliki main.scm i script.img automatycznie się podmienią.

Nie zapomnij zrobić kopii zapasowej main.scm i script.img, żebyś mógł przywrócić oryginalną wersję.

___________________
Administrator
Postów: 205 Dołączył: 2010-11-23
#
Tak zrobiłem ale nie do końca wyszło. A pod jaką nazwą zapisać plik , i jak mam zacząć misję ? Jest postawiony jakiś checkpoint czy coś ?
Postów: 878 Dołączył: 2009-01-20
#
Silent mnie wyprzedził... Co do checkpointa, nie będzie go, jeśli go nie stworzysz i odpowiednio obsłużysz.

http://www.gta-mods.pl/forum/topics/view/id/625 - czwarty post

___________________
Administrator
Postów: 205 Dołączył: 2010-11-23
#
Dzięki że poświęcacie dla mnie tyle uwagi. Jeżeli dobrze rozumiem ten opcod który modał MakG mam wstawić tutaj :
Kod:
fade 1 0
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

Jeszcze dobrze tego wszystkiego nie obczaiłem.
Postów: 628 Dołączył: 2009-01-22
#
Znalazłem jeden błąd w skrypcie:

Kod:
:ZABICIE_KOLESIA_629
wait 10 
if 
Actor.Dead($PLAYER_ACTOR)
else_jump @ZABICIE_KOLESIA_709 
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1 // ~r~MISSION FAILED!
Marker.Disable($CEL)
Marker.Disable($CEL2)
Car.Destroy($WOZ)
Actor.DestroyInstantly($OFIARA)
Actor.DestroyInstantly($KOLEGA)
Pickup.Destroy($UZI)
Pickup.Destroy($MP5)
Pickup.Destroy($TEC9)
start_mission 0 // Initial 1


To wywoła crasha - jedna misja nie może startować drugiej.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 878 Dołączył: 2009-01-20
#
Ten kod sfery do uruchamiania misji powinien być w sekcji MAIN. Tam umieszczasz wszystkie rzeczy, które muszą być uruchomione już na starcie, m.in. sfery do uruchamiania misji.

A więc, dajesz to przed "start_mission 0", co chyba chciałeś zrobić, ale wolałem wszystko rozjaśnić :)

___________________
Administrator
Postów: 205 Dołączył: 2010-11-23
#
Dzięki Wam jednak gdy wykonałem te wszystkie operacje ( mój plik main.scm waży 19 kb a script.img 4 kb ) Gdy włączam nową grę po załadowaniu się gra wyłapuje crasha na nowej grze jak z i na strych sevach. Czy jest wina wina tego iż mam DYOM, cleo czy też v1.0 gry ? Czy po prostu coś źle wykonuję. To co podał Silent ( tak jak zrozumiałem ) miałem wstawić w sekcji MAIN przez "napisem" start_mission 0. Jeżeli będzie to potrzebne to wkleję jeszcze raz cały mój kod napisany w SB. A i jeszcze coś nie stawiałem checkpointa gdyż misja ma automatycznie wystartować, tak jak pierwsza misja w San Andreas.
Postów: 878 Dołączył: 2009-01-20
#
Crash na 99% jest spowodowany błędem w Twoim kodzie. Kod, który podał Silent był tylko wskazaniem, gdzie masz błąd - próbowałeś uruchomić misję "0", kiedy już byłeś w procedurze tej misji (nie możesz uruchomić tej samej misji w misji).

___________________
Administrator
Postów: 205 Dołączył: 2010-11-23
#
To co powinienem zrobić abym mógł uruchomić misję bo tak nie za bardzo rozumiem. Co powinienem zrobić w kodzie aby misja zadziałała ?
Kod:
:ZABICIE_KOLESIA_629
wait 10
if
Actor.Dead($PLAYER_ACTOR)
else_jump @ZABICIE_KOLESIA_709
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1 // ~r~MISSION FAILED!
Marker.Disable($CEL)
Marker.Disable($CEL2)
Car.Destroy($WOZ)
Actor.DestroyInstantly($OFIARA)
Actor.DestroyInstantly($KOLEGA)
Pickup.Destroy($UZI)
Pickup.Destroy($MP5)
Pickup.Destroy($TEC9)
start_mission 0 // Initial 1

Czyżby to co jest pogrubione musiałbym zmienić ?
Poprzedni 1 2 Następny
Zaloguj się lub zarejestruj się, żeby pisać na forum.
Created & Powered by MakG