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 » Gegner mit einer bestimmten waffe besiegen » 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  >  »  ]
RedDrago
Bard




Dabei seit: Juli 2004
Geschlecht:
Herkunft: Kerpen
Beiträge: 37

RedDrago ist offline
  Gegner mit einer bestimmten waffe besiegenAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo,

ich versuche derzeitig ein script zu erstellen mit dem man gezwungen ist, einen gegner mit einer bestimmten waffe zu besiegen.

Das skript was auf dem Herz von Lorkhan liegt habe ich schon studiert. Wie ich es hin bekommen kann, das man erst ein oder 2 mal mit einer bestimmten waffe zuschlagen muss, hab ich auch soweit begriffen. Das problem ist wie gesagt, das ich es nicht schaffe das man nur mit einer bestimmten waffe schaden anrichten kann.

Das ist das skript was ich im moment zusammen habe und wo ich glaube das da nur eine kleinigkeit fehlt:

begin DF_Blade

short DF_Blade

set DF_Blade to HitOnMe DF_DBlade

if ( CellChanged == 0 )
if ( DF_Blade == 0 )
SetHealth 158
endif
endif

end DF_Blade

Auch wenn ich die waffe mit der ID DF_DBlade verwende, bleibt der gegner weiterhin unverwundbar.

egal was ich bisher getestet habe, nichts hat so funktioniert wie es letzendlich sollte...

27.09.2004, 03:06 Profil von Füge  deiner Freunde-Liste hinzu Email an RedDrago senden Füge RedDrago 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

wenn mich nicht alles täuscht ist Hitonme ... nur für den eine Frame, in dem der treffer passiert true, und schon einen frame später stellst Du die gesundheit wieder her, daher ist die unverwundbarkeit an sich kein Wunder.

Was Du brauchst ist eine Zwischenspeicherung des gesundheitswertes: Schreibe am ende jedes scriptaufrufes den Healthwert in eine floatvariable, um dann beim nächsten durchlauf die aktuelle gesundheit mit der zwischengespeicherten zu vergleichen - sind die werte verschieden, kommt die Hitonme-Bedingung ins Spiel - ist sie erfüllt, kann der gesundheitsstand so bleiben, wenn nicht, stellst du den wert des frames davor wieder ein - und zwar am besten, indem Du die differenz feststellst und mit Modcurrenthealth wieder draufklatscht, den Sethealth würde den trefferbalken wieder voll erscheinen lassen, was ja unter umständen gar nicht wahr wäre.


__________________
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.09.2004, 05:57 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
RedDrago
Bard




Dabei seit: Juli 2004
Geschlecht:
Herkunft: Kerpen
Beiträge: 37

RedDrago 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 habe was neues zusammen gebastelt mit hilfe deiner tipps und unter zu hilfe nahme des Tutorials Scripting für Dummies 5, dabei ist das hier raus gekommen:

begin DF_Blade

short DF_Blade
float DF_Leben

set DF_Blade to HitOnMe DF_DBlade
set DF_Leben to GetHealth

if ( CellChanged == 0 )
if ( DF_Blade == 0 )
ModCurrentHealth Health
else
set DF_Leben to GetHealth
endif
endif

end DF_Blade

Ich habe damit mehrere stunden rum experimentiert und komme einfach nicht drauf wo da nun der fehler ist.

Wie beim ersten script auch, ist der gegner auch mit der waffen ID DF_DBlade nicht zu besiegen...

EDIT: Ich habe noch etwas weiter gearbeitet und vermute langsam, das der schlag mit der richtigen waffe garnicht registriert wird, was ich aber noch weniger verstehe...

Dieser Beitrag wurde von RedDrago am 27.09.2004, 15:20 Uhr editiert.

27.09.2004, 12:00 Profil von Füge  deiner Freunde-Liste hinzu Email an RedDrago senden Füge RedDrago in deine Contact-Liste ein
GreyWanderer
Crusader



Dabei seit: Januar 2004
Geschlecht:
Herkunft: Cuiviénen
Beiträge: 465

GreyWanderer 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

Deine Variable Health ist nicht deklariert. Sie sollte die Differenz von DF_Leben und GetHealth sein. (wenn sie identisch sind, wäre es bei 0 ). Aber evtl. ist ModCurrentHealth eine "lahme" Funktion...also erstmal abfragen, ob Health größer als 0 ist...


__________________

Abenteuer Mittel Erde
     Please visit us!

