Skripting

Moderator: Moderatoren

2 Beiträge Seite 1 von 1
moonblade
Stadtwache
Stadtwache
Beiträge: 56
Registriert: 19.08.2013 17:54
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal


Hallöchen Leute

Ich suche einen Skriptbefehl mit dem man den Kreaturentyp einer Kreatur abfragen kann. Also ob sie Untod, Daedra oder creature ist. Gibt es da einen und wenn ja wie lautet die Syntax. Ich hab da bisher leider nix gefunden.

Besten Dank und Beste Grüße

moonblade
Tealor Arantheal
Hoher
Hoher
Beiträge: 1319
Registriert: 04.01.2013 16:45
Hat sich bedankt: 122 Mal
Danksagung erhalten: 150 Mal


Im Einstieg gehst du am besten sicher, dass die Referenz (falls du eine Referenzvariable verwendest) auch sicher gesetzt ist.
Code: Alles auswählen
If Referenz != 0 ;==> Wenn die Referenz 0 wäre und sie wird bei einer Funktion angewendet, die eine Referenz erwartet, stoppt das Skript.
       If Referenz.IsCreature && Referenz.GetCreatureType == 0 ;==> Kreatur

       ElseIf Referenz.IsCreature && Referenz.GetCreatureType == 1 ;==> Daedra

       ElseIf Referenz.IsCreature && Referenz.GetCreatureType == 2 ;==> Untot

       ElseIf Referenz.IsCreature && Referenz.GetCreatureType == 3 ;==> Humanoid

       ElseIf Referenz.IsCreature && Referenz.GetCreatureType == 4 ;==> Pferd

       ElseIf Referenz.IsCreature && Referenz.GetCreatureType == 5 ;==> Riese

       EndIf
EndIf
Für beide Befehle ("IsCreature" und "GetCreatureType"), benötigst du OBSE.
"IsCreature" kannst du theoretisch weglassen. Ist nur als Sicherheit gedacht, damit die Oblivion-Engine nicht auf dumme Gedanken kommt.
Wenn deine Referenzvariable auch andere Referenzen (NPCs) speichern könnte, bin ich mir nicht sicher wie GetCreatureType reagiert.
So gehst du jedenfalls sicher, dass wirklich nur eine Kreatur in Betracht gezogen wird.

Bei Heldenverehrung und Tote erwecken musste ich anders rum auch auf Nummer sicher gehen:
Code: Alles auswählen
If Referenz.IsActor && Referenz.IsCreature == 0
Das sorgt dafür, dass auch WIRKLICH NUR NPCs von der folgenden Abfrage betroffen werden.
Selbstverständlich kann man einen Beistelltisch nicht von den Toten erwecken, allerdings hätte das zusätzliche Skript zur Verstärkung zu einem Absturz geführt, ohne diese Abfrage.
Beistelltische haben keine Aktorwerte, weil sie zu den Containern (oder Statics) gehören.
Ohne die Abfrage hätte des Skript etwas versucht, das unmöglich ist und mit Sicherheit einen Absturz ausgelöst.
2 Beiträge Seite 1 von 1

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste