PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Script-Logik für Kreaturenstärke



Boïndil
07.03.2011, 11:35
Hallo, Leute,
habe jetzt für meinen Mod mit den Ghulen als erste neue Gegner-Gruppe angefangen, stehe bei Megaton und möchte diese irgend wann mal in MDP-15 austesten.

Basis:
Gegner sind in Typen und Subtypen unterteilt. Die Kreaturen-Typen unterscheiden sich dadurch, dass manche schneller sind, andere ausdauernder oder stärker. Subtypen haben als einzige Unterschiede das Level von 5-9 und Zusätze wie "hart" oder mörderisch". An sich sind die Zusätze nur für die Benennung und das Level nur für die Berechnung der Kreatur-Stärke.

Leuchtende
-Leuchtender (Level 5)
-Starker Leuchtender (Level 6)
-Harter Leuchtender (Level 7)
-Knallharter Leuchtender (Level 8 )
-Mörderischer Leuchtender (Level 9)
Reaver
...
Trogs
...

Die Auswahl von Typ und Subtyp passiert zufällig in Leveled-Creatures-Listen. Allerdings versuche ich darauf zu verzichten, für jedes Spielerlevel in 5-Level-Steps Kopien mit verschiedenen Attributen zu erzeugen. Mörderische Leuchtende sind selten, können aber auch schon auf Spielerlevel 1 auftauchen. Reaver kommen ein wenig später, aber auch da können die Mörderischen sofort auftauchen, wenn das Level erreicht ist.

Um die Kopien zu vermeiden, habe ich ein Script erzeugt, das basierend auf verschiedenen Werten Grösse, Attribute und Gesundheit der Kreatur verändert.
Ich gebe es zu: ich habe mich vom Venom-Script für Kreaturen inspirieren lassen, möchte das aber weiter treiben.

Zuerst wird zufällig oder auch nicht skaliert. Anschliessend werden basierend auf Level von Kreatur und Player, Ausdauer und Grösse der Kreatur Attribute neu gesetzt, grössere und ausdauernde Kreaturen werden noch stärker und kriegen mehr Gesundheit. Alle Kreaturen eines Typs haben relativ niedrige gleiche Basis-Werte, die aber dann abweichend verstärkt werden, ein mörderischer soll wirklich mörderisch sein, während er von relativ normal starken Kreaturen begleitet wird.

Beispiel:
Player Level 8, aktuelle Kreatur Harter Leuchtender (Level 7, Grösse 1.1, Ausdauer 6, Wahrnehmung 4, Health 80)
Geänderte Kreatur: Harter Leuchtender, Grösse 1.2, Ausdauer 9, Wahrnehmung 7, Health 276)

Script:


scn wlwCreatureScaleScript

short iOnce
short iScale
float fScale
short iHealth
short iRandom
short iLevel

Begin ScriptEffectStart
If iOnce == 0
Set iOnce To 1

;Scale creature, chance 50
Set iRandom To GetRandomPercent
If iRandom > 50
Set fScale To (iRandom / 400) + 0.94
SetScale fScale
EndIf

;Increase stats, based on current creature level(5,6,7,8,9) and new scale
Set fScale To GetScale
Set iLevel To GetLevel
If fScale > 1.1
Set iScale To (iLevel-4)
Else
Set iScale To (iLevel-5)
EndIf
ModAv Strength iScale
ModAv Perception iScale
ModAv Endurance iScale
ModAv Agility iScale
ModAv Luck iScale
ModAv SpeedMult iScale

;Increase Health, based on creature endurance and player level
Set iLevel To Player.GetLevel
Set iHealth To (GetAv Health) + ((GetAv Endurance)*20) + (iLevel*iScale)
ForceAv Health iHealth
EndIf
End



Was meint ihr dazu? Ergibt das knallharte, aber faire Gegner für jedes Spielerlevel? Oder hat es da Fehler in der Logik?

Grüsse
Boïndil

Aaaaaimbot
07.03.2011, 11:42
Oh, Vorsicht mit sowas, da kommen gern mal negative HP-Werte zustande und somit fast unbesiegbare Gegner... Test das auf jeden Fall ausgiebig! Bevor ich diese Skripte nämlich in meinem Aimbotmodus (der ja auf Rafo basiert) rausgeworfen hab', waren immer mal wieder unbesiegbare Gegner anzutreffen, und noch dazu haben sich bei mir die Skripte bei jedem Mal, wo der NPC/Kreatur geladen wurde, neu aktiviert, obwohl "DoOnce" eigentlich gegriffen haben müßte...

Das heißt natürlich nicht, daß es nicht funktionieren kann, ich wollte es nur mal gesagt haben. ;)

Boïndil
07.03.2011, 11:55
Negative HP-Werte sollten eigentlich nicht möglich sein.

Set iHealth To (GetAv Health) + ((GetAv Endurance)*20) + (iLevel*iScale)
Beispiel Gesundheit mit minimalen Werten: 80 + (4 * 20) + (Spieler(Level 1) * 0) = 161
Beispiel Gesundheit mit hohen Werten: 120 + (10 * 20) + (Spieler(Level 99) * 4) = 716
Ein Broken-Steel-Plünderer hat aber Original schon 1100 Gesundheit.

Aaaaaimbot
07.03.2011, 11:58
Eigentlich, ja... waren sie bei meinen Skripten (also bei denen aus Rafo) "eigentlich" auch nicht, ich hab alles doppelt und dreifach gecheckt, aber trotzdem gabs als nahezu unbesiegbare Raider. Egal, test das Ganze am besten über nen längeren Zeitraum und benutz öfters das "getav health"-Kommando, um zu sehen, ob die Skripte korrekt funktionieren. Theoretisch könnten sie das natürlich. ;)

Boïndil
07.03.2011, 12:01
Testen werde ich natürlich :)

Könnte noch einen Fallback einbauen:
If iHealth > 20
If iHealth > 1200

Boïndil
20.03.2011, 17:53
So neuer Versuch, der noch fliessender, aber auch variierend die Gegnerstärke berechnen soll, ohne dass ich sinnlos gelevelte Kreaturen und Gegner erstellen muss.
Bei der Gesundheit ist die Meinung, dass Gegner mindestens einen Wert von 30 haben und anschliessend wird (Spielerlevel x 16) und ein Random-Wert 1-99 hinzugezählt. Der gleiche Random-Wert wird für die Gegner-Grösse verwendet, soll etwa bedeuten, dass grössere Gegner auch stärker sind.
Zusätzlich besteht bei besonders grossen Gegnern eine 20%-Chance, dass nochmals 100 Gesundheit hinzugezählt werden.
Das bedeutet, dass auf Level 50 die Gegner eine Gesundheit von um die 1000 haben können. (Zum Vergleich: ein Überlord hat 1250, ein plündernder Ghul 1100)


scn wlwHumanScaleScript

short iOnce
short iScale
float fScale
short iHealth
short iRandom
short iLevel

Begin ScriptEffectStart
If iOnce == 0
Set iOnce To 1

;Gegner-Groesse setzen
Set iRandom To GetRandomPercent
Set fScale To (iRandom / 400) + 0.94
SetScale fScale

; Gegner-Gesundheit setzen
Set iLevel To Player.GetLevel
Set iHealth To 30 + iRandom + (iLevel * 16)
If iRandom > 80
Set iHealth To iHealth + 100
EndIf
ForceAv Health iHealth

; Gegner-Attribute setzen
Set iScale To 1 + iRandom * 6 / 100
If iRandom > 80
Set iScale To iScale + 2
ModAv CritChance 20
EndIf
ModAv Strength iScale
ModAv Perception iScale
ModAv Endurance iScale
ModAv Agility iScale
ModAv Luck iScale
ModAv SpeedMult iScale

EndIf
End

Mir sind da noch einige technische Fragen aufgetaucht, da ich das natürlich absolut sauber möchte. Die GECK-Seite ist da leider ein wenig minimalistisch, wenn es um Details geht.

1. Wenn ich einen Float-Wert in einen Short setze, wird da einfach der absolute Wert genommen, ohne dass sich Fehler ergeben? (in einer höheren Sprache würde das Script sofort abbrechen, wobei Visual Studio üblicherweise nicht mal ein Speichern zulässt)

2. Wenn ich SPECIAL per ModAv verändere, sodass der Wert über 10 kommt, wird da einfach problemlos der Wert 10 gesetzt?

3. Wenn ich SPECIAL berechne, werden dann die Derrived Statistis angepasst? Z. B 10 Glück verändert automaitsch die Crit-Chance?

walli
21.03.2011, 05:51
Sieht gut aus das Script, nur mit der Größe würd ich aufpassen ein doppelt so großer Gegner ist meistens leichter zu besiegen als ein normaler wenn der überall hängen bleibt.