27.09.2004, 16:47 Profil von Füge  deiner Freunde-Liste hinzu Email an GreyWanderer senden
RedDrago
Bard




Dabei seit: Juli 2004
Geschlecht:
Herkunft: Kerpen
Beiträge: 37

RedDrago 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

IM moment ist es ja so das es egal ist, welche waffe verwendet wird, selbst wenn man mit der waffe zu schlägt, bei der keine wiederherstellung des schadens erfolgen soll, wird die lebensenergie wieder hergestellt...

Zitat:
Original von GreyWanderer
Deine Variable Health ist nicht deklariert. Sie sollte die Differenz von DF_Leben und GetHealth sein


In der Variablen DF_Leben wird am anfang der derzeitige Healthwert ermittelt, dieser wert soll dann wieder hergestellt werde, wenn man mit der falschen waffe zu schlägt.

Wenn man aber mit der richtigen zuhaut, soll stattdessen erneut der neue healthwert durch gethealth neu definiert werden.

vielleicht unterliege ich da einem denkfehler, aber selbst wenn HitOnMe nur für den einzelnen frame gild in dem zugeschlagen wird, dadurch das der healthwert direkt nach dem zuschlagen neu definiert wird, sollte eine wiederherstellung eigentlich verhindert werden

Neues script mal wieder...:

begin DF_Blade

short DF_Blade
float DF_Leben

if ( CellChanged == 0 )
set DF_Blade to HitOnMe DF_DBlade
if ( DF_Leben == 0 )
set DF_Leben to GetHealth
endif
if ( HitOnMe == 1 )
if ( DF_Blade == 0 )
ModCurrentHealth DF_Leben
MessageBox "Ha, damit werdet Ihr mich nie besiegen, NARR!!!"
else
Set DF_Leben to GetHealth
MessageBox "Wie kann das sein... Ihr habt meine schwachstelle entdeckt..."
endif
endif
endif

end DF_Blade

wobei der dick markierte teil einen Expression error erzeugt, der aber erst ingame auftaucht...

Next edit

ich habe es mal mit einem völlig anderem script versucht, was natürlich den selben effekt hervorrufen soll. Jedoch werde ich auch dabei von dem Syntax error geplagt....

begin DF_Blade

short DF_Blade2
float DF_Leben

set DF_Blade2 to Player -> OnPCEquip DF_DBlade
set DF_Leben to GetHealth

if ( CellChanged == 0 )
if ( DF_Blade2 == 1 )
if ( HitOnMe == 1 )
set DF_Leben to GetHealth
MessageBox "Wie kann das sein... Ihr habt meine schwachstelle entdeckt..."
endif
else
if ( HitOnMe == 1 )
ModCurrentHealth DF_Leben
MessageBox "Ha, damit werdet Ihr mich nie besiegen, NARR!!!"
endif
endif
endif

end DF_Blade

Langsam gehn mir die ideen aus...

Dieser Beitrag wurde von RedDrago am 27.09.2004, 18:30 Uhr editiert.

27.09.2004, 17:13 Profil von Füge  deiner Freunde-Liste hinzu Email an RedDrago senden Füge RedDrago 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

Zitat:
HitOnMe, ObjectID returns true if calling Actor is hit by objectID in melee (such as hammer01)


hitonme ohne Objekt muss ja schief gehen... wenn Du nen beliebigen Treffer abfangen willst, brauchst Du Getsoundplaying "Health Damage"


__________________
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.09.2004, 20:26 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
GreyWanderer
Crusader



Dabei seit: Januar 2004
Geschlecht:
Herkunft: Cuiviénen
Beiträge: 465

GreyWanderer 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

code:
begin DF_Blade

if ( MenuMode == 1 )
Return
endif

short DF_Blade
short DF_Leben
short LostHealth
short DoOnce

set DF_Blade to ( HitOnMe, DF_DBlade )

if ( DoOnce == 0 )
set DF_Leben to GetHealth
set DoOnce to 1
endif

if ( CellChanged == 0 )
if ( DF_Blade == 0 )
set LostHealth to ( GetHealth )
set LostHealth to ( DF_Leben - LostHealth )
ModCurrentHealth LostHealth
else
set DF_Leben to GetHealth
endif
endif

end DF_Blade

So sollte es gehen. Und Garak, es würde länger dauern, ihm zu erklä#ren, was er machen soll, als das Script mal eben abzutippen.


__________________

Abenteuer Mittel Erde
     Please visit us!

27.09.2004, 21:02 Profil von Füge  deiner Freunde-Liste hinzu Email an GreyWanderer 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

Zitat:
Original von GreyWanderer
So sollte es gehen. Und Garak, es würde länger dauern, ihm zu erklä#ren, was er machen soll, als das Script mal eben abzutippen.



Ansichtssache - für dieses eine script: ja, wahrscheinlich schon, nur bleibt kaum jemand bei einem einzigen script, und dann ist das Handwerkszeug nützlicher als die vorgekaute lösung - Übrigens scheinst Du meine Hinweise nicht gelesen zu haben, bei der health/Fatigue/magicka-Manipulation sollte man Floats verwenden, da das Spiel jene werte auch mit nachkommastellen auflöst. Und wenn mich nicht alles Täuscht, verlangt Modcurrenthealth explizit ne float.


__________________
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.09.2004, 21:30 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
F.I.M.
Acid Monk




Dabei seit: März 2004
Geschlecht:
Herkunft: 127.0.0.1
Beiträge: 2058

F.I.M. 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 GreyWanderer
code:
begin DF_Blade

if ( MenuMode == 1 )
Return
endif

short DF_Blade
short DF_Leben
short LostHealth
short DoOnce

set DF_Blade to ( HitOnMe, DF_DBlade )

if ( DoOnce == 0 )
set DF_Leben to GetHealth
set DoOnce to 1
endif

if ( CellChanged == 0 )
if ( DF_Blade == 0 )
set LostHealth to ( GetHealth )
set LostHealth to ( DF_Leben - LostHealth )
ModCurrentHealth LostHealth
else
set DF_Leben to GetHealth
endif
endif

end DF_Blade





error^^


__________________

27.09.2004, 21:36 Profil von Füge  deiner Freunde-Liste hinzu Email an F.I.M. senden Homepage von F.I.M. Xfire Screenname: acidguru
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

Zitat:
Original von F.I.M.

error^^



Zitat:
Original von Garak
Und wenn mich nicht alles Täuscht, verlangt Modcurrenthealth explizit ne float.


__________________
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.09.2004, 21:44 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
F.I.M.
Acid Monk




Dabei seit: März 2004
Geschlecht:
Herkunft: 127.0.0.1
Beiträge: 2058

F.I.M. 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 Garak
Und wenn mich nicht alles Täuscht, verlangt Modcurrenthealth explizit ne float.



mit dem auch


__________________

27.09.2004, 21:55 Profil von Füge  deiner Freunde-Liste hinzu Email an F.I.M. senden Homepage von F.I.M. Xfire Screenname: acidguru
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

"error" ist ja auch ne sehr präzise Fehlerbeschreibung - gehts auch n tick exakter?


__________________
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.09.2004, 22:00 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
GreyWanderer
Crusader



Dabei seit: Januar 2004
Geschlecht:
Herkunft: Cuiviénen
Beiträge: 465

GreyWanderer 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

@F.I.M. : Weil der Gegenstand bei dir nicht vorhanden ist.

@Garak: Stimmt. Dass diese verdammten Entwickler immer so viel Speicherkapazität verschwenden...grml...wenn die Funktion GetHealth nur Short Werte ausgibt dann sollten auch nur Short Werte rein...man wie gern würde ich den Deppen vom Fach begegnen und ihnen die Meinung sagen


__________________

Abenteuer Mittel Erde
     Please visit us!

27.09.2004, 22:01 Profil von Füge  deiner Freunde-Liste hinzu Email an GreyWanderer 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

gethealth liefert floats - und das ist auch gut so, die ganzen magieeffekte wirken ja per frame und nicht pro sekunde, und ne short health wäre ein einziger dauernder rundungsfehler... und mal ehrlich: verglichen mit den graphikdaten, dem Zbuffer etc machen die paar bits mehr für floats statt für vorzeichenbehaftete 16 Bit Shorts das Programm auch nicht mehr fett.


__________________
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.09.2004, 22:06 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
F.I.M.
Acid Monk




Dabei seit: März 2004
Geschlecht:
Herkunft: 127.0.0.1
Beiträge: 2058

F.I.M. 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 GreyWanderer
@F.I.M. : Weil der Gegenstand bei dir nicht vorhanden ist.



den gegenstand habe ich gemacht

Also error---> Expression Error: BadObiectPointer in DF_Blade Set expression returned an Error


__________________

Dieser Beitrag wurde von F.I.M. am 27.09.2004, 22:14 Uhr editiert.

27.09.2004, 22:09 Profil von Füge  deiner Freunde-Liste hinzu Email an F.I.M. senden Homepage von F.I.M. Xfire Screenname: acidguru
GreyWanderer
Crusader



Dabei seit: Januar 2004
Geschlecht:
Herkunft: Cuiviénen
Beiträge: 465

GreyWanderer 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

@Garak: Ich habe immer nur short zurückbekommen. Egal wie lange ich mit einem Gegner gekämpft habe. Und bisher dachte ich auch, dass die Health ein einziger Rundungsfehler ist, sowie eigentlich alles in der Engine [...] naja, woher weißt du denn, dass GetHealth floats zurückgibt? Also ich sehe zumindest keinen Beweis...

Was das dem Grafik-Schrott angeht: Klar. Bin trotzdem immer darauf bedacht, daran zu sparen. Siehe das MenuMode vor der Deklarierung.

@F.I.M. : Ich habe es bei mir versucht und es gibt keinen Fehler. Zumindest nicht, nachdem ich eine Waffe mit der ID erstellt habe.


__________________

Abenteuer Mittel Erde
     Please visit us!

Dieser Beitrag wurde von GreyWanderer am 27.09.2004, 22:17 Uhr editiert.

27.09.2004, 22:16 Profil von Füge  deiner Freunde-Liste hinzu Email an GreyWanderer senden
F.I.M.
Acid Monk




Dabei seit: März 2004
Geschlecht:
Herkunft: 127.0.0.1
Beiträge: 2058

F.I.M. 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

Es lebt^^


__________________

27.09.2004, 22:19 Profil von Füge  deiner Freunde-Liste hinzu Email an F.I.M. senden Homepage von F.I.M. Xfire Screenname: acidguru
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

Zitat:
Original von GreyWanderer
@Garak: Ich habe immer nur short zurückbekommen. Egal wie lange ich mit einem Gegner gekämpft habe. Und bisher dachte ich auch, dass die Health ein einziger Rundungsfehler ist, sowie eigentlich alles in der Engine [...] naja, woher weißt du denn, dass GetHealth floats zurückgibt? Also ich sehe zumindest keinen Beweis...

Was das dem Grafik-Schrott angeht: Klar. Bin trotzdem immer darauf bedacht, daran zu sparen. Siehe das MenuMode vor der Deklarierung.



konsole auf, beliebigen (verwundeten) actor oder auch den Spieler anklicken, und Gethealth eintippen, und schon hast Du 2 Nachkommastellen in deiner Konsole stehen.

das mit dem menumode ist ne glaubensfrage - bei minniscripten dauert die if-abfrage (auch wenn es nur um die Auswertung einer Boolean-Variable des systems geht) eventuell länger, als das, was nachkommt.


__________________
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.09.2004, 22:21 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
RedDrago
Bard




Dabei seit: Juli 2004
Geschlecht:
Herkunft: Kerpen
Beiträge: 37

RedDrago 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

Thx für die hilfe, bei mir "lebt" es nun auch ^^

@GreyWanderer Ich hätte es auch bevorzugt, mit den richtigen hinweisen und nicht mit nem fertigen script zu arbeiten. Klar es hätte länger gedauert aber dann hätte man es sich selbst erarbeitet und noch wichtiger, man hat es auch verstanden

28.09.2004, 08:34 Profil von Füge  deiner Freunde-Liste hinzu Email an RedDrago senden Füge RedDrago in deine Contact-Liste ein
GreyWanderer
Crusader



Dabei seit: Januar 2004
Geschlecht:
Herkunft: Cuiviénen
Beiträge: 465

GreyWanderer 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

@RedDrago: Ich hatte ziemlich wenig Zeit. War aber daran interessiert und wollte dir wenigstens ne annehmbare Lösung geben. Dass der andere Weg besser ist, glaub mir, hat Garak mir in den Monaten hier beigebracht, nicht, Garak

@Garak: Ähm...ja...war wohl wiedermal ein Flüchtigkeistfehler meinerseits... *sichschnelldavonschleich*


__________________

Abenteuer Mittel Erde
     Please visit us!

28.09.2004, 16:07 Profil von Füge  deiner Freunde-Liste hinzu Email an GreyWanderer 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