Post Reply
547 posts • Page 19 of 28
Auch wen ich derzeit nicht Nehrim Spiele muss ich doch meine Bewunderung für deine Leistung hier aussprechen und wie kontinuierlich du dieses Projekt weiterführst!
Danke :)
Hoffentlich war ich nicht etwas zu vorschnell.
Das mit den dynamischen Kosten funktioniert, allerdings ärgert sich mein Kumpel noch ein wenig mit den Bedingungen für das Anzeigen der Dialogauswahlmöglichkeiten herum, wenn man nicht genug Gold zum trainieren hat.

Die wurden zuvor mit den Variablen "LehrerkostenBedingung1" und "LehrerKostenBedingung5" berechnet.
Nun brauchen die Dialoge jetzt auch eigene Variablen für die verschiedenen Trainingsmöglichkeiten, da der Preis sich von Fertigkeit zu Fertigkeit unterscheidet.

Ich hab schon ein Skript zum Berechnen dieser geschrieben, aber hoffentlich haut das auch so hin wie es soll.
Gamebryo kann bisweilen mühsam sein.

Edit...
Die Änderungen wurde nun in der Dokumentation aufgenommen.
System funktioniert bisher sehr gut :)
(Videotest in der Dokumentation hinzugefügt.)
Gorin wrote:
20.) Neue optionale Quest, kurz vor Abschluss der Hauptquest: "Die Sightseeing-Tour"
Wird aktiviert, wenn man vor der Entscheidung steht den Seelenschinder zu behalten oder zu vernichten.
Dazu einige Worte...
Ich hab bisher maximal um die 70 Symbole gesammelt, aber nie alle gefunden, obwohl Nehrim Expanded Dank Holomays Hinweis auch 100 Symbole enthält, hab ich immer irgendwo welche übersehen. :dead:

Darum wird der Spieler vor eine Wahl gestellt, sobald die letzte Quest angelaufen ist.
Die Rede ist eine Quest zu starten, die ALLE verbleibenden magischen Symbole auf der Karte markiert.
In der dazugehörigen Messagebox wird auch ein Warnhinweis für Benutzer der Minimap ausgesprochen. Hunderte Kartenmarkierungen anzuzeigen ist nicht gut für die Performance besonders mit dynamischer Minimap.
Ohne sollte das kein Problem sein, aber mit der Minimap, sollte man sich ein Symbol aussuchen und eine händische Markierung an dessen Stelle anbringen.
Danach die Quest wieder umschalten oder die Minimap auf den lokalen Modus umschalten (keinesfalls auf der Weltkartenansicht lassen, sonst gibts enorme Ruckler).

Zusatz: Hat der Spieler 99 Symbole gesammelt und das Letzte ist jenes in Arktwend, bekommt man automatisch einen Teleportzauber, der einen in die Höhle mit dem Symbol auf Arktwend bringt.
Da man auf keinen anderen Weg mehr nach Arktwend zurück kann, ist das ein guter Kompromiss.
Der Eingang zur Höhle wird von einer magischen Barriere versperrt, damit der Spieler nicht frei herumlaufen kann.
Immerhin war es niemals Bestandteil des Basisspiels nochmal nach Arktwend zurückzukommen, zumindestens nach Abschluss der Hauptquest.
In der Höhle wird für diesem Fall auch eine Teleportrune erscheinen, nur damit der Spieler auch wieder sicher zurück nach Nehrim kann.

Wurde wieder gestrichen. Bin gerade durch das Portal in Erothin wieder nach Arktwend gekommen.
Also kommt man doch wieder zurück :shock:
Herrlich. Man kann das Spiel so oft spielen wie man will und doch entdeckt man wieder was Neues.
Dank der Sammelquest bin ich jetzt zu Orten gekommen, die ich vorher noch gar nicht besucht habe :O
Ein paar Symbole sind echt keck versteckt ^^
Last edited by Tealor Arantheal on 06.09.2015 12:03, edited 1 time in total.
Gorin wrote:
21.) Fragwürdige Sache: Fehlerhafte Zuweisungen.
Dabei handelt es sich um ein generelles Problem. Aufgefallen ist mir das in Form einer fehlenden Wand.
Am Fuße des Bergklosters gibt es ein Eisentor, das von Wänden umschlossen ist, die aber nur sporadisch auftauchen.
Einmal fehlte eine Wand, dann war sie nach einmaligem Neuladen plötzlich da.
Für den Zweifelsfall wurden nun sämtliche Wände disabled und komplett neu eingefügt.
Nun stehen die Mauern immer.
Um ehrlich zu sein, hat mein Kumpel Erleuchtung in diese Sache gebracht und sie gefixt.
Nachdem er mir empfohlen hat, die ausgeblendeten Originalwände in TesIVEdit zu überprüfen, ist mir aufgefallen, dass manche dieser Wände unter "Name" auf Metallkelche und sonstigen Schwachsinn im Haupthaus des Bergklosters verwiesen haben, anstatt auf das zu verweisen was sie eigentlich sind: EINE WAND :roll:
Wie solche Probleme zustande kommen ist uns schleierhaft, immerhin ist es nicht das erste Mal, dass sowas passiert ist (ORN hatte einmal Haare, die meinten sie wären eine Krone (also ein Kleidungsstück und keine Frisur) :shock: ).

Wie absturzfreudig solche fehlerhaften Zuweisungen das Spiel machen bleibt offen.

Die Objekte wurden nur disabled und mit komplett neuen Objekten an der selben Stelle überschrieben, mit denen die Engine zum Glück keine Probleme hat sie anzuzeigen.

Am lustigsten war immer noch der Schemel, auf dem der Befehl der Götter liegt. Der meinte er wäre ein Stück Mais :mrgreen:

Selbst die gesunden Teile der Wand auszublenden, war womöglich übertrieben, aber ich meckere lieber nicht, sondern bin nur froh, dass jetzt kein großes Loch mehr neben dem Eisentor ist, sondern wieder eine ganze Wand erscheint :D

EDIT:
Eigenartigerweise besteht dieses Problem nicht in der Nehrim.esm.
Ich hab das jetzt selber überprüft und dort funktioniert es.
Nichts desto trotz fehlt ein Stück der Säule und die komplette Hinterseite der linken Wand (vom Bergkloster aus gesehen), selbst in der Nehrim-Hauptdatei.
Demnach ist eine Generalüberholung an dieser Stelle nicht verkehrt.
Hoffentlich ist das die einzige Stelle wo Referenzen verschlampt wurden :?

Nochmal EDIT:
Ok... Offenbar ist es doch ein Problem in der Nehrim.esm :(
Image Image
Identische FormIDs sind alles andere als gut.
Da ist es nicht verwunderlich, dass die Oblivion-Engine keinen Plan hat was sie machen soll.
Leider offenbaren sich identische FormIDs nicht immer so offensichtlich wie hier.
Ein anderer Fix wäre es, einfach eine neue FormID mittels TesIVEdit zuzuweisen, allerdings ist es eben fragwürdig wieviele identische FormIDs es in Nehrim gibt.

Das zu Fixen übersteigt leider unsere Möglichkeiten :(
Und bis auf das Problem mit der Mauer sind bisher auch nicht wirklich irgendwelche Problemchen aufgetaucht.
Hoffen wir es bleibt dabei :|
Auffälligkeit
Nachdem ich mir Baratheons Unterlagen über Arantheals Einkerkerung in Nehrim geholt habe, gings nach einigen Umwegen wieder zurück nach Cahbaet zu Taranor.
Eigenartigerweise wurde das Wetter von Regen auf wolkenlos geändert, als ich durch die Stadt ritt und Kampfeslärm war wieder zu hören (so als ob Cahbaet angegriffen wird, obwohl dieser Hauptquestverlauf schon abgeschlossen war).
Oben auf der Burg, wurden auch wieder Feuerbälle getriggert, die meinen Char umwarfen.

Ansonsten war der Questverlauft in Ordnung. Ich konnte die Unterlagen zu Taranor bringen, sein Kristall wurde entfernt und ich sollte mich aufmachen um Arantheal zu befreien.
ABER: Eigenartigerweise war die Magie meines Chars auf über 2000 Punkte angehoben. Zum Glück handelte es sich nur um eine Erhöhung der aktiven Magiepunkte, nicht der Generellen.
Also wurde im Inventar 2000 / 300 Magie angezeigt :shock:

Zaubert man kräftig, verliert man diese Exploit-Mana wieder. Woher und wieso es dazu kommt ist uns ein Rätsel.
Ich hab extra nochmal einen älteren Spielstand geladen und meine Vorgänge wiederholt.

Nur diesmal schlug das Wetter in Cahbaet nicht um und Kampfeslärm war auch keiner zu hören (wie vorgesehen).
Auch erhielt ich keine immensen Magiepunkte.

Da eine Reproduktion des Bugs offenbar schwierig ist, schreib ich das nur mal als Hinweis auf.
Wem Ähnliches passiert, sollte nochmal neu Laden, kann aber auch weiterspielen. Immerhin verliert man diese Magie irgendwann wieder, wenn man sie herunter auf den Basiswert verbraucht.
Gorin wrote:
22.) Exploit-Fix von Komplettgegenständen der Sets.
Manche Sets haben Komplettgegenstände, die der Spieler automatisch anzieht (Magiewinde, Tracht des Strassendiebs, Schlachtenstolz und Wolfsblut). Leider gab es ein Problem.
Da es sich dabei ebenfalls um eine Rüstung handelt, konnte man sie auf 125% reparieren, wenn die Handwerkskunst hoch genug war.
Dadurch bekommen diese Gegenstände eine neue ID und das Skript greift nicht mehr.
Darum konnte der Spieler den Gegenstand nach Belieben an- und ausziehen, obwohl das nur über Skript möglich sein sollte.
Um das zu beheben, wurden die 4 Komplettgegenstände nochmals als Kleidung anstatt als Rüstung erstellt (die kann man nicht reparieren).
Absofort werden nur noch diese Kleidungsstücke zugewiesen und die Rüstungsteile nicht mehr verwendet.
ACHTUNG: Wer einen laufenden Spielstand hat, in dem der Charakter einen Komplettgegenstand als Rüstung trägt, sollte vor dem Update von NE das Set ausziehen!
Als Ausgleich haben diese Kleidungsstücke Schildzauber, damit sie den Träger ähnlich schützen wie die Rüstungsteile.
Dadurch wurde offensichtlich auch dieser Bug behoben:
Gorin wrote:
Set-Bug: Wolfsblut (möglicherweise auch andere mit Komplettbonus-Gegenstand)
Das komplett ausgerüstete Set Wolfsblut fügt einen Zusatzteil hinzu, der den Slot der Halsketten belegt. Hat man das Set längere Zeit an, besteht die Möglichkeit, dass dieser Gegenstand verschwindet.
Allerdings handelt es sich dabei um einen rein visuellen Bug. Boni und Effekte, sowie Zauber sind nach wie vor vorhanden.
Woran das liegt weiß ich nicht, allerdings lässt es sich leicht durch aus- und anziehen eines Set-Gegenstands beheben.
Durch das neue Kleidungsstück ist bei mir zumindestens der Komplettbonus-Gegenstand nicht mehr verschwunden :)

