Jump to content

Mod won't install, can't find a file even though it's present?


ericp07

Recommended Posts

Hello,

 

In the process of reinstalling everything for BGII, I got a failure when trying to install my own NPC mod, and the error message said that EP#HinaJ.DLG could not be found for 'APPEND'. I find this odd, because EP#HinaJ.d exists in the dialogues folder of the mod folder, there's a COMPILE command for it in the .tp2, and I've never seen this error before (mod installed just fine before).

 

What might have happened here, and is there a way to fix it so the mod will install?

 

Thanks,

Eric

Link to comment

Here's the .d file:

 

BEGIN EP#HinaJ

 

// Flirts & Romance

 

IF ~IsGabber(Player1)~

 

THEN BEGIN PID1

 

SAY ~(Hinaeariel sees you looking at her strangely.)~

 

= ~Mani naa ta, <CHARNAME>? (What is it?)~

 

IF ~~ THEN REPLY ~Just making sure you're all right.~ GOTO PID1-1

 

IF ~~ THEN REPLY ~You’re a nice gal, Hinaeariel!~ GOTO PID1-2

 

END

 

IF ~~ THEN BEGIN PID1-1

 

SAY ~I’m fine, thanks!~

 

END

 

IF ~~ THEN BEGIN PID1-2

 

SAY ~Diolalle, <CHARNAME>! (Thank you!)~

 

END

 

// Tree of Life

INTERJECT PLAYER1 33 TreeofLifeVariableForEP#Hina

== PLAYER1 IF ~IsValidForPartyDialog("EP#Hina")~ THEN ~Hinaeariel, the capable ranger who has fought by your side; is she ready to risk her life in the following battle?~

END

++ ~Hinaeariel, there's no point in you coming any further. You don't have to risk your life.~ EXTERN EP#HinaJ Option1

++ ~Hinaeariel, are you sure you want to do this?~ EXTERN EP#HinaJ Option2

++ ~Hinaeariel, you've come with me this far. Will you stand or fall with me now?~ EXTERN EP#HinaJ Option3

 

APPEND EP#HinaJ

IF ~~ THEN BEGIN Option1

SAY ~I believe in putting my life on the line for a just cause, <CHARNAME>, and what we face beyond this point certainly qualifies. Lead the way!~ COPY_TRANS PLAYER1 33

END

 

IF ~~ THEN BEGIN Option2

SAY ~I am sure, <CHARNAME>. You can count on me.~ COPY_TRANS PLAYER1 33

END

 

IF ~~ THEN BEGIN Option3

SAY ~I will stand with you till the end, <CHARNAME>, and my blades will strike in your name.~ COPY_TRANS PLAYER1 33

END

END

 

What technical changes should be made to get this to work? Heh, dialog will be improved as time goes by :)

 

Thanks,

Eric

Link to comment

Content of the .tp2 file:

 

BACKUP ~Hinaeariel/backup~

AUTHOR ~Eric P. (thustar@yahoo.com)~

 

BEGIN ~Hinaeariel for BG2:ToB v1.0~

 

// Beast of Malar

 

COPY ~Hinaeariel/CRE/EP#MABP.CRE~ ~override/EP#MABP.CRE~

SAY NAME1 ~Beast of Malar, hunting panther~

SAY NAME2 ~Beast of Malar, hunting panther~

 

APPEND HATERACE.2DA "BEAST_OF_MALAR 99999 160 99998"

 

COPY_EXISTING HATERACE.2DA OVERRIDE

REPLACE 99999 ~Beast of Malar~

REPLACE 99998 ~The beast of Malar. Sacred to the deity of the savage hunt, the Beast of Malar shifts between savage forms to run down and slay its prey. Unlike a true animal, the Beast of Malar's sole purpose is to hunt and slay. At death, the beast rejoins its deity in his home, where it will be rewarded and reincarnated if it has hunted well.

Its forms have glossy black fur splattered with red marks on the muzzle, paws, and shoulders. The red markings resemble the pattern lefy by spraying blood.

In the sleek hunting panther form it prefers for locating its prey, the beast has high ears and glowing red eyes. The hunting panther form has keen senses and exceptional combat and movement speed, and enough savage fighting ability to slay most foes. The panther form is 5 feet long and weighs between 125 and 150 pounds.

In teh wide-bodied claw slayer form it uses for serious combat, the beast grows thicker and heavier, resembling a low-slung wolverine with an impossibly wide mouth and four paws with curved, scimitarlike claws. Its rear claws and hooks on the "elbows" of its forelimbs enable it to climb swiftly up trees and rock faces, despite the fact that it weighs more than 500 pounds.~

 

COPY ~Hinaeariel/CRE/EP#MABC.CRE~ ~override/EP#MABC.CRE~

SAY NAME1 ~Beast of Malar, claw slayer~

SAY NAME2 ~Beast of Malar, claw slayer~

 

// Hinaeariel's magic items

 

COPY ~Hinaeariel/itm/EP#Hinb.ITM~ ~override/EP#Hinb.ITM~

SAY NAME1 ~Hinaeariel's bow~

SAY NAME2 ~Hinaeariel's bow~

SAY UNIDENTIFIED_DESC ~Composite bows are log bows or short bows whose staves are made from more than one type of material. This gives greater felxibility, adn makes arrows fired from such bows deliver more damage. Wielding such a powerful bow requires a strength of 18.

 

STATISTICS:

 

THAC0: +2 bonus

Damage: +2 bonus

Weight: 10

Speed Factor: 7

Proficiency Type: Long Bow

Type: 2-handed

Requires: 18 Strength

Not Usable By:

Druid

Cleric

Mage

Thief

Bard

Monk

Kensai

Cavalier~

 

SAY DESC ~Composite Long Bow +2. This composite long bow is made of stout, red-stained wood and animal horn, with carvings of ivy covering the wooden portion. It is enchanted to fire more quickly than a non-magical bow.

 

STATISTICS:

 

THAC0: +2 bonus

Damage: +2 bonus

Weight: 10

Speed Factor: 5

Proficiency Type: Long Bow

Type: 2-handed

Requires: 18 Strength

Not Usable By:

Druid

Cleric

Mage

Thief

Bard

Monk

Kensai

Cavalier~

 

COPY ~Hinaeariel/itm/EP#Hiax.ITM~ ~override/EP#Hiax.ITM~

COPY ~Hinaeariel/EFF/CRITINC.EFF~ ~override~

SAY NAME1 ~Hinaeariel's battleaxe~

SAY NAME2 ~Hinaeariel's battleaxe~

SAY UNIDENTIFIED_DESC ~The most common version of the battle axe is a stout pole four feet in length with a single-edged, trumpet-shaped blade mounted on one end. Battle axes are also called broad axes.

 

STATISTICS:

 

Damage: 1d8

Damage Type: slashing

Weight: 5

Speed Factor: 5

Proficiency Type: Axe

Type: 1-handed

Requires: 10 Strength

Not Usable By:

Druid

Cleric

Mage

Thief

Monk

Beast Master~

 

SAY DESC ~This is a single-bladed battle axe of fine craftsmanship, and is enchanted to be more effective in combat.

 

STATISTICS:

 

THAC0: +2 bonus

Damage: 1d8 + 2

Damage Type: slashing

Weight: 5

Speed Factor: 5

Proficiency Type: Axe

Type: 1-handed

Requires: 10 Strength

Not Usable By:

Druid

Cleric

Mage

Thief

Monk

Beast Master~

 

COPY ~Hinaeariel/itm/EP#Hins.ITM~ ~override/EP#Hins.ITM~

COPY ~Hinaeariel/EFF/DBVSMAL.EFF~ ~override~

SAY NAME1 ~Uandravor, "Monster Cleaver"~

SAY NAME2 ~Hinaeariel's scimitar~

SAY UNIDENTIFIED_DESC ~The long, curved, single-edged blad is characteristic of both the sabre and the scimitar, even though their origins lie in different parts of Faerun. Whereas the sabre was intended mainly for horsemen due to its versatility, the scimitar has a heavier oriental influence. The "shamshir," as it was originally called, is larger, has a greater curve to it, and is tapered to an elongated, sharp point. Thus, it is slightly slower, but tends to be more effective and deadly in combat.

 

STATISTICS:

 

Damage: 1d8

Damage Type: slashing

Weight: 3

Speed Factor: 4

Proficiency Type: Scimitar

Type: 1-handed

Requires: 10 Strength

Not Usable By:

Cleric

Mage

Beast Master~

 

SAY DESC ~Scimitar +2: Uandravor, "Monster Cleaver." This exceptionally crafted scimitar's Elven name is etched into the blade in fine Espruar script. It bears enchantment to be more effective against those who serve the Beast, Malar.

 

STATISTICS:

 

THAC0: +2 bonus

Damage: 1d8 + 2

Damage Type: slashing

Weight: 3

Speed Factor: 4

Proficiency Type: Scimitar

Type: 1-handed

Requires: 10 Strength

Not Usable By:

Cleric

Mage

Beast Master~

 

// Hinaeariel

 

COPY ~Hinaeariel/CRE/EP#HINA.CRE~ ~override/EP#HINA.CRE~

 

SAY NAME1 ~Hinaeariel~

SAY NAME2 ~Hinaeariel~

 

SAY BIO ~When you ask her about her past, Hinaeariel smiles, a look of fond remembrance on her face. She tells you that she was born to a ranger mother and a druid father, highly unusual for her people in that they worshipped not only the Seldarine, but also Mielikki, the Supreme Ranger and Lady of the Forest, one of the Powers of Toril. She explains that her extended family lives in a camp that they make in the forest of Cormanthor, far to the east, and that this camp relocates with the seasons. Her parents raised her to respect and revere nature, especially the animal and plant life of the forest, and her mother trained her in the ways of the rangers.

 

After a brief moment of silence, Hinaeariel's expression changes to one of sadness. She goes on to explain how the family camp was attacked one day by followers of Malar, the Great Beast, an evil and destructive Power, when she was approaching adulthood. She chokes a bit in the telling of how she and her mother became separated from her father, and that he was overwhelmed and killed by a group of lycanthropes.

 

After another brief pause, her expression changes to one of grim determination, and she concludes by explaining that it was this event that moved her to decide to dedicate her life to seeking out and destroying Malar's followers wherever she might find them, in addition to performing as a woodland guide to travelers through the forest of Cormanthor, to keep both them and the woods safe from harm.~

 

SAY MORALE ~A rolling stone gathers no moss.~

SAY HAPPY ~We make an excellent team!~

SAY UNHAPPY_ANNOYED ~Mielikki would not approve.~

SAY UNHAPPY_SERIOUS ~I cannot continue down this path!~

SAY UNHAPPY_BREAKING ~I regret that I must leave you for now.~

SAY LEADER ~As the Lady of the Forest guides me, so shall I guide you.~

SAY TIRED ~I can't track much longer without rest.~

SAY BORED ~Are we ready to move out yet?~

SAY BATTLE_CRY1 ~Give death!~

SAY BATTLE_CRY2 ~Death to nature's foes!~

SAY BATTLE_CRY3 ~Your life is forfeit!~

SAY BATTLE_CRY4 ~Enemies of Mielikki shall fall!~

SAY DAMAGE ~Ah!~

SAY DYING ~Mielikki, receive my spirit~

SAY HURT ~Oh! I'm hit...badly...~

SAY AREA_FOREST ~Mielikki's domain is the most beautiful of all places in the Realms.~

SAY AREA_CITY ~Such a crowded, dirty, loud place this is. Why do people live this way?~

SAY AREA_DUNGEON ~I long for the fresh air and the sounds of the forest. We should leave this foul place.~

SAY AREA_DAY ~The light of day lets us appreciate nature's wonders.~

SAY AREA_NIGHT ~Let us tread cautiously under cover of night, as dangerous beasts abound.~

SAY SELECT_COMMON1 ~How may this Needle be of service?~

SAY SELECT_COMMON2 ~Shall I track for you?~

SAY SELECT_COMMON3 ~Avavaen?~

SAY SELECT_COMMON4 ~Hmmm?~

SAY SELECT_COMMON5 ~You called?~

SAY SELECT_COMMON6 ~Ready.~

SAY SELECT_ACTION1 ~Got it.~

SAY SELECT_ACTION2 ~As Mielikki directs me.~

SAY SELECT_ACTION3 ~By your command.~

SAY SELECT_ACTION4 ~As good as done.~

SAY SELECT_ACTION5 ~Watch a Needle in action.~

SAY SELECT_ACTION6 ~For the cause.~

SAY SELECT_ACTION7 ~Not a problem.~

SAY SELECT_RARE1 ~To live is to serve.~

SAY SELECT_RARE2 ~With pleasure.~

SAY CRITICAL_HIT ~A deadly strike for Mielikki!~

SAY CRITICAL_MISS ~How did *that* happen?~

SAY TARGET_IMMUNE ~My weapon does not harm this one!~

SAY INVENTORY_FULL ~I have all I can carry.~

 

COMPILE ~Hinaeariel/dialogues/EP#Hina.d~

COMPILE ~Hinaeariel/dialogues/EP#HinaB.d~

COMPILE ~Hinaeariel/dialogues/EP#HinaJ.d~

COMPILE ~Hinaeariel/BAF/EP#Hina.baf~

 

EXTEND_TOP ~AR1200.bcs~ ~Hinaeariel/AR1200.baf~

 

// Portraits

 

COPY ~Hinaeariel/graphics/EP#HinL.bmp~ ~portraits~

COPY ~Hinaeariel/graphics/EP#HinS.bmp~ ~portraits~

COPY ~Hinaeariel/Epilogue/BlankEpilogue.2da~ ~override~

 

REPLACE_TEXTUALLY ~PORTRAIT~ ~EP#HinL~ // The biggest portrait file you have for the NPC

 

REPLACE 99999 ~The Epilogue itself~

 

COPY ~Hinaeariel/audio/EP#blank.mus~ ~music~

 

COPY_EXISTING ~songlist.2da~ ~override~

 

SET_2DA_ENTRY 0 2 3 ~EP#BLANK.MUS~

 

 

 

ACTION_IF ("%WEIDU_OS%" STRING_COMPARE_CASE ~WIN32~ = 0) THEN BEGIN // if Windows

 

COPY ~Hinaeariel/audio~ ~override~

 

AT_NOW ~Hinaeariel/Hinaaudio.bat~

 

AT_INTERACTIVE_UNINSTALL ~Hinaeariel/Hinaaudiouninstall.bat~

 

END ELSE BEGIN // if OS X or Linux

 

AT_NOW ~sh Hinaeariel/Hinaaudio.sh~

 

AT_UNINSTALL ~sh Hinaeariel/Hinaaudiouninstall.sh~

 

END

 

APPEND ~pdialog.2da~

~EP#Hina EP#HinaP EP#HinaJ EP#HinaD EP#Hin25P EP#Hin25J EP#Hin25D EP#Hina25~

UNLESS ~EP#Hina~

 

APPEND ~interdia.2da~

~EP#Hina EP#HinaB EP#HinB25~

UNLESS ~EP#Hina~

 

I'm sure much of this is inefficient, so any advice on improving this file will be greatly appreciated. For purposes of this thread, is there anything in here that would cause the installer to find a problem with EP#HinaJ.d? Why is EP#HinaJ.BCS not being created?

 

Thanks,

Eric

Link to comment
Why is EP#HinaJ.BCS not being created?
Because you're not compiling EP#HinaJ.baf?

 

Did you check the debug log for your mod?

 

Might want to obfuscate your email address too, unless you like spambot harvesters.

Link to comment
Why is EP#HinaJ.BCS not being created?
Because you're not compiling EP#HinaJ.baf?

 

Did you check the debug log for your mod?

 

Might want to obfuscate your email address too, unless you like spambot harvesters.

 

D'oh! I take it this means I should change from EP#HinaJ.d to EP#HinaJ.baf in the appropriate COMPILE line. Good enough, I'll fix it and see if the mod will install.

 

Thanks for the e-mail address tip, too :)

 

- E

Link to comment
Why is EP#HinaJ.BCS not being created?
Because you're not compiling EP#HinaJ.baf?

 

Did you check the debug log for your mod?

 

Might want to obfuscate your email address too, unless you like spambot harvesters.

 

D'oh! I take it this means I should change from EP#HinaJ.d to EP#HinaJ.baf in the appropriate COMPILE line. Good enough, I'll fix it and see if the mod will install.

 

Thanks for the e-mail address tip, too :)

 

- E

 

The problem here is that I don't have a EP#HinaJ.baf file. Wasn't aware that I needed one, and the mod has installed and functioned properly without one. Do I need to create this? What should be the content?

 

Thanks,

Eric

Link to comment

.baf is scripting. It is OK, and fairly easy to use.

 

Uses this format:

IF
 TRIGGER([VARIABLE])
THEN
 RESPONSE #X //X is the weight, determines the chance of the action happening. According to Sim's scripting guide, there is a slight bias towards the first option.
ACTION([REQUIRED ACTORS])
END

 

A useful action is Continue(), which tells the engine not to start reading the entire script again, but simply to carry on reading.

 

An example block would be:

IF
 Detect(Player1) //Player1 is an object not a DV, so no quotes
THEN
 RESPONSE #100 //No other options, so we leave it at 100
Attack(Player1)
SetGlobal("AttackedPlayer1","GLOBAL",1)
END

 

Now, to use the Continue() action, something like this would be better:

IF
 Detect(Player1)
 Global("WrongDialoguePath","GLOBAL",1)
THEN
 RESPONSE #99
Attack(Player1)
 RESPONSE #1
ReallyForceSpell(Player1,"SPPR601")
SetGlobal("WrongDialoguePath","GLOBAL",0)
SetGlobal("MadeAmends","GLOBAL",1)
Continue()
END

IF
 Detect(Player1)
 !Global("WrongDialoguePath","GLOBAL",1) //The ! means not, so this is true if the global ISN'T 1
 Global("MadeAmends","GLOBAL",1)
THEN
 RESPONSE #100
DisplayString("Sorry, I will allow you to recover in my house")
ActionOverride(Player1,Rest())
SetGlobal("PartyRested","GLOBAL",1)
Continue()
END

 

You can tie this in with dialogue with use of globals in order to create quests. Can you see that from the last few blocks of .baf?

 

Oh, if I got anything wrong, please correct me.

 

Icen

Link to comment

OK, so, in my sublime ignorance, I'm guessing that I could simply rename my xxxJ.d file as xxxJ.baf, and the COMPILE command will handle it properly so that installation can continue (where before I was seeing an error at that point). I currently have EP#Hina.baf and EP#Hina25.baf. EP#Hina.baf has Globals set for a simple interactive talk with Player1, but EP#Hina25.baf is an empty text file.

 

Looks like another trip to iesdp is in order, to straighten me out about .d versus .baf files.

 

Thanks,

Eric

Link to comment

Hey, Eric, you just installed Haldamir, a mod with very simple, abundantly commented code. Why don't you open up the mod folder and take a look at how the D and the BAF connect to each other? Each section of the dialogue is labeled, as is each part of the script, so you should be able to match them up easily.

Link to comment
Hey, Eric, you just installed Haldamir, a mod with very simple, abundantly commented code. Why don't you open up the mod folder and take a look at how the D and the BAF connect to each other? Each section of the dialogue is labeled, as is each part of the script, so you should be able to match them up easily.

 

You've probably saved me from further disaster :) Thanks, I'll take a look...

 

- E

Link to comment

Archived

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

×
×
  • Create New...