Czy wiesz, że... rejestracja trwa tylko 20 sekund?
Strona główna forum Szukaj Rejestracja
Witaj, nieznajomy!
Poprzedni 1 Następny
Postów: 294 Dołączył: 2011-07-27
#
Witam, potrzebuję opcode na to, aby pojazd po wcześniejszym zatrzymaniu ruszył i jechał z prędkością, taką samą jaką miał przed zatrzymaniem. Z góry dzięki za pomoc
Postów: 628 Dołączył: 2009-01-22
#
Spróbuj użyć na nim PLAY_CAR_ANIM z ID 0, 1 lub 2. Nie jestem pewien co pojazd zrobi po czasie, który wskażesz w funkcji - być może ruszy ponownie. Jeśli nie ruszy, nadaj mu parametry jazdy ponownie (cel, Vmax).

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 294 Dołączył: 2011-07-27
#
Niestety PLAY_CAR_ANIM nic nie dało, nie ma żadnej reakcji, pojazd dalej stoi w miejscu. Jedynie po zastosowaniu 00AD pojazd rusza, ale z prędkością z góry zadaną (chyba?), a ja chciałbym żeby miał on różną prędkość w zależności na jakiej drodze się znajduje, tak jak jest to normalnie w grze.
Postów: 628 Dołączył: 2009-01-22
#
To spróbuj zamienić to na CAR_WANDER_RANDOMLY.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 294 Dołączył: 2011-07-27
#
Już wcześniej próbowałem i też nic, ani na psycho_driver, ani na normal_driver...
Bo zasadniczo to chodzi mi o coś takiego, że np. wsiadam do jakiegoś napotkanego samochodu jako pasażer i właśnie nie wiem jak zrobić żeby ten samochód ruszył z miejsca jak już wsiądę i jechał byle gdzie z normalną prędkością. Dodam, że pojazd jest zatrzymywany opcodem 00AD (podaję prędkość 0.0).
Postów: 628 Dołączył: 2009-01-22
#
CAR_WANDER_RANDOMLY resetuje wymuszoną prędkość nadaną przez SET_CAR_CRUISE_SPEED, więc w sumie powinno zadziałać.

Wklej tu swój kod, chyba powinienem to przetestować samemu.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 294 Dołączył: 2011-07-27
#
Nie ukrywam, że wzorowałem się na kilku podobnych modach więc może być tu dla Ciebie wiele niejasności ;-) Byłbym wdzięczny gdybyś mógł go poprawić. Skrypt po dekompilacji wygląda następująco i dalej pojazd nie rusza z miejsca (możliwe że coś źle połączyłem):

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

:NONAME_2
wait 0 
4@ = -1 
5@ = -1 
if 
   Player.Defined($PLAYER_CHAR)
else_jump @NONAME_2 
if 
8449:   not actor $PLAYER_ACTOR in_a_car 
else_jump @NONAME_1338 
if 
0AB0:   key_pressed 66 
else_jump @NONAME_2 
jump @NONAME_74 

:NONAME_74
Actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@)
073E: get_car_in_sphere 1@ 2@ 3@ radius 8.0 model -1 handle_as 5@ 
if 
   not 5@ == -1 
else_jump @NONAME_2 
046C: 4@ = car 5@ driver 
if 
   not 4@ == -1 
else_jump @NONAME_172 
if 
87D6:   not  4@ == $PLAYER_ACTOR // integer vars 
else_jump @NONAME_172 

:NONAME_172
05CA: AS_actor $PLAYER_ACTOR enter_car 5@ passenger_seat -1 100000 ms 
01EA: 7@ = car 5@ max_passengers 
if 
  7@ == 1 
else_jump @NONAME_255 
if 
8431:   not car 5@ passenger_seat_free 0 
else_jump @NONAME_378 
0432: 6@ = get_actor_handle_from_car 5@ passenger_seat 0 
0526: set_actor 6@ stay_in_car 1 
jump @NONAME_378 

:NONAME_255
if 
  7@ == 3 
else_jump @NONAME_378 
if 
8431:   not car 5@ passenger_seat_free 0 
else_jump @NONAME_308 
0432: 6@ = get_actor_handle_from_car 5@ passenger_seat 0 
0526: set_actor 6@ stay_in_car 1 

:NONAME_308
if 
8431:   not car 5@ passenger_seat_free 1 
else_jump @NONAME_343 
0432: 8@ = get_actor_handle_from_car 5@ passenger_seat 1 
0526: set_actor 8@ stay_in_car 1 

:NONAME_343
if 
8431:   not car 5@ passenger_seat_free 2 
else_jump @NONAME_378 
0432: 9@ = get_actor_handle_from_car 5@ passenger_seat 2 
0526: set_actor 9@ stay_in_car 1 

