Construction Set Skriptthread zum Construction Set

Ich bräuchte mal kurz nen Script, der auf einem Schalter liegt und ein Eisentor hochfahren lässt. Das Tor soll auch wieder heruntergelassen werden können. Die Playgroup müsste forward sein. :)

LG,

peecee
 
@ peecee

Code:
scn Schalter

short count

begin onactivate

if count == 0

TorID.playgroup forward 1
set count to 1

else

TorID.playgroup backward 1
set count to 0

endif
end
 
Zuletzt bearbeitet:
  • Like
Reaktionen: peecee
Für das andere Verhalten müsstest du wahrscheinlich die Zugehörigkeit zu anderen Fraktionen löschen. Das geht allerdings nur mit OBSE. Es sei denn, du hast Lust, den Code für alle vorhandenen Fraktionen zu schreiben.
Habe ich, also wie würde der Code dafür lauten?

Und noch eine frage:
Wie lautet der Befehl um die angezauberte Kreatur das "Player's" anzuhängen?
 
Zuletzt bearbeitet:
Ungefähr so:
Code:
short count
ref faction

let count := getNumFactions
while count > 0
 let faction := getNthFaction count
 setFactionRank faction -1
 let count -= 1
loop

Was meinst du mit dem "Anhängen"?
 
  • Like
Reaktionen: Lord-Alex
Ich habe ein Problem.
Code:
scn AAskriptschmieden2leicht
short choose
short button

begin onactivate
messagebox "Welches Teil?" "Helm(5)" Brustharnisch(15)" "Beinschinen(12)" "Stiefel(8)" "Handschuhe(6)" "Nicht"
set choose to 1
end

begin gamemode
if choose==1
set button to getbuttonpressed
if button==0
   if player.getitemcount 001eisen 5
    player.additem 001rhelm 1
    player.removeitem 001eisen 5
   else
    message "Zu wenig Eisen"
   endif
  elseif button==1 
   if player.getitemcount 001eisen 15
    player.additem 003rrstung 1
    player.removeitem 001eisen 15
   else
    message "Zu wenig Eisen"
   endif
  elseif button==2
     if player.getitemcount 001eisen 12
    player.additem 004rbeinschinen 1
    player.removeitem 001eisen 12
   else
    message "Zu wenig Eisen"
   endif
  elseif button==3
     if player.getitemcount 001eisen 8
    player.additem 006rschu 1
    player.removeitem 001eisen 8
   else
    message "Zu wenig Eisen"
   endif
  elseif button==4
     if player.getitemcount 001eisen 6
    player.additem 002rhandschu 1 
    player.removeitem 001eisen 6
   else
    message "Zu wenig Eisen"
   endif
  elseif button==5

  
set choose to 0
set button to 2
elseif button==1

set button to 2
set choose to 0
endif
endif
end
Im Spiel erscheint beim ersten Mal eine Messagebox, wenn ich aber was auswähle passiert nichts, und beim zweiten aktivieren passiert auch nicht
 
Was meinst du mit dem "Anhängen"?

z.B. Wenn man eine Kreatur beschwört, ist der Name ""Players" Skamp"
Und deshalb wolte ich fragen, wie man dieses "Player's" einer vorhandenen Kreatur "anhängt".

CS hat übrigens Probleme mit dem Wort "let"
 
Zuletzt bearbeitet:
@ ichich:
Sollte so funktionieren:
Code:
scn AAskriptschmieden2leicht

short choose
short button

begin onactivate

if choose == 0
 messagebox "Welches Teil?" "Helm(5)" Brustharnisch(15)" "Beinschinen(12)" "Stiefel(8)" "Handschuhe(6)" "Nicht"
 set choose to 1
endif

end


begin gamemode

if choose==1
 set button to getbuttonpressed
 if button == -1
  return
 elseif button==0
  if player.getitemcount 001eisen >= 5
   player.additem 001rhelm 1
   player.removeitem 001eisen 5
  else
   message "Zu wenig Eisen"
  endif
 elseif button==1 
  if player.getitemcount 001eisen >= 15
   player.additem 003rrstung 1
   player.removeitem 001eisen 15
  else
   message "Zu wenig Eisen"
  endif
 elseif button==2
  if player.getitemcount 001eisen >= 12
   player.additem 004rbeinschinen 1
   player.removeitem 001eisen 12
  else
   message "Zu wenig Eisen"
  endif
 elseif button==3
  if player.getitemcount 001eisen >= 8
   player.additem 006rschu 1
   player.removeitem 001eisen 8
  else
   message "Zu wenig Eisen"
  endif
 elseif button==4
  if player.getitemcount 001eisen >= 6
   player.additem 002rhandschu 1 
   player.removeitem 001eisen 6
  else
   message "Zu wenig Eisen"
  endif
 endif
 set choose to 0
 set button to 2
endif

end


@ Lord-Alex:
Geht mit OBSE und in einer einfacheren Variante auch mit Vanilla, allerdings würde ich davon abraten, da dies die Namen aller Referenzen der ID ändert.
"Let" ist ein OBSE-Ausdruck.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: ichich und Lord-Alex
Danke, danke! (Ich hab vergessen den CS via OBSE zu laden...)

Allerdings will es einfach nicht funktionieren, die Kreatur folgt mir zwar, kämpft aber in keinem Fall!
Code:
ref target
short disposition
short count
ref faction

Begin ScriptEffectStart

set target to GetSelf
	;message "Geting Target..."

if ( target.getdead == 1 )
	if (target.getisCreature)
      	;message "Target Resurected"
      	target.resurrect 1
      	target.removescriptpackage all
      	set disposition to (255 - target.getDisposition player)
     	target.ModDisposition player disposition
      	target.SetAV Aggression 95
      	target.AddScriptPackage Wormking
      	target.setfactionrank PlayerFaction 1
		let count := getNumFactions
		while count > 0
 		let faction := getNthFaction count
 		setFactionRank faction -1
		let count -= 1
	loop
	endif
endif

end

Begin ScriptEffectFinish

	;message "Target Slayed"
	target.kill
	RemoveScriptPackage Wormking
	target.setfactionrank PlayerFaction -1
end

Weiß vielleicht jemand, woran das liegt?
(Package "Wormking" ist ein Follow-Package mit "Must Comlete" & "Defensive Comabt" und klarerweise "Player" als Specific Reference)
 
Zuletzt bearbeitet:
Wie bereits geschrieben, sollte die Aggression vielleicht ein wenig geringer gesetzt werden.
Außerdem muss der Code zum Entfernen aller Fraktionen vor "setFactionRank playerFaction 0" stehen. Das würde sich ja sonst aufheben.
Und "removeScriptPackage" kann auch weggelassen werden, ebenso die Variable "target", aber das ist nebensächlich.
 
  • Like
Reaktionen: Lord-Alex
Ich bräuchte mal ein Script für eine Zaubertrank.
Der Zaubertrank soll bewirken das man eine zeit lang untewerwasser ohne probleme atmen kann also das man kein schaden bekommt. oder gibs so einen zauber schon?
 
Code:
scn XWormkingSpell

ref target
short disposition
short count
ref faction

Begin ScriptEffectStart

set target to GetSelf
	;message "Geting Target..."

if ( target.getdead == 1 )
	if (target.getisCreature)
      	;message "Target Resurected"
      	target.resurrect 1
      	target.removescriptpackage all
      	set disposition to (255 - target.getDisposition player)
     	target.ModDisposition player disposition
      	target.SetAV Aggression 40
      	target.AddScriptPackage Wormking
		let count := getNumFactions
		while count > 0
 		let faction := getNthFaction count
 		setFactionRank faction -1
		let count -= 1
	loop
	target.setfactionrank PlayerFaction 0
	endif
endif

end

Begin ScriptEffectFinish

	;message "Target Slayed"
	target.kill
	target.setfactionrank PlayerFaction -1
end

target hab ich jetzt einfach mal dabei gelassen...
Allerdings ist das Eregenbnis noch immer unverändert...

Ich bräuchte mal ein Script für eine Zaubertrank.
Der Zaubertrank soll bewirken das man eine zeit lang untewerwasser ohne probleme atmen kann also das man kein schaden bekommt. oder gibs so einen zauber schon?

Ja, den gibt's. Der heit "Unterwasseratmung" (sehr einfallsrecih) und gehört zur Schule der Veränderung. Kleiner Tipp: Mach in Cheydinal den Magiergilden-Empfehlungsquest ;)
 
Zuletzt bearbeitet:
@ Nedgang:
Das existiert bereits. Der Effekt nennt sich "Unterwasseratmung".

@ Lord-Alex:
Dann weiß ich nicht weiter. Wenn der NPC keine Fraktions-Zugehörigkeit außer der Spielerfraktion hat. Sollte er eigentlich wie der Spieler behandelt werden. Und gerade ein Haken bei "Defensive Combat" sollte jegliche Aggression unterbinden. Eventuell kannst du die Aggression noch weiter nach unten setzen (in etwa 10, oder so).
 
Nach einigen Tests glaube ich, dass der Script, der alle Fraktionen am Ziel löschen sollte, nicht funktioniert (ein Skamp hilft mir gegen einen Bären, ein Bär hilft mir nicht gegen ein Schwein, ein Atronach hilft mir nicht gegen einen Skamp, niemand hilft mir gegen eine beschworene Kreatur (PlayerFaction))

Bist du dir sicher, dass ich deinen Script richtig eingebaut habe, oder der Script keinen Fehler hat?
 
Stimmt das ist ein eigener Effekt...
Aber du könntest doch wiederbeleben einen Frame warten, dann "Kreatur/Humanuid befehligen" aufrufen und am Ende töten.
 
Das Töten könnte ich theoretisch sogar noch in den 1. Effeckt legen...
und beide effeckte in den selben Zauber, das Problem ist aber, dass der Zauber dann zur Schule der Illusion gehört...
 
Vorneweg: Das ist ein OMOD-script!

Ich probiere grade dem Script irgendwie dazu zu bringen, dass er den Spieler zwischen 4 ESPs auswählen lässt.
Die BSA in dem Ordner 00_Kerndateien muss immer installiert werden.
Aber ich versteh es nicht. :cry:

PHP:
;Installationsscript für Sentinels Legendary Weapons and Armors DV
;====================================================================

;** Oblivion auf 1.2.416 gepatched **
IfNot OblivionNewerThan 1.2.415.0
  Message "Diese Mod benötigt Oblivion auf Patchstufe 1.2.416 oder höher. Bitte lade dir den Patch herunter und installiere ihn!"
  FatalError
EndIf

;** OBMM auf Version 0.8.7. **
If VersionLessThan 0.8.7
   Message "Diese Mod benötigt für die Omod-Installation den OBMM ab Version 0.87, um Installationsfehlern vorzubeugen."
   FatalError
EndIf

;** ESP-Auswahl **
Message "Sentinels Legendary Weapons and Armors. Wähle eine der folgenden ESPs aus. Für nähere Erläuterungen, lies die ReadMe-Textdatei." "Information betreffst der ESPs"

DontInstallAnyPlugins

Select "Wähle die gewünschte ESP aus." "Rüstung und Verzaubert" "Rüstung und Unverzaubert" "Kleidung und Verzaubert" "Kleidung und Unverzaubert"
Case Rüstung und Verzaubert
  CopyDataFile  "00_Kerndateien//SentinelsLegendaryWeaponsAndArmorsDV.bsa"
  CopyPlugin "01_Ruestung_Verzaubert//SentinelsLegendaryWeaponsAndArmorsDV.esp"
  Break
Case Rüstung und Unverzaubert
  CopyDataFile  "00_Kerndateien//SentinelsLegendaryWeaponsAndArmorsDV.bsa"
  CopyPlugin "02_Ruestung_Unverzaubert//SentinelsLegendaryWeaponsAndArmorsDV.esp"
  Break
Case Kleidung und Verzaubert
  CopyDataFile  "00_Kerndateien//SentinelsLegendaryWeaponsAndArmorsDV.bsa"
  CopyPlugin "03_Kleidung_Verzaubert//SentinelsLegendaryWeaponsAndArmorsDV.esp"
  Break
 Case Kleidung und Unverzaubert
  CopyDataFile  "00_Kerndateien//SentinelsLegendaryWeaponsAndArmorsDV.bsa"
  CopyPlugin "04_Kleidung_Unverzaubert//SentinelsLegendaryWeaponsAndArmorsDV.esp"
  Break
EndSelect

Wenn jemand wüsste, was ich hier falsch mache, wär ich für ne Korrektur recht dankbar.
 
edit: @Lord-Alex:

Wieso?

Du schreibts das dann in etwa so:

Code:
ScriptName SkriptName

short doonce

Begin ScriptEffectStart

resurrect 1

End

Begin ScriptEffectUpdate

if doonce==0
     player.cast SpellID
     set doonce to 1
endif

End

Begin ScriptEffectFinish

kill

End
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Lord-Alex