Jump to content

[VC|SCM] Threads, de basis


Wauzie

Recommended Posts

Dit is een basis van Threads maken, voordat je deze tutorial doorleest moet je al een beetje kunnen SCM-en. Hiermee bedoel ik dat je auto's/hidden packages/wapens kunnen plaatsen en een kleine ervaring hebben.

We gaan maken dat je een auto kan kopen.

Je hebt de Missionbuilder v1.3 hebben om missies te kunnen maken, verder heb je de PLAYERPOSITION tool nodig om coördinaten op te nemen uit vc.

Voordat we beginnen worden hier een aantal dingen uitgelegd:

X Y Z coordinaat Vaak zie je coördinaten staan in codes. Deze moet je halen uit vc met de Playerposition tool. Druk in vc op F4 en de coördinaat in de tool. Haal wel de komma's weg.

0001: wait 0 ms Deze code zorgt ervoor hoelang het duurt voordat de volgende regel wordt gelezen. Het is normaal om de tijd op 100 te zetten. 1000 Ms = 1 seconde.

00D6: if 0 Deze code zorgt ervoor dat in de volgende regel(s) iets gecheckt wordt. Er staat IF 0 als er een check wordt gedaan, IF 1 als er 2 worden gedaan.....enz.

004D: jump_if_false ££Label00B8E0 Deze code volgt na een IF. Als het niet klopt wat er in de IF wordt gecheckt wordt er naar een label gejumpt. Anders wordt de label uitgevoerd tenzij je eerst in een marker moet staan.

0002: jump ££Label00B720 Er wordt gejumpt naar een label. Vaak wordt deze gebruikt om de hoofdlabel telkens te herhalen zodat die telkens wordt uitgevoerd.

Allereerst zoek je naar create_thread . Je moet nu zoiets vinden:

create_thread ££Label01085A

004F: create_thread ££Label00F6B2

004F: create_thread ££Label00FA50

004F: create_thread ££Label00F893

004F: create_thread ££Label00FC0D

004F: create_thread ££Label010A41

004F: create_thread ££Label01074B

004F: create_thread ££Label010B6C

004F: create_thread ££Label010C5D

004F: create_thread ££Label010D4E

004F: create_thread ££Label010959

004F: create_thread ££Label010FA9

004F: create_thread ££Label01255A

004F: create_thread ££Label01038B

004F: create_thread ££Label01047B

004F: create_thread ££Label01056B

004F: create_thread ££Label01065B

004F: create_thread ££Label00FEB2

004F: create_thread ££Label00DEDB

004F:

Kopieer hier een regel van en geen de Label een naam:

004F: create_thread ££Labelbuy

Deze code zorgt ervoor dat VC je Thread gaat lezen. Zonder deze code gebeurt er niets.

Nu gaan we de Thread beginnen:

Stap 1:

:Labelbuy

0001: wait 100 ms   

03A4: name_thread "BUY"

ontleding:

:Labelbuy De naam van de Label, deze moet overeenkomen met de create thread code, dus LABELBUY (De 2 pond tekens worden vervangen door een dubbele punt)

0001: wait 0 ms Geeft aan hoe lang het duurt voordat VC de volgende regel gaat lezen, het is het handig om daarbij 100 in te vullen. 1000 ms is 1 echte seconde.

03A4: name_thread "BUY1" Geeft aan hoe de thread heet. Tussen de haakjes moet je een naam invullen. Deze code is niet noodzakelijk.

Stap 2:

Nu gaan we de volgende label maken. Neem 2 Enters en maak een nieuwe label: :Labelbuyload Je hoeft geen jumps te maken want de main leest gewoon door.

:Labelbuy

0001: wait 0 ms   

03A4: name_thread "BUY"

:labelbuyload

03BC: $3F = create_sphere -1734.270 -1708.423 13.887  5.0

0247: request_model #DELUXO

038B: load_requested_models

Ontleding:

03BC: $3F = create_sphere -1734.270 -1708.423 13.887 5.0 Er wordt nu een sphere gemaakt; een rondje waarin je kan gaan staan. $3F = de naam van de sphere.

0247: request_model #DELUXO Hier wordt aangegeven welke models VC straks nodig heeft, deze stap is niet noodzakelijk maar vc zal minder snel vastlopen.

0038B: load_requested_models Nu gaat VC de models die nodig zijn laden (DELUXO)

Stap 3:

We gaan nu de laatste label maken.

:Labelbuy

0001: wait 0 ms   

03A4: name_thread "BUY"

:labelbuyload

03BC: $3F = create_sphere -1734.270 -1708.423 13.887  5.0

0247: request_model #DELUXO

038B: load_requested_models

:Labelbuy2 

0001: wait 0 ms

00d6: if 0

00e3: player $PLAYER_CHAR 0 ()near_point -1734.270 -1708.423 radius 1.0 1.0

004d: jump_if_false ££Labelbuy2

00D6: if  0

010A:  player $PLAYER_CHAR money >  2500

004d: jump_if_false ££Labelbuy2

0109: player $PLAYER_CHAR money += -2500 

00A5: $10 = create_car #DELUXO at -1724.941 -1707.464 14.387

0175: set_car $10 z_angle_to  0.0

0001: wait 5000 ms

0002: jump ££Labelbuy2

Ontleding:

00d6: if 0 VC gaat nu iets checken. Wat hij gaat checken staat in de volgende regel.

00e3: player $PLAYER_CHAR 0 ()near_point -1734.270 -1708.423 radius 1.0 1.0 De IF 0 die in de vorige regel stond gaat checken of deze regel klopt, hij gaat checken of De player (tommy) in de buurt van de coördinaat is. Erna zie je staan RADIUS 1.0 1.0. Dit geeft de grote van het gebied rond de coördinaat aan. 2.0 is normaal.

004d: jump_if_false ££Labelbuy2 Deze regel wordt ingeschakeld als de regel die hierboven staat niet klopt; Tommy is niet in de buurt van de coördinaat. Er wordt verwezen naar de label: ££Labelbuy2 (de dubbele punt wordt vervangen door 2 pond tekens). Nu gaat VC weer lezen vanaf :Labelbuy2, pas als klopt wat in de IF 0 staat, gaat hij de volgende regel lezen.

Nu komt er weer een IF 0; oftewel een nieuwe check. Er staat: 010A: player $PLAYER_CHAR money > 2500. Hierin wordt gecheckt of dat de player genoeg geld heeft, als het ware staat er: heeft de player meer geld dan 2500. Zoniet gaat hij weer terug naar het begin van de label (door de JUMP_IF_FALSE code).

0109: player $PLAYER_CHAR money += -2500 Nu gaan we over tot actie: er wordt 2500 geld van de Player afgetrokken.

00A5: $10 = create_car #DELUXO at -1724.941 -1707.464 14.387 Er wordt een auto gemaakt. De auto verschijnt op de coördinaat. $10 = de autonaam.

0175: set_car $10 z_angle_to 0.0 Deze regel geeft de draaihoek van de auto aan. Als je goed kijkt zie je dat er verwezen wordt naar de car $10

0001: wait 5000 ms Er wordt weer een wait geplaatst. Deze moet hoog zijn want anders wordt er gelijk weer een auto neergezet als je geld genoeg hebt, er moet genoeg tijd zijn om uit de marker te komen.

0002: jump ££Labelbuy2 Nu jumpt VC weer terug naar het begin van de label. Dit zorgt ervoor dat je nog een keer de auto kan kopen. Als je wilt dat je maar 1 keer een auto kan kopen vervang je deze regel door:

004E: end_thread
Er wordt voor gezorgd dat de Thread uitgeschakeld wordt.

Nu is de Thread af en je kan door in een marker te gaan staan een car kopen. Binnenkort kan er een vervolg komen. Stel vragen in een ander forum.

Druk op F7 en alles wordt opgeslagen. Als er geen foutmeldingen worden gemeld kan je het gaan testen in vc.

Bewerkt: door Wauzie
Link to comment
Delen op andere websites

  • 4 years later...

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