Registrierung Häufig gestellte Fragen Suche Mitgliederliste Portal - Planet Skyrim.de Kalender Moderatoren und Administratoren Startseite
Morrowind&OblivionForum.de - PMM-Projects Network » The Elder Scrolls III: Morrowind » Morrowind Editor Help » Hilfe bei Item-Erhalten-Script » Hallo Gast [registrieren|anmelden]
« Vorheriges Thema Nächstes Thema » Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Autor
Beitrag
MallowInvader
Archer




Dabei seit: November 2004
Geschlecht:
Herkunft: bei Augsburg
Beiträge: 13

MallowInvader ist offline
  Hilfe bei Item-Erhalten-ScriptAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Ich hab einen Activator erstellt und zwar eine Statue.
Bis jetzt bin ich soweit mit dem Script:
--------------------------------------------------------
begin MY_Thron_Wächter_Inschrift 1
if (on Activate == 1 )
Activate
MessageBox "Thron, erhabener Gott stärke mich, um Feinde fern zu halten.<BR> Thron, stärkster aller, gib mir Mut selbst den dunkelsten Wesen stand zu halten!<BR> Thron mein Meister!" "Gelesen"
player->AddItem "my_athlonischer_langbogen" 1
endif
end MY_Thron_Wächter_Inschrift
---------------------------------------------------------
Folgendes problem hab ich nun:
Wenn ich die Inschrift lese bekomme ich ja das Item, doch das bekomm ich immer wieder wenn ich mit der Statue rede.
Wie kann ich machen das ich das item nur einaml erhalte, aber die Inschrift immer wieder lesen kann?

Schonmal Danke!

27.11.2004, 12:43 Profil von Füge  deiner Freunde-Liste hinzu Email an MallowInvader senden Homepage von MallowInvader
Fennias Maxim
Slave of the system
Verwarnung: 1
User gesperrt




Dabei seit: August 2003
Geschlecht:
Herkunft: Technodrome
Beiträge: 1456

Fennias Maxim ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Am einfachsten erstellst du eine globale Variable, deren wert du am ende des Scripts auf 1 setzt. Und nur wenn der wert am anfang des scripts 0 ist wird das script abgearbeitet


__________________
overload

27.11.2004, 14:03 Profil von Füge  deiner Freunde-Liste hinzu Email an Fennias Maxim senden Füge Fennias Maxim in deine Contact-Liste ein
Garak
Admin




Dabei seit: Juli 2002
Geschlecht:
Herkunft: Cardassia Prime
Beiträge: 9269

Garak ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

fast, fenni, aber ne lokale doonce-Variable reicht völlig

Eleganter wäre ein Journaleintrag, also etwa

if (Getjournalindex MY_Thronbogen < 10)
player -> additem....
Journal MY_Thronbogen 10
endif


den Passenden Eintrag muss man natürlich im Journal-Abschnitt des Dialogeditors anlegen, sonst gehts nicht.


PS: Warum um alles in der Welt neue gottheiten erfinden? bei dem Zirkus an Aedra und Daedra, den die Elder Scrolls Serie bietet, sollte für jeden Zweck was Lore-Konformes zu finden sein....


__________________
drei mal dürft ihr raten, wer grade seine Signatur geschrottet hat...geht aber wieder - allerdings solltet Ihr noch die Finger von den Avataren lassen

27.11.2004, 14:55 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
MallowInvader
Archer




Dabei seit: November 2004
Geschlecht:
Herkunft: bei Augsburg
Beiträge: 13

MallowInvader ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Also wenn ich das jetzt mit ner variable machen will (globale variable) was muss ich denn da eingeben?

27.11.2004, 19:39 Profil von Füge  deiner Freunde-Liste hinzu Email an MallowInvader senden Homepage von MallowInvader
F.I.M.
Acid Monk




Dabei seit: März 2004
Geschlecht:
Herkunft: 127.0.0.1
Beiträge: 2058

F.I.M. ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

du brauchst keine globale variable, so koennte es aussehen


code:

begin MY_Thron_Wächter_Inschrift 1

Short DoOnce

if ( DoOnce == 1 )
Return
endif

if ( DoOnce == 0 )
if ( on Activate == 1 )

Activate
MessageBox "Text" "Gelesen"
player->AddItem "my_athlonischer_langbogen" 1
Set DoOnce to 1

endif
endif

end MY_Thron_Wächter_Inschrift



ich glaube das Activate brauchste gar nicht...


__________________

Dieser Beitrag wurde von F.I.M. am 27.11.2004, 19:54 Uhr editiert.

27.11.2004, 19:52 Profil von Füge  deiner Freunde-Liste hinzu Email an F.I.M. senden Homepage von F.I.M. Xfire Screenname: acidguru
MallowInvader
Archer




Dabei seit: November 2004
Geschlecht:
Herkunft: bei Augsburg
Beiträge: 13

MallowInvader ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

OK vielen Dank für eure Hilfe!

28.11.2004, 01:13 Profil von Füge  deiner Freunde-Liste hinzu Email an MallowInvader senden Homepage von MallowInvader
Garak
Admin




Dabei seit: Juli 2002
Geschlecht:
Herkunft: Cardassia Prime
Beiträge: 9269

Garak ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Zitat:
Original von F.I.M.


ich glaube das Activate brauchste gar nicht...



Bestätigt. Und ich möchte nan dieser Stelle noch mal anmerkrn, dass alle seiten mehr davon haben, wenn man erklärtwie man ein script schreibt statt es einfach hinzuklatschen.

wo wir bei Überflüssig waren:

If Bedingung
return
endif


If (entgegengesetzte Bedingung)
Block
endif

ist ziemlich ... äh ... holperig. Den Gelben Teil kann man ohne funktionseinschränkung schlicht weglassen. Ein Bedingtes return am Anfang vom script macht nur bei langen scripten Sinn (verbessert die Performance), bei einem kurzen script wie hier bremst es eher


__________________
drei mal dürft ihr raten, wer grade seine Signatur geschrottet hat...geht aber wieder - allerdings solltet Ihr noch die Finger von den Avataren lassen

28.11.2004, 10:58 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
MallowInvader
Archer




Dabei seit: November 2004
Geschlecht:
Herkunft: bei Augsburg
Beiträge: 13

MallowInvader ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Ups, da is mir wohl ein kleines Problem unterlaufen.
Wenn ich das Cell betrete wo die Statue steht kommt folgende Fehlermeldung:
"Script Error: EXPRESSION in MY_Thron_Wächter_Inschrift"

kurz darauf dann die hier:
"Right eval"

Wenn cih dan mit der Statue rede passiert nichts.

mein Script sieht so aus.

-------------------------------------------------------------------------
begin MY_Thron_Wächter_Inschrift 1
short DoOnce
if (DoOnce == 1)
MessageBox "Thron, erhabener Gott stärke mich, um Feinde fern zu halten.<BR> Thron, stärkster aller, gib mir Mut selbst den dunkelsten Wesen stand zu halten!<BR> Thron mein Meister!" "Gelesen"
endif
if (on Activate == 1 )
Activate
MessageBox "Thron, erhabener Gott stärke mich, um Feinde fern zu halten.<BR> Thron, stärkster aller, gib mir Mut selbst den dunkelsten Wesen stand zu halten!<BR> Thron mein Meister!" "Gelesen"
MessageBox "Aus einer Ritze in der Statue kommt ein Athlonischer Langbogen zum Vorschein" "Mitnehmen"
player->AddItem "my_atlonischer_langbogen" 1
set DoOnce to 1
endif
end MY_Thron_Wächter_Inschrift
-------------------------------------------------------------------------

Was soll cih jetzt machen?

28.11.2004, 12:32 Profil von Füge  deiner Freunde-Liste hinzu Email an MallowInvader senden Homepage von MallowInvader
Garak
Admin




Dabei seit: Juli 2002
Geschlecht:
Herkunft: Cardassia Prime
Beiträge: 9269

Garak ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Zitat:
Original von MallowInvader

"Script Error: EXPRESSION in MY_Thron_Wächter_Inschrift"

kurz darauf dann die hier:
"Right eval"



das ist nur eine Fehlermeldung - einmal allgemein, danach en detail.

Expression: Eine Formel haut nicht hin
Right eval: Auswertung rechts vom "==" fehlgeschlagen

Zitat:
Original von MallowInvader
if (on Activate == 1 )



nunja, hier sieht es so aus, als wäre der fehler links - ich denke, das Leerzeichen bringt den compiler ein klein wenig durcheinander was nun links und was rechts ist.


Onactivate zusammen bitte. ausserdem ist eine Überprüfung einer Boole'schen Funktion auf True (also auf 1) unnötig,

if (onactivate)

sollte im prinzip auch reichen


__________________
drei mal dürft ihr raten, wer grade seine Signatur geschrottet hat...geht aber wieder - allerdings solltet Ihr noch die Finger von den Avataren lassen

28.11.2004, 13:08 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
MallowInvader
Archer




Dabei seit: November 2004
Geschlecht:
Herkunft: bei Augsburg
Beiträge: 13

MallowInvader ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

SCH***** Schonwieder ein Problem!
Hier mein Script jetzt:
------------------------------------------------------------------------
begin MY_Thron_Wächter_Inschrift 1
short DoOnce
if (DoOnce == 1)
MessageBox "Thron, erhabener Gott stärke mich, um Feinde fern zu halten. Thron, stärkster aller, gib mir Mut selbst den dunkelsten Wesen stand zu halten! Thron mein Meister!" "Gelesen"
endif
if ( OnActivate == 1 )
Activate
MessageBox "Thron, erhabener Gott stärke mich, um Feinde fern zu halten. Thron, stärkster aller, gib mir Mut selbst den dunkelsten Wesen stand zu halten! Thron mein Meister!" "Gelesen"
player->AddItem "my_atlonischer_langbogen" 1
set DoOnce to 1
endif
end MY_Thron_Wächter_Inschrift
--------------------------------------------------------------------------

Das ist jetzt so, er zeigt meine Nachricht an wenn ich mit der Statue spreche doch wenn ich dann auf "Gelesen" klicke passiert gar nix, die nachricht bleicbt einfach stehen und lässt sich nicht durch klick auf "gelesen" wegklicken.

Sorry aber ich brauch nochmal eure Hilfe

Dieser Beitrag wurde von MallowInvader am 29.11.2004, 13:49 Uhr editiert.

29.11.2004, 13:46 Profil von Füge  deiner Freunde-Liste hinzu Email an MallowInvader senden Homepage von MallowInvader
F.I.M.
Acid Monk




Dabei seit: März 2004
Geschlecht:
Herkunft: 127.0.0.1
Beiträge: 2058

F.I.M. ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Zitat:
Original von MallowInvader
SCH***** Schonwieder ein Problem!
Hier mein Script jetzt:
------------------------------------------------------------------------
begin MY_Thron_Wächter_Inschrift 1
short DoOnce
if (DoOnce == 1)
MessageBox "Thron, erhabener Gott stärke mich, um Feinde fern zu halten. Thron, stärkster aller, gib mir Mut selbst den dunkelsten Wesen stand zu halten! Thron mein Meister!" "Gelesen"
endif
if ( OnActivate == 1 )
Activate
MessageBox "Thron, erhabener Gott stärke mich, um Feinde fern zu halten. Thron, stärkster aller, gib mir Mut selbst den dunkelsten Wesen stand zu halten! Thron mein Meister!" "Gelesen"
player->AddItem "my_atlonischer_langbogen" 1
set DoOnce to 1
endif
end MY_Thron_Wächter_Inschrift
--------------------------------------------------------------------------

Das ist jetzt so, er zeigt meine Nachricht an wenn ich mit der Statue spreche doch wenn ich dann auf "Gelesen" klicke passiert gar nix, die nachricht bleicbt einfach stehen und lässt sich nicht durch klick auf "gelesen" wegklicken.

Sorry aber ich brauch nochmal eure Hilfe



muss == 0 sein


__________________

29.11.2004, 14:05 Profil von Füge  deiner Freunde-Liste hinzu Email an F.I.M. senden Homepage von F.I.M. Xfire Screenname: acidguru
MallowInvader
Archer




Dabei seit: November 2004
Geschlecht:
Herkunft: bei Augsburg
Beiträge: 13

MallowInvader ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Sackel Zement nochamal!
Wenn ich jetzt die Cell betrete erscheint sofort die Message und ich kann sie wieder nicht wegklicken!
Hier mein Script im jetztigen Zustand:
----------------------------------------------------------------------------
begin MY_Thron_Wächter_Inschrift 1
short DoOnce
if (DoOnce == 0)
MessageBox "Thron, erhabener Gott stärke mich, um Feinde fern zu halten.<BR> Thron, stärkster aller, gib mir Mut selbst den dunkelsten Wesen stand zu halten!<BR> Thron mein Meister!" "Gelesen"
endif
if (OnActivate == 1)
Activate
MessageBox "Thron, erhabener Gott stärke mich, um Feinde fern zu halten. Thron, stärkster aller, gib mir Mut selbst den dunkelsten Wesen stand zu halten! Thron mein Meister!" "Gelesen"
player->AddItem "my_atlonischer_langbogen" 1
set DoOnce to 1
endif
end MY_Thron_Wächter_Inschrift

--------------------------------------------------------------------------

Aber trotzdem Danke ;-)

29.11.2004, 16:39 Profil von Füge  deiner Freunde-Liste hinzu Email an MallowInvader senden Homepage von MallowInvader
F.I.M.
Acid Monk




Dabei seit: März 2004
Geschlecht:
Herkunft: 127.0.0.1
Beiträge: 2058

F.I.M. ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Zitat:
Original von MallowInvader
Sackel Zement nochamal!
Wenn ich jetzt die Cell betrete erscheint sofort die Message und ich kann sie wieder nicht wegklicken!
Hier mein Script im jetztigen Zustand:
----------------------------------------------------------------------------
begin MY_Thron_Wächter_Inschrift 1
short DoOnce
if ( DoOnce == 0 )
MessageBox "Thron, erhabener Gott stärke mich, um Feinde fern zu halten.<BR> Thron, stärkster aller, gib mir Mut selbst den dunkelsten Wesen stand zu halten!<BR> Thron mein Meister!" "Gelesen"
endif
if ( OnActivate == 1 )
Activate
MessageBox "Thron, erhabener Gott stärke mich, um Feinde fern zu halten. Thron, stärkster aller, gib mir Mut selbst den dunkelsten Wesen stand zu halten! Thron mein Meister!" "Gelesen"
player->AddItem "my_atlonischer_langbogen" 1
set DoOnce to 1
endif
end MY_Thron_Wächter_Inschrift

--------------------------------------------------------------------------

Aber trotzdem Danke ;-)



das kann ich auch nicht nach vollziehen...

warum hast du das nicht so gemacht...


code:

if ( DoOnce == 0 )
if ( OnActivate == 1 )
hier alle Aktionen
endif
endif



die message kommt immer weil du sie direkt unter der DoOnce variable hast, und weil wenn du in den raum kommst dann ist die variable == 0, darum wird immer der text angezeigt...


__________________

Dieser Beitrag wurde von F.I.M. am 29.11.2004, 17:18 Uhr editiert.

29.11.2004, 17:15 Profil von Füge  deiner Freunde-Liste hinzu Email an F.I.M. senden Homepage von F.I.M. Xfire Screenname: acidguru
  « Vorheriges Thema Nächstes Thema »
Neues Thema erstellen Antwort erstellen
Gehe zu:

Design by: Garak - Powered by: Burning Board 1.1.1 © 2001 WoltLab GbR