So habe jetzt ein kleines Skript geschrieben nur leider will es nicht wie ich will

Hier ist das Skript dass ich an einen Activator gehängt habe,
es soll die Monster je nach Level auswählen und nach bedarf auch Beschwören wird aber nicht gemacht warum auch immer
Was ich im GameMode block schreibe wird doch einmal jeden Frame aufgerufen oder muss ich das Skript erst starten, wenn ja wie?

Und OnActivate sollte ausgeführt werden wenn ich den "Activator" benutzte nur da passiert auch nichts.

Code:
scn zzzSummonDefMonsterMenu01
scn zzzSummonDefMonsterMenu01

short InitDone
short Active

short Timer1
short Timer2

ref Monster1
ref Monster2
ref Monster3

Begin GameMode
	if Active == 0
		set Timer1 to Timer1 +1
		set Timer2 to Timer2 +1

		if Timer2 > 60
			set Timer2 to 0
			if Player.GetLevel > 20
				set Monster1 to zzzDungeonSummonMonster021
				set Monster2 to zzzDungeonSummonMonster022
				set Monster3 to zzzDungeonSummonMonster023
			elseif Player.GetLevel > 16
				set Monster1 to zzzDungeonSummonMonster021
				set Monster2 to zzzDungeonSummonMonster012
				set Monster3 to zzzDungeonSummonMonster023
			elseif Player.GetLevel > 13
				set Monster1 to zzzDungeonSummonMonster011
				set Monster2 to zzzDungeonSummonMonster012
				set Monster3 to zzzDungeonSummonMonster023
			elseif Player.GetLevel > 10
				set Monster1 to zzzDungeonSummonMonster011
				set Monster2 to zzzDungeonSummonMonster012
				set Monster3 to zzzDungeonSummonMonster013
			elseif Player.GetLevel > 7
				set Monster1 to zzzDungeonSummonMonster011
				set Monster2 to zzzDungeonSummonMonster002
				set Monster3 to zzzDungeonSummonMonster013
			elseif Player.GetLevel > 4
				set Monster1 to zzzDungeonSummonMonster001
				set Monster2 to zzzDungeonSummonMonster012
				set Monster3 to zzzDungeonSummonMonster003
			else
				set Monster1 to zzzDungeonSummonMonster001
				set Monster2 to zzzDungeonSummonMonster002
				set Monster3 to zzzDungeonSummonMonster003
			endif
			if InitDone <> 1
				Monster1.resurrect
				Monster1.MoveTo zzzDungeonSummonMarker01
				Monster2.resurrect
				Monster2.MoveTo zzzDungeonSummonMarker02
				Monster3.resurrect
				Monster3.MoveTo zzzDungeonSummonMarker03
				Set InitDone to 1
			endif
		endif

		if Timer1 > 600
			set Timer1 to 0
			if Monster1.GetDead == 1
				Monster1.resurrect
				Monster1.MoveTo zzzDungeonSummonMarker01
			endif

			if Monster2.GetDead == 1
				Monster2.resurrect
				Monster2.MoveTo zzzDungeonSummonMarker02
			endif

			if Monster3.GetDead == 1
				Monster3.resurrect
				Monster3.MoveTo zzzDungeonSummonMarker03
			endif
		endif
	endif
end

Begin OnActivate

	if Active == 0

		MessageBox "Es sieht so aus als könnte ich diesen Welkyd-Stein mitnehmen.", "Mitnehmen", "Finger weg"
		
		if GetButtonPressed == 0
			player.AddItem zzzGreatWelkydStone, 1
			set Active to 1
			zzzSummonDefStone01.MoveTo zzzStoneHolder01 0,0,2560
		endif

	else
		if player.GetItemCount zzzGreatWelkydStone > 0
			MessageBox "Soll ich den Beschwörungsapparat wieder aktivieren?", "Aktivieren", "Lieber nicht"

			if GetButtonPressed == 0
				player.RemoveItem zzzGreatWelkydStone, 1
				set Active to 0
				zzzSummonDefStone01.MoveTo zzzStoneHolder01 0,0,62
			endif
		else
			Message "Ich habe leider keinen großen Welkyd-Stein."
		endif

	endif

end
Und dieses Skript habe ich an die Monster gehängt, es soll die Monster nach ihrem tot wieder entfernen.
Hab ich aber noch nicht getestet da ich erst die Monster zu meinen Markern bringen will.
Code:
scn zzzSummonDefMonsterMonsterScrip

short MonsterDead

Begin GameMode

	if MonsterDead == 0
	
		if GetDead == 1
			MoveTo zzzMySummonDungeonHiddenMarker
			set MonsterDead to 1
		endif

	elseif GetDead == 0
		set MonsterDead to 0
	endif

end
Noch ein paar Kleinigkeiten

Wenn ich ein Skript an ein Objekt hänge wird dieses Skript dann für jedes Objekt erstellt oder teilen sie sich das Skript?
Ist es normal dass ein "Activator" der keinen Namen hat nicht aktivierbar ist?
Wenn ich einer Variable noch keinen Wert zugewiesen habe hat sie dann 0 oder muss ich ihr erst einen Wert zuweisen?
Was ich vermisse sind Arrays.
Die Steuerung im RenderWindow kann ich wohl auch nicht umstellen oder,
am besten wie im UnrealED