Skriptthread zum Creation Kit

As of 6/5/2012, it appears that the latest beta patch (1.6) no longer allows for the AddItem method to add an object or objectreference of Form 'Container' to the player's inventory.

Ist das wahr? Wenn ja, habe ich zwei Fragen:

1. Gibtes neben "AddItem" noch eine Alternative?

2. Wie könnte man den Patch 1.6 deinstallieren?

Was ich erreichen möchte:

Nach einem Dialog soll der Spieler 10 Gold zahlen und einen Schlüssel erhalten.
 
Zuletzt bearbeitet:
Dein Schlüssel ist kein "Container". Daher erübrigt sich das. Ich glaube, du hast vergessen, die Properties zu füllen. Außerdem, worauf liegt das Skript überhaupt? Es scheint ja auf einem Objekt zu liegen; wenn dieses geladen wird, wird das Skript ausgeführt. Ist es das was du willst? Denn dann läuft das Skript nur einmal.
 
Was genau meinst du mit "Properties füllen"? Meinst du die Properties im Script zu schreiben, oder ist noch ein weiterer Schritt nötig? Compile funktioniert, keine Fehlermeldung.

Also eigentlich will ich folgendes:

Spieler geht in ein Hotel und möchte ein Zimmer mieten. Wenn der Spieler die entsprechende Option wählt, soll dem Spieler das Gold für die Miete entzogen und ihm der Schlüssel für das Zimmer ins Inventar gelegt werden. Die Queststufe wird auf 10 erhöht (Was auch funktioniert)

Das Script sollte man auf den Vermieter oder auf die Quest legen können.
 
Hallöchen an alle,
ich bin ziemlich neu in der Modding Geschichte und ganz besonders mit Scripten, weil ich mich damit fast gar nicht auskenne, sonder nur manches verstehe. Aber ich wollte hier trotzdem mal nach 2 Scripts fragen.

Zum erstem Script, ich weiß nichtmal ob ich dafür ein Script benötige allerdings habe ich nichts in den anderen Einstellungen gefunden. Auf jeden fall habe ich einen NPC erstellt und in eine Höhle platziert. In dieser Höhle befinden sich Käfige die teilweise auch abgeschlossen sind (auch der, wo mein NPC drin ist). Diese Käfige werden von Zufalls generierten Banditen (teilweise irgendwas wie z.b. "LvlBanditMessis" oder so) "bewacht".
Wenn ich nun aber in die Höhle reingehe wird mein NPC angegriffen, was natürlich klar ist, da er ein Feind für die Banditen ist. Dieser NPC gehört einer Quest an und ich wollte es so machen, dass ich ihn retten muss.
Wie stelle ich das nun ein oder mit welchem Script kann ich es schaffen, dass die Banditen meinen NPC sozusagen "ignorieren" oder evtl. als Gefangenen ansehen und ihn nicht töten wollen? Ich hatte schon versucht ein Relationship für NPC und Banditen zu erstellen, nur kann man da leider keine Banditen auswählen.


Zum zweiten Script, welches auch wieder mit meiner Quest zu tun hat. Und zwar habe ich eingestellt, dass ein Bandit mich angreift und wenn ich ihn getötet habe ich eine Notiz in seiner Leiche finde. Diese Notiz soll mithilfe eines Scriptes abhängig eines vorher entschiedenen Ereignis jeweils verändert werden bzw. einen anderen Inhalt an Text in sich stehen haben.
Also, wenn ich eine Frage mit einer Lüge beantwortet habe, dann soll etwas anderes in der Notiz drin stehen, als wenn ich die Wahrheit sagen würde. Ist das möglich?

Vielen Dank für jegliche Hilfe! :)

- xXBlackWorkXx
 
Zuletzt bearbeitet:
Zu deinem ersten Problem wäre afaik nur ein Erstellen/Zuweisen, einer gemeinsamen Faction
notwendig.
Über eine Queststage, so dein NPC den Banditen gegenüber danach erneut als Feind gesehen werden soll,
müsste dieser Zustand wieder aufgehoben werden.

Dein zweites Problem wird wahrscheinlich nur mit einem Skript zu lösen sein, welches ich dir leider
nicht bieten kann.
Jedoch würde ich, als Lösungsansatz, so viele Notizen erstellen, wie es auch Antworten gibt und sie
über ein Skript nach jeweiliger Entscheidung des Spielers, zur Leiche hinzufügen lassen.
Wie gesagt, ist nur ein Lösungsansatz.

MfG
 
Hm, ok dann werde ich mal schauen ob ich da etwas finde, das mir auch nützt ^^

Zum zweiten muss ich dir recht geben, genau so hatte ich es auch vor, nur ich weiß ja leider nicht genau wie ich das machen soll, ob mit Script oder ohne :D
 
Hey,
ich bräuchte bitte ein Script das folgendes Bewirken soll:
Also das Objekt dient als Tür von Zelle 1 zu Zelle 2 aber gleichzeitig auch von Zelle 2 zu Zelle 3. Is sch.. zu beschreiben wie wenn ich mit einer Tür in wahlweise in zwei verschiedene Zellen kommen würde. Vlt. ne Messege Box anzeigen die z.B

"Möchtet ihr nach Zelle 1 oder Zelle 2?"
"1" "2"

Hat jemand eine Idee?:?:
Nem ich dafür ne Tür und schmeis das Script drauf, oder brauch ich nen Activator?:(
 
Nem ich dafür ne Tür und schmeis das Script drauf, oder brauch ich nen Activator?:(

Hat keiner eine Idee oder einen Vorschlag wie ich vorgehen sollte. :?

Hier mein Vorschlag: erstelle eine Message mit den beiden Auswahlmöglichkeiten und platziere 2 XMarkerHeading an den jeweiligen Zielorten.

Das Skript sollte sowohl mit einer Door als auch mit Activator funktionieren (Properties zuweisen nicht vergessen;)).
Code:
Scriptname TestSkript extends ObjectReference

ObjectReference Property TeleportMarker01 auto
ObjectReference Property TeleportMarker02 auto
Message Property TeleportMessage auto
Actor Property PlayerRef auto

Event OnActivate(ObjectReference akActionRef)
    if akActionRef == PlayerRef
        int Auswahl = TeleportMessage.Show()
        if Auswahl == 0
            PlayerRef.MoveTo(TeleportMarker01)
        elseif Auswahl == 1
            PlayerRef.MoveTo(TeleportMarker02)
        else
            Debug.MessageBox("Hier stimmt was nicht")
        endif
    endif
EndEvent

Der Nachteil bei MoveTo ist, dass es nur den Spieler teleportiert, nicht die Begleiter. Alternativ dazu könntest du auch mal die Funktion FastTravel antesten.
 
  • Like
Reaktionen: Amkaos
Hi, ich suche nach einem Befehl.

Es ist so, ich will, das wenn ein MiscObject im Menü angeklickt wird, ein Script ausgeführt wird. Jedoch habe ich dazu noch kein passendes Event gefunden. OnEquipped fällt weg, da man MiscObjects nicht ausrüsten kann. Hat jemand ne Idee? Thanks
 
Hallo ich brauche ein ganz einfaches Skript. Aber das was ich bis jetzt Probiert habe funktionierte nicht.

Ich möchte das wenn ich objekt Schwert1 ausrüste dann ein Zauber hinzugefügt werden soll. Und wenn es nicht mehr ausgerüstet ist dann soll der Zauber nicht mehr vorhanden sein.

PHP:
ScriptName T1 Extends ObjectReference

Event OnEquipped(Actor akActor)
  if(akActor == game.getplayer())
    akActor.addspell(<01Tspell1>)
  endif
EndEvent

Event OnUnEquipped(Actor akActor)
  if(akActor == game.getplayer())
    akActor.removespell(<01Tspell1>)
  endif
EndEvent

Aber ich kann es nicht compliemieren. Es kommt immer bei den CK failed.

Und wie kann ich es schreiben das ab LEVEL 7 noch ein Zauber hinzugefügt wird. Also gleich 2 aufeinmal? Die dann natürlich auch gleich wieder enfernt werden wenn die Waffe abgelegt wird.

Danke im vorraus.
 
Code:
Scriptname T1 extends ObjectReference

Spell Property T1spell auto
Spell Property T1spellLevel7 auto

Event OnEquipped(Actor akActor)
  if(akActor == game.getplayer())
    akActor.addspell(T1spell)
    if(akActor.getLevel() >= 7)
        akActor.addspell(T1spellLevel7)
    endif
  endif
EndEvent

Event OnUnEquipped(Actor akActor)
  if(akActor == game.getplayer())
    akActor.removespell(T1spell)
    if(akActor.hasSpell(T1spellLevel7))
        akActor.removespell(T1spellLevel7)
    endif
  endif
EndEvent

Die Properties musst du dann eben noch mit den gewünschten Zaubern füllen.
 
Also wenn ich es bei C++ reinkopiere unter welchen datei Typ soll es abgespeichert werden?

Es kommt gleich wieder failed als fehler im CK.
 
Zuletzt bearbeitet:
Ich habe es bei C++ reinkopiert. Und als Txt gespeichert. Dann selbst die endung in .psc geändert. Und im CK unter Gamply -> Compile Papyrus Script dieses Script angklickt um es zu Complimieren. Da kommt jetzt immer failed.

Hier das fertige Script:

PHP:
Scriptname T1 extends ObjectReference

Spell Property 01Tspell1 auto
Spell Property 01Tspell2 auto

Event OnEquipped(Actor akActor)
  if(akActor == game.getplayer())
    akActor.addspell(01Tspell1)
    if(akActor.getLevel() >= 7)
        akActor.addspell(01Tspell2)
    endif
  endif
EndEvent

Event OnUnEquipped(Actor akActor)
  if(akActor == game.getplayer())
    akActor.removespell(01Tspell1)
    if(akActor.hasSpell(01Tspell2))
        akActor.removespell(01Tspell2)
    endif
  endif
EndEvent
 
Zuletzt bearbeitet:
Warum machst du es so umständlich? Du kannst auch einfach Notepad benutzen. Noch dazu macht es doch mehr Sinn, das Skript gleich im Fenster deiner Waffe zu erstellen und es direkt auf sie zu legen. Außerdem wäre die Fehlermeldung auch noch hilfreich. Mit "CK failed" kann ich nichts anfangen.
 
Ja da hast du recht. Hatte irgendwie einen Schreibefehler im Script. Hat jetzt funktioniert. Danke vielmals

So zurück. Jetzt kann ich das Script auf das Schwert legen aber die Zauber werden nicht hinzugefügt???
 
Zuletzt bearbeitet: