Jump to content

Status Balk


Recommended Posts

Geplaatst:

Goedemiddag iedereen,

Ik ben bezig met het proberen te maken van een status balk. De balk geeft de health van een voertuig weer. Maar met deze tutorial lukt het niet. Het is alleen een stuk code en verder moet je het maar zelf uitzoeken. :cab:

Iemand enig idee hoe je zo'n status balk precies in elkaar zet?

Alvast bedankt, RD :cya:

Geplaatst:

Wtf, dat was helemaal uitgelegd. :bonk: Dat is echt heel raar, misschien gekomen toen ik alles kopieerde naar een andere post of zo. Deze tutorial heb ik namelijk helemaal vertaald in het Engels, en daar staat hij wel helemaal uitgelegd. Die tutorial kan je hier vinden. Als je er dan nog niet uitkomt, hoor ik het vanzelf. :)

Geplaatst:

Wtf, dat was helemaal uitgelegd. :bonk: Dat is echt heel raar, misschien gekomen toen ik alles kopieerde naar een andere post of zo. Deze tutorial heb ik namelijk helemaal vertaald in het Engels, en daar staat hij wel helemaal uitgelegd. Die tutorial kan je hier vinden. Als je er dan nog niet uitkomt, hoor ik het vanzelf. :)

Ik heb de tutorial gelezen en codes gekopieerd en variables aangepast. Nu heb ik dit:

:MAVBOSSBALK
repeat
wait 0 ms
$health = Car.Health($MAVBOSS)
0084: $health2 = $health // integer values and handles
if
$health2 > 250 // integer values
else_jump @HEALTH1
$health2 -= 250 // integer values

:HEALTH1
$health2 /= 12 // integer values
0151: remove_status_text $health2
03C4: set_status_text_to $health2 1 'HEALTH1'  // CAR HEALTH 
until  $health < 250
0151: remove_status_text $health2

Maar er gebeurt niks in-game, geen crash, geen balkje, niets. :?

Misschien is het iets met de thread, maar waarom zou ik een thread midden in mijn script nodig hebben?

Geplaatst:

Het probleem zit hem in deze:

0151: remove_status_text $health2
03C4: set_status_text_to $health2 1 'HEALTH1'  // CAR HEALTH 

In de eerste opcode zit het echte probleem, waarom je niets ziet. Je zet in principe elke keer de status uit, en aangezien die code oneindig vaak herhaald wordt zie je in feiten niets. Als je die weg haalt, werkt het als het goed is wel.

Daarbij komt dat de tweede opcode niet zo werkt dat je hem de hele tijd opnieuw moet doen als de variabele veranderd. De opcode zorgt er juist voor dat iedere keer dat de variabele veranderd (in dit geval dus $health2), dat ding ook mee veranderd. Tot het moment dat je opcode 0151 gebruikt. Je kunt deze opcode dus ook voor de lus zetten, en na de lus opcode 0151. Dat staat een stuk overzichtelijker.

Geplaatst:

Het probleem zit hem in deze:

0151: remove_status_text $health2
03C4: set_status_text_to $health2 1 'HEALTH1'  // CAR HEALTH 

In de eerste opcode zit het echte probleem, waarom je niets ziet. Je zet in principe elke keer de status uit, en aangezien die code oneindig vaak herhaald wordt zie je in feiten niets. Als je die weg haalt, werkt het als het goed is wel.

Daarbij komt dat de tweede opcode niet zo werkt dat je hem de hele tijd opnieuw moet doen als de variabele veranderd. De opcode zorgt er juist voor dat iedere keer dat de variabele veranderd (in dit geval dus $health2), dat ding ook mee veranderd. Tot het moment dat je opcode 0151 gebruikt. Je kunt deze opcode dus ook voor de lus zetten, en na de lus opcode 0151. Dat staat een stuk overzichtelijker.

Bedankt het werkt nu. Maar dan nog een ding.

Het stukje script van de balk staat nu aan het einde van mijn missie, maar ondertussen de balk er staat wil ik dat mijn voertuig ook nog dingen doet. Zoals rondrijden. Maar dit gaat nogal moeilijk aangezien het stukje script telkens word herhaald.

Geplaatst: (bewerkt)

Ik volg het niet helemaal, sorry. Kan je iets specifieker zeggen hoe je wat wil doen?

Oke, dit is het script nu:

02A3: enable_widescreen 0 
02EB: restore_camera_with_jumpcut 
Car.Health($MAVBOSS) = 2750
wait 500
fade 1 1000
wait 1100

:MAVBOSSBALK
03C4: set_status_text_to $health2 1 'HEALTH1'  // CAR HEALTH 
repeat
wait 0 ms
$health = Car.Health($MAVBOSS)
0084: $health2 = $health // integer values and handles
if
$health2 > 250 // integer values
else_jump @HEALTH1
$health2 -= 250 // integer values

:HEALTH1
$health2 /= 10 // integer values
until  $health < 250
0151: remove_status_text $health2

Je ziet dat net voor het gedeelte dat de statusbalk word gemaakt nog codes staan. Die codes behoren tot het geheel van een missie. Nu wil ik dat $MAVBOSS, het voertuig, iets doet zoals rondrijden o.i.d totdat health 0 is. Maar dit kan niet omdat het stukje van de statusbalk zich steeds herhaald, dus kan ik ook niets extra's neerzetten.

In het kort: Ik wil dat mijn voertuig van de statusbalk iets kan doen ondertussen het statusbalk script zich herhaald.

Begrijpt ge?

Bewerkt: door Revolution-Designer
Geplaatst:

Dan geef je hem van tevoren toch iets mee? Bijvoorbeeld met behulp van een scm path. Je kunt uiteraard ook gewoon heel de structuur anders maken, dit is maar een voorbeeld structuur met repeat-wait-until, je kan hiervan natuurlijk ook een if-jf of if-then-end maken.

Probeer eens iets, als het niet lukt kan je de code altijd nog hier plaatsen. :)

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