Jump to content

Cernd.. woah!


Guest eriberri

Recommended Posts

Guest eriberri

Title says it all really; I was majorly impressed by the Cernd RE (I like quite a few of the others too, but this tops the list for me now). Probably a contributing factor was that I love nature & animals myself and could see it all happening in my minds-eye. :p

 

At first I was the way most people are regarding all his weird references to nature - it turned me off him as a potential romance for my bhaalspawn; but after playing his RE, it really changed for me!

His "nature-isms" were actually really subtle and nicely written (and not crammed in every line of conversation) - Cernd all over minus the factors that make him annoying (now why couldn't he have originally been written like that?!).

Plus I loved his feral nature & that yummy scene.. it was so.. well.. *fans self* - yes, I really really loved it! :D:p

 

Ahh! Now it's really made me want to play a full romance of him.. which I know doesn't exist.. gosh, I wish I knew how to code, because I feel certain that I could write some good stuff for this (and I've always wanted to make a romance mod for BG). :D

 

Anyway, that aside, I really want to thank Aeryn for making this encounter and allowing us to see the Cernd in the way he always should have been written. Also, to all the other great RE writers, I really love your work and can't wait for the next update!! :p

Link to comment

Thank you so much. :p To be honest, I actually felt exactly the same way - after I'd finished writing it, I so wanted to romance him because I saw him differently. I think that his original dialogs make him seem...immature I guess is the best word. Or maybe naive. Or both. That originally turned me off of him fast, but the guy has a really interesting story/lifestyle and his picture is just plain smexy. :p Why shouldn't the werewolf get some lovin'?

Link to comment

If you speak Russian or Polish, I recommend Olga Gromyko's "Vedma(Wiedźma)" novels. There's some... wolfish romance... inside.

 

And, agreed, absolutely wonderful. Was a pleasure to implement. If there're any plans to expand Cernd's softer(growling?) side, let me know! :p

Link to comment
Plus I loved his feral nature & that yummy scene.. it was so.. well.. *fans self* - yes, I really really loved it! :p:D

 

Rawr.. I simply have to see that.

 

Ahh! Now it's really made me want to play a full romance of him.. which I know doesn't exist.. gosh, I wish I knew how to code, because I feel certain that I could write some good stuff for this (and I've always wanted to make a romance mod for BG). :p

 

I'd love to help...Cernd Romance is one of the things I'd really be interested in.

Link to comment

Heck, a Cernd romance isn't that hard to code, the major step is WeiDU .d, which is really simple, once you get the hang of it.

 

The WeiDU readme has a couple of good tutorials on using .D, if you don't panic at the 'Don't Panic!' message.

 

I will give a brief introduction into the coding of .D, and if you feel overwhelmed by it, don't hesitate to ask questions, even if they sound a little silly.

 

We are going to write a starting dialogue, for a hypothetical NPC, called Eriberri (:))

 

First, open a new, blank text document. .D is so easy, it uses text files :p

 

BEGIN Eriberri

 

This is the MOST important line in your .D file. It tells the game that the dialogue file actually exists. Make sure it is there.

 

This is your typical starting .D block or 'state'. A state is a node of dialogue, in game, which you see. It has what the NPC says, and what you can respond really.

 

Now, the entire dialogue would look very confusing, so we shall break it down. ;)

 

IF ~NumTimesTalkedTo(0)~ BEGIN Block1

 

Basically, in english, this means:

 

If (this is true) then I can begin saying 'this'.

 

Block1 is simply the name you are giving to this state, or it's 'statename'. Knowing what this means is fairly crucial, if you want to understand the readme. :p

 

You won't see the statename in game, and it is only the name you are giving to it so the engine can reference it properly.

 

WeiDU Rule! Every BEGIN needs an END, no exceptions. Always remember to END everything you BEGIN!

 

SAY ~Hello, my name is Eriberri! I am a new NPC for your group!~

 

This is probably the simplest line, it is basically following on from your state beginning.

 

It translates as I will say 'this'.

 

Remember! What you SAY is always what your NPC says. It is NEVER the PC.

 

IF ~~ THEN REPLY ~Hello Eriberri! My name is <CHARNAME>, and I would like you to come into my group!~ GOTO Block2

 

This is very similar to the beginning of the state, in that it means:

 

If (this is true) then the player can respond with 'this'. If they respond with 'this', you reply with this state.

 

See, very simple. Of course, there are other things you can do, such as switching between NPCs, but that is for another time.

 

WeiDU Rule! Always remember to GOTO to blocks which are in your own .D file!

 

IF ~~ THEN REPLY ~Go away, I don't like you.~ EXIT
END

 

Same as the last one, but instead of GOTOing to another dialogue node, it EXITS the dialogue.

 

Since it is now the end of our block, we END it.

 

WeiDU Rule! You cannot BEGIN something before you END the thing before it

 

So, now, we have a look at our full dialogue block. It should make a little sense, now. :D

 

BEGIN Eriberri

IF ~NumTimesTalkedTo(0)~ BEGIN Block1
SAY ~Hello, my name is Eriberri! I am a new NPC for your group!~
IF ~~ THEN REPLY ~Hello Eriberri! My name is <CHARNAME>, and I would like you to come into my group!~ GOTO Block2
IF ~~ THEN REPLY ~Go away, I don't like you.~ EXIT
END

 

Now, if you are wondering about the NumTimesTalkedTo(0), it is a BG2 scripting trigger, which you can find in the IESDP. It means

 

If ~You talked to me is (0)~ begin...

 

Which is perfectly simple, if you think about it, otherwise we would leave out the IF at the start!

 

The triggers work for anything that uses IF ~~ THEN ... format.

 

Now, this will NOT install, because Block2 doesn't exist! So, like Block1, we have to BEGIN it, and code it again.

 

I will code it in one go now, see if you can follow it:

 

IF ~~ THEN BEGIN Block2
SAY ~Oh, great! I will join immediately!~
IF ~~ THEN DO ~JoinParty()~ EXIT
END

 

You don't have to always reply to a dialogue, you can always just DO something, which uses BG2 Scripting actions. Makes sense that we use the same sort of thing as the triggers! :p

 

So, now, here we have our full .D file, see if it makes sense, or it still confuzzles you!

 

BEGIN Eriberri

IF ~NumTimesTalkedTo(0)~ BEGIN Block1
SAY ~Hello, my name is Eriberri! I am a new NPC for your group!~
IF ~~ THEN REPLY ~Hello Eriberri! My name is <CHARNAME>, and I would like you to come into my group!~ GOTO Block2
IF ~~ THEN REPLY ~Go away, I don't like you.~ EXIT
END

IF ~~ THEN BEGIN Block2
SAY ~Oh, great! I will join immediately!~
IF ~~ THEN DO ~JoinParty()~ EXIT
END

 

Simply save that as Eriberri.D, and you will be done! WeiDU will be happy to compile that for you, and let your reference it in-game. :D

 

So, once again, feel free to ask ANY questions, regardless of silliness. :p

 

And this took a little longer than I expected... .D is simple, but explaining it well is hard.

 

Icen

 

(@ Moongaze: Not that I am stopping you coding this, but imho, more people that know how the better, and I have sort of gathered that you aren't amazing at finishing things)

Link to comment

You definitely do not want to BEGIN! Icendoan, please please please check when you posts these sorts of things, because if somebody followed your advice for a Cernd romance they would be wiping Cernd's dialogue completely, screwing up the game.

 

If you are creating a whole new character, then you would use BEGIN--which creates the file specified. In Icendoan's example, this is the file "Eriberri". These names have to be 8 characters or less.

 

When you want to add dialogue to an existing NPC, you use APPEND FILE. For a Cernd romance, you'd want to append his J (joined) file, like this:

 

APPEND CERNDJ // means, append the following to the file CERNDJ

<<content here>>

END // this ends the appending of the file CERNDJ

Make sense? :p

 

My guide to .d format is very simple, as follows. Read it through and check out Kulyok's excellent dialogue-to-.d format tutorial for some more of the "rules" behind it.

 

Keep in mind, you don't need to understand all the concepts behind .d coding, you just need to know how to do what you want to. There's a (hopefully simple) guide on how to code a romance here, as well--do check it out, because it contains some stuff you'll need to know early on.

 

IF ~~ Dialogue_StateName
 SAY ~This is my line of dialogue. In the name of the state (above), Dialogue is the dialogue title (I'd use c1 for the first dialogue, c2 for the second etc for simplicity), and StateName is--strangely enough--the name of the state. I use a number to keep it simple, so following my suggestion this state would be called c1.1, the next would be c1.2 etcetera.~
 = ~This is how you do a followup line. Make sure you end all lines of dialogue with a tilde! (That's the squiggly thing here -->)~
 ++ ~This is a PC option that will always show, and when the PC chooses it the dialogue goes to the block c1.2.~ + c1.2
 ++ ~This line will set the variable "##CerndIsAHunk" to 1 and goes to block c.3.~ DO ~SetGlobal("##CerndIsAHunk","GLOBAL",1)~ + c1.3
 + ~Gender(Player1,MALE)~ + ~This line will only show if the PC is a male. There are many other checks you can use--more on that in a bit. Goes to block c.4~ + c1.4
 ++ ~This line of dialogue will end the dialogue.~ EXIT
END // this is a comment to say that END ends the block. Strange, huh?

IF ~~ c1.2
 SAY ~This is our next line, which we see if the PC chose the first option. From here, we want to go straight to block 5, which we do by using the following bit of code.~
 IF ~~ + c1.5 // simply means, if there are no conditions (or none of the conditions following are met), go to block c1.5
 IF ~Gender(Player1,MALE)~ + c1.4 // however, if the PC is a male, we'll go to block c1.4. We call these bits "transitions" -->>
END // <<-- and they are evaluated bottom-up, so the bottom most transition is the one checked first.

IF ~~ c1.3
 SAY ~Assuming the above is a compliment Cernd might have some sneaky euphemism here. I don't have much to add here yet, so let's do an action here--we'll... uh, we'll increment the previous variable. Because variables are fun! Or something. We'll increment it by 1.~
 = ~Oh, wait, before we do that. See the ## in the variable? That is where you put your personal modder prefix. For example, mine is LK (though I usually use LK# for ease of readability.) Make sure you use your personal prefix in variables!~
 IF ~~ DO ~IncrementGlobal("##CerndIsAHunk","GLOBAL",1)~ + c1.5 
END

IF ~~ c1.4
 SAY ~Probably not a euphemism here. But all the same--in this one, we're going to simply go to c1.5, nothing fancy.~
 IF ~~ + c1.5
END

IF ~~ c1.5
 SAY ~And this is where we'll end the dialogue. Now, that wasn't so difficult, was it? ("You're a scary freakish man!" I hear you say. Yes. Yes, I am.)~
 = ~But hey, Cernd is a werewolf who speaks in riddles, so who cares :D~
 IF ~~ EXIT
END

Hopefully that makes some modicum of sense.

 

Keep in mind that each state name has to be unique within a file, otherwise WeiDU will tell you off. Also, ++ means the same as IF ~~ THEN REPLY, but... shorter and easier to type. So, + ~<<conditions>>~ + in "long-hand" is IF ~<<conditions>>~ THEN REPLY. Make sense?

 

Finally, to check out what other conditions you can use in dialogue, check out the IESDP; go to Triggers > BGII: ToB :p You can check out actions and lots of other stuff as well. Note this well, for the IESDP is a modders' dictionary, and you'll probably end up referring to it a fair bit!

 

I know it all looks scary! If needed, just break apart each line and look at it individually. Also, if you have any questions don't be afraid to ask--it's a lot of information for one sitting. But honestly, the best way to learn .d code is by imitation. For that purpose, here's that dialogue without the talking, which just needs dialogue filled in--just copy+paste the relevant bits, change the state names and such however you need.

 

IF ~~ c1.1
 SAY ~Line.~
 = ~Another line.~
 ++ ~PC option one.~ + c1.2
 ++ ~PC option two.~ DO ~SetGlobal("##Variable","GLOBAL",1)~ + c1.3
 + ~Gender(Player1,MALE)~ + ~PC option three.~ + c1.4
 ++ ~This line of dialogue will end the dialogue.~ EXIT
END

IF ~~ c1.2
 SAY ~Another line.~
 IF ~~ + c1.5 
 IF ~Gender(Player1,MALE)~ + c1.4 
END 

IF ~~ c1.3
 SAY ~Aaaand another.~
 = ~... you get the point now.~
 IF ~~ DO ~IncrementGlobal("##Variable","GLOBAL",1)~ + c1.5 
END

IF ~~ c1.4
 SAY ~*whistles*~
 IF ~~ + c1.5
END

IF ~~ c1.5
 SAY ~Yawn, yawn.~
 = ~Finally!~
 IF ~~ EXIT
END

Link to comment

I asked Infinity Explorer to show me this dialogue, and it was kind enough to do so :p.

'Whoah' indeed, heh. Very well - written, and Cernd seems somehow less annoying. I always thought the designers gave him the wrong character: with the ability to shapechange and his 'I-hate-cities' attitude, he should be the male equivalent of Faldorn (or I guess I should say of the way she was portrayed in NPC Project), or her version with some more common sense...

Link to comment

Just posting to say a quick "thank you" Aeryn.

 

The Cernd encounter has, so far, proved to be my personal highlight of this intriguing mod.

 

To be honest I've never really had any romantic inclination toward Cernd as character, and to be honest I still don't, but I enjoyed the encounter simply because it was so refreshing to see him portrayed as the wise and amiable man Bioware always hinted at (and then did their utmost to destroy with his personal quests).

 

Again, many thanks.

Link to comment
Just posting to say a quick "thank you" Aeryn.

 

The Cernd encounter has, so far, proved to be my personal highlight of this intriguing mod.

 

To be honest I've never really had any romantic inclination toward Cernd as character, and to be honest I still don't, but I enjoyed the encounter simply because it was so refreshing to see him portrayed as the wise and amiable man Bioware always hinted at (and then did their utmost to destroy with his personal quests).

 

Again, many thanks.

:D It was my pleasure.

Link to comment

Archived

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

×
×
  • Create New...