:NONAME_378
wait 0 
if 
   not Actor.Dead($PLAYER_ACTOR)
else_jump @NONAME_2 
if 
   not Car.Wrecked(5@)
else_jump @NONAME_2 
if 
0202:   actor $PLAYER_ACTOR near_car 5@ radius 6.0 6.0 flag 0 
else_jump @NONAME_2 
if and
80E1:   not player 0 pressed_key 0 
80E1:   not player 0 pressed_key 1 
80E1:   not player 0 pressed_key 15 
else_jump @NONAME_2 
if 
   Actor.InCar($PLAYER_ACTOR, 5@)
else_jump @NONAME_378 
046C: 4@ = car 5@ driver 
if 
87D6:   not  4@ == $PLAYER_ACTOR // integer vars 
else_jump @NONAME_2 

:NONAME_520
10@ = 0 
11@ = -1 
12@ = 0.0 
Car.StorePos(5@, 1@, 2@, 3@)
if 
   not Actor.Dead($PLAYER_ACTOR)
else_jump @NONAME_2 
if 
   not Car.Wrecked(5@)
else_jump @NONAME_2 
046C: 4@ = car 5@ driver 
if 
   not 4@ == -1 
else_jump @NONAME_1338 
if 
   Actor.InCar($PLAYER_ACTOR, 5@)
else_jump @NONAME_1302 
if 
00E1:   player 0 pressed_key 18 
else_jump @NONAME_659 
jump @NONAME_520 

:NONAME_659
wait 0 
Car.SetToNormalDriver(5@)
if 
   not Actor.Dead($PLAYER_ACTOR)
else_jump @NONAME_2 
if 
   not Car.Wrecked(5@)
else_jump @NONAME_2 
046C: 4@ = car 5@ driver 
if 
87D6:   not  4@ == $PLAYER_ACTOR // integer vars 
else_jump @NONAME_1338 
if 
80E1:   not player 0 pressed_key 18 
else_jump @NONAME_893 
Car.StorePos(5@, 13@, 14@, 15@)
0509: 16@ = distance_between_XY 1@ 2@ and_XY 13@ 14@ 
16@ /= 15.0 
005B: 12@ += 16@ // (float) 
Car.StorePos(5@, 1@, 2@, 3@)
008C: 17@ = float 12@ to_integer 
if 
   Actor.InCar($PLAYER_ACTOR, 5@)
else_jump @NONAME_1302 
if 
  10@ == 1 
else_jump @NONAME_659 
04B8: get_weapon_data_from_actor $PLAYER_ACTOR weapon_group 5 weapon 18@ ammo 11@ model 19@ 
if 
  11@ == 0 
else_jump @NONAME_659 
jump @NONAME_1132 

:NONAME_893
if 
00E1:   player 0 pressed_key 18 
else_jump @NONAME_1338 
if or
   Actor.HasWeapon($PLAYER_ACTOR, 28)
   Actor.HasWeapon($PLAYER_ACTOR, 29)
   Actor.HasWeapon($PLAYER_ACTOR, 32)
else_jump @NONAME_1036 
04B8: get_weapon_data_from_actor $PLAYER_ACTOR weapon_group 5 weapon 18@ ammo 11@ model 19@ 
if 
   not 11@ == 0 
else_jump @NONAME_1036 
if 
  10@ == 0 
else_jump @NONAME_1132 
0713: actor $PLAYER_ACTOR driveby_actor -1 car -1 point 0.0 0.0 0.0 radius 300.0 8 1 firing_rate 100 
10@ = 1 

:NONAME_1036
if 
   not Actor.Dead($PLAYER_ACTOR)
else_jump @NONAME_2 
if 
00E1:   player 0 pressed_key 18 
else_jump @NONAME_1080 
wait 0 
jump @NONAME_1036 

:NONAME_1080
046C: 4@ = car 5@ driver 
if 
   not 4@ == -1 
else_jump @NONAME_1338 
if 
87D6:   not  4@ == $PLAYER_ACTOR // integer vars 
else_jump @NONAME_1338 
jump @NONAME_659 

:NONAME_1132
10@ = 0 
0432: 6@ = get_actor_handle_from_car 5@ passenger_seat 0 
if 
87D6:   not  6@ == $PLAYER_ACTOR // integer vars 
else_jump @NONAME_1251 
if 
  7@ == 3 
else_jump @NONAME_1080 
0432: 8@ = get_actor_handle_from_car 5@ passenger_seat 1 
if 
87D6:   not  8@ == $PLAYER_ACTOR // integer vars 
else_jump @NONAME_1268 
0432: 9@ = get_actor_handle_from_car 5@ passenger_seat 2 
if 
87D6:   not  9@ == $PLAYER_ACTOR // integer vars 
else_jump @NONAME_1285 
jump @NONAME_1080 

:NONAME_1251
072B: put_actor $PLAYER_ACTOR into_car 5@ passengerseat 0 
jump @NONAME_1036 

:NONAME_1268
072B: put_actor $PLAYER_ACTOR into_car 5@ passengerseat 1 
jump @NONAME_1036 

:NONAME_1285
072B: put_actor $PLAYER_ACTOR into_car 5@ passengerseat 2 
jump @NONAME_1036 

:NONAME_1302
wait 0 
Car.SetMaxSpeed(5@, 0.0)
0633: AS_actor $PLAYER_ACTOR exit_car 
wait 3000 
Car.SetToNormalDriver(5@)
jump @NONAME_2 

:NONAME_1338
03C0: 5@ = actor $PLAYER_ACTOR car 
if 
   not Actor.Dead($PLAYER_ACTOR)
else_jump @NONAME_2 
if 
   not Car.Wrecked(5@)
else_jump @NONAME_2 
046C: 4@ = car 5@ driver 
if 
87D6:   not  4@ == $PLAYER_ACTOR // integer vars 
else_jump @NONAME_2 
if 
  4@ == -1 
else_jump @NONAME_520 
if 
80E1:   not player 0 pressed_key 18 
else_jump @NONAME_893 
if 
8AB0:   not key_pressed 66 
else_jump @NONAME_1302 
if 
80E1:   not player 0 pressed_key 15 
else_jump @NONAME_1302 
if 
   Actor.InCar($PLAYER_ACTOR, 5@)
else_jump @NONAME_1302 
jump @NONAME_1338 



Silent i jak tam sprawdziłeś? Wiesz może co tu jest nie tak?
Postów: 628 Dołączył: 2009-01-22
#
Trochę dziwne że nie rusza, ale skoro skaczesz do początku skryptu i dalej nie musisz przejmować się tym pojazdem, potraktuj go MARK_CAR_AS_NO_LONGER_NEEDED.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 294 Dołączył: 2011-07-27
#
Nie wiem, może to jest trochę dziwne, ale z powyższym opcode pojazd w dalszym ciągu nie rusza z miejsca. Spróbuję jeszcze trochę lepiej ułożyć ten skrypt, a jak w dalszym ciągu nie będzie działać to zastosuję 00AD i niestety narzucę jakąś prędkość, bo tylko po zastosowaniu tego opcode pojazd rusza.
Postów: 628 Dołączył: 2009-01-22
#
Możesz narzucić mu prędkość i oflagować go jako niepotrzebny. Przy odrobinie szczęścia powinno pomóc.

No i rzeczywiście, skrypt wymaga poprawek, ma kilka miejsc które nie mają sensu.

Edit:
A czy w dalszym ciągu nie próbowałeś zamienić SET_CAR_CRUISE_SPEED zatrzymujące pojazd na PLAY_CAR_ANIM? Czas 3000ms i akcja 0, 1 lub 2 powinny pasować.

Edit2:
Teraz zauważyłem - czemu na końcu użyłeś CAR_SET_IDLE? Zamień to na CAR_WANDER_RANDOMLY i nie przejmuj się tym, że w Sannym nazywa się to 'psycho driver'. Sanny ma sporo niepoprawnych definicji - w sascm.ini v2 na GTAG zostanie to poprawione.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 294 Dołączył: 2011-07-27
#
Cytat:
A czy w dalszym ciągu nie próbowałeś zamienić SET_CAR_CRUISE_SPEED zatrzymujące pojazd na PLAY_CAR_ANIM? Czas 3000ms i akcja 0, 1 lub 2 powinny pasować.

O tym pisałem na początku, a w sumie podczas wsiadania do pojazdu jest on zatrzymywany opcodem 05CA (chyba), i to może ten opcode trzeba jakoś odwołać? Bo gracz pomimo, że wejdzie do pojazdu to pojazd nie rusza.

Cytat:
Teraz zauważyłem - czemu na końcu użyłeś CAR_SET_IDLE? Zamień to na CAR_WANDER_RANDOMLY i nie przejmuj się tym, że w Sannym nazywa się to 'psycho driver'. Sanny ma sporo niepoprawnych definicji - w sascm.ini v2 na GTAG zostanie to poprawione.

Jak już wcześniej napisałem ani CAR_SET_IDLE, ani CAR_WANDER_RANDOMLY nic nie dały. Próbowałem jeden i drugi...
Poprzedni 1 Następny
Zaloguj się lub zarejestruj się, żeby pisać na forum.
Created & Powered by MakG