Construction Set MonatlicherTimer und Fraktionsbedingter Dialog

Hallo.

Wie kann ich per Script (glaube mittels Gameday, oder gamemonth) einen Timer starten, dass er nach jedem Monat diese und Jene aktion dürchführt)

z.B. so?

Code:
short Monthly

if Monthly < Gamemonth
set Monthly to Gameday
elseif
set Monthley to 0
; Meine Befehle hier
endif

Und wenn ich jetzt ein Dialog-Topic habe zzMeinTopic (Conditions GetInFaction SkinkgradFaction)
Darin ist ein script enthalten
Code:
 short Doonce

if doone == 0
player.additem zzmeinitem 1
endif

Wie kann ich es so machen, dass Jeder Bürger der Fraktion Skinkgrad bürger dieses Topic ein mal besitzt?

Ich könnte es jeden Bürger in ein Script legen, aber das ist nicht realisierbar.

Es geht darum, der Player spricht den SKler über das Topic an, darauf erhält er 1 Item, und das Topic verschwindet bei dem SKler, der nächste hat es aber noch, und der Player kann den um das item "fragen"

wie liese sich das Realisieren?

Und weiß keiner, wie man die summe der Kaufe/Verkäufe des Players mitzählen kann?

Oder wenigstens den Goldeingang/Goldausgang des Players?
(Wieder Monatlich) und in eine Globale Var speichern

Danke & LG

Cewie
 
1. Ein eigener Thread ist dafür nicht nötig.

2. Wenn etwas einmal im Monat ausgeführt werden soll, solltest du das Skript so schreiben:
Code:
scn name

short month
float fQuestDelayTime

Begin GameMode

if fQuestDelayTime
 set fQuestDelayTime to 2
endif

if month != GameMonth
 set month to GameMonth
 ; do stuff
endif

end

3. Es gibt das Feld "Say Once". Schonmal ausprobiert?

4. Es gibt keinen Befehl, der abfragt, wie viel der Spieler gehandelt hat, aber ich denke, man kann es umgehen:
Code:
scn name

float fQuestDelayTime
short init
short state
long gold
long old_gold
long purchased


Begin MenuMode 1009

if state == 2
 set gold to player.getItemCount gold001
 set purchased to (purchased + gold - old_gold)
endif
set state to 1
return

end


Begin MenuMode 1008

if state == 1
 set old_gold to player.getItemCount gold001
 set state to 2
endif
return

end


Begin GameMode

if init
 if state
  set state to 0
 endif
 return
endif
set fQuestDelayTime to 0.01
set init to 1
return

end

Die Variable "purchased" gibt dabei den Wert der gehandelten Sachen an und kann auch negativ sein (wenn der Spieler mehr kauft als verkauft).
 
  • Like
Reaktionen: CreamyCewie
Perfekt Danke, genau so hab ich es mir vorgestellt.

Du bist der beste...

und mit der SayOnce gilt das nicht für alle mitglieder der Fraktion?