Construction Set Skriptthread zum Construction Set

Scriptkorrektur + das, was du wolltest:
Code:
scn GroßesFassScript

short button

begin OnActivate

If IsActionRef player
MessageBox "Dieses Fass beinhaltet sehr viel Wein. Möchtest du kosten?" "Ja, sehr gern!" "Nein, lieber nicht."
Endif

end

begin GameMode

    set button to getbuttonpressed

        if button == 0
            MessageBox "Der Wein war sehr fein!"
            player.addspell [SpellID]
        endif
end
Der Script gilt momentan nur für Fähigkeiten/Krankheiten, wenn du was anderes willst, sag's - oder besser gesagt schreib's - einfach.

Der Script muss übrigens auf's Fass.

Also hatte den Script so und so aufs Fass gelegt... Der Script hat auch schon funktioniert. Wollte jetzt nur noch ein Zauber (zum Beispiel 10 Sekunden Willenskraft entziehen)...dieser Zauber soll direkt auf den Spieler wirken. Danke für die Antwort.
 
Hallo, ich hab probleme mit folgenden Script.

Code:
Scn ...

short once

Begin onactivate

If isAktion == 1 && once == 0

1ShadowKurbel.Playgroup forward, 1
1ShadowGitter.Playgroup forward, 1
set once to 1
endif
endif

else

if isAktio == 1 && Once == 1

1ShadowKurbel.Playgroup Backward, 1
1ShadowGitter.Playgroup Backward, 1
set once to 0
endif
endif
end

Es soll folgendes tun:

Wenn ich einen der beiden Schalter, auf dem das Script liegt, aktivire, soll der Aktivator aktivirt (Das Kavtch eingangtor zum Burgplatz) werden, also das es sich anhebt, und beim zweten mal soll es wieder zugehen.

Wenn ich das Script jetzt so speichern will, Kommt die fehler melden, das die Funktion "1ShadowKurbel.Playgroup" nicht gefunden wurde, bzw. nicht existiert. Allerdings sieht das Orginal (KvatchGateScript03) nicht viel anders aus.

was mach ich falsch?

Thy für Hilfe im vorraus.

mfg
Shadow-King
 
Also erstmal fällt mir gerade auf, dass es "IsAction" als Befehl nicht gibt (zumindest nicht im CS-Wiki). Wo hast du den her? Im KvatchGate03-Script steht "IsActionREF". Vielleicht liegt da das Problem.
 
Es soll ja von jedem benutzbar sein, also nicht nur vom player.
Da dachte ich mir, ich lasse vom "If isAktionref Player" einfach die Ref abfrage weg.
Wie müsste es denn dann aussehen, wenn es alle benutzen können?
 
Code:
Weiß jetzt nicht, wo der Script hinkommt (falls er richtig ist).[/QUOTE]
[quote="aufspringer, post: 507727"]Also hatte den Script so und so aufs Fass gelegt...[/Quote]
Tut mir Leid, das habe ich verwechselt. Ich dachte es bezog sich auf den längeren Script.

[quote="aufspringer, post: 507727"]Der Script hat auch schon funktioniert. Wollte jetzt nur noch ein Zauber (zum Beispiel 10 Sekunden Willenskraft entziehen)...dieser Zauber soll direkt auf den Spieler wirken. Danke für die Antwort.[/QUOTE]

Also wenn der Zauber eine Krankheit/Fähigkeit/Eigenschaft ist, dann musst du einfach [SpellID] durch die gewünschte ID ersetzen.
Ist es jedoch ein normaler Zauber, dann ersetzt du die Zeile mit:
[CODE]cast [SpellID] player

MfG Gildur
 
  • Like
Reaktionen: aufspringer
Ok hab das jetzt weggelassen, aber die fehlermeldenug kommt immernoch.

Kann mir einer ein anderen Scriptvorschlag machen, (hab mal was von Parent funktion gehört, weis aber nicht wie man die so richtig einsetzt).

mfg
Shadow-King
 
Code:
Scn Scriptname

short once

Begin onactivate

If doonce == 0
 1ShadowKurbel.Playgroup forward, 1
 1ShadowGitter.Playgroup forward, 1
 set doonce to 1

elseif doonce == 1
 1ShadowKurbel.Playgroup Backward, 1
 1ShadowGitter.Playgroup Backward, 1
set once to 0
endif
end
Soweit das gitter und der gegebene Schalter wirklich Animationen besitzen, müsste dieser Script funktionieren. Hier Parents zu benutzen ist hier eigentlich nicht nützlich, es sei denn, du brauchst so etwas öfters (Also ein Tor öffnen und Schalter bewegen).
 
  • Like
Reaktionen: Shadow-King
Wenn du aus den beiden "doonce" noch ein "once" machst, sollte es gehen.
Wenn nicht, kannst du mal probieren, einfach nur "PlayGroup forward, 1" zu schreiben und bei den Schaltern das Tor als Parent anzugeben (die Ref-ID braucht es dann eigentlich nicht mehr).
 
Wenn du aus den beiden "doonce" noch ein "once" machst, sollte es gehen.
Wenn nicht, kannst du mal probieren, einfach nur "PlayGroup forward, 1" zu schreiben und bei den Schaltern das Tor als Parent anzugeben (die Ref-ID braucht es dann eigentlich nicht mehr).

Oder er macht einfach aus dem once ganz unten ein doonce ;).

Ich würd das nicht über Parents machen, ist zu umständlich.

2. Sachen, du hast vermutlich das KvatchPortcullis2 genommen oder?
Wenn ja, geht der Script oben, allerdings wird es einen Animationsbug geben, das KP2 bei Playgroup Backward diese Animation so oft wiederholt, bis man eine neue startet.
 
Ok ich hab das mit dem Kvatchtor aufgegeben, (obriges Script funktionir auch nicht, gleicher fehler)

Jetzt habe ich 2 von den Arenatoren genommen, und folgendes Geschrieben:


Code:
Scn 1ShadowGateSwitch

Begin OnActivate

Shadowswitch01.playgroup forward 1
Shadowfestunggate01.unlock
Shadowfestunggate02.unlock
Shadowfestunggate01.Activate
Shadowfestunggate02.Activate
endif

end

Begin Gamemode

If ( GetDistance Player < 650 )

Shadowswitch01.playgroup Backward 1
Shadowfestunggate01.lock 100
Shadowfestunggate02.lock 100
endif
end

allerding ist ingame, wenn ich den Schalter betätige keine Reaktion.
was hab ich denn jetzt schonwieder Falsch gemacht?

mfg
Shadow-King
 
Liegt auf den beiden Toren ein Script der sagt, was bei einer Aktivierung passieren soll? Bin mir nicht ganz sicher, sind das Türen oder Activator?
 
Trigger

Ich hab eine Frage bezüglich eines triggerscripts:
Ich möchte folgendes:
Wenn jeman durch eine Triggerzone geht, soll die Tür hinter im sich schliessen und abgeschlossen werden. Ich habs schon mehrach versucht, aber mein Script haut nie so richtig hin.
Könnt ihr mir helfen?
 
Ist das eine Tür mit Animation? Wenn nicht, ist das ganze recht einfach:

Code:
scn ...

begin OnTrigger player
[Ref-ID der Tür].lock 100
end

Halt der Tür ne Reference-ID geben, nen Haken bei "Persistance Refrence machen und im Script einsetzen.
 
Sry, falls ich mitten ins Thema reinplatze, aber ich frag mich schon seid ner weile, wie der Skript geht, der abfragt, ob der player (oder ne andere ref), ein bestimmtes Item besitzt...
Muesste "GetItemCount [Objekt ID] == [menge]" sein, oder so.:huh:

THX im vorraus
DagothDunmer
 
Ist das eine Tür mit Animation? Wenn nicht, ist das ganze recht einfach:

Code:
scn ...
 
begin OnTrigger player
[Ref-ID der Tür].lock 100
end

Halt der Tür ne Reference-ID geben, nen Haken bei "Persistance Refrence machen und im Script einsetzen.

Auch mit animierten Türen gehts einfach. Einfach vor "lock" folgende Zeile einfügen.
Code:
TürRef.SetOpenState 0
und schon wird die Tür schön langsam geschloßen.

@DagothDunmer: Du weißt doch wie es geht.:) Einfach noch die RefID vor GetItemCount und das == würde ich mit >=, also gleich oder mehr, tauschen. Ist zuverlässiger.
 
Servus,
kurze Frage; Ist es mithilfe eines Befehls möglich abzufragen, ob der Spieler (Als Vampir) grad einen NPC beißt? Und ist es weiterhin möglich (Von mir aus auch mit OBSE) dass man auf ein Objekt ingame ein Script legen kann?
Wollte dafür kein extra Fred aufmachen deswegen knall ich es mal hier rein *g*
 
Auch mit animierten Türen gehts einfach. Einfach vor "lock" folgende Zeile einfügen.
Code:
TürRef.SetOpenState 0
und schon wird die Tür schön langsam geschloßen.

@DagothDunmer: Du weißt doch wie es geht.:) Einfach noch die RefID vor GetItemCount und das == würde ich mit >=, also gleich oder mehr, tauschen. Ist zuverlässiger.

Selbst das muss man nicht, wenn man eine Tür locked wird sie automatisch geschlossen.

@Mod
Code:
reference.SetScript scriptID:ref targetObjectID:ref
specified script onto the calling object and returns any previous script

function has not been fully tested yet, and is not ready to be used in a released mod. It may not have the same function in later versions, may require the script to be recompiled, or simply may be removed. Use for testing purposes only until the author of the function says otherwise.

that Oblivion doesn't have a script variable type so you must assign the script to a ref variable for this to work.
It seems that setting the script won't start it up. For instance, if you use player.SetScript rScript the script will be added to the player (player.GetScript will be rScript), but no blocks will run (tested GameMode, onHit, onMagicHit) and HasVariable will falsely return 0.
For some scripts, this isn't an issue. For instance, if you set a script to an item and then use LocalRef.AddItem Item 1 the script will run, because AddItem starts scripts.
In the case of the player, however, the only method to start the script is to open the console and type in player.ModAV Health 0, player.AddItem F 1 or even player with the dot player. Using the functions in a script won't start the script (even player.con HairTint 0 0 0)
RunBatchScript works with a text file with a simple player..
As with all non-cloneform items, when you reload a game the script ref will be reset. If the object didn't have a script, then it won't have a script when you reload. If it had a different script, then it will have the different script once again.
There is an exception - when reloading a save game in the same area. For instance, if, in your save game, the player doesn't have a script, then you set a script on the player, then reload -> the script will still be on the player
 
  • Like
Reaktionen: Neurosis404