Construction Set Direktes Ansprechen?

n108freestyle

Abenteurer
Hi Leute,
Ich bin es mal wieder. Und ich habe folgendes problem:
Ich möchte, dass wenn der player einen Raum betritt, ein NPC
diesen direkt anspricht (also zu dem player geht)......:huh:
Aber wie mache ich das? Ich habe schonmal ausprobiert, das Package
von Ocheeva abzukupfern, aber das klappt irgendwie net. Kann mir da jemand
helfen???
 
Ist zwar ein bisschen spät, aber eine Alternative dazu wäre:
Code:
StartConversation player <Topic-ID>
Je nachdem, was du haben willst... Einen Dialog im Dialog-Fenster oder einfach nur eine Aussage des NPCs in Richtung Spieler; ersteres erwirkst du durch diesen Befehl.
 
Wenn ich das bei mir einstelle, das "StartConversation" Sagt der das die ganze Zeit, also wenn ich das Gespräch beende spricht er mich sofort wieder an. :cry:

mfg Kahmul
 
Must noch ne Variable in die If Abfrage packen wo geprüft wird ob der Player in der Zelle ist.
Diese Variable mitprüfen und dann beim Ausführen von StartConversation player <Topic-ID>, diese Variable auf nen anderen Wert setzten.

Dann wird das ganze nur einmal ausgeführt.
 
Ich habe mal so zum Test ungefähr so ein Script geschrieben:

scn Test

short doonce

begin GameMode

set doonce to == 0

if Player.GetInCell ICMarketDistrictAFightingChance

StartConversation Player, TestTopic

set doonce to == 1

endif

end
Aber wenn ich das mit Variable ( im Script rot markiert) mache, dann spricht er mich nicht an?!

Hoffe ihr könnt mir helfen :)

mfg Kahmul
 
Machs mal so:
Code:
scn name

short once

Begin GameMode
 if once == 0
  if getDistance player < x
   StartConversation player <Topic-ID>
   set once to 1
  endif
 endif
end
 
Du kannst das Geschpräch (oder alle anderen Dinge auch) nur einmal ausführen lassen, indem du If-Befehle benutzst.
Das sind Bedingungs-Skript-Befehle, die nur ausgeführt werden, wenn die Bedingung erfüllt ist.

Am Beispiel von Diarrhoe's Skript:
Alle Variable sind anfangs auf 0. Nun wird abgefragt, ob sich die Variable auf 0 befindet. Da sie das beim ersten Mal tut, wird das Skript, das sich innerhalb der If-Klammer (vom If bis zum Endif) ausgeführt. Innerhalb von diesem Skript wird die Variable "once" auf 1 gesetzt. Wenn das Skript nun ein zweites Mal läuft, wird als erstes abgefragt, ob sich "once" auf 0 befindet, was nicht der Fall ist und somit die gesamte If-Klammer übersprungen wird.