Construction Set Skriptthread zum Construction Set

Es sollte nicht so klingen, als wenn ich sauer drüber wäre ( hats aber anscheinend ^^) nur wunderte es mich halt.

/Edit: Mist, hab mir gerade nochmal dein ursprüngliches Problem durchgelesen undd festgestellt, dass du es anscheinend so beabsichtigst, dass man mehrere Klone erstellen kann... :/
ich muss mich dann wohl nochmal genauer damit befassen, um das Problem zu lösen...

Jo genauso ist es :) Es soll möglich sein, den Zauber so oft wie man möchte wirken zu können. Das mit der Faction hatte ich auch schon gedacht.
Nur hatte ich da die Befürchtung, dass wenn ich einen Angreife direkt die ganze Meute über mich herfällt :lol:
Naja danke erstmal, hoffentlich findest du eine Lösung. Ich versuchs auch weiter.
 
Ich suche den Befehl, der Abfrag, ob ein NPC nahe an einem gegenstand oder sonstwas ist, hab ich CS Wiki unter "Near" und "IsNear" oder "GetIsNear" nichts gefunden, ich weiß, dass ich den Befehl in irgendeinem TeleportSkript in den letzten tagen hier gelesen habe, finde es aber nicht wieder.
 
Ich frag nochmal (vl kann mir ja jetzt einer helfen)
Ich hab dir dort geantwortet :)
Und ich hätte dann auch mal eine Frage zu folgendem Script:
scn ErcStatueSpell

ref ErcCopyRef

Begin ScripteffectStart
Set ErcCopyRef to player.CreateFullActorCopy
ercStatueTeleportMarker.moveto player
player.movetomarker ercStatueTeleportMarker
end

Begin ScripteffectUpdate
ErcCopyRef.pms effectStone
player.sms effectstone
;Player.movetomarker ercStatueTeleportMarker

end

Begin ScripteffectFinish
ErcCopyRef.moveto Player
ErcCopyRef.addscriptpackage MQStatuePose
ercCopyRef.pickidle
erccopyref.setalert 1
ErcCopyRef.setghost 1
ErcCopyRef.setdestroyed 1

end


Das (als Zauber) sollte eigentlich eine Statue des Spielers erschaffen. Klappt soweit auch ganz gut, einziges Problem an der Sache: Die Statue soll dieselbe Pose einnehmen, wie die in Bruma. Das tun sie auch alle ganz brav - allerdings lassen sie ihre Waffen in der Scheide und halten nur apathisch den Arm hoch (außer wenn mich ganz Bruma verfolgt, dann ziehen sie ihre Waffe...)
Außerdem drehen sie noch ihren Kopf mit, wenn jemand vorbeigeht. Ich hatte ein "skipanim" drin (am schluss) aber selbst dann haben sie nicht mal ihre Pose eingenommen...
Kann mir da jemand helfen?
mfg erc
 
Zwecks dem schauen könntest du mal Look ausprobieren. Solltest dir halt möglichst ein (evtl. unsichtbares) nicht bewegliches Ziel in der Nähe aussuchen/erstellen.


Bei dem Waffe ziehen kann ich dir nicht helfen. Schau dir doch einfach das Script der Brumastatue an, da sollte das ja drinstehen.
 
Ich bräuchte ein Skript, welches die Benutzungen eines Zaubers zählt. Ich möchte nähmlich, dass
dieser Zauber nach einer bestimmten Zahl an Benutzungen aus der Liste verschwindet.
Ich habe es schon mit folgendem Skript versucht:
scn MeinSkript

short MeinZauberGlobal

begin GameMode
if player. cast MeinZauber
set MeinZauberGlobal to +1
endif
end

Und sobald die Global einen bestimmten Wert erreicht, dann würde ich den Zauber mit removespell verschwinden lassen.
Allerdings verlangt cast ein Target:cry:
Und der Zauber soll ja immer nach x Benutzungen verschwinden und nicht
nach x Benutzungen gegen ein bestimmtes Ziel...
 
Ich denke, da solltest du was mit "count" oder so machen. Das heißt, immer wenn du den Zauber sprichst, wird count um 1 erhöht. Du könntest glaube ich auch mit doonce arbeiten. Dann läuft das so ab (wenns geht):

if doonce == 0
...
set doonce to 1
endif

if doonce == 1
...
set doonce to 2

und so weiter und so fort, irgendwann schreibst du dann

if doonce == x
player.removespell xyz
endif

mit count gehts so ähnlich, kannst auch Marke oder so schreiben.
 
  • Like
Reaktionen: Lum!X
Ich bräuchte ein Skript, welches die Benutzungen eines Zaubers zählt. Ich möchte nähmlich, dass
dieser Zauber nach einer bestimmten Zahl an Benutzungen aus der Liste verschwindet.
Ich habe es schon mit folgendem Skript versucht:


Und sobald die Global einen bestimmten Wert erreicht, dann würde ich den Zauber mit removespell verschwinden lassen.
Allerdings verlangt cast ein Target:cry:
Und der Zauber soll ja immer nach x Benutzungen verschwinden und nicht
nach x Benutzungen gegen ein bestimmtes Ziel...

Ansatzt ist schon richtig, allerding ist Cast keine Abfragefunktion. Das ist dafür da einen NPC (bzw. den Spieler auf selbst) einen Zauber zaubern zu lassen.


Deine Abfrage müsst in ein MagicEffect-Script, dass du dann dem Zauber zuweist. Ich würde hier einen ScriptEffectStart-Block empfehlen.

allerdings würde ich auch noch eine Abfrage einbauen, ob auch wirklich der Player gezaubert hat, das geht bei einem Zauber auf selbst (kann ein Effect haben, selbst wenn die restlichen Effekte auf Ziel sind) mit der Abfrage GetIsReference Player. Also:

Code:
scn MyScript

Begin ScriptEffectStart
 if ( GetIsReference Player )
  set MyGlobal to ( MyGlobal + 1 )
  if ( MyGlobal >= [deine obere Grenze] )
   RemoveSpell [ID deines Spells]
  endif
 endif
End
 
  • Like
Reaktionen: Lum!X
Ich benötige für ein Skript, eine Bedingung mit welcher ich die Uhrzeit im Spiel abfragen kann.

Also nur: if (Uhrzeit) =>6 && (Uhrzeit) =<7
than ...

Ich hoffe ihr könnt mir helfen.
 
...und schon wieder eine Frage:

Ich bräuchte bitte ein Script für eine Tür:

-solange sie zugesperrt ist, soll beim Aktivieren eine Nachricht kommen.
-Wenn sie offen ist, soll man normal eintreten können.

Wäre das eventuell möglich?
 
Script auf die Tür:

Code:
scn TuerScript

Begin OnActivate
 if ( [URL="http://cs.elderscrolls.com/constwiki/index.php/GetLocked"]GetLocked[/URL] )
  Message "Diese Tür ist verschlossen"
 else
  Activate
 endif
End

Sollte eigentlich ausreichen.
 
  • Like
Reaktionen: Akasha
Ich habe nicht direkt eine Scriptfrage, sondern eine Frage über die genaue Bedeutung von Scriptbefehlen, wie z.B. getself. Die Beschreibung von CsWiki verstehe ich irgentwie nicht genau, was das Bringen soll, und wann man soetwas benutzt.

Genau das selbe ist es bei Ref befehlen, Oft sieht man Befehle wie z.b. SetBoxActivator to UserRef usw, aber was genau bringt das?

Ich benötige diese Informationen für ein Script, welches in etwa so aussehen sollte
Ich möchte nicht wissen wie das Script richtig geht, sondern die oben genannte Frage beantwortet haben
Code:
scn Pusherscript

CallerRef
TargetRef

BeginOnScriptEffektStarts
Set CallerRef to pusher
Set Targetref to pushed
pusher.PushActorAway, pushed, 120
end
 
GetSelf gibt, wenn es auf den Player manchmal einen anderen Wert als Player aus, so dass
Code:
set self to Player.GetSelf
if Self == Player
hin und wieder als nicht zutreffenden deklariert wird. Deshalb soll man für die Überprüfung, ob eine gewisse Referenz gemeint ist GetIsReference verwenden, da dort dieser Fehler nicht existiert.


Falls du aber die Ref (mit GetSelf) brauchst, um sie für einen Befehl zu verwenden (z.B. moveto Ref) kannst du das ohne Probleme machen. Darauf hat der Bug keinen Einfluss.



den Befehl SetBoxActivator kenn ich jetzt nicht und im CSWiki hab ich auch nichts dazu finden können. Wenn du aber
Code:
Set BoxActivator to UserRef
gemeint hast:

Das ist ein einfacher Set-To Befehl. Das kannst du verwenden, wenn die Beiden Variablen vom gleichen Typ sind (Ref, bzw. keine Ref). Dadurch wird die erste Variable (hier: BoxActivator) auf den gleichen Wert (die gleiche Ref) wie die 2. Variable (hier: UserRef) gesetzt.


Einzige Einschränkung, wenn der Wert nicht ganz identisch ist sind float und long/short/int-Variablen:
Wenn man eine long/short/int-Variable auf einen nicht-ganzen Wert setzt wird alles nach dem Komma abgehackt.
 
Also: Ich wollte ein Script für einen Zauber erstellen, mit dem man Leute von Essential auf No Essential stellen kann, das sieht dann so aus:
scn noessentialscript

ref ziel

begin scripteffectstart
set ziel to GetSelf
setessential ziel 0
end
Aber das hat irgendwie keine Wirkung? Weiß jemand wo der Fehler liegt?
 
Also: Ich wollte ein Script für einen Zauber erstellen, mit dem man Leute von Essential auf No Essential stellen kann, das sieht dann so aus:

Aber das hat irgendwie keine Wirkung? Weiß jemand wo der Fehler liegt?

GetSelf ergibt als Resultat die Ref-ID des Ziels. SetEssential verlangt allerdings das BaseObject.

Um das zu erhalten kannst du entweder mittels GetIsID alle möglichen BaseObjects durchlaufen lassen, oder du verwendest den OBSE-Befehl GetBaseObject.


Wenn du aber sowieso OBSE verwendest würde ich dir eher dazu raten den Befehl SetRefEssential (zusammen mit IsRefEssential) zu verwenden.


PS: so ein PI gibt es schon: SetEssentialActors
 
  • Like
Reaktionen: killerkarotte