Jump to content

Recommended Posts

Geplaatst: (bewerkt)

Hey,

Ik ben weer eens bezig met scripten.

Ik wilde graag dat de vrachtwagen uit de missie Highjack hebben.

Zodat als hij een auto raakt dat die auto dan weg vliegt.

Het is gelukt om het stukje code te vinden.

Ik heb het stukje code omgezet naar variabele onder de 33 zodat hij in een thread kan.

Helaas loopt het spel vast. @Tjerk hieronder: Dat is een foutje door de codebox heb ze even verbeterd.

:TANKER
thread 'TANKER' 
Model.Load(#PETRO)
Model.Load(#PETROTR)
03CF: load_wav 19400 as 3
038B: load_requested_models 

:TANKER_LOAD
if 
not Model.Available(#PETRO)
not Model.Available(#PETROTR)
83D0: not wav 3 loaded 
else_jump @TANKER_SPAWN 
wait 0 
jump @TANKER_LOAD 

:TANKER_SPAWN

4@ = 0.0 
5@ = 0.0 
6@ = 0.0 
9@ = 0.0 
7@ = 0 
8@ = 0.0 
10@ = 0.0 
11@ = 0.0 
12@ = 0.0 
13@ = 0.0 
14@ = 0.0 
15@ = 0.0 
16@ = 0.0 
17@ = 0.0 
18@ = 0.0 
19@ = 0.0
20@ = -1

1@ = Car.Create(#PETRO, -1687.8, 537.7, 36. //dit moet een 8 ) dus niet die smiley!
Car.Angle(1@) = 137.0
2@ = Car.Create(#PETROTR, -1679.5, 545.9, 36.9)
Car.Angle(2@) = 137.0
0893: put_trailer 2@ on_cab 1@ 
053F: toggle_car 1@ tires_vulnerability 0 
Car.DoorStatus(1@) = 3
0560: create_random_actor_in_car 1@ handle_as 3@ 
Car.ImmuneToNonPlayer(1@) = True
054A: toggle_actor 3@ immune_to_car_headshots 0 
Car.SetMaxSpeed(1@, 0.0)
00AE: set_car 1@ traffic_behavior_to 2 
0714: unknown_car 1@ flag 1
03C0: 21@ = actor $PLAYER_ACTOR car
0615: define_AS_pack_begin 0@ 
05D1: AS_actor -1 drive_car 1@ to -1914.6 -1187.7 30.0 speed 15.0 0 model #NULL 3
0616: define_AS_pack_end 0@ 
0618: assign_actor 3@ to_AS_pack 0@ 
061B: remove_references_to_AS_pack 0@
jump @TORENO2_12228

:TORENO2_12228 
if 
not Car.Wrecked(1@)
else_jump @TORENO2_12931 
0407: store_coords_to 4@ 5@ $TEMPVAR_FLOAT_3 from_car 1@ with_offset -3.0 2.0 0.0 
0407: store_coords_to 6@ 9@ $TEMPVAR_FLOAT_3 from_car 1@ with_offset 3.0 11.0 0.0 
053E: 20@ = get_random_car_with_model -1 in_rectangle_cornerA 4@ 5@ cornerB 6@ 9@
if
8039:   not  20@ == -1 
else_jump @TORENO2_12228 
if 
not Car.Wrecked(20@)
else_jump @TORENO2_12931 
if 
803B: not 20@ == 21@ // (int)
else_jump @TORENO2_12931 
7@ = Car.Health(20@)
if 
7@ > 500 
else_jump @TORENO2_12931 
02E3: 16@ = car 1@ speed 
16@ *= 0.02 
02F8: get_car 1@ Z_angle_cosine_to 4@ 
02F9: get_car 1@ Z_angle_sine_to 5@ 
0087: 6@ = 5@ // (float) 
9@ = -1.0 
006B: 9@ *= 4@ // (float) 
Car.StorePos(20@, 12@, 13@, 14@)
Car.StorePos(1@, 8@, 10@, 11@)
0063: 12@ -= 8@ // (float) 
0063: 13@ -= 10@ // (float) 
0087: 17@ = 6@ // (float) 
006B: 17@ *= 12@ // (float) 
0087: 18@ = 9@ // (float) 
006B: 18@ *= 13@ // (float) 
0087: 15@ = 17@ // (float) 
005B: 15@ += 18@ // (float) 
if 
2.5 > 15@ 
else_jump @TORENO2_12921 
if 
15@ > -2.5 
else_jump @TORENO2_12921 
if 
15@ > 0.0 
else_jump @TORENO2_12615 
15@ = 1.0 
jump @TORENO2_12625 

:TORENO2_12615
15@ = -1.0 :TORENO2_12625
0087: 17@ = 4@ // (float) 
006B: 17@ *= 16@ // (float) 
0087: 18@ = 15@ // (float) 
006B: 18@ *= 6@ // (float) 
18@ *= 0.5 
0087: 19@ = 16@ // (float) 
006B: 19@ *= 18@ // (float) 
0087: 8@ = 17@ // (float) 
005B: 8@ += 19@ // (float) 
0087: 17@ = 5@ // (float) 
006B: 17@ *= 16@ // (float) 
0087: 18@ = 15@ // (float) 
006B: 18@ *= 9@ // (float) 
18@ *= 0.5 
0087: 19@ = 16@ // (float) 
006B: 19@ *= 18@ // (float) 
0087: 10@ = 17@ // (float) 
005B: 10@ += 19@ // (float) 
0087: 11@ = 16@ // (float) 
11@ += 0.008 
11@ *= 0.5 
12@ = -1.0 
006B: 12@ *= 15@ // (float) 
006B: 12@ *= 6@ // (float) 
006B: 12@ *= 16@ // (float) 
13@ = -1.0 
006B: 13@ *= 15@ // (float) 
006B: 13@ *= 9@ // (float) 
006B: 13@ *= 16@ // (float) 
14@ = 0.0 
03D1: play_wav 3 
03A2: set_car 20@ action 3 
07D5: set_car 20@ velocity_in_direction_XYZ 8@ 10@ 11@ rotation_velocitiesXY 12@ 13@ unk 14@ 
Car.Health(20@) = 499:TORENO2_12921
054F: clear_car 20@ damage 
Car.RemoveReferences(20@)
:TORENO2_12931 
wait 0 ms
jump @TORENO2_12228
end_thread

Bewerkt: door Marioleo69
Geplaatst:

Na snel kijken heb ik in ieder geval een klein foutje gezien. Je hebt bij Jump @tanker_load, er direct achter staan: :TANKER_SPAWN4@ = 0.0, ik denk dat dat niet klopt.

  • 2 weken later...
Geplaatst:

Het gaat op verschillende plekken mis vrees ik.

Meest in het oog springende fout is:

TORENO2_12931
return

'return' gebruik je alleen in combinatie met 'gosub'. En aangezien je die niet gebruikt, zal deze return een crash veroorzaken. Waarschijnlijk zul je hem moeten vervangen door een jump naar @TORENO2_12228

Een andere fout is het gebruik van de opcode:

053E: 20@ = get_random_car_with_model -1 in_rectangle_cornerA 4@ 5@ cornerB 6@ 9@

Deze opcode zoekt in de aangegeven area naar een random car ( dus geen die je zelf gespawned hebt), en als hij die vind, geeft hij de handle ervan terug in 20@.

Als hij er echter geen vindt, zal hij de waarde van 20@ niet aanpassen. En aangezien hij in het begin nog geen waarde heeft gekregen, zal er rotzooi in staan, en dus wss voor een crash zorgen.

Oplossing die ik meestal gebruik, is om voor die opcode de waarde van 20@ op -1 te zetten, en erna kijken of de waarde nog steeds -1 is. In dat geval heb je geen uto gevonden , en kun je terugspringen naar @TORENO2_12228

Succes.

Geplaatst: (bewerkt)

Hij loopt jammer genoeg nog steeds vast.

Ik in plaats van:

:TORENO2_12931
return
end_thread

dit gemaakt:

:TORENO2_12931 
wait 0 ms
jump @TORENO2_12228

Heb onder dit:

19@ = 0.0

Dit gezet:

20@ = -1

En ik heb onder dit:

053E: 20@ = get_random_car_with_model -1 in_rectangle_cornerA 4@ 5@ cornerB 6@ 9@

Dit gezet:

if
8039:   not  20@ == -1 
else_jump @TORENO2_12228

Heb ook even mijn hoofdpost thread aangepast.

Bewerkt: door Marioleo69
Geplaatst:

:TORENO2_12228
if
not Car.Wrecked(1@)
else_jump @TORENO2_12931
0407: store_coords_to 4@ 5@ $TEMPVAR_FLOAT_3 from_car 1@ with_offset -3.0 2.0 0.0
0407: store_coords_to 6@ 9@ $TEMPVAR_FLOAT_3 from_car 1@ with_offset 3.0 11.0 0.0
053E: 20@ = get_random_car_with_model -1 in_rectangle_cornerA 4@ 5@ cornerB 6@ 9@
if
8039: not 20@ == -1
else_jump @TORENO2_12228

Hier ben je sowieso een wait vergeten...

Geplaatst:

Waar als is vragen mag? :engel:

Hij kan overal wel staan.

Maar ik twijfel nog aan deze:

8044:   not  $2755 == $AMMU_X_SELLER // (float) 
8043:   not  10@ == 0.0 
8042:   not  $3500 == 2.0 
803C:   not  $TEMPVAR_ACTOR_CAR == 17@ // (int) 
803B:   not  22@ == 25@ // (int) 
803A:   not  $1021 == $1020 // (int) 
803A:   not  $1021 == $1020 // (int) 
8038:   not  $ACTIVE_INTERIOR == 0

Geplaatst:

Als je een if gebruikt in combinatie met een jf dan moet een wait gebruiken van 10 ms. Dit omdat de code anders te snel hetzelfde stukje code leest, en dat kan het script schijnbaar niet aan.

Een foutcode van een if in combinatie met een jf:

:check
if
2@.Dead
3@.Dead
jf @check

een goede code van een if in combinatie met een jf, (verbeterde versie van die hierboven:

:check
if
wait 10
2@.Dead
3@.Dead
jf @check

Je ziet waarschijnlijk gemakelijk het verschil, ik hoop dat je het nu snapt! :)

Geplaatst:
Heb onder elke if wait 10 ms gedaan. Alleen hij doet het nog steeds niet.

Hoe bedoel je; hij doet het niet? Slaat hij af? Foutmelding? Loopt PC vast? Of werkt het script gewoon niet? ;)

Geplaatst:
Als je een if gebruikt in combinatie met een jf dan moet een wait gebruiken van 10 ms. Dit omdat de code anders te snel hetzelfde stukje code leest, en dat kan het script schijnbaar niet aan.

Een foutcode van een if in combinatie met een jf:

:check
if
2@.Dead
3@.Dead
jf @check

een goede code van een if in combinatie met een jf, (verbeterde versie van die hierboven:

:check
if
wait 10
2@.Dead
3@.Dead
jf @check

Je ziet waarschijnlijk gemakelijk het verschil, ik hoop dat je het nu snapt! :)

Sorry, maar dit is echt bull-shit.

Je hoeft echt niet bij elke if een wait te zetten, je moet er alleen voor zorgen dat je in elke loop een wait hebt zitten.

En je code werkt ook gewoon met een wait van 0 ms hoor, maar het is altijd verstandiger om een groter getal te nemen, omdat je de processor dat minder belast. In dit geval zou je prima voor 200 ms kunnen gaan.

En die wait hoort sowieso niet tussen de if en de jf. Daartussen horen alleen condities.

De wait kun je het beste ervoor zetten:

:check
wait 200 ms
if
2@.Dead
3@.Dead
jf @check

Geplaatst: (bewerkt)

@Dutchy3010 Sa laat wel, maar dan zie ik voor een seconde cj, en dan word het beeld zwart en krijg ik het bekende bericht: Er is een fout opgetreden in gta.exe.

@PatrickW Hij doet het nog steeds niet, maar ik zou het wel raar vinden dat het zou liggen aan die waits. Want ik heb die code letterlijk gekopieerd uit de orginele main, en daar zaten ook geen waits tussen. Of is het zo dat de code het een missie het wel doet of in een thread het niet?

Mischien ligt het ook aan dat ik de code verkeerd heb omgezet naar variabelen onder de 33@.

Ik probeer hem weer om te zetten, meschien dat ik deze keer een deze fout niet maak.

EDIT: Ik mijn code nu helemaal gestript.

Ik heb alle getalletjes in het begin twee // voorgezet dat ze niet gebruikt worden en ik heb dat vliegende auto stuk weg gehaald. Maar ik zie dat het spel vast loopt bij 03C0: 21@ = actor $PLAYER_ACTOR car

Als ik daar twee // voorzet loopt het spel wel, maar dan rijd alleen de Tankwagen.

Moet ik eerst nog iets doen met de opcode 03C0?

:TANKER
thread 'TANKER' 
Model.Load(#PETRO)
Model.Load(#PETROTR)
03CF: load_wav 19400 as 3
038B: load_requested_models 

:TANKER_LOAD
if 
not Model.Available(#PETRO)
not Model.Available(#PETROTR)
83D0: not wav 3 loaded 
else_jump @TANKER_SPAWN 
wait 0 
jump @TANKER_LOAD 

:TANKER_SPAWN

//4@ = 0.0 
//5@ = 0.0 
//6@ = 0.0 
//9@ = 0.0 
//7@ = 0 
//8@ = 0.0 
//10@ = 0.0 
//11@ = 0.0 
//12@ = 0.0 
//13@ = 0.0 
//14@ = 0.0 
//15@ = 0.0 
//16@ = 0.0 
//17@ = 0.0 
//18@ = 0.0 
//19@ = 0.0
//20@ = -1 

1@ = Car.Create(#PETRO, -1687.8, 537.7, 36. 
Car.Angle(1@) = 137.0
2@ = Car.Create(#PETROTR, -1679.5, 545.9, 36.9)
Car.Angle(2@) = 137.0
0893: put_trailer 2@ on_cab 1@ 
053F: toggle_car 1@ tires_vulnerability 0 
Car.DoorStatus(1@) = 3
0560: create_random_actor_in_car 1@ handle_as 3@ 
Car.ImmuneToNonPlayer(1@) = True
054A: toggle_actor 3@ immune_to_car_headshots 0 
Car.SetMaxSpeed(1@, 0.0)
00AE: set_car 1@ traffic_behavior_to 2 
0714: unknown_car 1@ flag 1
//03C0: 21@ = actor $PLAYER_ACTOR car

0615: define_AS_pack_begin 0@ 
05D1: AS_actor -1 drive_car 1@ to -1914.6 -1187.7 30.0 speed 15.0 0 model #NULL 3
0616: define_AS_pack_end 0@ 
0618: assign_actor 3@ to_AS_pack 0@ 
061B: remove_references_to_AS_pack 0@

end_thread

Bewerkt: door Marioleo69
Geplaatst:

Ik heb het gister nog even getest, en bij mij werkte het gewoon hoor... Althans, hij crashte niet, want ik kon vrij rondrijden. Heb een marker boven de auto die jij spawnde gezet, omdat ik wou kijken hoe ver het was. Iets te ver om verder te testen, aangezien ik weg moest... Mijn tip is: spawn die auto gewoon in grove street en laat hem weg rijden, want dan kan je makkelijker testen (en sneller!). Gewoon aanpassen van de coordinaten, dus.

Dit is de versie die ik gebruikt heb:

{
 use macro (Ctrl+J) "headsa"
 to insert a file header      
}
{$VERSION 3.0.0000}
var
$PLAYER_CHAR: Player
end // var 
03A4: name_thread 'MAIN' 
01F0: set_max_wanted_level_to 6 
0111: toggle_wasted_busted_check 0 
00C0: set_current_time_hours_to 8 minutes_to 0 
04E4: unknown_refresh_game_renderer_at 2488.56 -1666.84 
03CB: set_rendering_origin_at 2488.56 -1666.84 13.38 
0053: $PLAYER_CHAR = create_player #NULL at 2488.56 -1666.84 13.38 
01F5: $PLAYER_ACTOR = create_player_actor $PLAYER_CHAR 
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group 
0373: set_camera_directly_behind_player 
01B6: set_weather 0 
0001: wait 0 ms 
087B: set_player $PLAYER_CHAR clothes_texture "PLAYER_FACE" model "HEAD" body_part 1 
087B: set_player $PLAYER_CHAR clothes_texture "JEANSDENIM" model "JEANS" body_part 2 
087B: set_player $PLAYER_CHAR clothes_texture "SNEAKERBINCBLK" model "SNEAKER" body_part 3 
087B: set_player $PLAYER_CHAR clothes_texture "VEST" model "VEST" body_part 0 
070D: rebuild_player $PLAYER_CHAR 
01B4: toggle_player $PLAYER_CHAR can_move 1 
016A: fade 1 time 0 
04BB: select_interior 0 
0629: change_integer_stat 181 to 4 
016C: restart_if_wasted_at 2027.77 -1420.52 15.99 angle 137.0 town_number 0 
016D: restart_if_busted_at 1550.68 -1675.49 14.51 angle 90.0 town_number 0 
0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here 
0004: $DEFAULT_WAIT_TIME = 250
03E6: remove_text_box 

create_thread @TANKER



:MAIN_LOOP
0001: wait $DEFAULT_WAIT_TIME ms
00BF: $TIME_HOURS = current_time_hours, $TIME_MINS = current_time_minutes
0002: jump @MAIN_LOOP 

:TANKER
thread 'TANKER'
Model.Load(#PETRO)
Model.Load(#PETROTR)
03CF: load_wav 19400 as 3
038B: load_requested_models

:TANKER_LOAD
if
not Model.Available(#PETRO)
not Model.Available(#PETROTR)
83D0: not wav 3 loaded
else_jump @TANKER_SPAWN
wait 0
jump @TANKER_LOAD

:TANKER_SPAWN

4@ = 0.0
5@ = 0.0
6@ = 0.0
9@ = 0.0
7@ = 0
8@ = 0.0
10@ = 0.0
11@ = 0.0
12@ = 0.0
13@ = 0.0
14@ = 0.0
15@ = 0.0
16@ = 0.0
17@ = 0.0
18@ = 0.0
19@ = 0.0
20@ = -1

1@ = Car.Create(#PETRO, -1687.8, 537.7, 36.
Car.Angle(1@) = 137.0
0186: $m1 = create_marker_above_car 1@ 
2@ = Car.Create(#PETROTR, -1679.5, 545.9, 36.9)
Car.Angle(2@) = 137.0
0893: put_trailer 2@ on_cab 1@
053F: toggle_car 1@ tires_vulnerability 0
Car.DoorStatus(1@) = 3
0560: create_random_actor_in_car 1@ handle_as 3@
Car.ImmuneToNonPlayer(1@) = True
054A: toggle_actor 3@ immune_to_car_headshots 0
Car.SetMaxSpeed(1@, 0.0)
00AE: set_car 1@ traffic_behavior_to 2
0714: unknown_car 1@ flag 1
03C0: 21@ = actor $PLAYER_ACTOR car
0615: define_AS_pack_begin 0@
05D1: AS_actor -1 drive_car 1@ to -1914.6 -1187.7 30.0 speed 15.0 0 model #NULL 3
0616: define_AS_pack_end 0@
0618: assign_actor 3@ to_AS_pack 0@
061B: remove_references_to_AS_pack 0@
jump @TORENO2_12228

:TORENO2_12228
wait 0 ms
if
not Car.Wrecked(1@)
else_jump @TORENO2_12931
0407: store_coords_to 4@ 5@ $TEMPVAR_FLOAT_3 from_car 1@ with_offset -3.0 2.0 0.0
0407: store_coords_to 6@ 9@ $TEMPVAR_FLOAT_3 from_car 1@ with_offset 3.0 11.0 0.0
053E: 20@ = get_random_car_with_model -1 in_rectangle_cornerA 4@ 5@ cornerB 6@ 9@
if
8039: not 20@ == -1
else_jump @TORENO2_12228
if
not Car.Wrecked(20@)
else_jump @TORENO2_12931
if
803B: not 20@ == 21@ // (int)
else_jump @TORENO2_12931
7@ = Car.Health(20@)
if
7@ > 500
else_jump @TORENO2_12931
02E3: 16@ = car 1@ speed
16@ *= 0.02
02F8: get_car 1@ Z_angle_cosine_to 4@
02F9: get_car 1@ Z_angle_sine_to 5@
0087: 6@ = 5@ // (float)
9@ = -1.0
006B: 9@ *= 4@ // (float)
Car.StorePos(20@, 12@, 13@, 14@)
Car.StorePos(1@, 8@, 10@, 11@)
0063: 12@ -= 8@ // (float)
0063: 13@ -= 10@ // (float)
0087: 17@ = 6@ // (float)
006B: 17@ *= 12@ // (float)
0087: 18@ = 9@ // (float)
006B: 18@ *= 13@ // (float)
0087: 15@ = 17@ // (float)
005B: 15@ += 18@ // (float)
if
2.5 > 15@
else_jump @TORENO2_12921
if
15@ > -2.5
else_jump @TORENO2_12921
if
15@ > 0.0
else_jump @TORENO2_12615
15@ = 1.0
jump @TORENO2_12625

:TORENO2_12615
15@ = -1.0     

:TORENO2_12625
0087: 17@ = 4@ // (float)
006B: 17@ *= 16@ // (float)
0087: 18@ = 15@ // (float)
006B: 18@ *= 6@ // (float)
18@ *= 0.5
0087: 19@ = 16@ // (float)
006B: 19@ *= 18@ // (float)
0087: 8@ = 17@ // (float)
005B: 8@ += 19@ // (float)
0087: 17@ = 5@ // (float)
006B: 17@ *= 16@ // (float)
0087: 18@ = 15@ // (float)
006B: 18@ *= 9@ // (float)
18@ *= 0.5
0087: 19@ = 16@ // (float)
006B: 19@ *= 18@ // (float)
0087: 10@ = 17@ // (float)
005B: 10@ += 19@ // (float)
0087: 11@ = 16@ // (float)
11@ += 0.008
11@ *= 0.5
12@ = -1.0
006B: 12@ *= 15@ // (float)
006B: 12@ *= 6@ // (float)
006B: 12@ *= 16@ // (float)
13@ = -1.0
006B: 13@ *= 15@ // (float)
006B: 13@ *= 9@ // (float)
006B: 13@ *= 16@ // (float)
14@ = 0.0
03D1: play_wav 3
03A2: set_car 20@ action 3
07D5: set_car 20@ velocity_in_direction_XYZ 8@ 10@ 11@ rotation_velocitiesXY 12@ 13@ unk 14@
Car.Health(20@) = 499

:TORENO2_12921
054F: clear_car 20@ damage
Car.RemoveReferences(20@)
:TORENO2_12931
wait 0 ms
jump @TORENO2_12228
end_thread

Geplaatst:
Ik heb het gister nog even getest, en bij mij werkte het gewoon hoor... Althans, hij crashte niet, want ik kon vrij rondrijden. Heb een marker boven de auto die jij spawnde gezet, omdat ik wou kijken hoe ver het was. Iets te ver om verder te testen, aangezien ik weg moest... Mijn tip is: spawn die auto gewoon in grove street en laat hem weg rijden, want dan kan je makkelijker testen (en sneller!). Gewoon aanpassen van de coordinaten, dus.

Ik denk dat hij bij jouw wel werkt omdat je niet dichtgenoeg bent.

Want de auto word pas gespwant en gaat rijden als je dichter bij komt.

(Ik verplaats CJ altijd in plaats van mijn auto :7 )

Maar dan is die thread van mij nog steeds fout.

Ik heb mijn code drastisch veranderd.

NU heb ik het zo gemaakt dat de auto waar je in rijd die mogelijkheden krijgt.

Maar helaas loopt deze ook vast als ik in een auto stap.

:TANKER
thread 'TANKER' 
03CF: load_wav 19400 as 3
038B: load_requested_models 

:TANKER_LOAD
if 
83D0:   not wav 3 loaded
else_jump @TANKER_SPAWN 
wait 0 
jump @TANKER_LOAD 

:TANKER_SPAWN
wait 250
if 
0256:   player $PLAYER_CHAR defined 
004D: jump_if_false @TANKER_SPAWN 
00D6: if and
00DF:   actor $PLAYER_ACTOR driving 
847A:   not actor $PLAYER_ACTOR driving_bike 
84A7:   not actor $PLAYER_ACTOR driving_boat 
84C8:   not actor $PLAYER_ACTOR driving_flying_vehicle 
004D: jump_if_false @TANKER_SPAWN
03C0: 0@ = actor $PLAYER_ACTOR car 
00D6: if
82BF:   not car 0@ sunk 
004D: jump_if_false @TANKER_SPAWN
wait 0
jump @TANKER_NUM


:TANKER_NUM
1@ = 0.0 //120    
2@ = 0.0 //121
3@ = 0.0 //122
4@ = 0.0 //123
5@ = 0    //57
6@ = 0.0  //62
7@ = 0.0  //63
8@ = 0.0  //64
9@ = 0.0  //65
10@ = 0.0  //66
11@ = 0.0  //67
12@ = 0.0  //68
13@ = 0.0  //69
14@ = 0.0  //70
15@ = 0.0  //71
16@ = 0.0  //72 
17@ = -1
wait 250
jump @TORENO2_12228


:TORENO2_12228
if 
  not Car.Wrecked(0@)
else_jump @TORENO2_12931 
0407: store_coords_to 1@ 2@ $TEMPVAR_FLOAT_3 from_car 0@ with_offset -3.0 2.0 0.0 
0407: store_coords_to 3@ 4@ $TEMPVAR_FLOAT_3 from_car 0@ with_offset 3.0 11.0 0.0 
053E: 17@ = get_random_car_with_model -1 in_rectangle_cornerA 1@ 2@ cornerB 3@ 4@ 
if 
  not Car.Wrecked(17@)
else_jump @TORENO2_12931 
if 
84A4:   not  17@ == -1 // @ == any  //803B:   not  17@ == 36@ // (int) 
else_jump @TORENO2_12931 
5@ = Car.Health(17@)
if 
 5@ > 500 
else_jump @TORENO2_12931 
02E3: 13@ = car 0@ speed 
13@ *= 0.02 
02F8: get_car 0@ Z_angle_cosine_to 1@ 
02F9: get_car 0@ Z_angle_sine_to 2@ 
0087: 3@ = 2@ // (float) 
4@ = -1.0 
006B: 4@ *= 1@ // (float) 
Car.StorePos(17@, 9@, 10@, 11@)
Car.StorePos(0@, 6@, 7@, 8@)
0063: 9@ -= 6@ // (float) 
0063: 10@ -= 7@ // (float) 
0087: 14@ = 3@ // (float) 
006B: 14@ *= 9@ // (float) 
0087: 15@ = 4@ // (float) 
006B: 15@ *= 10@ // (float) 
0087: 12@ = 14@ // (float) 
005B: 12@ += 15@ // (float) 
if 
 2.5 > 12@ 
else_jump @TORENO2_12921 
if 
 12@ > -2.5 
else_jump @TORENO2_12921 
if 
 12@ > 0.0 
else_jump @TORENO2_12615 
12@ = 1.0 
jump @TORENO2_12625 

:TORENO2_12615
12@ = -1.0 

:TORENO2_12625
0087: 14@ = 1@ // (float) 
006B: 14@ *= 13@ // (float) 
0087: 15@ = 12@ // (float) 
006B: 15@ *= 3@ // (float) 
15@ *= 0.5 
0087: 16@ = 13@ // (float) 
006B: 16@ *= 15@ // (float) 
0087: 6@ = 14@ // (float) 
005B: 6@ += 16@ // (float) 
0087: 14@ = 2@ // (float) 
006B: 14@ *= 13@ // (float) 
0087: 15@ = 12@ // (float) 
006B: 15@ *= 4@ // (float) 
15@ *= 0.5 
0087: 16@ = 13@ // (float) 
006B: 16@ *= 15@ // (float) 
0087: 7@ = 14@ // (float) 
005B: 7@ += 16@ // (float) 
0087: 8@ = 13@ // (float) 
8@ += 0.008 
8@ *= 0.5 
9@ = -1.0 
006B: 9@ *= 12@ // (float) 
006B: 9@ *= 3@ // (float) 
006B: 9@ *= 13@ // (float) 
10@ = -1.0 
006B: 10@ *= 12@ // (float) 
006B: 10@ *= 4@ // (float) 
006B: 10@ *= 13@ // (float) 
11@ = 0.0 
03D1: play_wav 3 
03A2: set_car 17@ action 3 
07D5: set_car 17@ velocity_in_direction_XYZ 6@ 7@ 8@ rotation_velocitiesXY 9@ 10@ unk 11@ 
Car.Health(17@) = 499

:TORENO2_12921
054F: clear_car 17@ damage 
Car.RemoveReferences(17@)

:TORENO2_12931
wait 250
jump @TANKER_NUM
end_thread

Geplaatst:
Ik heb mijn code drastisch veranderd.

NU heb ik het zo gemaakt dat de auto waar je in rijd die mogelijkheden krijgt.

Maar helaas loopt deze ook vast als ik in een auto stap.

Ik denk niet dat het verstandig is, om code die nog niet werkt, drastisch te gaan uitbreiden met allerlei nieuwe functies.

Dan kun je niet echt verbaast zijn dat het weer niet werkt. En je zit nu met een stuk code die groter en complexer is dan de voorgaande waar je de fout in op moet sporen.

Mijn advies: Begin opnieuw, begin simpel. En als het werkt, voeg je iets nieuws toe.

En dan ga je ermee aan het testen tot ook dat werkt, en dan voeg je weer iets nieuws toe. En zo bouw je langzaam je mod op.

SCM modden is 10% inspiratie en idee, 20% coderen en 70% testen en debuggen. Jij laat in dit geval de moeilijkste 70% dus over aan de anderen op het forum, en maakt hun taak steeds moeilijker door de niet werkende code ook nog steeds uit te breiden met nieuwe dingen. IK hoop dat er mensen zijn die hun tijd erin willen steken, maar ik pas.

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...