The following is based on Van Buren design documents and is not canon. |
This is a draft of dialogue for the character Kyle "the Hook" which was included in the Bloomfield Space Center design document for Van Buren, the canceled Fallout 3 by Black Isle Studios.
The following is the original document or a transcript thereof. |
Level - 12 STATS Traits – Finesse, One Hander Perks – Demolition Expert, Tag! Tag Skills – Deception (90%), Traps (110%),
|
Dialogue Info | |
---|---|
Author | Damien Foletto |
Dialogue Name | 15 Kyle |
Creature Name | 15Kyle |
- Example Dialogue Name: 02 Porter
- Example Creature Name: 02Porter
'ere's probably the most-commonly-used check script: GetTotalSkill (PCSpeaker(),SKILL)
You might want to set up an autocorrect option in word so you don'have to type out the whole thing (I have mine set up so if I type gett it spits out the above check with an ==1 at the end of it).
Try using "Avellone-style" node numbering. That's w'ere you give the node a "number" that's actually a unique word, such as TELLABOUTSELF: for a node w'ere the PC has asked an NPC to tell about himself. Just refer to that word with your Goto statements (like Goto TELLABOUTSELF: ) an' when you're all done with the dialogue you can do a global replace for that word with a real number. Doing this means that you can group nodes by topic in the dialogue file an' not have to worry about renumbering if you have to insert another node later.
If you use this method, be sure to make the word something that is unique an' won't accidentally be used in other parts of the dialogue; ASSHOLEINSULT is a good word, just ASSHOLE isn't because if a node has a character actually saying "asshole" the global search would catch that, too. You can also use a colon character at the end of the unique word like I did in the TELLABOUTSELF: example, above. Whatever you do, don'use a number all by itself as a placeholder like this … I learned the hard way that some numbers pop up everyw'ere an' doing a global replace on them totally screws up your dialogue!
For an example of this method, check out the Avellone_Dialogue_Example_Ordor.doc file in Tools/Design/Documents on sourcesafe (the same place you find this dialogue template file).
Journal entry table Column 1 is the journal entry number (starting with 1 an' increasing by 1 each time) Column 2 is the quest ID (which the Dialogue Editor generates for you when you enter the dialogue name into the stringtable. Column 3 is the actual text that'll appear in the PC's journal. It should be written in first-person ("I this, I that, they did something to me.") | ||
---|---|---|
1 | ||
2 | ||
Experience Table Column 1 is the XP entry number (starting with 1 an' increasing by 1 each time) Column 2 is the XP amount for that entry. We haven't defined how we're describing this just yet an' I don'know if we're going to use the FR6 system, so for now just put "low", "medium", or "high" an' assume it'll be tailored to the PC's level somehw.. Column 3 is the actual text that'll appear in the text window during gameplay. It should be written in second-person ("You gain 500 XP for killing all the humans.") | ||
---|---|---|
1 | ||
2 | ||
3 |
1)
Node 1 | ||||
---|---|---|---|---|
Comment | Starting Conditions | |||
Reply 1 | ||||
Comment | ||||
Condition | ||||
Action | ||||
Link 1 | Goto 9 | |||
Comment | Third time after warning time | |||
Condition | GetGlobal("12_Third_Time")==1 | |||
Action | ||||
Link 2 | Goto 8 | |||
Comment | Second time | |||
Condition | GetGlobal("15_Talked_Kyle")==1 | |||
Action | ||||
Link 3 | Goto 2 | |||
Comment | First time | |||
Condition | GetGlobal("15_Talked_Kyle")==0 | |||
Action | SetGlobal("15_Talked_Kyle",1) |
2) First Time (SC)
Node 2: First Time | ||||
---|---|---|---|---|
Comment | ||||
Condition | ||||
Action | ||||
NodeText 1 | Holy <SHIT>, what brahmin pinched you out its <ASS>? Why you botherin' Kyle the Hook, anyways? Go talk to Sid over there if you wanna trade – I ain't got time to <DICK> around. | |||
Comment | If PC is hideously ugly; i.e. <3 CH. And Bear is not dead. | |||
Condition | GetPrimaryAttribute (PCSpeaker(), PRIMARYATTRIBUTE_CHARISMA) <3 | |||
Action | SetGlobal("15_Fugly_PC",1) | |||
NodeText 2 | Who the <FUCK> are ya and why ya talkin' to Kyle the Hook? | |||
Comment | If CH is >=3 | |||
Condition | GetPrimaryAttribute (PCSpeaker(), PRIMARYATTRIBUTE_CHARISMA) >=3 | |||
Action | ||||
Reply 1 | Uh, yeah... So, Sid told me you're the leader of the Rusty Hooks. I've some questions about you and your gang. | |||
Comment | A non-dumb response for being an ugly sucker | |||
Condition | IsSmartPC() && GetGlobal("15_Fugly_PC")==1 && GetGlobal("15_Rusty_Hooks")>0 | |||
Action | ||||
Link 1 | Goto 3 | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 2 | Me never be in Brahmin butt . Sid said you leader, you know stuff. | |||
Comment | Dumb response for being an ugly sucker | |||
Condition | IsDumbPC() && GetGlobal("15_Fugly_PC")==1 && GetGlobal("15_Rusty_Hooks")>0 | |||
Action | ||||
Link 1 | Goto 4 | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 3 | Me <CHARNAME>. Me ask questions. | |||
Comment | A dumb response | |||
Condition | IsDumbPC() && GetGlobal("15_Fugly_PC") < 1 | |||
Action | ||||
Link 1 | Goto 6 | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 4 | I'm <CHARNAME>. I'd like to ask you some questions. | |||
Comment | A non-dumb response | |||
Condition | IsSmartPC() | |||
Action | ||||
Link 1 | Goto 7 | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 5 | Kyle the Hook? I've a bounty on your head I intend to collect. | |||
Comment | A non-dumb response for being an ugly sucker | |||
Condition | IsSmartPC() && GetGlobal("12_Kyle_Bounty")==2 | |||
Action | ||||
Link 1 | Goto 3 | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 6 | You Kyle the Hook? You me bounty, make <CHARNAME> money with Kyle's head. | |||
Comment | Dumb response for being an ugly sucker | |||
Condition | IsDumbPC() && GetGlobal("12_Kyle_Bounty")==2 | |||
Action | ||||
Link 1 | Goto 10 | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 7 | Goodbye. | |||
Comment | ||||
Condition | ||||
Action | ||||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action | ||||
Reply 8 | Me no brahmin poo. Me pull your lungs through nose. Me think more fun. | |||
Comment | A dumb response & fight! | |||
Condition | IsDumbPC() && GetGlobal("15_Fugly_PC")==1 | |||
Action | SetMyTeamEnemyToParty() AddEntry( 0, TaskDescriptionID ) | |||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action | ||||
Reply 9 | Callin' me Brahmin <SHIT>? How about I just punch your nose into the back of your skull, instead? | |||
Comment | A non-dumb response & fight! | |||
Condition | IsSmartPC() && GetGlobal("15_Fugly_PC")==1 | |||
Action | SetMyTeamEnemyToParty() AddEntry( 0, TaskDescriptionID ) | |||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action |
3) Non-dumb questions (02)
Node 3: Non-dumb questions | ||||
---|---|---|---|---|
Comment | ||||
Condition | ||||
Action | ||||
NodeText 1 | Sid said that, did he? I'll have to have a talk with that slop talkin' hag <SHIT>. Look, I ain't got time for your. Go bother Bear or big-mouth Sid with <SHIT> like that. | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 2 | I think you might want to answer my questions – I know about Bear's heart bomb. | |||
Comment | ||||
Condition | GetGlobal("15_Sid_Confess") > 0 | |||
Action | ||||
Link 1 | Goto 5 | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 2 | Goodbye. | |||
Comment | ||||
Condition | ||||
Action | ||||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action | ||||
Reply 3 | You know what? I don't like your attitude. I think you require a permanent adjustment. | |||
Comment | Attack! | |||
Condition | ||||
Action | SetMyTeamEnemyToParty() | |||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action |
4) dumb questions (02)
Node 4: dumb questions | ||||
---|---|---|---|---|
Comment | ||||
Condition | ||||
Action | ||||
NodeText 1 | Sid said that, did he? Yeah, I know stuff, but I sure as <SHIT> ain't tellin' you. Now get the hell away from me before I up your intelligence with a bullet in your brain. | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 1 | Goodbye. | |||
Comment | ||||
Condition | ||||
Action | ||||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action | ||||
Reply 2 | You got nasty poo-poo mouth. Me clean your poo-poo mouth! | |||
Comment | Attack! | |||
Condition | ||||
Action | SetMyTeamEnemyToParty() | |||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action |
5) >140 Persuade (03)
Node 5: > 140 Persuade | ||||
---|---|---|---|---|
Comment | ||||
Condition | ||||
Action | ||||
NodeText 1 | WHAT?! Did Sid tell you? I'll kill that old waste-billy! Now, I suggest ya leave this place faster than ya got here before me and the Hooks use ya for target practice! | |||
Comment | Start cut scene having Kyle go over and shoot Sid in the face. | |||
Condition | ||||
Action | SetGlobal("15_Kyle_Kill_Sid",1) | |||
Reply 1 | Goodbye. | |||
Comment | Start cut scene where Kyle walks up to Sid and shoots him in the face. | |||
Condition | ||||
Action | ||||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action | ||||
Reply 2 | Kinda tough to hit a target that hits back. Time to die! | |||
Comment | Attack! | |||
Condition | ||||
Action | SetMyTeamEnemyToParty() | |||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action |
6) dumb questions not ugly (02)
Node 4: dumb questions not ugly | ||||
---|---|---|---|---|
Comment | ||||
Condition | ||||
Action | ||||
NodeText 1 | <CHARNAME>, is it? Dumb name for a dumb <FUCK>. Look, Kyle the Hook ain't got time to answer questions from a <SHIT> brain like you. Now git before I get nasty. | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 1 | Goodbye. | |||
Comment | ||||
Condition | ||||
Action | ||||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action | ||||
Reply 2 | You got nasty poo-poo mouth. Me clean your poo-poo mouth! | |||
Comment | Attack! | |||
Condition | ||||
Action | SetMyTeamEnemyToParty() | |||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action |
7) Non-dumb questions & not ugly (02)
Node 7: Non-dumb questions & not ugly | ||||
---|---|---|---|---|
Comment | ||||
Condition | ||||
Action | ||||
NodeText 1 | And I'd like to bash you in the skull with a bag of brahmin nuts. Look, Kyle the Hook's too busy to answer <DIPSHIT> questions from a wanderin' waste-billy. Go waste Bear or Sid's time. Now git! | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 2 | I think you might want to answer my questions – I know about Bear's heart bomb, Kyle. | |||
Comment | ||||
Condition | GetGlobal("15_Sid_Confess") < 2 | |||
Action | ||||
Link 1 | Goto 5 | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 2 | Goodbye. | |||
Comment | ||||
Condition | ||||
Action | ||||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action | ||||
Reply 3 | You know what? I don't like your attitude. I think you require a permanent adjustment. | |||
Comment | Attack! | |||
Condition | ||||
Action | SetMyTeamEnemyToParty() | |||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action |
8) Second Time (SC)
Node 8: Second Time | ||||
---|---|---|---|---|
Comment | ||||
Condition | ||||
Action | ||||
NodeText 1 | You again? What part of <FUCK OFF> don't ya get? I got an itchy trigger finger and your head looks like a prime target. Now get the <FUCK> away from me before I lose it! This is your last warnin'. | |||
Comment | Not dummy | |||
Condition | IsSmartPC() | |||
Action | SetGlobal("12_Third_Time",1) | |||
NodeText 2 | Not you again. What is it, you not understandin' the phrase, <FUCK OFF>? I'm through bein' nice, ya slow sack of slug <SHIT>. Now git before me and the gang start shootin'! And I ain't telling ya again. | |||
Comment | dummy | |||
Condition | IsDumbPC() | |||
Action | SetGlobal("12_Third_Time",1) | |||
Reply 1 | But wait, I... | |||
Comment | Not dummy | |||
Condition | IsSmartPC() | |||
Action | ||||
Link 1 | Goto 9 | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 2 | Me want... | |||
Comment | dummy | |||
Condition | IsDumbPC() | |||
Action | ||||
Link 1 | Goto 9 | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 3 | Good bye | |||
Comment | ||||
Condition | ||||
Action | ||||
Link 1 | Goto 9 | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 4 | That's it, you're dead. | |||
Comment | Attack! | |||
Condition | ||||
Action | SetMyTeamEnemyToParty() | |||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action |
9) But I... & Me want... (8)
Node 9: But I... & Me want... | ||||
---|---|---|---|---|
Comment | ||||
Condition | ||||
Action | ||||
NodeText 1 | SHUT IT! I warned you about talkin' to Kyle the Hook, now you're gonna pay for your idiocy. Hooks, kill this piece of <SHIT>! | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 4 | Uh-oh... | |||
Comment | Attack! | |||
Condition | ||||
Action | SetMyTeamEnemyToParty() | |||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action |
10) Bounty hunt (2)
Node 9: But I... & Me want... | ||||
---|---|---|---|---|
Comment | ||||
Condition | ||||
Action | ||||
NodeText 1 | Hey Hooks, we got another bounty hunter gunnin' for yours truly. How about we welcome him with a burst or two of bullets? | |||
Comment | ||||
Condition | ||||
Action | ||||
Reply 4 | Uh-oh... | |||
Comment | Attack! | |||
Condition | ||||
Action | SetMyTeamEnemyToParty() | |||
Link 1 | ||||
Comment | ||||
Condition | ||||
Action |