Autor |
|
crawler
Crusader
  

Dabei seit: Juli 2003
Geschlecht: 
Herkunft: :?
Beiträge: 262
 |
|
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 |
|
Hephaistos
Verschollen


Dabei seit: Februar 2003
Geschlecht: 
Herkunft: Wien
Beiträge: 2102
 |
|
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 |
|
crawler
Crusader
  

Dabei seit: Juli 2003
Geschlecht: 
Herkunft: :?
Beiträge: 262
 |
|
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 |
|
Hephaistos
Verschollen


Dabei seit: Februar 2003
Geschlecht: 
Herkunft: Wien
Beiträge: 2102
 |
|
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 |
|
crawler
Crusader
  

Dabei seit: Juli 2003
Geschlecht: 
Herkunft: :?
Beiträge: 262
 |
|
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 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
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 |
|
Yuri
Mage
 

Dabei seit: April 2003
Geschlecht: 
Herkunft:
Beiträge: 170
 |
|
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 |
|
Hephaistos
Verschollen


Dabei seit: Februar 2003
Geschlecht: 
Herkunft: Wien
Beiträge: 2102
 |
|
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 |
|
Yuri
Mage
 

Dabei seit: April 2003
Geschlecht: 
Herkunft:
Beiträge: 170
 |
|
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 |
|
chris_tm
Bard
  
Dabei seit: Februar 2003
Geschlecht: 
Herkunft: München
Beiträge: 37
 |
|
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 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
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 |
|
madmaxx
Ehrenmitglied


Dabei seit: Januar 2003
Geschlecht: 
Herkunft:
Beiträge: 3257
 |
|
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 |
|
Hephaistos
Verschollen


Dabei seit: Februar 2003
Geschlecht: 
Herkunft: Wien
Beiträge: 2102
 |
|
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 |
|
madmaxx
Ehrenmitglied


Dabei seit: Januar 2003
Geschlecht: 
Herkunft:
Beiträge: 3257
 |
|
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 |
|
Hephaistos
Verschollen


Dabei seit: Februar 2003
Geschlecht: 
Herkunft: Wien
Beiträge: 2102
 |
|
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 |
|
madmaxx
Ehrenmitglied


Dabei seit: Januar 2003
Geschlecht: 
Herkunft:
Beiträge: 3257
 |
|
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 |
|
Hephaistos
Verschollen


Dabei seit: Februar 2003
Geschlecht: 
Herkunft: Wien
Beiträge: 2102
 |
|
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 |
|
Yuri
Mage
 

Dabei seit: April 2003
Geschlecht: 
Herkunft:
Beiträge: 170
 |
|
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 zusammen wenn 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 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
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 |
|
Yuri
Mage
 

Dabei seit: April 2003
Geschlecht: 
Herkunft:
Beiträge: 170
 |
|
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 |
|
|