Seite 3 von 4

Re: [PzC2] LUA Skripts

BeitragVerfasst: Mi 10. Mär 2021, 12:00
von HBalck
Na von Peter kommt hier ja garnichts mehr - hat wohl aufgegeben. bääääää.....

Re: [PzC2] LUA Skripts

BeitragVerfasst: Fr 12. Mär 2021, 00:06
von asuser
Ich habe mich auch mal an ein LUA Script gewagt. Es soll bei erreichen eines Sieghexfeldes eine bestimmte Nachricht ausgegeben werden. Könnte zB bei "Battleaxe" eingesetzt werden, wo Rommel nach dem Sieg zum General befördert wurde. Das Sieghexfeld muss auf der Map mit den Koordinaten X, Y markiert werden. Beim Trigger muss "CaptureTheFlag" aktiviert werden, der Triggername lautet "OnCaptureBefoerderung".

Das Script sieht so aus, mit X und Y als Hexfeldkoordinaten:

Befoerderung = {{X,Y}}

string_1 = NSLOCTEXT("scenario_Scenarioname", "string_1", "Gratulation! Sie wurden zum General befoerdert.")

captured_depots = {}

function OnCaptureBefoerderung(action)

-- Wenn das Feld durch Feind besetzt wurde, nichts tun
if(action.new_owner ~= 0 and action.new_owner ~= 1) then return end

-- Meldung kommt nach zweiter Besetzung nicht noch einmal
if IsItemInTable(captured_depots, action.flag) then return end

if IsItemInTable(Befoerderung, action.flag) then

player = 0

TutorialMessage(string_1)

-- Erinnerung, dass das Hexfeld schon erobert wurde
table.insert(captured_depots, action.flag)

end
end

function FindItemInTable(table, item)
for index,i in ipairs(table) do
if i == item then
return index
end
end

return -1
end

function IsItemInTable(table, item)
return FindItemInTable(table, item) ~= -1
end


Achtung: Der Textblock erkennt keine ä, ö, ü.
Das Ergebnis sieht dann so aus, getestet auf einer Polenkarte, ausgelöst durch den Panzer der die Kavallerie angreift:


Re: [PzC2] LUA Skripts

BeitragVerfasst: Fr 12. Mär 2021, 10:34
von peter
Umlaute sind in LUA leider ein Problem; deshalb verwende ich sie dort nicht.
Übrigens funktionieren Umlaute normal in Briefings.
In units.csv funktionieren Umlaute, wenn man sie in Unicode schreibt (siehe Einträge des Herstellers).


if(action.new_owner ~= 0 and action.new_owner ~= 1) then return end
ist nur korrekt, wenn player1 mit dem Spieler (player0) verbündet ist.

Wenn player0 der Spieler und player1 der Feind ist, dann wäre korrekt:
if action.new_owner == 1 then return end

Re: [PzC2] LUA Skripts

BeitragVerfasst: Fr 12. Mär 2021, 10:57
von asuser
Ah, ok. Danke für die Klarstellung!

Mir ist dann auch noch aufgefallen, wenn man das LUA Script mit nur einem falschen Leerzeichen (innerhalb/außerhalb der Meldung) versieht, dann erscheint die Meldung nicht.

Sind denn diese LUA Scripts auch mit speziellen TAB - Abständen definiert?

Re: [PzC2] LUA Skripts

BeitragVerfasst: Fr 12. Mär 2021, 11:55
von peter
LUA ist generell pingelig. Da kann sogar ein falsches Leerzeichen ein Problem sein.
Aber ob ich am Anfang der Zeile TAB und oder Leerzeichen einfüge, scheint egal zu sein.

Re: [PzC2] LUA Skripts

BeitragVerfasst: Sa 13. Mär 2021, 11:52
von asuser
Na, wenn es anderen auch so geht, dann brauche ich mich nicht wundern.

Ich bin gerade an einer anderen Funktion dran:

Ich möchte bei Auslösung eines Triggers eine Einheit mit einer besonderen Camo bekommen (Elite Einheit). Das Einstellen der Camo funktioniert bisher über das Einheiten Info Fenster. In PC1 musste diese Elite Einheit als Grafikfile und als Eintrag im equipment file vorliegen.

In der units Datei könnte ich mir eine neue Elite Einheit anlegen, aber wie kann ich dieser Einheit vorab eine Camo zuweisen? kopf kratz,....

Re: [PzC2] LUA Skripts

BeitragVerfasst: So 14. Mär 2021, 10:51
von asuser
Gibt es eine gute Erklärung zu dem Thema Kommando Punkte? Was fange ich damit im Spiel an?

Die LUA Skripte sind in den DLC und anderen Mods voll davon... kopf kratz,....

Aus dem Verkaufsprospekt:
We've even implemented a new currency system to handle this interaction. As you complete bonus objectives, you’ll earn Commendation Points. At various points in the campaign, offers will be made to players who have earned enough Commendation Points... offers of fantastic bounties of captured equipment, special prototype units, and possibly even access to famous and legendary historical aces and officers of the war.


D.h. Bonus Ziele im Scenario festlegen, erobern und sich dafür zusätzlich Ausrüstung und Helden kaufen. So in etwa...

Re: [PzC2] LUA Skripts

BeitragVerfasst: Mo 15. Mär 2021, 11:12
von peter
Mir ist es nicht gelungen eine camo via PzC2-Editor zuzuweisen. Mit LUA habe ich es noch nicht versucht. Falls Du es schafft, bin ich interessiert. Ich habe einige spezielle Einheitentypen, die ein camo vertragen könnten.
Aktuell bleibt nur, dass es die Spieler selbst ändern.

In den DLCs werden die comm Punkte verwendet; dort kann man es bei Bedarf abschreiben.
Auch der GC Mod im Slitherine Forum nutzt die comm Punkte.

Gruß, Peter

Re: [PzC2] LUA Skripts

BeitragVerfasst: Mi 17. Mär 2021, 02:35
von HBalck
Ihr seit ja hier schon etwas weiter gekommen - sehr schön.

1. Die Camos für Infanterie wären schön mit LUA script.

2. Kommando Punkte müsstet ihr mir noch mal richtig erklären, vielleicht mit einem Bsp. Ich steige da nicht durch.

3. Das Sieghexfeld mit bestimmter Nachricht können wir bei vielen Szenarien anwenden, so z.B. auch bei Beda Fomm bei Zerstörung der beiden Felddepots 16 und 18.

4. Ich habe im Casablanca Szenario Major General Harmon (2.PD) in der 13. Runde als "Hero" auf die Einheit ID154 gesetzt und es funktiniert, die gespawnte Einheit muß aber schon in Runde 12 auf der Karte erscheinen, so wie im Script.
Man muß hier einfach nur die IDs abzählen, welche nach der letzen gesetzen ID auf der Karte dazukommen. So kann man Heros auch später ankommenden Einheiten zuordnen- die Reihenfolge ist hier entscheidend.

Lua Bsp:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function B6() -- Bedingung im Editor: Trigger Rundenende Trigger im Editor der den zeitpunkt festlegt
return world.round == 13
end

function CreateAndAssignNewHero5(unit_id)
local hero = NewHero()
local unit = world:GetUnit(unit_id)
hero.portrait = "/Game/Gui/Common/Heroes/US/Major_General_Harmon.Major_General_Harmon" Mein in Ureal Engine 4 gecocktes Bild in Unreal dekodiertem Format
hero.name = NSLOCTEXT("scenario_Casablanca", "Major_General_Harmon", "Major General Harmon") Name des Szenarios und des Heros
hero.extra_traits = {UnitTrait.HitAndRun, UnitTrait.Leadership} Traits - Fähigkeiten
-- hero.modifiers = {{type = Initiative, mod = 10}, {type = Spotting, mod = 1}}
-- hero.attack_modifiers = {{type = TargetType.Soft, mod = 10}}
-- hero.defense_modifiers = {{type = Ground, mod = 10}}
hero.unit_classes = {UnitClass.Tank} Hero Klasse
local action = world:MakeNewHeroAction(unit.owner_id, hero)
world:Exec(action)

