Czy wiesz, że... na forum możesz uzyskać pomoc nt. modowania GTA?
Strona główna forum Szukaj Rejestracja
Witaj, nieznajomy!
Poprzedni 1 Następny
Postów: 1004 Dołączył: 2009-01-20
#
Zacząłem robić pewnego moda. Kiedy wezmę nową grę to owy skrypt powoduje że grę wywala do pulpitu. Natomiast jak się wczyta grę przez sejwa to ten skrypt działa poprawnie. Może ktoś wie co jest nie tak?

Kod:
{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
//pojazdy
Model.Load(#topfun)
//aktorzy
Model.Load(#LSV3)
//obikety
Model.Load(1815)
038B: load_requested_models


04BB: select_interior 0
0860: link_actor $PLAYER_ACTOR to_interior 0
00A1: put_actor $PLAYER_ACTOR at 2534.252 -1707.3306 13.451
Actor.Angle($PLAYER_ACTOR) = 190.0
02EB: restore_camera_with_jumpcut 

:start_1
0395: clear_area 1 at 2535.7832 -1714.6282 12.4826 radius 8.0
$pojazd_1 = Car.Create(#topfun, 2538.4143, -1716.0818, 11.38)
Car.Angle($pojazd_1) = 195.2518  
0519: set_car $pojazd_1 locked 1 
0657: car $pojazd_1 open_componentA 4 
0657: car $pojazd_1 open_componentA 5
$aktor_1 = Actor.Create(CivMale, #LSV3, 2535.7832, -1714.6282, 12.4826)
Actor.Angle($aktor_1) = 356.6949

04CE: $ikona_1 = create_icon_marker_without_sphere  18 at  2535.7585 -1713.4692  13.4719
03BC: $marker_1 = create_sphere_at 2535.7585 -1713.4692 13.4719 radius 1.0

060B: set_actor $aktor_1 decision_maker_to 32
0575: set_actor $aktor_1 pinned_position 1

:petla1
wait 0
if
00ED:   actor $PLAYER_ACTOR 0 near_point 2535.7585 -1713.4692 radius 0.5 0.5 on_foot 
jf @petla2
0395: clear_area 1 at 2535.7832 -1714.6282 12.4826 radius 8.0
0581: enable_radar 0
0826: enable_hud 0
03BD: destroy_sphere $marker_1
Player.CanMove($PLAYER_CHAR) = False
0639: AS_actor $PLAYER_ACTOR rotate_to_actor $aktor_1
0639: AS_actor $aktor_1 rotate_to_actor $PLAYER_ACTOR
Camera.SetPosition(2532.9404, -1710.443, 13.452, 0.0, 0.0, 0.0)
Camera.PointAt(2532.9404, -1710.443, 13.452, 2)
0159: camera_on_ped $PLAYER_ACTOR 15 2 

jump @menu_1

:petla2
wait 0
if or
0118: actor $aktor_1 dead
0119:   car $pojazd_1 wrecked 
jf @petla1
03BD: destroy_sphere $marker_1
Marker.Disable($ikona_1)
0519: set_car $pojazd_1 locked 0
wait 3200
009B: destroy_actor $aktor_1
wait 1200
00A6: destroy_car $pojazd_1
wait 3000
:petla3
wait 0
if 
80FF:   not actor $PLAYER_ACTOR sphere 0 in_sphere 2535.7585 -1713.4692 13.4719 radius 50.0 50.0 30.0 on_foot 
jf @petla3

jump @start_1

:menu_1
08D4: $panel_1 = create_panel_with_title 'TXT1' position 10.0 70.0 width 300.0 columns 1 interactive 1 background 1 alignment 0
0A93: end_custom_thread
Postów: 628 Dołączył: 2009-01-22
#
Daj na początek jakieś sprawdzenie, czy gracz istnieje w ogóle - być może próbuje go przenieść zanim został nawet stworzony.

No i dwie stare śpiewki - z-m-i-e-n-n-e l-o-k-a-l-n-e & 038B jest w SA niepotrzebne, zamiast tego powinno sprawdzać się czy model jest wczytany za pomocą opcodu 0248.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 1004 Dołączył: 2009-01-20
#
Dobra teraz działa.

Cytat:
(...) - z-m-i-e-n-n-e l-o-k-a-l-n-e (...)

No właśnie tego nie rozumiem. Dlaczego to trzeba zmieniać. Przecież tak jak daje też działa wydaje się że bez problemu więc dlaczego to trzeba tak nazywać.
Postów: 628 Dołączył: 2009-01-22
#
ID zmiennych globalnych jest alokowane przez Sanny Builder w momencie kompilacji automatycznie, zaczynając od ID 4. Tak też będą skompilowane Twoje zmienne, przez co zmienne globalne z main.scm mogą zostać nadpisane == bardzo źle. Lokalne nie powodują żadnych kłopotów.
Poza tym sam Seemann w pomocy w Sannym pisze:

Cytat:
Never use custom global variables in your CLEO-scripts ($car, $foo, $blahblah, etc), or your script will work incorrectly. You may use only a few global variables (read below).


Cytat:
An important thing concerns with data communication between a CLEO script and the main.scm. To use the SCM code, its variables, threads you have to compile the CLEO script as an external one (first way). But this method is not recommended, as such a script becomes very sensible to the any main.scm change. Implicitly, a CLEO script should be sufficient for itself and use minimum of the SCM data. However, you can freely use global variables names from the CustomVaribles.ini (for example, $PLAYER_CHAR, $PLAYER_ACTOR, $ONMISSION, etc).


Zresztą - odnacz sobie Add extra info to SCM/Dodaj dodatkowe informacje do SCM (w moim spolszczeniu) i zobacz w jaki sposób Sanny dekompiluje ten skrypt.

___________________
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