Jump to content

Newbie Modding Questions


Twani

Recommended Posts

Alright, so then for Crossmod (this is all assuming that I get permission from everyone involved, of course- I wouldn't do any crossmod without asking permission first):

++ I can put romance conflicts with Ajantis, Coran, and Xan in the main banter file, or questions about them ("Hai, you told me you were interested but you're sort of sleeping with Coran, what's up with that?") in the main joined dialog file. I could also put say, banters about Coran's baby or Imoen's spellbook in the main banter file, because these characters have the normal joined file already included in the game.

++ Crossmod with Gavin, Isra, Valerie, and anyone else (are the author's of the other BG1 mods still around?) would have to be in a different dialog file- 'm3gavin_banters' or whatever that is only installed if the player has Gavin and wants crossmod interactions.

++ The BGEE NPC's have to be treated the same, and put in a bgee_banters file that only installs for people using BGEE.

 

That's all correct, right? My question then is what about interjections for BGEE contact. Can that go in the same bgee_banters file, or would that go in a separate bgee_interjections file? No one's done interjections for BGEE yet, so I'm completely unsure about how that would be coded or done. Mmf. With a racial enemy of demon/fell and a history with Sharrans, he really should comment on Dorn and Rashaad's quests, but maybe that's too complicated for me... bah. I want to do it anyway, somehow.

 

 

I know from modding Morrowind about the no one reading readme's problem. :( Sigh. I always read them, in any case. And no offense taken! I'll remember the compile.

 

 

Alright, having problems with an interjection. Particularly, Riggilo in Durlag's Tower. If you try to give Riggilo the succubus's hair, my NPC'll flip and pull a Jaheria and take control for a moment (he warns you twice before doing it, so I don't feel too guilty). What I want to do is have my NPC go hostile and leave the party, and Riggilo to escape without taking the hair.

 

...But predictably, I have no idea how to code this.

I_C_T ~%tutu_var%RIGGILO~ 18 m3alt.reiggilo1

== M3ALTJ IF ~InParty(“M3Alt”) InMyArea(“M3Alt”) !StateCheck(“M3Alt”,CD_STATE_NOTVALID)~

~No, don't take it! <PRO_HESHE>'s trying to give you the hair of the tanar'ri, which will bind you eternally to this place.~

== ~%tutu_var%RIGGILO~ ~Wh... what?!~

== M3ALTJ ~Just run from this place, thief! I don't need an audience when performing suicidal feats. <CHARNAME>... I alone cannot defeat you, but I wouldn't be able to live with myself if I didn't try to stop you. You've proven yourself willing to betray freedom for a tanar'ri's desire: arm yourself!~

== ~%tutu_var%RIGGILO~ ~I'm getting out of here!~

DO ~ActionOverride(“%tutu_var%RIGGILO”,EscapeArea()) ActionOverride("M3alt",LeaveParty()) ActionOverride("M3alt",Enemy()) SetGlobal(“M3AltRoma”,”GLOBAL”,3)~

EXIT

 

(Thought of the day: as Ajanatis turns if you do this action in BG1NPC (though, oddly, not if you choose this response- only if you choose a respond that involves Riggilo giving you potions in return) and this would cut off his reaction, I should probably have him interject and turn as well here, as he'd become a fallen paladin if he didn't object as he would have been party to making a deal with a fiend. I'm worried that might be overstepping my bounds, though, especially for someone who doesn't use BG1NPC and therefore wouldn't be expecting any changes from Ajantis, but does anyone willingly not use BG1NPC Project? Would it be okay with you guys who wrote the BG1NPC project? I don't know. But I have to EXIT here, as the goal is to stop Riggilo from getting the 'nymph's hair' rather then him taking it...)

 

...but, um, I'm pretty sure my code there's not going to work. I stole the coding from Kivan's interjections, but I'm not sure if I did it correctly. I'm unsure if I can just Exit there. I'm unsure about a lot of things, which probably is going to bode ill when I actually try to write quests for BGII. Can someone take a gander and tell me where I inevitably messed up?

 

...Thankfully, this is the most complicated thing I'll ever have to code for this mod, besides the flirts. Oh god, flirts. I think I'll just steal code from Branwen NPC. That's alright, isn't it? If I give credit? ;; I've been trying not to think of them.

 

 

As always, thanks for the help.

Link to comment

For the question concerning the interjections BioWare NPCs / mod NPCs / BGEE-NPCs: yes, putting it onto separate files is the way to go.

For BG:EE, interjections work the same and just fine. To distinguish between interjections without and with BG:EE, what I did (locally) for the to-be v9 of BGQE is putting the interjection- CHAINs in separate .d files and then compile the right one together with the .d of your dialogues. In this example, q02_notee_add.d would be the CHAIN without the BG:EE NPCs, and q02_bgee_add.d the (same) one with the BG:EE NPCs. Note that the COMPILE is not repeated in front of these "_add" files: this means they are treated like their content is inside the "Q02005.D" (so you can reference to the dialogue state names). The USING specifies the path for the language version. This is not the most elegant solution, but it works in the game.

 

This looks like something like this, if it makes any sense:

 

ACTION_IF GAME_IS ~bg1 totsc tutu tutu_totsc bgt~ THEN BEGIN

 

COMPILE EVALUATE_BUFFER ~bgqe/Familytreasure/Dialogues/Q02005.D~

~bgqe/Familytreasure/Dialogues/q02_notee_add.d~

USING ~bgqe/Translations/%LANGUAGE%/Q02005.tra~

END

 

 

ACTION_IF GAME_IS ~bgee~ THEN BEGIN

 

COMPILE EVALUATE_BUFFER ~bgqe/Familytreasure/Dialogues/Q02005.D~

~bgqe/Familytreasure/Dialogues/q02_bgee_add.d~

USING ~bgqe/Translations/%LANGUAGE%/Q02005.tra~

 

END

 

I'm kind of only read the first part of your post (will read the second tomorrow, if no-one else replies).

Link to comment

OK, read it. With I_C_T, you do not cut off any reaction. I_C_T means: Your interjections run, then the original dialogue (or the modded one, whatever the dialogue looked like before your interjection was added to it) will play. So, Ajantis' reaction will be either before or after your NPC's reaction, depending on the install order (Yours first, if your mod was installed after, as transactions in dialogues are performed bottom to top). This also means that the actions will not be performed until after the dialogue played out. Hm, as a principle, if you want to make the NPC leave or turn hostile, I_C_T might not be the best,as it basically assumes that you only want to add an interjection and maybe set a variable or somesuch, but not change the whole dialogue flow / reaction of the NPC. You would need to use INTERJECT for that, but that cuts off reactions of other mods as it takes the dialogue flow away from the existing ones, so from the principle that's a no-go (I know I am guilty of this in BG1NPC concerning Ajantis, but he is a paladin..). Tricky. Not to force the player's choice, you could always make your NPC turn hostile without interfering into the gameNPC's reaction.

 

Ajantis not reacting is probably an oversight of me. I'll take a note to the workroom.

Link to comment

Okay, I think I understand how to do the BGEE interjections now. Thank you! A few of them are more confusing- in particular, Dorn has one dialog where he directs suspicion on every NPC in the game, and then one dialog where he can be directed to fight and try and kill any NPC in the game. In theory, I'd like to add my NPC to those options, so he fits in as best with the game as possible. In actual reality, I'll probably have to stare at more code and learn how to add states better before I can do that. I may just release the first version of the mod without crossmod and BGEE interaction, and add those in version two. I am determined to get this done, dang it, even though scripting truly seems like an alien language to me.

 

 

I've thought about the Riggilo encounter. After considering it, I don't want to take away a players choice too much. I mean, they're probably asking for it, bringing a good character with demonic as their favored enemy along while making deals with a succubus, but people do like control over the game, and I don't want to take that away from them. So I'm thinking I'll have Altan use Interject on phase 14 in Riggilo's dialog- the option where you start to offer him the gift, but Riggilo is suspicious of you. So far, no other mods interfere with that stage, so I wouldn't be taking away from another mod at least at the moment- and the player will be able to repeat that stage and see any other party's comments if someone does add an NPC who interjects there. Altan basically does a 'WTH U EVIL I SUICIDE AGAINST YOU' routine, exiting that interaction, but Riggilo doesn't run because Riggilo doesn't seem that bright (and, mostly, I don't want to take one of the few truly evil decisions in BG1 away from the player). After the character kills my NPC, they can then talk to Riggilo again and try to give him the 'nymph hair' as normal: if they succeed against that and have the BG1NPC project running, they'll likely run in to conflict with Ajantis, but that's their problem at that point (as for that point, Ajantis pulls the enemy routine at phase 15, but should probably also do it at phase 18, in my opinion- if that helps you any in tracking it down).

 

That interaction, I guess, would look like this?:

INTERJECT %tutu_var%RIGGILO~ 14 m3alt.reiggilo1

== M3ALTJ IF ~InParty(“M3Alt”) InMyArea(“M3Alt”) !StateCheck(“M3Alt”,CD_STATE_NOTVALID)~

~(something about Tanar'ri).~

== ~%tutu_var%RIGGILO~ ~(wth is going on reaction)~

== M3ALTJ ~(CHARNAME you are my enemy generic speech)~

DO ~ActionOverride("M3alt",LeaveParty()) ActionOverride("M3alt",Enemy()) SetGlobal(“M3AltRoma”,”GLOBAL”,3)~

EXIT

 

The problem is that CHARNAME can also choose response 29, 'I'm not here to disturb you. I came back to give you a peace offering. No need for us to fight. I may not be an expert, but I think this might be nymph's hair. It's yours if you want it.' which involves the same thing: CHARNAME giving the succubus hair to Riggilo and trapping him, which would cause Alton to attack. The problem is that stage is the same stage that Ajantis attacks on. I do want my NPC to turn hostile, but I also want full compatibility with BG1NPC (as I adore it <3) and your Ajantis, and him turning hostile as well. Would it be okay to do a I_C_T with the same 'DO ~ActionOverride("M3alt",LeaveParty()) ActionOverride("M3alt",Enemy()) SetGlobal(“M3AltRoma”,”GLOBAL”,3)~' in that specific case?

Something like:

I_C_T ~%tutu_var%RIGGILO~ 15 m3alt.reiggilo2

== M3ALTJ IF ~InParty(“M3Alt”) InMyArea(“M3Alt”) !StateCheck(“M3Alt”,CD_STATE_NOTVALID)~

~(tanar'ri, ect)~

== ~%tutu_var%RIGGILO~ ~(words!)~

== M3ALTJ ~(challenge to CHARNAME!)~

DO ~ActionOverride("M3alt",LeaveParty()) ActionOverride("M3alt",Enemy()) SetGlobal(“M3AltRoma”,”GLOBAL”,3)~

END

 

Would that then allow Ajantis's interjection to trigger, or if Ajantis is not in the party, the standard 'Haha I trapped a stupid mortalll~' journal entry to trigger?

 

 

I keep saying it everytime, but seriously, thank you so much for your help, Jatsey. <3 You've been very patient with answering all my probably stupid questions, and I really appreciate it. Gah, I need to play Ajantis in BG2 soon- I've played his romance in BG1 and adored it, but haven't played his BG2 content yet! After I finish this NPC, perhaps.

Link to comment

Oh, and as a side note: anyone know where Secret Character of BGEE is hiding his dialog?

 

~~ SPOILER IF YOU DIDN'T KNOW

 

That's Baeloth from the Black Pits, who just sort of hangs around and joins your party in BGEE for no particular reason that I can figure out. I'm about to start on banters, and I figure I should probably write one for him (...though I have no idea what it would be about as he has no real personality in BGEE), but... I can't find any of his dialogs at all. Clearly, I'm missing something obvious. Or I'm insane. Anyone?

Link to comment
INTERJECT %tutu_var%RIGGILO~ 14 m3alt.reiggilo1
Ah, I see. Yes, in this case this would do, as the "offering" dialogue state would just trigger again if talked to Riggilo a second time. Theoretically, this would mean that if another mod NPC reacts at this point, he would do it only for the second time the PC talks to Riggilo, but that's details (I tend to consider all pricipal possibilities, but in the end there is a number X of BG1 NPC mods and if there will be incompatibilities this could still be dealt with later.)

 

Yes, Ajantis should also react to Riggilo state 18, and probably also should warn at state 14 or earlier, but I think I just sticked to the "react to the player's choice" with this one (the state 18 is an oversight, though, so thank you for noticing!)

 

Oh, and don't feel oblieged to play my mods, although I am always happy to hear that people enjoyed them so thank you for the kind words.

 

 

 

BG:EE Spoiler

.

.

.

.

Baeloth's dialogue files are straight foreward, actually: baeloth.dlg for his joining dialogue, baelothJ.dlg for the joined dialogue and baelothP.dlg for the leaving dialogue. Maybe you accidentally looked in the wrong BG1 (not BG:EE) game?

Link to comment

The Baeloth problem was even dumber then that- I had just reinstalled BGEE and thus opened it up in Infinity Explorer, which meant I hadn't patched, which meant Baeloth wasn't there as he only comes with the 1.2 patch. Bah, sometimes I'm clueless.

 

 

I finished interjections (...though I may take another look to make sure I didn't miss anything that should be interjected in, as he's pretty talkative and interjections are easy stuff), wrote six love talks, and wrote one banter with all the non-BGEE NPC's (and discovered I can't write Dyna or Monty for the life of me, meaning banters with them will have to be short and sweet to try and hide that I can't write their accents correctly). Progress! (I can use this thread to talk a bit about it, can't I? >.>) I'm now at the point where I want to try to put him in game to see if he works. That will mean making a cre file (as he doesn't have a portrait or voice, kind of problematic, but eh), doing up the scripting (hard, but I've done it before for small NPC's for myself and Branwen has everything nice and tutorial-like for me to steal shamelessly), and... then making a weidu installer for installing him.

 

That's the part I am clueless about. I have never touched Wediu, and from what little I've found, it all looks Greek to me. Or possibly Hungarian. Do you guys have any suggestions for the easiest/best WEDIU tutorial for someone who has never touched the program before in their life?

 

Oh, and BGEE encoding. From what I understand, using a word like 'naïve' (which gets tossed around a bit) caused BGEE to scream in pain and crash horribly. While I suppose I could just use naive, it doesn't seem the same. How do I make a word not using the standard English alphabet cooperate with BGEE?

 

 

Thank you. <3

Link to comment

WeiDU readme is really a good place to start. For me it was, at least.

 

Special symbols: BGEE will eat out of your hand and purr if you encode the texts in UTF-8 (without BOM). This means you'd have to traify the .d-files into d/tra-pairs, of course (examples given in the WeiDU readme. The %..% thingies make the traifying process choke, though.)

To make a mod that provides both sets of encoded texts, have a look at the links given in this post in CamDawg's BGEE-tutorial (pro5's post above is also very helpful concerning BGEE / classic BG differences).

 

And yay to progress!

Link to comment
++ I can put romance conflicts with Ajantis, Coran, and Xan in the main banter file, or questions about them ("Hai, you told me you were interested but you're sort of sleeping with Coran, what's up with that?") in the main joined dialog file. I could also put say, banters about Coran's baby or Imoen's spellbook in the main banter file, because these characters have the normal joined file already included in the game.

 

Yes, but Coran/Ajantis/Xan romance conflicts are BG1 NPC content, and written by their authors, so please, don't write for them if you(it's a general "you" for all would-be romance authors for BG1) don't have the author's go-ahead. Same goes for Branwen/Dyna/Shar-Teel.

Link to comment

In other words: You can write any crossmod content you like, but it's common courtesy to get the mod author(s) consent.

 

Except for Kulyok's stuff, that she defends like a tiger mama her babies: there you should always ask for her consent. :) (To Kulyok's credit: She is usually cooperative and very active concerning crossmod content, not like me.. EDIT: I mean I am cooperative, if you have suggestions, but I do not write myself)

 

For Ajantis: Feel free to write any crossmod you want. I'm always happy to give my input, of course.

Link to comment

Okay, the WEDIU readme doesn't look as scary as I was expecting. Phew! Complicated, but I think I can do it, hopefully, though if anyone has extra advice on making it work for bgee I'd be pleased to hear it. If I have any questions about it, I'll come crawling back pulling at my hair, rest assured. The encoding problem is a bit more eek. I wasn't planning on tra-fying my files until after the first three or so releases, as I'll probably find a few things I want to add, be correcting wording, and trying to make people sound more in character (as well as fighting with compatibility) as soon as I release it. Hmm. Maybe for now, I'll just stay away from strange lettering. Of course, I suppose that means no cursing in Alzhedo... but I can probably figure out a way around that.

 