1. float zu short zuzuweisen funktioniert, es wird aber glaub ich nicht gerundet, nur ganze Zahlen werden übernommen

2. SPECIAL-Werte bleiben nicht bei 10 stehen, werden nur im Pip-Boy mit 10 angezeigt wenn sie höher sind

3. Ja, die zugehörigen Stats werden automatisch angepasst wenn SPECIAL mit modav verändert wird

Boïndil
21.03.2011, 06:04
Das ist ja ein Zufall, gerade aufgestanden, Kaffee gemacht und hier reingesehen :D

Humanoide werden maximal auf 1.1875 gesetzt, also immer noch im Rahmen der Anatomie, sowas wie ein Stiernacken-Raider.
Bei den Muties habe ich schon mit grösserem Faktor in Germantown getestet, geht gerade noch. Habe schon überlegt, den Faktor bei Innenräumen zu begrenzen.

Mal sehen, wie es sich auswirkt, wenn ein Nahkämpfer 12 Stärke hat. Es sollen nur keine negativen Werte oder ähnliche Fehler auftauchen.

Bedeute das, dass das Notieren von Crit bei Glück 10 überhaupt sinnlos ist? Und dass die Gesundheit automatisch ab Ausdauer berechnet wird? Und dass ich extreme Health-Werte über die Fallout-Formel hinaus erst am Schluss setzen muss, nachdem ich Ausdauer gesetzt habe?

walli
21.03.2011, 06:17
Also Glück beeinflusst auf jeden Fall die critchance für NPCs direkt, nur scheint das mit Health und Ausdauer anders zu sein bei NPCs, habs eben mal ausgetestet, da könnte man Ausdauer auch ganz weg lassen und sich nur um HP kümmern.

Boïndil
21.03.2011, 06:33
Werde ich so machen, wenn Ausdauer eigentlich nur zur Vanilla-Berechnung der Gesundheit verwendet wird.
Austesten muss ich das sowieso, wie sich extreme Gesundheitswerte und SPECIAL auswirken. Kann sein, dass einem Raider mit 800 Gesundheit nerven oder manche Schauplätze eher zum Unschaffbaren verändern. Vielleicht muss ich aber auch Gegner am Anfang um höhere Faktoren verstärken und am Schluss abflachen lassen.

Auf jeden Fall kann ich da nicht einfach Unmengen von Gegner spawnen lassen, aber das ist ja auch genau der Sinn: eine logische Anzahl von unlogisch knallharten Gegnern.

Übrigens vielen Dank für deine Antworten, habe schon fast gedacht, dass die Coder ausgestorben seien :D

walli
21.03.2011, 06:54
Kein Problem, hast dir ganz schön was vorgenommen, aber mir gefällt die Idee wieder weniger aber fordernde Gegner zu haben (hatte auch mit VENOM leider öfter Probleme wenn ich mehrmals die gleichen Orte besucht hab, die Spawns vermehren sich und machen das Spiel immer instabiler auf meiner alten Kiste, musste also die erledigten Gegner von Hand "disablen" wenn ich vorhatte da nochmal lang zu gehen :D).

Wäre auch gut wenn die Uniques wieder einen höheren Stellenwert hätten, hatte mal ein Jagdgewehr mit über 300 Schaden, da wird dann Venom leichter als Vanilla:eek:

Boïndil
21.03.2011, 07:35
Für mich wertet jeder Fehler und Freeze das Spiel ab und Performance ist mir heilig. Muss allerdings sagen, dass ich mit Venom Mehr Gegner keine Performance-Probleme hatte, aber ab und zu mal Probleme mit Quests, wenn ich z.B. zum Treffpunkt mit den Leuten vom Tempel der Einheit reiste und gefühlte über 10 Mirelurks die gerade aufmischten.
Dafür fehlte mir bei diesen Gegnerhorden das Schleichen und was man in Fallout 3 so Taktik nennt. Wenn ich da 20 Raider mit hoher Wahrnehmung habe und die gar schon gestapelt beim Eingang stehen, dann erscheint jedes Schleichen sinnlos. Die Erhöhung der Wahrnehmung habe ich noch entfernt und überlasse das Vanilla.

Boïndil
01.04.2011, 17:01
Bei mir ist noch eine Frage aufgetaucht.
Und zwar wollte ich eine Message ausgeben, um einige Werte wie Gesundheit vorher, nachher, Endurance, usw. auszugeben, falls eine neu eröffnete Global "wlwDebugMode" auf 1 steht.

Erster Versuch war(sinngemäss):

Begin OnActivate
If wlwDebugMode == 1
ShowMessage wlwDebugMSG HealthBefore HealthAfter Endurance usw
Activate
EndIf
End

Zweiter Versuch:

Begin OnDeath
If wlwDebugMode == 1
ShowMessage wlwDebugMSG HealthBefore HealthAfter Endurance usw
Activate
EndIf
End

Das ganze ist in einem Actor-Effect, der den Templates zugewiesen ist.
Kann das so funktionieren? Beim ersten Code weigerte sich die Leichen plötzlich, das Inventar anzuzeigen, beim zweiten passiert gar nichts.

walli
01.04.2011, 19:46
Glaube es liegt daran das 'showmessage' verhindert das 'activate' ausgeführt wird weils direkt nacheinander ausgeführt wird, bau halt ein doOnce ein und pack 'activate' in einen else-block.

Boïndil
01.04.2011, 19:57
Also auf einem Ofen(=Container) funktioniert das mit dem OnActivate, ShowMessage, Activate hervorragend. Bei einem Actor könnte das aber möglicherweise anders laufen.

Aber ich könnte das mit DoOnce in Begin GameMode machen. Könnte sein, dass die Message in PL oft aufpoppt, aber hier geht es ums Debugen und Testen. Könnte auch noch kurz einen Menu-Token erstellen, der die Global umstellt, sodass ich den Modu ingame aktivieren und deaktivieren kann.

Edit: Es hat mit Begin GameMode und DoOnce geklappt. Ein Menu zum Aktivieren der Meldungen läuft ebenfalls schon.

Aaaaaimbot
03.04.2011, 11:51
Erster Versuch war(sinngemäss):
Code:

Begin OnActivate
If wlwDebugMode == 1
ShowMessage wlwDebugMSG HealthBefore HealthAfter Endurance usw
Activate
EndIf
End

Zweiter Versuch:
Code:

Begin OnDeath
If wlwDebugMode == 1
ShowMessage wlwDebugMSG HealthBefore HealthAfter Endurance usw
Activate
EndIf
End

Das ganze ist in einem Actor-Effect, der den Templates zugewiesen ist.
Kann das so funktionieren? Beim ersten Code weigerte sich die Leichen plötzlich, das Inventar anzuzeigen, beim zweiten passiert gar nichts.
"OnActivate" ist ein selten verbugter Skriptbefehl... Solange da kein "else Activate" drinsteht, gehts nicht. "OnActivate" bedeutet nämlich nicht, daß beim Aktivieren "noch zusätzlich die Skriptzeile ausgeführt wird", sondern daß die Skriptzeile das, was beim normalen Aktivieren passiert, ersetzt!!! Also: Wenn ein OnActivate-Block ausgeführt wird und die Bedingungen, die zu einem "activate" führen, nicht erfüllt sind, dann activatet es sich auch nicht!

Und das mit dem OnDeath, könnte mir vorstellen, daß im Moment des Todes ein "activate" auch nicht richtig funktioniert.

Also, so muß es aussehen:

Begin OnActivate
If wlwDebugMode == 1
ShowMessage wlwDebugMSG HealthBefore HealthAfter Endurance usw
Activate
else
Activate ;ohne diese Skriptzeile passiert nämlich _nichts_, falls die If-Abfrage nicht erfüllt ist!
EndIf
End

Übrigens: http://geck.bethsoft.com/index.php/OnActivate

Boïndil
03.04.2011, 20:01
Stimmt, hast recht. Die Funktion läuft jetzt anders, aber gut zu wissen fürs nächste Mal.

Boïndil
06.04.2011, 14:36
Bei mir ging es jetzt weiter, indem ich eine Quest und Script erstellt habe, dass die Kills zählt, damit ich später Perks ausschütten kann.

Hier das komplette Scrript, wobei der letzte Block OnDeath nicht funktioniert, wobei es egal ist, ob ich nur On Death oder OnDeath Player definiere:


scn wlwCreatureScaleScript

short iOnce
short iScale
float fScale
short iHealth
short iRandom
short iLevel

; Debug-Output
short iDebugMsg
short msgScale
short msgLevel
short msgHealthBefore
short msgHealthAfter
short msgStrength
short msgEndurance
short msgAgility

Begin ScriptEffectStart
If iOnce == 0
Set iOnce To 1

;Gegner-Groesse setzen
Set iRandom To GetRandomPercent
Set fScale To (iRandom / 400) + 0.94
; Aussenzelle Groesse erhoehen
If IsInInterior == 0 || Player.GetInWorldspace DLC4Pointlookout == 1
Set fScale To fScale + 0.1
; Mutated Animal, Abomination
If GetIsCreatureType 1 == 1 || GetIsCreatureType 3 == 1
Set fScale To fScale + (fScale / 10)
EndIf
EndIf

SetScale fScale

; Gegner-Attribute setzen
Set iScale To 1 + iRandom * 6 / 100
ModAv Strength iScale
ModAv Endurance iScale
ModAv Agility iScale
ModAv Luck iScale
ModAv SpeedMult iScale

; Gegner-Gesundheit ermitteln
Set iLevel To Player.GetLevel
Set iHealth To 30 + iRandom + (iLevel * 16)
If iRandom > 80
Set iHealth To iHealth + 100
EndIf
If GetBaseAV Health < iHealth
ForceAv Health iHealth
EndIf

; Debug-Output
set msgScale to fScale * 100
set msgLevel to GetLevel
set msgStrength to GetAv Strength
set msgEndurance to GetAv Endurance
set msgAgility to GetAv Agility
set msgHealthBefore To GetBaseAV Health
set msgHealthAfter to GetAv Health

EndIf
End

; Debug-Output
Begin GameMode
If iDebugMsg == 0 && wlwDebugMode == 1
Set iDebugMsg To 1
AddItem wlwCreatureScaleItem 1 1
If GetInFaction wlwEnemyHardFaction
AddItem wlwEnemyHardItem 1 1
EndIf
ShowMessage wlwEnemyStatsMsg msgScale msgLevel msgHealthBefore msgHealthAfter msgStrength msgEndurance msgAgility
EndIf
End

Begin OnDeath Player
If GetInFaction wlwClassMutantFaction == 1
ShowMessage wlwGameSettingsAlertMsg
Set wlwGenericQuest.KillsAllMutants To wlwGenericQuest.KillsAllMutants + 1
EndIf
If GetInFaction wlwTypeMutantFaction == 1
Set wlwGenericQuest.KillsMutants To wlwGenericQuest.KillsMutants + 1
EndIf
If GetInFaction wlwTypeBehemothFaction == 1
Set wlwGenericQuest.KillsBehemoths To wlwGenericQuest.KillsBehemoths + 1
EndIf
If GetInFaction wlwTypeCentaurFaction == 1
Set wlwGenericQuest.KillsCentaurs To wlwGenericQuest.KillsCentaurs + 1
EndIf
If GetInFaction wlwTypeOverlordFaction == 1
Set wlwGenericQuest.KillsOverlords To wlwGenericQuest.KillsOverlords + 1
EndIf
End

Zur Erläuterung: ich habe allen Kreaturen interne Fraktionen zugewiesen, z.B. ist ein Zentaur zum einen ClassMutant, zum anderen TypeCentaur. War mir echt zu blöd, für jedes Vieh rauszufinden, wie es denn spezifiziert wurde. Das geht ja in Vanilla zuwenig weit und ist zu wenig genau, geschweige denn irgendwwie konsistent, das GetIsCreature Type ist ja geradezu lächerlich.

Wenn ich den Debug-Modus an habe, wird z.B. eine weiter Klassifizierung EnemyHard in GameMode problemlos erkannt.
Auf jeden Fall wird weder gezählt, noch die Message ausgegeben, die ich testweise unter TypeMutant eingebaut habe.
Übersehe ich da sonst was?

Kann es sein, dass in OnDeath Fraktionen nicht mehr zutreffen oder übersehe ich sonst was?

Edit
Na toll, ich glaube ich weiss, an was es liegt. Ich habe gedacht, dass ich einfach allen Muties ohne Template eine Fraktion zuweisen kann. Reicht aber offensichtlich nicht, wenn das Template eine gelevelte Kreatur ist, dann wird offenbar die Faction nicht weiter gegeben.

Nochmals Edit:
Okay, bei ein paar Muties hat der Effekt gefehlt. Das habe ich jetzt behoben und nach meiner Meldung im Begin GameMode wird auch der Gegner korrekt erkannt.
Aber: das verdammte Begin OnDeath wird offensichtlich gar nicht ausgelöst.

Diese hier müsste doch auf jeden Fall ausgelöst werden, wenn die Kreatur abkratzt:

Begin OnDeath
ShowMessage TestMessage
End

Da passiert aber gar nichts.

Das Script ist ja einem Base-Effect und dann einem Actor-Effekt zugewiesen und dieser wiederum der Kreatur.
Was in ScriptEffectStart und GameMode passiert, wird auf jeden Fall korrekt ausgeführt.
Kann es aber sein, dass OnDeath in einem Actor-Effekt keine Wirkung hat? Das erscheint mir im Moment die einzige vernünftige Erklärung.

Edit (und nochmals)

Ja, so geht es:


Begin GameMode
If IsDead == 0 && GetDead == 1
Set IsDead To 1
If GetInFaction ....
Set wlwGenericQuest.KillsOverlords To....

Oder besser gesagt: würde es gehen, wenn ich nicht die Level-Anforderung für einen Overlord mit Gatling-Laser und Gesundheit 1250 um 10 gesenkt hätte :D
Nachdm ich zum fünften Mal zermantscht wurde, muss jetzt grösseres Geschütz her...

Aaaaaimbot
06.04.2011, 20:04
Also warum das Ondeath nicht geht, kann ich zwar nicht sagen (müßte nämlich eigentlich gehen), obwohl, vielleicht geht der Actor Effect in dem Moment aus, wo die Kreatur stirbt! Das kann sein! Nämlich meine Unsichtbarkeits-Actor-Effekte gehen auch aus, sobald die Kreatur tot ist! In so nem Fall wärs wohl besser, ein Skript auf die Mutis direkt zu plazieren, dann geht das Ondeath mit Sicherheit... :D Aber wegen den Templates, les mal das hier: http://geck.bethsoft.com/index.php/Template_Data - bei "Template" kann man ja selber einstellen, was weitergegeben wird. Wenn da "Use Faction" nicht an ist, wird die Fraktion natürlich auch nicht weitergegeben. Zur Verdeutlichung: Die meisten Mutis, die Du siehst, sind "LvlSupermutantGun" oder "LvlSupermutantSonstwas" :P. Wenn bei denen "Use Faction" angehakt ist, müssen die Fraktionseinträge für ALLE möglichen Supermutanten richtig sein! Also das Template dann durchgehen - ist vermutlich eine Leveled List, z.B. EncSupermutantGun, und bei allen dort enthaltenen Mutis muß die Fraktion jeweils aktiviert sein, sonst gehts nicht.

Boïndil
06.04.2011, 21:34
Das mit dem Use habe ich schon verstanden. Bei Factions habe ich allerdings noch ein wenig Respekt, einfach Use Faction zu nehmen, denn mir sind in letzter Zeit bedenklich viele Gegner erschienen, die mich nicht angriffen, obwohl sie es sollten, vor alllem in Anchroage. Aber bei dem Kraut- und Rüben-Fraktionssystem ist es auch kein Wunder, dass da Fehler auftreten und die müssen noch nicht mal von mir sein.

Aaaaaimbot
06.04.2011, 21:38
Ob der Gegner angreift, hängt sowohl von der Fraktion als auch von der AI Data ab: Die AI kann nämlich z.B. auf "Unaggressive" stehen, dann greift derjenige nur an, wenn man ihn selber angreift; "Aggressive" heißt, er greift alles an, zu dem seine Haltung "Enemy" ist (über Fraktionen geregelt); "Very Aggressive" heißt, er greift alles an, zu dem seine Haltung nicht mindestens "Friend" oder besser ist; "Frenzied" heißt, er greift alles und jeden an, selbst identische Kopien von sich selbst. Und die Fraktionsrelationen (Friend, Ally, Enemy, Neutral) können auch zugewiesen, aber durch Quests geändert werden, z.B. wird Jing-Wei erst feindlich, nachdem man mit ihm gesprochen hat, bzw. Paradise Falls wird über "SetEnemy ParadiseFallsResidentFaction PlayerFaction" permanent feindlich.

Boïndil
06.04.2011, 21:51
Habe ich auch schon gesehen dass soclhe Dinge per Script gesetzt werden.
Dass aber plötzlich ein Trupp Dragoner mich nicht angreift, erschient mir wie ein Bug.