Inzwischen bin ich wieder in Ostian.
Also bis morge dürfte ich komplett durch sein (inklusive Überprüfung der neuen Quest für alle 100 Symbole) und kann die neue Version hochladen.
Schluss mit dem langen Gerede!
Sämtliche dokumentierten Änderungen sind nun im ESP-Archiv hier und im Komplettpaket enthalten.
ACHTUNG! Da neue Texturen hinzukamen, muss man die Ressourcen-Datei ebenfalls neu laden, wenn man nicht das Komplettpaket herunterladet (dort ist alles enthalten).

ACH: Die Quest um alle 100 Symbole zu finden funktioniert einwandfrei, selbst nachdem der Arktwendzusatz gestrichen wurde.
Einzig das Laggen, wenn man die Quest gerade aktiv hat und eine Minimap mit dynamischen Questmarken benutzt, ist etwas nervig.
Aber je weniger Marker es werden umso flüssiger wird es wieder.
Außerdem kann man ja auch eine andere Quest aktiv schalten oder zur Lokalkarte umschalten. Damit behebt man dieses Problem.
Kleines Update

Das Ressourcen-Paket und das ESP-Archiv wurden erneuert.
Es gibt eine neue Rüstungstextur, außerdem wurde die KI des Geisterreiters verbessert.
[+]
if GetCurrentAIPackage == 0 && GetIsCurrentPackage LazaelReiterSeekHorse
	if MoveToPferd == 0
		if FrameCounter == 50
			Set DistancePferd to GetDistance GeisterpferdRef
			Set FrameCounter to 0
		elseif DistancePferd == GetDistance GeisterpferdRef
			Set FrameCounter to 0
			Set DistancePferd to 0
			Set MoveToPferd to 1
			LazaelRef.MoveTo GeisterpferdRef
		else
			Set FrameCounter to FrameCounter + 1
		endif
	endif
endif

if GetCurrentAIPackage == 22
	if IsSpellTarget MOB20KazaelSpell
		Dispel MOB20KazaelSpell
	endif
	If HasSpell MobGhostEffect == 0
		AddSpell MobGhostEffect
	endif
	if LazaelReittier == 0
		Set LazaelReittier to LazaelRef.GetHorse
		LazaelReittier.ModAV ResistParalysis 125
		LazaelRef.ModAV ResistParalysis 125
		ResetHealth
	endif
	if ActivatePferd == 0
		if FrameCounter == 25
			Set DistancePferd to GetDistance GeisterpferdRef
			Set FrameCounter to 0
		elseif DistancePferd == GetDistance GeisterpferdRef
			Set FrameCounter to 0
			Set DistancePferd to 0
			Set ActivatePferd to 1
			GeisterpferdRef.Activate GeisterpferdRef
		else
			Set FrameCounter to FrameCounter + 1
		endif
	endif
elseif GetCurrentAIPackage != 23 && IsRidingHorse == 0
	If HasSpell MobGhostEffect
		RemoveSpell MobGhostEffect
		sms GhostEffect
		SAA 0.6
	endif
	if LazaelReittier != 0
		LazaelReittier.ModAV ResistParalysis -125
		LazaelRef.ModAV ResistParalysis -125
		Set LazaelReittier to 0
	endif
endif

If IsRidingHorse
	if MoveToPferd
		Set MoveToPferd to 0
	endif
	if ActivatePferd
		Set ActivatePferd to 0
	endif
	[...]
endif
Die Fehlerbehandlungen sorgen dafür, dass der Geisterreiter nun so gut WIE IMMER auf sein Pferd aufsteigt und seinen Ritt fortsetzt.
Die erste Routine fragt, ob der Reiter sinnlos vor seinem Pferd steht und dabei noch die KI aktiv hat, mit der er das Pferd suchen soll.
Wenn dem so ist, wird er einmalig direkt zum Pferd teleportiert und sollte dadurch sofort aufsteigen.

Die zweite Routine fragt ob der Reiter in der KI stecken blieb, die aktiv ist, wenn er auf das Pferd aufsteigen soll (Packagecode = 22).
Eigenartigerweise führt er das hängen gebliebene Aufsteigen sofort aus, wenn das Pferd sich mit sich selbst spielt.
"GeisterpferdRef.Activate GeisterpferdRef"
Warum das funktioniert ist mir schleierhaft (die Lösung stammt nicht von mir), aber es funktioniert.
Ich selber habe eine Testversion erhalten, wo ebenfalls Meldungen geworfen wurden, wenn die entsprechende Routine aktiviert wurde.
Immer hat die entsprechende Routine Lazael zum Aufsteigen auf sein Pferd bewogen :O

