Variable löschen

XML-Variante AOQML, ihre Möglichkeiten, Ergänzungen und Entwicklung...

Moderatoren: Ratsgruppe Programmierer, A-Team

Variable löschen

Beitragvon lordhelix » Mi 16 Sep, 2020 15:13

Hey,

ich hänge seit Stunden nur an Problemen und es fängt an zu nerven, ihr kennt das sicherlich. Man möchte am liebsten irgendwas an die Wand klatschen.

Also warum funktioniert das löschen meiner Variable nicht?

Sowohl ein NULL wie auch ein direktes /> helfen nicht ...

Code: Alles auswählen
      <switch name="magie">
        <null>
           <switch name="LEP_verblieben1">       
           <case val="0">
           </case>
         
           <case min="1" max="200">
              <set name="LEP_verblieben1" inc="$[5W6]"/>
           </case>
         
           <else>
              <switch name="LEP_verblieben2">       
           <case val="0">
           </case>
         
           <case min="1" max="200">
             <set name="LEP_verblieben2" inc="$[5W6]"/>
           </case>
         
           <else>
             <switch name="LEP_verblieben3">       
           <case val="0">
           </case>
         
           <case min="1" max="200">
             <set name="LEP_verblieben3" inc="$[5W6]"/>
           </case>
         
           <else>
             Ich werde nicht ausgeführt weil alle über 200 LEP haben
           </else>
         </switch>
           </else>
         </switch>
           </else>
         </switch>
           <store name="magie" scope="scene" >1</store>
        </null>
     
        <case val="1">
           Ich bin fall 1
           <store name="magie" scope="scene" >2</store>
        </case>
     
        <case val="2">
           Ich bin der zweite Fall
           <store name="magie"/> <!-- IST IMMER FALL ZWEI, OBWOHL ES WIEDER BEI NULL LOSGEHEN SOLLTE -->

        </case>
     
        <else>
        </else>
      </switch>



Ganzer Code
Spoiler:
Code: Alles auswählen
<scene>

<set attribute="LEP" inc="200" />
<set attribute="wounds" dec="200" />

<retain name="kampf" id="kampf">
  <fight max-rounds="5">
    <rivals>
      <npc npcid="253" name="Klaue" brawl="true" LEP="${LEP_verblieben1}" wounds="${anzahl_wunden1}" npctype="daemon" AUP="100" RS="10" />
      <npc npcid="253" name="Kopf" brawl="true" LEP="${LEP_verblieben2}" wounds="${anzahl_wunden2}" npctype="daemon" AUP="100" RS="10" />
      <npc npcid="253" name="Schwanz" brawl="true" LEP="${LEP_verblieben3}" wounds="${anzahl_wunden3}" npctype="daemon" AUP="100" RS="10" />
    </rivals>
    <draw>
      <store name="LEP_verblieben1"><fetch name="rivals:#1:lep" /></store>
      <store name="LEP_verblieben2"><fetch name="rivals:#2:lep" /></store>
      <store name="LEP_verblieben3"><fetch name="rivals:#3:lep" /></store>
      <switch name="magie">
        <null>
           <switch name="LEP_verblieben1">       
           <case val="0">
           </case>
         
           <case min="1" max="200">
              <set name="LEP_verblieben1" inc="$[5W6]"/>
           </case>
         
           <else>
              <switch name="LEP_verblieben2">       
           <case val="0">
           </case>
         
           <case min="1" max="200">
             <set name="LEP_verblieben2" inc="$[5W6]"/>
           </case>
         
           <else>
             <switch name="LEP_verblieben3">       
           <case val="0">
           </case>
         
           <case min="1" max="200">
             <set name="LEP_verblieben3" inc="$[5W6]"/>
           </case>
         
           <else>
             Ich werde nicht ausgeführt weil alle über 200 LEP haben
           </else>
         </switch>
           </else>
         </switch>
           </else>
         </switch>
           <store name="magie" scope="scene" >1</store>
        </null>
     
        <case val="1">
           Ich bin fall 1
           <store name="magie" scope="scene" >2</store>
        </case>
     
        <case val="2">
           Ich bin der zweite Fall
           <store name="magie"/>
        </case>
     
        <else>
        </else>
      </switch>
      <replay name="kampf"/>
    </draw>
    <victory>
      <p>Sieg</p>
    </victory>
    <escape>
      <p>Abgehauen!</p>
    </escape>
    <defeat>
      <p>Verloren!</p>
    </defeat>
  </fight>
</retain>

<fight max-rounds="5">
  <rivals>
    <npc npcid="253" name="Klaue" brawl="true" LEP="225" npctype="daemon" AUP="100" RS="10" />
    <npc npcid="253" name="Kopf" brawl="true" LEP="225" npctype="daemon" AUP="100" RS="10" />
    <npc npcid="253" name="Schwanz" brawl="true" LEP="225" npctype="daemon" AUP="100" RS="10" />
  </rivals>
  <draw>
    <store name="LEP_verblieben1"><fetch name="rivals:#1:lep" /></store>
    <store name="LEP_verblieben2"><fetch name="rivals:#2:lep" /></store>
    <store name="LEP_verblieben3"><fetch name="rivals:#3:lep" /></store>
    <replay name="kampf"/>
  </draw>
  <victory>
    <p>Sieg</p>
  </victory>
  <escape>
    <p>Abgehauen!</p>
  </escape>
  <defeat>
    <p>Verloren!</p>
  </defeat>
</fight>

</scene>
lordhelix
Herold
Herold
 
Beiträge: 177
Registriert: So 07 Apr, 2019 22:00
Heldenname: Helix

Re: Variable löschen

Beitragvon Tommek » Mi 16 Sep, 2020 16:08

Schwierig zu testen. Wenn ich den scope auf "hero" setze und somit die Variable in der DB speichere, klappt es bei mir mit deinem Snippet.

Was versuchst du zu erreichen?
Benutzeravatar
Tommek
Site Admin
Site Admin
 
Beiträge: 7432
Registriert: Mi 17 Mai, 2006 22:40
Wohnort: Eodatia
Heldenname: Alrik Dormwald
Mitglied bei: Orkwacht

Re: Variable löschen

Beitragvon lordhelix » Mi 16 Sep, 2020 16:23

Ich möchte das in jeder Kampfunterbrechen eine von 4 Dingen ausgeführt wird in bestimmter Reihenfolge.

1. Unterbrechung - Heilen
2. Unterbrechung - GE senken
3. Unterbrechung - RS erhöhen
4. Unterbrechung - INI senken

das mache ich indem ich per switch jedesmal der Variable +1 gebe und beim nächsten aufruf wird dann entsprechden der nächste case ausgeführt.
Am Ende muss die Variable gelöscht werden um wieder bei NULL anzufangen

In meiner Quest sind es 7 Dinge und auch andere, aber als Beispiel ist dieses hier identisch vom Prozess

Mit dem scope="quest" funktioniert es auch, liegt also am scene. Danke, du hast mir den geholfen
lordhelix
Herold
Herold
 
Beiträge: 177
Registriert: So 07 Apr, 2019 22:00
Heldenname: Helix

Re: Variable löschen

Beitragvon Lowlander » Mi 16 Sep, 2020 18:32

lordhelix hat geschrieben:Mit dem scope="quest" funktioniert es auch, liegt also am scene. Danke, du hast mir den geholfen


Sieht für mich nach Bug aus, das sollte sich nicht so unterschiedlich verhalten. Ich bin mir nur nicht sicher, ob wir uns Inkompatibilitäten einfangen, wenn wir das korrigieren.
Lowlander
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 2191
Registriert: So 25 Nov, 2007 18:05
Wohnort: Hamburg + Hage/Ostfriesland
Heldenname: Markorka Faargh

Re: Variable löschen

Beitragvon Tommek » Mi 16 Sep, 2020 18:48

Das löschen wird ja bewusst gemacht. Wird sicherlich noch nicht häufig im Kontext "scene" eingesetzt.
Benutzeravatar
Tommek
Site Admin
Site Admin
 
Beiträge: 7432
Registriert: Mi 17 Mai, 2006 22:40
Wohnort: Eodatia
Heldenname: Alrik Dormwald
Mitglied bei: Orkwacht

Re: Variable löschen

Beitragvon Lowlander » Do 17 Sep, 2020 10:59

Tommek hat geschrieben:Das löschen wird ja bewusst gemacht. Wird sicherlich noch nicht häufig im Kontext "scene" eingesetzt.


Packe ich dann auf meine TODO-Liste.
Lowlander
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 2191
Registriert: So 25 Nov, 2007 18:05
Wohnort: Hamburg + Hage/Ostfriesland
Heldenname: Markorka Faargh


Zurück zu Questen, Abenteuer und Zufallsbegegnungen (inkl. AOQML)



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast