Sicher, dazu baust du einfach eine weitere Variable ein.
Einfach eine neue short deklarieren und dann in die Zeile mit getitemcount noch abfragen, ob sie 0 ist. Wenn ja, wird der Block durchlaufen und vor dem else setzt du sie dann auf 1.
Dazu solltest du das Script noch etwas erweitern, sonst kommt die Meldung, dass man den Gegenstand nicht hat, auch nachdem man alle platziert hat.
Sollte so aussehen:
Code:
ScriptName FNEarthShrineTributSockelScript01
short once
short activated
begin OnActivate
if (player.getitemcount FNEarthCrystel01 >= 1) && (activated == 0)
player.removeitem FNEarthCrystel01 1
FNEarthShrineTribut01.enable
FNEarthShrineFXCrytsel01.enable
set FNEarthShrineOpenGate to FNEarthShrineOpenGate + 1
set activated to 1
elseif (player.getitemcount FNEarthCrystel01 <= 0) && (activated == 0)
Message "Ihr habt den benötigten Gegenstand nicht"
endif
end
begin GameMode
if (FNEarthShrineOpenGate >= 3) && (once == 0)
[Hauptgegenstand-Ref].enable
set once to 1
endif
end
Diarrhoe schrieb:
Ich gehe davon aus, dass die Global "FNEarthShrineOpenGate" "short" ist und einen Default-Wert von 0 hat...
Wie setzt du diese Variable auf den benötigten Wert von (über) "3" in der Kondition des GameMode-Blocks?
Edit: Wieso benutzt du dort überhaupt einen GameMode-Block?
Der Block hat schon seinen Grund.
Der ist bei einem der Sockel und er möchte, dass wenn in allen drei Sockeln ein Gegenstand platziert wurde, ein anderer enabled wird. Dafür wird in dem Script im OnActivate-Block die Global FNEarthShrineOpenGate um 1 erhöht, wenn man einen reinlegt.
Im GameMode-Block wird dann abgefragt, ob in allen dreien ein Gegenstand ist bzw ob drei platziert wurden. Deswegen wird die Global abgefragt. Wenn sie >=3 ist, läuft das Script weiter. Damit der Gegenstand nur einmal enalbed wird, ist once eingefügt.