Das Komplettpaket wird noch hochgeladen!
Ich schreib einen neuen Post, wenn das neue Komplettpaket oben ist :)
Last edited by Tealor Arantheal on 08.09.2015 13:14, edited 1 time in total.
Das Komplettpaket enthält nun ebenfalls die kleinen Änderungen.
Inzwischen sind es schon fast 460 MB...
Soweit so gut :)
Komplettpaket und ESP-Archiv hier wurden wegen einer Kleinigkeit erneuert.
Ich hab mir den Skriptfix des Geisterreiters nochmal zur Brust genommen.

Auch wenn ich mit der Lösung meines Kumpels sehr zufrieden war, wollte ich auf Nummer sicher gehen.

Es dauert nun etwas länger, bis die Fehlerbehandlungsroutinen greifen, dafür sollten sie ausschließlich dann greifen, wenn sie das auch sollen. Was heißt, dass der Reiter ab und an für ein paar Sekunden dabei beobachtet werden kann, wie er unnütz neben seinen Pferd steht, bis er Dank der Fixes wieder auf sein Pferd aufsteigt.
Außerdem: Das Pferd wird nun zu 100% zu einem Geisterpferd, solange der Reiter auf ihm sitzt.
Das Problem dabei ist, dass wenn der Spieler auf das Pferd aufsteigt, wenn es einen Alphawert von weniger als 1 hat, dass der Spieler selber zu einem Geist wird (optisch).
Durch das dynamische Ändern des Alphawerts vom Pferd wird das verhindert.
Solange der Geisterreiter auf dem Pferd sitzt sind beide gleich durchsichtig, was schön schaurig aussieht.

Steigt er ab, wird das Pferd wieder komplett sichtbar und er erhält den Alphawert von 0.7 und verliert seinen GhostEffect.
Das ist gut für die Performance (der GhostEffect sorgt für ein paar kleine Lags), außerdem kann man den Reiter besser wahrnehmen.

Zusätzlich wird der Reiter KOMPLETT geheilt, jedesmal wenn er auf sein Pferd aufsteigt.

Der Geisterreiter liegt mir einfach am Herzen, immerhin gibt's ja auch in Skyrim einen kopflosen Geisterreiter, den ich als Hommage für Nehrim betrachte:
http://elderscrolls.wikia.com/wiki/Headless_Horseman

Müssen zwar nichts miteinander zu tun haben, dennoch ist es für mich ein nettes Easter Egg.
Wer also den Kerl dabei zusehen möchte, wie er im dunklen Wald aufräumt wird seinen Spaß dabei haben :)
Interessant...

