Das sieht ja schon mal sehr gut aus! *FREU*
Ja das mit der Messagebox wollte ich genau so machen,hast meine Gedanken gelesen was?!
Nö, das war einfach die einfachste Variante.
Hätte ja sein können, dass du eine MessageBox haben willst mit mehreren Auswahlmöglichkeiten, was das Geschenk ist.
Noch eine Frage :"wieso steht ganz unten: set playergold to 0"?
set PlayerGold to 0 wird bei jeder Triggerauslösung ausgelöst und setzt den Wert PlayerGold zurück auf 0. Das ist deshalb nötig, da man ansonsten nach einem Kauf für mehr als 1000 Gold bei jeder Triggerung dem Spieler ein neues "Geschenk" gegeben wird, bis er wieder in den Handelsmodus wechselt. Mit dieser Zeile passiert das nur einmal.
Edit: Ok der Erste versuch ist gescheitert,wenn ich das Script im CS speichern will kommen diese Meldungen:
Nr.1:
Warning
---------------------------
Script 'dpSEGiftScript', line 8:
Unknown variable or function 'GetItemValue'.
Nr.2:
Warning
---------------------------
Script 'dpSEGiftScript', line 8:
Syntax Error. Missing expression in set command.
*HEUL*
Die Fehlermeldungen bedeuten, dass das CS den Befehl GetItemValue in der Zeile 8 des Skripts 'dpSEGiftScript' nicht kennt und dadurch dem Setbefehl ein Parameter fehlt.
Entstehung: Verwechslung
@ LowPost: was bewirkt eigentlich der Befehl GetItemValue?
Mir kam der Befehl so bekannt vor, dennoch aber irgendwie fremd. Auch in Der Liste im CSWiki habe ich leider nichts gefunden. Was bewirkt der (Obwohl ich es mir ungefähr denken könnte). Ist er wirklich existent?
GetItemValue hab ich verwechselt mit GetItemCount.
Ich hab's im oberen Skript auch korrigiert.
btw: ich glaub mit OBSE kommt sogar ein so lautender Befehl dazu, der währe aber bei Gold normalerweiße immer 1
Mir ist gerade ein anderer Fehler aufgefallen, warum das Skript nicht funktionieren kann.
Probier's mal damit:
Code:
scn dpSEGiftScript
short DoOnce
long PlayerGold
ref ItemRef
Begin Menumode 1008 ;Container, Barter
If GetInSameCell Player ;Abfrage kann man evtl. weglassen
if DoOnce == 0 ;ist nötig, da sonst PlayerGold in jedem Frame des Handelsbildschirms bestimmt wird
set PlayerGold to Player.GetItemCount Gold001
set DoOnce to 1
endif
endif
End
Begin OnTrigger Player
if Player.GetItemCount Gold001 <= PlayerGold - 1000
set ItemRef to Player.PlaceAtMe [ID des Geschenks]
ItemRef.Activate Player ;zum verhindern von "Message-Spam"
MessageBox "Da ihr ein solch guter Kunde seit erhaltet ihr ein Geschenk des Hauses."
endif
set PlayerGold to 0
set DoOnce to 0
End
Andere Unsicherheit die mir aufgefallen ist ist, dass der Spieler nach dem Handel vor der Triggerauslösung das Gold abwerfen könnte. Vllt. lässt sich dafür aber auch eine Lösung finden.