Puma Geplaatst: 3 januari 2010 Rapport Geplaatst: 3 januari 2010 (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: 3 januari 2010 door Puma Reageren
Bierbuikje Geplaatst: 3 januari 2010 Rapport Geplaatst: 3 januari 2010 (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: 3 januari 2010 door Bierbuikje Reageren
Puma Geplaatst: 3 januari 2010 Auteur Rapport Geplaatst: 3 januari 2010 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? Reageren
Bierbuikje Geplaatst: 3 januari 2010 Rapport Geplaatst: 3 januari 2010 (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: 3 januari 2010 door Bierbuikje Reageren
Dutchy3010 Geplaatst: 3 januari 2010 Rapport Geplaatst: 3 januari 2010 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. Reageren
Puma Geplaatst: 5 januari 2010 Auteur Rapport Geplaatst: 5 januari 2010 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. Reageren
Recommended Posts
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.