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 » Scripting » 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  3  >  »  ]
Deepthroat
Bard



Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30

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

Hi Leutz!!!
Ich habe Probleme und zwar: Ich hab mir einen Trank gebastelt, der mir, wenn ich ihn trinke, einen Spruch hinzufügen soll, bzw mich mit der Vampirpest infizieren soll. Das dann, also nach dem if habe ich schon, is ja simpl (PLAYER->AddSpell, "Vampire Blood Quarra")

Aber ich finde nicht heraus, wie der Befehl lautet "Wenn getrunken oder verwendet" also das if
Kann mir da wer helfen?

25.11.2002, 19:31 Profil von Füge  deiner Freunde-Liste hinzu Email an Deepthroat senden
mOmOx
Schlachtaffe




Dabei seit: August 2002
Geschlecht:
Herkunft: Kiel, SH
Beiträge: 484

mOmOx 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

begin VampTrank

short done

if ( UsedOnMe "TrankID" == 1)
if ( done != 1)
player->AddSpell "SpellID"
set done to 1
endif
endif

end VampTrank


das mit dem "done" ist nur dazu da, dass der spell nur einmal geaddet wird.


__________________
Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren.

25.11.2002, 21:29 Profil von Füge  deiner Freunde-Liste hinzu Email an mOmOx senden
Deepthroat
Bard



Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30

Deepthroat 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! Das mit used on me hab ich noch gehabt, aber das allein hat irgendwie nicht genügt. Könntest du mir noch erklären, warum das so ist? Dann hab ich beim nächsten Mal, wenn ich sowas brauch schon mehr Ahnung!

26.11.2002, 12:40 Profil von Füge  deiner Freunde-Liste hinzu Email an Deepthroat senden
Deepthroat
Bard



Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30

Deepthroat 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

Bin mal wieder mal ein Idiot gewesen und hab nicht zu Ende gelesen. Das mit done hast ja schon erklärt.

Aber jetzt weiß ich wieder warum das mit UsedOnMe bei mir nicht funktioniert hat. Er schreibt nämlich, wenn ich das script speichern möchte:

could not find variable or function
Was kann ich da tun?

26.11.2002, 17:22 Profil von Füge  deiner Freunde-Liste hinzu Email an Deepthroat senden
Xybergod
Warrior




Dabei seit: September 2002
Geschlecht:
Herkunft: Rheda-WD (wie Finarfin)
Beiträge: 89

Xybergod 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

Das Topic is gard da...
Gibts irgendwo nen Tutorial fürs Scripten und wenn wo?
Und wenn ich scripten kann, kann ich das auch für andere Spiele benutzen?


__________________

n00b aus Überzeugung

26.11.2002, 17:46 Profil von Füge  deiner Freunde-Liste hinzu Email an Xybergod senden Füge Xybergod in deine Contact-Liste ein
Deepthroat
Bard



Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30

Deepthroat 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

Was is mit dem Topic? Steh mal wieder auf der Leitung!

26.11.2002, 18:16 Profil von Füge  deiner Freunde-Liste hinzu Email an Deepthroat senden
Xybergod
Warrior




Dabei seit: September 2002
Geschlecht:
Herkunft: Rheda-WD (wie Finarfin)
Beiträge: 89

Xybergod 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

Prima, dann mach ich eben nen neuen Thread auf


__________________

n00b aus Überzeugung

26.11.2002, 18:31 Profil von Füge  deiner Freunde-Liste hinzu Email an Xybergod senden Füge Xybergod in deine Contact-Liste ein
mOmOx
Schlachtaffe




Dabei seit: August 2002
Geschlecht:
Herkunft: Kiel, SH
Beiträge: 484

mOmOx 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

@Deepthroat :: Seltsam (hö hä hü ) gib das hier mal ein ... :

begin VampTrank

short done

if ( player-> UsedOnMe "TrankID" == 1)
if ( done != 1)
player->AddSpell "SpellID"
set done to 1
endif
endif

end VampTrank


Ich denke, das war der Fehler ...

Greetz mOmOx


__________________
Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren.

26.11.2002, 19:09 Profil von Füge  deiner Freunde-Liste hinzu Email an mOmOx senden
Deepthroat
Bard



Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30

Deepthroat 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

Das hab ich schon vorher versucht. Er macht mir noch immer einen Syntax Error wie vorher! Hab mir auch das use test script angesehen, da das als Beispiel im Help im TS angegeben wird. Da steht drinnen, dass diese Funktion (UsedOnMe) sich nicht compilen lassen hat und das Spiel zum Abstürzen brachte!?!?

Is das bei anderen auch, die diese USedOnMe verwenden oder nur bei mir? Glaub kaum dass das daran liegen kann, dass ich die DV hab oder?

26.11.2002, 20:10 Profil von Füge  deiner Freunde-Liste hinzu Email an Deepthroat senden
iladrion
Craftsman




Dabei seit: September 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 288

iladrion 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

hi,

mach mal aus der Flasche nen Activator, und probier es mal so (ungetestet):

begin VampTrank

short OnPCEquip

if (OnPCEquip == 1)
Set OnPCEquip to 0
player removeitem "TrankID" 1; weil er ja nich trinkt
;evetuell noch nen Glucker-Sound abspielen
player->AddSpell "SpellID"
endif

end


__________________
keep on modding...



27.11.2002, 06:30 Profil von Füge  deiner Freunde-Liste hinzu Email an iladrion 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

Interessante idee, aber dann kann er das Ding doch nicht Equippen/mitnehmen, activators bleiben, wo sie sind. Misc items kann man dagegen mitnehmen, aber nicht equippen - bleiben also für den Equip-vorgang noch Kleidungsstücke( dazu gehören nach interner Kathegorisierung auch Amulette und Ringe), Rüstungsteile, Waffen, Bücher, Zutaten, Alchemie-und Diebesgeräte oder Lichtquellen - Soulgems sind fest verdrahtet, man kann da keine neuen erstellen. Allerdings würde bei all diesen Varianten der Trank im falschen Inventarfenster landen...

Ich hab in meinem Plugin einen Untrinkbaren Trank erstellt (wer es grad dahat: das script HM_strangepotionscript) - mit der Skipequip -Funktion in einem Script auf einem normalen Trank aus dem Alchemy-tab. Wenn ich so das Equippen=benutzen des Trankes unterbinden kann, kann ich auch neue Funktionen einfügen - die Beschreibung dazu steht in der Editorhilfe, ich glaube unter Inventory-Funktionen!


__________________
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

Dieser Beitrag wurde von Garak am 27.11.2002, 10:54 Uhr editiert.

27.11.2002, 10:51 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
Deepthroat
Bard



Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30

Deepthroat 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

Dazu müsste ich aber einigermaßen scripten können und das ist leider nicht der Fall!

Aber hab da noch ne Idee! Könnte das nicht so wie beim Bitter Pokal funktionieren?

Oder wenn das Zeug im Inventar bleibt (ich hab übrigens die Texturen von einem Schädel genommen)
Wenn ich den so in der Art mache:
if ( onequip == 1)
Messagebox"Möchtest du ...." Ja - Nein
if antwort = ja dann addspell
if antwort = nein return

(Weiß leider die richtigen Befehle nicht, sorry)
Und danach müsste der Schädel verschwinden oder einfach ins Inventar zurück, nur das ganze dürfte nur einmal funktionieren. Also if ein zweites mal verwendet dann MEssageBox "Der Kelch ist leer" und return

Kann das irgendwer machen (posten)? Ich kann da leider nur Vorschläge bringen, da ich selbst nicht wirklich viel vom scripten verstehe bzw. mir die Befehle fehlen.

27.11.2002, 16:46 Profil von Füge  deiner Freunde-Liste hinzu Email an Deepthroat senden
Deepthroat
Bard



Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30

Deepthroat 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 hab mein Script hinbekommen *freu* hab jetzt ca. 3 Stunden daran herumgebastelt und es funktioniert:

begin my_vamp_blood_qu

short button
short messageOn
short reset
short OnPCAdd
short done


if ( OnPCAdd == 0 )
set reset to 0
endif

if ( OnPCAdd == 1)
if ( reset == 0 )
if ( done == 0 )
MessageBoX "Wollt Ihr vom Blut des Quarra-Fürsten kosten?" "Ja" "Nein"
set messageOn to 1
set done to 1
endif
endif
endif

if ( messageOn == 1)

set button to GetButtonPressed


if ( button >= 0 )
set messageOn to 0
endif

if ( button == 0 )
PlaySound "Potion Success"
Player->AddSpell, "Vampire Blood Quarra"
MessageBox "Ihr habt euch mit der Blutkrankheit infiziert! Euer Fürst ruft Euch: Kommt nach Druscathi!" "OK"
ShowMap druscathi
set reset to 1

elseif ( button == 1 )
set reset to 1
set done to 0
return
endif
endif

end my_vamp_blood_qu


Das einzige was noch fehlt ist das:
Da ich zwei Tränke (einen für Aundae und einen für Quarra Vampire) hab brauch ich noch die Anweisung, dass wenn ich bereits Vampir bin ich den anderen Trank nicht trinken kann.

Könnte das gehen: Falls vampire specials aundae oder vampire specials berne im Inventar sind return

27.11.2002, 21:16 Profil von Füge  deiner Freunde-Liste hinzu Email an Deepthroat 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

geht einfacher:
es gibt eine Globale Variable für den Vampirclan! Heißt VampClan , 3 steht für Quarra, den Wert für Berne und Aundae kannst Du ja in den Dialigbedingungen der clancheffs nachschlagen...


__________________
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.2002, 09:02 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
Deepthroat
Bard



Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30

Deepthroat 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

Meinst du das in etwa so (im Groben)?:

short vampclan

if ( vampclan == 2 ) ;für Berne nehmen wir an
MessageBox "Ih seid bereits ein Vampir des Clans..."
return
endif

28.11.2002, 17:00 Profil von Füge  deiner Freunde-Liste hinzu Email an Deepthroat senden
Deepthroat
Bard



Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30

Deepthroat 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

So hab mir das jetzt überlegt. Aber bevor ich skripte frag ich mal nach:

begin my_vamp_blood_qu
.
.
.
if ( OnPCAdd == 1)
if ( reset == 0 )
if ( done != 1 )
elseif ( vampclan != 1 )
elseif ( vampclan != 2 )

MessageBoX "Wollt Ihr ..." "Ja" "Nein"
set messageOn to 1
set done to 1
endif
endif
endif
endif
endif
.
.
.
end my_vamp_blood_qu


Könnte das so hinhaun?
Jetzt hab ich trotzdem noch eine Frage. Der Script wird ja aktiviert, wenn ich den Gegenstand ins Inventar aufnehme. Da habe ich das done welches verhindert, dass das ganze ein zweites Mal ausgeführt werden kann. Aber wenn ich nun auf Nein klicke klicke dann wird der done Wert trotzdem verändert obwohl ich das Zeug erst später verwenden will. Hab schon sehr lange probiert und finde keine Lösung. Hab versucht bei dem:

elseif ( button == 1 )
set reset to 1
set done to 0
return
endif
endif


mit dem set done to 0 das wieder rückgängig zu machen aber das Problem is dass er bei Nein dann auf 0 umschaltet, dann aber mit dem normalen Script weitermacht und dann von 0 wieder auf 1 stellt. Wie kann ich das so machen, dass das nicht passiert. Ich hab mir gedacht das if done und set done to 1 erst bei dem wo er den Spell hinzufügt einzureihen aber dann funktioniert der Script nicht mehr! Falls etwas unklar ist einfach genau die Abläufe der done Befehle ansehen.

28.11.2002, 19:05 Profil von Füge  deiner Freunde-Liste hinzu Email an Deepthroat 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

Sorry, hab dich irgendwie überlesen... was genau bezweckst Du mit den Elseif - Abfragen? vom Logischen Stantpunkt sind Elseifs oder-Verknüpfungen...Brauchst Du nicht eher ein logisches Und = geschachtelte If's? Ausserdem scheinst Du ein sehr negativer Mensch mit deinen ganzen !='s
Ich verstehe nicht, warum das mit dem Done-setzen beim Spelladd nicht funktioniert, und auch nicht, warum das zurückstellen auf 1 passiert, obwohl Du das Script mit return abbrichst - versuch mal das Onpcadd von hand auf 0 zu setzen - ich denke, das bleibt sonst an, solange der Gegenstand im Inventar ist!


__________________
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

09.12.2002, 13:15 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
Deepthroat
Bard



Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30

Deepthroat 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

Hi!
Danke übrigens für die viele Hilfe!

Naja, wie gesagt bin im scripten ziemlich unerfahren und kann nur probieren. Dass ich statt den elseif bei dem vampclan einfach zwei normale ifs machen kann bin ich draufgekommen und die !='s sind da damit er den Script falls ich schon bei einem Clan dabei bin abbricht, oder geht das so nicht?

Warum ich das mit dem done niergens anders hintun kann weiß ich nicht aber ich kanns vermuten:
Der Script beginnt mit der ganz normalen Abfrage
1. Wird der Gegenstand ins Inventar gefügt? Wenn ja->
2. Wurde der Script schon benutzt? Wenn nein->
3. Message Box mit Auswahl. Wenn Auswahl =2 (also nein)->
4. zurückkehren und schon einmal benutzt auf nein stellen. (set done to 0) -- das is die zeile mit elseif button == 1)->
5. dann kehrt er zum hauptteil zurück und stellt das done wieder auf 1. (zeile 19) und dann beendet er den script.

Kann man nicht irgendwie machen, dass er das mit set done to 1 auslässt, wenn man auf nein klickt. (mit einer Variable oder so) Da steh ich nämlich echt an

Das is nämlich das einzige Problem: Ich muss den Trank beim ersten Mal, wenn ich ihn ins Inventar nehme benutzen muss.

LG Flo

Dieser Beitrag wurde von Deepthroat am 09.12.2002, 17:41 Uhr editiert.

09.12.2002, 17:40 Profil von Füge  deiner Freunde-Liste hinzu Email an Deepthroat 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

wenn ich mich recht erinnere geht das beim Bittercup doch auch anders... Vergleich Dein script noch mal Zeile für Zeile mit dem bittercup-script - natürlich nicht den ganzen Attributauswertkram...


__________________
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

10.12.2002, 10:11 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
Deepthroat
Bard



Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30

Deepthroat 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

So noch mal umstrukturiert:
begin my_vamp_blood_qu

short button
short messageOn
short drink
short gone
short OnPCAdd

if ( gone == 1 )
Disable
set gone to 0
return
endif

if ( MenuMode == 1 )
return
endif

if ( Activate == 1 )
set messageOn to 2
endif

if ( messageOn == 0 )
return
endif

if ( messageOn == 2 )
if ( vampclan != 1 )
if ( vampclan != 2 )
MessageBox "Wollt Ihr vom Blut des Quarra-Fürsten kosten?" "Ja" "Nein"
set messageOn to 1
endif
endif
endif

if ( messageOn == 1)
set button to GetButtonPressed
if ( button == 0 )
set drink to 1
set messageOn to 0
endif
if ( button == 1 )
Activate
set messageOn to 0
return
endif
endif

if ( drink == 1 )
PlaySound "Potion Success"
Player->AddSpell, "Vampire Blood Quarra"
MessageBox "Ihr habt euch mit der Blutkrankheit infiziert! Euer Fürst ruft Euch: Kommt nach Druscathi!" "OK"
set gone to 1
set drink to 0
Player->AddItem, "potion_vamp_blood_qu_emp" 1
endif

if ( vampclan == 1 )
MessageBox "Ihr seid bereits Mitglied des Aundae Clans"
endif

if ( vampclan == 2 )
MessageBox "Ihr seid bereits Mitglied des Berne Clans"
endif

end my_vamp_blood_qu


Das Item (potion_vamp_blood_qu_emp) ist einfach ein leerer Kelch! Jetzt klappt auch alles. Das einzige was ich noch möchte, ist, dass der Script startet, wenn der Kelch ins Inventar gefügt wird, da ich ihn von einem Typen erhalte. Sonst muss ich ihn immer zuerst abstellen. Was muss ich da noch ändern?

10.12.2002, 18:15 Profil von Füge  deiner Freunde-Liste hinzu Email an Deepthroat senden
[  1  2  3  >  »  ]   « 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