Construction Set Skriptthread zum Construction Set

Du kannst das Skript doch umändern... Ich sagte ja schließlich, dass du dir das Skript mal ansehen könntest und nicht, dass du es 1:1 übernehmen sollst...
 
Das geht afaik nicht, aber du könntest per Skript die Waffe entfernen und dafür eine zum Inventar hinzufügen...
Da wäre nur das Problem das die ganzen händler die die waffe verkaufen sie nicht verbessern.... IOder ich ersetze auch alles von den Händlern.
Und kann man einenn script machen das man einen bonus bekommt wenn man mit der waffe schlägt??(nicht magic effect!)
 
Hallo,
ich hab dieses Skript hier ein wenig bearbeitet,und zwar so:
scn dfsecretwallwallscript

short counter
short activated
float locx
float locy
float locz
float stopx
float stopy
float stopz
float stopxb
float stopyb
float stopzb
float speedx
float speedy
float speedz
short wayx
short wayy
short wayz
ref myself

Begin OnActivate
if isactionref dfsecretwallpressureplate011 == 1 || dfsecretwallpressureplate012 == 1 || dfsecretwallpressureplate013 == 1 || dfsecretwallpressureplate014 == 1 || dfsecretwallpressureplate015 == 1 && activated == 0 && counter > 5
set counter to ( counter + 1 )
set myself to getself
set stopx to myself.getpos x + 0 ;bestimmt, wie weit sich das Objekt auf der x-Koordinate bewegen soll (- und + bestimmen die Richtung auf der x-Koordinate)
set stopy to myself.getpos y + 0 ;bestimmt, wie weit sich das Objekt auf der y-Koordinate bewegen soll (- und + bestimmen die Richtung auf der y-Koordinate)
set stopz to myself.getpos z - 64 ;bestimmt, wie weit sich das Objekt auf der z-Koordinate bewegen soll (- und + bestimmen die Richtung auf der z-Koordinate)
set stopxb to myself.getpos x
set stopyb to myself.getpos y
set stopzb to myself.getpos z
set speedx to 0 ;bestimmt die Geschwindigkeit auf der x-Koordinate (muss negativ sein, wenn der Wert bei der Richtung auch negativ ist)
set speedy to 0 ;bestimmt die Geschwindigkeit auf der y-Koordinate (muss negativ sein, wenn der Wert bei der Richtung auch negativ ist)
set speedz to -3 ;bestimmt die Geschwindigkeit auf der z-Koordinate (muss negativ sein, wenn der Wert bei der Richtung auch negativ ist)
endif
If stopx > myself.getpos x
set wayx to 1
Elseif stopx < myself.getpos x
set wayx to -1
Endif
If stopy > myself.getpos y
set wayy to 1
Elseif stopy < myself.getpos y
set wayy to -1
Endif
If stopz > myself.getpos z
set wayz to 1
Elseif stopz < myself.getpos z
set wayz to -1
Endif
set activated to 1

If isactionref dfsecretwallPressurePlate021 == 1 ||dfsecretwallPressurePlate022 == 1 || dfsecretwallPressurePlate023 == 1 || dfsecretwallPressurePlate024 == 1 || dfsecretwallPressurePlate025 == 1
set activated to 2
set counter to 0
Endif
End

Begin GameMode
if activated == 0
return
Elseif activated == 1
set locx to myself.getpos x + speedx
set locy to myself.getpos y + speedy
set locz to myself.getpos z + speedz
If (wayx == 1) && (locx < stopx)
myself.setpos x locx
Elseif (wayx == -1) && (locx > stopx)
myself.setpos x locx
Endif
If (wayy == 1) && (locy < stopy)
myself.setpos y locy
Elseif (wayy == -1) && (locy > stopy)
myself.setpos y locy
Endif
If (wayz == 1) && (locz < stopz)
myself.setpos z locz
Elseif (wayz == -1) && (locz > stopz)
myself.setpos z locz
Endif
Elseif activated == 2
set locx to myself.getpos x - speedx
set locy to myself.getpos y - speedy
set locz to myself.getpos z - speedz
If (wayx == 1) && (locx > stopxb)
myself.setpos x locx
Elseif (wayx == -1) && (locx < stopxb)
myself.setpos x locx
Endif
If (wayy == 1) && (locy > stopyb)
myself.setpos y locy
Elseif (wayy == -1) && (locy < stopyb)
myself.setpos y locy
Endif
If (wayz == 1) && (locz > stopzb)
myself.setpos z locz
Elseif (wayz == -1) && (locz < stopzb)
myself.setpos z locz
Endif
Endif
End
Das Problem ist aber,die Wand fährt nur einmal ein kleines Stück herunter,danach bleibt sie stehen egal welche ich aktiviere. :huh: Die Druckplatten sind alle Parent von der Wand.
Hier mal noch die Skripts der Druckplatten,die die Wand aktivieren:
scn Dfsecretwallpressureplate1


short activated
ref target
ref mySelf

begin gameMode

if activated == 0
if getDistance player < 64
set target to getParentRef
set mySelf to getSelf
target.activate mySelf 1
set activated to 1
playgroup forward 0
endif
endif

end

begin onReset

reset3DState
set activated to 0

end
scn Dfsecretwallpressureplate2


short activated
ref target
ref mySelf

begin gameMode

if activated == 0
if getDistance player < 64
set target to getParentRef
set mySelf to getSelf
target.activate mySelf 1
set activated to 1
playgroup forward 0
player.moveto dfsecretwallmarker
endif
endif

end

begin onReset

reset3DState
set activated to 0

end

Wäre nett wenn jemand Fehler entdeckt :D

MfG Darkfire
 
Zuletzt bearbeitet:
Hallo Leute,

mit was für einem Script muss ich neue Pilze belegen, damit man
sie abernten kann? Ich verwende die Plant Resource von sinHHHans und
habe auch schon die Zutaten den jeweiligen Pilzsorten zugeordnet, aber
irgendwie finde ich im Spiel nie etwas. Also, was habe ich falsch gemacht?

Mit freundlichen Grüßen,

Karl C. Agathon
 
Zuletzt bearbeitet:
Eigentlich musst du sie nur als Pflanze speichern. Lediglich bei besonderen Pflanzen brauchst du ein Skript (zum Beispiel Nirnwurz, da dort die Pflanze disabled wird und die Quest beginnt). Vielleicht hilft es, wenn du den Prozentsatz des Enrteerfolgs hochsetzt. Oder du hast die Pflanze falsch gespeichert (unter Grass -> Plants, statt unter Flora).
 
Das Problem ist gelöst. Es lag tatsächlich an der Wahrscheinlichkeitsrate.
Danke für die schnelle Hilfe. :)
Es gibt aber auch ein Script:

Code:
scn PflanzenErnteSkript
Begin OnActivate
playgroup forward 1
activate
End

Begin OnReset
playgroup backward 1
End

Für Pilze:

Code:
scn PilzErnteSkript

Begin OnActivate
activate
disable
End

Begin OnReset
enable
End
 
Nein, ich mein den befehl "player.additem Varlastone 1" den hab ich als einzigsten stehen lassen. Alles andere hab ich gelöscht und trotzdem geht es nicht. Und wen es den gegenstand nicht geben würde müsste doch eine fehlermeldung kommen oder nicht?
 
Scriptproblem

Hallo. Ich habe ein Problem mit diesem Script:

scn LiteOverhaulCreatureScriptBoarAI
ref self
begin Gamemode

set self to getself

if getdistance player >=1000

self.setav aggression 30

self.setav confidence 100

endif

if getdistance player <1000 && getdistance player > 500

self.setav aggression 100

self.setav confidence 0

endif

if getdistance player <=500

self.setav aggression 90

self.setav confidence 80

endif

end

Er wird auf eine Kreatur gelegt. Wenn der Spieler ganz weit weg ist, soll die Kreatur garnichts machen, kommt er näher, soll sie fliehen und wenn er ganz nah ist, soll die Kreatur angreifen.


Außerdem:

scn LiteOverhaulCreatureScriptBearAI

ref self
short calc
short rand
begin Gamemode

set self to getself
set rand to getrandompercent
if calc == 0
self.setav aggression rand
set calc to 1
endif

if self.getav aggression <= 20

self.setav aggression 30

endif


if getdistance player <= 400

self.setav aggression 90

endif

end


Dieser Script funtioniert ebenfalls nicht


Danke für die Hilfe
 
