XML-Werte in LUA aufrufen

  • Moin!
    Ich suche eine Möglichkeit die einzelnen Werte (von einem bestimmten Tag) aus der economy.xml in einer LUA anzugeben.
    Es scheitert immer daran, das ganze abhängig von einem bestimmten Tag zu machen. Ziel ist es immer die Werte vom vorigen Tag auszulesen, um diese anschließend verwenden zu können. ?(

    Hier mal ein kleiner Auszug der gewünschten Werte (makiert):
    - für currentDay = 2 wären das diese


    [expander]
    <economy>
    <financeStatsHistory>
    <financeStats day="0">
    <newVehiclesCost>0</newVehiclesCost>
    <soldVehicles>0</soldVehicles>
    <newAnimalsCost>0</newAnimalsCost>
    <soldAnimals>0</soldAnimals>
    <constructionCost>0</constructionCost>
    <soldBuildings>0</soldBuildings>
    <fieldPurchase>0</fieldPurchase>
    </financeStats>
    <financeStats day="1">
    <newVehiclesCost>-10</newVehiclesCost>
    <soldVehicles>0</soldVehicles>
    <newAnimalsCost>-10</newAnimalsCost>
    <soldAnimals>0</soldAnimals>
    <constructionCost>-10</constructionCost>
    <soldBuildings>0</soldBuildings>
    <fieldPurchase>-10</fieldPurchase>
    </financeStats>
    </financeStatsHistory>
    </economy>
    [/expander]
    Hoffe ihr könnt mir bei einem Ansatz helfen!

  • Nunja, wenn die Einträge chronologisch geordnet sind, müsstest du doch einfach nur mit currentDay-1 drauf zugreifen

    Code
    local key = string.format("economy.financeStatsHistory.financeStats.key(%d)", currentDay-1);
    local vehicleCost = getXMLFloat(xmlFile, key.."#newVehiclesCost");


    Ansonsten mit einer Schleife durch iterieren und das day-Attribut mit dem currentDay-1 vergleichen. Bei Erfolg hast du den passenden Eintrag auch gefunden :)

  • Dank der Hilfe von Silas770 kann ich hier nun die Lösung aufzeigen, um die financeStats-Werte im Script vom Vortag aufzurufen.


    local yesterday = g_currentMission.enviroment.currentDay - 1
    local yesterdayStats = g_currentMission.missionStats.financeStatsHistory[yesterday].statName

    Für statName muss dann der jeweilige Parameter eingetragen werden (z.B. soldWood)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!