Folgende Situation:
Ich habe eine neue Krankheit erstellt, mit allem was dazu gehört. Die Infizierung klappt wunderbar - 0 Problemo
Abba nu kommt et:
Es soll ein Script auf die Krankheit gelegt werden, das wenn der Player dann an einen bestimmten NPC vorbeigeht, der Player darauf angesprochen wird. Das soll nicht nur 1x geschehen, sondern
jedes Mal wenn der Player sich damit infiziert. So hatte ich es mir vorgestellt:
PHP:
Scriptname UndNochNeKrankheit
short PlayerHatRotzeAmBalg
begin irgendwas
if Player.IsSpellTarget NeueKrankheit == 1
if PlayerHatRotzeAmBalg == 0
set PlayerHatRotzeAmBalg to 1
NPCRef.StartConversation player DuBistKrank
endif
endif
if Player.IsSpellTarget NeueKrankheit == 0
if PlayerHatRotzeAmBalg == 1
set PlayerHatRotzeAmBalg to 1
Message "Ihr seid wieder gesund"
endif
endif
end
Ich habe schon alles Mögliche probiert, leider mit mäßigen Erfolg.
if Player.GetDisease - Bewegt sich der NPC gar nicht
if Player.IsSpellTarget - Keine Reaktion vom NPC
Es ist immer das gleiche Ergebnis. Wenn ich vor dem NPC stehe und mir die Krankheit via Konsole zulege, kommt der Dialog wie gewünscht. Hole ich sie mir im Kampf und gehe dann zum NPC keine Reaktion.
Hier ein anderer Versuch
Dieses Script habe ich in das QuestScript gelegt. Wenn ich mir die Krankheit dann
per Konsole verpasst habe, hat es funktioniert. Der NPC hat mich sofort angesprochen. Wenn ich mir die Krankheit
jedoch in Combat geholt habe, reagierte der NPC nicht.
PHP:
Scriptname KrankheitsQuest
short PlayerHatRotzeAmBalg
Begin GameMode
if PlayerHatRotzeAmBalg == 0
if Player.IsSpellTarget DieNeueKrankheit == 1
set PlayerHatRotzeAmBalg to 1
NPCRef.StartConversation Player DuBistKrank
endif
endif
if PlayerHatRotzeAmBalg == 1
if Player.IsSpellTarget DieNeueKrankheit == 0
set PlayerHatRotzeAmBalg to 0
Message "Ihr seid wieder gesund."
endif
endif
end GameMode
Meine Idee ist nun das Script wie im ersten Teil auf die Krankheit selbst zu legen. Aber wie mache ich das? Ich bin für alle Ideen offen.
Thanx