Construction Set Kann man Persuasion blockieren?

£exa

Freund des Hauses
Jo, Frage steht ja im Titel.

Geht das irgendwie? Also sämtliche Admire, Taunt, Intimidate oder auch Bribe-Versuche bei einer NPC komplett unterbinden? Sprich, es soll entweder keinerlei Einfluß haben, ob man das macht oder es soll am besten gleich ganz unmöglich sein, diese Funktionen überhaupt anzuwählen. Also sowas wie

short NoPersuasion

..vielleicht (das gibt's nicht, aber sowas in der Art suche ich).

Über einen Zugriff auf die GameSettings ist das zwar möglich, aber das gilt ja dann gleich für alle. Ich wills aber expliziut nur bei einer NPC so haben.

Hat irgendwer Ideen? Ich hab zwar eine, aber die ist dermaßen gruselig, dass ich noch davor zurückscheue, sie einzusetzen und vielleicht hat ja jemand einen genialen Einfall :-D
 
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 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.

Eine dritte Möglichkeit, du stellt einfach jede Sekunde die Disposition auf einen festen Wrt zu setzten, dann haben die Überzeugungsversuche halt keinen Einfluss.
 
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 :D

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.
 
Zuletzt bearbeitet: