Czy wiesz, że... możesz podsyłać newsy, artykuły, pliki i zdjęcia?
Strona główna forum Szukaj Rejestracja
Witaj, nieznajomy!
Poprzedni 1 Następny
Postów: 536 Dołączył: 2011-04-12
#
Chciałem złapać pojazd gracz i pokombinować coś z nim.
Dla przykładu wziąłem ze otwierają się prawe drzwi po wciśnięciu J, ale nie działa.
Gra się uruchamia wszystko ok, tylko jak wciskam J to nic się nie dzieje. Co jest źle?
Kod:
{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP 

:NONAME_2
wait 10 
if 
   Player.Defined($PLAYER_actor)
jump @NONAME_2 

:NONAME_22
wait 0
if
   Actor.Driving($PLAYER_ACTOR)
jump @NONAME_22 
$WOZ = Actor.Car($PLAYER_ACTOR)

:NONAME_42
wait 0
if
00E1:   player 0 pressed_key 74 
jump @NONAME_42 
0657: car $WOZ open_componentA 3 
0A93: end_custom_thread 

___________________
http://img.userbars.pl/76/15185
http://images.chomikuj.pl/button/Toyota-Supra
Postów: 878 Dołączył: 2009-01-20
#
Opcode 00E1:
Kod:
00E1:   player 0 pressed_key ID

jest dla klawiszy zdefiniowanych w grze. Jeżeli chcesz sprawdzić wciśnięcie dowolnego klawisza, musisz użyć opcodu 0AB0:
Kod:
0AB0: key_pressed 0x74


Poza tym nie używaj zmiennych globalnych ($WOZ) w skryptach CLEO. Zamiast tego stosuj zmienne lokalne (0@, 1@, ... 31@). Ostatnie dostępne zmienne (32@ i 33@) to wewnętrzne timery, więcej o nich w tutorialach na stronie.

___________________
Administrator
Postów: 536 Dołączył: 2011-04-12
#
Dzięki.
Zmieniłem na zmienne lokalne i użyłem tego opcodu co podałeś, ale nadal po wciśnięciu nic się nie dzieje.

___________________
http://img.userbars.pl/76/15185
http://images.chomikuj.pl/button/Toyota-Supra
Postów: 878 Dołączył: 2009-01-20
#
W pierwszej pętli sprawdzasz, czy gracz jest zdefiniowany, a jako uchwyt do gracza podajesz zmienną aktora... Zmień "$PLAYER_actor" na "$PLAYER_CHAR".

Jeżeli chcesz, żeby funkcja otwierania drzwi była dostępna wielokrotnie, to na końcu skryptu musisz dać przeskok na początek.

___________________
Administrator
Postów: 628 Dołączył: 2009-01-22
#
Poza tym, klasa Actor.Car używa złego opcodu (klasy to zło). Użyj 03C0.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 536 Dołączył: 2011-04-12
#
Dzięki za pomoc, ale nadal źle:) Co tu źle napisałem?
Kod:
{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP 

:NONAME_2
wait 10 
if 
   Player.Defined($PLAYER_char)
jump @NONAME_2 

:NONAME_22
wait 0 
if 
   Actor.Driving($PLAYER_actor)
jump @NONAME_22 
03C0: 1@ = actor $PLAYER_actor car 

:NONAME_50
wait 0 
if 
0AB0:   key_pressed 73 
jump @NONAME_50 
0657: car 1@ open_componentA 3 
jump @NONAME_2

___________________
http://img.userbars.pl/76/15185
http://images.chomikuj.pl/button/Toyota-Supra
Postów: 878 Dołączył: 2009-01-20
#
W "key_pressed" zamiast 73 daj "0x73"

___________________
Administrator
Postów: 536 Dołączył: 2011-04-12
#
Fakt zapomniałem o ty, ale nadal po wciśnięciu F4 nie otwiera drzwi.

___________________
http://img.userbars.pl/76/15185
http://images.chomikuj.pl/button/Toyota-Supra
Postów: 1004 Dołączył: 2009-01-20
#
Spróbuj coś takiego

Kod:
{$CLEO .cs}
0000: NOP

:petla
wait 0
if
Player.Defined($PLAYER_CHAR)
jf @petla

:petla2
wait 0
if 
Actor.Driving($PLAYER_ACTOR)
jf @petla2

:petla3
wait 0
if 
0AB0:  key_pressed 0x73
jf @petla3

03C0: 0@ = actor $PLAYER_ACTOR car
0657: car 0@ open_componentA 3

0A93: end_custom_thread


edit// można to też w ten sposób zapisać

Kod:
{$CLEO .cs}
0000: NOP

:petla
wait 0
if and
Player.Defined($PLAYER_CHAR)
Actor.Driving($PLAYER_ACTOR)
0AB0:  key_pressed 0x73
jf @petla

03C0: 0@ = actor $PLAYER_ACTOR car
0657: car 0@ open_componentA 3

0A93: end_custom_thread
Postów: 536 Dołączył: 2011-04-12
#
Dzięki Subaru- działają oba, ale ten pierwszy mi się bardziej przyda. A dlaczego ten mój nie działał? Przecież jest taki sam tylko pętle inaczej nazwane.

___________________
http://img.userbars.pl/76/15185
http://images.chomikuj.pl/button/Toyota-Supra
Postów: 628 Dołączył: 2009-01-22
#
Dopiero teraz zauważyłem - miałeś jump zamiast else_jump.

___________________
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