Jump to content

[SA-SannyBuilder] Marker verschijnt niet


Recommended Posts

Geplaatst:

Hallo iedereen,

Ik probeer een missie(tje) te maken, waarin je in een auto moet stappen, en dan weer ergens anders heen moet rijden. Het probleem is, dat de destination-marker niet verschijnt.

Mijn code:

{
 use macro (Ctrl+J) "headsa"
 to insert a file header	  
}

DEFINE MISSIONS 2
DEFINE MISSION 0 AT @INITIAL
DEFINE MISSION 1 AT @SF_MISSION_1
DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script
DEFINE UNKNOWN_EMPTY_SEGMENT 0
DEFINE UNKNOWN_THREADS_MEMORY 0


{$VERSION 3.0.0000}

var
$PLAYER_CHAR: Player
$MARKER_CJ: Marker
$marker_car: Marker
$marker_dest: Marker
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 -1767.60 862.37 
03CB: set_rendering_origin_at -1767.60 862.37 24.88 
0053: $PLAYER_CHAR = create_player #NULL at -1767.60 862.37 24.88
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
Actor.Angle($PLAYER_ACTOR) = 180
start_mission 0
wait 0 ms
// put your create_thread commands here
create_thread @SF_MISSION_CHECK

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


// put your mods (threads) here
:SF_MISSION_CHECK
thread "CHECKER"
$MARKER_CJ = Marker.CreateIconAndSphere(15, $X_BPB_MRK, $Y_BPB_MRK, $Z_BPB_MRK)
repeat
wait 0 ms
if and
	Player.Defined($PLAYER_CHAR)
	$ONMISSION == 0
then
	if and
		00FF:   actor $PLAYER_ACTOR sphere 0 in_sphere $X_BPB_MRK $Y_BPB_MRK $Z_BPB_MRK radius 1.0 1.0 2.0 on_foot  
		Player.Controllable($PLAYER_CHAR)
	then
		$ONMISSION = 1
		00BA: show_text_styled GXT 'INTRO_1' time 1000 style 2
		start_mission 1
	end
end   
until $SF_MISSIONS_PASSED == 1
Marker.Disable($MARKER_CJ)
end_thread

//-------------Mission 0---------------
:INITIAL
$SF_MISSIONS_PASSED = 0
$ONMISSION = 0

$X_BPB_MRK = -1757.7087 
$Y_BPB_MRK = 862.8126 
$Z_BPB_MRK = 24.8828

$X_DRUGLAB = -2141.2966
$Y_DRUGLAB = -135.5773
$Z_DRUGLAB = 36.1033
// 0629: change_integer_stat 225 to 999 

end_thread
// put your missions here

// mission 1: welcome
:SF_MISSION_1
thread 'MISSION 1'
gosub @SF_MISSION1_MAIN
if wasted_or_busted
then   
gosub @SF_MISSION1_FAIL
end
gosub @SF_MISSION1_CLEANUP
end_thread

:SF_MISSION1_MAIN
//0729: AS_actor $PLAYER_ACTOR hold_cellphone 1
// TODO: add text 
Model.Load(#BULLET)
038B: load_requested_models

:SF_MISSION1_LOAD
wait 0 ms
if and						   
Model.Available(#BULLET)
jf @SF_MISSION1_LOAD
$car = Car.Create(#BULLET, -1689.3564, 1052.9912, 17.5859)
Car.Angle($car) = 90
$marker_car = Marker.CreateAboveCar($car)
Marker.SetColor($marker_car, 3)

repeat
wait 0 ms
until Actor.InCar($PLAYER_ACTOR, $car)

Marker.Disable($marker_car)
01E3: show_text_1number_styled GXT 'M_PASS' number 10000 time 5000 style 1 // MISSION PASSED!~n~~w~$~1~
$marker_dest = Marker.CreateIconAndSphere(0, $X_DRUGLAB, $Y_DRUGLAB, $Z_DRUGLAB)
//10@ = Marker.CreateIconAndSphere(0, $X_BPB_MRK, $Y_BPB_MRK, $Z_BPB_MRK)
repeat
wait 0 ms

if Car.Wrecked($car)
then 
	jump @SF_MISSION1_FAIL
end

{	if
	not Actor.InCar($PLAYER_ACTOR, $car)
then
	$marker_car = Marker.CreateAboveCar($car)
end

if
	Actor.InCar($PLAYER_ACTOR, $car)
then
	Marker.Disable($marker_car)
end}
until 01AE: car $car sphere 0 near_point $X_DRUGLAB $Y_DRUGLAB radius 5.0 5.0 stopped 

:SF_MISSION1_PASSED
0394: play_music 1
$SF_MISSIONS_PASSED += 1
01E3: show_text_1number_styled GXT 'M_PASS' number 100 time 5000 style 1 // MISSION PASSED!~n~~w~$~1~
Player.Money($PLAYER_CHAR) += 100
return

:SF_MISSION1_CLEANUP
$ONMISSION = 0
#BULLET.Destroy()
Marker.Disable($marker_car)
Marker.Disable($marker_dest)
return

:SF_MISSION1_FAIL
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1  // ~r~MISSION FAILED!
Car.Health($car) = 0 
return 

//-------------External script 0---------------
// put your external scripts here

Het probleem is nu dat de marker bij

$marker_dest = Marker.CreateIconAndSphere(0, $X_DRUGLAB, $Y_DRUGLAB, $Z_DRUGLAB)

nergens verschijnt. De 'mission passed'-debugmelding van voor deze regel code werkt, en als ik mijn auto in de betreffende coordinaten rijd werkt de rest van de code ook.

Dit is verder mijn tweede (okee, derde, als je de niet-MISSION-structuur-scripts meetelt) SCM-stukje, en aardig gebaseerd op de tutorials.

Wie kan mij helpen met het probleem? Verder heb ik ook al geprobeerd een lokale variabele te gebruiken voor de marker, wat ook niet werkt. Ik vermoed verder dat het probleem deels ligt aan dat ik binnen een missie een marker aanmaak, maar dat zou toch normaal moeten werken?

-- Bas

Geplaatst:

Zowel de sphere verschijnt niet (maar werkt wel, de repeat-loop doet dus wel wat) als de icon op de minimap/radar. Een andere icon-type dan 0 is ook al geprobeerd, maar werkt ook niet. Verder geeft de legenda in de MAP-optie in het menu ook geen ander iets aan dan 'PLAYER POSITION'.

Geplaatst:
$marker_dest = Marker.CreateIconAndSphere(0, $X_DRUGLAB, $Y_DRUGLAB, $Z_DRUGLAB)

Volgens mij wordt deze opcode alleen buiten een missie gebruikt. Je moet daarom deze opcode gebruiken:

02A8: $marker_dest = create_marker 0 at $X_DRUGLAB, $Y_DRUGLAB, $Z_DRUGLAB

Hiermee krijg je overigens alleen de marker, dus je moet het in combinatie doen met een sphere. Die kun je spawnen met deze opcode:

03BC: $sphere_dest = create_sphere_at $X_DRUGLAB, $Y_DRUGLAB, $Z_DRUGLAB radius 5.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...