Hallo, ich habe eine frage wie kann ich einen Trank erstellen der die Skills permanent steigert wie in Gothic?
Es wird das einfachste sein einen neuen Zauber, Typ Fähigkeit zu erstellen und dem Spieler diese Fähigkeit per Addspell zu verleihen -
das ist bei MW/Oblivion allerdings recht schwierig da der Trank nicht mehr "merkt" wenn er genommen wird. Es lässt sich mit OnPCEquip also leider nicht feststellen/ auswerten wenn der Spieler den Trank einnimmt.
So gibt es nur die Möglichkeit an den Trank einen anderen, möglichst seltenen/unbenutzten Effekt zu koppeln und von "aussen" (durch ein anderes Script) zu überwachen ob der Effekt des Trankes am Spieler aktiv und der Trank aus dem Inventar des Spielers verschwunden ist.
Damit das "kontrolliert" abläuft sollte vieleicht verhindert werden das der Spieler die Zelle mit dem Trank im Inventar nicht verlassen kann. Im Script des Trankes sollte also lediglich stehen
begin blablaTrank
disableTeleporting
end
an den Türen der Zelle
begin blablaTür
if ( Player-> GetItemCount "so ein Trank" > 0 )
if ( OnActivate )
messagebox "Ihr müsst den Trank erst trinken"
endif
endif
end
und an einem Aktivator/ NPC in der Zelle etwa so ein Script:
begin blablaCheck
short hatTrank
float Augenblick
if ( Player-> GetItemCount "so ein Trank" > 0 )
; hat der Spieler so einen Trank
; merken wir uns das mal
set hatTrank to 1
else
; er hat keinen Trank,
if ( hatTrank == 1 )
; hatte aber vorher einen
if ( Player-> GetEffect
sEffectname )
; und steht jetzt unter einem Effekt (der an dem Trank vorhanden sein muss)
; siehe dazu Editor-Hilfe, Magic Effect List
set hatTrank to -1
; dann müsste er den Trank getrunken haben
Player-> Addspell "die neue Fähigkeit"
else
; der Trank ist weg- aber der Effekt nicht da?
; naja, möglicherweise ist der Effekt noch nicht aktiv solange das Inventar auf ist
; wir warten also kurz ab:
if ( MenuMode == 0 )
set Augenblick to Augenblick + GetSecondsPassed
if ( Augenblick >= 0.5 )
; eine halbe Sekunde nach Menü-Zu sollte reichen
; ist der Trank also irgendwie anders verschwunden
set hatTrank to 0
set Augenblick to 0
endif
endif
endif
endif
end