Meine spoantane Idee wäre es einfach eine Kreatur zu nehmen. Also du legst ein Script auf den NPC, dass beim Aktivieren von ihm ein ForceGreeting an eine versteckte Kreatur mit dem gleichen Namen ausgibt.
Da Kreaturen ja keine "Überzeugung" haben, wäre es somit ausgeschaltet.
Eine Creature kann ich leider nicht nehmen, da diese leider nicht nur keine Überzeugung haben, sondern auch keine Skills und die NPC ist dummerweise auch noch ein Trainer
damit fällt der Vorschlag leider flach, aber für andere Gelegenheiten kann man das machen. Danke für diesen Tip - der hat mich grad auf eine nette Idee gebracht
Eine andere Möglichkeit (wahrscheinlich einfacher), wäre es bei Dialog->Persuasion (oder wie das heißt, der dritte Register halt). Entsprechende Fail-Phrasen für deinen NPC einzustellen. Wenn diese allgemein genug gehalten werden würden, müsste somit eigentlich jeder Überzeugungsversuch abgefangen werden.
Das kann man natürlich machen. Leider beeinflußt das nur die reine Textausgabe, nicht aber jedwede Veränderung der Disp, denn die wird über die GMST Parameter eingestellt und die Veränderung scheint mir eher hardcoded zu sein. Ich hab die passenden Textzeilen natürlich trotzdem eingebaut, um eine entsprechende Meldung an die Spieler zu geben, dass er sich das sparen kann (inklusive eines Counters, der mitzählt, wie viele Versuche man unternommen hat, da gibt's dann bei Erreichen einer bestimmten Menge auch noch mal eine gesonderte Reaktion ^^ )
Eine dritte Möglichkeit, du stellt einfach jede Sekunde die Disposition auf einen festen Wrt zu setzten, dann haben die Überzeugungsversuche halt keinen Einfluss.
Das war die "gruselige" Möglichkeit, die ich eigentlich gern vermieden hätte. Allerdings muß man das ingame permanent machen und ein einfaches SetDisposition reicht nicht aus. Das ändert nämlich nur die BasisDispositon. Der Spieler kann aber durch sehr teure Kleidung, Krankheiten oder extremes Charisma weiterhin die Disposition positiv wie negativ beeinflussen. Und genau das will ich komplett verhindern. Die NPC soll immer einen festen Wert haben, egal was der Spieler tut. Meine eigene Lösung sah bzw. sieht bislang so aus (Auszug aus dem lokalen Script, dass die Aktionen des Spielers überwacht).
Code:
...
[COLOR="Orange"];block Persuasion, Loot, Thievery and Cheating below this[/COLOR]
IF ( getHealth < 1 ) [COLOR="Orange"];block looting corpse - corpse will be persistant[/COLOR]
IF ( OnActivate == 1 )
MessageBox "You find nothing to loot."
return
EndIF
ElseIF ( GetPCSneaking ) [COLOR="Orange"];detect pickpocket attempts and react on it[/COLOR]
IF ( OnActivate == 1 )
IF ( BX_RS_PCSex == 1) [COLOR="Orange"];force attack female thieves
[/COLOR] set BX_ARK_YaraMood to 88 [COLOR="Orange"];uhhh, that was a bad mistake[/COLOR]
return [COLOR="Orange"];ignore the rest and let the MasterScript do what's nescessary
[/COLOR] ElseIF ( BX_RS_PCSex == 2) [COLOR="Orange"];males
[/COLOR] set BX_ARK_YaraMood to 37 [COLOR="Orange"];enforce naughty behavior[/COLOR]
ForceGreeting [COLOR="Orange"];address the player with a nasty comment
[/COLOR] return
EndIF
EndIF
EndIF
[B]IF ( menumode )
setDisposition 0[/B] [COLOR="Orange"];undo any persuasion or AIInfluences[/COLOR]
[B]modDisposition -1000000[/B] [COLOR="Orange"];knockdown Clothing/Personality and other Modifiers to Zero[/COLOR]
[B]modDisposition BX_ARK_YaraDispBase[/B] [COLOR="Orange"];force fixed Dispositon depending on Quest, Time, Mood, Sex or Place[/COLOR]
IF ( getCurrentAIPackage != RB_ARK_YaraMoveControl ) [COLOR="Orange"];block unexpected/unwanted AI-Shiftings via Console[/COLOR]
MessageBox "Cheating Yara won't get you further"
IF ( RB_ARK_YaraMoveControl = 0 )
...
Wie man sieht, die NPC hat eh schon ein ziemlich kompliziertes Scripting, das da ist nur kleiner Teil des ganzen Scripts ^^
Ich wollte nach Möglichkeit darauf verzichten, es zu scripten, aber wenn es nicht anders geht, werd ich es wohl so machen.