Jump to content

Spel blijft haken


Recommended Posts

Geplaatst: (bewerkt)

Spel gaat bij deze label haken:

:MISSION_TAXI
0674: set_car_model #TAXI numberplate 'TAXI_397'
00A5: $taxi397 = create_car #TAXI at -2263.042 2352.578 4.804
0129: 10@ = create_actor_pedtype 4 model #VWMYCD in_car $taxi397 driverseat
Car.Angle($taxi397) = 202.5
Car.Health($taxi397) = 2250.0
Marker.CreateAboveCar($m_taxi397, $taxi397)
Marker.SetColor($m_taxi397, 4)
wait 0

Ik weet zeker dat de fout in de Marker.CreateAboveCar of in de Marker.SetColor zit omdat het spel vasthangt als de marker op de taxi moet komen. Op de radar staat netjes het gele blokje, maar op de taxi staat geen marker.

PS: Welke objects moeten defined worden om de roulette werkend te krijgen?

PS2: Ik was bij die code hierboven vergeten te zeggen dat dat niet echt een missie is. Je moet gewoon ergens heen rijden voor je eerste dollars en je wordt terug gebracht.

Bewerkt: door Donald F. Duck
Geplaatst:

Ik vermoed dat het niet zit in die twee dingen, maar in de rest van je code. Kan je de hele code geven?

En die roulette, dat is een external script, en daar zou ik me niet aan wagen als ik jou was :clown:. Om het zelf te maken in ieder geval... Hier kan je een stripped main.scm downloaden met alle external scripts werkend. Let op: dit is voor mission builder, en dat werkt dus niet in sanny builder, helaas... Je kunt proberen om het te converteren van MB naar SB, dus in SB naar Tools > Code Converter > MB->SB. Ik weet niet of hij zo alles kan converteren, trouwens. Heb het nog nooit geprobeerd... Dit is dus voor alle external scripts in GTA SA, dus basketbal, gym, parachute, maar ook de casino games als roulette.

Geplaatst:

de defines staan hier
//-------------MAIN---------------
thread 'MAIN' 
01F0: set_max_wanted_level_to 6 
set_wb_check_to 0 
00C0: set_current_time_hours_to 8 minutes_to 0 
04E4: unknown_refresh_game_renderer_at 2488.56 -1666.84 
Camera.SetAtPos(2488.56, -1666.84, 13.38)
$PLAYER_CHAR = Player.Create(#NULL, 2488.56, -1666.84, 13.38)
$PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR)
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group 
Camera.SetBehindPlayer
set_weather 0 
wait 0 
Player.SetClothes($PLAYER_CHAR, "PLAYER_FACE", "HEAD", Head)
Player.SetClothes($PLAYER_CHAR, "JEANSDENIM", "JEANS", Legs)
Player.SetClothes($PLAYER_CHAR, "SNEAKERBINCBLK", "SNEAKER", Shoes)
Player.SetClothes($PLAYER_CHAR, "VEST", "VEST", Torso)
Player.Build($PLAYER_CHAR)
Player.CanMove($PLAYER_CHAR) = True
fade 1 0 
select_interior 0 
0629: change_integer_stat 181 to 4 
016C: restart_if_wasted_at 2488.56 -1666.84 13.38 angle 270.0 town_number 0 
016D: restart_if_busted_at 2488.56 -1666.84 13.38 angle 270.0 town_number 0 
0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here 
$DEFAULT_WAIT_TIME = 250 
03E6: remove_text_box

004F: create_thread @MODEL 

:MAIN_297
wait $DEFAULT_WAIT_TIME 
00BF: $TIME_HOURS = current_time_hours, $TIME_MINS = current_time_minutes 
jump @MAIN_297 

:MODEL
thread 'MODEL'
//Model load
0247: load_model #INFERNUS
0247: load_model #TAXI
0247: load_model #VWMYCD
038B: load_requested_models

:MODEL_LOAD
00D6: if or
8248:   not model #INFERNUS available
8248:   not model #TAXI available
8248:   not model #VWMYCD available
004D: jump_if_false @MISSION_INFERNUS
0001: wait 0 ms
0002: jump @MODEL_LOAD

:MISSION_INFERNUS
0674: set_car_model #INFERNUS numberplate 'SPEEDCAR'
00A5: $speedcar = create_car #INFERNUS at 2459.762 -1665.877 13.423  
Car.Angle($speedcar) = 270.0
Car.Health($speedcar) = 2250.0
0186: $m_speedcar = create_marker_above_car $speedcar
0165: set_marker $m_speedcar color_to 1
repeat
wait 0
until Actor.InCar($PLAYER_ACTOR, $speedcar)
Marker.Disable($m_speedcar)
$m_bayside = Marker.CreateIconAndSphere(9, -2270.65, 2333.332, 4.7625)

:MISSION_INFERNUS_WRECKED
wait 0 ms                                        
if     
 0119:   car $speedcar wrecked               
 004D: jump_if_false @MISSION_INFERNUS_END                                 
wait 0 ms                                              
jump @MODEL

:MISSION_INFERNUS_END
if
01AE:   car $speedcar sphere 0 near_point -2270.65 2333.332 radius 1.0 1.0 stopped 
004D: jump_if_false @MISSION_INFERNUS_WRECKED
wait 0 ms

:MISSION_INFERNUS_PASSED
0394: play_music 1
01E3: show_text_1number_styled GXT 'M_PASS' number 250 time 5000 style 1 // INFERNUS PASSED
Player.Money($PLAYER_CHAR) += 250

:MISSION_TAXI
0674: set_car_model #TAXI numberplate 'TAXI_397'
00A5: $taxi397 = create_car #TAXI at -2263.042 2352.578 4.804
0129: 10@ = create_actor_pedtype 4 model #VWMYCD in_car $taxi397 driverseat
Car.Angle($taxi397) = 202.5
Car.Health($taxi397) = 2250.0
Marker.CreateAboveCar($m_taxi397, $taxi397)
Marker.SetColor($m_taxi397, 4)
wait 0

:MISSION_TAXI_IN
if
00E1: player 0 pressed_key 15
004D: jump_if_false @MISSION_TAXI_IN
072B: put_actor $PLAYER_ACTOR into_car $taxi397 passengerseat 0
Marker.Disable($m_taxi397) 
0002: jump @MISSION_TAXI_RIDE

:MISSION_TAXI_RIDE
Player.CanMove($PLAYER_CHAR) = False
Car.DriveTo($taxi397, 2485.45, -1685.464, 13.01)
Car.SetMaxSpeed($taxi397, 13.5)
Car.SetSpeedInstantly($taxi397, 13.5)
deze code is niet helemaal af, wordt nog gedaan

hieronder het roulette script

Dit roulette script komt precies uit de originele Rockstar main.scm. Over dat script, ik hoef alleen maar de objects te weten uit die lange objectlist.

Ook moet ik weten hoe ik geld van de speler af kan halen.

Geplaatst:

:MISSION_TAXI_IN
if
00E1: player 0 pressed_key 15
004D: jump_if_false @MISSION_TAXI_IN

Daarom slaat hij vast. Je vergeet de wait. Onthoudt: er moet altijd een wait in een lus voorkomen. Dus een vorm als:

:label
if
...
jump_if_false @label2
jump @label

Dan moet er dus een wait in. Achter :label in dit geval, dus moet het worden:

:MISSION_TAXI_IN
wait 100 ms
if
00E1: player 0 pressed_key 15
004D: jump_if_false @MISSION_TAXI_IN

Het is niet aan te raden nu 0 ms te gebruiken, aangezien dit wel langer duurt voordat iemand op die toets drukt als bijvoorbeeld wanneer je een model load.

En het geld:

0109: player $PLAYER_CHAR money += 1000000

Verander het getal in een - getal, om het geld eraf te halen...

Geplaatst: (bewerkt)

Ok, maar nu nog een probleem.

Ik vind het nogal raar om alleen 15 (in/uit auto) te gebruiken omdat CJ dan uit de Infernus gaat en naar de Taxi rent (of niet, weet ik niet). Daarom heb ik 14 (springen) ook erbij gedaan. De if veranderd in en if and, en proberen maar. Enige probleem: als ik 15 en 14 (in/uit auto en springen) indruk gaat spel haken. Hoe kan ik dit oplossen? De code is ook al afgemaakt, dit zijn de labels waar het afgemaakt is.

:MISSION_TAXI_RIDE
Player.CanMove($PLAYER_CHAR) = False
Car.DriveTo($taxi397, 2485.45, -1685.464, 13.01)
Car.SetMaxSpeed($taxi397, 13.5)
Car.SetSpeedInstantly($taxi397, 13.5)
Car.SetToPsychoDriver($taxi397)
0002: jump @MISSION_TAXI_END

:MISSION_TAXI_END
if
00EC:   actor $PLAYER_ACTOR 0 near_point 2485.45 -1685.464 radius 2.0 2.0
004D: jump_if_false @MISSION_TAXI_END
wait 0 ms
Player.Money($PLAYER_CHAR) += -47
Player.CanMove($PLAYER_CHAR) = True

Bewerkt: door Donald F. Duck
Geplaatst:

Ik moet toch eens verder kijken dan mijn neus lang is.

Maar code is getest, hij werkt goed, enige probleem is dat de taxi niet Bayside uit komt omdat hij denk ik hemelsbreed een weg zoekt (maar over de wegen). Die taxi blijft dus maar rondjes rijden over Bayside. Moet ik hem dan instellen dat bij elke bocht waar de taxi de andere kant dan Grove op rijdt een if maakt om te kijken of de taxi daar is en hem dan verder te laten rijden? Lijkt me een beetje moeilijk. :7

Geplaatst:
Ik moet toch eens verder kijken dan mijn neus lang is.

Maar code is getest, hij werkt goed, enige probleem is dat de taxi niet Bayside uit komt omdat hij denk ik hemelsbreed een weg zoekt (maar over de wegen). Die taxi blijft dus maar rondjes rijden over Bayside. Moet ik hem dan instellen dat bij elke bocht waar de taxi de andere kant dan Grove op rijdt een if maakt om te kijken of de taxi daar is en hem dan verder te laten rijden? Lijkt me een beetje moeilijk. :7

Ik denk inderdaad dat de game niet in staat is om helemaal een route te plannen vanuitt bayside naar groove.

Als je echt de hele rit van de taxi wilt laten zien, dan zit er niet veel anders op dan het in kleine stukjes te verdelen.

Een andere optie is om alleen het vertrek en de aankomst te laten zien, met een zwart beeld ertussen gefade..

Geplaatst: (bewerkt)
[...]

Een andere optie is om alleen het vertrek en de aankomst te laten zien, met een zwart beeld ertussen gefade..

Ik ga het zo doen, maar welke code is nodig voor een zwart beeld en hoe krijg ik dan de taxi (met CJ) op Grove?

Bewerkt: door Donald F. Duck
Geplaatst:
[...]

Een andere optie is om alleen het vertrek en de aankomst te laten zien, met een zwart beeld ertussen gefade..

Ik ga het zo doen, maar welke code is nodig voor een zwart beeld en hoe krijg ik dan de taxi (met CJ) op Grove?

Scherm zwart maken

016A: fade 0 time 500

Scherm weer zichtbaar maken

016A: fade 1 time 500

Auto verplaatsen

Car.PutAt($taxi, <<xcoord>>, <<yxoord>>, <<zcoord>>)
Car.Angle($taxi) = <<rijrichting 0.0 - 360.0 >>

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...