PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu "Cast"-Funktion



Atoom
28.10.2007, 13:29
Da ich gerad meine ersten Schritte im Scripten mach, wollt ich mal fragen wie man der Cast-Funktion sagt, dass sie einen Zielzauber auf NPCs, aber nicht den Spieler schießt (brauch ich für einen speziellen Dunklen Welkynd-stein. Vielen dank im Voraus!

Low Post
28.10.2007, 13:39
Wann soll der Zauber denn gezaubert werden?

Bei Aktivierung?
Da sollte dieses Skript eigentlich funktionieren:

scn CastingScript

ref Actor

Begin OnActivate
set Actor to GetActionRef (http://cs.elderscrolls.com/constwiki/index.php/GetActionRef)
if Actor != Player
Cast [Dein Spell]
endif
Activate
End

Atoom
28.10.2007, 21:10
eigendlich so wie bei einem normalen Dunklen Welkynd-Stein, also automatisch in einem Zeitintervall und wenn der NPC in seine reichweite kommt. Ich werd mal schaun wie ich damit zurecht komme. Nebenbei: die GetActionRef-Funktion is schon so inteligent das es keine Toten NPCs wählt oder? Weil wenn ich mir die beschreibung im CSwiki durchgelesen habe ist bei mir irgendwie der gedanke aufgekommen.

sorry ich wollte genau genommen wissen, wie man das Objekt (welkyndstein) dazu bringt, wenn es aktiviert wurde auf den nächsten NPC zu schießen (es wird nur einer da sein)

Edit:
und noch was: Wie bekommt man ein Objekt dazu, wenn es, durch die TriggerZone mit der es verbunden ist, aktiviert wurde, dazu auf den NPC, der die Triggerzone betreten hat, einen Zauber zu schiesen?

Low Post
29.10.2007, 01:38
eigendlich so wie bei einem normalen Dunklen Welkynd-Stein, also automatisch in einem Zeitintervall und wenn der NPC in seine reichweite kommt. Ich werd mal schaun wie ich damit zurecht komme. Nebenbei: die GetActionRef-Funktion is schon so inteligent das es keine Toten NPCs wählt oder? Weil wenn ich mir die beschreibung im CSwiki durchgelesen habe ist bei mir irgendwie der gedanke aufgekommen.

Ob GetActionRef auch bei toten reagiert weiß ich nicht, allerdings könntest du das auch mit [ActorID.]GetDead (http://cs.elderscrolls.com/constwiki/index.php/GetDead) überprüfen.

Für das Zeitintervall muss man das ganze in einen Gamemode-Block schieben und dann mit GetSecondsPassed (http://cs.elderscrolls.com/constwiki/index.php/GetSecondsPassed) den Zeitabstand überprüfen.
Für die Entfernung gibt's GetDistance (http://cs.elderscrolls.com/constwiki/index.php/GetDistance), dazu bräuchte man aber die ID der Referenz.


sorry ich wollte genau genommen wissen, wie man das Objekt (welkyndstein) dazu bringt, wenn es aktiviert wurde auf den nächsten NPC zu schießen (es wird nur einer da sein)

Wenn du die ID des NPC (genauer: der Ref) hast ist das kein Problem:

scn SteinScript

Begin OnActivate
Cast [Spell-ID] NPC-Ref
End

Oder aber, wenn solange gezaubert werden soll, bis der NPC tod ist:

scn SteinScript

short Casting
float Timer

Begin OnActivate
set Casting to 1
End

Begin Gamemode
if ( Casting == 1 ) && ( NPC-Ref.GetDead != 1 )
if Timer < 3 ;Zeitintervall in Sekunden
set Timer to Timer + GetSecondsPassed
else
Cast [Spell-ID] NPC-Ref
endif
endif
End



Edit:
und noch was: Wie bekommt man ein Objekt dazu, wenn es, durch die TriggerZone mit der es verbunden ist, aktiviert wurde, dazu auf den NPC, der die Triggerzone betreten hat, einen Zauber zu schiesen?

Du machst das Objekt zur Persistent-Referenz und legst dann auf den Trigger folgendes Skript:

scn TriggerScript

ref Target

Begin OnTrigger
set Target to GetActionRef
if ( Target != 0 ) && ( Target != Player ) && ( Target.GetDead != 1 )
Objektreferenz-ID.Cast [Spell-ID] Target
endif
End