[Modding] Frage zu Kits, Innates und CLAB-Files

Romin

Member
Registriert
24.10.2011
Beiträge
43
Hallo zusammen,

nach längerer Pause (Uni) habe ich mich mal wieder meinem NPC Mod zugewandt und bin gleich (mal wieder) auf ein kleines Problem gestoßen und zwar im Zusammenhang mit Klassen-Kits:

Ich will per ApplyKit einen alten durch einen neuen Kit auf meinem NPC ersetzen (beide Kits, bzw. deren CLAB-File von mir selbst gemacht und per ADD_KIT im tp2-file eingefügt; funktioniert auch soweit). Nun werden aber manche der Innate-Abilities (ihr wisst schon, diese Zauber wie die Bhaalskräfte, die man täglich anwenden kann) vom ersten Kit nicht gelöscht, nachdem der zweite Kit dem NPC zugeordnet wurde - obwohl sie im CLAB-File des zweiten Kits nicht drin sind, und somit dem NPC ja nicht vergeben werden sollten. Auch das rauswerfen des NPC aus der Party ändert nichts daran (habe irgendwo gelesen, dass der Inhalt des CLAB nur neu berechnet wird, wenn NPC in die Party aufgenommen wird).

Weiß nun irgendwer Rat? Vielleicht gibt es einen anderen Skript-Befehl, der einer Person alles Innates wegnimmt...

Vielen Dank schonmal fürs lesen meines Posts und für Antworten (auch hilfreiche) :D,
Romin
 

Romin

Member
Registriert
24.10.2011
Beiträge
43
Oh, Danke Jarl! Manchmal sehe ich den Wald vor lauter Bäumen nicht... Werde das mal testen und Ergebnis posten (falls wer anderes mal das gleiche Problem hat)

Gruß, Romin
 

Romin

Member
Registriert
24.10.2011
Beiträge
43
Hallo!

Also, RemoveSpellRES() funktioniert wie es sollte! Danke nochmal für den Hinweis.

Allerdings würde mich doch interessieren ob jemand weiß, warum ApplyKit nicht funktioniert (der Befehl sollte eigentlich Fähigkeiten des alten Kits entfernen - im Gegensatz zu AddSuperKit). Diesbezüglich ist mir noch eine Seltsamkeit aufgefallen:

Folgende Situation: der Kit der auf dem NPC liegt gibt dem Charakter Innates ab der ersten Stufe. Der zweite Kit gibt erst ab der 5.Stufe Innate-Zauber dazu, davor nichts. Nun wende ich ApplyKit an (NPC hat davor Stufe 1 und verfügt über die Innates seines Kits, wie es sein sollte) und NPC bekommt Kit Nr2 (der Trigger Kit(...) liefert true für Kit2). Mit dem zweiten Kit ist auch der Button für die Innates ausgegraut (soweit alles wie es sein sollte). Wenn ich jetzt allerdings den NPC auf Stufe 5 aufstufe und er seine ersten Kit2-Innates bekommt ist (natürlich) auch der Button wieder aktiv und im Innates-Menü erscheinen die neuen, neben einigen der alten Innates (einigen aber interessanterweise nicht allen).

Vielleicht kennt jemand das Phänomen und kann/will noch etwas beitragen :)?

Naja, in jedem Fall Danke für den Verweis auf RemoveSpell, was prima funktioniert um das Problem zu umgehen,

Gruß Romin

EDIT: Ich hab ApplyKit mal mit original Kits versucht, da hat es wie erwartet funktioniert. Nur einige meiner selbstgemachten Innates haben das Problem, was mich natürlich glauben lässt, dass mir beim Innate erstellen vielleicht ein Fehler unterlaufen ist.

EDIT2: Ha! Ich habs herausgefunden: Alle entfernten Innates hatten einen Dateinamen von <=7 Chars, jene Innates die nicht gelöscht wurden hatten genau 8 Char-Dateinamen! Mir ist nicht so ganz klar warum es so ist, aber wenn ich die Dateinamen ändere (auf 7 oder auch weniger - 5 funktionieren nach meinem Test auch :)) funktioniert ApplyKit wie es sollte.
Interessanterweise lässt sich dieser Umstand vielleicht sogar ausnutzen ;).
Ich denke damit hat sich dieser Thread hier erledigt :D
 
Zuletzt bearbeitet:

Jarl

Senior Member
Registriert
28.04.2006
Beiträge
980
Hmm, seltsam. Poste mal, wenn du mehr dazu herausgefunden hast.
Hat vielleicht was damit zu tun, dass die Zauberstufen im Spiel anhand der Namen hardgecodet sind:

SPIN + 3 Ziffern = Innate Spells + Zauberstufe
SPPR + 3 Ziffern = Priest Spells + Zauberstufe
SPWI + 3 Ziffern = Wizard Spells + Zauberstufe

daraus ergeben sich also immer 7Char-Dateinamen.

Aber warum sich das auf den Scriptbefehl auswirken sollte, weiß ich auch nicht.
Ne andere Frage: Wieso ApplyKit()? Ich dachte, das heißt AddKit(), ApplyKit() steht bei IESDP gar nicht drin :confused:

Gruß Jarl
 

Romin

Member
Registriert
24.10.2011
Beiträge
43
Romin: Abbility1 AP_Verwirrung
:)
Ja, achje, es heißt natürlich AddKit und AddSuperKit .... Hatte nur kurz vorher die ganze Zeit (in anderem Zusammenhang allerdings) mit ApplySpell() rumgespielt und da muss das "Apply" sich festgesetzt haben... :rolleyes:

Warum 7/8 Char den Unterschied machen erschließt sich mir auch nicht. Hier mal eine Zusammenfassung dessen was mir so passiert ist:
Ein im CLAB*.2da gesetztes GA_ABC12345 vergibt den Zauber mit dem 8Char Namen genau wie man es erwartet (auch korrekt zu jedem entsprechenden Stufenaufstieg) und RemoveSpellRES(ABC12345), z.B. aus einem Dialog gerufen, funktioniert auch mit einem 8-Char Namen. Einzig beim Kit-Wechsel mit AddKit() werden die Zauber nicht richtig entfernt.
(Ausnahme: Solange der zweite Kit keine Innates verleiht, ist der Innate Button zwar ausgegraut - aber die Zauber scheinen noch irgendwie da zu sein, denn sie tauchen wieder auf sobald Kit2 Innates verleiht.)
Ebenfalls wie erwartet stagniert auch die Anzahl dieser nicht richtig entfernten Innates aus Kit1, denn es kommen keine mehr dazu, selbst wenn Kit1 dies vorgesehen hätte (will sagen: das CLAB*-file von Kit1 wird mit ge-add-etem Kit2 wirklich ignoriert).
In meinem Fall waren die Innates für Kit1:
- SPCL211 (Hände auflegen),
- R2SPLGS (sind zufällig 7Char, original SPWI111=Genauer Schlag, den ich mit NI exportiert habe und alles auf "Innate (4)" gesetzt habe)
- R2SPL001 und R2SPL002; ebenfalls exportierte Zauber, urpr. Handlungsfreiheit (der Priesterzauber) und Hellsehen (der Magierzauber)
Nach AddKit(Kit2) waren dann genau die beiden letzten Zauber die "Übeltäter" und das Problem verschwand nachdem ich jeweils eine "0" aus deren Namen entfernt habe.
EDIT Eine Sache noch: Wenn Kit2 ge-add-et wurde und die Überbleibsel-Innates gezaubert werden, dann kehren auch nach einer Rast zurück (ich vermute das liegt an ihrer Eigenschaft "Innate" zu sein.)

Soweit meine bisherigen Erfahrungen. Melde aber, wenn sich was neues tut :)
Gruß Romin
 
Zuletzt bearbeitet:

Taimon

Infinity Engineer
Registriert
25.11.2001
Beiträge
1.501
In der Engine gibt es einige Stellen, an denen nur 7 Zeichen einer Resourcenreferenz kopiert werden. Ich hab' das jetzt nicht mehr detailliert im Kopf (ist schon 'ne Weile her), aber bei Spells war es besonders häufig.
 

Romin

Member
Registriert
24.10.2011
Beiträge
43
Danke Taimon, für den Hinweis. Ich denke - sozusagen als Quintessenz - ich werde zukünftig einfach standardmäßig bei 7 Chars bleiben. Ist vielleicht ein guter Tipp an die Allgemeinheit :)

Gruß Romin
 

Armanz

Zeitloser Dichter
Registriert
15.07.2010
Beiträge
367
Der Threadtitel passt so gut, darum stell ich meine Frage mal hier:

Ist es möglich Zauber aus einem (Paladin)Spellbook zu entfernen?
Ich wollte nämlich einen spezialisierten Paladin erstellen, der schon früher bestimmte Zauber erlernen kann, dafür aber nur aus 1-2 Zaubern pro Stufe wählen darf.

Und wenn ich die entsprechende Datei editiere, kann ich dann die Zauberstufen einstellen wie ich will, ohne dass es zu Komplikationen kommt?

Und kann man es so einstellen, dass ein Charakter schon im SvA Start ein Item bei sich trägt oder ist das nur für TdB möglich?
 
Zuletzt bearbeitet:

Taimon

Infinity Engineer
Registriert
25.11.2001
Beiträge
1.501
Auf den ersten Blick würde ich sagen: Das könnte schwierig werden mit dem speziellen Paladin, da du quasi eine neue Spellcaster Klasse einführen willst.
Die bestehende Paladinklasse soll ja wahrscheinlich so bleiben wie sie ist.
Vorallem das Feature mit der Auswahl von Zaubern für Paladine wird in meinen Augen Probleme bereiten, denn normalerweise werden ja alle Priestersprüche der jeweiligen Stufe auf einmal gelernt.
Im Moment könnte ich mir nur einen Umweg über 'nen Dialog vorstellen.

Oder ich hab' dich komplett falsch verstanden. :)

Das mit dem Item hingegen ist kein Problem. Geht wahrscheinlich am einfachsten über ein Script.
 

Armanz

Zeitloser Dichter
Registriert
15.07.2010
Beiträge
367
Hm, mit dem Spellcaster jein, er soll schon noch die normalen Klerikerzauber zur Verfügung haben, aber nicht alle. Hm, dann sollte ich ihm die Zauber die er haben soll per Innates geben.
Dazu hätte ich auch ne Frage, ich hab mir nämlich alle verfügbaren Innates per irgendeinem KitEditor angeschaut und mir die relevanten (Genesung, Auferstehung, Lähmung aufheben, Geringere Genesung, Schutz vor Bösem 3m Radius) Codes aufgeschrieben und in die entsprechende Paladindatei hineineditiert.
Hab dann gemerkt, dass die Genesungszauber, Fluch brechen und Auferstehung nur einen Spellcode haben und keinen Innate Code.
Gibt es irgendeine Liste oder dergleichen mit den bekannten Zaubern und kann man jeden Zauber als Innate einstellen oder geht das mit regulären Priesterzaubern nicht? Trotz all der Kiteditors und Tutorials habe ich sowas bislang nicht gefunden, das finde ich doof:D

Und sonst, das mit dem Stufen variieren ist möglich oder? Also dass mein Paladin schon auf Stufe 7 n 1er Zauber zur Verfügung hat und dann auf Stufe 12 einfach mal 4 Stufe 4 Zauber dazukriegt (nur als Beispiel).
Ich hab das in geringem Maße ausprobiert, weiß aber nicht ob das zu Problemen führen kann.
 
Zuletzt bearbeitet:

Morgodur

Senior Member
Registriert
16.10.2010
Beiträge
243
Ich durchblick nicht ganz, was ihr vorhabt, aber hier ein kleiner Einwurf, der bhelfen könnte:
Der Rächer hat zusätzlich Zauber im Vergleich zum normalen Druiden. Gleiches gilt für Jaheira mit "Ruf der Harfner".
 

Taimon

Infinity Engineer
Registriert
25.11.2001
Beiträge
1.501
Ich hab' nochmal drüber nachgedacht: Man könnte manuell beim Stufenaufstieg einige Zauber aus dem Spellbook entfernen. (Mit einem eigens dafür erstellten Zauberspruch der Effect #172 [Remove Spell] nutzt.)
So hättest du zumindest das Problem mit der beschränkten Zauberauswahl gelöst.

Die zusätzlichen Sprüche als Innates zu deklarieren ist vielleicht gar keine so schlechte Idee. Grundsätzlich gilt das jeder Spruch auch Innate sein kann. Mach' einfach eine Kopie des Spruches und ändern den Spelltype Parameter auf Innate. (Siehe auch: Florians Kit-Basteleien.)

Was deine letzte Frage betrifft: An sich ist es kein Problem, die zur Verfügung stehenden Zauber anzupassen. (mxsplpal.2da)
Allerdings bin ich mir nicht sicher, ob das auch pro Kit und nicht nur pro Klasse möglich ist. (Die "normalen" Paladine, sollen ja nicht beeinflusst werden.)
 

Armanz

Zeitloser Dichter
Registriert
15.07.2010
Beiträge
367
Ah vielen Dank!

Ja, welche Datei ich da editieren muss, wusste ich sogar schon:D

Meinst du mit deinem letzten Satz, dass ich eventuell nur am Spellbook der Paladinklasse und nicht an Paladinkits fummeln kann?
Kann ich denn dann nur für das Kit das Spellbook deaktivieren und ihm die restlichen Spells als Innates verpassen oder gilt das Deaktivieren dann auch für die Paladinklasse?
 
Zuletzt bearbeitet:

Wol-Ko

Senior Member
Registriert
31.05.2008
Beiträge
103
Wenn du deinem Paladinkit die Spells per Innates geben willst, solltest du vielleicht mal anschauen, wie das beim Inquisitor mit dem Deaktivieren der Priesterzauber gemacht wird, ich glaube das war der Effekt "Disable Button".

Vielleicht haben die Mods Divine Remix oder Knight Kits Lösungen zu deinem Problem, obwohl nein, ich glaube beide deaktivieren das orginale Spellbook für alle, die göttliche Zauber lernen.
 

Taimon

Infinity Engineer
Registriert
25.11.2001
Beiträge
1.501
Hm, je mehr ich drüber nachdenke, desto überzeugter bin, dass sich dein ursprünglicher Plan doch mit dem normalen Priester Spellbook umsetzen.
Allerdings nicht über den Weg via mxsplpal.2da, sondern manuell, mit besonderen Zaubersprüchen, die beim Stufenanstieg zur Anwendung kommen.
Es gibt ja den Effect #62, mit dem kannst du die Anzahl der memorierbaren Sprüche im Spellbook anpassen.

Ich weiß nicht, wie gut du dich mit Spells und Effects auskennst, eventuell könnte ich da Unterstützung anbieten.
 

Armanz

Zeitloser Dichter
Registriert
15.07.2010
Beiträge
367
Ich würd mich über jede Hilfe freuen. Ich habe zwar mit diesem Infinity Engine Pro Tool schon etwas herumhantiert, aber bin beim Kreieren von Auferstehungs- und Genesungszaubern nicht erfolgreich geworden:D

Edit: Danke Wol-Ko, hab den Effect gefunden den du meintest

#144 (0x090) Button: Disable Button [144]
Parameter #1: Irrelevant
Parameter #2: Button
Description:
Disabled the button specified by the 'Button' field. The resource field acts as a matching key to the resource field of the Enable Button, allowing separate enable/disable reasons.

Known values for 'Button' are:
0 Stealth Button
1 Thieving Skill Button
2 Spell Select Button
3 First Quick Spell Button
4 Second Quick Spell Button
5 Third Quick Spell Button
6 Turn Undead Button
7 Talk Button
8 Use Item Button
9 First Quick Item Button
10 No effect
11 Second Quick Item Button
12 Third Quick Item Button
13 Innate Ability Button

Was muss ich damit jetzt machen?
 
Zuletzt bearbeitet:

Taimon

Infinity Engineer
Registriert
25.11.2001
Beiträge
1.501
Du überlegst dir jetzt erst einmal sehr genau, was du wie umsetzen willst.
Erst dann können wir dir auch unter die Arme greifen.

Ich persönliche nutze Near Infinity zum herumprobieren. Ist meiner Meinung nach ein vergleichsweise anwenderfreundliches Tool. ;)
 

Wol-Ko

Senior Member
Registriert
31.05.2008
Beiträge
103
Den Tip von Taimon, Near Infinity zu benutzen, kann ich auch nur empfehlen!

Ich glaube, die Umsetzung mit Innates ist relativ einfach, du müsstest sehr wahrscheinlich nur Klerikerzauber in Innateszauber umwandeln (die du per Clab zuordest), alles was zum Kreieren eines neuen Kits notwendig ist umsetzen, und die notwendigen Zauber zum deaktivieren der Klerikerzauber kannst du sehr wahrscheinlich von der Inqisitorclab übernehmen.

Aber: Eine Zuordnung per Priesterzauber wäre natürlich viel, viel, viel stylischer!

Deshalb meine Bitte, probiere dies zuerst, ich komme da allerdings an die Grenze meines Wissens, aber mit Taimon ist ja ein Experte da, der dir helfen kann....
 
Zuletzt bearbeitet:

Armanz

Zeitloser Dichter
Registriert
15.07.2010
Beiträge
367
Mit Near Infinity hab ich mich noch nicht sosehr beschäftigt, außer dass ich damit immer die Spells exportiere und so.

Also das mit den Zaubern als Innates hab ich hinbekommen, mein Fehler war, dass ich bei der Wahrscheinlichkeit nicht 0 und 100% eingegeben habe.

Ich will jetzt mit dem Disable Button die Zauber vom Kit deaktivieren und dem Kit zwei nicht ablegbare Startgegenstände (Handschuhe, die +1 auf alle Rettungswürfe geben und einen Gürtel der Segen und +1 Charisma gibt) zuweisen. Da weiß ich jetzt aber nicht wie ich das hinkriege, also wie das mit dem Skript und so funktioniert.

Edit: Hm ja, ich versuch das mal mit den Priesterzaubern...kann momentan eh nicht zocken, da Imoen im Kerker nicht triggert :D
 
Oben