Construction Set Verkäuferscript

Dr.Trax

Reisender
Beim kaufen von gegenständen erhält man+1 von Npc(also wie er dich mag) jedoch lösht sich diese"kundentreue" gleich wieder nachdem man gegangen ist ist das ein bug so vorgesehen oder kann man das ändern (finde den script dafür nicht)
 
Das ist kein Script sondern hart gecodet, das heißt du kannst nichts daran ändern.
Ähm... doch :-D

Das mit "hardcoded" stimmt zwar, aber theoretisch geht es schon - nur nicht generell, es erfordert ein wenig Trickserei. So, wenn man ein Script auf die NPC legt, das ausserhalb des Menumodus abfragt, wie dessen momentane Disposition gerade ist, muß man diesen Wert einfach in einer lokalen Short Var speichern. Geht der Player ins Handelsmenu, vergleicht man innerhalb Menumodus den dann gerade aktuellen Wert der Disposition mit dem gespeicherten. Hat sich der Wert geändert, berechnet man die Differenz und speichert das ganze beim Verlassen des Menumodus mit ModDisposition ab. Sobald man das Menu oder den Dialog wieder verläßt, und nur, falls die Veränderung vom Spiel zurückgesetzt wird, was man wieder mit einem Vergleich der Werte prüfen könnte. Nachteil... das läßt sich leider nicht global machen, sondern nur jeweil bei einer einzelnen NPC. Man müßte demnach ein Händlerscript haben, dass man auf die gewünschten NPCs legt - und das ist natürlich ein wenig pfui, da sich solche Trickserei mit anderen Mods mitunter ziemlich beissen wird.

Gruß,
£exa
 
Theoretisch könnte man das Script aber auch auf einen Activator in der gleichen Zelle legen... Wobei's wohl trotzdem Konflikte mit anderen Mods geben könnte.

Gruss
Kensen
 
Theoretisch könnte man das Script aber auch auf einen Activator in der gleichen Zelle legen... Wobei's wohl trotzdem Konflikte mit anderen Mods geben könnte.
Ja, das könnte man. Nur hat das dann zur Folge, dass man für jeden Händler einen eigenen Aktivator und ein eigenes Script benötigen würde. Das wäre ziemlich umständlich.
 
Ja, das könnte man. Nur hat das dann zur Folge, dass man für jeden Händler einen eigenen Aktivator und ein eigenes Script benötigen würde. Das wäre ziemlich umständlich.


Sagen wir mal so- man könnte an allen seinen Händlern das gleiche Script verwenden, z.b. so

begin meinHaendlerScript

short meineDisp
short geaendert
short gehandelt

if ( Cellchanged )

if ( meineDisp == 0 )
; kommt der Spieler erstmals rein , merken wie der Händler drauf ist
set meineDisp to GetDisposition
else
setDisposition meineDisp
endif

endif

if ( Menumode )
; ist ein Menü auf hat er womöglich...
set gehandelt to 1
else
; kein Menu auf

if ( gehandelt == 0 )
;und auch nicht gewesen
return
;raus hier
endif

; ok, das handeln wir jetzt ab,
set gehandelt to 0
;jetzt checken ob er uns vieleicht besser leiden kann
set geaendert to getdisposition
set geaendert to geaendert - meineDisp

if ( Geändert != 0 )
; hat sich was geändert?
set meineDisp to GetDisposition
endif

endif

end

Könnt aber jetzt ein das es den Befehl SetDisposition garnicht gab...
Dann wär's umständlicher, ginge aber auch irgendwie...
Achtung: das Script funktioniert nur wenn die Eingangstüre vom Laden (aussen) kein Script trägt.
 
Könnt aber jetzt ein das es den Befehl SetDisposition garnicht gab...
Dann wär's umständlicher, ginge aber auch irgendwie...
Achtung: das Script funktioniert nur wenn die Eingangstüre vom Laden (aussen) kein Script trägt.
Doch, den SetDisposition Befehl gibt es. Der setzt die Disposition fest auf den Wert von [VAR]... ModDisposition [VAR] dagegen ändert die bestehende Disposition um [VAR] nach oben oder unten.

PS: jop... etwa so sollte das Script aussehen. Hat aber noch nen fetten Nachteil. Etliche Händler bei Morrowind sind auch so schon verscriptet. Und da müßte man dann... naja, eingreifen und das ist ziemlich pfui. Wie du schon sagst, bei eigenen Tradern wäre es so zu lösen.