Ich hab das nun doch ein wenig anders gemacht...
...allerdings weiß ich nicht, ob Dir das so gefällt.
Auf jeden Fall ist es jetzt ein Trank, auch wenn der ein wenig "strange" ist.
Die Potion stammt nicht mehr aus der Familie "Alchemy" sondern ist ein "Misc Item", denn damit funktioniert
OnActivate.
Ich hab mir also ein neues "Misc Item" erstellt, dem Meshes und Icon eines normalen Tranks verpasst, ihn gespeichert.
Dann das Script:
Code:
begin sarah_mod_potion
short messageOn
short drink
short gone
; Deaktiviert den Trank nach einmaliger Benutzung
if ( gone == 1 )
Disable
set gone to 0
return
endif
; Funktioniert nicht, wenn das Inventar offen ist
if ( MenuMode == 1 )
return
endif
if ( OnActivate == 1 )
Set messageOn to 2
endif
if ( messageOn == 0 )
return
endif
if ( messageOn == 2 )
MessageBox "Ihr spürt, wie die magische Kraft Euch durchflutet"
Set messageOn to 1
endif
if ( messageOn == 1 )
Set drink to 1
Set messageOn to 0
endif
; Den Trank trinken
if ( drink == 1 )
player->modmagicka, 50
set gone to 1
set drink to 0
return
endif
end sarah_mod_potion
darauf gebunden.
Da der Trank jetzt ein Activator ist, sollte er irgendwo in der Gegend stehen.
Sobald der Spieler ihn anklickt tritt der gewünschte Effekt ein und der Trank verschwindet, wird disabelt.
Willst Du dem Spieler noch die Wahl geben, ob er ihn gleich trinken soll, oder mitnehmen kann, dann müßte die Messagebox-Geschichte verändert werden und die
button-Funktion eingefügt werden.
Das würde dann so aussehen:
Code:
begin sarah_mod_potion
short button
short messageOn
short drink
short gone
; Deaktiviert nach einmaliger Benutzung(Trinken)
if ( gone == 1 )
Disable
set gone to 0
return
endif
; Funktioniert nicht bei offenem Inventar
if ( MenuMode == 1 )
return
endif
if ( OnActivate == 1 )
Set messageOn to 2
endif
if ( messageOn == 0 )
return
endif
if ( messageOn == 2 )
MessageBox "Wollt Ihr den Trank trinken oder Aufnehmen um ihn später zu trinken" "Trinken" "Nehmen."
Set messageOn to 1
endif
if ( messageOn == 1 )
set button to GetButtonPressed
if ( button == 0 )
; Trinken
Set drink to 1
Set messageOn to 0
endif
if ( button == 1 )
; Aufnehmen
Activate
Set messageOn to 0
return
endif
endif
; Den Trank trinken
if ( drink == 1 )
player->modmagicka, 50
;Saubermachen
MessageBox "Euch ist ganz seltsam zumute..."
set gone to 1
set drink to 0
endif
end sarah_mod_potion
Damit kann dem Spieler die Wahl gegeben werden, ob er den Trank gleich nimmt, oder aber erst später. Allerdings muß er ihn dazu nochmals abstellen und wieder aktivieren (Leertaste).
Die Sounds hab´ ich mir jetzt erspart.
Ich hoffe damit so einigermaßen Deine Vorstellungen getroffen zu haben.
Aber Lexa´s Variante scheint die einfacherer und damit genialere Lösung zu sein.
noch nen netten Tag
Taktkonform