Construction Set Der Scriptthread

Ebenso wollte ich einen Schrank davor stellen, sobald man den Schalter betätigt, soll der Schrank nach rechts rücken und die Geheimtür aufgehen ;) so meinte ich das ^^

Das Geisterpfortenscript habe ich auch mal unter die Lupe genommen, daraus lässt sich auch ein Prima Geheimdtürendingens basteln, aber müsste ich nicht die "Mauer" als Activator einfügen? Ich habe ja schon versucht "in_impsmall_wall_01.NIF" aus den BSA Archiv zu entpacken...fehlschlag, weder mit den Browser noch mit den Endpacker den ich bei Mod - United gefunden habe. Auch ReneMiner's Lösung mit der gefakten Textdatei haut nicht wirklich hin...
 
Ich habe ja schon versucht "in_impsmall_wall_01.NIF" aus den BSA Archiv zu entpacken...fehlschlag, weder mit den Browser noch mit den Endpacker den ich bei Mod - United gefunden habe. Auch ReneMiner's Lösung mit der gefakten Textdatei haut nicht wirklich hin...
schon BSAPack versucht? das nutze ich immer fürs packen/entpacken von BSAs
BSAPack downloaden und entpacken, die enthaltende "bsapack.exe" zusammen mit deinen BSAs in einen beliebigen Ordner kopieren ... im selben Ordner eine Textdatei mit folgendem Inhalt erstellen:

Code:
bsapack unpack Morrowind.bsa
bsapack unpack Tribunal.bsa
bsapack unpack Bloodmoon.bsa

diese Textdatei unter dem Namen "entpacken.bat" speichern (Endung beachten) ... diese Datei doppelklicken und abwarten ... nun die entsprechenden Meshes raussuchen.
 
schon BSAPack versucht? das nutze ich immer fürs packen/entpacken von BSAs
BSAPack downloaden und entpacken, die enthaltende "bsapack.exe" zusammen mit deinen BSAs in einen beliebigen Ordner kopieren ... im selben Ordner eine Textdatei mit folgendem Inhalt erstellen:

Code:
bsapack unpack Morrowind.bsa
bsapack unpack Tribunal.bsa
bsapack unpack Bloodmoon.bsa

diese Textdatei unter dem Namen "entpacken.bat" speichern (Endung beachten) ... diese Datei doppelklicken und abwarten ... nun die entsprechenden Meshes raussuchen.

Genau auch hier...wenn ich dann auf die Bat - Datei gehe blubbt zwar das Commandfenster auf, aber ich kann nur kurz bei allen drei Archiven, irgendetwas mit "Fatal" lesen...und nach einer sekunde zappenduster

Fatal: Cannot oben File Morrowind.bsa so ist der genauere word wahl...
 
Zuletzt bearbeitet:
OT

Hast du's schon so versucht, wie ich hier in dem Threat beschrieben habe, oder auch wie die anderen es aufzählen?

http://www.scharesoft.de/joomla/forum/showthread.php?t=36293

Denn mit einen von den Wegen müsste man auf jeden Fall an die Daten kommen. Der einfachste Weg, ist eben der über die normale MW-CD.

OT-Ende

@Tommy:
Hast du schon die Zeit gefunden mal über den Horadrimwürfel-Script zu schauen? Wäre nämlich echt wichtig.

Gruß: TakoTatsujin
 
Fatal: Cannot oben File Morrowind.bsa so ist der genauere word wahl...
hast du die Morrowind.bsa auch in den selben Ordner kopiert wie die bsapack.exe und die erstellte bat-Datei? sieht zumindest so aus als ob dem nicht so ist

@TakoTatsujin
was soll mit der MW-CD sein? ... ansonsten: bin noch nicht zum ausprobieren gekommen
 
  • Like
Reaktionen: Dax`ta
Zu deinem Magie-Problem:
Maximalen Magierwert festigen ist ein Zaubereffekt. Du kannst ihn also detektieren. Seine Stärke könntest du bekommen, indem du die Intelligenz um 1 änderst und dir den Effekt auf Magie anguckst.
Danke für den Tipp, aber das berechnen des Int-Modifikators ist kein Problem (werd mir deine Variante aber mal anschauen) ... den Zaubereffekt via GetEffect zu ermitteln reicht mir aber nicht um rauszufinden ob man solche Items gerade angezogen hat oder nicht, da Sternzeichen und Rassen ja auch diesen Effekt nutzen

da muss was anderes her ... entweder tue ich die Erkennung für den Mantel des Wehklagens hardcoden, oder ich denk mir eine komplizierte Überprüfung des Magicka-Werts aus (was dann aber wohl zu sehr auf die Performance geht) oder ich bau einen Zauber ein der die Neuberechnung auslöst (muss man dann halt nach dem anziehen/ausziehen selber korrigieren)

die Erkennung der Werte von "Magie festigen"-Effekten kann ich mir wohl auch abschminken ... als Zauber wird nur das aktuelle Magicka, aber nicht der Max-Magicka-Wert angehoben - kann man also schon mal nichts mit anfangen ... als Fähigkeit wird zwar der aktuelle und maximale Wert angehoben, jedoch geht dieser Bonus verloren wenn sich die Intelligenz ändert - ist also komplett verbugt
 
Danke für den Tipp, aber das berechnen des Int-Modifikators ist kein Problem (werd mir deine Variante aber mal anschauen) ... den Zaubereffekt via GetEffect zu ermitteln reicht mir aber nicht um rauszufinden ob man solche Items gerade angezogen hat oder nicht, da Sternzeichen und Rassen ja auch diesen Effekt nutzen

ISt zwar nicht schön, aber notfalls stopfst du jeden Itemslot mit einem Platzhalteritem zu, dass du nach dem Script wieder löschst. Was anderes ist mir auch nicht eingefallen um eine Biestrasse (da kann es ja leider auch benutzergenerierte geben) zu erkennen. Wobei die Schuhe sicherlich nicht so nervig sind, wie alle 21 (?) Slots.

da muss was anderes her ... entweder tue ich die Erkennung für den Mantel des Wehklagens hardcoden, oder ich denk mir eine komplizierte Überprüfung des Magicka-Werts aus (was dann aber wohl zu sehr auf die Performance geht) oder ich bau einen Zauber ein der die Neuberechnung auslöst (muss man dann halt nach dem anziehen/ausziehen selber korrigieren)

Zum Thema Performance: Bei Skill Mastery laufen bei mir bis zu 40 (!) hochkomplizierte (GetLOS, GetSoundPlaying, ...) Scripte gleichzeitig. Das bringt mir nicht mal 5 fps Einbuße. Also wird ein einzelnes Script, das nur beim Levelaufstieg aktiv wird, recht egal sein.

die Erkennung der Werte von "Magie festigen"-Effekten kann ich mir wohl auch abschminken ... als Zauber wird nur das aktuelle Magicka, aber nicht der Max-Magicka-Wert angehoben - kann man also schon mal nichts mit anfangen ... als Fähigkeit wird zwar der aktuelle und maximale Wert angehoben, jedoch geht dieser Bonus verloren wenn sich die Intelligenz ändert - ist also komplett verbugt

An den maximalen Magiewert kommst du zum Beispiel, wenn du ein ModCurrentMagicka mit extrem überhöhten Werten auf den Spieler haust. Den Originalwert kannst du danach ja wiederherstellen.
 
ISt zwar nicht schön, aber notfalls stopfst du jeden Itemslot mit einem Platzhalteritem zu, dass du nach dem Script wieder löschst. Was anderes ist mir auch nicht eingefallen um eine Biestrasse (da kann es ja leider auch benutzergenerierte geben) zu erkennen. Wobei die Schuhe sicherlich nicht so nervig sind, wie alle 21 (?) Slots.
schnall ich nicht ganz ... muss ich mir wohl erst anschauen um zu sehen, was du meinst

Zum Thema Performance: Bei Skill Mastery laufen bei mir bis zu 40 (!) hochkomplizierte (GetLOS, GetSoundPlaying, ...) Scripte gleichzeitig. Das bringt mir nicht mal 5 fps Einbuße. Also wird ein einzelnes Script, das nur beim Levelaufstieg aktiv wird, recht egal sein.
ich arbeite ja noch grad an meinem LevelerMod - da laufen nochmal 21 Skripte für die Skills mit und noch ein paar andere Sachen - da mach ich auch recht komplizierte Sachen um die Engine-Schranken zu umgehen ... das ist durchaus spürbar, wobei ich dazu sagen muss, dass ich grad aufm Netbook teste

der Einstieg in das Skript ist übrigens grad der Knackpunkt - nur der Levelaufstieg bzw. Attributanstieg reicht nicht (mach ich ja jetzt schon), wenn ich nun noch das Magicka überwachen würde um Int-Modifikatoren zu ermitteln müsste ich die MaxMagicka-Workaround ständig ausführen, was entsprechend Mehrlast bedeutet

An den maximalen Magiewert kommst du zum Beispiel, wenn du ein ModCurrentMagicka mit extrem überhöhten Werten auf den Spieler haust. Den Originalwert kannst du danach ja wiederherstellen.
das mit dem maximalen Magiewert mach ich ja schon (siehe Skript weiter vorn im Thread) ... das Problem mit "Magie festigen" bleibt aber bestehen. Als Zauber erhöht der Effekt den aktuellen Magickawert, aber nicht den Maxwert. Hat zur Folge, dass ich zwar die Stärke des Effekts ermitteln kann, aber am Ende meiner Anpassung nicht wieder draufrechnen kann, weil es kein SetCurrentMagicka gibt und ModCurrentMagicka nur bis zum MaxWert steigert. Als Fähigkeit verhält sich das erst richtig komisch - ich mach das mal an einem Beispiel fest: Player hat 50 INT und hat demzufolge 50/50 Magicka, wenn man eine Fähigkeit mit "Magie festigen" 50 Pkt addet hat der Player 100/100 Magicka ... solang is das noch okay - wenn ich jetzt die Intelligenz erhöhe (ModIntelligence 1) wird daraus wieder 51/51 Magicka, wenn ich nun die Fähigkeit wieder entferne hat der Player nur noch 1/1 Magicka
 
Bin jetzt mit meinem levelabhängigen Magicka-Skript einen ganz anderen Weg gegangen. Da das ändern, des Magickawerts selbst zuviele Probleme macht hab ich das jetzt über Fähigkeiten mit dem Effekt "Maximale Magicka festigen" gelöst. Dadurch brauch ich die Intelligenz nicht mehr abfragen, Effekte wie Magicka festigen sind auch erstmal egal und Effekte von Gegenständen gehen mich auch nichts mehr an. Im Prinzip ist alles einfacher geworden, weil ich jetzt die Hausmittel von Morrowind nutze

Die vorher veranschlagten 10% waren jedoch viel zu viel, vor allem wenn man wie ich den Magicka-Modifier mit einbezieht. Da durch weglassen dieses Modifiers in der Berechnung der Nutzwert entsprechender Rassen/Sternzeichen unverhältnismässig nachlassen würde habe ich den Bonus erstmal auf 5% pro Level reduziert und lasse den Modifier aus Rasse/Sternzeichen zu 50% einfließen

also je Level bekommt man 5% INT * ( 1 + ( Modifier / 2 ) ) Magicka hinzu

daraus ergeben sich z.B. diese Beispiele (inkl. Extrem-Beispiel ;))

Code:
[B]Rasse    Sternzeichen  Level  Intelligenz  Magicka (alt)  Magicka (neu)  Magicka pro Level[/B]
Bretone  Lehrling      10     70           210            273            ~7,0
Nord     Lady          10     50           50             70             ~2,5
Bretone  Lehrling      30     100          300            590            ~10,0
Nord     Lady          30     80           80             192            ~4,0
Hochelf  Atronach      70     100          450            1390           ~13,75

hier das entsprechende Skript

Code:
begin _magickabonus

short intelligence
short offset
short level

float modifier
float bonus
float diff

; erst updaten, wenn Charakter-Erstellung beendet
if ( CharGenState != -1 )
   return
endif

; Magicka-Modifier von Rasse/Sternzeichen ermitteln (nur beim Start des Skripts)
if ( intelligence == 0 )
   set intelligence to ( player->getintelligence )
   set modifier to ( ( player->getmagicka ) / intelligence )
endif
   
; nur updaten, wenn Level sich ändert
if ( ( player->getlevel ) == level )
   return
endif

; Bonus berechnen (5% pro Level * Modifier)
set bonus to ( ( ( 1 + ( ( modifier - 1 ) / 2 ) ) * ( ( player->getlevel ) - 1 ) ) / 2 )

; alten Bonus entfernen
player->removespell "_FortifyMaxMagicka1"
player->removespell "_FortifyMaxMagicka2"
player->removespell "_FortifyMaxMagicka4"
player->removespell "_FortifyMaxMagicka8"
player->removespell "_FortifyMaxMagicka16"
player->removespell "_FortifyMaxMagicka32"
player->removespell "_FortifyMaxMagicka64"
player->removespell "_FortifyMaxMagicka128"

; neuen Bonus hinzufügen
set offset to 128  
while ( bonus >= 1 )
   set diff to ( bonus / offset )
   if ( diff >= 1 )
      set bonus to bonus - offset
      if ( offset == 128 )
         player->addspell "_FortifyMaxMagicka128"		 
      elseif ( offset == 64 )
         player->addspell "_FortifyMaxMagicka64"
      elseif ( offset == 32 )
         player->addspell "_FortifyMaxMagicka32"
      elseif ( offset == 16 )
         player->addspell "_FortifyMaxMagicka16"
      elseif ( offset == 8 )
         player->addspell "_FortifyMaxMagicka8"
      elseif ( offset == 4 )
         player->addspell "_FortifyMaxMagicka4"
      elseif ( offset == 2 )
         player->addspell "_FortifyMaxMagicka2"
      elseif ( offset == 1 )
         player->addspell "_FortifyMaxMagicka1"
      endif
   endif
   set offset to ( offset / 2 )
endwhile

; Level updaten
set level to ( player->getlevel )

end

die Frage entsprechend wieder an die Skript-Experten: Sieht das Skript in sich schlüssig aus? Oder hab ich was vergessen zu berücksichtigen? gibts eigentlich einen modulo-Operator bei Morrowind? (dann wär der untere Teil nicht so umständlich)

dann die andere Sache: sind spieltechnisch die 5% INT plus halben Modifier in etwa okay um bequem als Magier zu spielen? hab das mehr nach Gefühl gemacht als nach empirischer Untersuchung
 
gibts eigentlich einen modulo-Operator bei Morrowind? (dann wär der untere Teil nicht so umständlich)

Natürlich nicht. Was erwartest du denn? :p
Du könntest dir aber ein Script basteln, dass dies für dich erledigt. Dann lagerst du das Problem zwar nur aus, dafür sieht dein Script hübscher aus.
 
was wäre daran denn schöner, sind immer noch 4(?) Zeilen und verschwendet einen Frame "pro Modulo" oder viele globals.

außerdem bin ich nicht sicher ob du den richtigen Multiplikator kriegst, mach es lieber so wie Killfetzer vorgeschlagen hat, senke oder hebe Int um 1 und mess dem Maximalmana-Unterschied (und man sollte sicher sein dass sonst kein Manaänder Script läuft).
 
die modulo-Sache is mir kein extra Skript wert, da reicht mir die aktuelle Umsetzung

was die Ermittlung des Modifiers anbelangt, gehe ich bisher immer von einem Neustart aus, d.h. man hat keine Gegenstände wie Mantel des Wehklagens, Magicka festigen Zauber aktiv und volles Magicka ... da man das Plugin später aber eventuell auch zwischendurch mal zuschaltet werd ich statt:

Code:
short modifier
set modifier to ( player->getintelligence )
set modifier to ( ( player->getmagicka ) / modifier )

mal nun Killfetzers Variante nehmen:

Code:
short modifier
player->modintelligence -1
set modifier to ( player->getmagicka )
player->modintelligence 1
set modifier to ( ( player->getmagicka ) - modifier )

hilft zwar auch nicht gegen die erste Sache, aber die anderen beiden Sachen dürften dafür egal sein - sind eh nur 2 Zeilen mehr ... wollt diese Variante bisher vermeiden, weil mein Leveling-Mod anhand der Attributsteigerungen das Level im Hintergrund hochzählt - hab da aber inzwischen was umgebaut, weshalb das hoffentlich kein Problem sein sollte

naja zu den verschiedenen Sachen werd ich wohl dann bald mal nen eigenen Release-Thread aufmachen
 
Ich bräuchte mal Hilfe. Die visuellen Zaubereffekte werden ja durch die Statics mit der ID VFX_ erzeugt. Da ich gescriptete Effekte verwende, muss ich auch die Zaubereffekte per Hand erzeugen.

Dazu habe ich einen Activator gebastelt (e/magic_area_conjure.nif) und ihm mit folgendem Script versehen:

Code:
begin kf_skm_summon_effect_script

short state
float timer

if ( state == 0 )
	PlayGroup "idle"
	set state to 1
endif

if ( state == 1 )
	set timer to timer + GetSecondsPassed
	if ( timer >= 5 )
		Disable
		set state to 2
	endif
endif

if ( state == 2 )
	set state to 3
	SetDelete 1
	return
endif

end

Dieser Activator wird vom Steuerscript des Zaubers an die richtige Stelle gesetzt. Das Problem ist, es passiert einfach nichts. Ursprünglich hatte ich den PlayGroup-Befehl nicht, aber auch so ist nichts passiert. Deswegen kam ich auf die Idee, dass ich die Animation von Hand starten muss, aber anscheinend ist idle nicht der korrekte Name. Wie kann ich den richtigen Namen der Animation herausfinden?
 
tja da musst du wohl mal alle durchprobieren ;) ... vielleicht wirst du ja auch hier fündig, ansonsten muss man wohl irgendwie den Namen erst ermitteln - da die Gruppen vorgegeben sind müssten die in den Animationsdateien eigentlich mit drin stehen ... vielleicht reicht da ja der Texteditor mit dem du nach Klartext suchst, andernfalls muss ein Tool her (z.B. hier aus der Liste ... das hier könnte evntuell auch gehen - zumindest steht unten was von Animationen Preview/Merge usw. - da sollten die Gruppen dioch irgendwo auftauchen)
 
Dieser Activator wird vom Steuerscript des Zaubers an die richtige Stelle gesetzt. Das Problem ist, es passiert einfach nichts. Ursprünglich hatte ich den PlayGroup-Befehl nicht, aber auch so ist nichts passiert. Deswegen kam ich auf die Idee, dass ich die Animation von Hand starten muss, aber anscheinend ist idle nicht der korrekte Name. Wie kann ich den richtigen Namen der Animation herausfinden?
Ich glaube nicht, dass du mit dem PlayGroup Befehl irgendwas erreichen wirst - das sind nämlich keine Animation Groups. Ich fürchte der Mist könnte hardcoded sein. Irgendwie wird ja auch die Skalierung (Zauberstärke) übergeben. Das Problem liegt u.a. wohl auch an den Flags der eingebauten Keyframe Controller. Deren Loopflag ist "Clamp", das heißt, damit da was passiert, muß irgendwas von außen kommen. Ich hab das für mein Laserschwert benutzt, damit die Lichtklinge nur aktiv ist, wenn man die Waffe zieht. Aber wie sich das mit den Effekten umsetzen lassen soll, weiss ich nicht.

Ich hab mich für Arkngchend mal mit diesen vfx-Meshes beschäftigt, weil ich ein paar benutzen wollte, um ganz spezielle Effekte beim Auslösen von Fallen oder Benutzen von Objekten zu erzielen - bis dato habe ich noch keinen Weg gefunden, diese Dinger ingame zu aktivieren. Naja, das stimmt nicht ganz, ich hab eine Möglichkeit, aber die beruht darauf, die Mesh auseinander zu nehmen und sie danach von Hand (!) in NifSkope neu zusammenzupuzzeln, damit alles im Spiel funktioniert.

Um welche Effekte geht es dir genau? Vielleicht habe ich ja einen davon, den du dann benutzen könntest?
 
Ich hab mich für Arkngchend mal mit diesen vfx-Meshes beschäftigt, weil ich ein paar benutzen wollte, um ganz spezielle Effekte beim Auslösen von Fallen oder Benutzen von Objekten zu erzielen - bis dato habe ich noch keinen Weg gefunden, diese Dinger ingame zu aktivieren. Naja, das stimmt nicht ganz, ich hab eine Möglichkeit, aber die beruht darauf, die Mesh auseinander zu nehmen und sie danach von Hand (!) in NifSkope neu zusammenzupuzzeln, damit alles im Spiel funktioniert.

Naja, ich habe per Hand verschiedene Partikelemitter zusammen gefriemelt, damit ich ein schönes Dampfleck hinbekomme. Also kann ich zumindest in der Richtung etwas probieren.

Um welche Effekte geht es dir genau? Vielleicht habe ich ja einen davon, den du dann benutzen könntest?

Ich bräuchte den VFX_Summon (für meine neuen gescripteten Kreaturenbeschwörungen) und für eine Quest wäre es schön, wenn ich noch mystic_area hätte. Der muss aber nicht sein, aber wenn meine Kreaturen irgendwie einen Effekt beim Erscheinen und Verschwinden haben, wäre das schon schön.
 
Ich bräuchte den VFX_Summon (für meine neuen gescripteten Kreaturenbeschwörungen) und für eine Quest wäre es schön, wenn ich noch mystic_area hätte. Der muss aber nicht sein, aber wenn meine Kreaturen irgendwie einen Effekt beim Erscheinen und Verschwinden haben, wäre das schon schön.
Damit wir uns richtig verstehen:

e\magic_summon.nif

Um diesen geht's?
 
Ich bin so blöd :(

Bethesda hat das Problem doch schon für uns gelöst. Die Zweiglinge stehen doch auch einfach mit einem scriptplatzierten Zaubereffekt auf. Das ist mir gerade durch Zufall wieder eingefallen. Ich habe direkt einmal nachgeguckt, Bethesda hat einfach einen neues nif mitgeliefert. Ist zwar nicht das gleiche wie die normale Beschwörung, aber nah genug dran.

Damit hat sich mein Problem wohl erledigt :)