Ich habe noch eins/zwei Probleme mit meinem Script. Es geht da um mein Schmiede-Projekt guckt ihr hier!

Code:
scn SmithApprenticeForgeScript

short Button
short Step 
 
Begin OnActivate 

If IsActionRef Player && [COLOR=Red]( ForgeFireOpenMediumParent.GetDisabled == 0 )[/COLOR] && ( Player.GetStage SmithApprentice >= 15 ) && ( Player.GetActorValue Armorer >=15 ) 
    MessageBox "Für welche Waffe/Rüstung wollt Ihr Rohmaterial erhitzen?","Dolch","zurück"
    Set Step to -1
EndIf
End

Begin GameMode

If Step == 0
    Return
ElseIf Step == -10
    Set Step to 10
    MessageBox "Welches Rohmaterial möchtet Ihr verarbeiten?","Eisen","Feineisen"
Set Button to -1 
ElseIf Step == 10
    Set Button to GetButtonPressed
    If Button == 0 && [COLOR=Blue]( Player.GetItemCount OreNugget >=4 )[/COLOR]
        Player.RemoveItem OreNugget 4
        [COLOR=Lime]Player.AddItem WeapIronDagger 1[/COLOR]
        Set Step to 0

    ElseIf Button == 1 && [COLOR=Blue]( Player.GetItemCount OreNugget >=2 ) && ( Player.GetItemCount Gem0GoldNugget >=2 )[/COLOR]
        Player.RemoveItem OreNugget 2
        Player.RemoveItem Gem0GoldNugget 2
        [COLOR=Lime]Player.AddItem WeapIronDaggerFine 1[/COLOR]
        Set Step to 0
    EndIf
EndIf

ElseIf Step == -1
    Set Button to GetButtonPressed
    If Button == 0
        Set Step to -10
    ElseIf Button == 1
        Set Step to 0
    EndIf
EndIf
End

zu 1.
Ich möchte hier noch ein Message einfügen, sollte die o.g. Bedingung nicht erfüllt sein. Ich weiß aber nicht wie und wohin.

zu 2.
Hier soll eine Message kommen in etwa "Nicht genug Rohmaterial".

zur 3.
Der Zustand der Gegenstände, die dem Inventar hinzugefügt werden, soll auf 0 oder 1 (also kaputt) sein. Wie geht das?

Danke für die Hilfe!

 
zu 1)
Code:
If IsActionRef Player && ( ForgeFireOpenMediumParent.GetDisabled == 0 ) && ( Player.GetStage SmithApprentice >= 15 ) && ( Player.GetActorValue Armorer >=15 ) 
    MessageBox "Für welche Waffe/Rüstung wollt Ihr Rohmaterial erhitzen?","Dolch","zurück"
    Set Step to -1
elseif ForgeFireOpenMediumParent.GetDisabled == 1
Message "Dein Text mit Anführungszeichen"
EndIf
End

Bei den anderen genauso.

Wenn du lieber eine Message Box haben willst, ersetze Message einfach durch messageBox ;)
 
  • Like
Reaktionen: Jollina
So, ich bins wieder und vllt kann mir diesmal wer meine Frage beantworten:

Ich hab hier ein Script(siehe Spoiler) vom Spiel genommen und möchte das man für den Effekt etwas opfern muss(z.B.: eine Flasche Menschenblut und ein Daedraherz)!
Wenn der Spieler die Sachen im Inventar soll eine Frage kommen ob er sie opfern will und dann sollen sie(wenn er auf ja drückt) automatisch entfernt werden und das Script soll ausgeführt werden.
Wenn er die Sachen nicht im Inventar hat soll halt eine Fehlermeldung kommen("Ich habe nicht die geforderte Opfergabe dabei!" oder so iwas)!

ScriptName Vampire100TestScript


short doonce

Begin OnActivate

if isActionRef player == 1

if ( doonce == 0 )
player.addspell Vampirism100
player.addspell Vampirism100Att
player.addspell Vampirism100skills
player.addspell VampireEmbraceofShadows
player.addspell VampireSeduction
player.addspell VampireReignofTerror
player.addspell VampireHuntersSight
set PCVampire to 4
MessageBox "Voller Vampirismus hinzugefügt."
set doonce to 1
endif


endif

End

Könnte mir bitte irgendjemand das Script mit den obengenannten Sachen vervollständigen???