Seite 1 von 1

Bug: Vagabundensattel

Verfasst: 19.09.2022 17:45
von Divayth Fyr
Hi,

Ich wollte nur melden, dass das Script des Vagabundensattels (Questbelohnung für "Das Trostlose Feld") ein paar Bugs enthält:

- Man kann am Gerbgestell beliebig viele davon herstellen, wobei jeder neue Sattel das Spielerpferd um weitere 20% schneller macht. Bei 10 Sätteln (Speedmult 120 * 1,2 ^ 10 = 743,008) brettert das Pferd mit mindestens 100kmh dahin, lässt sich aber auch nur noch schwer steuern, da es einen riesigen Wendekreis hat und dabei auch oft hohe Felsen hochrennt und dann abstürzt.

- Manchmal wird nach der Herstellung das Event "OnContainerChanged" nicht ausgelöst, wodurch der Sattel ohne irgendeine Meldung im Spielerinventar bleibt und keinen Effekt auf das Pferd hat. Nachdem man den Sattel in eine Truhe gelegt und wieder entnommen hat funktioniert dann alles wieder.

- Dem Pferd wird der Sattel samt neuen Outfit auch angelegt, wenn man es noch gar nicht gekauft hat und es wird auch nirgendwo erwähnt, dass andere Reittiere wie z.B. Wirbelwind nicht damit ausgerüstet werden.



Hier das betreffende Script: _00E_FS_HeavySaddleSC
Code: Alles auswählen
Event OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer)
  if akNewContainer == Game.GetPlayer()
		_00E_FS_SaddleEquipped.Show()
		PlayerHorse.SetOutfit(_00E_FS_HeavySaddleOutfit)
		PlayerHorse.SetActorValue("speedMult", PlayerHorse.GetAV("speedMult")*1.20)
		Game.GetPlayer().RemoveItem(Self, 1)
  endIf
endEvent

Und hier ein Vorschlag, wie das Script evtl. geändert werden könnte:
Code: Alles auswählen
Event OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer)
	if akNewContainer == Game.GetPlayer()
		applySaddle()
	endIf
endEvent

Event OnEquipped(Actor akActor)
	if akActor == Game.GetPlayer()
		applySaddle()
	endIf
endEvent

Function applySaddle()
	if _00E_HorseOwned.GetValueInt() == 1
		if _00E_FS_SaddleEquippedGlobal.GetValueInt() != 1
			_00E_FS_SaddleEquipped.Show()
			PlayerHorse.SetOutfit(_00E_FS_HeavySaddleOutfit)
			PlayerHorse.SetActorValue("speedMult", PlayerHorse.GetAV("speedMult")*1.20)
			Game.GetPlayer().RemoveItem(Self, 1)
			_00E_FS_SaddleEquippedGlobal.SetValueInt(1)
		else
			_00E_FS_SaddleAlreadyEquipped.Show()
		endIf
	else
		_00E_FS_SaddleNoOwnedHorse.Show()	
	endIf
endFunction

GlobalVariable Property _00E_FS_SaddleEquippedGlobal Auto


;Message _00E_FS_SaddleAlreadyEquipped: Ihr habt eurem Pferd bereits solch einen Sattel angelegt!

;Message _00E_FS_SaddleNoOwnedHorse: Ihr besitzt derzeit kein Pferd (Der Sattel ist nicht geeignet für Esel und sonstige Reittiere)! Solltet ihr euch später ein Pferd kaufen, wählt diesen Sattel erneut in eurem Inventar aus, um das Pferd damit auszurüsten.

; Constructible Object _03E_FS_RecipeSaddle_VagabondsSaddle: evtl. noch eine zusätzliche Condition (AND GetGlobalValue _00E_FS_SaddleEquippedGlobal != 1) einfügen, damit man nach einmaligen Ausrüsten keine weiteren unnützen Sättel mehr herstellen kann.

Re: Bug: Vagabundensattel

Verfasst: 19.09.2022 19:07
von Kermit 61
Danke für den Hinweis und deinen Lösungsvorschlag :thumbsup:
Wir geben das mal an den Entwickler von Enderal SE Eddoursul weiter.

edit: spielt du Enderal classic? Dafür gibt es keine fixes mehr. In der Special Edition ist es laut Entwickler gefixt.

Re: Bug: Vagabundensattel

Verfasst: 19.09.2022 21:17
von Divayth Fyr
Ok Danke. :thumbsup:
Ja, ich hab noch die Classic Version. Wusste nicht, dass das schon gefixt wurde :oops:
Gibt es eigentlich irgendwo die aktuellen Script-Sources von SE zum einzeln Runterladen? Dann könnte ich die bei Bedarf vergleichen und evtl. einzelne kleinere Script-Fixes in die classic Version übernehmen.

Re: Bug: Vagabundensattel

Verfasst: 19.09.2022 21:29
von Kermit 61
Kann ich dir nicht beantworten.
Wie gesagt SureAI ist ist nicht der Entwickler der SE und macht lediglich die technische Anbindung/Updates auf Steam.
Am besten fragst du mal auf dem Discord Server von Eddoursul