Construction Set Skriptthread zum Construction Set

wieso konnst du den denn nicht als zweiten Effekt dem Zauber anfügen? (sorry das derart Vergesslich und zu faul zum Suchen der Stelle im Thread bin)
 
@ Diarrhoe
Es funktioniert aber leider nicht... nja, doch schon, jedoch wird ein Goblin niemals einen anderen Goblin angreifen, eine Wache wird mir auch nicht helfen, Wachen zu töten. Und wenn, dann sollte es voll funktionsfähig sein, nicht nur so "irgentwie"...
Und ja! Ich meine, nicht so dass ich Stundenlang auf den Script starre, aber ab und zu versuche ich ihn funktionstüchtig zu machen.

@ Schmelz
Der Script-Effekt ist immer der letzte der in einem Zauber ausgeführt wird, deshalb zaubere ich "Kreaturen beherrschen" auf eine Leiche (funktioniert logischerweise nicht) und belebe sie dann wieder -> Sie ist immer noch feindlich gegenüber mir...
(und noch eine kleinigkeit: Der Zauber würde dann automatisch Illusion sein)
 
Zuletzt bearbeitet:
Hallo, hab mal eine frage und zwar, wenn ich in meinen Skript die Referenz ID "Schwert1. enable" hinschreibe und das Skript abspeichern will dann sagt das Programm mir immer das dass nicht funktioniert.
 
Was sagt es denn genau? Syntax-Fehler, ungültige/nicht persistente Referenz...?
Auf den ersten Blick würde ich sagen, dass du das Leerzeichen hinter dem Punkt weglassen solltest.
 
Hmm, den Fehler kenn ich noch gar nicht. Sicher, dass du das Oblivion-CS benutzt und nicht das von Morrowind? :p

Poste sonst mal das ganze Skript und die ganze Fehlermeldung.
 
Ich glaub ich das Problem gefunden. Hatte unter Referenz-ID "01Schwert1" angeben. Hatte ja auch 01Schwert1.enable hingeschrieben. Habe einfach die 01 gelöscht. Jetzt steht nur noch "Schwert.enable und schon gehts. Vielleicht gibt es ja dort Probleme mit Zahlen. Aber trotzdem Danke.

MFG
Sammael666
 
Hallo mal wieder. Ist gibt doch die Möglichkeit die Augen mit OBSE zu ändern. Verstehe dies aber nicht so ganz. Könnte mir mal jemand so ein Skript schreiben. Der Befehl lautet "Seteyes". Also wenn ich denn Zauber wirke soll die Augenfarbe gändert wird. Es soll aber auch wieder Rückgängig gemacht werden können. Also dass ich meine alte Augenfarbe zurück bekomme mit einen Zauber.

Und kann mir jemand die beiden Skripte zusammen fassen? Sie bewirken wenn man ein "Schwert1" in die Hand nimmt und z.B. ein Schild das man Schwert2 in der Hand hält und wenn man es einsteckt hat man wieder Schwert1 in der Hand. Ich hoffe ich habe das verständlich ausgedrückt. Will nämlich nicht immer ein Schild oder ein Extra Item dazu bekommen.
Also hier die Skripts:

scn ASBC
; original script by ercvomnil

float fQuestDelayTime


Begin GameMode

;--- Setting this too variable makes the script run much less often, and does the same thing as "DoOnce" hack
set fQuestDelayTime to 0.1

if ( GetContainer != Player )
Return
endif

;--- If the scimitar is equipped and sheathed, and if the shield slot has one of the other scimitar off hands...

if (Player.GetEquipped SCHWERT1 == 1 && Player.IsWeaponOut == 0 && (Player.GetEquipped SCHIELD == 1 ))

;--- ...then we want to take off the offhand so the player isn't holding when not in attack mode...

message " "
message " "
if (Player.GetEquipped SCHIELD == 1)
Player.UnequipItem SCHIELD
endif

;--- ...and equip the appropriate sheathed decoy. w00t.

if (Player.GetItemCount SCHWERT2 == 0)
message " "
message " "
Player.AddItem SCHWERT2 1
endif

message " "
message " "
Player.EquipItem SCHWERT2

;--- Finally, if the scrimitar is drawn...

elseif (Player.GetEquipped SCHWERT1 == 1 && Player.IsWeaponOut == 1 && Player.IsShieldOut == 0)

;--- ...then let's re-equip the scimitar offhand, if any...

if (Player.GetItemCount SCHIELD > 0)
message " "
message " "
Player.EquipItem 0SCHILED
endif

;--- ...and also remove any of those sheathed decoys, if any, from the inventory.

if (Player.GetItemCount SCHWERT2 > 0)
message " "
message " "
Player.RemoveItem SCHWERT2 1
endif

endif

End

Und das zweite das auf Schwert2 liegt:

scn ABC2
; original script by ercvomnil


Begin GameMode

if ( GetContainer != Player )
Return
endif

if (Player.GetEquipped SCHWERT2 && Player.IsWeaponOut == 1)

message " "
message " "
Player.EquipItem 0SCHWERT1

;--- If the scimitar weapons aren't being used at all, then let's remove the sheathed decoys, if any.

elseif (Player.GetEquipped SCHWERT1 == 0 && Player.GetEquipped SCHWERT2 == 0 && Player.GetItemCount SCHWERT2 > 0)

message " "
message " "
Player.RemoveItem SCHWERT2 1

endif

End



MFG
Sammael666
 
hi,
ich hab ein problem mit setpos und zwar verschwindet das objekt einfach
und die collision ist immer noch an der startposition vorhanden.

ich habs schon mit davor disable und dannach enable probiet funktioniert aber leider nicht
 
Zwischen "disable" und "enable" muss afaik ein Frame vergehen. In der Zwischenzeit wird dann die Kollision aktualisiert.
Ich habe auch mal irgendwo eine andere Möglichkeit gesehen, die "posCell" verwendet hat. Dadurch kann man wohl irgendwie auf das "disablen" verzichten.
 
Nicht ganz ich möchte abfragen ob eine Refernz enabled ist. Die Referenz ist ein Item. Damit ich es nehmen kann.

Hier das mal mit "getitemcount"

scn 01Altertest


Begin onActivate
if player.getitemcount abc==1
player.additem abcitem 1
abcref.disable
endif
end

Hoffe das ist jetzt einigermaßen verständlich.
 
Und jetzt möchte ich nur noch wissen wie ich eine Zeitverzögerung einbaue.
Also meine Beispiel Skript:

Begin onActivate
if player.getitemcount abc==1
player.additem abcitem 1
--------------------------
abcref.enable
endif
end

Was muss ich da "-" hinschreiben damit das "enable" erst nach 1 Tag spielzeit enablet wird?
 
nach 24 Stunden:

Code:
float Stunde

Begin GameMode
if Stunde==GameHour
abcref.enable
endif
end

Begin onActivate
if player.getitemcount abc==1
player.additem abcitem 1
set Stunde to GameHour
endif
end
oder am nächsten Tag?
Code:
Begin GameMode
if GameHour==0 && player.getitemcount abcitem>=1
abcref.enable
endif
end

Begin onActivate
if player.getitemcount abc==1
player.additem abcitem 1
endif
end
 
@ Schmelz:

Bei Deinem ersten Skript wird die Ref sofort enabled, weil die Stunde ändert sich ja nicht innerhalb eines Frames, außer man legts drauf an. Und beim zweiten muss man um 0 Uhr in der Zelle des Activators sein.
Richtig wäre es so:

Code:
Long Days

Begin GameMode

if(day >= Gamedayspassed)
    REF.enable
    set day to 0
endif

End

Begin OnActivate

if(player.getitemcount ItemID)
    player.additem abcitem 1     ; Soll es eigentlich jedes mal geaddet werden?
    set day to gamedayspassed + 1
endif

End
MfG.