Construction Set Begin GameMode-Script startet nicht

Fellan

Freund des Hauses
Ich habe zwei "begin GameMode"-Scripts, die einfach nicht anlaufen wollen. Der erste soll sobald das Spiel zum ersten Mal geladen wird ein Topic hinzufügen:

Code:
scn WGTAddStartQuestTopicScript

short done

begin GameMode

if done == 0
AddTopic [B]TopicID[/B]
set done to 1

end

Funktioniert nicht. Wie kann ich den Script denn sofort beim ersten ausführen starten lassen?
Der zweite Script sieht so aus:

Code:
scn WGTSetStageTo20Script

begin GameMode

if GetStage [B]QuestID[/B] 10 && getdistance player > 173
SetStage WGTQuest 20
endif

end

Der soll eigentlich bewirken, dass wenn man auf Stage 10 ist und gleichzeitig nahe an ein bestimmtes Objekt rangeht, die Stage erhöht wird. Funktioniert aber auch nicht, der Script wird schlicht nicht gestartet...
 
Du könntest beide als Questscript in dein Quest einbauen,und die Entfernung etwas höher stellen, da 70 units nur 10 cm sind
 
Wieso muss eigentlich das Topic per script geladen werden. Kann das nicht einfach im Dialogfenster hizugefügt werden. Ich meine, wenn es ein Nachfolgetopic wäre, dann per Script, aber so wird es bei Spielstart geladen. Hmmm, oder hab' ich das falsch verstanden... :roll:

Nachtrag: Ich bin mir nicht ganz sicher, aber heißt der Befehl nicht

player.getdistance

oder

getdistance actor

Ups, der erste war ein Morrowind-Befehl... :roll: Aber wie wäre es damit

PHP:
scn Test

float distance

begin GameMode

set distance to GetDistance 'TestmarkerREF'

if GetStage 'QuestID' 10 && distance < 400 
 SetStage 'QuestID' 20
endif

end
ich glaube auch, dass die 'done-Schleife' hier unnötig ist...
 
Zuletzt bearbeitet:
hmm wie kann man eigentlich Topic richtig hinzufügen?? ichhabs so gemacht wie im Tutorial: NPCs erstellen, es ging net..

@Fellan: Kann es sein, das die Variblae done in einem anderen Script verwendet wird oder so??
 
@Sandro: Das war beides richtig, nur halb, Getdistance geht nur mit 2 references.
Wie sollte auch sonst ne Enfernung gemessen werden können.
also player.Getdistance [NPC]
ohne etwas vor getdistance wird die Reference genommen auf der das script liegt.
Die Funktion kann man auch direkt in einer Bedingung verwenden, also
Code:
if player.Getdistance actor >= 400
...
endif
 
  • Like
Reaktionen: Fellan und Sandro
Bin es irgendwie von Morrowind gewohnt... Scripte wahrscheinlich eh viel zu umständlich :roll:
 
@Sandro / sinHHHans: Ich werde beide Methoden mal ausprobieren und vor allem die Entfernung auf 768 stellen.

@Xaser: Die Variable "done" ist eine Script-interne und keine globale Variable, jeder Script kann also seine "eigene" haben. Bei Globals ist das natürlich anders, da die von allen Scripts benutzt werden können.

@sinHHHans (der 2. Post): Das heißt, dass ich im Script statt "getdistance player > 768" "player.GetDistance Actor >= 768" schreiben? Oder steht dein "Actor" für die Reference-ID des Objekts, auf dem der Script liegt?

 
ja aber warum willste eigentlich das script bnutzen, und machst net einfach es auf die standart art.. wie geht die eig? mal nachgucken..
 
Genau darum geht es, ich habe keine Ahnung, wie ich ein Topic "richtig" hinzufüge. Wenn die Quest erstmal gestartet ist, ist es ja kein Problem, dann kann ich das AddTopic ja über weitere Topics und QuestStages usw. laufen lassen. ;)

Viel wichtiger ist mir im Moment aber das mit dem "SetStage" und "getdistance", weil ich das AddTopic schon über eine Tür geregelt habe - zwar umständlich, ist aber genau so, wie ich es wollte. ;)
 
@sinHHHans (der 2. Post): Das heißt, dass ich im Script statt "getdistance player > 768" "player.GetDistance Actor >= 768" schreiben? Oder steht dein "Actor" für die Reference-ID des Objekts, auf dem der Script liegt?

Ich weiß nicht genau zwischen welchen Objekten du due Entfernung messen willst,wenn du die Entfernung zw. dem objekt auf dem das script liegt und dem Spieler messen willst, dann wars so schon richtig, aber wenn du die Entfernung zwischen einem Activator [ActivatorREF] und dem player haben willst muss es heißen
Code:
player.getdistance [ActivatorREF]
oder
Code:
[ActivatorREF].getdistance player
 
Ich fange am Besten nochmal ganz von vorn an. Der Script soll folgendes machen:

Sobald ich auf QuestStage 10 bin, soll die selbe Quest auf Stage 20 geschaltet werden, wenn ich mich in einem bestimmten Abstand zu einem bestimmten Objekt (ein NPC) sieht (habe jetzt eine Entfernung von 768, das ist, denke ich, relativ nah (um die 10 Meter sollen es sein). Der Rest läuft dann im Grunde ganz von allein. Kann ich das auch per ResultScript der Stage regeln?