Autor |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
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 |
|
mOmOx
Schlachtaffe
  

Dabei seit: August 2002
Geschlecht: 
Herkunft: Kiel, SH
Beiträge: 484
 |
|
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 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
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 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
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 |
|
Xybergod
Warrior
    

Dabei seit: September 2002
Geschlecht: 
Herkunft: Rheda-WD (wie Finarfin)
Beiträge: 89
 |
|
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 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
Was is mit dem Topic? Steh mal wieder auf der Leitung!
|
|
26.11.2002, 18:16 |
|
Xybergod
Warrior
    

Dabei seit: September 2002
Geschlecht: 
Herkunft: Rheda-WD (wie Finarfin)
Beiträge: 89
 |
|
Prima, dann mach ich eben nen neuen Thread auf
__________________
n00b aus Überzeugung
|
|
26.11.2002, 18:31 |
|
mOmOx
Schlachtaffe
  

Dabei seit: August 2002
Geschlecht: 
Herkunft: Kiel, SH
Beiträge: 484
 |
|
@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 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
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 |
|
iladrion
Craftsman
 

Dabei seit: September 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 288
 |
|
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 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
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 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
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 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
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 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
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 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
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 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
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 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
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 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
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 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
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 |
|
Deepthroat
Bard
  
Dabei seit: Oktober 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 30
 |
|
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 |
|
|