Strings anpassen

Dieses Thema im Forum "Modding Forum" wurde erstellt von Dachrisma, 26. Mai 2018.

  1. Dachrisma

    Dachrisma Senior Member

    Registriert seit:
    März 2011
    Beiträge:
    171
    Zustimmungen:
    0
    Hallo ihr Lieben,
    da ich kein passendes Thema gefunden habe stelle ich mal eine ganz spezielle Frage. Ich habe ein paar Items für das Spiel mit dem DLTCEP Tool verändert, die mich seit langem gestört haben. Ein Beispiel dafür ist der Gürtel der Hügelriesenstärke. Mich hat es immer gestört daß er die Werte fest anpasst und nicht einfach +1 auf Stärke gibt. Nun möchte ich natürlich die passende Strings dazu haben. Das ganze so einfach gehalten wie möglich, also wenn es geht nur in die override packen und lauffähig haben. Zudem darf die dialog.tlk nicht überschrieben werden. Also nur ganz selektiv diese Strings und dann nur eben in die override.

    Ist das machbar, wenn ja: Wie?

    Vielen Dank schon mal!
     
  2. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    4.492
    Zustimmungen:
    30
    Da bietet sich eine kleine Mod an, die die veränderten Items in das Spiel einfügt und die neuen Strings der dialog.tlk zufügt. Das ist der einzige Weg, den ich kenne, um neue Strings der dialog.tlk hinzuzufügen. Außerdem bleibt auf diese Art Deine Änderung auch für andere Spielinstallationen erhalten, wenn Du mal eine neue Installation aufziehen musst.

    Also - für Windows geht das so:

    • Erstelle einen Modordner in Deinem (BG)Spieleordner und gib ihm einen sinnvollen Namen, ich nenn ihn hier mal DachrismasItemTweak
    • in diesen Modordner kopierst/exportierst Du nun die von Dir über NI veränderten Item-Dateien. Mit NI z.B. kann man "exportieren" anklicken, wenn man das Item geöffnet hat.
    • ebenfalls in diesen Modordner kommt nun eine Textdatei, die die Endung tp2 hat: "Setup-DachrismasItemTweak.tp2" (Inhalt der tp2 siehe unten)
    • auf Ebene des Modordners, also direkt in den Spieleordner, brauchst Du nun noch eine "Setup-DachrismasItemTweak.exe". Diese ist eine umbenannte weidu.exe. Entweder kopierst und umbenennst Du einfach eine andere setup-modname.exe, oder Du kannst das aktuelle WeiDU (momentan v245) hier holen: http://www.weidu.org/~thebigg/WeiDU-Windows-245.zip
    • da ich nicht weiß, ob es auch für die EE-Spiele funktionieren soll, kommt noch ein Unterordner hinzu: "translations"
    • In den Ordner "translations" kommt gleich noch eine Textdatei mit der Endung tra: "Setup-DachrismasItemTweak.tra" (Inhalt siehe unten)
    • und noch das benötigte Umwandlungstool mit dem man aus den ANSI-Texten die für die EE benötigten utf-8 ohne BOM machen kann: der Ordner inconv, den ich an diesen Post als zip angehängt habe, unzippen und in den Ordner "translations" kopieren
    Tada! Sieht schon fast aus wie eine Mod. Fehlen nur noch ein paar Internas:

    In die Setup-DachrismasItemTweak.tp2 kommt folgendes rein (nicht unbedingt mit den Kommentaren hinter den //):

    Code:
    BACKUP ~DachrismasItemTweak/Backup~ //hier speichert weidu das Backup zum Deinstallieren der Mods
    AUTHOR ~##~ //Das gibt den prompt, wohin man den Bugreport schicken soll, wenn die Installation nicht klappt
    VERSION ~1~ //Versionsnummer, die in der weidu.log angezeigt wird
    
    ALWAYS //alles in diesem Block wird immer vor dem eigentlichen Modinhalt durchgeführt
    
    /* für die EE brauchen wir den Text in utf-8 */
    ACTION_DEFINE_ARRAY fl#reload BEGIN Setup-DachrismasItemTweak END //führt dazu, dass die in utf-8 umgewandelte Setup-DachrismasItemTweak.tra vor dem Verwenden noch einmal geladen wird
    
      LAF HANDLE_CHARSETS
        INT_VAR
          infer_charset = 1
        STR_VAR
          tra_path = EVAL ~DachrismasItemTweak/translations~ //hier liegt die inconv
          reload_array = fl#reload
      END
    
    END //Ende vom ALWAYS-Block
    
    AUTO_TRA ~DachrismasItemTweak/translations~ // wo soll automatisch nach den Textzeilen gesucht werden
    
    BEGIN @0 /* Dachrismas Item Tweak */ //die zugehörigen Textzeilen sind dann in der DachrismasItemTweak.tra
    
    COPY ~DachrismasItemTweak/belt06.ITM~ ~override/belt06.ITM~ //Gürtel der Hügelriesenstärke
    // SAY NAME1 @1 /* ~Gürtel der Hügelriesenstärke~ */ //brauchen wir nicht, da sich der Name nicht ändert
    // SAY NAME2 @1
    // SAY UNIDENTIFIED_DESC @x //brauchen wir auch nicht: ist die Beschreibung für das nicht-identifizierte Item
    SAY IDENTIFIED_DESC @2 //Deine neue Beschreibung für den Gürtel
    
    In der DachrismasItemTweak.tra steht dann entsprechend (die Datei in ANSI abspeichern):
    Eiiigentlich sollte man das ja so machen, dass das im Spiel befindliche Item nur gepatcht wird und nicht ersetzt. Dazu weiß ich aber nicht genug tp2-coding, um dafür den Code zu liefern. Der Nachteil davon, Dateien zu ersetzen ist immer, dass Änderungen von anderen Mods verloren gehen, z.B. wenn eine Tweakmod vor Deiner den Gürtel für Mönche erlaubt hätte oder ihm eine andere Farbe gegeben hätte, dann wären diese Änderungen nun logischerweise weg.

    Selbstverständlich kannst Du das ganze auch umstrukturieren und z.B. die Items in einen Unterordner "items" packen, dann verändert sich die Zeile
    "COPY ~DachrismasItemTweak/belt06.ITM~ ~override/belt06.ITM~" entsprechend in
    "COPY ~DachrismasItemTweak/items/belt06.ITM~ ~override/belt06.ITM~". Falls Du mehrere Sprachen abdecken möchtest, müsste man noch etwas ändern.

    Lass' mich wissen, ob Dir das weiterhilft!
     

    Anhänge:

    • iconv.zip
      Dateigröße:
      742,3 KB
      Aufrufe:
      0
    Zuletzt bearbeitet: 17. Juni 2018
  3. Dachrisma

    Dachrisma Senior Member

    Registriert seit:
    März 2011
    Beiträge:
    171
    Zustimmungen:
    0
    Hui, okay, das ist viel Holz. Erst mal hatte ich so was schon befürchtet und mir einiges davon schon vorbereitet. Man kann übrigens auch mit DLTCEP auf veränderte Gegenstände zugreifen, indem man sie aus dem extrenen Ordner (override) raus kopiert. Aber das am Rand, ich habe mir jetzt erst mal Java und NI drauf gehauen und geschaut ob die Gegenstände in dem bereits fertigen Itm-Ordner auch richtig sind. Da auch das Programm sagt passt ist das also erledigt.

    Da ich meinen Nick nicht unbedingt überall haben muss habe ich mich mit meinem Stolz und Gewissen einfach auf ItemTweak geeinigt, das passt schon. Okay, also EE wollte ich außen vor lassen, das war so ein kleine private Idee für mich die an sich nicht viel können muss. Einfach wegen Kleinigkeiten die mich in meiner kleinen Spielwelt genervt haben. Ich bezweifel ob da so großes Interesse besteht, daß ich gleich nen Mod raus bringen muss. Habe im übrigen mehrere Gegenstände drin, also nicht nur belt06 (Gürtel der Hügelriesenstärke), sondern auch konsequenterweise belt07 mit Stärke +2 (Gürtel der Steinriesenstärke), belt08 mit Stärke +3 (Gürtel der Frostriesenstärke), bis zum Gürtel der Feuerriesenstärke. Das wäre mir sonst zu inkonsequent und lehnt an dem Vorbild von NWN an, da ist es ganz ähnlich gehandhabt. Dazu kommen die Heilhandschuhe, die ich als Beleidigung empfunden habe, die machen jetzt das was sie sollen, nämlich heilen, und zwar funktionieren sie dabei so wie ein Regenerationsring. Sonst waren sie immer für die große Ramschkiste gut. Na ja, eben ein paar Kleinigkeiten, da bin ich noch nicht ganz durch.

    Ist der "Always"-Block in der Setup überflüssig wenn man EE nicht berücksichtigen will?
    Glaubst Du denn daß es Interessenten für dieses Projekt gibt?

    Muss man jeden Gegenstand in der Setup einzeln rein kopieren, also...

    COPY ~ItemTweak/items/belt06.ITM~ ~override/belt06.ITM~ //Gürtel der Hügelriesenstärke
    SAY IDENTIFIED_DESC @2 //Deine neue Beschreibung für den Gürtel

    COPY ~ItemTweak/items/belt07.ITM~ ~override/belt07.ITM~ //Gürtel der Steinriesenstärke
    SAY IDENTIFIED_DESC @3 //Deine neue Beschreibung für den Gürtel

    COPY ~ItemTweak/items/belt08.ITM~ ~override/belt08.ITM~ //Gürtel der Frostriesenstärke
    SAY IDENTIFIED_DESC @3 //Deine neue Beschreibung für den Gürtel


    Also, in dem Setup was ich mir zusammen gesponnen habe müsste es dan etwa so aussehen.
    Jastey, VIELEN DANK, Du hast Dir wirklich Zeit genommen und Mühe gemacht. Toll!
     
  4. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    4.492
    Zustimmungen:
    30
    Gerne, ich werde das eventuell einfach als Tutorial taggen, dann hat sich die Zeit mehrfach gelohnt.

    Ich denke, dass alle Tweakpacks mit Dingen anfingen, die jemand für sein Spiel anders haben wollte. Die Änderungen für die Heilhandschuhe finde ich z.B. durchaus interessant. Die Stärkegürtel finde ich eigentlich ganz gut, so wie sie sind, aber ich hatte auch mit den D&D Regeln nichts am Hut, ich bin nur wegen der Ritter und der Magie hier. :)

    Wenn Du nur eine Sprache hast und der Tweak nicht für die EE funktionieren muss, dann brauchst Du den ALWAYS Block einschließlich dem abschlie0enden END nicht, genau. Streng genommen auch das AUTO_TRA nicht, da es gar keine tras gibt.
    Und dann kannst Du die Texte auch direkt in die tp2 schreiben. Jedes Item einzeln ist auch richtig, alle nachfolgenden Änderungen werden auf das zuvor kopierte Item gewirkt, und sie sollen ja alle unterschiedliche Beschreibungen haben. (Wenn mehrere Items dieselbe Beschreibung haben sollen, könnte man hier vereinfachen). Also:

    COPY ~ItemTweak/items/belt06.ITM~ ~override/belt06.ITM~ //Gürtel der Hügelriesenstärke
    SAY IDENTIFIED_DESC ~Deine neue Beschreibung für den Gürtel der Hügelriesenstärke~

    COPY ~ItemTweak/items/belt07.ITM~ ~override/belt07.ITM~ //Gürtel der Steinriesenstärke
    SAY IDENTIFIED_DESC ~Deine neue Beschreibung für den Gürtel der Steinriesenstärke~

    COPY ~ItemTweak/items/belt08.ITM~ ~override/belt08.ITM~ //Gürtel der Frostriesenstärke
    SAY IDENTIFIED_DESC ~Deine neue Beschreibung für den Gürtel der Frostriesenstärke~
     
  5. Dachrisma

    Dachrisma Senior Member

    Registriert seit:
    März 2011
    Beiträge:
    171
    Zustimmungen:
    0
    So, ausgeschlafen und weiter dran rumgewurschtelt. Das mit dem Tutorial ist eine gute Idee. Hier waren zwar mal ein paar verlinkt, aber inzwischen bekommt man ja nur noch das Schild Einbahnstraße wenn man sie aufrufen will. Schon alleine deshalb gebührt Dir großer Dank, daß Du Dich meiner erbarmst.

    Ich habe mich für ein Zwitter-Methode entschieden. Und zwar habe ich es so gemacht, daß ich selbst EE erst mal nicht einbinde, aber das Setup so aufbaue, daß man es erweitern kann, wenn ganz entgegen meinen Erwartungen dann doch noch Übersetzungen oder EE hinzu kommt.

    Ich habe also das ganze Kontrukt in den Ordner ItemTweak gepackt, darin finden sich momentan zwei Unterordner. Einer davon heißt itm, da sind Einfach die Items drin, der andere tra, dort ist noch ein weiterer Unterordner, den ich Deutsch genannt habe. Da könnten dann eben weiter Ordner mit EE und Übersetzungen noch rein. Im Hauptordner sind die Setup-ItemTweak.exe (übrigens hatte ich auf Westley Weimers Seite immer nur eine ältere Version von WEIDU gefunden und hielt sie für die aktuellste) und die Setup-ItemTweak.TP2.

    In der Setup-ItemTweak.TP2 steht im Moment also folgendes:
    BACKUP ~ItemTweak/Backup~
    AUTHOR ~Dachrisma~
    VERSION ~1~

    ALWAYS //alles in diesem Block wird immer vor dem eigentlichen Modinhalt durchgeführt

    LAF HANDLE_CHARSETS
    INT_VAR
    infer_charset = 1
    STR_VAR
    tra_path = EVAL ~ItemTweak/tra~ //hier liegt die inconv
    reload_array = fl#reload
    END

    END //Ende vom ALWAYS-Block

    AUTO_TRA ~ItemTweak/tra/Deutsch/setup.tra~ // Ordner mit den Textzeilen

    BEGIN @0 /* Item Tweak */ //Zugehörigen Textzeilen in der ItemTweak.tra

    COPY ~ItemTweak/items/amul16.ITM~ ~override/amul16.ITM~ //Amulett des Metazaubereinflusses
    SAY IDENTIFIED_DESC @01 //Neue Beschreibung

    COPY ~ItemTweak/items/belt06.ITM~ ~override/belt06.ITM~ //Gürtel der Hügelriesenstärke
    SAY IDENTIFIED_DESC @02 //Neue Beschreibung

    COPY ~ItemTweak/items/belt07.ITM~ ~override/belt07.ITM~ //Gürtel der Steinriesenstärke
    SAY IDENTIFIED_DESC @03 //Neue Beschreibung

    COPY ~ItemTweak/items/belt08.ITM~ ~override/belt08.ITM~ //Gürtel der Frostriesenstärke
    SAY IDENTIFIED_DESC @04 //Neue Beschreibung

    COPY ~ItemTweak/items/belt09.ITM~ ~override/belt09.ITM~ //Gürtel der Zähigkeit
    SAY IDENTIFIED_DESC @05 //Neue Beschreibung

    COPY ~ItemTweak/items/belt11.ITM~ ~override/belt11.ITM~ //Gürtel der Feuerriesenstärke
    SAY IDENTIFIED_DESC @06 //Neue Beschreibung

    COPY ~ItemTweak/items/brac06.ITM~ ~override/brac06.ITM~ //Ogerkrafthandschuhe
    SAY IDENTIFIED_DESC @07 //Neue Beschreibung

    COPY ~ItemTweak/items/brac07.ITM~ ~override/brac07.ITM~ //Geschicklichkeitshandschuhe
    SAY IDENTIFIED_DESC @08 //Neue Beschreibung

    COPY ~ItemTweak/items/brac09.ITM~ ~override/brac09.ITM~ //Handschuhe der Waffenfertigkeit
    SAY IDENTIFIED_DESC @09 //Neue Beschreibung

    COPY ~ItemTweak/items/brac20.ITM~ ~override/brac20.ITM~ //Heilungshandschuhe
    SAY IDENTIFIED_DESC @10 //Neue Beschreibung

    Dazu habe ich aber noch eine Frage, und zwar hast Du mit ja iconv auch extra verlinkt. Was ist das, wie nutzt man es, wozu braucht man es? Das verstehe ich an der ganzen Geschichte überhaupt nicht. Ich verstehe nur daß es irgendwas mit EE zu tun haben muss. Aber es ist ja für so eine kleine Modifikation recht groß. braucht man dann den ganzen Ordner?
     
    Zuletzt bearbeitet: 27. Mai 2018
  6. Dachrisma

    Dachrisma Senior Member

    Registriert seit:
    März 2011
    Beiträge:
    171
    Zustimmungen:
    0
    Zum Zweiten habe ich im Ordner "Deutsch" folgende Datei:

    @0 = ~Installation von Item Tweak~

    @01 = ~Der Steigerer

    Das Amulett des Metazaubereinflusses ist für seine Fähigkeit bekannt, das Wirken von Zaubern zu verbessern, weshalb es bei Magiern aller Art begehrt ist. Es wurde von Elairdrin Mellwith geschaffen, der in den Sternbergen lebte. Der Grund für die Herstellung eines solchen Amuletts lag in seiner besonderen Vorliebe für die Verführung des weiblichen Geschlechts, und für diese Zwecke war der Steigerer bestens geeignet. Später wurde ihm das Amulett von einem Magier mit düstereren Absichten abgenommen. Darüber, wie die Übergabe erfolgte, gehen die Überlieferungen jedoch weit auseinander.

    EIGENSCHAFTEN:

    Zauber: +1 (Grad 2-4)

    Kann nur verwendet werden von:
    - Barden
    - Magiern~
    @02 = ~Der unscheinbare Gürtel macht seinen Träger so stark wie einen Hügelriesen, ohne jedoch seine Größe zu verändern. Schon so manch selbstsicherer Krieger wurde davon überrascht, dass ein deutlich kleinerer Gegner mehr Kraft hatte als er. In vielen Fällen war ein derartiger Gürtel dafür verantwortlich.

    EIGENSCHAFTEN:

    Stärke: +1
    Gewicht: 2~
    @03 = ~Als kleiner Junge wurde Stewart Elttil von Kobolden gefangen genommen, die seine Familie töteten. Als sie mit dem Jungen zu ihrer Lagerstätte unterwegs waren, stießen die Kobolde auf eine Steinriesenfamilie. Die Riesen retteten Stewart und zogen ihn als einen der ihren auf. Bald wurde offensichtlich, dass der Junge bei den Steinwurf-Wettbewerben der Familie einfach keine Chance hatte, egal, wie sehr er sich abmühte. Der Steinriesenvater erhielt diesen Gürtel von einem örtlichen Magier im Rahmen eines Tauschhandels. Auf diesem Weg wurde Stewart so stark wie seine Brüder und Schwestern. Stewart starb eines verfrühten Todes, und der Gürtel wurde gestohlen.

    EIGENSCHAFTEN:

    Stärke: +2
    Gewicht: 2~
    @04 = ~Der Gürtel besteht aus dem gewebten Haar vom Bart eines Frostriesen. Der Träger des Gürtels wird dadurch ebenso stark wie ein Frostriese.

    EIGENSCHAFTEN:

    Stärke: +3
    Gewicht: 2~
    @05 = ~Dieser Gürtel erhöht die Konstitution seines Trägers. König Violos setzte ihn bei seinem Feldzug gegen die Moortrolle ein. Der letzte Winter hatte Violos übel mitgespielt, und er war nur noch ein Schatten seiner selbst. Der Gürtel erkaufte ihm etliche zusätzliche Lebensjahre und erneuerte das Vertrauen der Männer in ihren König.

    EIGENSCHAFTEN:

    Konstitution: +2
    Gewicht: 2~
    @06 = ~Dieser Gürtel besteht aus dem verwobenen Haar eines Feuerriesen. Er erhöht die Stärke seines Trägers beträchtlich.

    EIGENSCHAFTEN:

    Stärke: +4
    Gewicht: 2~
    @07 = ~Hände von Takkok

    Die Hände von Takkok sind genau das, was der Name besagt, nämlich seine Hände. Er verlor sie, als er einen fremden Mann beim Überqueren des Grats der Welt angriff. Es stellte sich heraus, dass der geheimnisvolle Mann ein Magier mit unglaublicher Kraft war. Er verwendete Takkoks Hände, um dieses Paar Handschuhe aus Ogerleder zu erschaffen.

    EIGENSCHAFTEN:

    Stärke: +1
    Gewicht: 2~
    @08 = ~Die Kämpferhände

    Dieses Paar Handschuhe wurde wahrscheinlich in Kara-Tur entworfen und sollte Meistern der Kampfeskunst als Hilfsmittel dienen. Legenden besagen, dass diese Meister aus dem Fernen Osten die Handschuhe auf ihren Reisen mit sich führten, aber nähere Einzelheiten dazu sind nur bruchstückhaft.

    EIGENSCHAFTEN:

    Geschicklichkeit: +2
    Gewicht: 2~
    @09 = ~~
    @10 = ~~

    Das ist natürlich noch nicht vollständig. Und jetzt schon mehr als ich dachte, da alleine durch die abänderung des Gürtels der "XXX"-Stärke ja schon vier Gürtel betroffen sind, aber egal, ich zieh das so durch.

    Ach ja, ganz wichtig. WENN ich das als Mod raus bringe, dann möchte ich etwas vermeiden, was mich selbst kolossal ärgert. Nämlich daß man nur alles davon nehmen kann oder gar nichts. Das möchte ich auf jeden Fall dem Spieler selbst überlassen. Das ist nämlich der Grund warum ich Jarls Modifikationen immer außen vor gelassen habe. Ich wollte gerne Teile davon haben, aber nicht alles.
     
  7. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    4.492
    Zustimmungen:
    30
    Sieht gut aus soweit! Die inconv mit der exe im Ordner ist ein freies Umwandlungstool, um Text in andere Formate zu ändern. Das hat sich als Standard in der IE-Modding Szene so durchgesetzt. Wenn der oben verlinkte iconv Ordner in Deinem "tra"-Ordner vorliegt, dann wird das Tool von der Funktion "HANDLE_CHARSETS" genutzt, um die Texte in utf-8 umzuwandeln, wenn ein EE-Spiel vorliegt. Indem Du also das LAF HANDLE_CHARSETS im ALWAYS-Block drin hast und den Ordner iconv vorlegst plus die Texte in einer extra Datei hast, ist Deine Mod also prinzipiell auch bereits für die EE kompatibel.

    Um jeden Tweak einzeln auswählbar zu machen (gute Idee, finde ich), musst Du es in der tp2 entsprechend angeben. Da Deine Mod keine Basiskomponente hat, auf die alle anderen aufbauen, würde das heißen, dass das bisherige BEGIN @0 /* Item Tweak */ als Haupttitel wegfallen würde. Stattdessen bekäme jeder Tweak bzw. zusammenhängende Tweaks einen eigenen Titel.
    Da ich gerade bei der Pflege des BWS merke, wie wichtig es ist, dass Komponentennummern sich nicht bei Modupdates ändern, würde ich hier gleich das Hinzufügen eines DESIGNATED vorschlagen, das feste Komponentennummern vergibt, auch wenn man andere dazwischenschiebt bzw. löscht. Die von mir für die Komponenten vergebenen Namen sind wenig einfallsreich, da könnte man evtl. noch kurz mit angeben, was der Tweak eigentlich macht.
    Auch würde ich, auch wenn Du bisher nur einen Sprachordner hast, gleich die Struktur für weitere Sprachen dazufügen (LANGUAGE). Dann sähe die tp2 so aus:

    Und die dazugehörige setup.tra:
     
    Zuletzt bearbeitet: 15. Juni 2018
  8. Dachrisma

    Dachrisma Senior Member

    Registriert seit:
    März 2011
    Beiträge:
    171
    Zustimmungen:
    0
    Okay, ich habe es ein wenig umgeschmissen, damit es besser strukturiert ist. Mein Frage dazu lautet ganz schlicht: Funktioniert das so?
    Dann bleibt natürlich das Problem, daß es teilweise WIRKLICH nicht leicht ist, das richtige Maß/Balancing zu finden, speziell bei Gegenständen, die in BG1 UND BG2 auftauchen. Also, das ist die Vorarbeit, das MUSS nicht so bleiben, das ist ein reines Gedankenspiel... Vorschläge werden gerne angenommen was wie verändert werden kann, zu stark wird, welche Gegenstände man mit rein packen könnte. Ich bin da ganz offen.

     
  9. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    4.492
    Zustimmungen:
    30
    Ich sehe gerade, dass in meinem letzten Beispiel eine Sache verschwunden war: das Wieder-Laden der konvertierten tra - ohne das arbeitet er mit dem ANSI-Text, den er als erstes eingelesen hatte:


    Ansonsten: die letzten Fehler zeigen sich erst, wenn man es installiert... da braucht es selbst bei Code, in dem ich nichts mehr gesehen habe, manchmal noch zwei oder drei (oder mehr) Fehlermeldungen, bis er installiert.
     
  10. Dachrisma

    Dachrisma Senior Member

    Registriert seit:
    März 2011
    Beiträge:
    171
    Zustimmungen:
    0
    Danke, Jastey!
    Habe ich direkt ergänzt (mit nem eingeklemmten Nerv im Rücken habe ich einfach ZU VIEL ZEIT viel Unsinn zu machen!) :D

    Ich habe grad selbst auch noch was gesehen, nämlich daß diese Zeile gefehlt hat:

    @107 = ~Tweak fuer den Ring der Tierfreundschaft~

    Davon ab, ich mach das jetzt erst mal so wie bisher, mir die Gegenstände ansehen, frei nach Schnauze das machen was mir zuerst einfällt. Die Gegenstände sind erst mal entsprechend der neuen Beschreibung, bis auf weiteres. Das erste Mal, daß ich in einem Spiel den Ring der Tierfreundschaft nicht verächtlich in die Tonne werfen will, aber man könnte auch einfach nur Tiere beschwören drauf packen, das gibt es ja in verschiedenen Stufen... *grübel*
     
  11. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    4.492
    Zustimmungen:
    30
    Autsch. Gute Besserung!!
     
  12. Dachrisma

    Dachrisma Senior Member

    Registriert seit:
    März 2011
    Beiträge:
    171
    Zustimmungen:
    0
    Ich hatte grad eine SO WAS von GEILE Idee für einen Diebesgegenstand. Habe ja getestet, ob man Tiergeist beschwören auf den Druidenring bekommt, was gelungen ist. Und grade dachte ich mir, daß es nirgends einen Werzeuggürtel für Diebe gibt, mit dem man zum Beispiel 1 - 3 mal täglich Fallen basteln kann. Also, sozusagen ein kleiner "Werzeuggürtel für den Schurken"
     
  13. Dachrisma

    Dachrisma Senior Member

    Registriert seit:
    März 2011
    Beiträge:
    171
    Zustimmungen:
    0
    Ich habe da mal eine Frage. Ich habe verschiedene Scripte gesehen, in denen Gegenstände einem Geschäft hinzu gefügt werden. Aber warum sind die so unterschiedlich?
    Es geht um dieses hier (was ganz einfach gehalten ist):

    COPY_EXISTING ~highhedg.sto~ ~override~
    ADD_STORE_ITEM ~ADISEASE~ #0 #0 #0 ~IDENTIFIED~ #10


    Im Vergleich mit dieser Version (in der genau definiert wird an welcher Stelle das Item in dem Geschäft auftaucht):

    // High Hedge store

    ACTION_FOR_EACH ~file~ IN
    ~HIGHHEDG~ // High Hedge store (BGT)
    ~_IGHHEDG~ // High Hedge store (Tutu)
    BEGIN
    ACTION_IF FILE_EXISTS_IN_GAME ~%file%.sto~ BEGIN
    COPY_EXISTING ~%file%.sto~ override
    PATCH_IF (%SOURCE_SIZE% > 0x9b) BEGIN
    // ===============================================================================
    ADD_STORE_ITEM ~RR#HEL04~ BEFORE ~MISC73~ #0 #0 #0 ~IDENTIFIED~ #1 // Adds 1x Fragment of Enlightenment
    ADD_STORE_ITEM ~RR#HEL05~ AFTER ~RR#HEL04~ #0 #0 #0 ~IDENTIFIED~ #1 // Adds 1x Deep Red Ioun Stone
    // ===============================================================================
    END
    BUT_ONLY
    END
    END


    Also, warum definiert man so genau wo der Gegenstand hinkommt? Hat es was mit Kompatibilität zu tun? Und kann man es nicht immer so einfach halten wie im ersten Script? Ich weiß daß das zweite Script mit VIELEN BG-Varianten funktioniert, das könnte erklären warum es so aufwendig ist, sonst sehe ich aber keinen Grund für so was.
     
  14. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    4.492
    Zustimmungen:
    30
    Das Abdecken mehrerer Spiele im zweiten Beispiel könnte man auch anders erreichen, ist halt eine Lösung, die auch funktioniert.

    Den genauen Platz, dan den Dein Item in den Store eingefügt werden soll, musst Du nicht angeben, dann landet es glaube ich ganz oben. Wenn Du aber z.B. eine weitere Schriftrolle einfügen möchtest, und der Laden hat schon andere, aber eben weiter unten, dann hast Du mit der Angabe, hinter welches Item Dein Gegenstand im Laden auftauchen soll, die Möglichkeit, Deine Schriftrolle zu den anderen dazuzusortieren.
     
  15. Dachrisma

    Dachrisma Senior Member

    Registriert seit:
    März 2011
    Beiträge:
    171
    Zustimmungen:
    0
    Vielen Dank, dann tendiere ich defintiv zu Variante 1. Je einfacher etwas ist, desto weniger Fehleranfällig.
     
  16. Dachrisma

    Dachrisma Senior Member

    Registriert seit:
    März 2011
    Beiträge:
    171
    Zustimmungen:
    0
    Wie setzt man Globale? Ich nehme mal eben ein Beispiel aus einem Script heraus:

    IF ~Global("WhatDo","LOCALS",0)
    GlobalLT("Chapter","GLOBAL",8)~ THEN REPLY @3002
    DO ~SetGlobal("WhatDo","LOCALS",1)~ GOTO What

    Woher weiß das Spiel in diesem Fall was die Globale "WhatDo" überhaupt ist?
    Ich weiß was es machen soll, aber nicht wie man es definiert und ins Spiel einbindet.

    Mein persönliches Beispiel:

    IF
    GlobalLT("Chapter","GLOBAL",8)
    Global("MakeFafnir","MYAREA",0)
    THEN
    RESPONSE #100
    CreateCreature("Fafnir",[1850.670],0)
    SetGlobal("MakeFafnir","MYAREA",1)
    END

    Wie definiert man hier "MakeFafnir" (der Charakter, den ich einbinden will heißt Fafnir), daß Fafnir etwas tut und WO (MYAREA) er aufzutauchen hat? Beziehungsweise, wie bringt man das Spiel dazu das zu verstehen?
     
  17. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    4.492
    Zustimmungen:
    30
    Wenn der Skriptblock, den Du gepostet hast, in einem Areaskript steht, dann wird er ausgeführt, wenn die Trigger hinter dem "IF" wahr sind. Und wahr sind sie in Deinem Beispiel, wenn die Kapitelnummer kleiner als 8 ist und die Variable "MakeFafnir" in der Area noch nicht gesetzt wurde also noch "0" ist - was jede Variable erstmal ist, wenn es sie noch nicht gibt.
    Dann wird die cre-Datei "Fafnir.cre" auf den Koordinaten x=1850, y=670 mit der Ausrichtung "0" (Blickrichtung nach Süden) in dieser Area erzeugt, und die Variable "MakeFafnir" wird auf "1" gesetzt, so dass das ganze nur einmal geschieht, denn häufiger soll Dein Charakter ja auch nicht spawnen.
    Solange also die Variable noch auf "0" ist und es eine "Fafnir.cre" gibt, steht da alles, was Du brauchst, um über das Areaskript Deinen Charakter entstehen zu lassen.

    "MYAREA" heißt, dass die Variable nur in diesem Gebiet existiert. (Statt "MYAREA" könnte man auch direkt den Arecode eingeben, z.B. "AR0602" für Irenicus Dungeon Startlevel)
    "LOCALS" ist eine Variable, die nur für einen Charakter existiert (also z.B. bei Anomen gesetzt kann man sie nicht über Keldorns Skript abrufen).
    "GLOBAL" ist eine Variable, die im ganzen Spiel und in allen Kreatur-Skripten existiert und verwendet werden kann.

    Ein Hinweis: Falls Du Mods schreibst, die Du mit der Öffentlichkeit teilen möchtest, dann besorge Dir ein persönliches Präfix. Die Liste dazu ist hier (hinter der Werbung für Black Geysir). Das lässt nicht nur Deine Variablen und Dateien leichter erkennen und verhindert, dass Du originale Spielressourcen überschreibst, sondern macht auch die Kompatibilität vieler Mods erst möglich. (Und falls Du Dir jetzt denkst: Naja, aber wenn alle anderen ein Präfix haben, dann brauche ich ja keins - die Idee hatten andere leider auch schon.)
     
  18. Taimon

    Taimon Senior Member

    Registriert seit:
    Nov. 2001
    Beiträge:
    1.177
    Zustimmungen:
    0
    Vielleicht noch kurz ergänzend:
    Man muss diese Variablen nicht deklarieren. Die Skripting-Engine merkt sich einfach nur, welcher Integer-Wert für die jeweilige Variable zuletzt gesetzt wurde.

    Sollte eine Variable noch nie geschrieben worden sein, dann hat sie automatisch den Wert 0.

    Eine Überprüfung auf den Wert 0 würde also sowohl den Fall abdecken, dass jemand die Variable explizit auf 0 gesetzt hat, als auch den Fall, dass noch niemand die Variable gesetzt hat.
    (So zumindest mein Stand aus BG2:ToB. Ich hoffe, das hat sich mit den neuen Versionen nicht geändert.)
     
  19. Dachrisma

    Dachrisma Senior Member

    Registriert seit:
    März 2011
    Beiträge:
    171
    Zustimmungen:
    0
    Ich arbeite dran, das ist ja das blöde. Deshalb liegt ein bißchen was auf Eis, denn ich möchte daß es sich zusammen gut spielt, da kommt dann die Stelle, an der ich mir denke, daß diese Modifikation das doch auch abdeckt oder es schöner macht. Ich fühle mich derzeit wie ein Dreijähriger mit nem Eimer Gummibärchen, der nicht weiß welche Farbe er zuerst essen soll. Danke noch mal, es tauchen bestimmt noch einige Fragen auf.
     
  20. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    4.492
    Zustimmungen:
    30
    Habe meinen Post ganz oben korrigiert: wenn die iconv.exe nicht bei den Sprachordnern liegt sondern z.B. in einem Extraordner "tools", dann wäre der Code für die HANDLE_CHARSETS:

    LAF HANDLE_CHARSETS
    INT_VAR
    infer_charset = 1
    STR_VAR
    tra_path = EVAL ~ItemTweak/tra~ //hier liegen die Ordner für die verschiedenen Sprachen
    noconvert_array = fl#noconvert
    reload_array = fl#reload
    iconv_path = ~ItemTweak/tools/iconv~ //hier liegt die inconv.exe
    END
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden