Jump to content
Geplaatst:
comment_247164

UNDER CONSTRUCTION!!!

Ik heb besloten een tutorial te maken over (mission)coding omdat er bijna geen zijn en al helemaal weinig nederlandse (en voor mijn eigen plezier ;) )

Benodigde tools:

SA PC Mission Builder v0.33

GTA SA Place Manager

Kladblok

Ervaring met SA Place Manager

Geduld ;)

Inhoudsopgave & gebruik

Inhoudsopgave:

Tutorial

--Stap 1: Voorbereiding & Backups

--Stap 2: Decompileren

--Stap 3: Het echte werk

----Stap 3a: Het plaatsen van een auto

----Stap 3b: Wapens plaatsen

----Stap 3c: Het plaatsen van een pickup

----Stap 3d: Variabeles

----Stap 3e: Markers/spheres

----Stap 3f: Labels

----Stap 3g: IF's

----Stap 3h: Threads

--Stap 4: Compileren en in het spel zetten

--Stap 5: Testen

--TROUBLESHOOTING

Skateboard spawnen in SA

--Stap 1: Configuratiebestanden aanpassen

--Stap 2: Het maken van een pickup

Objectnamen

--Voertuigen

--Wapens

Gebruik: je moet de eerste 2 stappen doen, maar je kunt best als je een ding uit stap 3a-3g hebt gedaan, verder gaan naar stap 4 & 5 (ik zou 3a wel doen, veel uitleg ;) )

Tip: zoek je een opcode? Er staan een heleboel in de bestanden OPCODES.TXT, FINDOPC.TXT en FINDOPC2.TXT in de map van de MB

Stap 1: Voorbereiding & Backups

Voordat je aan de slag gaat adviseer(doen!!) ik je om je DATA map van SA en je savegames te backupen

Unzip de Mission Builder in een map waar jij wilt

Kopieer de bestanden peds.ide, vehicles.ide en default.ide uit de DATA map van SA naar de map waarin de Mission Builder is geunzipped

Open het bestand SASCM.INI in de MB map (met kladblok of met de MB zelf) en voeg deze twee regels toe (aan het eind):

:JGS1
0001: wait 100 ms
03A4: name_thread 'PANC_1'
0005: $2000 = 40.30668
0005: $2001 = 20.28515
0005: $2002 = 14.26602

:JGS1_0
02A7: $2003 = create_icon_marker_and_sphere  34 at  $2000 $2001 $2002
0004: $eiland_m1_on = 1

:JGS1_2
0001: wait 100 ms
00D6: if 0
0038:    $ON_MISSION == 0
004D: jump_if_false ££JGS1_5
00D6: if 1
0038:    $ON_MISSION == 0
0038:    $eiland_m1_on == 0
004D: jump_if_false ££JGS1_3
02A7: $2003 = create_icon_marker_and_sphere  34 at  $2000 $2001 $2002
0004: $eiland_m1_on = 1

:JGS1_3
00D6: if 0
0256:    player $PLAYER_CHAR defined
004D: jump ££JGS1_2   
00D6: if 0
00FF:    actor $PLAYER_ACTOR 0 ()near_point_on_foot $2000 $2001 $2002 radius 3.0 3.0 2.0
004D: jump_if_false ££JGS1_2
00D6: if 0
03EE:   player $PLAYER_CHAR controllable
004D: jump_if_false ££JGS1_2
0164: disable_marker $2003
0004: $eiland_m1_on = 0
00BA: text_styled 'JGS_M1'  1500 ms  2
0050: gosub ££PANCCAM
0417: start_mission 3

:JGS1_4
0001: wait 0 ms
00D6: if 0
0038:    $m_135_tried == 1
004D: jump_if_false ££JGS1_4
0004: $m_135_tried = 0
00D6: if 0
0038:    $m_135_done == 1
004D: jump_if_false ££JGS1_2
00BE: text_clear_all 
03E6: remove_text_box
01E3: text_1number_styled 'M_PASS'  1000  5000 ms  1
0318: set_latest_mission_passed 'PANCA_1'
030C: set_mission_points +=  1
0394: play_music  1
01BD: $184 = current_time_in_ms 
0109: player $PLAYER_CHAR money +=  1000
0110: clear_player $PLAYER_CHAR wanted_level
004E: end_thread

:JGS1_5
00D6: if 0
0038:    $eiland_m1_on == 1
004D: jump_if_false ££JGS1_2
0164: disable_marker $2003
0004: $eiland_m1_on = 0
0002: jump ££JGS1_2   

:PANCCAM
0002: jump ££PANCCAM5

:PANCCAM1
0169: set_fade_color  0  0  0
016A: fade  0 ()  500 ms

:PANCCAM2
00D6: if  0
016B:   fading
004D: jump_if_false ££PANCCAM3
0001: wait  0 ms
00BE: text_clear_all
03E6: remove_text_box
0002: jump ££PANCCAM2

:PANCCAM3
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££PANCCAM4
016A: fade  0 ()  0 ms
02EB: restore_camera_with_jumpcut
0687: $PLAYER_ACTOR 
016A: fade  0 ()  0 ms

:PANCCAM4
0051: return

:PANCCAM5
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££PANCCAM6
03E6: remove_text_box
01B4: set_player $PLAYER_CHAR frozen_state  0 (frozen)
0050: gosub ££PANCCAM1

:PANCCAM6
0051: return

Ik gebruik altijd die thread (met een paar kleine aanpassinkjes natuurlijk). Kijkt en leert zou ik zeggen.

(Als je de hele thread of grote stukken ervan hebt gebruikt in je eigen mod, zou je dan zo vriendelijk willen zijn om mij bij de thanks ofzo te zetten.)

Stap 4: Compileren en in het spel zetten

Ga naar Run --> Compile en wees geduldig. Je kunt de status aflezen in de titelbalk

Hij geeft een melding dat hij klaar is.

Ga nu naar de map waarin je hem hebt laten decompileren. Daar staan nu de bestanden MAIN.SCM en SCRIPTS.IMG in. Kopieer deze bestanden naar de GTA-map\DATA\Scripts.

Stap 5: Testen

Dit is ongetwijfeld het makkelijkste deel. Maar let op je kunt je oude savegames niet meer gebruiken (hiervoor heb je een backup gemaakt, weet je nog?). Ga naar de plek waar hij zou moeten staan en kijk of dat het geval is.

Bij mij wel (er zit een raar blokje in de radar, maar dat is een ander experiment van mij):

s29vv.th.jpg

Ik hoop dat deze tut nuttig was voor je.

Als je nog vragen/opmerkingen/suggesties ofzo hebt, post dat hier of PM me

TROUBLESHOOTING:

V: Als ik compileer dan krijg ik een foutmelding over mijn #CHEETAH

A: Check de spelling, of kijk of er iets mis is met vehicles.ide

V: Als ik compileer dan krijg ik een foutmelding over Parameter 4 not set

A: Je hebt waarschijnlijk kommas ingevuld, waar punten moeten staan (in de coordinaten)

V: Als ik compileer dan krijg ik een foutmelding over DEFINE MEMORY

A: Pas DEFINE MEMORY (staat op de 4e regel) aan tot de in de foutmelding aangegeven waarde. (Het mag ook hoger zijn)

V: In de MB kan hij INITIAL_1 niet vinden

A: Zet je tekstcursor bovenaan en probeer het opnieuw

V: Ik krijg "Opcode out of range: 3004h address: 0000AC6h" bij het decompileren.

A: Je hebt SASCM.INI niet aangepast

Laatst geupdate op:

Bewerkt: door JGuntherS

  • Reacties 70
  • Bezichtigingen 27.5k
  • Created
  • Laatste reactie

Top Posters In This Topic

Featured Replies

Geplaatst:
comment_606434
Hoe bedoel je? Dat je alle normale missies in 1 keer hebt uitgespeeld? Daarvor moet je de missie-variabeles aanpassen. Variabeles zoals $CATALINA_MISSIONS_PASSED. En je moet de missiepunten helemaal vol maken.

Wat bedoel je met ''Je moet de missie punten helemaal vol maken'' want ik heb dit opgezocht maar ik snap niet wat je bedoelt me '' missie punten vol maken''

hoe moet ik bijvoorbeeld als ik hem opstart, dat ik bij het 3de eiland ben en alle missies daarvoor al heb uitgespeeld?

alvast bedankt ;)

Geplaatst:
  • Auteur
comment_606547

Hoe bedoel je? Dat je alle normale missies in 1 keer hebt uitgespeeld? Daarvor moet je de missie-variabeles aanpassen. Variabeles zoals $CATALINA_MISSIONS_PASSED. En je moet de missiepunten helemaal vol maken.

Wat bedoel je met ''Je moet de missie punten helemaal vol maken'' want ik heb dit opgezocht maar ik snap niet wat je bedoelt me '' missie punten vol maken''

hoe moet ik bijvoorbeeld als ik hem opstart, dat ik bij het 3de eiland ben en alle missies daarvoor al heb uitgespeeld?

alvast bedankt ;)

Je moet een paar variabelen instellen op een hoge waarde, zoals $CATALINA_MISSIONS_PASSED, en je moet de missiepunten op het maximum zetten (dat maximum staat ergens aan het begin van het script als het goed is), en dat doe je met de opcode "030C" ;). Ik denk trouwens dat een 100%-savegame meer iets voor je is.

Geplaatst:
comment_607606

Hoe bedoel je? Dat je alle normale missies in 1 keer hebt uitgespeeld? Daarvor moet je de missie-variabeles aanpassen. Variabeles zoals $CATALINA_MISSIONS_PASSED. En je moet de missiepunten helemaal vol maken.

Wat bedoel je met ''Je moet de missie punten helemaal vol maken'' want ik heb dit opgezocht maar ik snap niet wat je bedoelt me '' missie punten vol maken''

hoe moet ik bijvoorbeeld als ik hem opstart, dat ik bij het 3de eiland ben en alle missies daarvoor al heb uitgespeeld?

alvast bedankt ;)

Je moet een paar variabelen instellen op een hoge waarde, zoals $CATALINA_MISSIONS_PASSED, en je moet de missiepunten op het maximum zetten (dat maximum staat ergens aan het begin van het script als het goed is), en dat doe je met de opcode "030C" ;). Ik denk trouwens dat een 100%-savegame meer iets voor je is.

oke ik zal het proberen (een 100% savegame is niks voor me ik verander namelijk steeds me main.scm)

(misschien een goed idee... maak een tut over dit)

Geplaatst:
  • Auteur
comment_607846
(misschien een goed idee... maak een tut over dit)

Even offtopic:

Het heeft niet erg veel zin om een tutorial hierover te maken, aangezien het niet erg veel zin heeft om de missies erin te laten terwijl je ze toch in het begin al "gehaald" hebt, dan kun je beter een gestripte main.scm gebruiken ;).

Geplaatst:
comment_609253

(misschien een goed idee... maak een tut over dit)

Even offtopic:

Het heeft niet erg veel zin om een tutorial hierover te maken, aangezien het niet erg veel zin heeft om de missies erin te laten terwijl je ze toch in het begin al "gehaald" hebt, dan kun je beter een gestripte main.scm gebruiken ;).

maar als je SA speelt en er gaat wat fout (tijdens het saven zoals bij mij) kan je je save game niet meer openen en dan is het wel handig om in je main.scm te veranderen dat je de missies tot het 3e eiland of so al gedaan hebt. dan hoef je niet opnieuw tot daar uit gaan spele

Hoe bedoel je? Dat je alle normale missies in 1 keer hebt uitgespeeld? Daarvor moet je de missie-variabeles aanpassen. Variabeles zoals $CATALINA_MISSIONS_PASSED. En je moet de missiepunten helemaal vol maken.

Wat bedoel je met ''Je moet de missie punten helemaal vol maken'' want ik heb dit opgezocht maar ik snap niet wat je bedoelt me '' missie punten vol maken''

hoe moet ik bijvoorbeeld als ik hem opstart, dat ik bij het 3de eiland ben en alle missies daarvoor al heb uitgespeeld?

alvast bedankt ;)

Je moet een paar variabelen instellen op een hoge waarde, zoals $CATALINA_MISSIONS_PASSED, en je moet de missiepunten op het maximum zetten (dat maximum staat ergens aan het begin van het script als het goed is), en dat doe je met de opcode "030C" ;). Ik denk trouwens dat een 100%-savegame meer iets voor je is.

hmmm snap het nog steeds niet egt waar je dan die hogere waarden moet neerzetten(zoals: $CATALINA_MISSIONS_PASSED)?? en dat maximum van de missiepunten kan ik niet vinden....

(ik zal wel weer verkeerd zitten te kijken)

>>> Door Dutchy3010: Dubbelpost samengevoegd ;).<<<

Geplaatst:
  • Auteur
comment_609328

Boven in main.scm staat dit:

//-------------MAIN---------------
thread 'MAIN' 
fade 0 0 
042C: set_total_missions_to 147 
030D: set_total_mission_points_to 187

Hier kun je dus zien dat het totale aantal missiepunten 187 is, dus dan zet je ergens in het begin van je script (wel na 030D):

030C: set_mission_points += 187

Verder moet je nog alle eilanden vrijmaken, vervang daartoe deze regel:

0629: change_stat 181 to 0

door

0629: change_stat 181 to 4

En verder staan door de SCM verspreid variabeletoekenningen zoals deze:

$TOTAL_PASSED_CESARS_MISSIONS = 0

en

$FLAG_RACE_TOURNAMENT = 0

Bij de variabelen met een naam beginnend met $TOTAL_ moet je de 0 vervangen door een hoge waarde, 999 ofzoiets, en bij de variabelen met een naam beginnend met $FLAG_ moet je de 0 vervangen door een 1.

Ik garandeer niks, ik hoop dat dit voor je werkt, je bent er wel lang zoet mee in elk geval vrees ik...

Geplaatst:
comment_611840
Boven in main.scm staat dit:

//-------------MAIN---------------
thread 'MAIN' 
fade 0 0 
042C: set_total_missions_to 147 
030D: set_total_mission_points_to 187

Hier kun je dus zien dat het totale aantal missiepunten 187 is, dus dan zet je ergens in het begin van je script (wel na 030D):

030C: set_mission_points += 187

Verder moet je nog alle eilanden vrijmaken, vervang daartoe deze regel:

0629: change_stat 181 to 0

door

0629: change_stat 181 to 4

En verder staan door de SCM verspreid variabeletoekenningen zoals deze:

$TOTAL_PASSED_CESARS_MISSIONS = 0

en

$FLAG_RACE_TOURNAMENT = 0

Bij de variabelen met een naam beginnend met $TOTAL_ moet je de 0 vervangen door een hoge waarde, 999 ofzoiets, en bij de variabelen met een naam beginnend met $FLAG_ moet je de 0 vervangen door een 1.

Ik garandeer niks, ik hoop dat dit voor je werkt, je bent er wel lang zoet mee in elk geval vrees ik...

lol oke ik zal het proberen als het me is gelukt zal ik het wel zeggen ( als het niet lukt ook :))

hmm ik kan niet vinde waar 0629: change_stat 181 to 4 staat. komt dat door me noob mode??

$TOTAL_PASSED_CESARS_MISSIONS = 0 en deze $FLAG_RACE_TOURNAMENT = 0 kan ik niet vinden...

staan er geen cijfers voor??

Zijn dit die je met 999 moet vol maken??

0018: $INTRO_MISSIONS_PASSED > 0 ;; integer values

001A: 2 > $SWEETS_MISSIONS_PASSED ;; integer values

Bewerkt: door Michael Hilgen

Geplaatst:
  • Auteur
comment_611911
hmm ik kan niet vinde waar 0629: change_stat 181 to 4 staat. komt dat door me noob mode??

Zoek op 0629, werkt altijd.

$TOTAL_PASSED_CESARS_MISSIONS = 0 en deze $FLAG_RACE_TOURNAMENT = 0 kan ik niet vinden...

staan er geen cijfers voor??

Als je Mission Builder gebruikt staat er 0004 voor. Het kan zijn dat ze in MB anders heten, ik heb Sanny Builder gebruikt

Zijn dit die je met 999 moet vol maken??

0018: $INTRO_MISSIONS_PASSED > 0 ;; integer values

001A: 2 > $SWEETS_MISSIONS_PASSED ;; integer values

Ja, die variabelen moet je volmaken ja, niet op die regels (dat zijn geen variabeletoekeningen, variabeletoekeningen hebben opcode 0004 (ints) of 0005 (floats)), maar op een regel waar 0004 voor staat (variabeletoekenning)

Geplaatst:
comment_612352

hmm ik kan niet vinde waar 0629: change_stat 181 to 4 staat. komt dat door me noob mode??

Zoek op 0629, werkt altijd.

$TOTAL_PASSED_CESARS_MISSIONS = 0 en deze $FLAG_RACE_TOURNAMENT = 0 kan ik niet vinden...

staan er geen cijfers voor??

Als je Mission Builder gebruikt staat er 0004 voor. Het kan zijn dat ze in MB anders heten, ik heb Sanny Builder gebruikt

Zijn dit die je met 999 moet vol maken??

0018: $INTRO_MISSIONS_PASSED > 0 ;; integer values

001A: 2 > $SWEETS_MISSIONS_PASSED ;; integer values

Ja, die variabelen moet je volmaken ja, niet op die regels (dat zijn geen variabeletoekeningen, variabeletoekeningen hebben opcode 0004 (ints) of 0005 (floats)), maar op een regel waar 0004 voor staat (variabeletoekenning)

oke ik zal het weer proberen:)

Ik download Sanny Builder wel (MB werkt toch al niet zo goed)

Hoe heten deze dan in $TOTAL_PASSED_CESARS_MISSIONS = 0 en $FLAG_RACE_TOURNAMENT = 0

in Mission Builder??

Want op 0004 kom ik alleen dese tegen 0004: $ON_MISSION = 1 ;; integer values

Zijn het deze : 0004: $CESAR_2_MISSIONS_PASSED = 5 ;; integer values

(deze kom ik heel vaak tegen)

0004: $INTRO_MISSIONS_PASSED = 0 ;; integer values

0004: $SWEETS_MISSIONS_PASSED = 0 ;; integer values

0004: $CRASH_MISSIONS_PASSED = 0 ;; integer values

0004: $SMOKES_MISSIONS_PASSED = 0 ;; integer values

0004: $STRAP_MISSIONS_PASSED = 0 ;; integer values

0004: $RYDERS_MISSIONS_PASSED = 0 ;; integer values

0004: $CESAR_1_MISSIONS_PASSED = 0 ;; integer values

0004: $LS_FINAL_MISSIONS_PASSED = 0 ;; integer values

Of zijn het deze???

Bewerkt: door Michael Hilgen

Geplaatst:
  • Auteur
comment_612454
Zijn het deze : 0004: $CESAR_2_MISSIONS_PASSED = 5 ;; integer values

(deze kom ik heel vaak tegen)

0004: $INTRO_MISSIONS_PASSED = 0 ;; integer values

0004: $SWEETS_MISSIONS_PASSED = 0 ;; integer values

0004: $CRASH_MISSIONS_PASSED = 0 ;; integer values

0004: $SMOKES_MISSIONS_PASSED = 0 ;; integer values

0004: $STRAP_MISSIONS_PASSED = 0 ;; integer values

0004: $RYDERS_MISSIONS_PASSED = 0 ;; integer values

0004: $CESAR_1_MISSIONS_PASSED = 0 ;; integer values

0004: $LS_FINAL_MISSIONS_PASSED = 0 ;; integer values

Of zijn het deze???

Beide denk ik, alle dingen met _PASSED zijn denk ik degenen die je op 999 moet zetten, alhoewel je niet kunt zien welke flags zijn (die moet je op 1 zetten), maar misschien zitten die daar niet tussen.

Geplaatst:
comment_613067

Zijn het deze : 0004: $CESAR_2_MISSIONS_PASSED = 5 ;; integer values

(deze kom ik heel vaak tegen)

0004: $INTRO_MISSIONS_PASSED = 0 ;; integer values

0004: $SWEETS_MISSIONS_PASSED = 0 ;; integer values

0004: $CRASH_MISSIONS_PASSED = 0 ;; integer values

0004: $SMOKES_MISSIONS_PASSED = 0 ;; integer values

0004: $STRAP_MISSIONS_PASSED = 0 ;; integer values

0004: $RYDERS_MISSIONS_PASSED = 0 ;; integer values

0004: $CESAR_1_MISSIONS_PASSED = 0 ;; integer values

0004: $LS_FINAL_MISSIONS_PASSED = 0 ;; integer values

Of zijn het deze???

Beide denk ik, alle dingen met _PASSED zijn denk ik degenen die je op 999 moet zetten, alhoewel je niet kunt zien welke flags zijn (die moet je op 1 zetten), maar misschien zitten die daar niet tussen.

Deze kan ik niet vinden... $FLAG_RACE_TOURNAMENT = 0 dus ik weet het niet meer... heb heel me main uitgezocht maar heb je deze $FLAG_RACE_TOURNAMENT = 0 dan wel gevonde?

Geplaatst:
  • Auteur
comment_613071
Deze kan ik niet vinden... $FLAG_RACE_TOURNAMENT = 0 dus ik weet het niet meer... heb heel me main uitgezocht maar heb je deze $FLAG_RACE_TOURNAMENT = 0 dan wel gevonde?

Ja, ik heb hem gevonden in een main.txt gedecompileerd door Sanny Builder.

Geplaatst:
comment_613194

Deze kan ik niet vinden... $FLAG_RACE_TOURNAMENT = 0 dus ik weet het niet meer... heb heel me main uitgezocht maar heb je deze $FLAG_RACE_TOURNAMENT = 0 dan wel gevonde?

Ja, ik heb hem gevonden in een main.txt gedecompileerd door Sanny Builder.

Ik heb Sanny Builder nu ook maar ik vind hem nog steeds niet...

Heb ik hem helemaal niet of so???

ik snap er niets van....

Me Sanny Builder loopt steeds vast als ik me main.scm probeer te decompile... wat kan de oorzaak zijn..(hij geeft steeds een fout melding en dan loopt tie vast...)

Ik heb me SA opnieuw geinstalleerd en niks mee gedaan gewoon gelijk me main.scm gedecompileerd me sanny builder maar kan nog steeds die regels niet vinden...

Ik denk dat ik ze heb gevonde... $SWEET_TOTAL_PASSED_MISSIONS == << deze staan door heel me main heen deze ongeveer 10 × of meer van iedereen moet ik die vol maken met 999?? zo dus $SWEET_TOTAL_PASSED_MISSIONS == 999 ????

En zijn dit die flag missions : $ONMISSION_PARAMEDIC == 0 // integer values ???

Moet ik dese 030C: set_mission_points += 1 ook vol maken naar 187

Bewerkt: door Michael Hilgen

  • 1 maand later...
Geplaatst:
  • Auteur
comment_656310

Waarschijnlijk heb je een stukje code per ongeluk verwijderd, het makkelijkste is om main.scm opnieuw te decompileren en je aanpassingen in het nieuwe gedecompileerde bestand te zetten.

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

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.