Also zuerst mal müssen die Variablen afaik vor das begin gamemode.
...
Müssen tun sie nicht. Im Prinzip müssen Variablen lediglich vor ihrer Verwendung deklariert sein. Aber es ist guter Programmierstil und hat sich der besseren Übersichtlichkeit halber so eingebürgert, Variablen zu Beginn anzugeben.
Zitat
3. würde ich das ganze als Questskript (einer unsichtbaren Quest) machen, da es bei deiner Lösung (Skript auf Truhe) nur arbeiten würde, wenn der Spieler in der Nähe der Truhe ist. Nachteil ist halt, dass dann die ganze Zeit im Hintergrund ein Skript läuft, was evtl. die Performance belastet.
...
Meiner Ansicht und auch Erfahrung nach, wird der Performance-Einfluss von Skripten häufig überbewertet. Ich arbeite schon lange Zeit an einer Mod mit vielen, wirklich sehr vielen und langen Skripten. Einige dicke Brummer müssen nochdazu ständig laufen. Wenn ich mir die Situation im Scriptprofiler anschaue, verursachen die Skripte die meiste Zeit gerade mal so um die 1 bis 2% Prozessorauslastung. Wenn's hoch kommt auch schon mal mehr. Das sind dann Situationen, in denen rechenintensive Funktionen zum tragen kommen, wie z.B. GetLineOfSight. Doch dabei handelt es sich um Ausnahmen. Questskripte, die (in der Grundeinstellung) alle 5 Sekunden einmal laufen, kann man imho ganz vernachlässigen, sofern man nicht gerade hunderte davon laufen hat.
Womit ich natürlich nicht sagen möchte, dass man sich nicht trotzdem darum bemühen sollte, seine Skripte so effizient wie möglich zu schreiben. Hier bei der Kiste etwa bräuchte es eigentlich weder ein Questskript (bzw. einen GameMode-Block im Skript der Kiste). Man könnte im OnActivate-Block ausrechnen, wieviele Gegenstände seit dem letzten Öffnen der Kiste hinzugekommen sind. Ungefähr so müsste es klappen (aber ungetestet):
Beim allerersten Öffnen wird ein Dietrich in die Kiste gelegt (könnte man natürlich auch schon im CS machen) und die "Zeitmessung" initialisiert. Später werden dann jeweils soviele neue Dietriche in die Kiste gelegt, wie Tage seit dem letzten Öffnen vergangen sind. Wenn die Kiste eine größere Anzahl von Dietrichen pro Tag produzieren soll, müsste man Count noch mit der entsprechenden Menge multiplizieren.