Construction Set Skriptthread zum Construction Set

kann ich eigentlich mehrere objekte in einer variablen speichern?

Setbones to player.GetItemCount skelBoneThin01 + player.GetItemCount skelBigBone01 + player.GetItemCount skelClavicle01

würde sowas gehen?^^
 
Was willst du denn genau machen?
Du willst, dass die Variabel "bones" durch mehrere Items des Spielers hochgesetzt wird oder?
 
schwer zu erklären

ich will das "Bones" alle knochenarten enthält^^

und später iwie mit dem befehl remove nicht jede art knochen einzeln einstellen muss sondern einfach nur Bone, sodass alle knochen verschwinden...:?
 
Oh man, bei dir wird's immer schwerer. Wenn, wirst du alle Knochen einzeln Removen müssen. Mir ist keine Möglichkeit bekannt, alle Items einer Variabel zu entfernen.
 
Ich habe das jetzt noch mal ausprobiert, doch es wird wieder die Nachricht angezeigt das "[TuerID](ohne Klammern).Enabled" kein command ist. Vielleicht verstehe ich was falsch. Was ist den jetzt genau die ReferenceID?
 
Wenn du im Render-Fenster die Tür doppelt Anklickst, kommt eine EingabeMaske, wo ganz oben ein Feld "Reference-Id" ist, das ist die IndividuelleId für jeden Gegenstand im Cs, und wird nacher im Spiel nicht sichtbar sein. Außerdem musst du in dieser Maske noch ganz unten "Persisten Reference" ankreuzen.
 
  • Like
Reaktionen: John Sheppard
Ok ich bräuchte ein paar Skripts für meine Assassins Creed Mod.

Ich hab keine Ahnung, was so mit den Skripts in Oblivion möglich ist und was es so für Befehle gibt. Deswegen werd ich mal versuchen, euch ein bisschen Pseudocode hier reinzustellen und ihr müsstet mir dann sagen, ob das so geht oder nicht. Und fals es geht, eventuell noch das passende Skript abliefern.

Ok ich versuchs so gut wie möglich zu erklären. :-D

Skript 1: Ich will versuchen die Armklinge zu animieren. Ich hab mir das so vorgestellt.

Wenn Handschuhe ausgerüstet
Wenn Faustkampf aktiviert ist​
spiele Animation zum ausfahren der Klinge ab​
sonst​
spiele Animation zum einfahren der Klinge ab​
endIf​
endIf

Ich weiß nicht, ob man Animationen überhaupt per Skript ansprechen kann und fals doch, ob man vielleicht sogar direkt Frames ansprechen kann, wie beim Flash Actionscript. Wenn das der Fall ist könnte man vielleicht sogar nur eine Animation machen.

Skript 2: Hier gehts um das Kurzschwert auf dem Rücken. Pseudocode geb ich hier mal nicht, aber ich versuchs zu erklären.

Und zwar möchte ich es ermöglichen, dass eine Einhand Waffe vom Rücken aus gezogen werden kann. Das Schwert liegt dabei so, wie auf dem Bild, auf dem Rücken.
schwertback.jpg

Es ist erstmal egal, ob das Ganze mit oder ohne Animation funzt. Ich möcht erstma nur wissen, ob es überhaupt geht. Ich weiß, dass es mit OBSE höchstwahrscheinlich geht, aber geht es auch ohne OBSE?

Ich möchte meine Mod nämlich glaube nicht von OBSE abhängig machen.

Hoffe ihr könnt mir helfen.:)

Danke schonma im vorraus.
 
Es müsste therorethisch gehen, allerdings nur mit OBSE. Außerdem hab ich leider grade keinen Obse Befehl gefunden, er Abfragt, ob der Spieler HandToHand benutzt. Es gibt zwar Befehle, die Abfragen welche Waffe benutzt wird, aber nicht, ob HandToHand,

Script2. Nein, hier wirst du neue Animationen erstellen müssen.
 
Es müsste therorethisch gehen, allerdings nur mit OBSE.

Sicher dass das erste Skript auch nur mit OBSE geht? Ich bin auf die Idee gekommen, weil es in der Arena glaube auch sone getriggerte Animation gibt. Bei einem Gegner fällt nämlich die Waffe auf den Boden und bleibt mit der Schneide im Boden stecken und der Griff hängt in der Luft. Also das is auf jedenfall ne getriggerte Animation und nicht Havok.

Es gibt zwar Befehle, die Abfragen welche Waffe benutzt wird, aber nicht, ob HandToHand,...

Fällt dir vielleicht noch eine andere Abfrage Möglichkeit ein, wie man das realiesieren kann. Das mit dem Faustkampf war ja nur ein Beispiel. Ich möcht nur, dass die Ani beim Faustkampf abgespielt wird, vielleicht kann man das noch anders Abfragen.

Script2. Nein, hier wirst du neue Animationen erstellen müssen.

Heißt das, wenn ich neue Animationen mache geht aus auch ohne OBSE oder ist OBSE so oder so Pflicht?
 
Nein nein, du versteht mich falsch, ich meine, das die Abfrage ob der Spieler HandToHand benutzt geht nur mit Obse, das mit den Animationen ist kein Problem, die lassen sich problemlos mit einem Script starten....nur halt die Abfrage ob der Spieler ohne Waffe kämpf.....
 
Ok sieht also so aus als würd ich um OBSE net drum rumkommen.

Nur noch eine Skript Anfrage fals ich OBSE nicht nutze.

Ich hab das Schwert zurzeit auf den Quiver Slot gelegt, was bedeutet das Schwert ist eigentlich ein Pfeil. :ugly:
Das Problem ist jetz. Sobald man einen Bogen nimmt und damit schießt, verschwindet natürlich das Schwert vom Rücken da die "Pfeile" ja alle sind.

Gibt es eine Möglichkeit Pfeile nicht verwendbar zu machen, aber trotzdem ausrüstbar. Wenn ich es im CS als Quest Objekt kennzeichne, kann man es zwar nicht mehr verwenden, aber auch nicht mehr ausrüsten.
Fals das nicht geht, hätte ich noch die Idee, die Pfeile einfach unendlich zu machen. Sprich bei irgendeiner Aktion, am betsen beim Schießen, bekommt man neue Pfeile dazu.
Die erste Variante wäre mir aber lieber.

Und fals ich OBSE doch verwende, kann ich mich wegen den Skripts dann nochma an dich wenden? :)
 
Nicht, ich glaube nicht, das man sie unbenutzbar machen kann, ich kann dir aber einen Script schreiben, damit das Schwert automatisch wieder "Voll" wird^^.

Code:
Begin GameMode
If ( Player.GetItemCount IddesSchwertes < 1 )
Player.AddItem IddesSchwertes, 1
endif
end
 
  • Like
Reaktionen: Nexon
Hallo!

Ich hätte ein Modidee mit der ich rumüben möchte. Zuerst möchte ich aber wissen, ob folgende Aktion per Script überhaupt möglich ist:

Als Beispiel nehme ich eine Tischdecke und eine Blumenvase. Ich habe mir gedacht, die Tischdecke als Container anzulegen, die NUR mit einer bestimmten Anzahl von Vasen und Blumen befüllt werden kann. Gebe ich z.B. 1x "Vase blau" und 1x Blumen rein, sollte zentral auf der Tischdecke ein blaue Vase mit Blume stehen. Gebe ich hingegen 2x Blumen und 1X "Vase rot" und 1x "Vase rot" "in" die Tischdecke, sollte die eine Blumenvase rechts und die andere Vase links stehen.

Geht sowas per Script? Wie sieht so ein Script aus? :huh:

Ich bedanke mir schonmal und möchte das Prinzip in so einem Fall verstehen.
 
Nein, variable Positionen sind leider nicht möglich,

es gäbe allerdings ein paar möglichkeiten etwas ähnliches zu machen:

1. Die enable Möglichkeit: Die Gegenstände befinden sich von Anfang an auf dem Tisch, sind allerdings unsichtbar, sobald ein Gegenstand in die Dekce gelegt wird, wird der dementschprechende Gegenstand aktiviert.

Nachteil: Leider weder variable Position noch, unbegrenzte Menge

2. PlaceAtMe: Die Gegenstände werden auf den Tisch teleportiert
Nachteil: Position nicht Variabel, Ab 20 Gegenstände crashen die Savegames.

3. MoveTo Befehl, Gegenstände befinden sich immer im Spiel aber in einer Dummy-Cell.

Nachteil, Position nicht Variabel, Menge nicht Variabel.
 
  • Like
Reaktionen: anima41
@ anima41

1. Die enable Möglichkeit: Die Gegenstände befinden sich von Anfang an auf dem Tisch, sind allerdings unsichtbar, sobald ein Gegenstand in die Dekce gelegt wird, wird der dementschprechende Gegenstand aktiviert.

Nachteil: Leider weder variable Position noch, unbegrenzte Menge

Da anima41 die Decke ja nur mit einer begrenzten Anzahl an Blumen/Vasen befüllen möchte, sollte diese Lösung die wohl beste sein.

Der Script könnte dann so aussehen:

scn aaTischdecke

Begin onActivate

if ([IDTischdecke].GetItemCount [IDVase-Blau] == 1)&&([IDTischdecke.GetItemCount [IDBlumen] == 1)
Enable.[IDVase-Blau]
Enable.[IDBlumen]
endif

End

So könnte der Script denk ich mal aussehen. Es wird es geschaut ob die Objekte "in" der Tischdecke sind und dann sichtbar gemacht. Die Blumen und die Vase müssen allerdings schon Disabled auf der Tischdecke stehen.

Allerdings weiss ich aber nicht, ob beim Enable-Befehl die ID oder Ref angegeben werden muss. AjAeXx kann dir da bestimmt weiterhelfen ;)
 
  • Like
Reaktionen: anima41
Code:
scn aaTischdecke

Begin onActivate

if ( [BaseObjectIDTischdecke].GetItemCount [IDVase-Blau] == 1 ) && ( [BaseObjectIDTischdecke].GetItemCount [IDBlumen] == 1 ) ; Ohne die []
ReferenceIDVase-Blau.enable
ReferenceIDBlumen.enable

elseif ( [BaseObjectIDTischdecke].GetItemCount [IDVase-Blau] < 1 ) && ( [BaseObjectIDTischdecke].GetItemCount [IDBlumen] < 1 )
ReferenceIDVase-Blau.disable
ReferenceIDBlumen.disable
endif

End

So sähe der Script für eine Blumenvase aus, wenn du mehr Blumenvasen willst, oder andere Gegenstände muss der Script dementsprechend erweitert werden.