Postów:
36
Dołączył:
2010-10-25
Napisano dnia: 2010-12-08 17:31:05
Dodałem sobie do swojego maina skrypt save. Zrobiłem wszystko to co pisało w tutku na stronie głównej, czyli zdeklarowanie DEFINE EXTERNAL_SCRIPTS i samego skryptu
Kod:
DEFINE MISSIONS 1
DEFINE MISSION 0 AT @INITGEN
DEFINE EXTERNAL_SCRIPTS 1 // Use -1 in order not to compile AAA script
DEFINE SCRIPT SAVE AT @SAVE
Jednakże przy kompilowaniu do .scm nie kompiluje mi samej misji o_O Gdy usunę EXTERNAL_SCRIPTS i ustawie ponownie na 0 wszystko ok jest. O co chodzi? Misja ma strukturę szablonu misji ze strony głównej.
//edit:
Ok, już nie potrzebuję pomocy. Problem rozwiązałem :)
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2010-12-08 22:25:38
Bylibyśmy wdzięczni, jakbyś podawał od razu rozwiązanie, kiedy sam uporasz się z problemem. Pomoże to ludziom, którzy natrafią na podobną przeszkodę :)
___________________
Administrator
Postów:
36
Dołączył:
2010-10-25
Napisano dnia: 2010-12-09 15:19:54
Po prostu ten tutorial jest tak napisany, że nie tłumaczy gdzie należy umieścić sam cały skrypt save game. Nie było w nim wytłumaczone, że należy go umieścić za skryptem wszystkich misji, czyli na samym końcu main.scm. Stąd ten problem, że gdy umieściłem go po skończeniu threadu MAIN nie brało podczas kompilacji samej misji.
Postów:
20
Dołączył:
2009-04-16
Napisano dnia: 2010-12-09 15:23:57
Trochę się na tym znam ale nie wiem czy pomogę.A więc linijka DEFINE SCRIPT SAVE AT @SAVE jest niepotrzebna.Ja mam zrobione tak i mi wszystko działa.
:SAVE
thread 'SAVE'
0570: $SV02 = create_asset_radar_marker_with_icon 35 at 34.12094 9.424723 9.8
018B: set_marker $SV02 radar_mode 2
:SAVE_40
wait 0
$SV01 = Pickup.Create(#PICKUPSAVE, 3, 34.12094, 9.424723, 9.8)
:SAVE_68
wait 0
if
Player.Defined($PLAYER_CHAR)
else_jump @SAVE_68
if
Pickup.Picked_up($SV01)
else_jump @SAVE_68
gosub @SAVE_118
jump @SAVE_40
:SAVE_118
if
$ONMISSION == 0
else_jump @SAVE_227
$ONMISSION = 1
Player.CanMove($PLAYER_CHAR) = False
wait 350
03D8: show_save_screen
:SAVE_157
if
83D9: not save_done
else_jump @SAVE_181
wait 0
jump @SAVE_157
:SAVE_181
Actor.PutAt($PLAYER_ACTOR, 36.0, 10.0, 9.8)
Player.CanMove($PLAYER_CHAR) = True
$ONMISSION = 1
wait 350
$ONMISSION = 0
:SAVE_227
return
Postów:
20
Dołączył:
2009-04-16
Napisano dnia: 2010-12-09 15:26:50
linijka DEFINE EXTERNAL_SCRIPTS 1 wczytuje //-------------External script 0 (...)------------
Jeżeli jest jeden script wpisuje się EXTERNAL_SCRIPTS 0 jeżeli 2 to EXTERNAL_SCRIPTS 1 itd.O to chodzi?
Nie zauważyłem wcześniej odpowiedzi ale znam się na tym bo robię mapę od zera i cały plik SCM był usunięty w razie czego możecie się czegoś spytać.
Postów:
36
Dołączył:
2010-10-25
Napisano dnia: 2010-12-09 17:16:43
Owszem zdefiniowanie EXTERNAL SCRIPTS przy tworzeniu tego save game z poradnika nie jest potrzebne. Sam też do tego doszedłem. Jednakże w tym przypadku trzeba dodać jeszcze:
Kod:
create_thread @SAVE
Jak pisałem, w poradniku nie zostało ujęte to, że cały skrypt trzeba dodać po skrypcie wszystkich misji.
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2010-12-09 22:38:14
Rzeczywiście, ten fakt może być trochę pomocny :) Poprawiłem oba poradniki, które są powiązane z External Scripts - "SaveGame" i "External Scripts" w dziale "Tworzenie misji".
___________________
Administrator