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 » Problem zum Scripten » 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 [  1  2  >  »  ]
crawler
Crusader




Dabei seit: Juli 2003
Geschlecht:
Herkunft: :?
Beiträge: 262

crawler ist offline
  Problem zum ScriptenAntwort 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 ein Problem. ich mache gerade ein neues plug, das sich um 5 schwerter handeln wird.

schwert der(s):

feuers
wasser
luft
boden


bei den anderen habe ich mir noch nichts überlegt, aber ich habe mir etwas zum schwert des bodens überlegt...

und zwar möchte ich es so, das man das schwert aus einem stein herausziehen muss. das soll aber erst ab einer bestimmten stärke gehen (stärke 101) so das man es als normaler spieler NICHT herausziehen kann.

nun möchte ich ein amulett erstellen, das einen zauber besitzt, der die stärke EINMALIG (ein einmalamulett) auf 101 setzt und danach wieder zum normalfall zurückkehrt. nach der anwendung soll das amulett unbrauchbar werden.


geht das, und wenn, wie

ich brauche also :

-ein script zum stein (bestimmte stärke)
-ein script zum amulett ( als einmalamulett)

mfg
crawler


__________________
Ein guter Beitrag ist, wenn alle anderen wünschten, sie hätten ihn gepostet

-->Artefaktsammler unterwegs als in <--

11.08.2003, 10:34 Profil von Füge  deiner Freunde-Liste hinzu Email an crawler senden Homepage von crawler Füge crawler in deine Contact-Liste ein
Hephaistos
Verschollen




Dabei seit: Februar 2003
Geschlecht:
Herkunft: Wien
Beiträge: 2102

Hephaistos 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

Beleg das Amulett einfach nicht mit einem normalen Zauber, sondern erhöhe die Stärke über das Script. Mit einer Variable kannst du dann dafür sorgen, daß das Script nur einmal funktioniert.

Beim SChwert mußt du nur mittels einer Abfrage das nehmen des Schwertes abfangen, wenn die Stärke kleiner als 101 ist:

if ( player->....)
return
endif

Achja, wäre das korrekte Element nicht Erde statt Boden.


__________________


Die Dummheit der Menschen und das Weltall sind unendlich, wobei ich mir beim Weltall noch nicht sicher bin.
Albert Einstein

Wenn die Klügeren nachgeben, regiert Dummheit die Welt.
Marie von Ebner-Eschenbach

11.08.2003, 11:36 Profil von Füge  deiner Freunde-Liste hinzu Email an Hephaistos senden
crawler
Crusader




Dabei seit: Juli 2003
Geschlecht:
Herkunft: :?
Beiträge: 262

crawler 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

danke, aber wie geht das scipt zur erhöhung der stärke ?



achja, was kommt hinter player->...etwa setstrength 101



und ich meinte auch erde......


__________________
Ein guter Beitrag ist, wenn alle anderen wünschten, sie hätten ihn gepostet

-->Artefaktsammler unterwegs als in <--

11.08.2003, 11:49 Profil von Füge  deiner Freunde-Liste hinzu Email an crawler senden Homepage von crawler Füge crawler in deine Contact-Liste ein
Hephaistos
Verschollen




Dabei seit: Februar 2003
Geschlecht:
Herkunft: Wien
Beiträge: 2102

Hephaistos 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:
achja, was kommt hinter player->...etwa setstrength 101

Nein, getstrenght, schließlich willst du den Wert ja abfragen.
Zitat:
danke, aber wie geht das scipt zur erhöhung der stärke ?

Genau auf 101 zu setzen ist schwer (zumindest für mich), ich würde 101 als untere Grenze definieren. In dem Fall erstellst du dann eine Fähigkeit mit Attribut festigen und führst die mit OnPCEquip und addspell aus. Natürlich benötigst eine Variable, damit das nur einmal geschieht und die Fähigkeit muß auch wieder entfernt werden, wenn das Amulett abgenommen wird, oder nachdem das Schwert aus dem Stein befreit wurde (oder wann immer du willst).


__________________


Die Dummheit der Menschen und das Weltall sind unendlich, wobei ich mir beim Weltall noch nicht sicher bin.
Albert Einstein

Wenn die Klügeren nachgeben, regiert Dummheit die Welt.
Marie von Ebner-Eschenbach

11.08.2003, 12:16 Profil von Füge  deiner Freunde-Liste hinzu Email an Hephaistos senden
crawler
Crusader




Dabei seit: Juli 2003
Geschlecht:
Herkunft: :?
Beiträge: 262

crawler 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:
Genau auf 101 zu setzen ist schwer (zumindest für mich), ich würde 101 als untere Grenze definieren. In dem Fall erstellst du dann eine Fähigkeit mit Attribut festigen und führst die mit OnPCEquip und addspell aus. Natürlich benötigst eine Variable, damit das nur einmal geschieht und die Fähigkeit muß auch wieder entfernt werden, wenn das Amulett abgenommen wird, oder nachdem das Schwert aus dem Stein befreit wurde (oder wann immer du willst).



ähm , danke. nur bin ich noch so ein scripting-laie, das ich das leider nicht umsetzen kann. hat jemand (garak ?) vielleicht schon mal soetwas gemacht und kann das script hier rein posten.

ich würde mich sehr freuen. ich würde die mod zwar auch ohne das fertig bekommen, aber man soll das schwert ja nicht so einfach bekommen.


__________________
Ein guter Beitrag ist, wenn alle anderen wünschten, sie hätten ihn gepostet

-->Artefaktsammler unterwegs als in <--

11.08.2003, 15:28 Profil von Füge  deiner Freunde-Liste hinzu Email an crawler senden Homepage von crawler Füge crawler 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

mal sehen - ein schwert zu nehmen ist eine aktiviereung, also bauchst du eine onactivate-abfrage , davor aber eine abfrage auf eine lokale variable, die den onactivate-teil abschaltet, sobald das Teil erstmal befreit ist - player -> getstrength - abfrage natürlich als innerste ifbedingung, mit nem else und der Message, das das teil feststeckt - eigentlich sollte man mit diesen infos weiterkommen - ach ja: wenn der Stärketest bestanden ist, einfach per "Activate" die standartaktivierung - also das aufnehmen - aktivieren....

ein einmal-Amulett? wär ein scroll oder trank als klassischer einmalgegenstand nicht einfacher? von setstrength rate ich jedenfalls ab, das setzt den permanenten wert...


__________________
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

11.08.2003, 22:45 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
Yuri
Mage




Dabei seit: April 2003
Geschlecht:
Herkunft:
Beiträge: 170

Yuri 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

Als erstes muss ich mal sagen: BAHNHOF!
was ist z.b. ne lokale variable?


__________________
Wer zehn Fehler findet kriegt einen gratis dazu!

Suchfinktiondefender
(ab 10 suchbegriffen kommen garnicht mehr so viele Ergebnisse )

12.08.2003, 10:00 Profil von Füge  deiner Freunde-Liste hinzu Email an Yuri senden
Hephaistos
Verschollen




Dabei seit: Februar 2003
Geschlecht:
Herkunft: Wien
Beiträge: 2102

Hephaistos 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:
was ist z.b. ne lokale variable?

Eine Variable die nur in der Zelle gilt, in der das Script ausgeführt wird. Im Gegensatz dazu gilt die globale Variable in allen Zellen.


__________________


Die Dummheit der Menschen und das Weltall sind unendlich, wobei ich mir beim Weltall noch nicht sicher bin.
Albert Einstein

Wenn die Klügeren nachgeben, regiert Dummheit die Welt.
Marie von Ebner-Eschenbach

12.08.2003, 15:12 Profil von Füge  deiner Freunde-Liste hinzu Email an Hephaistos senden
Yuri
Mage




Dabei seit: April 2003
Geschlecht:
Herkunft:
Beiträge: 170

Yuri 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

wollt eigentlich wissen, was die bringt...
dass es noch eine globale variable gibt, hilft mir recht wenig, beim verstehen!


__________________
Wer zehn Fehler findet kriegt einen gratis dazu!

Suchfinktiondefender
(ab 10 suchbegriffen kommen garnicht mehr so viele Ergebnisse )

12.08.2003, 17:21 Profil von Füge  deiner Freunde-Liste hinzu Email an Yuri senden
chris_tm
Bard



Dabei seit: Februar 2003
Geschlecht:
Herkunft: München
Beiträge: 37

chris_tm 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

Eine lokale Variable gilt nur für das Script, in dem sie definiert wurde. Man definiert sie, indem man am Anfang des Scripts z.B. für eine Variable, die gerade Zahlenwerte annehmen soll (z.B. -2, -1, 0, 1, 2 etc) die Variable als "short" schreibt:
short VariablenName.
Die Variable kann man nach Lust und Laune benennen also z.B.: Herbert.
Normalerweise nimmt man aber einen Namen, der Sinn macht.

Wenn ich Garak richtig verstehe meint er das ungefähr so :

Begin my_strengthtest

short stophere

if ( stophere == 1 )
Return
endif

if ( OnActivate == 1 )
if ( Player->GetStrength >= 101 )
set stophere to 1
Activate
else
MessageBox "Du bist zu schwach um das Schwert herauszuziehen"
endif
endif

End


__________________

Meine Site

Dieser Beitrag wurde von chris_tm am 12.08.2003, 18:34 Uhr editiert.

12.08.2003, 18:27 Profil von Füge  deiner Freunde-Liste hinzu Email an chris_tm senden Homepage von chris_tm
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

exakt das script meinte ich....

zu den Variablen: Genaugenommen ist es gans speziell dieses script auf diesem gegenstand, in dem ne lokale Variable gillt - will sagen, wenn Du zwei schwerter in den stein hängst, wird beim rausziehen des einen auch nur die Variable Stophere auf diesem rausgezogenen gesetzt, die auf dem anderen nicht - auch wenn es eigentlich das selbe script ist, nur eben nicht die selbe instanz

zu short/float: short kann durchaus auch ungerade Zahlen annehmen - eben aber nur ganze Zahlen - richtig, float kümmert sich dafür um kommazahlen und wird besonders mit Timern, aber auch mit GetHealthGetRatio oder ModCurrendHealth etc benötigt


__________________
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

12.08.2003, 21:54 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
madmaxx
Ehrenmitglied




Dabei seit: Januar 2003
Geschlecht:
Herkunft:
Beiträge: 3257

madmaxx 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

Ich glaube sie kapieren kein Wort und wolle einfach, das ihr nen fertiges Script dazu postet


__________________

"Die Flamme unsrer Väter wird nie erlöschen
sie lodert in uns auf Ewigkeiten
die Zeit steht kurz still, wir erinnern uns
mit stolzem Gefühl."

Das aktuelle TESCSKompendium & einiges mehr findet ihr hier

12.08.2003, 22:31 Profil von Füge  deiner Freunde-Liste hinzu Email an madmaxx senden Homepage von madmaxx Füge madmaxx in deine Contact-Liste ein
Hephaistos
Verschollen




Dabei seit: Februar 2003
Geschlecht:
Herkunft: Wien
Beiträge: 2102

Hephaistos 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:
Ich glaube sie kapieren kein Wort und wolle einfach, das ihr nen fertiges Script dazu postet

Das wollte ich am Anfang auch immer (eigentlich noch immer ), aber da Garak so was nicht tut, war ich gezwungen mich mit dem Scripten näher auseinander zu setzen und mein bischen Gehirn zu benutzen. Mittlerweile schaffe ich es sogar schon das eine oder andere Script ohne Hilfe zu erstellen, also war es ganz gut, das Garak nicht alles vorgekaut hat. In diesem Sinne: Vielen Dank, Garak


__________________


Die Dummheit der Menschen und das Weltall sind unendlich, wobei ich mir beim Weltall noch nicht sicher bin.
Albert Einstein

Wenn die Klügeren nachgeben, regiert Dummheit die Welt.
Marie von Ebner-Eschenbach

12.08.2003, 22:37 Profil von Füge  deiner Freunde-Liste hinzu Email an Hephaistos senden
madmaxx
Ehrenmitglied




Dabei seit: Januar 2003
Geschlecht:
Herkunft:
Beiträge: 3257

madmaxx 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 Hephaistos
Zitat:
Ich glaube sie kapieren kein Wort und wolle einfach, das ihr nen fertiges Script dazu postet

Das wollte ich am Anfang auch immer (eigentlich noch immer ), aber da Garak so was nicht tut, war ich gezwungen mich mit dem Scripten näher auseinander zu setzen und mein bischen Gehirn zu benutzen. Mittlerweile schaffe ich es sogar schon das eine oder andere Script ohne Hilfe zu erstellen, also war es ganz gut, das Garak nicht alles vorgekaut hat. In diesem Sinne: Vielen Dank, Garak


Hch auf die Hackerphilosophie


__________________

"Die Flamme unsrer Väter wird nie erlöschen
sie lodert in uns auf Ewigkeiten
die Zeit steht kurz still, wir erinnern uns
mit stolzem Gefühl."

Das aktuelle TESCSKompendium & einiges mehr findet ihr hier

12.08.2003, 22:38 Profil von Füge  deiner Freunde-Liste hinzu Email an madmaxx senden Homepage von madmaxx Füge madmaxx in deine Contact-Liste ein
Hephaistos
Verschollen




Dabei seit: Februar 2003
Geschlecht:
Herkunft: Wien
Beiträge: 2102

Hephaistos 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:
Hch auf die Hackerphilosophie

Äh...Irgendwie steh ich gerade am Schlauch. Welche Philosophie?


__________________


Die Dummheit der Menschen und das Weltall sind unendlich, wobei ich mir beim Weltall noch nicht sicher bin.
Albert Einstein

Wenn die Klügeren nachgeben, regiert Dummheit die Welt.
Marie von Ebner-Eschenbach

12.08.2003, 22:42 Profil von Füge  deiner Freunde-Liste hinzu Email an Hephaistos senden
madmaxx
Ehrenmitglied




Dabei seit: Januar 2003
Geschlecht:
Herkunft:
Beiträge: 3257

madmaxx 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

Immer nach Tipps fragen, niemals nach Lösungen.
Sosnt lernt mans net.
und, wenn sie sich nciht die Mühe machen es selbst herauszufinden, waurm sollten wir duns die Mühe machen, zu antworten?


__________________

"Die Flamme unsrer Väter wird nie erlöschen
sie lodert in uns auf Ewigkeiten
die Zeit steht kurz still, wir erinnern uns
mit stolzem Gefühl."

Das aktuelle TESCSKompendium & einiges mehr findet ihr hier

12.08.2003, 22:48 Profil von Füge  deiner Freunde-Liste hinzu Email an madmaxx senden Homepage von madmaxx Füge madmaxx in deine Contact-Liste ein
Hephaistos
Verschollen




Dabei seit: Februar 2003
Geschlecht:
Herkunft: Wien
Beiträge: 2102

Hephaistos 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:
Immer nach Tipps fragen, niemals nach Lösungen.
Sosnt lernt mans net.

Dem kann ich nur zustimmen, allerdings ist das der steinige, unbequeme Weg, der einem oft zu mühsam erscheint.


__________________


Die Dummheit der Menschen und das Weltall sind unendlich, wobei ich mir beim Weltall noch nicht sicher bin.
Albert Einstein

Wenn die Klügeren nachgeben, regiert Dummheit die Welt.
Marie von Ebner-Eschenbach

Dieser Beitrag wurde von Hephaistos am 12.08.2003, 23:01 Uhr editiert.

12.08.2003, 23:00 Profil von Füge  deiner Freunde-Liste hinzu Email an Hephaistos senden
Yuri
Mage




Dabei seit: April 2003
Geschlecht:
Herkunft:
Beiträge: 170

Yuri 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!
jetzt wo ich das fertige script seh, versteh ich au fast, was galak vorher geschrieben hat! aber vorher stand da für ,ich halt nur BAHNHOF.

HAb jetzt au mal ne frage.(wil keinen neuen thread aufmachen):
Kann man es irgentwie hinkriegen, dass ein text/auftrag nur einmal gesprochen wird und man dann immer nur gefragt wird ob man den auftrag erledigt hat, und wenn man das geschafft hat, dass man dann den nächsten auftrag kriegt?
fänds net, wenn ihr mir antwortet.
(brauch keinen kompöetten script, wär aber net, wenn ihr wenigstns die reienfolge einhalten könntet->also begin...end usw.)

/edit:
PS. ich hab schon die "befehle" der kriegergilde angeguckt, werd aber net so richtig schlau daraus.
da steht ja eigentlichnur, dass man bei der erfüllung des auftrages beliebter ist, und dass man seine belohnung kriegt.
oder hängt das irgentwie mit den TAgebuch einträgen zusammenwenn ja, wo erstellt man neue, und orallem wie erstellr man sie richtig?)


__________________
Wer zehn Fehler findet kriegt einen gratis dazu!

Suchfinktiondefender
(ab 10 suchbegriffen kommen garnicht mehr so viele Ergebnisse )

Dieser Beitrag wurde von Yuri am 13.08.2003, 10:18 Uhr editiert.

13.08.2003, 10:09 Profil von Füge  deiner Freunde-Liste hinzu Email an Yuri senden
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

Tagebucheinträge erstellt man im selben Fenster wie die dialoge - nur eben auf dem letzen karteireiter.

Für die Dialogbehandlung brauchst du kein script, sondern kannst bei Function/Variable im dialogeditor journal "meineTopicID" (vergleichsoperator) (journalindex) abfragen - im dialog, der den Auftrag vergibt muss dann im dialog im resultfenster

journal "meineTopicID" indexstart

stehen, die bedingung für den nachfragedialog dann also

journal | meineTopicID | = | indexstart

lauten. Vergess dabei bitte nicht, dass Morrowind die liste von oben nach unten durchsucht und den erfüllten dialog anzeigt - also immer von unten nach oben arbeiten!


__________________
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

13.08.2003, 11:05 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
Yuri
Mage




Dabei seit: April 2003
Geschlecht:
Herkunft:
Beiträge: 170

Yuri 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

Hießt also, dass ich als erstes ein journaleintrag (z.b. auftrag 20)erfinden muss, dann beim auftragtext unten einfügen:
journal "meineTopicID" indexstart

dann die antwort drüber schreiben und in function die abfrage:
journal | auftrag | = | 20

hab ich das richtig verstanden?
und dann beim nächsten auftrag dann 21 oder so?


__________________
Wer zehn Fehler findet kriegt einen gratis dazu!

Suchfinktiondefender
(ab 10 suchbegriffen kommen garnicht mehr so viele Ergebnisse )

13.08.2003, 11:11 Profil von Füge  deiner Freunde-Liste hinzu Email an Yuri senden
[  1  2  >  »  ]   « 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