Ich bin gespannt, was der ScriptCompiler zu dem Script sagt
Code:
begin caff_skript
short doonce
IF ( menumode != 0 )
Return
ElseIF ( doonce < 0 )
Return
ElseIF ( doonce == 0 )
01skriptest->disable
set doonce to 1
return
EndIF
IF ( GetDisabled )
IF ( ( player->GetItemCount "01111schluessel" ) >= 1 )
01skriptest->enable
EndIF
return
EndIF
If ( ( GetDistance player ) <= 512 )
IF ( ( player->GetItemCount "01111schluessel" ) >= 1 )
set doonce to -1
ForceGreeting
EndIF
EndIF
end
Dieses Script sorgt dafür, dass:
1. die NPC einmalig disabled wird.
2. Sie wird wieder aktiviert, sobald der Spieler auch nur einmal den Schlüssel bei sich trägt, während er die Zelle betritt.
3. wenn sich der Spieler dann der NPC nähert, ohne den Schlüssel noch bei sich zu haben, passiert nichts.
4. Hat er den Schlüssel dabei und kommt der NPC zu nahe, wird er angesprochen.
Die NPC benötigt allerdings noch ein Greeting, das über die Variable doonce angesteuert wird. Es könnte ja sein, dass der Spieler diesen Schlüssel nicht dabei hat und die NPC von sich aus anspricht... dann sollte nichts passieren. Dies regelt man am einfachsten über die Greeting selbst, indem man ihr die Condition:
Local "doonce" == -1
verpaßt. Dieses Greeting wird also nur dann aktiv, wenn das Script im Frame zuvor festgestellt hat, dass der Spieler den Schlüssel im Inventar trägt und der NPC von sich aus den Dialog beginnt. Dann muß nur noch In das Result des Greeting folgendes eingetragen werden:
SetFight 100
StartCombat player
Goodbye
Das sollte es gewesen sein.
Grüße,
£exa