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 Problem » 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  ]
Garak
Admin




Dabei seit: Juli 2002
Geschlecht:
Herkunft: Cardassia Prime
Beiträge: 9257

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, bleedingmoon, er hat den fehler doch schon: short intt statt short int in den definitionen... Merke: manchmal sind tippfehler schwieriger zu finden als logikfehler.....

"Division by Zero" würde er übrigens im klartext liefern, den Fehler hatt ich schon mal....


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




Dabei seit: Juni 2003
Geschlecht: keine Angabe
Herkunft:
Beiträge: 47

spu 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

ja aber wenn ihr wollt könnt ihr mir noch eine frage beantworten.

kann sich ein script in sich selber beenden?

zB:
begin testScript
StopScript, testScript
end testScript


greetings

spu

29.08.2003, 12:28 Profil von Füge  deiner Freunde-Liste hinzu Email an spu senden
BleedingMoon
Mage




Dabei seit: August 2003
Geschlecht:
Herkunft:
Beiträge: 210

BleedingMoon 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 spu
ja aber wenn ihr wollt könnt ihr mir noch eine frage beantworten.

kann sich ein script in sich selber beenden?

zB:
begin testScript
StopScript, testScript
end testScript





wenn du dein script beenden willst, dann kannst du dies auch über "return" machen, dann hört das script an dieser stelle auf....

zum beispiel...

begin blahscript
short var1

if (var1 == 20)
mach irgendwas sinnvolles
set var1 to 30
elseif (var <= 100)
set var to (var + 10)
elseif (var == 50)
return
endif
end blahscript

ob des jetzt so funzt, weiß ich net , müßte eientlich.. hab ich grad aus dem ärmel geschüttelt...
also das script setzt bei jedem durchlauf var1 um 10 höher.. und eigentlich würde es das auch bis 100 machen... da aber allerdings die = 50-Abfrage auch noch drinsteht, wird das script abgebrochen sobald, die variable eben den wert erreicht hat...

ich hoffe das konnte man jetzt verstehen...

ein anderes gutes beispiel ist ja auch, ewnn man folgendes benutzt:

if (MenuMode == 1)
return
endif

... und hier der rest vom script


hier wird das script beendet, sobald der spieler sich im menü-mode befindet... (bei AI sachen z.B notwendig)

ich hoffe, das konnte deine frage beantworten


__________________
|. There are only 10 types of people in the world: those who understand binary, and those who don't .|

29.08.2003, 20:29 Profil von Füge  deiner Freunde-Liste hinzu Email an BleedingMoon senden Homepage von BleedingMoon
Garak
Admin




Dabei seit: Juli 2002
Geschlecht:
Herkunft: Cardassia Prime
Beiträge: 9257

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

achtung: Return bendet die abarbeitung des scripts in diesem Frame, aber im Nächsten wird es wieder Aufgerufen. Stopscript Scriptname bendet die Ausführung dieses scriptes dagegen komplett!


Zitat:
if (var1 == 20)
mach irgendwas sinnvolles
set var1 to 30
elseif (var <= 100)
set var to (var + 10)
elseif (var == 50)
return
endif


in diesem script wird das Return nie aufgerufen, da 50 < 100, Bedingun 3 also eine untermenge von Bedingung 2 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

29.08.2003, 21:00 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
BleedingMoon
Mage




Dabei seit: August 2003
Geschlecht:
Herkunft:
Beiträge: 210

BleedingMoon 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
achtung: Return bendet die abarbeitung des scripts in diesem Frame, aber im Nächsten wird es wieder Aufgerufen. Stopscript Scriptname bendet die Ausführung dieses scriptes dagegen komplett!




1. OH! Gut zu wissen!


2.
if (var1 == 20)
mach irgendwas sinnvolles
set var1 to 30
elseif (var == 50)
elseif (var <= 100)
set var to (var + 10)
return
endif

so müßte es dann eigentlich gehen, oder, da das prog ja von oben nach unten abgearbeitet wird, oder???


sollte ja net perfekt sein das script.... *ggggggg*


__________________
|. There are only 10 types of people in the world: those who understand binary, and those who don't .|

Dieser Beitrag wurde von BleedingMoon am 29.08.2003, 21:45 Uhr editiert.

29.08.2003, 21:45 Profil von Füge  deiner Freunde-Liste hinzu Email an BleedingMoon senden Homepage von BleedingMoon
spu
Bard




Dabei seit: Juni 2003
Geschlecht: keine Angabe
Herkunft:
Beiträge: 47

spu 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

mit return arbeit ich eh auch nur mach ichs nicht ganz so kompliziert


if ( doOnceAttack == 1 )
....return
endif



aber was anderes, hab mir heute in der arbeit was überlegt: wäre es nicht nett wenn es ein script gibt das npc dazu veranlasst herumliegende rüstungen oder waffen auf zu heben (wenn es ihren skills entspricht)

in flash wüsst ich wies geht aber in morrowind

06.09.2003, 21:18 Profil von Füge  deiner Freunde-Liste hinzu Email an spu senden
Hephaistos
Verschollen




Dabei seit: Februar 2003
Geschlecht:
Herkunft: Wien
Beiträge: 2102

Hephaistos 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:
aber was anderes, hab mir heute in der arbeit was überlegt: wäre es nicht nett wenn es ein script gibt das npc dazu veranlasst herumliegende rüstungen oder waffen auf zu heben (wenn es ihren skills entspricht)

Das läßt sich glaub ich nicht machen. Dazu müßtest du im Script die ID aller in frage kommenden Gegenstände eintragen und selbst dann werden Gegenstände die selbst verzaubert wurden oder aus Mods stammen nicht erkannt.


__________________


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

06.09.2003, 21:23 Profil von Füge  deiner Freunde-Liste hinzu Email an Hephaistos senden
spu
Bard




Dabei seit: Juni 2003
Geschlecht: keine Angabe
Herkunft:
Beiträge: 47

spu 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

ja hab ich mir schon gedacht. nix mit arrays und for-schleifen.
wär trotzdem ein nettes feature.

greetings

spu

06.09.2003, 22:52 Profil von Füge  deiner Freunde-Liste hinzu Email an spu senden
Perlentieftaucher
Warrior




Dabei seit: Juli 2003
Geschlecht:
Herkunft: Osnabrück
Beiträge: 85

Perlentieftaucher 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, hab wieder n scripting Problem. Und zwar will ich ne Falle erstellen die ausgelöst wird sobald man sich ihr nähert. Also nix mit Tür, das find ich langweilig. Sie soll ausgelöst werden wenn man drüber geht. Hab als Mesh Editor_MarkerBox genommen, weil unsichtbar. Wenn ich im Spiel jetzt allerdings über die Box laufe erscheinen zwar meine testmessages aber daraufhin stürtzt das Spiel ab. Entweder bei StopScript oder wenn ich das mit ner doOnce Schleife mache. Ich versteh das net. Hier mal das script mit done Schleife:

begin MY_Trap_Explosion_SC

short distanceCheck
short done

if ( done == 1 )
return
endif

if ( CellChanged == 1 )
set distanceCheck to 126
MessageBox, "distanceCheck auf 126!"
endif

if ( GetDistance Player <= distanceCheck )
MY_Trap_Explosion->Cast MY_Fireball Player
set done to 1
MessageBox, "Verdammt, eine Falle!"
set distanceCheck to 0
MessageBox, "distanceCheck auf Null gesetzt!"
return
endif

end


__________________
Wirklichkeit ist ein vorübergehender Traum, aber ein Traum ist Wirklichkeit für eine Ewigkeit
Das Leben ist zwar bloß ein Spiel, aber die Grafik ist verdammt gut.

08.09.2003, 17:10 Profil von Füge  deiner Freunde-Liste hinzu Email an Perlentieftaucher senden Füge Perlentieftaucher in deine Contact-Liste ein
Hephaistos
Verschollen




Dabei seit: Februar 2003
Geschlecht:
Herkunft: Wien
Beiträge: 2102

Hephaistos 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

Sieh dir mal das Script
BILL_common_traped_rug
an. Das ist jenes Script, das bei den "verminten" Bettvorlägern zum Einsatz kommt. Mit ein wenig Änderung kannst du es sicher verwenden.


__________________


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 08.09.2003, 17:22 Uhr editiert.

08.09.2003, 17:20 Profil von Füge  deiner Freunde-Liste hinzu Email an Hephaistos senden
BleedingMoon
Mage




Dabei seit: August 2003
Geschlecht:
Herkunft:
Beiträge: 210

BleedingMoon 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 Perlentieftaucher

if ( GetDistance Player <= distanceCheck )
MY_Trap_Explosion->Cast MY_Fireball Player
set done to 1
MessageBox, "Verdammt, eine Falle!"
set distanceCheck to 0
MessageBox, "distanceCheck auf Null gesetzt!"
return
endif

end




was willst du denn da mit getdistance vergleichen???
die strecke zwischen player und falle, oder?
dann mußte doch irgendwie so was machen
if ( (Player -> GetDistance"Falle") <= distanceCheck )
oder net, *grübel*??
oder falsches copy&paste?


__________________
|. There are only 10 types of people in the world: those who understand binary, and those who don't .|

08.09.2003, 18:13 Profil von Füge  deiner Freunde-Liste hinzu Email an BleedingMoon senden Homepage von BleedingMoon
Perlentieftaucher
Warrior




Dabei seit: Juli 2003
Geschlecht:
Herkunft: Osnabrück
Beiträge: 85

Perlentieftaucher 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

@Hesphaistos
Jor thx! Werd ich mir ma anschauen.

@BleedingMoon
Keine Ahnung, ich bin (noch) nicht soo der Scripter. Ich weiss z.B nicht wofür man Klammern macht. Aber in anderen Scripts hats auch mit if ( GetDistance Player < x ) geklappt.

Werd jetzt nochmal alles versuchen und dann posten obs klappt.

Edit: Falsches Copy&Paste? Wie meinste dat was kann man da denn groß falsch machen?


__________________
Wirklichkeit ist ein vorübergehender Traum, aber ein Traum ist Wirklichkeit für eine Ewigkeit
Das Leben ist zwar bloß ein Spiel, aber die Grafik ist verdammt gut.

Dieser Beitrag wurde von Perlentieftaucher am 08.09.2003, 18:45 Uhr editiert.

08.09.2003, 18:44 Profil von Füge  deiner Freunde-Liste hinzu Email an Perlentieftaucher senden Füge Perlentieftaucher in deine Contact-Liste ein
Garak
Admin




Dabei seit: Juli 2002
Geschlecht:
Herkunft: Cardassia Prime
Beiträge: 9257

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 BleedingMoon


was willst du denn da mit getdistance vergleichen???
die strecke zwischen player und falle, oder?
dann mußte doch irgendwie so was machen
if ( (Player -> GetDistance"Falle") <= distanceCheck )
oder net, *grübel*??



Da die Falle nicht zwangsläufig einzigartig ist, dar Player aber schon, ist es definitiv sicherer, lokal von der Falle aus Getdistance player abzufragen, als mit player -> die Spielfigur zu addressieren, der dann seinerseits versucht, mit "Falle" kontakt aufzunehmen - denk dran: wenn mehrere Objekte mit einer ID im spiel sind, wertet Morrowind die erste instanz in seiner tabelle aus - glückstreffer, wenn es die gewollte Falle 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.09.2003, 09:09 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
spu
Bard




Dabei seit: Juni 2003
Geschlecht: keine Angabe
Herkunft:
Beiträge: 47

spu 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

hast du tribunal? wann ja schau dir mal die 2 scripts an wird genau das gemacht was du brauchst.

projectileMine
proximityMine

hab proximityMine verwendet und für mich zurecht gestutzt.


greetings

spu

09.09.2003, 12:37 Profil von Füge  deiner Freunde-Liste hinzu Email an spu senden
Perlentieftaucher
Warrior




Dabei seit: Juli 2003
Geschlecht:
Herkunft: Osnabrück
Beiträge: 85

Perlentieftaucher 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: Hab ich ja auch so gemacht. Hmm ich hab 2 Fallen der gleichen ID im Spiel. Ich werd ma eine löschen und es dann nochma testen.

@spu: Nee hab leider kein Trib.

@Hesphaistos: Hab das jetzt gecheckt und das Script genommen das du mir vorgeschlagen hast. Und siehe da: Es stürtzt ab sobald die Explosion ausgelöst wird. WIESO??? Hier nochmal das neue Script:

begin MY_Trap_Explosion_SC
; hits the player with a glyph of weakness when he walks on the rug.
; trap resets 15 seconds later.
;
; script location: should be called from ac_furn_rug_big_04_dren

; variables
short onMe ; is the Player on me?
short wait
float timer

if ( MenuMode == 1 )
return
endif

if ( wait == 1 )
set timer to ( timer + GetSecondsPassed )
if ( timer < 15 )
return
else
set timer to 0
set wait to 0
endif
endif

set onMe to ( GetStandingPC )
if ( onMe == 1 )
MessageBox, "Verdammt, eine Falle!"
Cast, "MY_Fireball", Player
set wait to 1
endif


end MY_Trap_Explosion_SC




__________________
Wirklichkeit ist ein vorübergehender Traum, aber ein Traum ist Wirklichkeit für eine Ewigkeit
Das Leben ist zwar bloß ein Spiel, aber die Grafik ist verdammt gut.

09.09.2003, 13:52 Profil von Füge  deiner Freunde-Liste hinzu Email an Perlentieftaucher senden Füge Perlentieftaucher in deine Contact-Liste ein
Perlentieftaucher
Warrior




Dabei seit: Juli 2003
Geschlecht:
Herkunft: Osnabrück
Beiträge: 85

Perlentieftaucher 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 mal eine Falle gelöscht. Beim ersten Testlauf war die Falle gar nicht erst vorhanden und dann beim 2. der übliche Crash. Verdammt was mach ich falsch? War doch n original Script in das ich nur meine ID´s eingefügt hab.


__________________
Wirklichkeit ist ein vorübergehender Traum, aber ein Traum ist Wirklichkeit für eine Ewigkeit
Das Leben ist zwar bloß ein Spiel, aber die Grafik ist verdammt gut.

09.09.2003, 14:54 Profil von Füge  deiner Freunde-Liste hinzu Email an Perlentieftaucher senden Füge Perlentieftaucher in deine Contact-Liste ein
Hephaistos
Verschollen




Dabei seit: Februar 2003
Geschlecht:
Herkunft: Wien
Beiträge: 2102

Hephaistos 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

Probier mal den Zauber der ursprünglich im Script war. Wenn es dann geht, weißt du woran es liegt. Ich bin mir nicht sicher, aber ich vermute Cast funktioniert nur mit Sprüchen die der Spieler auch auf sich selbst wirken kann, also kein Feuer, Blitz, Eis, etc.


__________________


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

09.09.2003, 15:51 Profil von Füge  deiner Freunde-Liste hinzu Email an Hephaistos senden
spu
Bard




Dabei seit: Juni 2003
Geschlecht: keine Angabe
Herkunft:
Beiträge: 47

spu 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 für ein typ ist der zauber (ziel, berührung). sollte auf berührung sein.

greetings

spu

09.09.2003, 19:35 Profil von Füge  deiner Freunde-Liste hinzu Email an spu senden
Perlentieftaucher
Warrior




Dabei seit: Juli 2003
Geschlecht:
Herkunft: Osnabrück
Beiträge: 85

Perlentieftaucher 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

@Hesphaistos: Jo hattest vollkommen Recht! Mit dem orig. Spell funzt es.

@Spu: Lag wohl daran das ich Ziel genommen hab und nicht Berührung.


__________________
Wirklichkeit ist ein vorübergehender Traum, aber ein Traum ist Wirklichkeit für eine Ewigkeit
Das Leben ist zwar bloß ein Spiel, aber die Grafik ist verdammt gut.

09.09.2003, 19:37 Profil von Füge  deiner Freunde-Liste hinzu Email an Perlentieftaucher senden Füge Perlentieftaucher in deine Contact-Liste ein
Hephaistos
Verschollen




Dabei seit: Februar 2003
Geschlecht:
Herkunft: Wien
Beiträge: 2102

Hephaistos 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

Dann mußt dir wohl einen anderen Spell suchen. Leider ist das für mich auch völliges Neuland, vielleicht hat wer anderer schon Erfahrung damit gesammelt.


__________________


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

10.09.2003, 10:42 Profil von Füge  deiner Freunde-Liste hinzu Email an Hephaistos 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