28. Mär 2024, 18:18 Hallo Gast.
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge. Hierbei werden gemäß Datenschutzerklärung Benutzername und Passwort verschlüsselt für die gewählte Dauer in einem Cookie abgelegt.


Select Boards:
 
Language:
 


Autor Thema: Upgrade durch Einheiten erhalten  (Gelesen 2659 mal)

Hexenkönig_von_Angmar

  • Bilbos Festgast
  • *
  • Beiträge: 7
Upgrade durch Einheiten erhalten
« am: 27. Jun 2022, 17:25 »
Hey,

ich habe folgende Fragen:

Wie kann man durch das erstellen einer oder mehreren Einheiten ein Upgrade erstellen?

(Z.B. will ich wie in eurem Mod bei dem Level-Aufstieg für Sauron, wenn man alle z.B. Nazguls baut, ein Upgrade für Sauron geben, das er ein Level aufsteigt)

Muss man das irgendwie mit Lua Scripten? Oder kann man das über "normales Coden" (Über die Inis) machen?

 Habe (falls es über die Inis geht) nichts gefunden, das mir weiterhilft.

Hoffe jemand kann mir dazu weiterhelfen.

Gruß Hexenkönig_von_Angmar

Only True Witchking

  • Elbischer Pilger
  • **
  • Beiträge: 191
  • Hinder me? Thou fool. No living man may hinder me!
Re: Upgrade durch Einheiten erhalten
« Antwort #1 am: 27. Jun 2022, 18:43 »
Achtung: Sehr viele ""Fachbegriffe""  [ugly]
Kann ich aber auf Nachfrage gerne genauer erklären.

-----------------------------------------------------------------

Das hängt davon ab, was genau dein Ziel ist.

Option A: Das Object, was das Upgrade erhält [folgend "Object U"], befindet sich definitiv immer auf dem Schlachtfeld, wenn die Einheit, die das Upgrade auslöst ["Einheit E"], rekrutiert wird (das erscheint mir unwahrscheinlich, und ist z.B. bei Sauron nicht der Fall).

Wenn die Rekrutierung einer einzelnen Einheit ausreicht, um das Upgrade zu triggern, sollte das recht simpel sein - das rekrutierte Object muss nur ein Behaviour haben, mit dem es einmalig eine Weapon schießt, was dann automatisch bei der Rekrutierung ausgelöst werden sollte.

Diese weapon muss dann nur auf das Object U zielen und diesem einen AttributeModifier verpassen, welcher ein Upgrade gibt.

--

Option B: Object U ist nicht unbedingt vor Einheit E auf dem Schlachtfeld und selbst wenn E tot ist und U dann erst rekrutiert wird soll U noch das Upgrade erhalten.
[Also grob gesagt das Sauron-System, wobei da auch Option C dabei ist, und ich habe auch keine Ahnung, ob das so oder komplett anders umgesetzt wurde].

Bleibt es dabei, dass nur eine Einheit E rekrutiert werden muss (bzw. jede Einheit E genau ein Upgrade gibt, und jedes Upgrade von genau einer Einheit E kommt; wobei alle "E" unterschiedliche Einheiten sind), dann könnte man das möglicherweise so lösen, dass E bei der Rekrutierung ein unsichtbares Objekt erschafft (vermutlich über eine Weapon mit WeaponOCL, denke ich; wobei vllt auch sowas wie bei Rumil und Orophin funktioniert), welches permanent eine Führerschaft ausstrahlt, die nur auf U wirkt und diesem ein Upgrade gibt.

--

Option C: Wie B; nur müssen Einheiten gezählt werden - nicht "Rekrutiere Mollok", sondern "Rekrutiere 4 Trolle", "Rekrutiere alle Nazgûl" oder sogar "Kontrolliere X Aufseher".

Ehrlich gesagt - keine Ahnung. Zumindest für "kontrolliere" könnte ich mir denken, dass es vllt ein eigenes Behaviour gibt, was die Anzahl von Einheiten auf der Karte zählt, weiß ich aber nicht. Außerdem könnte das Behaviour ja nicht in Sauron selbst stecken - wenn die X Aufseher auf der Karte sind, erhält man ja sofort das Upgrade, ohne dass Sauron rekrutiert sein muss.

Das ist aber onehin nur Spekulation, habe ich noch nie nachgeschaut.

---

Gibt hier sicherlich noch viele Details und Lösungsansätze, die ich übersehen oder ausgelassen habe; überhaupt ist das ganze sehr grob und verwendet Begriffe, die nicht selbsterklärend sind - bei Fragen, fragen!  :)

“In rode the Lord of the Nazgûl. A great black shape against the fires beyond he loomed up, grown to a vast menace of despair. In rode the Lord of the Nazgûl, under the archway that no enemy ever yet had passed, and all fled before his face."

Elendils Cousin 3. Grades

  • Administrator
  • Ringträger
  • *****
  • Beiträge: 5.677
  • German, Motherfucker! Do you speak it?
Re: Upgrade durch Einheiten erhalten
« Antwort #2 am: 28. Jun 2022, 09:10 »
Option C läuft über Scripts in den libraries ab. Da kann man dann einfach abfragen, ob eine Bedingung vorhanden ist - z.B. ob man vier Trolle kontrolliert - und dann ein Upgrade vergeben.

Falls du dir ansehen willst, wie das bei Sauron funktioniert: Guck in der edain_maps.big unter libraries\spieler\spieler.map nach, dort findest du in den Scripts das entsprechende System.

Hexenkönig_von_Angmar

  • Bilbos Festgast
  • *
  • Beiträge: 7
Re: Upgrade durch Einheiten erhalten
« Antwort #3 am: 28. Jun 2022, 16:46 »
Hey,

danke für die schnellen Rückantworten!

Habe schon gedacht das es über die Scripts geht aber nicht gewusst das es über Map-Scripts läuft... (Aber klar klingt Logisch)

D.h. es geht nur über die Scripts? Also gibt es keine Möglichkeit abzufragen wie viele Einheiten (z.B. Nazguls oder Trolle) auf der Karte sind über Inis (z.B. über ein Behavior)?

Wenn dem so wäre, ist es nicht so schlimm. Muss dann immer wenn ich nach Einheiten (>1) frage, über die spieler.map gehen.

Cool, Danke!!! (Habe schon ewig danach gesucht...)

Danke auch an "Only True Witchking" für die Vorschläge, ich persönlich bin bisschen anders an die Sache gegangen:
genauer gesagt, dass ich keine Weapon erstelle sondern ganz simpel wenn ein(e) Objekt/Einheit erstellt wird, einfach über den Behavior GrantUpgradeCreate (geht glaube schneller) das Upgrade zu geben.


Gruß Hexenkönig_von_Angmar

Elendils Cousin 3. Grades

  • Administrator
  • Ringträger
  • *****
  • Beiträge: 5.677
  • German, Motherfucker! Do you speak it?
Re: Upgrade durch Einheiten erhalten
« Antwort #4 am: 28. Jun 2022, 23:34 »
D.h. es geht nur über die Scripts? Also gibt es keine Möglichkeit abzufragen wie viele Einheiten (z.B. Nazguls oder Trolle) auf der Karte sind über Inis (z.B. über ein Behavior)?
Ich kenne kein solches Behavior. Du könntest, je nachdem was du erreichen willst, mit dem Hordenbonus arbeiten, aber das ist in meinen Augen alles unnötig kompliziert^^

Hexenkönig_von_Angmar

  • Bilbos Festgast
  • *
  • Beiträge: 7
Re: Upgrade durch Einheiten erhalten
« Antwort #5 am: 29. Jun 2022, 17:03 »
Habe jetzt ein weiteres Problem, ich weiß nicht wie ich die spieler.map in Libraries ins Spiel bekomme das die Scripts funktionieren.

(Nutze es nicht über den Edain-Mod, sodass ich die grund Libraries habe aus dem Spiel habe: ("ai_spell_execution" und "music_musicscripts_singl e" waren in dem Libraries Ordner)

Normale Map-Scripts für die jeweilige Map gehen ohne Probleme aber die "all Maps"-Scripts über die Libraries funktionieren nicht.

Muss man die in einer Ini aufrufen? (Habe mal bei playeraitypes.ini hinzugefügt aber ohne Erfolg....)

Elendils Cousin 3. Grades

  • Administrator
  • Ringträger
  • *****
  • Beiträge: 5.677
  • German, Motherfucker! Do you speak it?
Re: Upgrade durch Einheiten erhalten
« Antwort #6 am: 1. Jul 2022, 13:04 »
Bin jetzt auch kein Experte, was das angeht, aber soweit ich weiß werde die libraries zumindest in Edain in der map.ini angegeben:

PlayerAIType Multiplayer_Human
    LibraryMap = "Libraries\spieler\spieler.map"
End


Hexenkönig_von_Angmar

  • Bilbos Festgast
  • *
  • Beiträge: 7
Re: Upgrade durch Einheiten erhalten
« Antwort #7 am: 13. Aug 2022, 20:33 »
Hey,

habe noch eine Frage bezüglich des Level-System von Sauron:

Es ist ja so das die "RequiredExperience" sehr hoch bei ihm ist, sodass es aussieht das er durch den Kampf keine Erfahrung bekommt und nur durch die Missionen Levelt.

Aber wenn ich das auf meine Einheit übernehme, bekomme ich zum ersten kein Level-Aufstieg wenn ich eine Mission abschließe
und zum anderen das Ganze Spiel abstürzt wenn diese Einheit eine andere gegnerische Einheit besiegen würde (bei der Damage-Animation bricht das Spiel ab) und dadurch die Erfahrung bekommen würde.

Ist beim Edain-Mod etwas Zusätzliches eingebaut das es Sauron erlaubt Aufzusteigen obwohl die "RequiredExperience" so hoch ist und wenn er eine Einheit besiegt nicht das Spiel abstürzt, oder mache ich etwas falsch?

Die Missionen und das besiegen von Einheiten funktioniert, wenn die "RequiredExperience" auf einem niedrigen Wert liegt.


Gruß Hexenkönig_von_Angmar

Elendils Cousin 3. Grades

  • Administrator
  • Ringträger
  • *****
  • Beiträge: 5.677
  • German, Motherfucker! Do you speak it?
Re: Upgrade durch Einheiten erhalten
« Antwort #8 am: 14. Aug 2022, 17:59 »
Was meinst du denn mit "auf meine Einheiten übernehme"? Was genau hast du getan?

Hexenkönig_von_Angmar

  • Bilbos Festgast
  • *
  • Beiträge: 7
Re: Upgrade durch Einheiten erhalten
« Antwort #9 am: 14. Aug 2022, 22:58 »
Ich möchte ein Held so wie Sauron aus dem Edain-Mod,
d.h. er soll nicht leveln durch das besiegen von Gegnern sondern nur durch Aufgaben (upgrades).
Aber das Problem ist, ich bekomme kein Level-Aufstieg bei den Upgrades, wenn die Benötigte Experience sehr hoch ist.

ExperienceLevel MordorMelkorLevel1
TargetNames = MordorMelkor
RequiredExperience = 1
ExperienceAward   = GANDALF_LVL1_EXP_AWARD
Rank = 1
SelectionDecal
Texture = decal_hero_evil
Style = SHADOW_ALPHA_DECAL
OpacityMin   = 50%
OpacityMax   = 100%
MinRadius = 60
MaxRadius = 200
MaxSelectedUnits = 10
End
End
ExperienceLevel MordorMelkorLevel2
TargetNames = MordorMelkor
RequiredExperience = 200000
ExperienceAward = GANDALF_LVL2_EXP_AWARD
AttributeModifiers = MelkorLevelUpDamage1
Rank = 2
LevelUpFx = FX:EvilLevelUpFX
Upgrades = Upgrade_ObjectLevel2
SelectionDecal
Texture = decal_hero_evil
Style = SHADOW_ALPHA_DECAL
OpacityMin = 50%
OpacityMax = 100%
MinRadius = 60
MaxRadius = 200
MaxSelectedUnits = 40
End
End
ExperienceLevel MordorMelkorLevel3
TargetNames = MordorMelkor
RequiredExperience = 300000
ExperienceAward = GANDALF_LVL3_EXP_AWARD
AttributeModifiers = MelkorLevelUpDamage2
Rank = 3
Upgrades = Upgrade_ObjectLevel3
LevelUpFx = FX:EvilLevelUpFX
SelectionDecal
Texture = decal_hero_evil
Style = SHADOW_ALPHA_DECAL
OpacityMin = 50%
OpacityMax = 100%
MinRadius = 60
MaxRadius = 200
MaxSelectedUnits = 40
End
End
ExperienceLevel MordorMelkorLevel4
TargetNames = MordorMelkor
RequiredExperience = 400000
ExperienceAward = GANDALF_LVL4_EXP_AWARD
AttributeModifiers = MelkorLevelUpDamage3
Rank = 4
LevelUpFx = FX:EvilLevelUpFX
  Upgrades = Upgrade_ObjectLevel4
SelectionDecal
Texture = decal_hero_evil
Style = SHADOW_ALPHA_DECAL
OpacityMin = 50%
OpacityMax = 100%
MinRadius = 60
MaxRadius = 200
MaxSelectedUnits = 40
End
End

usw...

Bei "RequiredExperience" wird ja der Wert sehr hoch gesetzt.

Und zu allem Überfluss stürzt das Spiel ab wenn der Held eine gegnerische Einheit besiegt.

;------------------------------------------------------------------------
; Level-System
;------------------------------------------------------------------------

Behavior = LevelUpUpgrade ModuleTag_MelkorLevel2
        TriggeredBy     = Upgrade_Held2RespawnLevel
        LevelsToGain    = 1
        LevelCap        = 20
    End

    Behavior = LevelUpUpgrade ModuleTag_MelkorLevel3
        TriggeredBy     = Upgrade_Held3RespawnLevel
        LevelsToGain    = 1
        LevelCap        = 20
    End

    Behavior = LevelUpUpgrade ModuleTag_MelkorLevel4
        TriggeredBy     = Upgrade_Held4RespawnLevel
        LevelsToGain    = 1
        LevelCap        = 20
    End

    Behavior = LevelUpUpgrade ModuleTag_MelkorLevel5
        TriggeredBy     = Upgrade_Held5RespawnLevel
        LevelsToGain    = 1
        LevelCap        = 20
    End

usw...

Das Level-System funktioniert auch, wenn die "RequiredExperience" auf einem niedrigen Wert liegt (1000-2000). Aber dann Levelt er auch durch gegnerische Einheiten.


KairoShamoo

  • Elbischer Pilger
  • **
  • Beiträge: 189
  • I love democracy
Re: Upgrade durch Einheiten erhalten
« Antwort #10 am: 14. Aug 2022, 23:39 »
Wenn das System mit einem niedrigen Wert bei "Required Experience" funktioniert und du das Leveln durch gegnerische Einheiten verhindern willst, kannst du dem Object einfach einen Modifier mit Modifier                    = EXPERIENCE 0%  geben.

Elendils Cousin 3. Grades

  • Administrator
  • Ringträger
  • *****
  • Beiträge: 5.677
  • German, Motherfucker! Do you speak it?
Re: Upgrade durch Einheiten erhalten
« Antwort #11 am: 15. Aug 2022, 08:18 »
Ich wollte eher darauf hinaus, wie du die Aufgaben auf deinen Helden übertragen hast - die Upgrades werden schließlich woanders vergeben^^
Hast du die Scripts umgeschrieben oder kopiert?
Die benötigte Erfahrung sollte da nämlich egal sein, das ist beim Levelupupgrade kein Parameter. Und wenn du die gleichen Werte wie bei Sauron benutzt, ist das ja auch ein Beweis dafür, dass die an sich ok sind.

Auch der Crash mit dem Besiegen von Einheiten könnte mehrere Gründe haben - hast du den schon isoliert darauf getestet, ob er bei einem normalen Level-System auch auftritt?

Hexenkönig_von_Angmar

  • Bilbos Festgast
  • *
  • Beiträge: 7
Re: Upgrade durch Einheiten erhalten
« Antwort #12 am: 15. Aug 2022, 11:59 »
Danke KairoShamoo, auf die Idee bin ich nicht gekommen^^.

Funktioniert jetzt wie ich es will Danke!!!

Habe es auch mit einer anderen Einheit versucht und da geht es.

Liegt an KindOf: DOZER
Wenn ich die auskommentiere dann geht alles.
Die hat nur Einschränkungen.... :-|
Aber brauche sie für das erweiterte Palantir.

Naja wenigstens habe ich eine alternative.

Danke euch für die hilfreichen Rückantworten  ;)