Construction Set Skriptthread zum Construction Set

Ich hab mir mal den/das Script aus Create Your Companion angeschaut und da folgen einen die Schafe in das Haus...nur brauch ich da aber nur "Folgen" "Warten" und "Abbrechen"
außerdem soll nicht angezeigt werden wenn eine Kreatur stirbt und sie soll nicht automatisch wiederbelebt werden.
 
@DarkRuler:
Wie sieht das Skript momentan aus?

SCN MCSMMainDoorScript

short doOnce;
short choosing;
short choice;
short unlocked;


Begin OnActivate

if ( unlocked == 0 )

MessageBoxEX "Für die, die's wagen zu suchen, zu schreiten % zwischen den Lebenden und den Toten,%r%r Der brennende Schädel muss sein gefüttert, %rwenn's dein Ziel ist, fortzufahren. %r%r die, die ihr fleisch'gen Händ' haben erhoben vom Grabe, %r das Feuer müssen füttern, %r%r zusamm' mit Kraft der alten Knochen, %r ein Zauber muss gesprochen.%r%r Auf den Schädel muss er sein gewirkt. %r Wenn's dein Wunsch ist, zu passieren. %r%r Schlag Schädel mit des Untod's Furcht, %r dann Weg ins Dunkel dir sei offen."

set choice to -1;

set choosing to 1;

elseif ( unlocked == 1 )

if ( GetStage MCSMStoryQuest == 50 )

MessageBox "Etwas hält die Tür fest verschlossen. Myrk will offensichtlich deine Fähigkeiten testen."

else

Activate, Player;

endif

endif

END

Begin GameMode

if ( unlocked == 0 )

if ( choosing == 1 )

set choice to GetButtonPressed;

if ( choice == 0 )

MCSMBurningSkullRef.Activate, Player;

if ( doOnce == 0 )

SetStage MCSMStoryQuest 30;

set doOnce to 1;

endif

endif

endif

endif

END

Begin OnMagicEffectHit TURN

if ( unlocked == 0 )

if ( MCSMBurningSkullRef.GetItemCount MortFlesh >=1 && MCSMBurningSkullRef.GetItemCount Bonemeal>= 1 )

MCSMBurningSkullFlames.Disable;

set MCSMStoryQuest.doorUnlocked to 1;

set unlocked to 1;

Return;

else

MCSMBurningSkullRef.Cast StandardFireDamageTarget5Master Player;

Return;

endif

endif

END

Begin OnMagicEffectHit

if ( unlocked == 0 )

if ( HasMagicEffect TURN )

if ( MCSMBurningSkullRef.GetItemCount MortFlesh >=1 && MCSMBurningSkullRef.GetItemCount Bonemeal>= 1 )

MCSMBurningSkullFlames.Disable;

set MCSMStoryQuest.doorUnlocked to 1;

set unlocked to 1;

else

MCSMBurningSkullRef.Cast StandardFireDamageTarget5Master Player;

endif

else

MCSMBurningSkullRef.Cast StandardFireDamageTarget5Master Player;

endif

endif

END
 
Beim ersten Prozentzeichen in der Messagebox fehlt auf jeden Fall nocht ein "r".

@Irathindur:
Für letzteres solltest du den Haken bei "Essential" wegmachen.
 
Zuletzt bearbeitet:
Zu deiner Antwort:

1: Dafür legst Du folgendes Script auf den Ring:

Code:
SCN ...
 
Short Scale
 
Begin OnEquip
 
set scale to player.getscale
player.setscale (scale + (Scale - 0.77))
 
end
Man möge mich korrigieren, wenn das mit der Größe nicht stimmt. Ich weis das jetzt nicht so genau. :-D

2: Dafür erstellst Du einen Zauber mit folgendem Script und legst ihn auf das Schwert:

(Außerdem brauchst Du einem Marker in einer Dummy-Cell mit einer Referenz!)

Code:
SCN ...
 
Ref Target
 
Begin Scripteffectstart
 
set target to getself
setstage [quest] [stage]
[MarkerRef].MoveTo target
 
end

Das mit 1. klappt einfach nicht weiß nicht warum.
Und geht es auch das es auch 3 Ziele geben kann? (Also jetzt zu 2.)
 
Beim 1. weis ich das jetzt nicht so genau. :? Beim 2. machst Du das so:

Code:
SCN ...
 
Ref Target
 
Begin Scripteffectstart
 
set target to getself
if(getstage [quest] == [stage])
     setstage [quest] [stage]
endif
 
end

Begin ScriptEffectUpdate

if([Marker1Ref].getincell [dummy-cell])
     [Marker1Ref].MoveTo target
    return
elseif([Marker1Ref].getincell [dummy-cell] != 1)
       [Marker2Ref].MoveTo target
     return
elseif([Marker2Ref].getincell [dummy-cell] != 1)
            [Marker3Ref].MoveTo target
          return
elseif([Marker3Ref].getincell [dummy-cell] != 1)
              [Marker3Ref].MoveTo target
            return
endif

end
 
Könntest du den Script bitte so umschreiben damit wenn man das erste mal eine person etc. damit schlägt, der Quest beginnt und das wenn man den vierten schlägt der alte verschwindet?
 
Beziehst du dich immer noch auf diesen Post?
1. Ich will einen Ring erstellen der einen 33% größer macht.
2. Ich möchte ein Schwert machen das wenn man mit ihm zuschlägt ein Quest erscheint und einen Marker auf das Ziel legt.

Nur, dass es nicht eine sondern drei verschiedene Referenzen sind und wenn die vierte hinzukommt, verschwindet die erste?
Das könntest du so realisieren:
Zum einen brauchst du ein Questskript, das ungefähr so aussieht:
Code:
scn name

float fQuestDelayTime

short start

ref ref1
ref ref2
ref ref3
short init

Begin GameMode

if ref1.getDead
 set ref1 to 0
endif
if ref2.getDead
 set ref2 to 0
endif
if ref3.getDead
 set ref3 to 0
endif

if ref1
 <Marker1Ref>.moveTo ref1
endif
if ref2
 <Marker2Ref>.moveTo ref2
endif
if ref3
 <Marker3Ref>.moveTo ref3
endif

end

Die Marker-Refs musst du noch ersetzen.


Zum anderen brauchst du wie schon geschrieben ein Schwert, auf das du eine Verzauberung mit solch einem Skript legst:
Code:
scn name

Begin ScriptEffectStart

if <Quest-ID>.start == 0
 set <Quest-ID>.fQuestDelayTime to 0.01
 set <Quest-ID>.start to 1
 setStage <Quest-ID> <Stage>
endif

if <Quest-ID>.ref1 == 0
 set <Quest-ID>.ref1 to getSelf
elseif <Quest-ID>.ref2 == 0
 set <Quest-ID>.ref2 to getSelf
elseif <Quest-ID>.ref3 == 0
 set <Quest-ID>.ref3 to getSelf
else
 if init == 0
  set <Quest-ID>.ref1 to getSelf
  set init to 1
 elseif init == 1
  set <Quest-ID>.ref2 to getSelf
  set init to 2
 elseif init == 2
  set <Quest-ID>.ref3 to getSelf
  set init to 0
 endif
endif

end

"<Quest-ID>" musst du natürlich durch die Quest-ID ersetzen, ebenso die "Stage". Die Marker-Refs musst du bei den Questtargets angeben, wobei du darauf achten solltest, vernünftige Conditions anzugeben (z.B. "getStage" oder die Abfrage "ref1"/"ref2"/"ref3" == 0).
 
Tut mir leid aber ich habe mir das nicht so gut angeguckt.
Ihr habt mir gezeigt wie man das macht das ein Maker erschaffen wird der nur an der Stelle erscheint wo man den Gegner geschlagen hat. Aber ich möchte gerne das der Maker dem Gegner sozusagen folgt.

Und ja ich beziehe mich auf diesen Post.

Ist das jetzt ein zusammenhängender script?
 
Ok dann:
Vielen Dank.:lol:

Kannst du mir einen Ring erstellen der 33% größer macht.
Du hast ja bestimmt mitbekommen das noch niemand bis jetzt eine funktionierenden Skript dafür mir geschrieben hat.
 
Zuletzt bearbeitet:
ich glaub das is nich so schlau...
wenn du das spiel speicherst werden die scales als 1 behandelt....also du ziehst den ring oder was es ist an: wirst größer.speicherst,machst oblivion aus und wieder an.ziehst den ring aus:nix passiert weil du schon auf scale 1 bist...du ziehst dne ring wieder an und wächst erneut...

ich würde den befehl "setsize X" benutzen.ich glaub damit gehts...und lässt den npc meines wissens nach acuh "wachsen".also nicht mit einem plopp groß sondern halt so,dass man den wachstumsprozess sehn kann
edit: wenn setsize auch nicht geht dann mach es so:

Code:
scn name
short big
short small

begin onequip player
set big to (player.getscale + 0.33)
player.setscale big
end

begin onunequip player
set small to (player.getscale - 0.33)
player.setscale small
end
 
Zuletzt bearbeitet:
sry das ich nochmal störe aber irgendwie will der das nicht akzeptieren z.B. sagt der in Line 5 wäre start eine Unknown Variable.
 
Wie wäre ein Script, das ein Object erst enabled wenn eine bestimmte Quest abgeschlossen wurde?

Edit:
@Todeskeks: Lass mal das player bei "begin onequip" weg ;)
 
@Foxbuild:
Ins letzte Stage-Result-Skript "<Ref>.enable" schreiben.

@Todeskeks:
Du musst zuerst das Questskript abspeichern.
 
Zuletzt bearbeitet:
Wie wäre ein Script, das ein Object erst enabled wenn eine bestimmte Quest abgeschlossen wurde?

Edit:
@Todeskeks: Lass mal das player bei "begin onequip" weg ;)

Ne das meinte ich eigentlich zu dem Skript mit dem Schwert also zu dem:

Code:
scn name
Begin ScriptEffectStart
if <Quest-ID>.start == 0
set <Quest-ID>.fQuestDelayTime to 0.01
set <Quest-ID>.start to 1
setStage <Quest-ID> <Stage>
endif
if <Quest-ID>.ref1 == 0
set <Quest-ID>.ref1 to getSelf
elseif <Quest-ID>.ref2 == 0
set <Quest-ID>.ref2 to getSelf
elseif <Quest-ID>.ref3 == 0
set <Quest-ID>.ref3 to getSelf
else
if init == 0
set <Quest-ID>.ref1 to getSelf
set init to 1
elseif init == 1
set <Quest-ID>.ref2 to getSelf
set init to 2
elseif init == 2
set <Quest-ID>.ref3 to getSelf
set init to 0
endif
endif
end




Nächstes mal gebe ich einfach die skripts an die ich meine.;)
 
Zuletzt bearbeitet: