Construction Set Skriptthread zum Construction Set

Hallo Hallo,

unser Freund Tholor hatte ein kleines Problem mit Menüs und Summoning von Kreaturen und NPC's.

Das Menü war kein Problem.
Das Summonen aber schon. Ich brauchte mehrere Stunden um sein Problem zu lösen.

Das korrigierte PI hat er schon zugesandt bekommen.

Vieleicht interessiert euch das Skript dazu :

Code:
ScriptName TholorGrosserSaalActivatorSC

short EnemyType ; ### 1. Ziffer : 1->Zombie, 2->Skelett->, 3->Bandit ### 2. Ziffer : 1->Leicht, 2->Mittel, 3->Schwer
ref Enemy
ref Enemy1
ref Enemy2
ref Enemy3
ref Enemy4
ref Copy

ref Ich

short Summon
float SummonTimer1
float SummonTimer2

begin OnActivate
    set Summon to 1
end

begin GameMode

    if Summon == 1
        if Enemy1 != 0
            Set Copy to Enemy1
            Set Enemy1 to 0
            Copy.DeleteFullActorCopy
        endif
        if Enemy2 != 0
            Set Copy to Enemy2
            Set Enemy2 to 0
            Copy.DeleteFullActorCopy
        endif
        if Enemy3 != 0
            Set Copy to Enemy3
            Set Enemy3 to 0
            Copy.DeleteFullActorCopy
        endif
        if Enemy4 != 0
            Set Copy to Enemy4
            Set Enemy4 to 0
            Copy.DeleteFullActorCopy
        endif

        set Summon to 2
    endif

    if Summon == 2
        ; ***** Referenz auf Feindvorlage ermitteln
        if EnemyType == 11
            set Enemy to TholorArenaZombieLeicht1.GetSelf
        elseif EnemyType == 12
            set Enemy to TholorArenaZombieMittel1.GetSelf
        elseif EnemyType == 13
            set Enemy to TholorArenaZombieSchwer1.GetSelf

        elseif EnemyType == 21
            set Enemy to TholorArenaSkelettLeicht1.GetSelf
        elseif EnemyType == 22
            set Enemy to TholorArenaSkelettMittel1.GetSelf
        elseif EnemyType == 23
            set Enemy to TholorArenaSkelettSchwer1.GetSelf

        elseif EnemyType == 31
            set Enemy to TholorArenaBanditLeicht1.GetSelf
        elseif EnemyType == 32
            set Enemy to TholorArenaBanditMittel1.GetSelf
        elseif EnemyType == 33
            set Enemy to TholorArenaBanditSchwer1.GetSelf
        endif

        set enemy1 to Enemy.CreateFullActorCopy
        set enemy2 to Enemy.CreateFullActorCopy
        set enemy3 to Enemy.CreateFullActorCopy
        set enemy4 to Enemy.CreateFullActorCopy

        set SummonTimer1 to 0.7
        set SummonTimer2 to 1.0
        set Summon to 3
    endif

    if summon == 3
        if SummonTimer1 > 0
            set SummonTimer1 to SummonTimer1 - GetSecondsPassed
        else
            Enemy1.Enable
            Enemy2.Enable
            Enemy3.Enable
            Enemy4.Enable

            Enemy1.Kill
            Enemy2.Kill
            Enemy3.Kill
            Enemy4.Kill

            Enemy1.MoveTo GrosserSaal1
            Enemy2.MoveTo GrosserSaal2
            Enemy3.MoveTo GrosserSaal3
            Enemy4.MoveTo GrosserSaal4

            set Summon to 4
            Player.MoveTo GrosserSaalSpieler
        endif
    endif

    if summon == 4
        set Ich to GetSelf
        Ich.Cast TholorSummonLightning Enemy1
        Ich.Cast TholorSummonLightning Enemy2
        Ich.Cast TholorSummonLightning Enemy3
        Ich.Cast TholorSummonLightning Enemy4
        set summon to 5
    endif

    if summon == 5
        if SummonTimer2 > 0
           set SummonTimer2 to SummonTimer2 - GetSecondsPassed
        else
            Enemy1.Resurrect 1
            Enemy2.Resurrect 1
            Enemy3.Resurrect 1
            Enemy4.Resurrect 1
            Ich.Cast TholorSummonLightning Enemy1
            Ich.Cast TholorSummonLightning Enemy2
            Ich.Cast TholorSummonLightning Enemy3
            Ich.Cast TholorSummonLightning Enemy4
            Set Summon to 0
           endif
       endif
    endif
end

In dem Skript werden gleich vier Kreaturen gleichzeitig berbeigerufen, welche den Spieler umzingeln.
Der Lightning Zauber soll den Auftritt der Feinde etwas imposanter machen.
Das Killen und Resurrecten mache ich aus dem Grund, damit die Kreas zu Beginn die Aufsteh-Animation ausführen.

Es grüßt euch die Yolanda 8)
 
Man könnte einen Script schreiben, der von einem bestimmten Gegner auf den Player gelegt wird und abgfragt, ob der Spieler über eine bestimmte Zeit keinen Schaden nimmt. Wenn ja, wird der Spieler getötet.

Ich glaube außerdem, DamageZones mit einem selbstgeschriebenen Script machen selbst bei Unverwundbarkeit schaden.
 
Kann man per skript ein enchant zu einer waffe hinzufügen, welche aber nur für einen treffer wirkt und dann wieder verschwindet? wenn ja wie
 
Cheat-Falle

Hi!
Ich hätte folgende Idee:
Es ist doch möglich, ein Script zu schreiben, das besagt, dass wenn man eine bestimmte taste drückt, eine aktion ausgeführt wird!
Also:
wenn [ZIRKUMFLEX] gedrückt wird: Message Box "Du bist ein Cheater!", "Ich bereue es!"->teleport zum Dungeon anfang "Na und?"-> player.removeitem 0000000f 10000 (-10.000 Gold!)

:)

mfg
 
Frage

Wie ist es möglich Creaturen/NPC's
1. An einem bestimmten Punkt der Welt auftauchen zu lassen
2. Angreifen zu lassen
3. Essentail (Unsterblich) bei NPC's zu aktivieren/deaktivieren (im Script)
4. tgm für NPC's einzustellen

? ? ? ?

:huh:

Kan mirt jemand helfen????
 
Hi!

Sry, dass ich dazwischenposte, aber ich hab auch mal wieder ne Frage.


Mein Script sieht wie folgt aus:

scn aaaVerschanzen

short buttonPressed
short button

Begin OnActivate
if IsActionRef player == 1
messagebox "Wollt ihr Euch verschanzen?.", "Ja", "Verschanzung aufheben", "Nichts"
set buttonPressed to 1
set button to -1
endif
end

begin gamemode
if buttonPressed == 1
set button to getbuttonpressed
endif

if button > -1
if button == 0
Stacheln1.enable
Stacheln2.enable
Stacheln3.enable
Stacheln4.enable
Stacheln5.enable
Barrikade2a.enable
Barrikade1b.enable
Barrikade1a.disable
Barrikade2b.disable
messagebox "Euer Haus ist eine fast uneinnehmbare Festung."
set buttonPressed to 0
elseif button == 1
Stacheln1.disable
Stacheln2.disable
Stacheln3.disable
Stacheln4.disable
Stacheln5.disable
Barrikade2a.disable
Barrikade1b.disable
Barrikade1a.enable
Barrikade2b.enable
messagebox "Euer Haus ist offen für jeden Besuch."
set buttonPressed to 0
elseif button == 2
return
set buttonPressed to 0
endif
endif
end

Sobald ich allerdings in die Zelle, in der der Activator ist, gehe, kommt dauernd die Nachricht der 1. Antwort.

Kann mir da bitte jemand helfen, sodass sie nur kommt, wenn ich den Activator aktiviert und die erste Antwort ausgewählt habe?
 
Erstmal muss es glaube ich "GetButtonPressed" heißen und zweitens muss die erste Zahl dabei 0 sein, nicht 1. Ich weiß es aber nicht genau.
 
Ich hab auch ne Frage: Ein Freund von mir glaubt, alles ließe sich in Oblivion mit Cheateb lösen. Ich würde ihm gerne ein Schnippchen schlagen. Ich bin gerade an meinem ersten Mod dran. Und ich würde es gerne so einstellen, dass man in bestimmten Zellen auf der Map NICHT cheaten kann oder für's Cheaten bestraft wird. Kann man das?

Versuch mal folgendes Script:

Code:
scn Viech

Begin Menumode 3              ;Konsole
 Player.Disable                   ;CTD
End

Hi!

Sry, dass ich dazwischenposte, aber ich hab auch mal wieder ne Frage.


Mein Script sieht wie folgt aus:

scn aaaVerschanzen

short buttonPressed
short button

Begin OnActivate
if IsActionRef player == 1
messagebox "Wollt ihr Euch verschanzen?.", "Ja", "Verschanzung aufheben", "Nichts"
set buttonPressed to 1
set button to -1
endif
end

begin gamemode
if buttonPressed == 1
set button to getbuttonpressed
endif

if button > -1
if button == 0
Stacheln1.enable
Stacheln2.enable
Stacheln3.enable
Stacheln4.enable
Stacheln5.enable
Barrikade2a.enable
Barrikade1b.enable
Barrikade1a.disable
Barrikade2b.disable
messagebox "Euer Haus ist eine fast uneinnehmbare Festung."
set buttonPressed to 0
elseif button == 1
Stacheln1.disable
Stacheln2.disable
Stacheln3.disable
Stacheln4.disable
Stacheln5.disable
Barrikade2a.disable
Barrikade1b.disable
Barrikade1a.enable
Barrikade2b.enable
messagebox "Euer Haus ist offen für jeden Besuch."
set buttonPressed to 0
elseif button == 2
return
set buttonPressed to 0
endif
endif
end

Sobald ich allerdings in die Zelle, in der der Activator ist, gehe, kommt dauernd die Nachricht der 1. Antwort.

Kann mir da bitte jemand helfen, sodass sie nur kommt, wenn ich den Activator aktiviert und die erste Antwort ausgewählt habe?

Dein EndIf nach dem ButtonPressed muss ganz an's Ende:
Code:
scn aaaVerschanzen

short buttonPressed
short button

Begin OnActivate 
	if IsActionRef player == 1 
		messagebox "Wollt ihr Euch verschanzen?.", "Ja", "Verschanzung aufheben", "Nichts"
		set buttonPressed to 1 
		set button to -1 
	endif 
end 

begin gamemode 
	if buttonPressed == 1
		set button to getbuttonpressed 
		if button > -1 
			if button == 0 
				Stacheln1.enable
				Stacheln2.enable
				Stacheln3.enable
				Stacheln4.enable
				Stacheln5.enable
				Barrikade2a.enable
				Barrikade1b.enable
				Barrikade1a.disable
				Barrikade2b.disable
				messagebox "Euer Haus ist eine fast uneinnehmbare Festung."
			elseif button == 1 
				Stacheln1.disable
				Stacheln2.disable
				Stacheln3.disable
				Stacheln4.disable
				Stacheln5.disable
				Barrikade2a.disable
				Barrikade1b.disable
				Barrikade1a.enable
				Barrikade2b.enable
				messagebox "Euer Haus ist offen für jeden Besuch."
			endif
			set buttonPressed to 0
		endif 
	endif 
end
 
  • Like
Reaktionen: Akasha
Moin. Vielleicht gabs die Frage und Antwort schon in diesem Thread, aber der ist mittlerweile so lang... naja, hier kommt sie:
Wie muss ein Script aussehen, das einen NPC vor mir erscheinen lässt, nachdem meine Figur sich ausgeruht hat, mich anspricht und ich gleich ein Questeintrag bekomme?
Wenns ne Antwort daruf schon gibt, bitte ich um einen Link :-D
 
Suche Hilfe beim Einbinden folgender grafischer Erweiterung.


Im Hintergrund seht Ihr ein neues von mir erstelltes gewebtes realisticheres Netz.

Das Einbinden funktioniert, doch ich hätte gerne eine Abfrageintegration, so das wenn man die Grafik durchschritten hat, diese mit einer anderen getauscht wird. So das der Eindruck entsteht, man wäre duch dieses Netz hindurch gegangen.

Sollte das der falsche Thread sein, bitte sagt mir wo ich die Anfrage sonst stellen kann.

Benötige also Hilfe von einem Modder der sich mit der Programmierung und Zuweisung von Meshes auskennt. Für das Unterfangen ist es nötig ein zweites Mech zu integrieren. Wie die Abfrage läuft weiß ich nicht. Auch nicht ob das überhaupt machbar ist.

Kontakt: r.hood1@gmx.de
 
Müsste über eine Triggerzone funktionieren, die du an die Stelle legst.
Der gibst du dann folgendes Script:
Code:
scn Viech

Begin OnTriggerActor
 if ( SpinnenNetzUsed.GetDisabled )
  SpinnenNetz.Disable
  SpinnenNetzUsed.Enable
 endif
End

Begin OnReset
 if ( SpinnenNetz.GetDisabled )
  SpinnenNetz.Enable
  SpinnenNetzUsed.Disable
 endif
End


SpinnenNetz ist dabei die ID der Referenz des normalen Spinnennetzes.
SpinnenNetzUsed die ID der Referenz des "durchschrittenen" Spinnennetzes.
 
  • Like
Reaktionen: robinH
Gut, von der Funktionsweise habe ich ihm das auch so vorgeschlagen, habe ihm aber auch gesagt, dass er mal hier fragen soll. Dann weiß ich immerhin, dass meine Vorgehensweise richtig war.
 
  • Like
Reaktionen: robinH
@ Blacklands:
falls lowposts script nicht funzen sollte. könnte man es ja vllt. über die attributabfrage regelt. also ein bestiommte attribut - zb wortgeschwandheit 100 dürfte dann miut dem tod bestraft werden. obwohl das auch keine optimale lösung ist, da es ja wirklich sein kann, dass man wortgewandheit 100 hat. aber ich hatts bis jetzt noch nicht. also wäre ich verschohnt geblieben.:D

btw. kann man im godmode überhaupt getötet werden^^ ;)
 
Man kann im God Mode getötet werden. Man ist nicht unsterblich, hat aber endlos Leben. Man könnte zum Besipiel durch ein "kill" auf einen selbst (das von einem Script erzeugt wird) sterben.
 
Müsste über eine Triggerzone funktionieren, die du an die .............


SpinnenNetz ist dabei die ID der Referenz des normalen Spinnennetzes.
SpinnenNetzUsed die ID der Referenz des "durchschrittenen" Spinnennetzes.


Hm, ja nur leider habe ich absolut keine Ahnung wovon du sprichst. Kannst du mir nicht die im Spiel enthaltenden 6 Cobwebs so umschreiben, dass die zwei Grafiken nutzen.
Sie sind bei Tes4 unter Misk im Dungeon-Verzeichnis.

Also eine Grafik für nicht berührt und eine für berührt erstmal als Dummy dem Mesh geben..
Ich brauche die erstellten Grafiken dann nur noch zuweisen.

Oder wird das nicht ins Mesh geschrieben?

Danke schon mal im Vorraus. wäre echt nett, wenn das jemand in die Meshes schreiben könnte.
 
Zuletzt bearbeitet:
Auch ich bräuchte etwas Hilfe bei nem Script. Ich will einen bestimmten NPC sterben lassen, wenn QuestStage 30 aktiv ist und die Tür zu seiner Zelle aktiviert wird (also sobald man seine Zelle betritt). Er soll da auf jeden Fall schon tot liegen, wenn man die Zelle betritt und nicht dann erst tot umfallen. Leider komm ich trotz einigen gelesenen Tutorials noch nicht so richtig mit dem scripten klar. Deshalb würde ich mich über etwas Hilfe sehr freuen. Vielen Dank schonmal im Vorraus! :)
 
@robinH:
Also: Du nimmst das Scritp von Low Post, das ist so gut zu verwenden. Dann nimmst du deine beiden Netzte, die du schon ins CS eingebunden hast. Du setzt beide an die gleiche Stelle (das heile und das kaputte), halt dahin, wo sie hin sollen. Du gibst beiden eine "Reference ID" und setzt bei beiden einen Haken bei "Persistance Reference". Bei dem kaputten setzt du auch noch einen Haken bei "Initially Disabled". Dann setzt du noch eine Triggerbox/zone so, dass es nachher realistisch aussieht, wenn das Netz kaputt geht. Nun noch das Script mit den eingesetzten Ref-IDs auf die Triggerbox/zone legen, fertig.

Code:
scriptname Netzkaputtmachen

Begin OnTriggerActor
 if ( [Ref-ID des kaputten Netzes].GetDisabled )
  [Ref-ID des heilen Netzes].Disable
  [Ref-ID des kaputten Netzes].Enable
 endif
End

Begin OnReset
 if ( [Ref-ID des heilen Netzes].GetDisabled )
  [Ref-ID des heilen Netzes].Enable
  [Ref-ID des kaputten Netzes].Disable
 endif
End

Die [ ] dann im Script natürlich nicht verwenden.


_______________________________________________________________________________________

@Good Psycho:
Wie du Quests machst, weißt du?
Ein Script dafür würde vom Gerüst etwa so aussehen:
Code:
Scriptname ToterGefangener

short doonce

begin OnActivate
if ( doonce == 0 ) && ( Stage des Quest == 30 ) ; das zweite ist so natürlich nicht richtig, ist aber auch nur ein Gerüst
[NPC].kill
set doonce to 1
endif 
activate
end

Das Script ist natürlich so nicht funktionsfähig, bei [NPC] mus die ID des NPCs hin, der sterben soll. Wie der Ausdruck in der zweiten Klammer der If-Zeile aussieht, weiß ich gerade nicht.
Das SCript ansich muss dann auf die Tür der Zelle.
 
Zuletzt bearbeitet: