gibt es die Formel .... ???

Hier können sich alle gegenseitig helfen beim erstellen eines Spiels

Moderator: Agatho

gibt es die Formel .... ???

Beitragvon SpiderPOH » 13.12.2004, 11:40

Ich habe gerade alle Formel funktionen auf der wiki seite durchforstet aber ich vermisse eine funktion deshalb meine Frage ob es diese ev. gibt und nur vergessen wurde aufzuschreiben ???

[Rxx.MAX] = Max. Lagerkapazität der Resource mit ID xx

gibt es auch

[Uxx.MAX] = Max. Bestand der Einheit mit ID xx ?????

oder gibt es da nur

[Uxx.ACT] = Aktueller Bestand der Einheit mit ID xx ???


und gibt es ev. auch die Funktion RAND(x,y) ?? für einen zufallswert zwischen x und y ???
SpiderPOH
Einäugiger Foren-Bettler
Einäugiger Foren-Bettler
 
Beiträge: 100
Registriert: 29.09.2004, 08:34
Wohnort: FFM

Beitragvon Joey » 13.12.2004, 13:25

-- kann gelöscht werden ---
Zuletzt geändert von Joey am 13.12.2004, 19:08, insgesamt 1-mal geändert.
Joey
Talkänguruh
Talkänguruh
 
Beiträge: 203
Registriert: 29.01.2004, 20:11
Wohnort: Rostock

Beitragvon Firak » 13.12.2004, 18:57

SpiderPOH schrieb:
> gibt es auch [Uxx.MAX] = Max. Bestand der Einheit mit ID xx ?????

Nein.

> und gibt es ev. auch die Funktion RAND(x,y) ??

Ebenfalls nicht.

Die Liste im Wiki ist meines Wissens vollständig.
Night falls and the foul are abroad...
Firak
Halbgott des Schattens
Halbgott des Schattens
 
Beiträge: 169
Registriert: 28.01.2004, 14:35
Wohnort: Osnabrück

Beitragvon SpiderPOH » 13.12.2004, 21:39

Firak hat geschrieben:SpiderPOH schrieb:
> gibt es auch [Uxx.MAX] = Max. Bestand der Einheit mit ID xx ?????

Nein.

> und gibt es ev. auch die Funktion RAND(x,y) ??

Ebenfalls nicht.

Die Liste im Wiki ist meines Wissens vollständig.


hmm shit, denn dann habe ich da ein problem das ich nicht zulösen vermag

ich möchte gerne das mit jeder gebauten Einheit sich die Baudauer und die kosten erhöhen
Im mom. sieht das bei mir wiefolgt aus

Code: Alles auswählen
<ProductionCost>
        <ResourceProductionCost resourceID="0">10*[U0.ACT]</ResourceProductionCost>
      </ProductionCost>
      <ProductionTimeFunction>10+[U0.ACT]/[B7.ACT]</ProductionTimeFunction>


Leider hat das ganze einen schönheitsfehler denn wenn ich nun z.b. 100 Einheiten habe beträgt der nahrungsverbrauch 1000 für jede weiter einheit und die Produktionszeit liegt bei 110min. / Ausbaulevel von Gebäude 7.
Soweit so gut ich habe nun das phänomen wenn ich alle 100 Einheit losschicke z.b. um irgendwo anzugreiffen beträgt die Bauzeit nun wieder nur 10min. /Ausbaulevel von Geb.7 und der Nahrungsverbrauch ist auch wieder nur 10.
Soll heißen er weiss nixmehr von seinen total 100 Einheiten sondern er nimmt immernur den momentanen bestand im Camp, gibts da ne lösung für auser feste Bauzeiten ??

und noch was wenn ich versuche mit Klammern zu arbeiten bekomme ich beim Make fehelrmeldungen

z.b.
Code: Alles auswählen
<ProductionTimeFunction>30+(([B1.ACT]*[S0.ACT])*(3.1415*[B4.ACT]))/GREATEST(1,[S2.ACT])</ProductionTimeFunction>


Ich bekomme dann beim make fehler wie

Code: Alles auswählen
ticker/game_rules.c:3306: error: (near initialization for `unit_type_list[11].base.base.base.name')
ticker/game_rules.c:3311: error: initializer element is not constant
ticker/game_rules.c:3311: error: (near initialization for `unit_type_list[11].base.base.base.description')
ticker/game_rules.c:3315: error: initializer element is not constant
ticker/game_rules.c:3315: error: (near initialization for `unit_type_list[11].base.base.base')
ticker/game_rules.c:3332: error: initializer element is not constant
ticker/game_rules.c:3332: error: (near initialization for `unit_type_list[11].base.base.resourceProductionCost')
ticker/game_rules.c:3342: error: initializer element is not constant
ticker/game_rules.c:3342: error: (near initialization for `unit_type_list[11].base.base.buildingDepList')
ticker/game_rules.c:3351: error: initializer element is not constant
ticker/game_rules.c:3351: error: (near initialization for `unit_type_list[11].base.base.maxBuildingDepList')
ticker/game_rules.c:3357: error: initializer element is not constant
ticker/game_rules.c:3357: error: (near initialization for `unit_type_list[11].base.base.scienceDepList')
ticker/game_rules.c:3362: error: initializer element is not constant
ticker/game_rules.c:3362: error: (near initialization for `unit_type_list[11].base.base.maxScienceDepList')
ticker/game_rules.c:3364: error: initializer element is not constant
ticker/game_rules.c:3364: error: (near initialization for `unit_type_list[11].base.base')
ticker/game_rules.c:3374: error: parse error before '[' token
ticker/game_rules.c:3375: error: initializer element is not constant
ticker/game_rules.c:3375: error: (near initialization for `unit_type_list[11].base')
ticker/game_rules.c:3386: error: parse error before '[' token
ticker/game_rules.c:3388: error: field name not in record or union initializer
ticker/game_rules.c:3388: error: (near initialization for `unit_type_list[11]')
ticker/game_rules.c:3388: error: parse error before '[' token
ticker/game_rules.c:3389: error: initializer element is not constant
ticker/game_rules.c:3389: error: (near initialization for `unit_type_list[11]')
make[1]: *** [ticker/game_rules.o] Fehler 1
make[1]: Leaving directory `/tmp2/ugaagga/src'
make: *** [all] Fehler 2
SpiderPOH
Einäugiger Foren-Bettler
Einäugiger Foren-Bettler
 
Beiträge: 100
Registriert: 29.09.2004, 08:34
Wohnort: FFM

Beitragvon Agatho » 13.12.2004, 23:50

öhm nochmal deutlich: es geht nicht!
Agatho
Sourcenoob Tröster
Sourcenoob Tröster
 
Beiträge: 132
Registriert: 29.01.2004, 02:59
Wohnort: Mayence

Beitragvon SpiderPOH » 14.12.2004, 09:26

Agatho hat geschrieben:öhm nochmal deutlich: es geht nicht!


Also auch keine ( ) ??

hmm, :(

naja, dann muss ich mir was anderes überlegen :(
SpiderPOH
Einäugiger Foren-Bettler
Einäugiger Foren-Bettler
 
Beiträge: 100
Registriert: 29.09.2004, 08:34
Wohnort: FFM

Beitragvon Agatho » 14.12.2004, 10:37

klammern gehen schon :) man muss sie nur richtig einsetzen ;)
Agatho
Sourcenoob Tröster
Sourcenoob Tröster
 
Beiträge: 132
Registriert: 29.01.2004, 02:59
Wohnort: Mayence

Beitragvon Firak » 14.12.2004, 11:26

SpiderPOH schrieb:
> Soll heißen er weiss nixmehr von seinen total 100 Einheiten sondern er nimmt immer
> nur den momentanen bestand im Camp, gibts da ne lösung für auser feste Bauzeiten ??

Nein, so etwas ist derzeit einfach nicht vorgesehen, Einheiten sind ja nun mal nicht an eine Höhle gebunden. Es bleiben also wohl nur (diesbezueglich) feste Bauzeiten.

> und noch was wenn ich versuche mit Klammern zu arbeiten bekomme ich beim Make
> fehelrmeldungen

Das sieht nach einem Syntax-Fehler in den Regeln aus. Klammern funktionieren schon wie man es erwartet, und Dein Beispiel scheint auch ok zu sein. Daher würde ich vermuten, daß Du an einer anderen Stelle einen Fehler eingebaut hast (bei der Unit mit der ID 11).

PS: Schau einfach mal in Zeile 3306 in die erzeugte Datei "ticker/game_rules.c"...
Night falls and the foul are abroad...
Firak
Halbgott des Schattens
Halbgott des Schattens
 
Beiträge: 169
Registriert: 28.01.2004, 14:35
Wohnort: Osnabrück

Beitragvon SpiderPOH » 14.12.2004, 15:14

hmmm, ich finde da keinen Fehler ! :sur:

hier mal ein auszug aus meiner Einrichtungs.xml Datei

Code: Alles auswählen
    <Unit dbfield="unit_spaeher">
      <UnitID>11</UnitID>
      <Name>Späher</Name>
      <Name lang="en_US">Scouts</Name>
      <Description><p>Der Späher ist die Verbesserte Version des Spions. Diese Einheit ist bekannt durch seine extrem gute Spionagequalität.</p>
      </Description>
      <Description lang="en_US">
        <p>NotAvail.</p>
      </Description>
      <Position>11</Position>
      <ProductionCost>
        <ResourceProductionCost resourceID="0">750</ResourceProductionCost>
        <ResourceProductionCost resourceID="2">430</ResourceProductionCost>
        <ResourceProductionCost resourceID="5">500</ResourceProductionCost>
        <ResourceProductionCost resourceID="6">250</ResourceProductionCost>
      </ProductionCost>
      <ProductionTimeFunction>60+(5*([B12.ACT]/[B7.ACT]-[S6.ACT]))</ProductionTimeFunction>
      <MeleeDamage>2.95</MeleeDamage>
      <RangedDamage>1.95</RangedDamage>
      <StructuralDamage>1.85</StructuralDamage>
      <MeleeDamageResistance>2.25</MeleeDamageResistance>
      <RangedDamageResistance>1.50</RangedDamageResistance>
      <Size>2.9</Size>
      <Visible>0</Visible>
      <Velocity>3.45</Velocity>
      <SpyValue>5</SpyValue>
      <SpyChance>3.70+([S6.ACT]/2)</SpyChance>
      <SpyQuality>3.50+([S6.ACT]/2)</SpyQuality>
      <AntiSpyChance>3.50+([S6.ACT]/2)</AntiSpyChance>
      <BuildingDep buildingID="7" min="15" max="-1"></BuildingDep>
      <BuildingDep buildingID="11" min="13" max="-1"></BuildingDep>
      <BuildingDep buildingID="12" min="5" max="-1"></BuildingDep>
      <ScienceDep scienceID="6" min="12" max="-1"></ScienceDep>
    </Unit>
  </UnitTypes>



nun die Fehlermeldung vom make für die Unit 11

Code: Alles auswählen
ticker/game_rules.c:3306: error: initializer element is not constant
ticker/game_rules.c:3306: error: (near initialization for `unit_type_list[11].base.base.base.name')
ticker/game_rules.c:3311: error: initializer element is not constant
ticker/game_rules.c:3311: error: (near initialization for `unit_type_list[11].base.base.base.description')
ticker/game_rules.c:3315: error: initializer element is not constant
ticker/game_rules.c:3315: error: (near initialization for `unit_type_list[11].base.base.base')
ticker/game_rules.c:3332: error: initializer element is not constant
ticker/game_rules.c:3332: error: (near initialization for `unit_type_list[11].base.base.resourceProductionCost')
ticker/game_rules.c:3342: error: initializer element is not constant
ticker/game_rules.c:3342: error: (near initialization for `unit_type_list[11].base.base.buildingDepList')
ticker/game_rules.c:3351: error: initializer element is not constant
ticker/game_rules.c:3351: error: (near initialization for `unit_type_list[11].base.base.maxBuildingDepList')
ticker/game_rules.c:3357: error: initializer element is not constant
ticker/game_rules.c:3357: error: (near initialization for `unit_type_list[11].base.base.scienceDepList')
ticker/game_rules.c:3362: error: initializer element is not constant
ticker/game_rules.c:3362: error: (near initialization for `unit_type_list[11].base.base.maxScienceDepList')
ticker/game_rules.c:3364: error: initializer element is not constant
ticker/game_rules.c:3364: error: (near initialization for `unit_type_list[11].base.base')
ticker/game_rules.c:3374: error: parse error before '[' token
ticker/game_rules.c:3375: error: initializer element is not constant
ticker/game_rules.c:3375: error: (near initialization for `unit_type_list[11].base.antiSpyChance')
ticker/game_rules.c:3375: error: initializer element is not constant
ticker/game_rules.c:3375: error: (near initialization for `unit_type_list[11].base')
ticker/game_rules.c:3386: error: parse error before '[' token
ticker/game_rules.c:3386: error: initializer element is not constant
ticker/game_rules.c:3386: error: (near initialization for `unit_type_list[11].spyChance')
ticker/game_rules.c:3388: error: parse error before '[' token
ticker/game_rules.c:3389: error: initializer element is not constant
ticker/game_rules.c:3389: error: (near initialization for `unit_type_list[11].spyQuality')
ticker/game_rules.c:3389: error: initializer element is not constant
ticker/game_rules.c:3389: error: (near initialization for `unit_type_list[11]')
make[1]: *** [ticker/game_rules.o] Fehler 1
make[1]: Leaving directory `/tmp2/ugaagga/src'
make: *** [all] Fehler 2


und hier der Auszug aus der game_rules.c
Code: Alles auswählen
  { /* Sp&auml;her */
    {
      {
        {
          .object_id   = 11,
          .name        = {
          [LOCALE_de_DE] = "Sp&auml;her",

          [LOCALE_en_US] = "Scouts",
        },
          .description = {
          [LOCALE_de_DE] = "<p>Der Sp&auml;her ist die Verbesserte Version des Spions. Diese Einheit ist bekannt durch seine extrem gute Spionagequalit&auml;t.</p>",

          [LOCALE_en_US] = "<p>NotAvail.</p>",
        },
          .dbFieldName = "unit_spaeher",
          .maxLevel    = "0",
          .nodocumentation = 0
        },
        .position    = 11,
        .ratingValue = 42,
        .productionTimeFunction = "60+(5*([B12.ACT]/[B7.ACT]-[S6.ACT]))",

      .resourceProductionCost = {
        [0] = "750",
        [2] = "430",
        [5] = "500",
        [6] = "250",
      },
      .buildingDepList = {
        [7] = 15,
        [11] = 13,
        [12] = 5,
      },
      .maxBuildingDepList = {
        [7] = -1,
        [11] = -1,
        [12] = -1,
      },
      .scienceDepList = {
        [6] = 12,
      },
      .maxScienceDepList = {

        [6] = -1,
      },
      },
      .attackRange = 1.95,
      .attackAreal = 1.85,
      .attackRate  = 2.95,
      .defenseRate = 2.25,
      .hitPoints   = 2.9,
      .rangedDamageResistance = 1.50,
      .antiSpyChance = 3.50+([S6.ACT]/2)
    },
    .visible = 0,
    .foodCost = 0.12,
    .wayCost = 3.45,
    .spyValue   = 5,
    .spyChance  = 3.70+([S6.ACT]/2),
    .spyQuality = 3.50+([S6.ACT]/2)
  },

};


Ich bin für jeden Tipp Dankbar ;)
SpiderPOH
Einäugiger Foren-Bettler
Einäugiger Foren-Bettler
 
Beiträge: 100
Registriert: 29.09.2004, 08:34
Wohnort: FFM

Beitragvon Firak » 14.12.2004, 16:48

Bei den Spionagewerten (SpyChance, SpyQuality, AntiSpyChance) sind derzeit keine Formeln erlaubt, nur konstante Werte.
Night falls and the foul are abroad...
Firak
Halbgott des Schattens
Halbgott des Schattens
 
Beiträge: 169
Registriert: 28.01.2004, 14:35
Wohnort: Osnabrück

Beitragvon SpiderPOH » 14.12.2004, 17:55

ahh ok wusste ich nicht....werds gleichmal korrigieren und testen ;)
SpiderPOH
Einäugiger Foren-Bettler
Einäugiger Foren-Bettler
 
Beiträge: 100
Registriert: 29.09.2004, 08:34
Wohnort: FFM

Beitragvon SpiderPOH » 14.12.2004, 23:28

hmm fehler bleiben bestehen... ich peil es gerade nicht...

hier nochnmal der auszug vom make

Code: Alles auswählen
ticker/game_rules.c:3306: error: initializer element is not constant
ticker/game_rules.c:3306: error: (near initialization for `unit_type_list[11].base.base.base.name')
ticker/game_rules.c:3311: error: initializer element is not constant
ticker/game_rules.c:3311: error: (near initialization for `unit_type_list[11].base.base.base.description')
ticker/game_rules.c:3315: error: initializer element is not constant
ticker/game_rules.c:3315: error: (near initialization for `unit_type_list[11].base.base.base')
ticker/game_rules.c:3332: error: initializer element is not constant
ticker/game_rules.c:3332: error: (near initialization for `unit_type_list[11].base.base.resourceProductionCost')
ticker/game_rules.c:3342: error: initializer element is not constant
ticker/game_rules.c:3342: error: (near initialization for `unit_type_list[11].base.base.buildingDepList')
ticker/game_rules.c:3351: error: initializer element is not constant
ticker/game_rules.c:3351: error: (near initialization for `unit_type_list[11].base.base.maxBuildingDepList')
ticker/game_rules.c:3357: error: initializer element is not constant
ticker/game_rules.c:3357: error: (near initialization for `unit_type_list[11].base.base.scienceDepList')
ticker/game_rules.c:3362: error: initializer element is not constant
ticker/game_rules.c:3362: error: (near initialization for `unit_type_list[11].base.base.maxScienceDepList')
ticker/game_rules.c:3364: error: initializer element is not constant
ticker/game_rules.c:3364: error: (near initialization for `unit_type_list[11].base.base')
ticker/game_rules.c:3375: error: initializer element is not constant
ticker/game_rules.c:3375: error: (near initialization for `unit_type_list[11].base')
ticker/game_rules.c:3389: error: initializer element is not constant
ticker/game_rules.c:3389: error: (near initialization for `unit_type_list[11]')
make[1]: *** [ticker/game_rules.o] Fehler 1
make[1]: Leaving directory `/tmp2/ugaagga/src'
make: *** [all] Fehler 2


hier die stellen der auszug aus der game_rules.c Datei von Zeile 3306 - 3389

Code: Alles auswählen
        },
          .description = {
          [LOCALE_de_DE] = "<p>Der Spaeher ist die Verbesserte Version des Spions. Diese Einheit ist bekannt durch seine extrem gute Spionagequalitaet.</p>",

          [LOCALE_en_US] = "<p>NotAvail.</p>",
        },
          .dbFieldName = "unit_spaeher",
          .maxLevel    = "0",
          .nodocumentation = 0
        },

        .position    = 11,
        .ratingValue = 43,

        .productionTimeFunction = "60",

      .resourceProductionCost = {

        [0] = "750",

        [2] = "430",

        [5] = "500",

        [6] = "250",

      },

      .buildingDepList = {

        [7] = 15,

        [11] = 13,

        [12] = 5,

      },
      .maxBuildingDepList = {

        [7] = -1,

        [11] = -1,

        [12] = -1,

      },

      .scienceDepList = {

        [6] = 12,

      },
      .maxScienceDepList = {

        [6] = -1,

      },

      },

      .attackRange = 1,
      .attackAreal = 1,
      .attackRate  = 2,
      .defenseRate = 2,
      .hitPoints   = 2,
      .rangedDamageResistance = 1,


      .antiSpyChance = 4
    },

    .visible = 0,


    .foodCost = 0.09,

    .wayCost = 3,

    .spyValue   = 5,

    .spyChance  = 4,

    .spyQuality = 4
  },



und dazu nochmal der komplette Eintrag aus der Einrichtungs.xml nach dem ich nun alles auf gerade und feste werte geändert habe

Code: Alles auswählen
    <Unit dbfield="unit_spaeher">
      <UnitID>11</UnitID>
      <Name>Spaeher</Name>
      <Name lang="en_US">Scouts</Name>
      <Description>
      <p>Der Spaeher ist die Verbesserte Version des Spions.</p>
      </Description>
      <Description lang="en_US">
        <p>NotAvail.</p>
      </Description>
      <Position>11</Position>
      <ProductionCost>
        <ResourceProductionCost resourceID="0">750</ResourceProductionCost>
        <ResourceProductionCost resourceID="2">430</ResourceProductionCost>
        <ResourceProductionCost resourceID="5">500</ResourceProductionCost>
        <ResourceProductionCost resourceID="6">250</ResourceProductionCost>
      </ProductionCost>
      <ProductionTimeFunction>60</ProductionTimeFunction>
      <MeleeDamage>2</MeleeDamage>
      <RangedDamage>1</RangedDamage>
      <StructuralDamage>1</StructuralDamage>
      <MeleeDamageResistance>2</MeleeDamageResistance>
      <RangedDamageResistance>1</RangedDamageResistance>
      <Size>2</Size>
      <Visible>0</Visible>
      <Velocity>3</Velocity>
      <SpyValue>5</SpyValue>
      <SpyChance>4</SpyChance>
      <SpyQuality>4</SpyQuality>
      <AntiSpyChance>4</AntiSpyChance>
      <BuildingDep buildingID="7" min="15" max="-1"></BuildingDep>
      <BuildingDep buildingID="11" min="13" max="-1"></BuildingDep>
      <BuildingDep buildingID="12" min="5" max="-1"></BuildingDep>
      <ScienceDep scienceID="6" min="12" max="-1"></ScienceDep>
    </Unit>


und gibt es ev. eine möglichkeit die komplette Bildschirmausgabe vom make in eine Datei umzuleiten ???
Da ich den Verdacht habe das sich der Fehler woanders befindet.
SpiderPOH
Einäugiger Foren-Bettler
Einäugiger Foren-Bettler
 
Beiträge: 100
Registriert: 29.09.2004, 08:34
Wohnort: FFM

Beitragvon Firak » 15.12.2004, 16:11

Hast Du die beiden Sprachen (Deutsch und Englisch) auch am Anfang der einrichtung.xml definiert (wie in der Beispieldatei aus dem Quellcode-Archiv gezeigt)?

Zum Umleiten der Fehlermeldungen: make 2>dateiname

(siehe z.B. http://www.linux-user.de/ausgabe/2004/06/078-zubefehl/)
Night falls and the foul are abroad...
Firak
Halbgott des Schattens
Halbgott des Schattens
 
Beiträge: 169
Registriert: 28.01.2004, 14:35
Wohnort: Osnabrück

Beitragvon SpiderPOH » 15.12.2004, 17:06

Firak hat geschrieben:Hast Du die beiden Sprachen (Deutsch und Englisch) auch am Anfang der einrichtung.xml definiert (wie in der Beispieldatei aus dem Quellcode-Archiv gezeigt)?

Zum Umleiten der Fehlermeldungen: make 2>dateiname

(siehe z.B. http://www.linux-user.de/ausgabe/2004/06/078-zubefehl/)


Jo, umleitung hat geklappt ;)

Du meintest den Abschnitt

Code: Alles auswählen
  <Languages>
    <Language locale="de_DE">Deutsch</Language>
    <Language locale="en_US">English (US)</Language>
  </Languages>


In der Einrichtungs.xml ?? jo da steht das bei mir drinn.
SpiderPOH
Einäugiger Foren-Bettler
Einäugiger Foren-Bettler
 
Beiträge: 100
Registriert: 29.09.2004, 08:34
Wohnort: FFM

Beitragvon SpiderPOH » 15.12.2004, 22:02

hmm habe da was gefunden was nicht funktioniert und was mir einige Fehler bringt

Code: Alles auswählen
<MeleeDamage>8.05+([S9.ACT]/2.15)</MeleeDamage>
<RangedDamage>[S9.ACT]/1.25</RangedDamage>
<StructuralDamageResistance>15+[D6.ACT]</StructuralDamageResistance>


Bei diesen 3 Bereichen scheinen keine Formeln zu Funktionieren nachdem ich es auf

Code: Alles auswählen
<MeleeDamage>8.05</MeleeDamage>
<RangedDamage>1.25</RangedDamage>
<StructuralDamageResistance>15</StructuralDamageResistance>


geändert hatte waren die Fehler vom make verschwunden ;)

hmm gibt es irgendwo ne Liste wo man erfährt was mit Formeln funktioniert und was unbedingt feste Werte benötigt ???
SpiderPOH
Einäugiger Foren-Bettler
Einäugiger Foren-Bettler
 
Beiträge: 100
Registriert: 29.09.2004, 08:34
Wohnort: FFM

Nächste

Zurück zu Bastelstube für die CVS Version

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste