Jump to content

Om de zoveel tijd geld geven en tegelijk de hele tijd checken


Recommended Posts

Geplaatst: (bewerkt)

In de tussentijd kwam ik op een idee voor een ander leuk script. Wat het precies is zien jullie later wel, als het af is.

Wat ik wil:

  • Om de 5 seconden krijg je geld;
  • Tegelijk wordt er de hele tijd gechecked of je een bepaalde toets indrukt.

Dit wil ik, omdat het "geld geven" moet stoppen als je op de knop gedrukt hebt. Als ik een script maak waarbij je eerst geld krijgt, er dan gechecked wordt of je een knop indrukt en er vervolgens 5 seconden gewacht wordt, is er maar een hele kleine kans dat je de knop indrukt op precies hetzelfde moment dat er gechecked wordt.

Is er een betere manier om bovenstaand te scripten dan eerst 5000 keer te checken (elke milliseconde dus) of de speler de knop indrukt, vervolgens geld te geven en daarna weer te jumpen naar het begin, zodat het geheel 5 seconden lang duurt en toch oneindig vaak wordt afgespeeld tot de knop wordt ingedrukt?

Bewerkt: door Puma
Geplaatst: (bewerkt)

:Timer // Label
1@ = 0 // Timer

:Geldgeven // Label
wait 1 // Wacht 1 milliseconde
1@ += 1 // 1 erbij voor elke milliseconde gewacht.
if // Als
   1@ == 5000 // Totaal dus 5000 milliseconden (5 seconden)
jf @Geldgeven // Zo niet -> Toetst_Gedrukt
Player.Money($PLAYER_CHAR) += 1000 // Geldbedrag dat erbij komt (kan je veranderen)
1@ = 0 // Timer terugzetten

:Toets_Gedrukt // Label
wait 0 // Wacht
if // Als
0AB0:  key_pressed 65 // A getoetst (kan je veranderen)
jf @Geldgeven // Zo niet -> terug.
// Vervolg

Dit zal moeten werken, elke 5 seconden een X bedrag erbij, de uitleg staat erachter.

Bewerkt: door Bierbuikje
Geplaatst:

Bedankt! Ik heb 't geïntegreerd in m'n script en het ziet er als volgt uit:

{$CLEO .cs}

:script_sayz_hai
jump @check_if_he_presses_teh_keyz

:check_if_he_presses_teh_keyz
wait 0
if
0AB0: key_pressed 45
jf @check_if_he_presses_teh_keyz
jump @is_teh_dude_on_footz

:is_teh_dude_on_footz
wait 0
if 
044B: actor $PLAYER_ACTOR on_foot 
jump @give_him_teh_money1
wait 4000
jf @check_if_he_presses_teh_keyz

:give_him_teh_money1
1@ = 0
jump @give_him_teh_money2

:give_him_teh_money2
wait 1
1@ += 1
if
0AB0: key_pressed 45
jump @teh_dude_quitz_teh_dancing
if
1@ == 5000
jump @give_him_teh_money3
jf @teh_dude_quitz_teh_dancing 

:give_him_teh_money3
Player.Money($PLAYER_CHAR) += 5
jump @give_him_teh_money1

:teh_dude_quitz_teh_dancing
wait 5000
jump @check_if_he_presses_teh_keyz

0A93: end_custom_thread

Alleen werkt 't niet: ik krijg er geen geld bij om de 5 seconden. Enig idee wat 't probleem is?

Geplaatst: (bewerkt)

{$CLEO .cs}

:script_sayz_hai
jump @check_if_he_presses_teh_keyz

:check_if_he_presses_teh_keyz
wait 0
if
0AB0: key_pressed 45
jf @check_if_he_presses_teh_keyz // Gaat goed
jump @is_teh_dude_on_footz // Gaat goed

:is_teh_dude_on_footz
wait 0
if 
044B: actor $PLAYER_ACTOR on_foot 
jump @give_him_teh_money1 // Wat er ook gebeurd, hij gaat hier naar @give_him_teh_money1
wait 4000
jf @check_if_he_presses_teh_keyz

:give_him_teh_money1
1@ = 0
jump @give_him_teh_money2

:give_him_teh_money2
wait 1
1@ += 1
if
0AB0: key_pressed 45
jump @teh_dude_quitz_teh_dancing // Wat er ook gebeurd, hij gaat hier naar @teh_dude_quitz_teh_dancing
if
1@ == 5000
jump @give_him_teh_money3 // Wat er ook gebeurd, hij gaat hier naar @give_him_teh_money3
jf @teh_dude_quitz_teh_dancing 

:give_him_teh_money3
Player.Money($PLAYER_CHAR) += 5
jump @give_him_teh_money1

:teh_dude_quitz_teh_dancing
wait 5000
jump @check_if_he_presses_teh_keyz

0A93: end_custom_thread

Je zult die moeten veranderen, eerst komt de 'jf @' en dan pas de 'jump @'. De 'jf @' (zo niet dan) neemt hij alleen maar als iets niet gebeurt en de 'jump @' doet hij altijd, mocht het script erlangs komen.

Bewerkt: door Bierbuikje
Geplaatst:

Nog even een tip. Als je een jump gebruikt naar het label er precies onder, is dat nutteloos. Je kunt die ook gewoon leeg laten, of zelfs het label weglaten, als je vanuit geen andere plek ernaartoe springt natuurlijk. Dus bijvoorbeeld dit:

jump @Label

:Label
...

Dan kan je dus sowieso die eerste jump weglaten. De thread wordt niet afgesloten, noch wordt er gejumpt naar een andere plaats, dus de code komt daar sowieso. Je script wordt daardoor wel een stuk overzichtelijker.

Geplaatst:

Ok... Ik heb wat stukjes weggelaten omdat ik dacht dat dat toch niet nodig was. Nu heb ik dit:

{$CLEO .cs}

:script_sayz_hai
jump @check_if_he_presses_teh_keyz

:check_if_he_presses_teh_keyz
wait 0
if
0AB0: key_pressed 45
jf @check_if_he_presses_teh_keyz 

:is_teh_dude_on_footz
wait 0
if 
044B: actor $PLAYER_ACTOR on_foot 
jf @check_if_he_presses_teh_keyz 

:give_him_teh_money1_1
wait 4000

:give_him_teh_money1_2
1@ = 0

:give_him_teh_money2
wait 1
1@ += 1
if
0AB0: key_pressed 45
jf @give_him_teh_money_2_2	
jump @teh_dude_quitz_teh_dancing

:give_him_teh_money_2_2
if
1@ == 5000
jf @give_him_teh_money2 
jump @give_him_teh_money3

:give_him_teh_money3
Player.Money($PLAYER_ACTOR) += 10
jump @give_him_teh_money1_2

:teh_dude_quitz_teh_dancing
wait 1000
jump @check_if_he_presses_teh_keyz

0A93: end_custom_thread

Toch werkt 't nog steeds niet (je krijgt geen geld om de 5 seconden). Ik heb 't scrip al weet-ik-veel-hoe-veel keer door gekeken, maar ik kan echt niks vinden. Nu ga ik wat stukjes tekst invoegen, om te kijken waar de fout zit.

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