Teile einer variable verändern

  • Teile einer variable verändern

    Sers erstmal

    Habe folgendes Problem
    Ich progge oder versuche ein RPG zu proggen! Bei den Items habe ich ein objekt dass heist "item".
    Dat objekt ist eine art Database
    in der steht sowas z.B.:

    GML-Quellcode

    1. head1_name = "Light Mail-Helmet"
    2. head1_spr = spr_head1
    3. head1_armor = 2
    4. head1_dmg = 0
    5. wpn1_dmg = 3


    Das alles auch noch mit head2 usw.
    Nun will ich bei dem objekt obj_head welches immer die grafik des gerade angelegten Kopfteiles (head) anzeigt.
    Der aktuelle Code sieht so aus mit welchem ich durch das Get_integer die Itemnummer angeben sollte und dann sich die einzelnden variablen zu den die einzelnden werte die in dem "item" objekt drinnen stehen ändert!

    GML-Quellcode

    1. itemnr = get_integer( "Itemnummer eingeben:", 1) // Nur vorrübergehend get_integeger, wird später verändert
    2. armor = variable_global_get("items.head1"+ string(itemnr) +"_armor")
    3. dmg = variable_global_get("items.head1"+ string(itemnr) +"_dmg")
    4. sprite_index = variable_global_get("items.head1"+ string(itemnr) +"_spr")
    5. name = variable_local_get("items.head1"+ string(itemnr) +"_name")


    Nur dabei passiert garnichts
    Woran liegt dat? Wer die komplette gm6 datei braucht soll mich im ICQ oder per PM anschreiben, ich schikc dann nen uploadlink!

    HELP ME :P

    KosaR`
    mööp
  • Das sind keine globalen Variablen, das sind lokale. Du musst die also mit variable_local_get abfragen.
    Um das ganze auf das Objekt items zu beziehen, muss der Code in einem with Statement stehen, wobei das aktuelle Objekt dann zu other wird. Sieht in etwa so aus:

    GML-Quellcode

    1. with (items){
    2. itemnr = get_integer( "Itemnummer eingeben:", 1) // Nur vorrübergehend get_integeger, wird später verändert
    3. other.armor = variable_local_get("head1"+ string(itemnr) +"_armor")
    4. other.dmg = variable_local_get("head1"+ string(itemnr) +"_dmg")
    5. other.sprite_index = variable_local_get("head1"+ string(itemnr) +"_spr")
    6. other.name = variable_local_get("head1"+ string(itemnr) +"_name")
    7. }


    Generell seien dir zur Verwaltung eines Inventars aber eher ein Array oder die Datenstruktur Map ans Herz gelegt.
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • jo erstmal danke windapple für die antwort :P
    aber es geht immer noch nicht (irgendwie)
    Ich habs grad mal hochgeladen:
    -->Download<--

    achja, die itemnamen hab ich mal schnell so nicht-Grammatisch ins englisch per google übersetzt also *duck* nich hauen ;)

    KosaR
    mööp
  • So, hier mal eine Liste der Fehler, die ich beseitigt habe:

    • Code von global auf local umgestellt.
    • Den Objekten die Sprites zugewiesen (wenn sie keine Sprites haben, was soll man dann sehen können?).
    • Den Code repariert, denn du hast zwei mal ne Zahl drin. Beispielsweise würde aus "head1"+ string(itemnr) head11, was nicht korrekt ist.
    • Das dreifache Aufrufen des Skriptes gelöscht, einmal reicht.
    Dateien
    • rpg.zip

      (3,82 kB, 114 mal heruntergeladen, zuletzt: )
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum