1 Umsetzung mit Lua
Wenn man bestimmte Items wie zb. kleine und große Medipaks beschränken möchte kann man das mit folgenden Script tun.
Setzt zu Start nur 1 kleines und 0 große Medipaks:
LevelFuncs.OnStart = function()
SetItemCount(TEN.Objects.ObjID.BIGMEDI_ITEM, 0)
SetItemCount(TEN.Objects.ObjID.SMALLMEDI_ITEM, 1)
end
Das funktioniert wenn man ein Level / Projekt hat, was nur aus einem Level besteht - oder man zum nächsten Level wechselt OHNE jemals zum ersten Level zurückkehren kann.
Nun kann es aber ja sein, dass man das Level erneut besucht (als Hub Level).
Dann würde auch bei einem erneuten Besuch des Level (man beendet das Level und kehrt zurück) die Anzahl gesetzt werden, obwohl man vielleicht im Level schon ein kleines und großes Medipak gefunden hat und man eigentlich 2 kleine und 1 großes Medipak im Inventar hat. Um dies zu umgehen kann man folgendes in das Script einbauen:
GameVars.SetInitialItems = false
LevelFuncs.OnStart = function()
if not GameVars.SetInitialItems then
SetItemCount(TEN.Objects.ObjID.BIGMEDI_ITEM, 0)
SetItemCount(TEN.Objects.ObjID.SMALLMEDI_ITEM, 1)
GameVars.SetInitialItems = true
end
end
Erklärung:
Mit einer GameVars. Variable setzt man eine "Globale" Variable die im gesamten Spiel und nicht nur im Level gültig ist. (Im Gegensatz zu einer LevelVars. Variable die NUR im aktuellen Level gültig ist)
Wenn man diese zu Anfang auf "false" setzt und dann nachfragt ob diese "false ist" (if not GameVars.SetInitialItems then) wird der Code innerhalb des IF ausgeführt, nämlich die Anzahl der Medipaks auf 0 bzw. 1 zu setzen.
Außerdem wird die GameVars.SetInitialItems auf true gesetzt. Was bedeutet, dass die Abfrage if not GameVars.SetInitialItems then danach nicht mehr erfüllt wird. Und zwar im gesamten Spiel nicht mehr (ausser ihr setzt diese wieder auf false)
2 Umsetzung mit Node Editor
Wenn ihr das nicht mit Lua machen wollt, sondern mit dem Node Editor, so geht das auch.
Dazu geht ihr in den Tomb Editor und wählt "Edit / Edit global event sets ... " aus.
Dort erstellt ihr ein neues Event wie dieses hier:
Wichtig ist, dass ihr oben rechts bei Event: "On Level Start" auswählt, damit das Event nur dort gestartet wird.
Im Grunde macht dies dasselbe wie in Lua.
Es setzt eine Game Variable (GameVars.xxx) auf 0 (false). (If game variable is ..)
Dann entfernt ihr die Items wie Big und Small Medipaks und setzt das Small Medipak auf 1 (Add Item to Inventory)
Da es noch kein "Set Item" im Node Editor gibt, müssen wir mit "Remove Item und "Add Item" arbeiten. Remove Item (0) entfernt ALLE Items. (wird im Tooltip auch so angezeigt).
Anschließend setzen wir die Game Variable "SetInitialItems" wieder auf 1 (True) damit dies nur einmal im Spiel passiert.
Und das wars. Damit entfernt ihr einmalig im Spiel Items und setzt deren Anzahl einmalig im Spiel.