Construction Set Skriptthread zum Construction Set

Schon wieder ein paar probleme...

1) Ich bräuchte bitte einen Skript, mit dem ich die Position eines Gegenstandes verändern kann. (Ein normaler Stein soll den Weg versperren; dann auf den Schalter drücken und er ist weg!)

2) Ich will eine Toilette in mein Haus einbauen. Allerdings möchte ich, dass man einen weiblichen Char spielen muss, um durch die Tür fürs Frauenklo gehen kann, und umgekehrt.

Bitte um baldige Hilfe!
 
Zu 1. : Soll der Stein auch wieder auftauchen können? Sonst würde ich ein einfaches Script nehmen:
Scn xxx

short doonce

begin OnActivate
if doonce == 0
disable "[RefID]"
set doonce to 1
endif
end

Sonst wohl eher so:
Scn xxx

short doonce

begin OnActivate
if doonce == 0
disable "[RefID]"
set doonce to 1
endif
elseif doonce == 1
enable "[RefID]"
set doonce to 0
endif
end

Bei dem weiß ich nicht, obs richtig ist. Vielleicht muss auch das erste endif weg.
 
Ja, es funktioniert!

(Ich brauche die Mauer nicht wieder also 1. Skript)

Allerdings wird der Schalter und nicht die Wand disablet!

Deshalb mal wieder:

Bitte um schnelle Hilfe!
 
[...]
Bei dem weiß ich nicht, obs richtig ist. Vielleicht muss auch das erste endif weg.

Jep, das erste endif muss weg. ;)
Oder aber du änderst das elseif in ein if um, ist hier gleichbedeutend.



2.) GetIsSex Male|Female in einem OnActivate-Block sollte da volkommend ausreichen:

Code:
scn FemaleDoorScript

ref ActionRef

Begin OnActivate
 set ActionRef to GetActionRef
 if ( ActionRef.GetIsSex Female )
  Activate
 else
  if ( ActionRef.GetIsReference Player )
   MessageBox "Ihr dürft hier nicht hinein."
  endif
 endif
End

Code:
scn MaleDoorScript

ref ActionRef

Begin OnActivate
 set ActionRef to GetActionRef
 if ( ActionRef.GetIsSex Male )
  Activate
 else
  if ( ActionRef.GetIsReference Player )
   MessageBox "Ihr dürft hier nicht hinein."
  endif
 endif
End


Edit:
Disable "[Ref-ID]" umändern in "[Ref-ID]".Disable
 
Wieso, wenn man " disable "[Ref-ID]" " schreibt, kommt doch das Gleiche raus oder nicht? Oder geht das nur, wenn man es einmal disablen bzw enablen will? Da geht es jedenfalls.

Edit: Ah, ok, ich hab grad noch mal auf die vorige Seite geguckt, mir ist der Unterschied klar. Bei mir klappts trotzdem.
 
Zuletzt bearbeitet:
Hi!

Leider kann ich die Tür trotzdem öffnen, egal ob man oder Frau! (nur schließen kann ich sie nicht mehr!)

Kann mir da wieder wer helfen?
 
Hi!

Leider kann ich die Tür trotzdem öffnen, egal ob man oder Frau! (nur schließen kann ich sie nicht mehr!)

Kann mir da wieder wer helfen?

Script hast du auch auf die Tür gelegt?

Wenn ja:
Kommt die MessageBox beim öffnen?
Eigentlich sollte sich die beim öffnen&schließen gleich verhalten. Wie öffnest du die Tür denn?


Was passiert, wenn du das Script auf irgent was anderes aktivierbares legst?
 
1.) Ja, ich habs auf die Tür gelegt!

2.) Nein, die messagebox kommt nicht!

3.) Es ist eine Teleport-Tür (die einen ein ein anderes interior bringt)

4.) Die Tür wird ganz normal, also mit "Benutzen" geöffnet

5.) Das mit dem Anderen Activator funzt auch nicht (kann ihn ganz normal drücken, ohne message box oder so)
 
Hi,

einfach das:
scn FemaleDoorScript
ref ActionRef
Begin OnActivate
set ActionRef to GetActionRef
if ActionRef.GetIsSex Female == 1
Activate
elseif ActionRef.GetIsSex male == 1 && ActionRef.GetIsReference Player
MessageBox "Ihr dürft hier nicht hinein."
endif
End
bzw das:

scn maleDoorScript
ref ActionRef
Begin OnActivate
set ActionRef to GetActionRef
if ActionRef.GetIsSex male == 1
Activate
elseif ActionRef.GetIsSex female == 1 && ActionRef.GetIsReference Player
MessageBox "Ihr dürft hier nicht hinein."
endif
End

auf die beiden türen legen..
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Akasha
meine kenntnisse in sachen Skripts sind ja gleich 0 aber mein projekt muss vorrankommen xD also ich wär dankbar für einen Skript der auf ein Tor gelegt wird und folgendes bewirkt:

- ein Quest startet
- die gesammte eigene Ausrüstung soll entnommen und in einer truhe verstaut werden
- Magie wird unwirksam (oder der Manapegel bleibt die ganze zeit auf 0)
- es wird Mitternacht und die Zeit bleibt stehen


danke im vorraus :-D (ja ich hab den Post über mir gelesen, bin aber auchnicht schlauer ^^")
 
hi,

scn torskript
short doonce
begin onactivate
if doonce == 0
startquest [ID DEINER QUEST]
player.RemoveAllItems [ID DEINER KISTE]
set gamehour to 0
set timescale to 0
set doonce to 1
endif
end

wichtig: der eingriff per timescale ist unbedingt wieder rückgängig zu machen, nach beenden der quest! dh auf 30 setzen.

magie unwirksam machen..
das einzige was mir einfällt ist einen 'stille' zauber auf den player zu wirken, allerdings gibt es da ja auch zauber welche stille ignorieren, daher wäre das nur halb gelöst -> im obigem skript nicht drin
 
  • Like
Reaktionen: Verganon
was mir zum magieprob einfallen würde, wäre das der aktuelle Magiewert als Zahl in einer Variable festgehalten wird, die MP auf 0 gesetzt wird und nach questende wieder auf den stand gesetzt wird den die variable gemerkt hat. obs möglich ist weiß ich nicht das wäre aber ne lösung vom Rm2K xD und in den skriptsachen sehen sie sich relativ ähnlich. :roll: wird alles immer nur anders geschrieben und sowas merk ich mir nicht. :oops:
 
hi verganon,

habs probiert das einzuspeichern.. kamen aber recht obskure dinge heraus, sodass ich es gelassen habe *g*

scn torskript
short doonce

begin onactivate
if doonce == 0
startquest [ID DEINER QUEST]
player.RemoveAllItems [Kistenid]
set gamehour to 0
set timescale to 0
Player.forceActorValue silence 2
set doonce to 1
endif
end


um das wieder rückgängig zu machen:

scn torskript2
short doonce2

begin onactivate
if doonce2 == 0
set timescale to 30
Player.forceActorValue silence 0
set doonce2 to 1
endif
end


ist jetzt mit silence gelöst, welches eigtl jeden zauber 'ausschaltet' (vanilla zumindest), rassenfähigkeiten mal abgesehen, aber die sollten ja nicht ins gewicht fallen - können ja nur 1x genutzt werden, da die zeit ja nicht vergeht..
 
und schon habe ich ein neues Problem!!


Ich möchte eine Art Rüstungsset erstellen, d.h. dass man alle Teile des Sets anlegen muss, um einige Boni zu bekommen!

Kannn mir da jemand helfen?
 
Hallo Akasha,

du magst rot, richtig? ^^

EDIT:
Code:
scn ScriptName

short Strengthav

Begin OnEquip

set Strengthav to GetBaseActorValue Strength

If ( player.geteuqipped BeinschienenID == 1 ) && ( player.geteuqipped HarnischID == 1 ) && ( player.getequipped SchuhID == 1 ) && ;usw.
;hier müssten die Boni rein, zB.:
player.modAV Strength 10
Endif

End

Begin OnUnequip

player.setav strength strengthav

End
ach ja, der Script kommt auf alle Rüstungsteile

MfG Gildur
 
Zuletzt bearbeitet:
Das Skript wird so nicht funktionieren(bzw. würde schon, allerdings würde Probleme entstehen), der Skill (hier: Stärke) wird immer als geschädigt dastehen. Grund: ModAV beeinflusst den Script-Zähler (oder soähnlich) des Skills und SetAV den Skill selber. Änderungen durch ModAV immer aufheben, das Ergebnis ist sonst bestenfalls...unschön.


Zur Behebung hier einfach den OnUnequip-Block durch folgendes ersetzen:
Code:
Begin OnUnequip

If ( player.geteuqipped BeinschienenID == 1 ) && ( player.geteuqipped HarnischID == 1 ) && ( player.getequipped SchuhID == 1 ) && ;usw.
;hier müssten die Boni wieder aufgehoben werden, zB.:
player.modAV Strength -10
Endif

End
 
Danke!

Funktioniert perfekt (bis auf den tippfehler: geteuquipped)!


P.s.: Ich schreibe nur in rot, damit ihr meine Fragen nicht überseht:-D
 
hi verganon,

habs probiert das einzuspeichern.. kamen aber recht obskure dinge heraus, sodass ich es gelassen habe *g*

scn torskript
short doonce

begin onactivate
if doonce == 0
startquest [ID DEINER QUEST]
player.RemoveAllItems [Kistenid]
set gamehour to 0
set timescale to 0
Player.forceActorValue silence 2
set doonce to 1
endif
end

um das wieder rückgängig zu machen:

scn torskript2
short doonce2

begin onactivate
if doonce2 == 0
set timescale to 30
Player.forceActorValue silence 0
set doonce2 to 1
endif
end

ist jetzt mit silence gelöst, welches eigtl jeden zauber 'ausschaltet' (vanilla zumindest), rassenfähigkeiten mal abgesehen, aber die sollten ja nicht ins gewicht fallen - können ja nur 1x genutzt werden, da die zeit ja nicht vergeht..
[/SIZE][/B]


Hi Cadhar.
hatte an deinem erstem Skript ne weile gesessen mit und versucht ihn zu berichtigen, weil ich mit dem Probleme hatte und immernoch habe:
- Quest Startet, aber tür aktiviert sich hinterher nichtmehr zum reingehen (konnte ich beheben)
- Quest soll eigentlich erst nach dem laden der neuen Cell starten
- Wetter schaltet nicht um auf Nebel
- Ausrüstung verschwindet, wird aber nicht in die Truhe gelegt die vorgesehen wurde.

hier mal der berichtigte skript:
Code:
scn VergsBTDstartquest

short doonce
begin onactivate
activate
if VergsBHTQuest <= 9
	if doonce == 0
		setstage VergsBHTQuest 10
		player.RemoveAllItems [VergsBTDOwnArsenalChest]
		SetWeather Fog 1
		set gamehour to 0
		set timescale to 0
		set doonce to 1
	endif
endif

end

mit deinem neuem skript seh ich schonmal, das die letzten 3 probleme weiterhin bestehen bleiben, des mit der Tür bekomm ich ja durch nen Activate befehl behoben (wetter schaltet aber auch bei meinem skript nicht um, Kiste steht bereit aber ist leer und der Queststart ist bevor die Cell läd)

also müssen da noch haufenweise probleme drinn sein, aber ich hab davon leider keinen plan :cry: