Jump to content

Traifying a Mod, Part 1: Adrian and Aran Trade Wits and Words


cmorgan

Recommended Posts

Rhaella and cmorgan

 

http://www.shsforums...rum/627-adrian/

/* SoA Banters: Aran<>Adrian: Rhaella and cmorgan : Theory vs Practice */
CHAIN IF ~Global("c-aran1adrian","GLOBAL",0) InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID) InParty("rh#Adrian") InMyArea("rh#Adrian") !StateCheck("rh#Adrian",CD_STATE_NOTVALID) CombatCounter(0) !See([ENEMY])~
THEN C-ARANB c-aran1adriantalk
~[ARAN] Adrian... look, can you be tellin' me if this rune be silent or sounded? I be havin' naught in th' way o' luck trickin' it into gatherin' power. Mayhap I missed somethin'.~
DO ~SetGlobal("c-aran1adrian","GLOBAL",1)~
== BRH#ADR ~[ADRIAN] What? You-- dammit, Aran, give that to me before you kill yourself. Whatever hedge magician tried to teach you theory did a spectacularly poor job of it.~
== C-ARANB IF ~!Class("C-ARAN",MAGE_ALL)~ THEN ~[ARAN] Now, that be a harsh thing to say. But to tell th' truth, you be right. I never did understand most o' th' messin' about wi' th' Weave you spellslingers do. It be hard enough to coax even a bit o' th' magic into th' template.~
== C-ARANB IF ~Class("C-ARAN",MAGE_ALL)~ THEN ~[ARAN] Now, that be a harsh thing to say. But to tell th' truth, you be right. I don't rightly have much in th' way o' formal study, so it be more in th' way o' copyin' th' form, an' seein' if it be close enough to do th' job.~
== BRH#ADR ~[ADRIAN] Nine Hells. In other words, my previous assessment was, if anything, all too generous. You know, usually I'd be happy to give you enough rope to hang yourself, but you're liable to string the rest of us up alongside you.~
== C-ARANB ~[ARAN] Well, then, give a lad a hand, eh? I do right fine on th' construction end. It just be a mite harder when you don't rightly know what the end product be, other than in a general way.~
== BRH#ADR ~[ADRIAN] You'd best be a quick study, Whitehand. I've never exactly been known for my patience.~
== C-ARANB ~[ARAN] Just so long as we be studyin', an' have none o' that "fetch me a pail o' water an' then wash th' dishes" apprenticeship. But I'll do right by you, I will... you teach, I study, an' I prepare any scrolls you want me to as payment in kind.~
== BRH#ADR ~[ADRIAN] Mmm, that certainly should be acceptable. If I had thought all I could get out of you was a servant's chores, I wouldn't have offered at all.~
EXIT

/* SoA Banters: Adrian<>Aran: Rhaella and cmorgan : Curiosity */
CHAIN IF ~Global("c-adrian2aran","GLOBAL",0) InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID) InParty("c-aran") InMyArea("c-aran") !StateCheck("c-aran",CD_STATE_NOTVALID) CombatCounter(0) !See([ENEMY])~
THEN BRH#ADR c-adrian2arantalk
~[ADRIAN] Hmm, that should just about do it--~
DO ~SetGlobal("c-adrian1aran","GLOBAL",1)~
== C-ARANB ~[ARAN] Hells! Ask a lad next time! You blighted well know that set o' inks be worth more than a little. An' it took two weeks to get th' right proportion o' dragon bone dust an' squid ichor. Now it be a complete loss.~
== BRH#ADR ~[ADRIAN] Oh, enough with the histrionics, Whitehand. We don't exactly lack for money. In any case, it's not as if I used up all of it. Not quite.~
== C-ARANB IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ARAN] Not quite? Blighted well close enough. You spent enough time on th' road wi' those Zhentarim bastards what to know a bit o' private space means. Even they have some measure o' respect, eh?~
== BRH#ADR IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ADRIAN] Oh, yes... respect of power, respect of fear, and you're a naive fool to believe otherwise.~
== C-ARANB IF ~!Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ARAN] Not quite? Blighted well close enough. An' here I thought you had time on th' road, an' understood I only have one little space what to call my own. I'd have given you half, you know.~
== BRH#ADR IF ~!Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ADRIAN] My own time on the road, is it? Frankly, you're fortunate that my own delightful caravan experience hasn't affected me more.~
== BRH#ADR ~[ADRIAN] Now, if you're quite finished trying to manipulate me into giving a damn... I shouldn't need more of your blasted ink anyway. I think I've figured out the technique now.~
== C-ARANB ~[ARAN] Hells, man. Where I come from, th' folks what travel wi' you watch your back. An' share an' share alike, on account o' there be less than enough to go around. Who died an' made you Cyric, anyways?~
== BRH#ADR ~[ADRIAN] Aran. You've about ten seconds before this gets very ugly, very quickly.~
== C-ARANB ~[ARAN] What in th' nine hells did I say? I were th' one bein' wronged!~
== BRH#ADR ~[ADRIAN] Your string of mindless blasphemies are going to get you in trouble someday, you fool. How they haven't already, I'll never know.~
EXIT

/* SoA Banters: Adrian<>Aran: Rhaella and cmorgan : Curiosity */
CHAIN IF ~Global("c-adrian2aran","GLOBAL",0) InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID) InParty("c-aran") InMyArea("c-aran") !StateCheck("c-aran",CD_STATE_NOTVALID) CombatCounter(0) !See([ENEMY])~
THEN BRH#ADR c-adrian2arantalk
~[ADRIAN] Hmm, that should just about do it--~
DO ~SetGlobal("c-adrian1aran","GLOBAL",1)~
== C-ARANB ~[ARAN] Hells! Ask a lad next time! You blighted well know that set o' inks be worth more than a little. An' it took two weeks to get th' right proportion o' dragon bone dust an' squid ichor. Now it be a complete loss.~
== BRH#ADR ~[ADRIAN] Oh, enough with the histrionics, Whitehand. We don't exactly lack for money. In any case, it's not as if I used up all of it. Not quite.~
== C-ARANB IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ARAN] Not quite? Blighted well close enough. You spent enough time on th' road wi' those Zhentarim bastards what to know a bit o' private space means. Even they have some measure o' respect, eh?~
== BRH#ADR IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ADRIAN] Oh, yes... respect of power, respect of fear, and you're a naive fool to believe otherwise.~
== C-ARANB IF ~!Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ARAN] Not quite? Blighted well close enough. An' here I thought you had time on th' road, an' understood I only have one little space what to call my own. I'd have given you half, you know.~
== BRH#ADR IF ~!Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ADRIAN] My own time on the road, is it? Frankly, you're fortunate that my own delightful caravan experience hasn't affected me more.~
== BRH#ADR ~[ADRIAN] Now, if you're quite finished trying to manipulate me into giving a damn... I shouldn't need more of your blasted ink anyway. I think I've figured out the technique now.~
== C-ARANB ~[ARAN] Hells, man. Where I come from, th' folks what travel wi' you watch your back. An' share an' share alike, on account o' there be less than enough to go around. Who died an' made you Cyric, anyways?~
== BRH#ADR ~[ADRIAN] Aran. You've about ten seconds before this gets very ugly, very quickly.~
== C-ARANB ~[ARAN] What in th' nine hells did I say? I were th' one bein' wronged!~
== BRH#ADR ~[ADRIAN] Your string of mindless blasphemies are going to get you in trouble someday, you fool. How they haven't already, I'll never know.~
EXIT

/* SoA Banters: Adrian<>Aran: Rhaella and cmorgan : half a loaf is better than none */
CHAIN IF ~Global("c-adrian1aran","GLOBAL",0)
InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID)
InParty("c-aran") InMyArea("c-aran") !StateCheck("c-aran",CD_STATE_NOTVALID)
CombatCounter(0) !See([ENEMY])~
THEN BRH#ADR c-adrian1arantalk
~[ADRIAN] You seem enthusiastic to<DAYNIGHT>, Whitehand. I take it even this nonsense is more interesting than the line of work you're used to?~
DO ~SetGlobal("c-adrian1aran","GLOBAL",1)~
== C-ARANB ~[ARAN] Blighted hells, an' that be th' truth. An excitin' day on caravan work be th' day th' lead wagon gets stuck in some mud. An' mercenary work be worse.~
== BRH#ADR ~[ADRIAN] Heh. Either you have a rather singular definition of excitement, or the recent banditry in the area hasn't been nearly as bad as I'd been lead to believe.~
== C-ARANB ~[ARAN] Now, I spent most o' th' time on caravan work near Calimport, I did. That were actually right quiet, assumin' th' correct people were bribed an' th' route were short. Coin rules just about everythin' down that way. Th' Sword Coast, well... when a platoon o' 'Fist in full plate drops by, bandits tend to run. Or die. Or scream. Mayhap all three at once. But you must know what guard duty be like, an' most o' th' time it were standin' around in plate tryin' not to itch.~
== BRH#ADR ~[ADRIAN] Mmm, well. Fortunately, I can't comment one way or the other on the armor. Even my people aren't quite stupid enough to try to put a mage in mail, though they come dangerously close at times.~
== C-ARANB IF ~!Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ARAN] Put a mage in chainmail? What kind o' insane folk were you workin' with?~
== BRH#ADR IF ~!Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ADRIAN] The type that will try the same damn thing a dozen times before realizing that it doesn't work... though perhaps that's the rule, rather than the exception. Well, no matter. We've better things to do than stand here and chat anyway.~
== C-ARANB IF ~!Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ARAN] Aye. Though sometime soon I will have to stand you a round o' drink an' here more about those what you were workin' with. They sound like th' same people what run th' 'Fist.~
== C-ARANB IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ARAN] Never did understand why you worked for them Banites, nohow. Th' mercenary view o' them be spend your coin today, on account o' there most probably won't be naught in th' way o' a tomorrow. Or if there be, it might just be your skeleton what be servin', eh?~
== BRH#ADR IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ADRIAN] Yes, because capriciously murdering your followers is the perfect way to drum up support. Though given current trends, perhaps I shouldn't expect any better.~
== C-ARANB IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ARAN] Well, hells... truth be told, there were plenty o' 'Fist what actually believed th' same, Not murderin', exactly, but not liftin' no finger to help when someone went down. It brings on somethin' they called "ghost payroll", where th' Regimental muster would stay th' same even when we were down by ten, an' a few pockets got a bit richer. Never served in one o' them companies, but I heard it were done.~
== BRH#ADR IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ADRIAN] That wouldn't surprise me at all. As far as I've been able to tell, the largest difference between Heartlands folk and those back home is capacity for self-delusion. We're usually more honest about what we want.~
== C-ARANB IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN ~[ARAN] Mayhap you be right. But some o' us are a fair bit more comfortable in our self-delusion. Helps a lad sleep at night, eh?~
EXIT

/* SoA Banters: Aran<>Adrian: Rhaella and cmorgan : Cyric */
CHAIN IF ~Global("c-aran3adrian","GLOBAL",0) InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID) InParty("rh#Adrian") InMyArea("rh#Adrian") !StateCheck("rh#Adrian",CD_STATE_NOTVALID) Global("rh#AdrianZhent","GLOBAL",1) CombatCounter(0) !See([ENEMY])~
THEN C-ARANB c-aran3adriantalk
~[ARAN] Mayhap I owe you an apology.~
DO ~SetGlobal("c-aran3adrian","GLOBAL",1)~
== BRH#ADR ~[ADRIAN] More than one, I should think, though I hope you don't expect me to guess.~
== C-ARANB ~[ARAN] I spoke that wrong, I did. I don't owe you anythin' at all, but I want to tell you I be sorry I put both feet in my mouth on th' whole... well... th' Mad God reference. It were my mouth runnin' when my brain be a bit behind.~
== BRH#ADR ~[ADRIAN] Ahh. I don't normally fly into a rage at the mere mention of his name, you know. Though I suppose I can't blame you for not wanting to take that chance again.~
== C-ARANB ~[ARAN] Well, I don't rightly know all th' details, but I should have known that would have sounded like I were challengin' you. If I were to be doin' that, it would be over a friendly game o' who can drink th' most in an hour an' still walk to th' bar.~
== BRH#ADR ~[ADRIAN] As far as drinking contests go, that's remarkably dull of you. Not that I care much for the genre at all; a game where nobody really loses doesn't have quite the same flare.~
EXIT

Link to comment

OK, so Rhaella and I wrote these up last year, but I have been wandering the vast wastelands or Real Life and am way behind integrating some of the content and ideas already present. Sine BGII:EE is about to ship, and I have every intention of following suit within a few days, here is one of the last stages of mod building...

 

TRAIFICATION.

 

OK. Usually, you are writing a mod because you want other folks to enjoy its content. Problem is, the audience for BGII (or BGT, BGII:EE, BG:EE, BG, etc. etc.) is not limited to just English speakers, or even Americun speakers ("American" being reserved for Oberlin, Middlebury, or Harvard English majors, and "Queen's English" being reserved for graduates of Oxford (Balliol College) or its lessor cousin at that silly Cambridge place (Trinity College) ). In fact, all just-for-fun academic mudslinging aside, there is a tremendously rich number of highly educated people from many different countries speaking many different languages, who all happen to like Baldur's Gate, in some incarnation. And they have translated many of the mods the community has created over the years to most of them.

 

One way (the original way) of doing this is to simply "hard-code your .d files" in the new language. This means hand over your code, written above, and let the translator rewrite your lines into Swahili, Esperanto, or perhaps just French. This has an advantage, in that your work is done, and you can package up your mod as

 

aranw_english_v1.rar

aranw_latin_v1.rar

aranw_klingon_v1.rar

aranw_binary_v1.rar

 

...except that is truly actually a *nightmare*. Not an advantage at all. Actively the *opposite* of advantage.

 

Think about it - one code change, fix, or whatnot, and you will have multiple versions to deal with. Plus, lots of versions to update. And that doesn't even *BEGIN* to cover the horribleness that is typos in a language you don't speak.

 

 

Luckily for us, WeiDU comes in to save the day. Since the only thing that will change between the language versions and the originals are the contents of the text strings to be added, WeiDU can automate the process of taking all those strings like

 

~[ADRIAN] More than one, I should think, though I hope you don't expect me to guess.~

 

and turning them into a reference number:

 

@2

 

 

Link to comment

String References and Your Mod

 

i.e. games work by presenting text strings from a .tlk file to the game interface. When a text string is already there in the game, it has a "strref" , or "string reference number" that the game engine uses to display what the user sees. For example, when you have the key to free Aerie from her illusionary ogre state in BGII's Circus Tent, she says

 

2199 ~You... you have the key! Or, rather... the sword! Please... please give it to me and I can be rid of this illusionary form at last!~

 

That number, #2199, is the string referent in SoA's dialog.tlk, and can be found in any of the standard game editors. There are lots of these already existing "strref"s, and for the most part all the incarnations of BG/BG2/ToB try to not mess with them as much as possible (though there are various Game Text Updates and the original Baldurdash by Kevin Dorner that try to clean up errors and mistypings and spellings and whatnot, which is a topic for a different discussion. Suffice it to say that if you want to be sure your words and only your words are the ones seen, add your own strings. Which is what we are about to do using "traify".)

 

Now, you as a modder can always use any of the existing strings. If for some reason I wanted to use that string in the conversation between Adrian and Aran, I'd have written the string reference directly, and my translation would be handled by the version of the game itself - an English or US release would throw the line from dialog.tlk:

IF ~~ c-aranspeaking1
 SAY #2199
 IF ~~ THEN EXIT
END

 

and voila - on a French install, the feminine speaker version of that line would be pulled from the French dialog.tlk (yes, I know there is more to it and we haven't covered masculine and feminine lines in other language distributions - but let's keep it simple for the folks, ok?). A Spanish line would play from the Spanish version, etc.

 

But now we have your mod. And it has a bunch of new lines. It might have some of the original lines from the game, too. So, we install that hardcoded .d, and the WeiDU creates the new strings and adds them on with new strref numbers to the relevant dialog.tlk. My line

 

~[ARAN] Aye. Though sometime soon I will have to stand you a round o' drink an' here more about those what you were workin' with. They sound like th' same people what run th' 'Fist.~

 

is unique, so it might be added as #97422. Or on a different install, with lots of new mod-added lines, #7832111. Who knows? But it will be added. In fact, even more specifically, WeiDU does something way cooler - it

 

1. looks at your line

2. sees if it already exists in the current dialog.tlk

3. if it does, maps it to the existing reference

and

4. if it doesn't, maps it to a new reference.

 

So if I add 27 lines with Aran saying ~Aye.~ it will only add one. Of course if I add

 

~Aye,~

~Aye.~

~Aye~

~[ARAN]Aye~

~[ARAN Aye.~

it will actually add 5 references, because it is a computer, and can't tell the difference between written inflection, a typo, or even a space.

 

So, that covers the basics of stringmaking and unmaking. You make 'em, Weidu checks 'em, and then WeiDU sorts 'em and bakes 'em.

Link to comment

Tra References and Your Mod

 

So, back to the mod and that whole

 

~say this~

 

becoming

 

@2

 

Basically, what WeiDU does with traification does is a parallel to what WeiDU does with the actual game files. When you traify a dialog file (or a .tp2 file), you tell WeiDU to go through the file, find what it thinks is a text string, and replace it with a number that can be used to reference that text string. WeiDU looks at each thing it parses as a valid text string, checks it against what it already sees in your file, and then outputs a list of unique-to-that-file numbered references in the outputted dialog file, and a second file with the actual text strings associated with those numbers (again, unique to the file being traified). It starts at @0, and works its way through the file.

 

WARNING - if you do this on a file, do it on a COPY . and always output to a NEW FILE NAME. This is the safest way of ensuring you don't have any troubles. Wisp has updated WeiDU to handle strings more carefully, so the days of watching WeiDU eat your files because you had a parse error are probably over. But just to be sure, use a copy - and use one that has successfully installed on a clean game.

 

 

The result of traification is something like this:

 

https://github.com/c.../dlg/x%23dyro.d

 

 

with the related .tra file of

 

https://github.com/c...sh/x%23dyro.tra

 

The translators then only have to work with this file, so that the following two files can be swapped in with a different language choice:

 

https://github.com/c...ch/x%23dyro.tra

 

https://github.com/c...sh/x%23dyro.tra

 

For the true multi-lingual BG fanatics, you can even toss all three up along side each other, and have three helpings of Romance, two in Romance languages... a veritable feast of words!

Link to comment

So, how do I do it...

 

Look it up. Here are some current takes and commentary on it:

 

http://www.weidu.org/~thebigg/README-WeiDU.html#htoc16

 

http://forums.pocketplane.net/index.php?topic=28294.0

 

http://forums.gibberlings3.net/index.php?showtopic=16509

 

http://forums.gibberlings3.net/index.php?showtopic=5414

 

http://www.shsforums.net/files/file/951-traify-tool/

 

The last of these takes all the work out of it - the bigg will do it all for you. But I am old-skool and like to do my own work, so I will do the following -

 

1. make a file of my code above with Adrian and Aran poking at each other with sticks,

2. move it to my BG2 directory,

3. put a copy of Wisp's latest WeiDU.exe in the same directory,

4. open up a command line, and

5. type

weidu --traify AA.d --out AA-new.d

 

That will leave my original alone, and create two new files:

AA-new.d

AA-new.tra

 

and I will count myself happy. (I use temporary names because they are easier to type. I really don't want to mess with "SoA_Adrian_Aran_Banters_Version_one_First_try.d" ).

 

And here is what I get...

 

C:\Program Files (x86)\BeamDog\Games\00546\aa-new.D

/* SoA Banters: Aran<>Adrian: Rhaella and cmorgan : Theory vs Practice */
CHAIN IF ~Global("c-aran1adrian","GLOBAL",0) InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID) InParty("rh#Adrian") InMyArea("rh#Adrian") !StateCheck("rh#Adrian",CD_STATE_NOTVALID) CombatCounter(0) !See([ENEMY])~
THEN C-ARANB c-aran1adriantalk
@0
DO ~SetGlobal("c-aran1adrian","GLOBAL",1)~
== BRH#ADR @1
== C-ARANB IF ~!Class("C-ARAN",MAGE_ALL)~ THEN @2
== C-ARANB IF ~Class("C-ARAN",MAGE_ALL)~ THEN @3
== BRH#ADR @4
== C-ARANB @5
== BRH#ADR @6
== C-ARANB @7
== BRH#ADR @8
EXIT

/* SoA Banters: Adrian<>Aran: Rhaella and cmorgan : Curiosity */
CHAIN IF ~Global("c-adrian2aran","GLOBAL",0) InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID) InParty("c-aran") InMyArea("c-aran") !StateCheck("c-aran",CD_STATE_NOTVALID) CombatCounter(0) !See([ENEMY])~
THEN BRH#ADR c-adrian2arantalk
@9
DO ~SetGlobal("c-adrian1aran","GLOBAL",1)~
== C-ARANB @10
== BRH#ADR @11
== C-ARANB IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN @12
== BRH#ADR IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN @13
== C-ARANB IF ~!Global("rh#AdrianZhent","GLOBAL",1)~ THEN @14
== BRH#ADR IF ~!Global("rh#AdrianZhent","GLOBAL",1)~ THEN @15
== BRH#ADR @16
== C-ARANB @17
== BRH#ADR @18
== C-ARANB @19
== BRH#ADR @20
EXIT

/* SoA Banters: Adrian<>Aran: Rhaella and cmorgan : Curiosity */
CHAIN IF ~Global("c-adrian2aran","GLOBAL",0) InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID) InParty("c-aran") InMyArea("c-aran") !StateCheck("c-aran",CD_STATE_NOTVALID) CombatCounter(0) !See([ENEMY])~
THEN BRH#ADR c-adrian2arantalk
@9
DO ~SetGlobal("c-adrian1aran","GLOBAL",1)~
== C-ARANB @10
== BRH#ADR @11
== C-ARANB IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN @12
== BRH#ADR IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN @13
== C-ARANB IF ~!Global("rh#AdrianZhent","GLOBAL",1)~ THEN @14
== BRH#ADR IF ~!Global("rh#AdrianZhent","GLOBAL",1)~ THEN @15
== BRH#ADR @16
== C-ARANB @17
== BRH#ADR @18
== C-ARANB @19
== BRH#ADR @20
EXIT

/* SoA Banters: Adrian<>Aran: Rhaella and cmorgan : half a loaf is better than none */
CHAIN IF ~Global("c-adrian1aran","GLOBAL",0)
InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID)
InParty("c-aran") InMyArea("c-aran") !StateCheck("c-aran",CD_STATE_NOTVALID)
CombatCounter(0) !See([ENEMY])~
THEN BRH#ADR c-adrian1arantalk
@21
DO ~SetGlobal("c-adrian1aran","GLOBAL",1)~
== C-ARANB @22
== BRH#ADR @23
== C-ARANB @24
== BRH#ADR @25
== C-ARANB IF ~!Global("rh#AdrianZhent","GLOBAL",1)~ THEN @26
== BRH#ADR IF ~!Global("rh#AdrianZhent","GLOBAL",1)~ THEN @27
== C-ARANB IF ~!Global("rh#AdrianZhent","GLOBAL",1)~ THEN @28
== C-ARANB IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN @29
== BRH#ADR IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN @30
== C-ARANB IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN @31
== BRH#ADR IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN @32
== C-ARANB IF ~Global("rh#AdrianZhent","GLOBAL",1)~ THEN @33
EXIT

/* SoA Banters: Aran<>Adrian: Rhaella and cmorgan : Cyric */
CHAIN IF ~Global("c-aran3adrian","GLOBAL",0) InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID) InParty("rh#Adrian") InMyArea("rh#Adrian") !StateCheck("rh#Adrian",CD_STATE_NOTVALID) Global("rh#AdrianZhent","GLOBAL",1) CombatCounter(0) !See([ENEMY])~
THEN C-ARANB c-aran3adriantalk
@34
DO ~SetGlobal("c-aran3adrian","GLOBAL",1)~
== BRH#ADR @35
== C-ARANB @36
== BRH#ADR @37
== C-ARANB @38
== BRH#ADR @39
EXIT

 

C:\Program Files (x86)\BeamDog\Games\00546\aa-new.tra

@0    = ~[ARAN] Adrian... look, can you be tellin' me if this rune be silent or sounded? I be havin' naught in th' way o' luck trickin' it into gatherin' power. Mayhap I missed somethin'.~
@1    = ~[ADRIAN] What? You-- dammit, Aran, give that to me before you kill yourself. Whatever hedge magician tried to teach you theory did a spectacularly poor job of it.~
@2    = ~[ARAN] Now, that be a harsh thing to say. But to tell th' truth, you be right. I never did understand most o' th' messin' about wi' th' Weave you spellslingers do. It be hard enough to coax even a bit o' th' magic into th' template.~
@3    = ~[ARAN] Now, that be a harsh thing to say. But to tell th' truth, you be right. I don't rightly have much in th' way o' formal study, so it be more in th' way o' copyin' th' form, an' seein' if it be close enough to do th' job.~
@4    = ~[ADRIAN] Nine Hells. In other words, my previous assessment was, if anything, all too generous. You know, usually I'd be happy to give you enough rope to hang yourself, but you're liable to string the rest of us up alongside you.~
@5    = ~[ARAN] Well, then, give a lad a hand, eh? I do right fine on th' construction end. It just be a mite harder when you don't rightly know what the end product be, other than in a general way.~
@6    = ~[ADRIAN] You'd best be a quick study, Whitehand. I've never exactly been known for my patience.~
@7    = ~[ARAN] Just so long as we be studyin', an' have none o' that "fetch me a pail o' water an' then wash th' dishes" apprenticeship. But I'll do right by you, I will... you teach, I study, an' I prepare any scrolls you want me to as payment in kind.~
@8    = ~[ADRIAN] Mmm, that certainly should be acceptable. If I had thought all I could get out of you was a servant's chores, I wouldn't have offered at all.~
@9    = ~[ADRIAN] Hmm, that should just about do it--~
@10   = ~[ARAN] Hells! Ask a lad next time! You blighted well know that set o' inks be worth more than a little. An' it took two weeks to get th' right proportion o' dragon bone dust an' squid ichor. Now it be a complete loss.~
@11   = ~[ADRIAN] Oh, enough with the histrionics, Whitehand. We don't exactly lack for money. In any case, it's not as if I used up all of it. Not quite.~
@12   = ~[ARAN] Not quite? Blighted well close enough. You spent enough time on th' road wi' those Zhentarim bastards what to know a bit o' private space means. Even they have some measure o' respect, eh?~
@13   = ~[ADRIAN] Oh, yes... respect of power, respect of fear, and you're a naive fool to believe otherwise.~
@14   = ~[ARAN] Not quite? Blighted well close enough. An' here I thought you had time on th' road, an' understood I only have one little space what to call my own. I'd have given you half, you know.~
@15   = ~[ADRIAN] My own time on the road, is it? Frankly, you're fortunate that my own delightful caravan experience hasn't affected me more.~
@16   = ~[ADRIAN] Now, if you're quite finished trying to manipulate me into giving a damn... I shouldn't need more of your blasted ink anyway. I think I've figured out the technique now.~
@17   = ~[ARAN] Hells, man. Where I come from, th' folks what travel wi' you watch your back. An' share an' share alike, on account o' there be less than enough to go around. Who died an' made you Cyric, anyways?~
@18   = ~[ADRIAN] Aran. You've about ten seconds before this gets very ugly, very quickly.~
@19   = ~[ARAN] What in th' nine hells did I say? I were th' one bein' wronged!~
@20   = ~[ADRIAN] Your string of mindless blasphemies are going to get you in trouble someday, you fool. How they haven't already, I'll never know.~
@21   = ~[ADRIAN] You seem enthusiastic to<DAYNIGHT>, Whitehand. I take it even this nonsense is more interesting than the line of work you're used to?~
@22   = ~[ARAN] Blighted hells, an' that be th' truth. An excitin' day on caravan work be th' day th' lead wagon gets stuck in some mud. An' mercenary work be worse.~
@23   = ~[ADRIAN] Heh. Either you have a rather singular definition of excitement, or the recent banditry in the area hasn't been nearly as bad as I'd been lead to believe.~
@24   = ~[ARAN] Now, I spent most o' th' time on caravan work near Calimport, I did. That were actually right quiet, assumin' th' correct people were bribed an' th' route were short. Coin rules just about everythin' down that way. Th' Sword Coast, well... when a platoon o' 'Fist in full plate drops by, bandits tend to run. Or die. Or scream. Mayhap all three at once. But you must know what guard duty be like, an' most o' th' time it were standin' around in plate tryin' not to itch.~
@25   = ~[ADRIAN] Mmm, well. Fortunately, I can't comment one way or the other on the armor. Even my people aren't quite stupid enough to try to put a mage in mail, though they come dangerously close at times.~
@26   = ~[ARAN] Put a mage in chainmail? What kind o' insane folk were you workin' with?~
@27   = ~[ADRIAN] The type that will try the same damn thing a dozen times before realizing that it doesn't work... though perhaps that's the rule, rather than the exception. Well, no matter. We've better things to do than stand here and chat anyway.~
@28   = ~[ARAN] Aye. Though sometime soon I will have to stand you a round o' drink an' here more about those what you were workin' with. They sound like th' same people what run th' 'Fist.~
@29   = ~[ARAN] Never did understand why you worked for them Banites, nohow. Th' mercenary view o' them be spend your coin today, on account o' there most probably won't be naught in th' way o' a tomorrow. Or if there be, it might just be your skeleton what be servin', eh?~
@30   = ~[ADRIAN] Yes, because capriciously murdering your followers is the perfect way to drum up support. Though given current trends, perhaps I shouldn't expect any better.~
@31   = ~[ARAN] Well, hells... truth be told, there were plenty o' 'Fist what actually believed th' same, Not murderin', exactly, but not liftin' no finger to help when someone went down. It brings on somethin' they called "ghost payroll", where th' Regimental muster would stay th' same even when we were down by ten, an' a few pockets got a bit richer. Never served in one o' them companies, but I heard it were done.~
@32   = ~[ADRIAN] That wouldn't surprise me at all. As far as I've been able to tell, the largest difference between Heartlands folk and those back home is capacity for self-delusion. We're usually more honest about what we want.~
@33   = ~[ARAN] Mayhap you be right. But some o' us are a fair bit more comfortable in our self-delusion. Helps a lad sleep at night, eh?~
@34   = ~[ARAN] Mayhap I owe you an apology.~
@35   = ~[ADRIAN] More than one, I should think, though I hope you don't expect me to guess.~
@36   = ~[ARAN] I spoke that wrong, I did. I don't owe you anythin' at all, but I want to tell you I be sorry I put both feet in my mouth on th' whole... well... th' Mad God reference. It were my mouth runnin' when my brain be a bit behind.~
@37   = ~[ADRIAN] Ahh. I don't normally fly into a rage at the mere mention of his name, you know. Though I suppose I can't blame you for not wanting to take that chance again.~
@38   = ~[ARAN] Well, I don't rightly know all th' details, but I should have known that would have sounded like I were challengin' you. If I were to be doin' that, it would be over a friendly game o' who can drink th' most in an hour an' still walk to th' bar.~
@39   = ~[ADRIAN] As far as drinking contests go, that's remarkably dull of you. Not that I care much for the genre at all; a game where nobody really loses doesn't have quite the same flare.~

Link to comment

But wait! That was one file! There are Many Others In My Mod!

 

OK, ok - no worries. There are any number of ways to deal with this - using the bigg's Trafiy Tool above is the easiest. WeiDU doesn't mind if you create a ton of small dialog files and a separate one for your .tp2... in fact, it was originally set up that way. Just follow along and do each file, or batch them, or whatever - each file you create will have a related .tra and you can pass them out like candy to your various modding companions who specialize in translations, or at your local School of Ukranian Culture And Language.

 

Or...

 

...you could be stupid, like me, and decide that you are only going to use one file...

 

One Tra to rule them all, One Tra to find them,

One Tra to bring them all and in the darkness bind them

 

WeiDU has become a seriously powerful tool. You can use .tp2 calls like USING ~mymod/%language%/mymodsfulltra.tra~ and put all of the strings from your .baf, .d, .tp2, etc. into one single file, and on compilation use that one file as a sort of miniature "dialog.tlk" that can add the strings wherever needed.

 

Why in the name of everything holy would you do such an aberrant thing?

 

Well, first of all, in the words of George Mallory, "Because it's there." (Mallory obviously attended neither Oberlin nor Middlebury, and based on the sentence construction gave Oxford and Cambridge short shrift in the language department as well, but then again, he climbed mountains that kill people... for fun.)

 

But more importantly, when you traify many small files, each one contains referents only for that file. So a line in one file,

@19   = ~[ARAN] What in th' nine hells did I say? I were th' one bein' wronged!~

might show up in another file as

@27   = ~[ARAN] What in th' nine hells did I say? I were th' one bein' wronged!~

 

This is no problem for WeiDU. WeiDU keeps everything it adds to the dialog.tlk in mind when it creates new strrefs, so only one line of those two will be created in the actual game. BUT...

 

People care.

 

People who translate would prefer not to translate the line

 

~[ARAN] Ah, dearest sunset o' my loins, I woulds't cast my love an' ardor for your... hells, woman, just move over. I be horny.~

 

at all, let alone once for SoA, once for ToB, and several more times for various flirts. In fact, they get very, very tired of dealing with things like

 

~Aye,~

~Aye.~

~Aye~

~[ARAN]Aye~

~[ARAN Aye.~

 

So, with one tra for everything you can check things out by doing traification of all of your files into one master tra. Then you can

1. sort that .tra using code editors and text editors, looking for identical lines or differences of termination, spacing, or comma, etc.

2. clean up the originals so there are less of those oddities,

3. repeat the process until you have really clean files or you are so sick of it you don't care any more.

 

Then you have a minimum of repetition of material between files, you have fixed some of those strange typos that seem to creep in, and most of all when you hand it off to translators you can be assured that a volunteer has the best chance of looking at clean lines, the overall character voice, and hopefully they will not realize that you have duplicated a bunch of your lines all over the place so that they are wowed by your brevity and wit.

 

OK, so how do I do that whole Lord Of The Tra's Thing, Anyways? If I wanted to, that is.

 

WeiDU once again is up to the challenge.

 

I have my current file (aa-new.d), and its .tra (aa_new.tra).

 

I also have my already-created content, here:

 

https://github.com/cmorganbg/aranw_aware/blob/master/aranw_aware/aranaware_angelo_SoAbanters.d

 

so I put the aranaware_angelo_SoAbanters.d into my top level game directory, right next to aa-new, and then I rename it BB. Not King, that would be too musician's speak of me... just BB. And now I use the magic of the bigg, Weimer, and Wisp, with a little Ascension64 thrown in for good measure, sprinkle it liberally with Essence of CamDawg... err...

 

ok, I just type

weidu --traify bb.d --traify-old-tra aa-new.tra --out bb-new

 

So I just told WeiDU to traify bb.d, BUT before it decides to add something, it should look for matches in aa-new-tra, AND IF it finds anything there, use that reference AND THEN write a new tra that covers both the old tra and the new tra.

 

(Luckily, weidu understands run-on sentences.)

 

And the resulting files are:

C:\Program Files (x86)\BeamDog\Games\00546\bb-new.D

/* SoA Banters: Aran<>Angelo : Orders are Orders : by Sister V and cmorgan */
CHAIN IF ~Global("c-aran1angelo","GLOBAL",0)
InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID)
InParty("ADAngel") InMyArea("ADAngel") !StateCheck("ADAngel",CD_STATE_NOTVALID)
CombatCounter(0) !See([ENEMY])~
THEN C-ARANB c-aran1angelotalk
@40
DO ~SetGlobal("c-aran1angelo","GLOBAL",1)~
== BADANGEL @41
== C-ARANJ @42
== BADANGEL @43
== C-ARANJ @44
== BADANGEL @45
== C-ARANJ @46
== BADANGEL @47
== C-ARANJ @48
== BADANGEL @49
== C-ARANJ @50
EXIT

/* SoA Banters: Angelo<>Aran : Manners : by Sister V and cmorgan */
CHAIN IF ~Global("c-angelo1aran","GLOBAL",0)
InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID)
InParty("c-aran") InMyArea("c-aran") !StateCheck("c-aran",CD_STATE_NOTVALID)
CombatCounter(0) !See([ENEMY])~
THEN BADANGEL c-angelo1arantalk
@51
DO ~SetGlobal("c-angelo1aran","GLOBAL",1)~
== C-ARANB @52
== BADANGEL @53
== C-ARANB @54
== BADANGEL @55
EXIT

/* SoA Banters: Aran<>Angelo : Using Drugs : by Sister V and cmorgan */
CHAIN IF ~Global("c-aran2angelo","GLOBAL",0)
InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID)
InParty("ADAngel") InMyArea("ADAngel") !StateCheck("ADAngel",CD_STATE_NOTVALID)
CombatCounter(0)
!See([ENEMY])~
THEN C-ARANB c-aran2angelotalk
@56
DO ~SetGlobal("c-aran2angelo","GLOBAL",1)~
== BADANGEL @57
== C-ARANB @58
== BADANGEL @59
== C-ARANB @60
== BADANGEL @61
== C-ARANB @62
== BADANGEL @63
== C-ARANB @64
== BADANGEL @65
== C-ARANB @66
== BADANGEL @67
== C-ARANB @68
== BADANGEL @69
EXIT

/* SoA Banters: Angelo<>Aran : le soldat : by Sister V and cmorgan */
CHAIN IF ~Global("c-angelo2aran","GLOBAL",0)
InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID)
InParty("c-aran") InMyArea("c-aran") !StateCheck("c-aran",CD_STATE_NOTVALID)
CombatCounter(0) !See([ENEMY])~
THEN BADANGEL c-angelo2arantalk
@70
DO ~SetGlobal("c-angelo2aran","GLOBAL",1)~
== C-ARANB @71
== BADANGEL @72
== C-ARANB @73
== BADANGEL @74
EXIT

C:\Program Files (x86)\BeamDog\Games\00546\bb-new.TRA

@0    = ~[ARAN] Adrian... look, can you be tellin' me if this rune be silent or sounded? I be havin' naught in th' way o' luck trickin' it into gatherin' power. Mayhap I missed somethin'.~
@1    = ~[ADRIAN] What? You-- dammit, Aran, give that to me before you kill yourself. Whatever hedge magician tried to teach you theory did a spectacularly poor job of it.~
@2    = ~[ARAN] Now, that be a harsh thing to say. But to tell th' truth, you be right. I never did understand most o' th' messin' about wi' th' Weave you spellslingers do. It be hard enough to coax even a bit o' th' magic into th' template.~
@3    = ~[ARAN] Now, that be a harsh thing to say. But to tell th' truth, you be right. I don't rightly have much in th' way o' formal study, so it be more in th' way o' copyin' th' form, an' seein' if it be close enough to do th' job.~
@4    = ~[ADRIAN] Nine Hells. In other words, my previous assessment was, if anything, all too generous. You know, usually I'd be happy to give you enough rope to hang yourself, but you're liable to string the rest of us up alongside you.~
@5    = ~[ARAN] Well, then, give a lad a hand, eh? I do right fine on th' construction end. It just be a mite harder when you don't rightly know what the end product be, other than in a general way.~
@6    = ~[ADRIAN] You'd best be a quick study, Whitehand. I've never exactly been known for my patience.~
@7    = ~[ARAN] Just so long as we be studyin', an' have none o' that "fetch me a pail o' water an' then wash th' dishes" apprenticeship. But I'll do right by you, I will... you teach, I study, an' I prepare any scrolls you want me to as payment in kind.~
@8    = ~[ADRIAN] Mmm, that certainly should be acceptable. If I had thought all I could get out of you was a servant's chores, I wouldn't have offered at all.~
@9    = ~[ADRIAN] Hmm, that should just about do it--~
@10   = ~[ARAN] Hells! Ask a lad next time! You blighted well know that set o' inks be worth more than a little. An' it took two weeks to get th' right proportion o' dragon bone dust an' squid ichor. Now it be a complete loss.~
@11   = ~[ADRIAN] Oh, enough with the histrionics, Whitehand. We don't exactly lack for money. In any case, it's not as if I used up all of it. Not quite.~
@12   = ~[ARAN] Not quite? Blighted well close enough. You spent enough time on th' road wi' those Zhentarim bastards what to know a bit o' private space means. Even they have some measure o' respect, eh?~
@13   = ~[ADRIAN] Oh, yes... respect of power, respect of fear, and you're a naive fool to believe otherwise.~
@14   = ~[ARAN] Not quite? Blighted well close enough. An' here I thought you had time on th' road, an' understood I only have one little space what to call my own. I'd have given you half, you know.~
@15   = ~[ADRIAN] My own time on the road, is it? Frankly, you're fortunate that my own delightful caravan experience hasn't affected me more.~
@16   = ~[ADRIAN] Now, if you're quite finished trying to manipulate me into giving a damn... I shouldn't need more of your blasted ink anyway. I think I've figured out the technique now.~
@17   = ~[ARAN] Hells, man. Where I come from, th' folks what travel wi' you watch your back. An' share an' share alike, on account o' there be less than enough to go around. Who died an' made you Cyric, anyways?~
@18   = ~[ADRIAN] Aran. You've about ten seconds before this gets very ugly, very quickly.~
@19   = ~[ARAN] What in th' nine hells did I say? I were th' one bein' wronged!~
@20   = ~[ADRIAN] Your string of mindless blasphemies are going to get you in trouble someday, you fool. How they haven't already, I'll never know.~
@21   = ~[ADRIAN] You seem enthusiastic to<DAYNIGHT>, Whitehand. I take it even this nonsense is more interesting than the line of work you're used to?~
@22   = ~[ARAN] Blighted hells, an' that be th' truth. An excitin' day on caravan work be th' day th' lead wagon gets stuck in some mud. An' mercenary work be worse.~
@23   = ~[ADRIAN] Heh. Either you have a rather singular definition of excitement, or the recent banditry in the area hasn't been nearly as bad as I'd been lead to believe.~
@24   = ~[ARAN] Now, I spent most o' th' time on caravan work near Calimport, I did. That were actually right quiet, assumin' th' correct people were bribed an' th' route were short. Coin rules just about everythin' down that way. Th' Sword Coast, well... when a platoon o' 'Fist in full plate drops by, bandits tend to run. Or die. Or scream. Mayhap all three at once. But you must know what guard duty be like, an' most o' th' time it were standin' around in plate tryin' not to itch.~
@25   = ~[ADRIAN] Mmm, well. Fortunately, I can't comment one way or the other on the armor. Even my people aren't quite stupid enough to try to put a mage in mail, though they come dangerously close at times.~
@26   = ~[ARAN] Put a mage in chainmail? What kind o' insane folk were you workin' with?~
@27   = ~[ADRIAN] The type that will try the same damn thing a dozen times before realizing that it doesn't work... though perhaps that's the rule, rather than the exception. Well, no matter. We've better things to do than stand here and chat anyway.~
@28   = ~[ARAN] Aye. Though sometime soon I will have to stand you a round o' drink an' here more about those what you were workin' with. They sound like th' same people what run th' 'Fist.~
@29   = ~[ARAN] Never did understand why you worked for them Banites, nohow. Th' mercenary view o' them be spend your coin today, on account o' there most probably won't be naught in th' way o' a tomorrow. Or if there be, it might just be your skeleton what be servin', eh?~
@30   = ~[ADRIAN] Yes, because capriciously murdering your followers is the perfect way to drum up support. Though given current trends, perhaps I shouldn't expect any better.~
@31   = ~[ARAN] Well, hells... truth be told, there were plenty o' 'Fist what actually believed th' same, Not murderin', exactly, but not liftin' no finger to help when someone went down. It brings on somethin' they called "ghost payroll", where th' Regimental muster would stay th' same even when we were down by ten, an' a few pockets got a bit richer. Never served in one o' them companies, but I heard it were done.~
@32   = ~[ADRIAN] That wouldn't surprise me at all. As far as I've been able to tell, the largest difference between Heartlands folk and those back home is capacity for self-delusion. We're usually more honest about what we want.~
@33   = ~[ARAN] Mayhap you be right. But some o' us are a fair bit more comfortable in our self-delusion. Helps a lad sleep at night, eh?~
@34   = ~[ARAN] Mayhap I owe you an apology.~
@35   = ~[ADRIAN] More than one, I should think, though I hope you don't expect me to guess.~
@36   = ~[ARAN] I spoke that wrong, I did. I don't owe you anythin' at all, but I want to tell you I be sorry I put both feet in my mouth on th' whole... well... th' Mad God reference. It were my mouth runnin' when my brain be a bit behind.~
@37   = ~[ADRIAN] Ahh. I don't normally fly into a rage at the mere mention of his name, you know. Though I suppose I can't blame you for not wanting to take that chance again.~
@38   = ~[ARAN] Well, I don't rightly know all th' details, but I should have known that would have sounded like I were challengin' you. If I were to be doin' that, it would be over a friendly game o' who can drink th' most in an hour an' still walk to th' bar.~
@39   = ~[ADRIAN] As far as drinking contests go, that's remarkably dull of you. Not that I care much for the genre at all; a game where nobody really loses doesn't have quite the same flare.~
@40   = ~[ARAN] So... you wanted to kill <PRO_HIMHER>?~
@41   = ~[ANGELO] Orders are orders.~
@42   = ~[ARAN] True.~
@43   = ~[ANGELO] Things were different.~
@44   = ~[ARAN] Heh. I weren't there.~
@45   = ~[ANGELO] Good thing. I would have taken you out first.~
@46   = ~[ARAN] Scared o' me?~
@47   = ~[ANGELO] Just can't stand your breath.~
@48   = ~[ARAN] Yeah, screw you, too.~
@49   = ~[ANGELO] Thanks, but I prefer women.~
@50   = ~[ARAN] Heh.~
@51   = ~[ANGELO] Aran, you curse like a Calimshite sailor. Show some respect. ~
@52   = ~[ARAN] Ha! This unwashed, whorin' drunkard thinks t' teach me a lesson in manners? ~
@53   = ~[ANGELO] A gentleman can whore and drink, and be a gentleman still. That's the Sembian way. ~
@54   = ~[ARAN] Well, th' Sembian way be a mite bit strange. But it don't rightly matter, on account o' I never did be no gentleman.~
@55   = ~[ANGELO] How incisive. ~
@56   = ~[ARAN] Usin' again?~
@57   = ~[ANGELO] Aye, happen I am.~
@58   = ~[ARAN] You are a blighted Cyric-buggerin' bastard.~
@59   = ~[ANGELO] And worse.~
@60   = ~[ARAN] It's goin' to kill you. An' probably me. Mayhap <PRO_HIMHER>, too.~
@61   = ~[ANGELO] Aye.~
@62   = ~[ARAN] Goin' to be able to quit forever?~
@63   = ~[ANGELO] Nay.~
@64   = ~[ARAN] ... ~
@65   = ~[ANGELO] But I'm not using today.~
@66   = ~[ARAN] Good.~
@67   = ~[ANGELO] Who are you, my father?~
@68   = ~[ARAN] Nope. But for all I know, you are mine, you soddin' philanderin' bugger.~
@69   = ~[ANGELO] Cheers to that thought.~
@70   = ~[ANGELO] Aran? I wanted to say, I appreciate having a soldier at my back. ~
@71   = ~[ARAN] Flattery? What do you be wantin' o' me now? ~
@72   = ~[ANGELO] Why, nothing but your company. Be <CHARNAME>'s other companion's ever-so-talented, nothing beats old-fashioned army discipline.~
@73   = ~[ARAN] An' adventurin' company beats th' blighted hells out o' army life any day, as far as food an' coin go.~
@74   = ~[ANGELO] Don't I know it. Let's have a drink to that, eh? ~

 

 

Notice the new bb.d does not start at @0 - it starts where the old .tra left off. In this case, the two files had no real overlap, so it just ended up being a longer .tra that will now work for both aa-new.d, and bb-new.d.

 

 

The rest of this idea will be carried out on GitHub, so I'll poke back to provide links, but a working example is in the .tp2 and .tra on aran whitehand currently up on github. In the meantime, I am off to create an automated .bat file that will process this stuff for me wile I eagerly await the release fo BGII:EE, because I think the new content will prove fertile ground for Aran's particular brand of humor.

Link to comment

WARNING - if you do his on a file, do it on a COPY . and always output to a NEW FILE NAME. If something goes wrong with parsing (or rather if you do something boneheaded like have a double-tilde and not tested your install before traification), you will LOSE YOUR FILE. It will be hashed. Not may be. WILL be. Don't ask me how I know this. It is too painfuil a (series of) memories.

As of WeiDU 232 that should no longer be the case. Taking sensible precautions is naturally still good, but WeiDU will no longer eat your files just for the hell of it. Edit: more info.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...