Rund um EDDI / GerDA und Voice Attack

Soyaro
Beiträge: 10
Registriert: Mo 4. Mär 2024, 08:02
Hat sich bedankt: 0
Danksagung erhalten: 1 Mal

Re: Rund um EDDI / GerDA und Voice Attack

#731

Melbar Kaasom hat geschrieben: Sa 9. Mär 2024, 19:21 die Prozente zur ansage für den Asteroiden findest du in den A_Einstellungen in Zeile 23
deine gesuchten Materialien bitte im Script "Asteroid prospected" auf True setzen, (siehe auch A-Einstellungen Zeile 27) (dort sind standartmäßig die Materialien "eingeschaltet" die man für den Carrier braucht oder gut Creditts bringen)
Danke für die Antwort, aber sie scheint leicht an meiner Frage vorbei zu gehen. Mein Request war weniger "wo kann ich fest hinterlegen, was er mir ansagen soll" und mehr "wie kriege ich GerDA dazu, selbstständig auf Basis meiner eingestellten Fracht-Überwachung zu entscheiden, was anzusagen ist?"

EDIT: Die Information ist ja immerhin vorhanden, sollte also grundsätzlich möglich sein.
Bild
MfG usw :smilewinkgrin:

Bild
Benutzeravatar
nepo
Beiträge: 800
Registriert: Do 1. Sep 2022, 19:54
Hat sich bedankt: 1890 Mal
Danksagung erhalten: 817 Mal

Re: Rund um EDDI / GerDA und Voice Attack

#732

Lithiumhydroxid ist wahrscheinlich falsch bzw. gar nicht übersetzt.
Skript "Asteroid prospected" Zeile 32
Einfach Zeile hinzufügen und auf "true" setzen, sieht dann so aus:
    "Lepidolit": false,
    "Lithium Hydroxide": true,
    "Lithiumhydroxid": true,
    "Liquid oxygen": false,
Mit "Liquid oxygen" ist wahrscheinlich das gleiche. Wie ist das im Spiel über setzt, "Flüssigsauerstoff" ?
.
Anleitung für EDDI hab' ich schon genannt ... https://github.com/EDCD/EDDI/wiki ... dazu vielleicht noch https://elite-journal.readthedocs.io/en/latest/
.
Da das mit dem "Lithiumhydroxid" ja eine Mission ist, wirst Du eventuell etwas dazu in den Missions-Skripten finden.
Mit denen habe ich mich kaum beschäftigt, kann dazu also nix sagen. Bei CGs hat jedenfalls die Ansage was noch fehlt bzw. was abgegeben wurde,
gestimmt.
.
Vielleicht findest Du ein paar Anregungen in Darkcyde's Charakter (leider nur in Englisch):
Darkcydes Defaults - 24-12-23.zip
(513.47 KiB) 5-mal heruntergeladen
Bild
Soyaro
Beiträge: 10
Registriert: Mo 4. Mär 2024, 08:02
Hat sich bedankt: 0
Danksagung erhalten: 1 Mal

Re: Rund um EDDI / GerDA und Voice Attack

#733

nepo hat geschrieben: So 10. Mär 2024, 01:32 Mit "Liquid oxygen" ist wahrscheinlich das gleiche. Wie ist das im Spiel über setzt, "Flüssigsauerstoff" ?
das ist tatsächlich wörtlich übersetzt, und EDDI scheint die Begriffe auch alle richtig zu kennen.
Bild

Du treibst dich seltener in vereisten Asteroidengürteln rum, kann das sein? :smilewinkgrin:

Also was genau sagt dieses true in asteroid prospected dann aus? Ich verstehe das so, dass immer angesagt werden soll, sobald davon wenigstens 10% vorhanden sind, was wie gesagt nicht das ist, was ich möchte.
Ich les mich jetzt mal in den Code und die Doku ein. Mal gucken, was ich zu Stande bekomme, bevor meine Freundin aufsteht (spätestens dann geht's wieder in die Leere :smilewinkgrin: ). Danke auf jeden Fall ^^

EDIT: Erster Eindruck: Was ich brauche ist die Variable Cargo, genauer gesagt total und need. Effektiv will ich im Script Asteroid prospected, in der Schleife "for mineral in event.commodities", prüfen, ob das Mineral in meiner Cargo einen need > total hat; wenn ja wird spokenMinerals[mineral.commodity] auf true gesetzt, andernfalls auf false.
Nachdem ich das jetzt weiß, muss ich mir nur noch über die Syntax klar werden.
Im nächsten Schritt will ich dann noch den Commodity avgprice berücksichtigen, um damit die aktuelle Funktionalität, dass wertvolle Mineralien immer angesagt werden, wiederherzustellen. Sobald der Code steht kann der gesamte Block "set spokenMinerals to" auf "{set spokenMinerals to []}" reduziert werden, der Inhalt wird dann ja mit jedem Prospecter Limped automatisch generiert.
MfG usw :smilewinkgrin:

Bild
Soyaro
Beiträge: 10
Registriert: Mo 4. Mär 2024, 08:02
Hat sich bedankt: 0
Danksagung erhalten: 1 Mal

Re: Rund um EDDI / GerDA und Voice Attack

#734

@nepo magst du mal einen Blick darauf werfen und mir sagen, ob das so funktioniert? Ich hab's jetzt erstmal nur geschrieben und trau mich gerade nicht wirklich, den Code zu testen, bevor jemand, der mit der Sprache mehr als gefühlte 5 Minuten Erfahrung hat, drüber geguckt hat :smilewinkgrin:
Effektiv habe ich den Code von Asteroid prospected ab Zeile 18 bis zur bisherigen Zeile 67 (also bis zum Ende der Schleife "for mineral in event.commodities") neu Strukturiert. Für mich sieht's gut aus, aber ich rechne mit nem fetten Syntaxfehler, den ich einfach nicht sehe, weil ich die Sprache wie gesagt bisher nicht kenne.

Code: Alles auswählen

{set spokenMinerals to []}

{if len(event.motherlode) > 0 && spokenCores[event.motherlode]:
	Hauptader entdeckt: {event.motherlode}.
}

{set minerals to []}
{for mineral in event.commodities:
    {if (inventory.Contains(mineral) && inventory[mineral].need > inventory[mineral].total) || mineral.avgprice > 50000:
        {spokenMinerals[mineral.commodity] = true}
    |else:
        {spokenMinerals[mineral.commodity] = false}
    if mineral.percentage > state.minimum_percent && spokenMinerals[mineral.commodity]:
        {set mineral_desc to: 
            {round(mineral.percentage)} Prozent {mineral.commodity}
        }
        {set minerals to cat(minerals, [mineral_desc])}
    }
}
MfG usw :smilewinkgrin:

Bild
Benutzeravatar
nepo
Beiträge: 800
Registriert: Do 1. Sep 2022, 19:54
Hat sich bedankt: 1890 Mal
Danksagung erhalten: 817 Mal

Re: Rund um EDDI / GerDA und Voice Attack

#735

Sorry, geht so nicht.
image.png
Syntax-Fehler, aber der ist ja nicht so schlimm. Ich ändere das mal. ...
Aber die Variablen "inventory.Contains(mineral)" gibt es so nicht und auch ".need" kenne ich nicht.
Allerdings gibt mir EDDI auch keinen Fehler aus, wenn man zum Testen den Text einfach mal bei "Neues Skript erstellen" einfügt und testet. ... :coffee:
.
... Syntax korrigiert sieht so aus:
image.png
.
Zugehörige Variablen des Events "Asteroid prospected" findest Du hier:
https://github.com/EDCD/EDDI/wiki/Aster ... cted-event
Bild
Soyaro
Beiträge: 10
Registriert: Mo 4. Mär 2024, 08:02
Hat sich bedankt: 0
Danksagung erhalten: 1 Mal

Re: Rund um EDDI / GerDA und Voice Attack

#736

nepo hat geschrieben: So 10. Mär 2024, 11:12 Aber die Variablen "inventory.Contains(mineral)" gibt es so nicht und auch ".need" kenne ich nicht.
inventory wird in Cargo report verwendet und .need habe ich aus der Doku, aus der Variable Cargo, die ich weiter oben verlinkt habe :-/

EDIT: Bin in meinem derzeitigen Mining-System angekommen und somit bereit zum testen. gucken wir mal, wie kaputt ich GerDA gemacht habe (Syntaxfehler natürlich korrigiert ^^)

EDIT2: Gut, sie sagt nichts, aber das ist ja klar, wenn Bing gelogen hat. laut Bing kann ich mit .Contains sehen, ob inventory ein Mineral enthält. Also noch mal drüber gucken...
Das offensichtlichste wäre ja 'ne innere Schleife, die über das gesamte inventar läuft und vergleicht, ob mineral.name == item.name ist, oder?
MfG usw :smilewinkgrin:

Bild
Benutzeravatar
nepo
Beiträge: 800
Registriert: Do 1. Sep 2022, 19:54
Hat sich bedankt: 1890 Mal
Danksagung erhalten: 817 Mal

Re: Rund um EDDI / GerDA und Voice Attack

#737

... ".need" :eekh: - kannte ich nicht, hab's gefunden ...
.
... aber so wie Du das verknüpft hast, funktioniert das nicht :schulterzuck:
Event
The event that triggered the speech responder. Information held in here is event-specific. The event specific variables can be found by clicking on the 'Variables' button while editing an event related script and accessing the appropriate values of the event - object.
Das heißt ".need" kannst Du nur im Cargo-Event verwenden. ... :coffee:

EDIT: Man kann aber Variablen, die nur über ein Event ausgegeben oder erstellt werden für andere Skripte zur Verfügung stellen.
Das ist der Befehl SetState().
Variable erstellen: {SetState('neue_variable', cargo.need)}
Variable abrufen: state.neue_variable
https://github.com/EDCD/EDDI/wiki/Help#setstate
Bild
Soyaro
Beiträge: 10
Registriert: Mo 4. Mär 2024, 08:02
Hat sich bedankt: 0
Danksagung erhalten: 1 Mal

Re: Rund um EDDI / GerDA und Voice Attack

#738

Wer denkt sich denn so einen Quatsch aus? :motzki:

Okay. ich kann Variablen doch in einem Event generieren und in einem anderen verwenden, oder? Also muss ich die spokenMinerals eben in 'nem cargo event erzeugen, bevor ich sie im prospected event verwende, das heißt man muss zumindest ein cargo event triggern, bevor das prospected event funktioniert, wie ich es mir vorstelle. Im mining-kontext sollte das ja eh passieren, weil man sich ja noch Drohnen einlädt, bevor man losfliegt, und damit steht die spokenMinerals. Oder bin ich schon wieder auf dem Holzweg?
MfG usw :smilewinkgrin:

Bild
Benutzeravatar
nepo
Beiträge: 800
Registriert: Do 1. Sep 2022, 19:54
Hat sich bedankt: 1890 Mal
Danksagung erhalten: 817 Mal

Re: Rund um EDDI / GerDA und Voice Attack

#739

Wir können uns ja mal das Original anschauen und bewerten, was da gemacht wird.
{set minerals to []} - Liste "minerals erstellen"
{for mineral in event.commodities: - Schleifen-Start für jedes "commoditie" das im Event gefunden wird
    {if mineral.percentage > state.minimum_percent && spokenMinerals[mineral.commodity]: - überprüfen ob das Commoditie in der Liste oben mit "true" geführt wird
                                                                                           und ob die voreingestellte Prozentmenge übertroffen wird
        {set mineral_desc to:  - setzen des Minerals auf die Liste "Beschreibung Mineral
            {round(mineral.percentage)} Prozent {mineral.commodity} - auf ganzzahlige Werte runden
        }
        {set minerals to cat(minerals, [mineral_desc])} - Liste der Minerale mit ihrer Beschreibung erstellen
    }
}
Bild
Benutzeravatar
nepo
Beiträge: 800
Registriert: Do 1. Sep 2022, 19:54
Hat sich bedankt: 1890 Mal
Danksagung erhalten: 817 Mal

Re: Rund um EDDI / GerDA und Voice Attack

#740

Soyaro hat geschrieben: So 10. Mär 2024, 11:53 Wer denkt sich denn so einen Quatsch aus? :motzki:

Okay. ich kann Variablen doch in einem Event generieren und in einem anderen verwenden, oder? Also muss ich die spokenMinerals eben in 'nem cargo event erzeugen, bevor ich sie im prospected event verwende, das heißt man muss zumindest ein cargo event triggern, bevor das prospected event funktioniert, wie ich es mir vorstelle. Im mining-kontext sollte das ja eh passieren, weil man sich ja noch Drohnen einlädt, bevor man losfliegt, und damit steht die spokenMinerals. Oder bin ich schon wieder auf dem Holzweg?
Es ist gedanklich vielleicht viel einfacher als das dann mit den Möglichkeiten von Cottle und EDDI umzusetzen.
.
Wie oben beschrieben, man kann Variablen mit SetState() für andere Skripte zur Verfügung stellen.
.
Vielleicht wäre genau der andere Weg einfacher. Die Variable ".need" , also was noch fehlt, im Skript "Asteroid prospected" auszuwerten. :coffee:
Frage: Wann soll die Ansage kommen ? Wenn mein Frachtraum aufgerufen wird ? JA > Dann muss die abgebaute Menge zum Skript "Cargo ..."
überführt werden. ... Ich bin noch nicht so richtig drin ...
Das Skript "Asteroid prospected" gibt dir ja nur zurück, was der Asteroid hergibt. Es ist aber ja noch nichts abgebaut bzw. eingesammelt. :eekh:
Für jetzt erstmal genug, heute Abend geht's weiter ...
Bild
Antworten

Zurück zu „Tools rund um E:D“