Construction Set Item (Perle) soll Player in andere Celle folgen

Zerlix

Abenteurer
Hallo

Ich hab ein Problem vielleicht ist es gar keins und ich sehe vor lauter Bäume den Wald nicht mehr ;)

Ich habe eine Perle erstellt. Wenn der Spieler die Perle auf den Boden wirft, dreht sie sich um den Spieler und folgt Ihm. Wenn der Spieler unter 30% Leben fällt, fängt die Perle den Spieler an zu heilen.

Mein Problem liegt nun beim "Cellenwechsel" da folgt mir die Perle nicht.
Nun hab ich rausbekommen das Scripte auf Items nur ausgeführt werden wenn man in sich in der gleichen "Celle" befindet. Da liegt wohl mein Problem.

Mir fällt im moment keine Lösung dazu ein. Für Denkanstösse wäre ich dankbar.

Am liebsten wäre es mir, wenn die Perle mir einfach folgt oder beim "Zellenwechsel" im Inventar des Spielers landet. Einen Spell würde ich ungern machen.


Möp Zerlix
 
Ich glaub das würde schon helfen:

Code:
if ( GetInSameCell player == 0 )
   PerleRef.moveto player
endif

=> http://cs.elderscrolls.com/constwiki/index.php/GetInSameCell

Edit: Eigentlich stand hier ein wenig mehr, aber ich hab wohl zu lang gesucht, dann hat mich das Board rausgeworfen und nach dem fehlerhaften Senden gabs kein Zurück mehr, aber ich hatte noch diesen Befehl hier gefunden und ne Übersicht:

http://cs.elderscrolls.com/constwiki/index.php/IsPlayerMovingIntoNewSpace
http://cs.elderscrolls.com/constwiki/index.php/Script_Processing

aber so was richtig handfestes hab ich auch noch nicht... mal schaun, vielleicht fällt mir nochwas ein, dann lass ichs dich wissen...
 
Zuletzt bearbeitet:
Das klappt leider nicht oder ich stehe total auf der Leitung.

Mit "IsPlayerMovingIntoNewSpace" klappt es auch nicht.
Code:
if IsPlayerMovingIntoNewSpace == 0
     ......
     ...... 
else
     player.additem 01Z 1
endif
Eigentlich sollte der Spieler nach dem Porten(Ladebildschirm) ein Item im inventar hinzugefügt bekommen. Aber das klappt so nicht. Keine Ahnung warum. Mit GetInSameCell komm ich da auch nicht weiter.

Ich hab schon überlegt ein Quest anzulegen da das Script ja alle 5 Sekunden ausgeführt wird, dann habe ich aber das Problem mit der GetSelf Function auf dem Item.
Da kommt folgende Fehlermeldung im CS beim laden des Plugins.

Script "02ZScript" on carryable Form "01Z"(010011CE) contains GetSelf function:huh:

Ich glaube ich brauche eine Pause und 2-3 Liter schwarzen Kaffee

Möp Zerlix
 
War das jetz dein 1:1-Script? Die ID von der Perle muss auf jedenfall Acht-Stellig sein, das was bei dir steht ( "01Z" ) kann nicht funktionieren.
 
Wie wärs wenn ihr das Script als Questscript, und nicht als Objektscript schreibt,die sind Cell-übergreifend
Musst dann halt bloß vor jeden Befehl die PerlenID setzten
Also PerleID.moveto Player

Noch eine kleine Frage, weils mich interessiert:
Kannst du das Script, mit dem du die Perle um dich kreisen lässt mal posten??
@Baal-Lukor: wiso Achtstellig??
 
Zuletzt bearbeitet:
@Baal-Lukor: wiso Achtstellig??

Weil es nunmal einen Namen und eine FormID gibt. Der Name kann sein wie er will und man kann ihn selber bestimmen, die FormID wird automatisch zugewiesen, ist nicht änderbar und immer achtstellig - aus der von zerlix geposteter Fehlermeldung schließe ich, dass die FormID für die Perle 010011CE ist. Ersetz also mal bitte in den Scripten überall das 01Z (Was ja anscheinend der Name ist) durch das 010011CE...
 
Aber in CS-scripts kann man ja auch normale EditorID's benutzten, und es funzt trotzdem.
Vieleicht hat er seine fliegende perle einfach nur so genannt
 
Baal Lukor schrieb:
War das jetz dein 1:1-Script? Die ID von der Perle muss auf jedenfall Acht-Stellig sein, das was bei dir steht ( "01Z" ) kann nicht funktionieren.

Ich glaub du verwechelst das, du hast schon recht additem funktioniert in der Console nur mit der "FormID". Aber in einem Script kann man die "EditorID" verwenden. Jedenfalls steht das so im Wiki. Werde das aber trotzdem nochmal testen um sicher zugehen
- http://cs.elderscrolls.com/constwiki/index.php/AddItem


Frontschwein schrieb:
Kannst du das Script, mit dem du die Perle um dich kreisen lässt mal posten??
O1Z ist die Perle, das script heist "02ZScript".
Wenn du das Plugin in dein CS lädst kommt folgende Meldung.
"Script "02ZScript" on carryable Form "01Z"(010011CE) contains GetSelf function".

Irgendwie klappt das mit dem "set Self to GetSelf" nicht richtig.
Wenn das Fehlerfrei klappen würde könnte ich das vielleicht mit einem Questscript lösen.

Hier mein Versuch:
http://goldenergrund.de/TES-Plugins/ZTest.esp
Einfach die Perle mit "player.placeatme 010011CE" herbeicheaten.
Hoffentlich ist das eine funktionierende Version ;)

Insperiert wurde ich von diesem Artikel:
http://cs.elderscrolls.com/constwik...an_object_around_another_object_with_a_script
 
Zuletzt bearbeitet:
Das mit den Quest-Skript klappt nicht!:cry: :cry:

Quest-scripts sind non-reference-scripts d.h. ich kann die Reference der perle nicht eintragen


Gibt es denn nicht mehr so was, wie Globalscripts, wie in Morrowind
 
Geschafft.

Mit ein paar Simplen Tricks folgt die Perle dem Spieler auch beim Cell-wechsel
Ausserdem schwirrt die Perle jetzt nicht sofort um einen herum, wenn man die Cell betritt, in der sie liegt. Man muss sie einmal aufnehmen und wenn man sie dann ablegt, fliegt sie los. Deine Perle flog ausserdem ziemlich hoch über dem Kopf des Players und auch ziemlich langsam, ich hab den Script die float-variablen ein bischen verändert, damit s (meiner Meinung nach) besser aussieht,kannste aber jederzeit wieder ändern.

Post mal E-mail-adresse, damit du sie wieder haben kannst
 
Echt, ich will mehr wissen :)

Frontschwein hat das folgendermassen "gelöst"
Er addet beim ersten aufnehmen eine 2.Perle ins Inventar auf dieser läuft dann das script das für die Cellwanderung zuständig ist.

Ich suche immer noch an einer "sauberen Lösung". Es muss doch irgendwie machbar sein ein gültige Referrenz auf die Perle zulegen.


Möp Zerlix
 
Zuletzt bearbeitet:
Das Cs hat deswegen Probleme, weil die Reference in dem falle die Perle ins Inventar aufgenommen werden kann. Das stört es. Und selbst wenn du sie als Reference herstellen kannst, würde immer noch kein Moveto erfolgen, weil objekt-scripts nicht Cellübergreifend sind.


Und Global-scripts gibt es ja leider nicht mehr!!!!!!:mad: :mad:

Ich werd noch en bisschen weiter forschen, aber vollkommen sauber wird es nicht werden können.
 
Man kann doch Questscripts nehmen, die sind doch "global".

Das was du unter nicht referenz script verstehst bezieht sich doch nur auf folgende funktion
http://cs.elderscrolls.com/constwiki/index.php/Category:Reference_Variable_Functions

Die können nicht in einem Questscript verwendet werden weil sie keine gültige Referenz zurückgeben können. Aber ich kann "referenz-Variablen" im Questscript benutzen. Oder steh ich total auf der Leitung :?

Im Objekt Script müsste sowas stehen.
Code:
set Questname.RefVariable to getself


Und im Questscript kann ich das Item so ansprechen
Code:
RefVariable.moveto Player

Richtig ist das die Reference zerstört wird wenn du das Item ins Inventar aufnimmst. Das könnte man aber bestimmt im "OnDrop" und "OnAdd" Block regeln

Naja mal schauen ich geb auch noch nicht auf ;)




Möp Zerlix
 
Zuletzt bearbeitet:
Es funktioniert trotzdem nicht, da man erst den Quest dazu auslösen müsste, der für die Script gedacht ist.

Aber das macht nichts, denn ich habe eine Möglichkeit gefunden, Global-scripts über einen kleinen Trick zu erstellen.

Und es funktiniert alles tadellos!!!!! :D:D:D:D:D:D:D:D:D:D:D:D:D:D
 
Zuletzt bearbeitet:
Mir ist es gelungen die Referenzvariable im Questscript zu speichern. Der Rest dürfte kein Problem mehr sein.

Aber erzähl mir mal wie du das gelöst hast ?
 
Es ist so einfach, aber trotzdem wirkungsvoll

Es ist ein Objektscript auf den player.
Im Cs ist es als script "Globalscripts" gespeichert, so kann man noch mehr Funktionen dort reinlegen.


Aber wie hast du es geschafft, die reference zu speichern
 
Ganz einfach. Ab und an ist man Blöd ;)

Wenn du die Perle in die Spielwelt ablegst und dann einen haken bei "Persistant Reference" machst und dann oben einen ReferenceNamen eingibst, kann man das Item über diesen Namen ansprechen.

Ich leg die Datei nochmal ab. Funktioniert soweit, gibt noch ein kleines Prob mit dem Shadereffect ansonsten stimmt es soweit.

http://goldenergrund.de/TES-Plugins/ZTest.esp
 
Ach das nix schlimmes nach dem Porten muss der Effect nochmal abgespielt werden, vielleicht sogar vorher gestoppt werden. Ist bestimmt nix tolles.

Ich geh jetzt erstmal einen Kaffee trinken ;)


Edit: Kaffee ist schon wieder kalt geworden ich kann es einfach nicht sein lassen ;) Datei aktualisiert. Nun funktioniert es 100%ig.
Jetzt brauch ich noch ein anständiges Quest für die Perle ;)
 
Zuletzt bearbeitet: