Autor |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
Hmm... sollte eigentlich per onpcadd gehen...Falls der Kelch vor der Übergabe nicht im Spiel existiert könnte auch einfach ein Script reichen, dass beim ersten Aufruf einmal Dein Menue auslöst, da das script ja vor der existenz des kelches auch nicht ausgeführt wird...
__________________ 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.12.2002, 10:50 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
Ok, das hab ich mir auch schon gedacht. Und was muss ich da alles ändern? Denn es wäre doch zu schön gewesen, dass ich das statt OnActivate einfach eingefügt hätte und das funktionieren würde.
|
|
11.12.2002, 17:11 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
Du brauchst eine Doonce-abfrage, z.b.
short doonce
if (doonce ==0)
...; dein menue
set doonce to 1
endif
doonce ist nicht vordefiniert, kannst Du nennen, wie Du willst!...
__________________ 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.12.2002, 10:49 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
So hab da jetzt probiert aber find irgendwie nicht raus wo ich das einfügen muss. Ich weiß für dass müsste ich mich eigentlich erschießen!!!
|
|
12.12.2002, 20:05 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
Einfach am anfang Deines scriptes! Ein (gegenstandsgebundenes) Script wird nicht ausgeführt, solange im Spiel keine Referenz dieses Gegenstandes in der Nähe (in Aussenzellen - frag mich bloss nicht, wie viele Nachbarzellen "in der Nähe" umfasst) bzw in der aktuellen Zelle (bei Interiorzellen) befindet. Wenn Du Deinen Trank von Einem NPC-Übergeben lassen willst, darf der Gegenstand nicht im Inventar des NPC's sein, sondern im Dialog erst mit einem Player-> additem "erschaffen" werden. dadurch wird das Skript gestartet und Dein Menü erscheint sofort auf dem Bildschirm. Wär vieleicht sinnvoll, das Menü auf nach dem Ende des Dialogs zu verschieben... dazu muss vor der doonce-Abfrage noch folgendes eingeschoben werden:
if (menumode == 1)
return
endif
Diese Befehlsfolge bricht die Scriptausführung (für diesen Frame) ab, falls eines der Menues die scheinbar die Zeit anhalten aktiv 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 
|
|
13.12.2002, 09:28 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
begin my_vamp_blood_qu
short button
short messageOn
short drink
short gone
short doonce
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 )
if ( doonce == 0 )
MessageBox "Wollt Ihr vom Blut des Quarra-Fürsten kosten?" "Ja" "Nein"
set messageOn to 1
set doonce to 1
endif
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 kursive is das was ich geändert habe. Richtig so? Und wie geht das jetzt noch, damit sich das erst aktiviert, wenn er mir das ins Inventar gibt. Das mit dem Dialog hab ich auch schon.
|
|
13.12.2002, 10:02 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
if (activate ==...
sollte nicht funktionieren - Activate als Befehl führt die Standartaktion durch, ein Test auf Aktivierung geht mit OnActivate
die doonceabfrage gehört ganz an den Anfang - das ganze soll ja, als autoaktivierung bei beginn der existenz des Trankes alternativ zur onactivate-abfrage funktionieren...also muss nach dem menumode test (hoffentlich macht der keinen ärger mit der Messagebox... falls das nicht funktioniert lass den menumodetest einfach weg) folgendes stehen:
if (doonce ==0 )
set doonce to 1
set messageon to 2
endif
dass der trank nur einmal verwendet werden kann stellst Du ja mit der disable-aktion sicher...
__________________ 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 13.12.2002, 10:29 Uhr editiert.
|
|
13.12.2002, 10:27 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
Hab mich verschrieben. Im script hab ich eh, onactivate == 1. Aber das gehört dann sowieso weg oder, da ja dann das doonce den Platz einnimmt? Denn da hab ich ja dann setmessage on to 2 was ich ja eigentlich bei dem onactivate hab.
Dieser Beitrag wurde von Deepthroat am 14.12.2002, 12:51 Uhr editiert.
|
|
14.12.2002, 12:47 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
soll ja ne alternative sein: wenn Du beides verwendest, geht der Dialog sowohl los, wenn der Trank beginnt zu existieren, als auch, wenn er aktiviert (= aufgenommen aus der Umgebung) wird. wenn Du nur das Doonce verwendest, hat man, nachdem man ein mal abgelehnt hat , keine chance mehr, den Trank zu aktivieren!
__________________ 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 
|
|
16.12.2002, 09:09 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
Genau das Problem hab ich mit dem done zuerst auch gehabt. Also da führt wohl kein Weg vorbei, den Trank beim ersten Mal zu schlucken.
|
|
16.12.2002, 18:38 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
nur zur sicherheit: Du hast jetzt die doonce-Abfrage direkt um die Messagebox entfernt oder?
__________________ 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 
|
|
17.12.2002, 10:14 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
Ja und dort hingetan, wo du gesagt hast. Also
if ( OnActivate == 1 )
íf ( doonce == 0 )
set messageOn to 2
set doonce to 1
endif
endif
Wieso? Denn es hätte auch funktioniert, wenn ich es direkt bei der MessageBox hingeschrieben. Zumindest hab ich keinen Fehler gefunden.
|
|
17.12.2002, 12:43 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
so, wie Du es JETZT hast, ist es eine "und"-Verknüpfung beider bedingungen - was ich erreichen wollte war "oder", also zwei If-abfragen hintereinander (aber NICHT ineienander)
__________________ 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 
|
|
17.12.2002, 13:15 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
Jetzt is mir klar was du meinst. So:
if ( doonce == 0 )
set messageOn to 2
set doonce to 1
endif
if ( OnActivate == 1 )
set messageOn to 2
endif
Richtig so?
Dass heißt dann, dass die Messagebox beim Existieren nur einmal erscheint, aber beim Aktivieren (wenn es wo rum steht) so oft wie man will.
Damit dass aber nur beim ablehen funzt, ersetz ich bei der antwort ja, den trank durch ein anderes Item (z.b. leere Flasche). Könnte hin haun oder?
Aber wieso kann ich nicht statt Onactivate OnPCAdd verwenden? Da macht er mir einen Fehler!
Dieser Beitrag wurde von Deepthroat am 17.12.2002, 20:47 Uhr editiert.
|
|
17.12.2002, 20:31 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
OnPCAdd ist keine Funktion im eigentlichen Sinne, sondern eine Variable, die die Engine automatisch setzt, falls sie im Script definiert ist (weis der Geier, warum die da so einen Stolperstein eingebaut haben)
ein
Short OnPCAdd
am anfang Deines Scriptes sollte das beheben...ohne Gewähr, ich hab das bisher nur mit OnPCDrop gemacht...
__________________ 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 18.12.2002, 11:04 Uhr editiert.
|
|
18.12.2002, 11:04 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
Das hab ich schon gehabt. Hab mir das nämlich in der Hilfe durchgelesen. Komischerweise funktioniert es wenn ich doonce oder done, also eine eigene Variable verwenden würde. Also eine und Verknüpfung.
|
|
18.12.2002, 17:48 |
|
spu
Bard
  

Dabei seit: Juni 2003
Geschlecht: keine Angabe
Herkunft:
Beiträge: 47
 |
|
wenn OnPcAdd nur funkt wenn der gegenstand vorher nicht im spiel vertreten ist, was verwende ich dann am besten wenn ich herrausfinden will ob der spieler einen gegens. aus einer kiste genommen hat und in seinem inventory gedropped hat ?
greetings
spu
|
|
27.10.2003, 11:53 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
Zitat: Original von spu
wenn OnPcAdd nur funkt wenn der gegenstand vorher nicht im spiel vertreten ist,
bin grade schwer von begriff - wo genau hast Du das oben gelesen?
Zitat: Original von spu
was verwende ich dann am besten wenn ich herrausfinden will ob der spieler einen gegens. aus einer kiste genommen hat und in seinem inventory gedropped hat ?
player -> getitemcount objectID - das wiederum ist natürlich nur sinnvoll, wenn der entsprechende Gegenstand sonst nirgends zu haben 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 
|
|
27.10.2003, 12:42 |
|
spu
Bard
  

Dabei seit: Juni 2003
Geschlecht: keine Angabe
Herkunft:
Beiträge: 47
 |
|
Zitat: Original von Garak
bin grade schwer von begriff - wo genau hast Du das oben gelesen?
ganz oben... war sogar von dir
aber GetItemCount wird doch schon auf +1 gesetzt wenn der Gegenstand noch am cursor klebt.... oder 
edit:
habs grad probiert wird schon gesetzt wenns noch am cursor klebt.
das problem ist das der gegenstand denn ich aufnehmen will (aus ner kiste, wenn ich "alles nehmen" klick gehts. aber das is ja nicht wirklich benutzerfreundlich) per script mit einem anderen ausgetauscht wird. weil er aber noch am cursor klebt crashed das spiel 
Dieser Beitrag wurde von spu am 28.10.2003, 02:57 Uhr editiert.
|
|
28.10.2003, 02:43 |
|
Hephaistos
Verschollen


Dabei seit: Februar 2003
Geschlecht: 
Herkunft: Wien
Beiträge: 2102
 |
|
Hast du
if ( MenuMode == 1 )
..return
endif
in deinem Script verwendet? Diese Zeilen beendet das Script, wenn du im Menü-Modus bist. Sollten daher dein Problem beim Aufnehmen des Gegenstandes beheben. Damit das funktioniert, müssen diese Zeilen allerdings sehr weit oben im Script stehen, gleich nach der Definition der Variablen.
__________________
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
|
|
28.10.2003, 07:49 |
|
|