local assign_hero_action = world:MakeAssignHeroAction(unit, hero.id)
world:Exec(assign_hero_action)

end

function PlayerHeroLate() Trigger Auslöser im Editor
CreateAndAssignNewHero5(154) -- specify id of the unit which will get this hero inf Einheiten ID

end
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

5. Schön wäre hier eine Fähihkeitenentwicklung der Heros, oder ein numerische Steigung der Traits bei historischen Dienstgradwechsel, hier müsste dann auch das Bild und der Name des Kerneinheiten Heros verändert werden - bsiher keine Ahnung wie das gehen soll, aber sicherlich ein Weg mit Lua.

6. Mich nervt es so sehr, das ich den gespawnten Einheiten keine historischen Namen geben kann.

Re: [PzC2] LUA Skripts

BeitragVerfasst: Do 18. Mär 2021, 03:42
von HBalck
Peter - Ich bitte mal um genaue Auflistung der Unicodes für die Umlaute. Ich habe das Problem jetzt schon in Market Garden. Funktioniert der Unicode auch im Lua-Script ?

Re: [PzC2] LUA Skripts

BeitragVerfasst: Do 18. Mär 2021, 09:50
von peter
Zu den Einheitennamen sehe ich nur die Möglichkeit der Einheit einen Helden zu spendieren (ggf. ohne Eigenschaften). Der Held hat einen Namen.

Helden ändern wird vermutlich nicht möglich sein, aber man kann ja einer Einheit einen 2. und 3. Helden zuweisen.

Die comm Punkte werden in den .lua Dateien der DLCs des Herstellers verwendet. Zusätzlich muss die Variable im Projekt angelegt werden (script.lua):
z.B.:
campaign.comm_points = 0

Die unicodes funktionieren meines Wissens nur in units.csv.
Ich schreibe die immer von besehenden Namen ab (z.B. Fallschirmjäger).

Re: [PzC2] LUA Skripts

BeitragVerfasst: Do 18. Mär 2021, 10:44
von asuser
... aus der FAQ Beschreibung zu den DLC:


Was ist das Belobigungspunktesystem (Commendation)?

Ein Kritikpunkt über die Spielweisen von Panzer General und Panzerkorps ist die mangelnde Missionsvielfalt. Hauptsächlichster Grund dürfte die fest verankerte Siegbedingung "Capture all Victory Hexes" sein.
Obwohl wir diesen Missionstyp gelegentlich immer noch angemessen nutzen, werden die Spieler auch eine viel objektivere Vielfalt in der Zukunft sehen. Missionsarten wie Rettung, Eskorte, Abfangen, Minenlegen und andere wurden über die Kampagne verteilt.
Wir haben dies ausgeglichen, indem wir den Grad des Sieges zurückgebracht haben. Anstatt dass jede Mission ein binäres "Gewinnen oder Verlieren" ist, haben wir mehr Abwechslung hinzugefügt. Jedes Szenario hat ein grundlegendes Ziel, das Sie erfüllen müssen, um die Kampagne fortzusetzen. Dies ist jedoch der niedrigste Grad an Sieg und ist entsprechend leicht zu erreichen.
Wenn Sie wirklich einige sehr einzigartige Belohnungen und Boni sehen möchten, sollten Sie sich anstrengen, um die weitaus schwierigeren und vielfältigeren Bonusziele zu erreichen.
Wir haben sogar ein neues Währungssystem implementiert, um diese Interaktion zu handhaben. Wenn Sie Bonusziele erreichen, erhalten Sie Belobigungspunkte. An verschiedenen Punkten der Kampagne werden Angebote an Spieler gemacht, die genügend Belobigungspunkte gesammelt haben. Angebote zum Erlangen von erbeuteter Ausrüstung, speziellen Prototypeneinheiten und möglicherweise sogar Zugang zu berühmten und legendären historischen Assen und Offizieren des Krieges.


Wie interagieren Commendation Point-Belohnungen mit vorhandenen Erfassungs- und Prototypensystemen?

Der beste Weg, um die Funktionsweise zu beschreiben, ist, dass dies an den 5 unterschiedlichen Einheitentypen zu zeigen.

Core, AUX, Capture, Prototyp und Geschenke.

A. CORE ist natürlich Ihre primäre Nation, und Sie haben unbegrenzten Vorrat an Einheiten zur Verfügung.

B. AUX ist in der Regel für Länder bestimmt, die ebenfalls für Ihre Verwendung bestimmt sind, z. B. Italien. Diese Einheiten erhöhen vorübergehend die Stärke Ihrer Armee in einem bestimmten Szenario. Eine sehr beliebte Taktik der spanischen Bürgerkriegstester besteht darin, sich stark auf die Unterstützung italienischer CTV-Einheiten zu verlassen, um ihre frühe Luftwaffe zu stärken, bevor sie gegen Mitte des Jahres auf viel stärkere und dauerhaftere He-112 und Bf-109B umsteigen.

C. Capture Einheiten behalten ihren begrenzten Ersatzteilvorrat für das Basisspiel Panzer Corps 2 bei, mit einer äußerst wichtigen Einschränkung: Es ist jetzt möglich, riesige Vorräte an erbeuteten Ersatzteilen als Belohnung für das Einlösen von Belobigungspunkten zu verdienen. Dies sollte die Fähigkeit der Spieler, erbeutete Einheiten aufzustellen, erheblich verbessern, ohne sich sofort Sorgen machen zu müssen, dass die Ersatzteile ausgehen. Wenn Sie keine feindlichen Einheiten mehr alleine erobern, gehen Ihnen natürlich die Ersatzteile aus.

D. Prototypen sind im Allgemeinen nicht betroffen. Ihre Implementierung ist das schwächste Glied, da ein Spieler im Gegensatz zu erbeuteten Einheiten auf keinen Fall nach "mehr Ersatzteilen" suchen kann.

E. Geschenke. Geschenke sind der primäre Ersatzmechanismus für Prototypen. Eine Geschenkeinheit verhält sich wie eine Kombination aus CORE und Prototyp, indem sie die besten Eigenschaften von beiden beibehält. Eine Geschenkeinheit hat KEINE Ersatzteilbeschränkung, wie eine CORE-Einheit. Ein Geschenk ist immer eine Einheit, die Sie normalerweise nicht kaufen können, ähnlich einer Prototyp-Einheit. Eine Geschenkeinheit kann vom Ausrüstungstisch jeder Nation kommen ... einschließlich feindlicher Flugzeuge. Der General der Flieger Galland könnte z.B. das Geschwader der Spitfires bekommen, das er nach all den Jahren angefordert hat! Ein Geschenk gehört dir, um es auf unbestimmte Zeit zu behalten und überfordert zu sein, wie du es für richtig hältst. Seien Sie jedoch gewarnt, wenn eine Geschenkeinheit jemals vollständig zerstört wird, gibt es keine Möglichkeit, sie zurückzubekommen. Seien Sie also besonders vorsichtig mit diesen ganz besonderen Belohnungseinheiten!


Einbau in das Scenario

Wie Peter schon angedeutet hat, muss die Commendation Funktion über ein Bonusziel im Scenarioeditor definiert, getriggert und per LUA Script beschrieben werden. Die bisherigen LUA Scripte beinhalten überwiegend das Erbeuten von Gegnerwaffen und die Zuordnung von speziellen Helden. Das Belobigungssystem startet in den DLC meist mit 0 Punkten und zählt dann je nach Bonuszielerfüllung nach oben. Während eines Scenarios wird dann der Spieler entsprechend gefragt ob er diese Punkte einlösen möchte. Nimmt er dort ein Angebot an, wird im LUA Script der Belohnungspunktestand verringert, ansonsten bleibt er gleich und wird in das nächste Scenario übernommen.

Meine Bewertung:

-> Positiv: Hierdurch kann jedes Durchspielen durch Annahme oder Ablehnung etwas anders empfunden werden, sorgt also für Abwechslung. Ob es dabei zu anderen Siegchancen, Verlusten ua. kommt ist fraglich.

-> Negativ: Wenn man selber so etwas modded hat man unheimlich hohen Aufwand an LUA Scripten mit Kontrolle der Belobigungspunkte. Mir würde tatsächlich das klassische "Capture the Flag" reichen, wo dann eine automatische Belohnung angekoppelt ist.

Re: [PzC2] LUA Skripts

BeitragVerfasst: Do 18. Mär 2021, 11:35
von peter
Dem stimme ich zu!

Nur Punkt D (Prototypen) betrachte ich positiver als der Hersteller. Deshalb baue ich gerne Prototypen ein.
Prototyp bedeutet, dass ein Einheitentyp der eigenen Nation im begrenzen Umfang schon verwendet werden kann. Wenn der normal Startzeitpunkt erreicht ist, dann wird aus dem Prototyp eine normale Kerneinheit.

Als Spieler kann man bei Prototypen einen neuen Einheitentyp zuerst nur begrenzt einsetzen. Man kann z.B. nicht alle Panzer sofort auf Tiger umrüsten.
Ich finde das realistisch und spieltechnisch positiv.

Re: [PzC2] LUA Skripts

BeitragVerfasst: Do 18. Mär 2021, 11:42
von asuser
Mmmmhh.... interessant.

Theoretisch könnte man dem Prototypen auch von Anfang an bessere Kampfwerte mitgeben, um einen echten Spielvorteil zu erlangen. Machst Du das in Deinem Wehrmacht Mod nicht auch schon so?

Re: [PzC2] LUA Skripts

BeitragVerfasst: Sa 20. Mär 2021, 11:07
von asuser
Das LUA Scripting macht es einem nicht einfach, selbst wenn man sich mal aus bereits fertiggestellten Scenarien Beispiele ansieht und versucht, die in das eigene Spiel zu adaptieren, gibt es einen Haufen Probleme. Zum Einen nimmt das LUA file es einem übel, wenn man nicht näher definierte Zwischenräume oder Einschübe hinzufügt oder weglässt, ganz zu schweigen von Sonderzeichen.
Zum Anderen ist der zweite Schritt, das Setzen des Triggers genauso schwierig. Das falsche Häckchen gesetzt oder die falsche Aktivierungssequenz ausgewählt, schon passiert ... gar nichts.

Hier mal ein paar adaptierte Beispiele für den Umgang mit Belobigungspunkten, wie so etwas ablaufen kann. Die Kampagne startet normalerweise mit einer kurzen Begrüßung und das Definieren des Anfangspunktestandes.
Der Anfangspunktestand muss im Script.lua file vorher definiert werden, sonst funktioniert die ganze Berechnung nicht.
Mit den Umlauten ä, ö, ü hatte ich hier Probleme, da erscheint ansonsten ein Fragezeichen. (Kann man das mit Sonderzeichen geradebiegen?)


1. Scenario (Mersa el Brega) aus "Afrika Korps"



Script (wird noch weiter getestet)
harte arbeit... harte arbeit...




Das Thema mit den Belobigungspunkten kann beliebig komplex gestaltet werden. So ist es beispielsweise auch möglich, Verzweigungen und Auswahlentscheidungen einzubauen.
Ich habe hier mal eine Heldenzuweisung getestet, wo unterschiedliche Helden mit unterschiedlichen Traits für unterschiedliche Scenarien angeboten werden können.
Der Zeitpunkt kann dabei zu "Jetzt" aber auch zu einem späteren Scenario gelegt werden (finde ich besonders cool!). Voraussetzung ist hierbei natürlich, dass man genügend Belobigungspunkte
vorrätig hat.


2. Scenario (Beda Fomm) aus "Afrika Korps"



Script (wird noch weiter getestet)
harte arbeit... harte arbeit...




Sobald das einigermaßen rund läuft, füge ich die fertigen Scripts ein... harte arbeit...