Trading Card Game - Werte

  • GM 8

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

  • Trading Card Game - Werte

    Welche der folgenden Methoden würdet ihr für das Speichern der Werte in einem (Client-Server-Client) Online-TCG empfehlen?

    1. Werte sind in einem Script gespeichert und werden beim Erstellen einer Karte (Ziehen) local im Objekt gespeichert:
    Spoiler anzeigen

    GML-Quellcode

    1. //Beispielcode
    2. switch(card)
    3. {
    4. case 1:
    5. name="Feuerball"
    6. dmg=18
    7. cost=15
    8. break
    9. case 2:
    10. name="Wasserball"
    11. dmg=15
    12. cost=12
    13. break
    14. }
    Alles anzeigen


    2. Jeder Wert ist in einem seperaten Script gespeichert und wird "returnt":
    Spoiler anzeigen

    GML-Quellcode

    1. //Beispielcode
    2. switch(name)
    3. {
    4. case 1:
    5. return "Feuerball"
    6. break
    7. case 2:
    8. return "Wasserball"
    9. break
    10. }


    3. Sämtliche Karteninfos sind in einem Grid gespeichert:
    Spoiler anzeigen

    GML-Quellcode

    1. //Beispielcode
    2. cards=ds_grid_create(10,100)
    3. ds_grid_add(cards,0,0,"Feuerball")
    4. ds_grid_add(cards,1,0,18)
    5. ds_grid_add(cards,2,0,15)
    6. ds_grid_add(cards,0,1,"Eisball")
    7. ds_grid_add(cards,1,1,15)
    8. ds_grid_add(cards,2,1,12)



    Dabei geht es mir natürlich um Effizienz und das man mit so wenig Aufwand wie möglich auf diese Werte zugreifen kann. Effekte sollen dann zum Teil auch noch hinzu kommen. Sowas wie: 18dmg + 2 Runden lang 30% des Schadens.

    Was meint ihr? Welche der Methoden eignet sich dafür am besten? Oder gar eine ganz andere?


    Grüße
  • Und ds_map eignet sich hierfür am besten?

    Du musst nicht mehr ein switch Teil benutzen, sonder kannst z.B.:

    GML-Quellcode

    1. name=ds_map_find_value(global.CardMap, string(CardID)+"_Name");

    abrufen und zum zum Beispiel die Daten zu füllen kannst du:

    GML-Quellcode

    1. ds_map_add(global.CardMap, string(CardID)+"_Name", "RoflCopta");

    benutzen. (du kannst dir ja ein Skript machen, z.B. CreateCard(Name, Damage, Cost...) und dann in einem Skript die ganzen Karten erstellen))

    Im Grunde ist eine Map wie eine INI, nur ohne Sektionen.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%