As for the crossmod, don't worry. I have absolutely no intention on writing any sort of crossmod without permission from everyone, as I said in my above post (though is Domi still around to check out Coran crossmod? I haven't seen her in a while...). I'd like to write romance conflicts with Ajantis, Coran, and Xan (though I only have ideas for the first one- Alton's not exactly on the best terms with either Coran or Xan so I imagine conflicts with them would be more Coran completely running away with the conversation while Alton stutters uselessly at him and then him and Xan sort of just going "...so, elves/half-elves. :(" at each other, so, yeah, would have to think about that) (oh, and Gavin too, but that's another project and different permissions all together). I'd like to write a friend dialog if CHARNAME is romancing Dyna or Branwen, as well as a banter with Coran and his baby. I'd also like to write an interjection in to Xan's quest- the one with the Calishite slavers- but that';s another thing entirely. But I'm not writing a single word of crossmod until I get permission. That's just rude, and doesn't make one any friends.

 

I also see no point in writing romance crossmod till I've finished writing my romance completely, too, so that's a long time coming. Well, hopefully not too long.

 

I'll definitely contact you both when the time for crossmod comes, but as I said, I don't think that will be too soon. Next month, probably. That's sort of my aim for releasing this, unless the holiday's eat me and don't spit me out till a few weeks later, which has been known to happen. And I suppose that relies on me finding a portrait... bah.

Link to comment

As a side note to anyone who understands WEDIU about as much as I do (IE, nothing at all), I found this modding guide that explains how to code your tpu file, which was what I solely needed (also, WEDIU highlighters for Notepad+++! Why did I not know about these before?). And it finally explained to me what the numbered directions meant so you can get your NPC facing the right direction, because I've never found that anywhere else before, possibly because I am dumb and missing the obvious.

 

So with the help of Branwen's code, that guide, and the WEDIU readme, I managed to get Altan in game. He's using Monty's portrait for some reason (why did I choose that one?) and he's completely mute because looking for voice actors is scary and seems hard, but I managed to get him in game. Progress! I haven't coded up his dialogs to work yet, but I figure I'll do that after I'm done writing them all... it seems easier to do them in a giant block.

Link to comment
As a side note to anyone who understands WEDIU about as much as I do (IE, nothing at all), I found this modding guide that explains how to code your tpu file, which was what I solely needed (also, WEDIU highlighters for Notepad+++!

 

Ooh, that is a nice tutorial. And yes, the highlighters are really handy. Good luck!

Link to comment

Archived

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

×
×
  • Create New...