Postów:
123
Dołączył:
2010-03-31
Napisano dnia: 2010-11-16 21:11:16
Witam zrobiłem narazie menu a jedną opcją ta druga ma zostac gdyż przyda mi się później. Otóż po naciśnieciu Shift menu zamiast zacząć misję znika:
Kod:
{$CLEO .cs}
0000: NOP
02A7: 1@ = create_icon_marker_and_sphere 22 at 2525.7141 -1703.9878 13.3803
:petla1
wait 10
if
0102: actor $PLAYER_ACTOR in_sphere 2525.7141 -1703.9878 13.3803 radius 1.2 1.2 3.0 sphere 1 stopped_on_foot
jf @petla1
054C: use_GXT_table 'SAPlus'
Player.CanMove($PLAYER_CHAR) = False
08D4: $Panel = create_panel_with_title 'FEM_MM' position 29.0 145.0 width 200.0 columns 1 interactive 1 background 1 alignment 1
08DB: set_panel $Panel column 0 header 'TITLE' data 'M1' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'
:czekaj_na_wybor
wait 0
if
00E1: player $PLAYER_CHAR pressed_key 15
jf @czekaj_na_wybor_test2
:czekaj_na_wybor_test2
if
00E1: player $PLAYER_CHAR pressed_key 16
jf @czekaj_na_wybor
0871: init_jump_table $Wybrane total_jumps 2 1 -1 jumps 0 @wybrane1 1 @wybrane2 0 -1 0 -1 0 -1 0 -1 0 -1
:wybrane1
jump @wyjdz
fade 0 1500
wait 1500
wait 1500
fade 1 1500
0A94: start_custom_mission "SAPlus/1.cm"
:wybrane2
jump @wyjdz
:wyjdz
08DA: remove_panel $Panel
03E6: remove_text_box
Player.CanMove($PLAYER_CHAR) = True
0A93: end_custom_thread
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2010-11-16 21:34:40
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:
123
Dołączył:
2010-03-31
Napisano dnia: 2010-11-16 21:54:30
Dzięki można się jakos odwdzięczyć za pomoc?? Narazie masz pomógł.
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2010-11-16 22:21:30
Po prostu nas odwiedzaj :) Każdy może tu liczyć na pomoc.
___________________
Administrator
Postów:
123
Dołączył:
2010-03-31
Napisano dnia: 2010-11-17 17:49:49
Dałem taki kod ale kiedy ma zacząć misję zawiesza się.
Kod:
{$CLEO .cs}
0000: NOP
02A7: 1@ = create_icon_marker_and_sphere 22 at 2525.7141 -1703.9878 13.3803
:petla1
wait 10
if
0102: actor $PLAYER_ACTOR in_sphere 2525.7141 -1703.9878 13.3803 radius 1.2 1.2 3.0 sphere 1 stopped_on_foot
jf @petla1
054C: use_GXT_table 'SAPlus'
Player.CanMove($PLAYER_CHAR) = False
08D4: $Panel = create_panel_with_title 'TITLE' position 29.0 145.0 width 200.0 columns 1 interactive 1 background 1 alignment 1
08DB: set_panel $Panel column 0 header 'TITLE2' data 'M1' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'
:czekaj_na_wybor
wait 0
if
00E1: player $PLAYER_CHAR pressed_key 15
jf @czekaj_na_wybor_test2
:czekaj_na_wybor_test2
if
00E1: player $PLAYER_CHAR pressed_key 16
jf @czekaj_na_wybor
08D7: $Wybrane = panel $Panel active_row
08DA: remove_panel $Panel
03E6: remove_text_box
0871: init_jump_table $Wybrane total_jumps 2 1 -1 jumps 0 @wybrane1 1 @wybrane2 0 -1 0 -1 0 -1 0 -1 0 -1
:wybrane1
fade 0 1500
wait 1500
wait 1500
fade 1 1500
0A94: start_custom_mission "SAPlus/1.cm"
jump @wyjdz
jump @petla1
:wybrane2
jump @wyjdz
0A93: end_custom_thread
:wyjdz
08DA: remove_panel $Panel
03E6: remove_text_box
Player.CanMove($PLAYER_CHAR) = True
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2010-11-17 17:53:32
Raz - skrypt jest dość pomieszany, nawet bardzo, powinien jednak działać. Crashuje to, że w 0A94 użyłeś rozszerzenia .cm - jest tu zbędne.
Jak chcesz to mogę go jednak trochę poprawić, nie zrobiłem tego teraz, bo to sporo roboty.
___________________
Moderator
Postów:
123
Dołączył:
2010-03-31
Napisano dnia: 2010-11-17 20:59:47
Nie nie napisałem go od podstaw i narazie śmiga dzięki za pomoc to że bede wpadał macie jak w banku.
Postów:
1004
Dołączył:
2009-01-20
Napisano dnia: 2010-11-18 22:08:26
W moim menu mam kilka pozycji do wyboru i po zaznaczeniu chciałbym żeby tą zaznaczoną rzecz dało się wybrać, a nie bez względu którą zaznaczę to zawsze jedno i to samo się wybiera. Jakie takie coś zrobić?
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2010-11-18 22:12:33
Pokaż swój skrypt. Pamiętam, że ja z półtora roku temu też miałem taki problem z menu.
___________________
Moderator
Postów:
1004
Dołączył:
2009-01-20
Napisano dnia: 2010-11-18 22:22:08
Kod:
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
0000: NOP
//pojazdy
Model.Load(#topfun)
//aktorzy
Model.Load(#LSV3)
038B: load_requested_models
:test_1
wait 0
if
0256: player $PLAYER_CHAR defined
jf @test_1
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: $menu_1 = create_panel_with_title 'TXT1' position 31.4 180.0 width 179.9 columns 1 interactive 1 background 1 alignment 1
08DB: set_panel $menu_1 column 0 header 'DUMMY' data 'TXT6' 'TXT7' 'TXT8' 'TXT9' 'TXT10' 'TXT11' 'TXT12' 'TXT13' 'TXT14' 'TXT15' 'TXT16' 'TXT17'
:czekaj_na_wybor
wait 0
if
00E1: player $PLAYER_CHAR pressed_key 4 //tab
jf @czekaj_na_wybor
08D7: $test_1 = panel $menu_1 active_row
//08DA: remove_panel $menu_1
//03E6: remove_text_box
0871: init_jump_table $test_1 total_jumps 8 default_jump 0 -1 jumps 0 @a2 1 @a2 2 @a3 3 @a4 4 @a5 5 @a6 6 @a7
:a1
0395: clear_area 1 at 2535.7832 -1714.6282 12.4826 radius 8.0
$pojazd_1 = Car.Create(#topfun, 2538.4143, -1716.0818, 15.38)
:a2
0395: clear_area 1 at 2535.7832 -1714.6282 12.4826 radius 8.0
$pojazd_1 = Car.Create(#topfun, 2538.4143, -1716.0818, 18.38)
:a3
:a4
:a5
:a6
:a7
0A93: end_custom_thread
Na razie to mam tyle. Próbuje to robić ale jak bym nie ustawiał to zawsze się robi to jak napisałem wyżej.
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2010-11-18 22:28:08
Na końcu nagłówków @a1 @a2 itp. musisz dać jump, skrypt sam nie wykryje końca nagłówka.
Poza tym nie polecam stosowania czegoś takiego jak -1 zamiast nagłówka - przy ponownej dekompilacji skrypt nieco się miesza. Najlepiej zrobić to w takim stylu:
Kod:
0871: init_jump_table $test_1 total_jumps 8 default_jump 0 @MenuKoniec jumps 0 @a2 1 @a2 2 @a3 3 @a4 4 @a5 5 @a6 6 @a7
:a1
0395: clear_area 1 at 2535.7832 -1714.6282 12.4826 radius 8.0
$pojazd_1 = Car.Create(#topfun, 2538.4143, -1716.0818, 15.38)
jump @MenuKoniec
:a2
0395: clear_area 1 at 2535.7832 -1714.6282 12.4826 radius 8.0
$pojazd_1 = Car.Create(#topfun, 2538.4143, -1716.0818, 18.38)
jump @MenuKoniec
:a3
jump @MenuKoniec
:a4
jump @MenuKoniec
:a5
jump @MenuKoniec
:a6
jump @MenuKoniec
:a7
// Rockstar tu też używał skoku, ale widocznie tak kompilował ich kompilator - nie potrzeba tu go.
:MenuKoniec
0A93: end_custom_thread
Menu też nie będzie działało tak samo, jak Rockstarowe - ich menu wykonują akcje dopiero po wciśnięciu i PUSZCZENIU klawisza wyboru, takie menu odpali się od razu po dotknięciu klawisza. Jak chcesz, to jutro mogę rozpisać, w jaki sposób R* to zrobił.
Idę spać.
___________________
Moderator
Postów:
1004
Dołączył:
2009-01-20
Napisano dnia: 2010-11-18 22:45:00
Przydał by się właśnie jakiś przykład chociaż z czterema pozycjami jak takie coś robić. To co podałeś to owszem działa ale tylko da się jeden raz wybrać jakąś akcje a potem nic się nie dziej.
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2010-11-19 14:24:10
Dziwisz się, że nic się nie dzieje, skoro w nagłówku @MenuKoniec jest 0A93...?
Cytat:
Przydał by się właśnie jakiś przykład chociaż z czterema pozycjami jak takie coś robić.
To, co podałem, zadziała w każdym przypadku.
___________________
Moderator