Construction Set Skriptthread zum Construction Set

Meine Güte, ich hoffe, ich werde nicht lästig ;)
Da ich ja die Anzahl der Soldaten auf 10 begrenzt habe, funktioniert das ja nun nicht mehr so gut mit dem Zufallsscript. Nun muss ich doch mit GetInCell Cellname überprüfen, ob der NPC noch in der Dummy Cell ist, oder?
Also müsste das Script doch ungefähr so aussehen:

Code:
scn bKasernenNeuerSoldatImperialCityScript
short NeuerSoldat

Begin OnActivate
set NeuerSoldat to GetRandomPercent
if (NeuerSoldat <= 9)
if (bKasernenSIC1.GetInCell bKasernenDummyCell =1)
bKasernenSIC1.moveto player
endif
elseif (NeuerSoldat <= 19)
if (bKasernenSIC2.GetInCell bKasernenDummyCell =1)
bKasernenSIC2.moveto player
endif
[...]
Endif
End

Ist mein erster Mod, wo ich etwas mehr scripten muss und in den Tutorials finde ich nichts vernünftiges.
 
Zuletzt bearbeitet:
Edit: Angepasst:
Code:
scn bKasernenNeuerSoldatImperialCityScript
short NeuerSoldat

Begin OnActivate
set NeuerSoldat to 1 + 0.1 * GetRandomPercent
if (NeuerSoldat == 1)
if (bKasernenSIC1.GetInCell bKasernenDummyCell == 1)
bKasernenSIC1.moveto player
endif
elseif (NeuerSoldat == 2)
if (bKasernenSIC2.GetInCell bKasernenDummyCell == 1)
bKasernenSIC2.moveto player
endif
Elseif (NeuerSoldat == 3)
;[...]hier weiter machen bis Soldat 10
Endif
End
 
Zuletzt bearbeitet:
  • Like
Reaktionen: bjoernret
Wenn ich das Script anwende bekomme ich für die Zeile 7 folgende Fehlermeldung:
Expression Erro: SYNTAX

Edit: Danke, jetzt funktioniert es!
 
Zuletzt bearbeitet:
Hi, ich bräuchte ienen Skript mit dem ein gegnerischer NPC immer wieder aufsteht nachdem man ihn getötet hat, und das das ertst aufhört wenn man einen anderen NPC umgebracht hat.
 
Soll er wirklich immer sterben oder reicht es, wenn er nur bewusstlos wird?

Ich kann dir für beides was schreiben, würde ich nur halt gerne wissen;)
 
Gut. So sollte das klappen.
[andererNPC] durch die ID des NPCs, der tot sein muss, ersetzen und [] weglassen.
Wenn der nicht tot ist, wird der Nekro wiederbelebt.
Das Script legst du auf den Nekro.
(Natürlich mit Namen speiechern.)

Code:
Scriptname ...

begin OnDeath
if ([andererNPC].GetDead == 0 )
    resurrect
endif
end
 
  • Like
Reaktionen: Nachtklinge
Ich weiß nicht genau, ob man das mit einem Script regeln kann, aber ich will, dass wenn ich in einer Faction bin, dann der Hacken bei Evil von einer andere Faction weg-/hingemacht werden soll.
 
Das ist möglich, es gibt den Befehl SetFactionEvil.
Für den wird allerdings OBSE benötigt.

Das Script müsste dann so aussehen:
Code:
Scriptname ...

begin GameMode
if (player.GetInFaction [Faction-ID] == 1)
    SetFactionEvil [Faction] 1/0
endif
end

Ich bin mir nicht ganz sicher, ob das syntaktisch so richtig ist.
Natürlich nur entweder 1 oder 0 schreiben.
1 steht in diesem Fall für einen Haken (=evil) und 0 für keinen Haken (=nicht evil).
 
Diverse Fragen

Hi, ich hab mehrere Fragen:

1. Ist es möglich mehrere Parameter auf einmal aufzurufen?

  • z.b if player.getitemcount Object1, Object2 == 1
Soll das selbe heißen wie

  • if player.getitemcount Object1 == 1 und
  • if player.getitemcount Object2 == 1
Geht das ???

2. Kann man auch eine eine Kategorie von Objekten als Parameter angeben?

  • z.b if player.getitemcount Armor == 1
Sollte prüfen, ob der Spieler irgendeine Rüstung hat und könnte eine Enorme Schreibarbeit erleichtern

3. Kann für eine Variabele ein Objekt eingesetzt werden?

  • z.b set var to Object1
3.1 Kann man auch mehrer Objekte unter einer Variabelen zusammenfassen?


  • z.b set var to Object1, Object2 ...
...oder so ähnlich

thx for answers
 
Zu 1.
Siehe Eldarie, das kann man nicht zusammenfassen.

Zu 2.
Nein

Zu 3.
Ich glaube nicht.
Höchstens mit Reference Variablen.
Dann muss das Item allerdings irgendwo liegen und ihm muss eine Reference ID zugewiesen sein.

Zu 3.1
Das geht auch mit normalen Werten nicht, soweit mir bekannt.
Eine Variable kann nur einen Wert zur Zeit haben.
Zumindest mit TES Script.
In anderen Programmiersprachen wie Pascal kann man eine Variable als boolean deklarieren, dann kann sie zwei Werte annehmen.
 
  • Like
Reaktionen: Unbekannter
ich such nen script der mehrere türe auf einmal öffnet also wenn ich die ein aktivier das die andern au aufgehn(kann mir da jmd helfe??)

MfG *R3B0RN*
 
Du meinst, dass sie vorher verschlossen sind und bei aktivieren der einen Tür hinterher alle nicht mehr verschlossen sind?

Sollte so klappen:
Code:
scriptname ...

begin OnActivate
[Ref-ID Tür 1].unlock
[Ref-ID Tür 2].unlock
...
end

Für das in Klammern setzt du die Reference Editor ID ein, die du den einzelnen Türen vorher zuweisen musst.
(Doppelklick auf die Tür im Render-Window, Haken bei "Persistance Reference" und dann ganz oben was eingeben.)

Die Klammern dann weglassen und das Script dann auf die Tür legen.
Die anderen natürlich vorher verschließen.
 
nein ich mein dass sie aufgehn(sprich man muss sie nicht mit dem dietrich oder mit nem schlüssel öffne nur aufmache )......so mein ich des

aber trotzdem danke