Frage zur Gewinnauswertung

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Frage zur Gewinnauswertung

    Hallo zusammen,

    wie ihr ja wisst, bin ich gerade dabei eine VideoSlot Machine ins Leben zu rufen. Die Animation ist mir per Drag´n Drop und TimeLine sehr gut geglückt.
    Ich habe ein Sprite mit Strip 24.
    Ich habe dann einzelne Objekte daraus erstellt. Der Slot besteht aus 15 Objekten, also 3 Bilder per Slot x 5.
    Genannt habe ich die Objekte: obj_1a, obj_1b und obj1c für den ersten Slot und obj_2a, obj_2b und obj_2c für den zweiten Slot usw.
    Nun drehen diese Slots sich auch schon wunderschön, und werden sobald sie unten aus dem Bildlaufen oben wieder angesetzt, und mit einem zufälligen Bild versehen (random(24)) Das klappt alles ganz wunderbar. Nur jetzt würde ich gerne nach ende der Drehung die gewinne testen.
    Was brauche ich dazu? ich habe schon probiert ein "piece of code" einzusetzen, aber der If Befehl den ich nenne wird zwar nicht als Falsch angezeigt, aber klappt nicht.

    if obj_1a = image_index(2) and obj_2a = image_index(2)
    {
    sound_play(sound1)
    }

    kann mir einer helfen, wie ich am besten einen code entwerfe für die unterschiedlichen Reihen. Zum beispiel wenn ich die obere Reihe testen will (obj_1a, obj_2a,obj_3a)

    Vielen Dank im vorraus.

    Lieben Gruß

    Groni

    P.S. In der Suche habe ich nix gefunden, bzw kann es dann nicht interpretieren, wenn was ähnliches gefunden wurde.
  • Der Ansatz war nicht ganz falsch:

    GML-Quellcode

    1. if (obj_1a.image_index=2 and obj_2a.image_index=2)
    2. {
    3. sound_play(sound1)
    4. }


    image_index ist eine Variable, also musst du sie bei Abfragen mittels . mit dem Objekt verbinden, von dem du sie auslesen willst.

    © 2008 by Teamgrill Productions
  • Da kann man mal sehen, was ein kleiner punkt alles bewirken kann :)
    Danke schonmal dafür, aber es passiert nix, also der Sound wird nicht gespielt wenn die Symbole erscheinen.
    Muss ich diesen Code an einer bestimmten Stelle setzen? Ich habe es einfach in meiner Timeline bei der letzten drehung
    in den letzten Step gesetzt. Würde zumindest für meine Logik das Script am ende der drehung erfolgen, und checken ob
    die symbole gleich sind. Jetzt ist es ja auch noch so, das meine stript24 mehrmals ein Symbol hat, um die Wahrscheinlichkeit
    der Gewinne etwas zu erschweren. Also habe ich den Code wie folgt abgeändert, aber auch dann klappt es nicht.

    if (obj_a1.image_index=1 or obj_a1.image_index=5 or obj_a1.image_index=7 or obj_a1.image_index=11 or obj_a1.image_index=22) and obj_a2.image_index=1 or obj_a2.image_index=5 or obj_a2.image_index=7 or obj_a2.image_index=11 or obj_a2.image_index=22)
    {
    sound_play(sound1)
    }

    Aber es will nicht klappen :(

    Einfacher wäre es natürlich, wenn ich einfach nur die 8 Symbole in der Strip hätte, dann müsste der Code nicht so lang sein, aber dann taucht
    ein Symbol, welches als SpezialSymbol gelten soll, zu oft auf. Oder kann man das steuern, wie oft welches Symbol maximal pro Spin auftaucht bei Random?
  • Wie funktioniert das System denn genau? Vll kannst du auch die gmk hochladen.

    EDIT:
    Verwende irandom, dann bekommst du ganze Zahlen für image_index und es lässt sich vergleichen.
    Allerdings würde ich das System ändern, sodass nicht doppelte Bilder im sprite vorkommen.
    Du kannst ja einfach, sollte ein Bonussymbol erscheinen, welches unwahrscheinlicher ist, nocheinmal ein zufallssprite auswählen.

    © 2008 by Teamgrill Productions

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MasterXY ()

  • Hey :) Das mit irandom hat geklappt. Hab jetzt den Code nur mal auf ein Symbol angewendet, und er zeigt es an :)

    Jetzt ist nur noch die Frage, wie ich es einstellen kann, das der zufallswert bestimmte Symbole anders berechnet.
    So das ich zum Beispiel eine Liste erstelle die besagt.
    Pro Slot (obj_a1, obj_a2, obj_a3) nur
    1x irandom(0)
    2x irandom(1)
    5x irandom(7)
    usw....
    So wäre gewährleistet, dass das Spezialsymbol nur einmal pro Slot erscheint, ich also maximal 5 Spezial Symbole bekomme bei 5 Slots.

    Nochmal zur Erklärung: Als Slot bezeichne ich die Walzen. Von den Walzen habe ich 5 Stück. Und jede Walze ist in 3 Objekte unterteilt.
  • Hätte noch eine Frage zum ändern von Sprites.

    Ich würde gerne im Falle eines Gewinns die reihe die gewonnen hat, mit einer animation versehen.
    Meine Symbol datei ist "obj_a1" und soll gegen "animation1" ersetzt werden. Per Drag & Drop hab ich das hinbekommen,
    allerding klappt es nicht, auch wenn ich ein expression Symbol davorsetze mit der expression.
    würde also gerne nur den Befehl wissen, mit dem ich das angezeigte Sprite obj_a1 gegen die besagte Animation tauschen
    kann per GML.

    Danke im vorraus

    GRONI
  • nee, das klappt nicht wirklich. Dachte eher an die GML Version des D&D Objektes "Change Sprite" wo ich auswählen kann welches Sprite ersetzt werden soll, und durch welches. Aber ist auch erstmal nicht so wichtig, denn ich habe ein ganz anderes Problem jetzt.
    Dies könnte ich zwar selber lösen, aber dann wäre der Code ewig lang. Also frage ich euch hiermit, ob es da eine einfache Lösung für gibt.

    Ich habe meine Symbol Datei mit 8 Subimages (0-7). Wenn sich meine 5 Walzen nun drehen soll nach beenden ein Gewinntest gemacht werden.
    Dies habe ich mit dem Subimage 0 auch schon folgendermaßen hinbekommen.

    GML-Quellcode

    1. // Überprüft Linie 2 ( Gelb ) auf Gewinne
    2. // Erdbeere Index 0
    3. // 5er Linie ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    4. if (obj_a1.image_index=0 and obj_b1.image_index=0 and obj_c1.image_index=0 and obj_d1.image_index=0 and obj_e1.image_index=0)
    5. {
    6. line2win5=1
    7. instance_create(0,0,y5index0)// Animation starten
    8. instance_create(0,0,showborders)// Farbrahmen anzeigen
    9. sound_play(lines5) // Gewinnsound abspielen
    10. }
    11. else
    12. // 4er Linie ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    13. if (obj_a1.image_index=0 and obj_b1.image_index=0 and obj_c1.image_index=0 and obj_d1.image_index=0)
    14. {
    15. line2win4=1
    16. instance_create(0,0,y4index0)// Animation starten
    17. instance_create(0,0,showborders)// Farbrahmen anzeigen
    18. sound_play(lines4) // Gewinnsound abspielen
    19. }
    20. else
    21. // 3er Linie ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    22. if (obj_a1.image_index=0 and obj_b1.image_index=0 and obj_c1.image_index=0)
    23. {
    24. line2win3=1
    25. instance_create(0,0,y3index0)// Animation starten
    26. instance_create(0,0,showborders)// Farbrahmen anzeigen
    27. sound_play(lines3) // Gewinnsound abspielen
    28. }
    29. else
    30. // 2er Linie ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    31. if obj_a1.image_index=0 and obj_b1.image_index=0
    32. {
    33. line2win2=1
    34. instance_create(0,0,y2index0)// Animation starten
    35. instance_create(0,0,showborders)// Farbrahmen anzeigen
    36. sound_play(lines2) // Gewinnsound abspielen
    37. }
    38. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    Alles anzeigen


    Nun habe ich aber 8 Images die ich ansprechen will. Gibt es eine Methode, dass ich diesen Code benutzen kann, ohne diesen für jedes weitere Subimage neu zu schreiben??

    Danke im vorraus

    GRONI
  • Nimm diesen Code und pack ihn in eine Schleife:

    GML-Quellcode

    1. for (i=0; i<8; i+=1)
    2. {
    3. //dein code, überall statt image_index=0 - image_index=i abfragen.
    4. }

    © 2008 by Teamgrill Productions
  • Benutzer online 1

    1 Besucher