Czy wiesz, że... możesz podsyłać newsy, artykuły, pliki i zdjęcia?
Strona główna forum Szukaj Rejestracja
Witaj, nieznajomy!
Postów: 878 Dołączył: 2009-01-20
#
Używasz jakiejś dodatkowej mapy? Bo te współrzędne pojazdu w niemodyfikowanej wersji gry są nad wodą przy lotnisku w San Fierro. Jeśli tak, to będziesz musiał dodać swoją ścieżkę do data/paths lub stworzyć ją dynamicznie w skrypcie SCM (tzw. scmpath).

Kod:
05D6: clear_scmpath
05D7: add_point_to_scmpath x y z
05D7: add_point_to_scmpath x2 y2 z2
05D7: add_point_to_scmpath x3 y3 z3
// itd.

07E7: AS_assign_scmpath_to_actor $ADRIVE in_car $VCAR speed 17.0 flags 1 0 1 


Po przydzieleniu aktora do ścieżki, będzie on jechał bezpośrednio od punktu do punktu.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Po prostu nas odwiedzaj :) Każdy może tu liczyć na pomoc.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Kod:
:wybrane1
jump @wyjdz
fade 0 1500
wait 1500
wait 1500
fade 1 1500
0A94: start_custom_mission "SAPlus/1.cm"

Nic dziwnego, skoro od razu przeskakujesz do "wyjdz" :)

Lepiej zrób tak: stwórz na końcu procedurę usuwającą menu:

Kod:
0A93: end_custom_thread
:usunMenu
08DA: remove_panel $Panel
03E6: remove_text_box
Player.CanMove($PLAYER_CHAR) = True
return


I odwołaj się do tej procedury poprzez "gosub":
Kod:
:wybrane1
gosub @usunMenu


Jeszcze po wystartowaniu misji, daj instrukcję przeskoczenia na początek skryptu, żeby nie wykonały się akcje dla kolejnych wyborów z menu.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Kod:
00DB: actor $PLAYER_CHAR in_car $WOZ

nie $PLAYER_CHAR tylko $PLAYER_ACTOR, w funkcjach związanych z aktorami musisz dać zmienną aktora.

Pozatym funkcja return po opcodzie:
Kod:
0187: $MARKER2 = create_marker_above_actor $CEL 

wyjdzie z misji i nie wykona się dalsza procedura (check)

Zamień też zmienne globalne ($WOZ, $MARKER2 itd.) na lokalne (1@, 2@ itd.).

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Raczej nie przywrócisz tych External Scriptów, bo są one w jakimś stopniu powiązane z obiektami na mapie gry. Skoro usunąłeś je wszystkie, to gra próbuje się odwołać do nieistniejących obiektów, stąd crash gry.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Kod:
 0AC1: $SPEECH = load_audiostream_with_3d_support "CLEOaudiom3t11.mp3"
 0AC4: link_3d_audiostream $SPEECH to_actor $PLAYER_ACTOR
 0AAD: set_audiostream $SPEECH perform_action 1

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
No nawet, nawet. Można się trochę pobawić :)
Proponowałbym jednak zmienić te klawisze, bo tej kombinacji często się używa podczas normalnej gry (biegniesz sprintem i skaczesz).

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Zastosuj swój pierwszy kod, tylko po if dodaj słowo and. Wtedy skrypt przejdzie dalej tylko, jeśli oba warunki będą spełnione. Więcej o takich praktykach w poradniku o pętlach:
http://www.gta-mods.pl/articles/view/id/12

// edit: Silent mnie ubiegł

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Kod:
0459: end_thread_named 'NAZWA'

Jednak, żeby tego użyć, najpierw musisz nazwać swój wątek w pliku *.cm. Dodaj po {$CLEO .cm}:
Kod:
thread 'NAZWA'


A co do poradnika, to na pewno taki napiszę niedługo, bo to bardzo dobry szablon misji.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Tak, katalog "missions" powinien być w katalogu CLEO. Gdy odwołujesz się do plików lub katalogów w CLEO, punktem startowym jest zawsze katalog CLEO.

Wystarczy na początku skryptu wstawić nagłówek:
Kod:
{$CLEO .cm}

i skrypt skompiluje się jako plik *.cm.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Cechy plików *.cm (Custom Mission)

  • Z założenia mają zawierać dodatkowe misje
  • Plik *.cm nie jest ładowany od razu, w przeciwieństwie do skryptów *.cs
  • Można je wywołać w skrypcie *.cs
  • Kod:
    0A94: start_custom_mission "missionsCustomMission1"

    Powyższy kod uruchomi plik "CustomMission1.cm" z katalogu "missions".


Generalnie nie rozpatrywałbym tego w kategorii "wady i zalety", po prostu przeznaczenie *.cs i *.cm jest trochę inne.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
1. Poszukaj pod "Virtual key codes"
http://www.google.pl/#hl=pl&q=virtual+key+codes
Wszędzie jest prawie to samo, tylko w innej formie.

2.
Kod:
0186: 2@ = create_marker_above_car 1@

To stworzy czerwoną strzałkę na pojazdem i jednocześnie utworzy ikonkę na radarze.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
O ile wiem, to do łodzi nie można wejść jako pasażer, więc driveby tutaj nie zadziała. Musisz umieścić aktora, który będzie atakował na tyłach łodzi i zastosować tą funkcję, co podałem wcześniej. Wtedy aktor powinien stać cały czas w tym samym miejscu i po zastosowaniu "kill_actor" będzie atakował gracza.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Jeśli chciałeś zrobić tak, żeby aktor kierował łodzią i strzelał jednocześnie, to wydaje mi się, że to niemożliwe. Kierowca nie może strzelać z pojazdu (driveby).

Możesz umieścić aktora na łodzi i wtedy dać mu rozkaz zabicia gracza. Jednak przed tym użyj tej funkcji:
Kod:
0350: set_actor 2@ maintain_position_when_attacked 1


To sprawi, że aktor nie będzie latał po całej mapie, żeby zabić cel.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Przepraszam, ale nie mogę się już powstrzymać...
5 błędów językowych i 2 ortfograficzne, które rażą jeszcze przed przeczytaniem całego posta... Najpierw naucz się pisać po polsku, a potem bierz się za pisanie skryptów.

Pozatym, żeby ktoś mógł to napisać za ciebie, to musimy mieć ten model. Bez wymiarów i ułożenia nikt nie dopasuje to do pleców gracza.

___________________
Administrator
Created & Powered by MakG