Letztens wollte ich glatt noch ein neues Geisterreitervideo machen, doch als ich heute mal zu dem Kerl schaue, steht er wie angewurzelt auf seinem Pferd da und mag seine Patroullie nicht machen, trotz richtiger Packages. Einzig wenn ich ihn angreife, reagiert er :(

Ich versuche übers Wochenende ein neues Skript zu schreiben, das ähnlich so funktioniert wie das von Fluffy.
Soll heißen es gibt keine Konditionen mehr zu denen die verschiedenen KI-Pakete ausgeführt werden.

Stattdessen werden die KI-Pakete dynamisch per Skript ausgewählt, während der Reiter selber absolute keine KI-Pakete enthält.
Möglicherweise beißt sich die Zuweisung der Konditionen mit der Ausführung der Pakete, darum sollte es leichter sein die Pakete immer einzeln und auch nur dann wenn man sie braucht zuzuführen.
Ansonsten scheint der gute Kerl wohl an seiner eingenen KI zu ersticken XD
Arme Gamebryo :(

Doku
Ich bin grad am Uploaden.
Das neue Skript sieht so aus:
[+]
scn LazaelSCN

Short EPWert
Short EPFinal
Short DoOnce
Short TrefferGesamt
Short TrefferPlayer
Short State
Short Death
ref LazaelReittier
ref LazaelReittierKampfZiel
ref LazaelKampfZiel
Float DistancePferd
Short FrameCounter
Short ActivatePferd
Short LazaelReiterPatrolRoute

Begin GameMode

if GetDead && HasEffectShader GhostEffect == 0
PMS GhostEffect
SAA 0.01
endif

if GeisterpferdRef.IsInCombat && GeisterpferdRef.GetCombatTarget != GetCombatTarget
	Set LazaelKampfZiel to GetCombatTarget
	Set LazaelReittierKampfZiel to GeisterpferdRef.GetCombatTarget
	StopCombat LazaelKampfZiel
	StartCombat LazaelReittierKampfZiel
endif

if LazaelReiterPatrolRoute == 0
	if GetDistance LazaelMarker02 < GetDistance LazaelMarker01
		set LazaelReiterPatrolRoute to 2
		if GetCurrentPackage != LazaelReiterPackage01 && GetCurrentAIPackage == 0
			AddScriptPackage LazaelReiterPackage02
		elseif GetCurrentPackage == LazaelReiterPackage01
			RemoveScriptPackage LazaelReiterPackage01
		endif
	else
		set LazaelReiterPatrolRoute to 1
		if GetCurrentPackage != LazaelReiterPackage02 && GetCurrentAIPackage == 0
			AddScriptPackage LazaelReiterPackage01
		elseif GetCurrentPackage == LazaelReiterPackage02
			RemoveScriptPackage LazaelReiterPackage02
		endif
	endif
elseif GetDistance LazaelMarker02 <= 150 && LazaelReiterPatrolRoute != 2
	set LazaelReiterPatrolRoute to 2
	if GetCurrentPackage == LazaelReiterPackage01
		RemoveScriptPackage LazaelReiterPackage01
	endif
elseif GetDistance LazaelMarker01 <= 150 && LazaelReiterPatrolRoute != 1
	set LazaelReiterPatrolRoute to 1
	if GetCurrentPackage == LazaelReiterPackage02
		RemoveScriptPackage LazaelReiterPackage02
	endif
endif

if GetCurrentAIPackage == 22
	if IsSpellTarget MOB20KazaelSpell
		Dispel MOB20KazaelSpell
	endif
	If HasSpell MobGhostEffect == 0
		AddSpell MobGhostEffect
	endif
	if GeisterpferdRef.GetActorAlpha != 0.01
		GeisterpferdRef.SAA 0.01
	endif
	if LazaelReittier == 0
		Set LazaelReittier to LazaelRef.GetHorse
		LazaelReittier.ModAV ResistParalysis 125
		LazaelRef.ModAV ResistParalysis 125
		ResetHealth
	endif
	if ActivatePferd == 0
		if DistancePferd != GetDistance GeisterpferdRef && FrameCounter == 25
			Set DistancePferd to GetDistance GeisterpferdRef
			Set FrameCounter to 0
		elseif DistancePferd == GetDistance GeisterpferdRef && FrameCounter == 25
			Set FrameCounter to 0
			Set DistancePferd to 0
			Set ActivatePferd to 1
			GeisterpferdRef.Activate GeisterpferdRef
		else
			Set FrameCounter to FrameCounter + 1
		endif
	endif
elseif FrameCounter != 0
	Set FrameCounter to 0
elseif GetCurrentAIPackage != 23 && IsRidingHorse == 0
	If HasSpell MobGhostEffect
		RemoveSpell MobGhostEffect
		sms GhostEffect
		SAA 0.7
	endif
	if GeisterpferdRef.GetActorAlpha != 1
		GeisterpferdRef.SAA 1
	endif
	if LazaelReittier != 0
		LazaelReittier.ModAV ResistParalysis -125
		LazaelRef.ModAV ResistParalysis -125
		Set LazaelReittier to 0
	endif
endif

If IsRidingHorse
	if ActivatePferd
		Set ActivatePferd to 0
	endif
	If HasSpell MobGhostEffect == 0
		AddSpell MobGhostEffect
	endif
	if GeisterpferdRef.GetActorAlpha != 0.01
		GeisterpferdRef.SAA 0.01
	endif
	if LazaelReittier == 0 && GetAV ResistParalysis != 125
		Set LazaelReittier to LazaelRef.GetHorse
		LazaelReittier.ModAV ResistParalysis 125
		LazaelRef.ModAV ResistParalysis 125
	endif
	If IsInCombat == 0 && GetCurrentAIPackage != 23 && GetCurrentPackage != LazaelReiterPackage01 && GetCurrentPackage != LazaelReiterPackage02 && GetCurrentPackage != LazaelReiterAmbushPlayer
		if LazaelReiterPatrolRoute == 1
			AddScriptPackage LazaelReiterPackage01
		elseif LazaelReiterPatrolRoute == 2
			AddScriptPackage LazaelReiterPackage02
		endif
	endif
Else
	If IsInCombat == 0 && GetDistance GeisterpferdRef <= 200 && GetCurrentAIPackage != 22 && GetCurrentPackage == LazaelReiterSeekHorse
		if LazaelReiterPatrolRoute == 1
			AddScriptPackage LazaelReiterPackage01
		elseif LazaelReiterPatrolRoute == 2
			AddScriptPackage LazaelReiterPackage02
		endif
	elseIf IsInCombat == 0 && GetDistance GeisterpferdRef <= 200 && GetCurrentAIPackage != 22 && GetCurrentPackage != LazaelReiterSeekHorse
		if LazaelReiterPatrolRoute == 1
			AddScriptPackage LazaelReiterPackage01
		elseif LazaelReiterPatrolRoute == 2
			AddScriptPackage LazaelReiterPackage02
		endif
	elseIf IsInCombat == 0 && GetDistance GeisterpferdRef <= 200 && GetCurrentAIPackage != 22 && GetCurrentPackage == LazaelReiterAmbushPlayer && Player.GetDead
		if LazaelReiterPatrolRoute == 1
			AddScriptPackage LazaelReiterPackage01
		elseif LazaelReiterPatrolRoute == 2
			AddScriptPackage LazaelReiterPackage02
		endif
	elseIf IsInCombat == 0 && GetDistance GeisterpferdRef > 200 && GetCurrentAIPackage != 22 && GetCurrentPackage != LazaelReiterSeekHorse && GetCurrentPackage != LazaelReiterAmbushPlayer
		AddScriptPackage LazaelReiterSeekHorse
	elseIf IsInCombat == 0 && GetDistance GeisterpferdRef > 200 && GetCurrentAIPackage != 22 && GetCurrentPackage == LazaelReiterAmbushPlayer && Player.GetDead
		AddScriptPackage LazaelReiterSeekHorse
	endif
endif

If IsInCombat && GetCombatTarget == Player && IsEssential && Player.GetDead == 0
	SetEssential 45Lazael 0
	if GetInFaction PlayerFaction
		SetFactionRank PlayerFaction, -1
		Player.AddSpellNS Mob20KazaelFluch
		AddScriptPackage LazaelReiterAmbushPlayer
	endif
Elseif IsInCombat && GetCombatTarget != Player && IsEssential == 0 && GetDead == 0
	SetEssential 45Lazael 1
Endif

If Player.GetHorse == GeisterpferdRef && GetInFaction PlayerFaction && Player.GetDead == 0 && GetCurrentPackage != LazaelReiterAmbushPlayer
	SetFactionRank PlayerFaction, -1
	Player.AddSpellNS Mob20KazaelFluch
	AddScriptPackage LazaelReiterAmbushPlayer
endif
;___________________Initialisierung____

if ( DoOnce == 0 )
	Set EPWert to 500 ; <----- Nur hier EP Wert eintragen!
	Set DoOnce to 1
endif

if ( State == 1 )
	if ( TrefferPlayer >= 1 )
	Set EPFinal to (TrefferPlayer*EPWert/TrefferGesamt)
	Set EP to EP + EPFinal
	Message "EP + %5.0f" EPFinal
	Set State to 2
endif
endif

end





Begin OnHit Player

Set TrefferPlayer to TrefferPlayer + 1

end





Begin OnHit

Set TrefferGesamt to TrefferGesamt + 1

end




Begin OnDeath 

if Death == 0
Set VarPlayerKills to  ( VarPlayerKills +1 )
;AddItem 4Goetterdaemmerungshelm 1
;Additem 4Goetterdaemmerungsharnisch 1
Player.RemoveSpellNS Mob20KazaelFluch
Player.AddSpell Mob20KazaelSegen
set death to 1
endif

Set State to 1

end

Begin OnActivate Player

If death == 1
	activate Player
endif
end
Etwas überladen, dafür gibt es keine KI-Pakete mehr, die sich gegenseitig fertig machen und kein überzogen verwendetes EVP.
Getestet wurde es unter 4 Bedingung.

1.) Neues Spiel
a) Charkter zum Geisterreiter teleportiert.
b) Charakter nach Treomar teleportiert und von dort zum Geisterreiter gewandert.

2.) Bestehender Spielstand mit kaputter KI
a) Charakter zum Geisterreiter teleportiert.
b) Charakter zum Bergkloster teleportiert (war in diesem Fall näher) und von dort zum Geisterreiter gewandert.

In allen Fällen hat sich der Reiter entsprechend gut verhalten.
Im neuen Spiel, ebenso wie beim bestehenden Spielstand, wurde der Reiter auch auf seiner Tour begleitet. Er ändert erfolgreich die Richtung und führt seine Patroullie endlos fort, sobald der entsprechende Zielpunkt seiner Patroullien-KI erreicht wurde.

Sobald die neuen Dateien hochgeladen sind, geb ich in einem neuen Post Bescheid.
Last edited by Tealor Arantheal on 28.09.2015 18:07, edited 3 times in total.
Komplettpaket und ESP-Archiv hier enthalten nun den KI-Fix für den Geisterreiter.
Der Kerl dürfte nun immer funktionieren.
Ebenso sein Wutrausch auf den Spieler, sofern man die Frechheit besitzt ihn anzugreifen oder sein Pferd zu klauen, hauen. ^^
Dokumentation

Dieses Wochenende wird noch eine neue Version rausgerückt, in der es nur 3 kleinere Änderungen geben wird:

1.) Das Skript für das Aufladen der Magie mittels Arkanstein wurde geändert.
Dadurch sollte der Arkanstein noch stabiler entfernt werden (kein umständlicher Umweg über eine Zutat).

2.) Im Nordosten Nehrims am Strand, findet man den Salzmeister.
Er verkauft wie zu erwarten Salz, was er schon im Basisspiel macht. Neu ist allerdings, dass man in den 3 Salzhügeln bei seinem Haus nach "Salzgestein" graben kann. Dieses lässt sich von ihm pro Salzgestein in je 5 Stück Salz verarbeiten. Allerdings verlangt er für die Verarbeitung 10 Gold pro Salzgestein.
Die genaue Anzahl (Salzgestein, daraus zu gewinnendes Salz und Preis) werden in seinem Dialog angezeigt.
Der Dialog ERSCHEINT NUR DANN, wenn man auch genug Gold für die Verarbeitung dabei hat.
Neben dem Graben nach Kohle bei den Kohlehügel vor der Köhlerei oberhalb Giliads (wo man wegen einer Kopfgeldquest hinkommt), ist das eine ähnlich einfache Möglichkeit einen eher seltenen Rohstoff zu erlangen nur in dem Fall eben Salz.
Sobald der Spieler Alchemie auf 100 hat, kann er das Salzgestein sogar selber zu Salz verarbeiten, wenn er im Inventar darauf klickt.

3.) Die Service-Funktionen werden neu vertont.
Mein Kumpel hat nun endlich einen lang ersehnten Wunsch in Angriff genommen.
Mich hat bisher immer etwas gestört: Trainer und Lehrer können 2 verschiedene Stimmen haben.
Erst die Begrüßung in der Stimmte des Lehrers, dann die Meldung über das Training in der Stimme des Lehrers.
Wenn man aber etwas kaufen möchte, kommt eine typische Verkäuferstimme, die nicht zu der Stimme des Lehrers passt.
Mittels extrahieren der bereits vorhandenen Stimmen, werden neue Aussagen für das Verkäufermenü von Trainern erstellt, damit alle NPCs immer die selbe Stimme haben.
Für diese Änderungen muss ebenfalls das Ressourcen-Paket erneuert werden.
Wie versprochen:

Update für das Komplettpaket und das Ressourcen- sowie das ESP-Archiv.
Sämtliche neuen Dialogdateien sind im Ressourcen-Paket oder dem Komplettpaket wie benötigt angeordnet.

Einige der Trainer haben nun generell eine Begrüßung mit Trainierstimme.

Die Schneehexe beispielsweise hat den Spieler zuvor mit einer Verkäufermeldung (über Tränke) begrüßt. Nun hat sie aber gleich bei der Begrüßung eine Trainerstimme, da es leider keine Dialoge von Verkäufern gibt die auch trainieren.
Mathilda in Erothin ist da die einzige Ausnahme.

Kleiner Fix: Eine neue LIP-Datei sorgt dafür, dass männliche Verkäufer von Tränken nun auch ihre Lippen bewegen, wenn sie den Spieler mit der Verkaufsmeldung über Tränke begrüßen.
Ansonsten war der Trainer der in einem kleinem Zeltlager vor dem Bergkloster haust, stumm.
Das lag daran, dass er seine Dialogdateien im Voice-Ordner von NehrimData.esp und nicht Nehrim.esm sucht.
Entsprechend wurde nun dort die benötigte Datei hinterlegt.

Diese Infos stammen nicht von meinem Test.
Ehrlich gesagt weiß ich nicht mal wieviele Händler es in Nehrim wirklich gibt :dumb:
Allerdings darf ich verkünden, dass sich mein Kumpel die RefIDs von jedem einzelnen NPC der Handeln kann rausgesucht und die nacheinander abgeklappert.
Darum bin ich absolut zuversichtlich, dass es super funktioniert :)
Update diesmal nur für das ESP-Archiv.
Ich hab derzeit leider keinen Zugriff auf Mega und kann deshalb das Komplettpaket nicht aktualisieren.
Werde das aber nachholen, sobald ich wieder Zugriff habe.

Jedenfalls wurde in der durch Nehrim Expanded wieder eingeführten Nebenquest "Schichten oder Richten" ein Bug gefixt.
Der Questverlauf wurde zu früh ausgelöst, was auf eine fehlende Abfrage zurückzuführen ist.

Sobald ich das Komplettpaket aktualisiert habe, geb ich in einem neuen Post Bescheid.
Das Komplettpaket wurde nun ebenfalls aktualisiert.
Exploit-Entschärfung für ESP-Archiv und Komplettpaket.

Von gestern auf heute hab ich nochmal einen kleinen Fix in der NehrimData.esp hochgeladen.
Die Knochengeißel (Schlagwaffe des Krypta-Sets) war eine 100%ige Exploitwaffe.
Neben dem Stilleeffekt hat sie den Gegner für 3 Sekunden einen Malus von 100 auf die Schnelligkeit beigebracht.
Leider sorgt das dafür, dass Gegner die den Zauber nicht gerade abblocken können bei jedem Schlag den Kampfmodus beenden.
Eine Geschwindigkeit von 0 (oder darunter) verursacht offenbar eine Kampfunfähigkeit.
Zwar hat dieser Effekt durchaus seinen Reiz, allerdings ist es schlicht dämlich, wenn Gegner komplett wehrlos werden, wenn man nur kräftig draufhaut.

Darum tritt dieser Effekt (heißt nun "Verwirren") jetzt nur noch zu einer Wahrscheinlichkeit von 25% pro Schlag auf (bei voller Ladung gilt das für 125 Schläge).

Da diese Waffe im Gegensatz zum Rubingroßschwert (selbstgeschmiedeter Zweihänder mit 20% Chance auf Umwerfen) noch einen zweiten Effekt hat (Stille für 20 Sekunden) verbraucht sich die Ladung allerdings ganz normal pro Schlag.
Die Waffe ist jetzt nicht mehr ganz so übermächtig, allerdings dennoch interessant zu benutzen und eine würdige Set-Waffe.

PS: Ich hab den Beitrag mit dem Skript für den Geisterreiter aktualisiert.
Eine unbehandelte Ausnahme wurde noch berücksichtigt.
Ich wollte mal testen wie schnell ich das Komplettpaket nach meinem kleinen Upgrade hochladen kann.
10 Minuten für eine lächerliche Änderung finde ich jetzt nicht so schlimm :D
Das ESP-Archiv hier im Downloadbereich ist ebenfalls erneuert.

Jedenfalls hab ich nochmal ein wenig im Skript des Geisterreiters rumgefuchst.

Von:
[+]
[...]   
   elseIf IsInCombat == 0 && GetDistance GeisterpferdRef <= 200 && GetCurrentAIPackage != 22 && GetCurrentPackage == LazaelReiterSeekHorse
      if LazaelReiterPatrolRoute == 1
         AddScriptPackage LazaelReiterPackage01
      elseif LazaelReiterPatrolRoute == 2
         AddScriptPackage LazaelReiterPackage02
      endif
   elseIf IsInCombat == 0 && GetDistance GeisterpferdRef <= 200 && GetCurrentAIPackage != 22 && GetCurrentPackage != LazaelReiterSeekHorse
      if LazaelReiterPatrolRoute == 1
         AddScriptPackage LazaelReiterPackage01
      elseif LazaelReiterPatrolRoute == 2
         AddScriptPackage LazaelReiterPackage02
      endif
[...]
Auf:
[+]
[...]
   elseIf IsInCombat == 0 && GetDistance GeisterpferdRef <= 200 && GetCurrentAIPackage != 22 && GetCurrentPackage == LazaelReiterSeekHorse
      if LazaelReiterPatrolRoute == 1
         AddScriptPackage LazaelReiterPackage01
      elseif LazaelReiterPatrolRoute == 2
         AddScriptPackage LazaelReiterPackage02
      endif
   elseIf IsInCombat == 0 && GetDistance GeisterpferdRef <= 200 && GetCurrentAIPackage != 22 && GetCurrentPackage != LazaelReiterSeekHorse
      if LazaelReiterPatrolRoute == 1 && GetCurrentPackage != LazaelReiterPackage01
         AddScriptPackage LazaelReiterPackage01
      elseif LazaelReiterPatrolRoute == 2 && GetCurrentPackage != LazaelReiterPackage02
         AddScriptPackage LazaelReiterPackage02
      endif
[...]
Im zweiten Block habe ich entsprechende Bedingungen eingefügt um Ausnahmen zu behandeln:
[...]&& GetCurrentPackage != LazaelReiterPackage01[...]
[...] && GetCurrentPackage != LazaelReiterPackage02[...]
Durch diese Abfragen wird verhindert, dass dem Reiter das KI-Paket erneut zugeführt wird.
Zuvor hätte das passieren können, da nur die Richtungsvariable abgefragt wurde und die Hauptabfrage nur wissen wollte ob das aktuelle KI-Paket auch nicht "LazelReiterSeekHorse" ist.

Ob es dadurch überhaupt zu Problemen kommen könnte weiß ich nicht sicher.
Mir ist das Spiel einmal im Dunklen Wald abgestürzt als ich mit dem vorigen Code rumspaziert bin.
Möglicherweise weil ich in Skriptreichweite des Reiters kam?
Nach dem Neuladen konnte ich jedenfalls ohne Probleme zu ihm laufen und die epische Zusammenarbeit fortsetzen.
Wobei inzwischen hab ich ihn gefällt. Bringt immerhin +5 Stärke :D

Jedenfalls ist durch diese zusätzliche Bedingung eine Lücke geschlossen.
WICHTIG!
	if zzzzzAlternativeLeveling.LevelUPInitial == 1
		TapControl 15
		Set zzzzzAlternativeLeveling.LevelUpInitial to 0
	endif
Das ist ein Überbleibsel der alten Funktion, das noch nicht entfernt wurde.
Dadurch wird im GameMode nach dem LevelUP wieder gezwungenermaßen ins Inventar gewechselt.
Leider bin ich derzeit nicht zuhause, daher kann ich das erst später fixen und kompilieren lassen.

Update für ESP-Archiv und Komplettpaket.

Das alternative Levelsystem wurde verbessert.
Bisher wurde ein gefakter, normaler Levelaufsteig durchgeführt, um alle entsprechenden Sounds (Werterhöhungs-Getrommel und Level Up-Melodie) abzuspielen.
Dafür musste aber das Menü geöffnet und geschlossen werden.

Dieser nervige Workaround ist nun gefixt.
Statt ein gefaktes, normales Level Up-Menü zu aktivieren oder einen neuen Sound für die Melodie hinzuzufügen werden einfach
Playsound
StreamMusic
verwendet, um die selben Soundeffekte wie bei einem normalen Level-Up zu erzeugen.
Das Menü wird nun also nicht mehr so nervig wie bei den Set-Gegenständen geschlossen und wieder geöffnet.

UPDATE für ORN-Patches
Da ein NPC überarbeitet wurde, mussten die Patches für ORN ebenfalls überarbeitet werden.
Last edited by Tealor Arantheal on 23.10.2015 16:57, edited 1 time in total.
Tealor Arantheal wrote:
WICHTIG!
	if zzzzzAlternativeLeveling.LevelUPInitial == 1
		TapControl 15
		Set zzzzzAlternativeLeveling.LevelUpInitial to 0
	endif
Das ist ein Überbleibsel der alten Funktion, das noch nicht entfernt wurde.
Dadurch wird im GameMode nach dem LevelUP wieder gezwungenermaßen ins Inventar gewechselt.
Leider bin ich derzeit nicht zuhause, daher kann ich das erst später fixen und kompilieren lassen.
Die Überreste dieses nervigen Workarounds sind nun ebenfalls beseitigt.
Neuestes ESP-Archiv und Komplettpaket sind verfügbar.
Post Reply
547 posts • Page 19 of 28