scn ACassassinsDistanceScript
short dist
ref Actor
begin GameMode
set Actor to this
set dist to ACXmarker.GetDistance Actor
if (dist >= 20)
Actor.setav Aggression 0
Actor.StopCombat
endif
If (dist <=1)
Actor.setav Aggression 20
endif
end
Also, wenn ich mir diesen Script so ansehe, dürfen die Npc's sobald der Script startet, sofort aufhören, dich anzugreifen.
20 Oblivion Units sind etwa 1/3 eines Meters.
scn ACassassinsDistanceScript
short dist
ref Actor
begin GameMode
set Actor to ACassassins1
set dist to ACXmarker.GetDistance Actor
Message "blubb"
end
scn ACassassinsDistanceScript
ref Actor
begin GameMode
set Actor to ACXmarker
if GetDistance Actor >=20
[INDENT]Message "blubb"[/INDENT]
else
[INDENT]Message "blubb2"[/INDENT]
endif
end
scn ACassassinsDistanceScript
short dist
[COLOR="red"]ref Actor[/COLOR]
begin GameMode
[COLOR="Red"]set Actor to ACassassins1[/COLOR]
set dist to ACXmarker.GetDistance Actor
Message "blubb"
end
scn ACassassinsDistanceScript
short dist
begin GameMode
set dist to ACXmarker.GetDistance ACassassins1
Message "blubb"
end
Das Script liegt auf den NPC's selber
bleiben wir mal bei der einfachen Variante, denn dazu hätte ich eine Frage:
Den rt markierten Teil verstehe ich nämlich nicht.Code:scn ACassassinsDistanceScript short dist [COLOR="red"]ref Actor[/COLOR] begin GameMode [COLOR="Red"]set Actor to ACassassins1[/COLOR] set dist to ACXmarker.GetDistance Actor Message "blubb" end
Acassassins1 ist doch eine Referenz, oder? Wenn ja, brauchst du dieser Referenz nicht noch mal eine (im Script erzeugte) Referenz zuweisen.
Demnach evtl so:
btw.: Worauf liegt eigentlich der Script?Code:scn ACassassinsDistanceScript short dist begin GameMode set dist to ACXmarker.GetDistance ACassassins1 Message "blubb" end
scn ACassassinsDistanceScript
short dist
ref Actor
begin GameMode
set Actor to this
set dist to ACXmarker.GetDistance Actor
if (dist >= 20)
Actor.setav Aggression 0
Actor.StopCombat
endif
If (dist <=1)
Actor.setav Aggression 20
endif
end
Daraus entnehme ich, dass er auf den NPCs liegt.
Ich würde es allerdings eher auf den Marker legen. Natürlich dann in anderer Form.
scn ACassassinsDistanceScript
begin GameMode
if Getdistance ACXmarker >= 200
Actor.setav Aggression 0
Actor.StopCombat
Elseif Getdistance ACXmarker <= 40
Actor.setav Aggression 20
endif
end