Was der Parser so alles versteht

  • So hier mal eine kleine Anleitung wie die einzelnen Dateien ausgelesen werden. Zunächst nur für die eher einfachen Kreaturen, weil es schon wieder spät geworden ist. Ich werde dann schauen, dass ich diesen Thread per Editierfunktion immer mal wieder auf den neusten Stand bringe.


    Zum besseren Verständnis:
    - Der DEFAULT-Wert ist der Wert, den die Eigenschaft erhält, wenn sie im Text keinen Wert zugewiesen bekommt.
    - Anstatt von Zahlen kann man zur besseren Übersicht bei vielen Eigenschaften bestimmte Worte benutzen. Also nicht wundern, wenn dort "Zahl als Argument" steht, aber eine Zeile drunter auch bestimmte Worte als Argument aufgeführt werden.
    - Wenn man sich die bestehenden Dateien anschaut sieht man Sektionsbeschreibungen in eckigen Klammern. Die haben keinerlei Bedeutung außer die Datei für menschliche Leser übersichtlicher zu gestalten.



    1) KREATUREN
    (Müssen sich derzeit in creatures/ befinden)
    Stand 18.12.08


    nameInterner Name für die Kreatur
    -- Text als Argument
    -- -- -- Unter diesem Namen wird die Kreatur in anderen Textdateien identifiziert
    DEFAULT: none



    imageVollständiger Name des Bildes der Kreatur
    -- Text als Argument
    -- -- -- Im Moment befinden sich alle Bilder in combat/ (zwingend)
    DEFAULT: no_pic.png



    attackAngriffswert
    -- Zahl als Argument
    DEFAULT: 0



    defenseVerteidigungswert
    -- Zahl als Argument
    DEFAULT: 0



    max_hpLebenspunkte
    -- Zahl als Argument
    DEFAULT: 1



    speedGeschwindigkeit
    -- Zahl als Argument
    DEFAULT: 0



    movement_typeFortbewegungsart
    -- Zahl als Argument
    -- "walker" für Bodentruppen (alias: walk, foot, walking, 0)
    -- "flyer" für fliegende Truppen (alias: fly, flying, 1)
    -- "teleport" für teleportierende Truppen (alias: tele, 2)
    -- -- -- entspricht im Moment 1:1 dem flyer, wird aber Unterschiede beim Animieren und beim auslösen von Minen haben
    DEFAULT: walker



    shotsSchussanzahl
    -- Zahl als Argument
    -- "unlimited", "infinite" oder negativer Wert für unendlich Schüsse
    -- -- -- Wenn anderer Wert als 0, dann zählt der Stack als Fernkämpfer
    DEFAULT: 0



    ret_strikesAnzahl der Gegenwehren
    -- Zahl als Argument
    -- "unlimited", "infinite" oder negativer Wert für unendlicher Gegenschlag
    DEFAULT: 1



    initiativeInitiative
    -- Zahl als Argument
    DEFAULT: 10



    min_dmgMinimalschaden
    -- Zahl als Argument
    DEFAULT: 0



    max_dmgMaximalschaden
    -- Zahl als Argument
    -- -- -- Verhalten nur begrenzt sinnvoll, wenn kleiner als min_dmg (stürzt z.B. ab, wenn um 1 kleiner)
    DEFAULT: 0



    manaMana
    -- Zahl als Argument
    DEFAULT: 0



    growthWachstum pro Woche
    -- Zahl als Argument
    -- -- -- Im Kampf wichtig zur Bestimmung der Zauberkraft
    DEFAULT: 1



    levelStufe
    -- Zahl als Argument
    -- -- -- Im Kampf wichtig zur Bestimmung des Schadens durch Heldenangriffe
    -- -- -- Dieser Schaden ist (im Moment) nur für Stufen 1-8 festgelegt und beträgt sonst 0
    DEFAULT: 1 (Im Moment noch 0, aber ich schreib hier schonmal den sinnvolleren Wert hin, sonst überseh ich das nachher)



    spellpowerMultiplikator für Zauberkraft
    -- Zahl als Argument
    -- -- -- Normal wird die Zauberkraft in Abhängigkeit von nur Stackgröße und Wachstum bestimmt
    -- -- -- Soll ein Stack besonders gut/schlecht Zaubern wird hiermit modifiziert
    DEFAULT: 1



    x_offVerschiebung des Bildes auf der x-Achse in Pixeln
    -- Zahl als Argument
    DEFAULT: 0



    y_offVerschiebung des Bildes auf der y-Achse in Pixeln
    -- Zahl als Argument
    DEFAULT: 0



    abilitySpezialeigenschaft/-fertigkeit
    -- Text als Argument
    -- -- -- Sollte Name einer Ability sein
    DEFAULT: keine Abilities



    Anmerkung:
    Im Moment werden Helden noch über den Kreaturenparser erstellt. Dabei sind allerdings teilweise andere Werte wichtig. So hat ein Held noch "knowledge" für sein Wissen und überschreibt damit die Angabe für mana. Auch wird bei Helden "spellpower" einfach als der absolute Wert in Zauberkraft genommen. Zu dieser Zwischenlösung werden vermutlich noch "luck" und "morale" nur für Helden hinzukommen.

  • 2) ABILITIES
    Stand 18.12.08



    nameInterner Name der ability
    -- das was man bei den Kreaturen hinter "ability" schreibt, damit sie diese Fertigkeit erhalten



    iconVollständiger Name des Bildes für die ability
    -- Text als Argument
    DEFAULT: no_pic.png



    typeWas macht die Ability? Kategorie
    -- "apply_effect" um betroffenen Kreaturen einen Zustand/effect zu verpassen
    -- "remove_effect" um betroffenen Kreaturen einen Zustand/effect wieder zu nehmen
    -- weitere Spezialfälle von Fertigkeiten:
    -- -- -- "no_melee_penalty" um Fernkämpfer von ihrem Nahkampfabzug zu befreien
    -- -- -- "sharpshooter" für unbegrenzte Reichweite beim Schießen
    -- -- -- "demonic" um Einheiten als dämonisch zu kennzeichnen
    -- -- -- "ranged_retaliation" für Gegenwehr auf Distanz
    DEFAULT: apply_effect



    timingWann wird die Fertigkeit ausgelöst?
    -- "attack" Beim Angriff
    -- "on_active" Wenn der Stack dran ist
    -- -- -- spielt keine Rolle, wenn Fertigkeit manuell ausgelöst
    DEFAULT: kein timing -> wird höchstens manuell ausgelöst



    triggerWie wird bestimmt ob die Fertigkeit ausgelöst wird
    -- "always" Wann immer das Timing stimmt
    -- "hp_based" So wie Fertigkeit, die bei H5 auch durch Soldier's Luck beeinflusst werden.
    -- "fixed_chance" Nummer von trigger_chance in Prozent
    DEFAULT: always



    trigger_chanceSiehe oben
    -- Zahl als Argument
    DEFAULT: 50



    power_typeWonach wird die der einer Fertigkeit berechnet?
    -- "spellpower" Nach der Zauberkraft - bei Stacks nach der Zauberkraft abhängig von Stackgröße wie bei H5 (Bsp.: Zauber)
    -- "stack_size" Linearer Anstieg zur Stackgröße (Bsp. Vergiften der Assassinen)
    DEFAULT: spellpower



    target Auf wen/was richtet sich die Fähigkeit?
    -- "self" Visiert automatisch sich selbst an
    -- "stack" Muss einen Stack anvisieren
    -- "area" Irgendwohin
    -- "mass" Trifft alle Kreaturenstacks
    -- "heroes" Trifft alle Helden
    DEFAULT: stack



    affected_sideWelche Spielerseite kann betroffen sein?
    -- "friend" Nur befreundete Stacks sind betroffen
    -- "foe" Nur feindliche Stacks
    -- "any" Stacks beider Seiten
    DEFAULT: any



    no_retalWenn bei einem regulären Angriff ausgelöst, verhindert sie einen Gegenschlag?
    "true" Trifft zu
    "false" Trifft nicht zu
    DEFAULT: false



    effect1Welcher effect soll übertragen/entfernt werden?
    -- Name des effects als Argument
    DEFAULT: none
    effect2-5 Gibts auch



    followup_abilityability, die direkt danach ausgelöst wird
    -- Name der ability
    DEFAULT: none



    cahrgesAnzahl der Ladungen der Fertigkeit
    -- Zahl als Argument
    -- negativer Wert für unendlich
    DEFAULT -1



    manualVom Spieler auszulösen -> erscheint im Zauberbuch
    -- "true" Trifft zu
    -- "false" Trifft nicht zu
    DEFAULT: false



    ATB_costKosten an Fortschritt in der Ini-Leiste
    -- Zahl als Argument
    -- -- 10 000 machen eine Runde aus
    DEFAULT: 0



    mana_costMenge an benötigtem Mana
    -- Zahl als Argument
    -- -- Wird auch bestimmen, ob die ability als Zauber zählt
    DEFAULT: 0



    visibleErscheint die ability in der Einheitenbeschreibung?
    -- "true" Trifft zu
    -- "false" Trifft nicht zu
    -- -- nützlich für followup_ability
    DEFAULT: true

  • 3) EFFECTS
    Stand 18.12.08



    nameInterner Name des effects
    -- Text als Argument
    -- -- Das was man bei effect1-5 bei den abilities reingeschrieben hat



    timingWann wirkt der Effekt?
    -- "on_active" Wenn der Stack dran ist
    -- "instant" Für Effekte,die einmalig wirken (z.B.: Schaden nehmen vom Feuerball)
    -- "always" Für Effekte, die über einen Zeitraum anhalten (z.B: Eigenschaftsänderungen)
    DEFAULT: none



    typeArt des effects
    -- "change_atk" Veränderung von ATK
    -- "change_def" Veränderung von DEF
    -- "change_speed" Veränderung der Geschwindigkeit
    -- "change_ini" Veränderung der Initiative
    -- "change_hp" Veränderung der maximalen Lebenspunkte (z.B.: Altern der H3 Knochendrachen)
    -- "change_atb" Veränderung des Initiativefortschritts
    -- "take_dmg" Schaden erleiden
    -- "change_mana" Veränderung des aktuellen Manas
    DEFAULT: none



    value1 oder damage1 Grundstärke des Effekts
    -- Zahl als Argument
    DEFAULT: 0



    value2 oder damage2 Stärke des Effekts abhängig von der power (siehe Abilities für Power-Typen)
    -- Zahl als Argument
    DEFAULT: 0



    change_typeWie werden value1+2 verwendet?
    -- "absolute" Werte werden unmodifiziert addiert
    -- "percentual" Werte werden als Prozent addiert
    -- "base_percentual" Werte werden auf den Grundwert prozentual addiert
    -- -- Für Abzüge einfach entsprechend negative Werte angeben
    DEFAULT: absolute



    duration1 und duration2 Dauer des Effekts - wie value1+2 in grün
    -- Zahl als Argument
    -- -- 1000 entspricht einem Zug
    DEFAULT: 1000 u. 0



    duration_typeWie wird die Dauer berechnet?
    -- "turn_based" Effekt dauert eine bestimmte Anzahl an Runden
    -- "activation_based" Bis der Effekt soundso oft vollzogen wurde
    -- -- bei einem timing von always verringert sich die Anzahl der übrigen Aktivierungen um 1, wenn der Stack an die Reihe kommt
    DEFAULT: turn_based



    cumulativeKann ein Stack mehrmals mit diesem Effekt belegt sein?
    -- "true" Geht
    -- "false" Geht nicht
    -- -- Um bei Zaubern wie Eile auch die Effekte anderer Zauberstufen zu entfernen müsste dann eine remove_effect ability verwendet werden
    DEFAULT: false



    sourceElement des Effekts
    -- "fire" Feuer
    -- "water" Wasser
    -- "earth" Erde
    -- "air" Air
    -- "physical" Physisch
    -- "pure" Direkt
    -- -- gegen pure wird es keinen Schutz und keine Resistenzen geben
    DEFAULT: pure



    source_typeWoher kommt der Effekt?
    -- "melee" Nahkampf
    -- "ranged" Fernkampf
    -- "magic" Magisch
    -- "pure" Direkt
    -- -- gegen pure wird es keinen Schutz und keine Resistenzen geben
    DEFAULT: pure