Construction Set Skriptthread zum Construction Set

Neuer Versuch. IDs musst du eventuell noch anpassen, du scheinst unterschiedliche Zauber zu haben.
Wenn das ganze mehrfach gehen soll, musst du unten in jeden Block mit "Equipitem" noch zwei Zeilen anfügen, "set equipdelay to 0" und "set step to 0".

Der neue Block hat den Grund, dass es teilweise nicht klappt, wenn man "equipitem" auf ein item anwendet, das im gleichen Frame hinzugefügt wurde.

Code:
scn Waffenscript

short button
short step
short equipdelay

Begin GameMode
if ( GetPcIsRace Waffenmeister == 1 ) && (step == 0)
  messageBox"Wählt eure Waffe","W1","W2","W3","W4","W5","W6","W7","W8","W9"
  set step to 1
endif

if (step == 1) && (equipdelay == 0)
Set button to GetbuttonPressed

  If (button == 0)
    player.additem W1 1
    player.addspell Wspell
    set equipdelay to 1
  elseif (button == 1)
    player.additem W2 1
    player.addspell Wspellfrost
    set equipdelay to 1
  elseif (button == 2)
    player.additem W3 1
    player.addspell Wspell
    set equipdelay to 1
  elseif (button == 3)
    player.additem W4 1
    player.addspell Wspell
    set equipdelay to 1
  elseif (button == 4)
    player.additem W5 1
    player.addspell Wspell
    set equipdelay to 1
  elseif (button == 5)
    player.additem W6 1
    player.addspel Wspell
    set equipdelay to 1
  elseif (button == 6)
    player.additem W7 1
    player.addspell Wspell
    set equipdelay to 1
  elseif (button == 7)
    player.additem W8 1
    player.addspell Wspell
    set equipdelay to 1
  elseif (button == 8)
    player.additem W9 1
    player.addspell Wspell
    set equipdelay to 1
  endif

elseif (step == 1) && (equipdelay == 1)

  if (button == 0)
    player.equipitem W1 1
  elseif (button == 1)
    player.equipitem W2 1
  elseif (button == 2)
    player.equipitem W3 1
  elseif (button == 3)
    player.equipitem W4 1
  elseif (button == 4)
    player.equipitem W5 1
  elseif (button == 5)
    player.equipitem W6 1
  elseif (button == 6)
    player.equipitem W7 1
  elseif (button == 7)
    player.equipitem W8 1
  elseif (button == 8)
    player.equipitem W9 1
  endif

endif

StopQuest Wquest

end
 
ich hab alles übernommen.. aber es ist immernoch alles wie vorher. :cry:
es wird nichts hinzugefügt und nichts ausgerüstet.
 
Noch eine leicht andere Version. Danach hätte ich nur noch eine Idee, falls diese auch nicht funktioniert.

Code:
scn Waffenscript

short button
short step
short equipdelay

Begin GameMode
if ( GetPcIsRace Waffenmeister == 1 ) && (step == 0)
  messageBox"Wählt eure Waffe","W1","W2","W3","W4","W5","W6","W7","W8","W9"
  set step to 1
endif

Set button to GetbuttonPressed

if (step == 1) && (equipdelay == 0) && (button == 0)
  player.additem W1 1
  player.addspell Wspell
  set equipdelay to 1
elseif (step == 1) && (equipdelay == 0) && (button == 1)
  player.additem W2 1
  player.addspell Wspellfrost
  set equipdelay to 1
elseif (step == 1) && (equipdelay == 0) && (button == 2)
  player.additem W3 1
  player.addspell Wspell
  set equipdelay to 1
elseif (step == 1) && (equipdelay == 0) && (button == 3)
  player.additem W4 1
  player.addspell Wspell
  set equipdelay to 1
elseif (step == 1) && (equipdelay == 0) && (button == 4)
  player.additem W5 1
  player.addspell Wspell
  set equipdelay to 1
elseif (step == 1) && (equipdelay == 0) && (button == 5)
  player.additem W6 1
  player.addspel Wspell
  set equipdelay to 1
elseif (step == 1) && (equipdelay == 0) && (button == 6)
  player.additem W7 1
  player.addspell Wspell
  set equipdelay to 1
elseif (step == 1) && (equipdelay == 0) && (button == 7)
  player.additem W8 1
  player.addspell Wspell
  set equipdelay to 1
elseif (step == 1) && (equipdelay == 0) && (button == 8)
  player.additem W9 1
  player.addspell Wspell
  set equipdelay to 1
endif

if (step == 1) && (equipdelay == 1) && (button == 0)
  player.equipitem W1 1
elseif (step == 1) && (equipdelay == 1) && (button == 1)
  player.equipitem W2 1
elseif (step == 1) && (equipdelay == 1) && (button == 2)
  player.equipitem W3 1
elseif (step == 1) && (equipdelay == 1) && (button == 3)
  player.equipitem W4 1
elseif (step == 1) && (equipdelay == 1) && (button == 4)
  player.equipitem W5 1
elseif (step == 1) && (equipdelay == 1) && (button == 5)
  player.equipitem W6 1
elseif (step == 1) && (equipdelay == 1) && (button == 6)
  player.equipitem W7 1
elseif (step == 1) && (equipdelay == 1) && (button == 7)
  player.equipitem W8 1
elseif (step == 1) && (equipdelay == 1) && (button == 8)
  player.equipitem W9 1
endif


StopQuest Wquest

end
 
jetzt ruhen alle meine hoffnungen auf deiner verbliebenen idee.
is hat wieder nicht geklappt.

erst hatt er nach der messagebox nen moment gerattert, so das ich dachte es würde endlich funktionieren... aber am ende wieder das selbe... keine waffe, kein zauber...
 
Probiers mal so:
Code:
scn Waffenscript

short button
short step
short EquipDelay

Begin GameMode
 if step == 0
  if getPcIsRace Waffenmeister == 1
   set step to 1
   messageBox "Wählt eure Waffe","W1","W2","W3","W4","W5","W6","W7","W8","W9"
 endif
 elseif step == 1
  Set button to GetbuttonPressed
  if button == 0
   player.additem W1 1
   player.addspell Wspell
   set step to 2
  elseif button == 1
   player.additem W2 1
   player.addspell Wspellfrost
   set step to 2
  elseif button == 2
   ...
   ...
   ...
  endif
 elseif step == 2
  if EquipDelay < 1
   set EquipDelay to EquipDelay + 1
  else
   if button == 0
    player.EquipItem W1 1
    set step to 3
   elseif button == 1
    player.EquipItem W2 1
    set step to 3
   elseif button == 2
    ...
    ...
    ...
   endif
  endif
 endif
end
 
Zuletzt bearbeitet:
Es klappt nicht. Hab alles versucht, was mache ich falsch das mit Resurrect ging ganz einfach und funzte auf Anhieb.

........................................
folgenden Scripteffect habe ich auf einen Zielzauber gelegt.

Begin GameMode
setownership
end
.....................................................................................................
Auch mit einer Targetref ging es nicht

short TargetRef

Begin GameMode
getself Targetref
setownership Target
end

Wenn im Spiel der Befehl per Konole eingeben wird, geht es sofort. Nur so nicht. Warum denn blos nicht.
Bezauberte Gegenstände bleiben Diebstahl.
 
ScriptEffectStart ist wenn der Zauber den gegner trifft. Im selben Moment. ScriptEffectUpdate reagiert danach. ScriptEffectFinish ist wenn der Zauber zuende ist (Duration = 0)
 
  • Like
Reaktionen: robinH
@robinH: Was soll das Skript denn überhaupt bewirken? Wessen Ownership soll geändert/gesetzt werden und mit welchem Owner?
Generell gilt:
Code:
CallingRef.setOwnership Owner(ID)
Zu beachten ist, dass man als CallingRef keine Ref-Variablen verwenden kann und dass als Owner eine ID und keine Ref angegeben ist. Wenn kein Owner angegeben ist, wird automatisch der Spieler gesetzt.
 
Zuletzt bearbeitet:
hallöle...

kann mir pls einer nen script geben,bei dem man nen zauber x aussprechen muss,und dann die waffe y bekommt?

sozusagen ne waffenbeschwörung...
soll also auch nach ablauf des zaubers verschwinden
 
Ganz einfach:
Code:
scn name

Begin ScriptEffectStart
 player.addItem <Waffen-ID> 1
end

Begin ScriptEffectFinish
 player.removeItem <Waffen-ID> 1
end

Als Zauber musst du natürlich einen Skript-Effekt auswählen...
 
  • Like
Reaktionen: Silvers
Dafür musst du zuerst eine Dummy-Zelle erstellen und dort einen XMarker und das Pferd platzieren. Dann nimmst du einen Zauber und gibst dem Effekt dieses Skript:
Code:
scn name

Begin ScriptEffectStart
 <Pferd-REF>.MoveTo player
end

Begin ScriptEffectFinish
 <Pferd-REF>.MoveTo <XMarker-REF>
end
 
Hi Leuz! Ich hab auch noch eine grundsätzliche Frage: Wie kann ich mit OBSE skripten?
bzw. Was verändert OBSE fürs skripten? Kann mir da jemand n Tutorial zeigen oder mir sonst wie helfen?
 
Ich weiß nicht weiter

Ich habe ein Problem:

Diese Script geht:

scn LiteOverhaulSpeedMode

ref Currentweapon
short Active


begin Gamemode


;activate

if iskeypressed 72 == 1 && Active == 0
set Currentweapon to player.getequippedobject 16
modattackdamage 20 currentweapon
message "STRENGTH-Mode aktiviert"
set Active to 1

endif



;unactivate
if active == 1 && iskeypressed 72 == 0 && Currentweapon == player.getequippedobject 16
message "STRENGTH-Mode deaktivert"
modattackdamage -20 currentweapon
player.dispel LiteOverhaulPowercost1
player.dispel LiteOverhaulPowercost2
player.dispel LiteOverhaulPowercost3
player.dispel LiteOverhaulPowercost4
player.dispel LiteOverhaulPowercost5
set active to 0
set currentweapon to 0


endif


;Cost

if active == 1


if getweight currentweapon <= 10
player.addspell LiteOverhaulPowercost1
elseif getweight currentweapon <= 20
player.addspell LiteOverhaulPowercost2
elseif getweight currentweapon <= 30
player.addspell LiteOverhaulPowercost3
elseif getweight currentweapon <= 40
player.addspell LiteOverhaulPowercost4
elseif getweight currentweapon <= 50
player.addspell LiteOverhaulPowercost5
endif

endif

end

Wenn ich die fetten Zeilen in folgendes ändere, dann geht das ganze nicht mehr:

scn LiteOverhaulSpeedMode

ref Currentweapon
short Active


begin Gamemode


;activate

if iskeypressed 72 == 1 && Active == 0
set Currentweapon to player.getequippedobject 16
modweaponspeed 5.0 currentweapon
message "STRENGTH-Mode aktiviert"
set Active to 1

endif



;unactivate
if active == 1 && iskeypressed 72 == 0 && Currentweapon == player.getequippedobject 16
message "STRENGTH-Mode deaktivert"
modweaponspeed -5.0 currentweapon
player.dispel LiteOverhaulPowercost1
player.dispel LiteOverhaulPowercost2
player.dispel LiteOverhaulPowercost3
player.dispel LiteOverhaulPowercost4
player.dispel LiteOverhaulPowercost5
set active to 0
set currentweapon to 0


endif


;Cost

if active == 1


if getweight currentweapon <= 10
player.addspell LiteOverhaulPowercost1
elseif getweight currentweapon <= 20
player.addspell LiteOverhaulPowercost2
elseif getweight currentweapon <= 30
player.addspell LiteOverhaulPowercost3
elseif getweight currentweapon <= 40
player.addspell LiteOverhaulPowercost4
elseif getweight currentweapon <= 50
player.addspell LiteOverhaulPowercost5
endif

endif

end

Das ganze ist eine Globalscript. Ich denke mal, es ist kein Syntax oder anderere Fehler im Script, ich glaub, es liegt irgendwie an meinem Obse, Oblivion o.ä.

Kann das evtl. man jemand bei sich ausprobieren???, oder mir sagen, was falsche ist? thx.
 
@n108freestyle:
OBSE erweitert Oblivion einfach gesagt um viele nützliche Skriptfunktionen. Hauptsächlich sind das mathematische mit denen man Körper komplex bewegen kann, aber auch einige neue Zauber- und sonstige Funktionen kommen hinzu; Funktionen, die bei der Entwicklung von Oblivion nicht benötigt wurden und deswegen außen vor gelassen wurden. Eine Liste der neuen OBSE-Funktionen (weiß nicht, ob es alle sind) findest du im CS-Wiki hier.
Das CS startest du mit OBSE, indem du eine Verknüpfung zur obse_loader.exe erstellst und dieser bei "Ziel" einfach "-editor" hinten anhängst.

@Unbekannter: Probier mal, die Referenz des Objekts vor den Befehl zu setzen. Laut CS-Wiki lautet der Befehl nämlich:
Code:
[B]reference.[/B]ModWeaponSpeed modifyBy:float obejctID:ref
Allerdings wüsste ich dann nicht, wieso es beim ersten funktioniert; da sieht es nämlich genauso aus.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: n108freestyle
Um die Geschwindigkeit der Waffe zu ändern die der Spieler grade trägt, musst du sie erst als Reference speichern. Dann diese Reference vor den befehl setzen.
Beispiel
Code:
Set Ref to Player.GetEquippedObject 16
Ref.ModWeaponDamage 1