Jump to content


Dynaheir installation problem


5 replies to this topic

#1 Guest_Ravens_*

Guest_Ravens_*
  • Guests

Posted 15 March 2009 - 06:00 AM

Hi everyone, I'm just trying to install this great mod to my clear easytutu conversion and everything seemed gone well till the dynaheir romance contents.
Here's the error

ERROR locating resource for 'COPY'
Resource [x#winski.cre] not found in KEY file:
[./chitin.key]
Stopping installation because of error.
Stopping installation because of error.

ERROR Installing [The BG1 NPC Project: Dynaheir's Romance Core (teen content)], rolling back to previous state
[bg1npc/backup/12/UNSETSTR.12] SET_STRING uninstall info not found
Will uninstall 88 files for [BG1NPC.TP2] component 12.
Uninstalled 88 files for [BG1NPC.TP2] component 12.
ERROR: Failure("resource [x#winski.cre] not found for 'COPY'")
PLEASE email the file SETUP-BG1NPC.DEBUG to The BG1 NPC Project Team: forums.gibberlings3.net/index.php?showforum=45
Using Language [English]


Is there a problem with the vanilla BG installation, missing this "x#winski.cre" file?

No problem with the other contents and romances. Only troubles with the dynaheir one (damn, the which one i care about!)

Help very appreciated!

PS
Hope my english doesn't suck too much! :p

#2 Guest_Mr.Misfit_*

Guest_Mr.Misfit_*
  • Guests

Posted 27 June 2009 - 12:55 PM

Ay, problem persists, folks.
I too cannot install the bg1npc-dynaheir romance, although I have the exact same installation on both my mobile pc and desktop computer.
And I am wondering, why does it work on my mobile pc?

#3 Mike1072

Mike1072
  • Gibberlings
  • 1767 posts
  • Gender:Male
  • Location:Canada

Posted 27 June 2009 - 01:56 PM

x#winski.cre is copied over in the Banters, Quests, and Interjections component. The interim solution for players is to install that component before installing Dynaheir's romance.

Edit: the reason this error hasn't been reported more often is because it requires that the Banter/Quest/Interjection component not be installed and the Add Portraits to Non-Joinable NPCs component be installed.

Edited by Mike1072, 27 June 2009 - 02:05 PM.


#4 cmorgan

cmorgan

    journeyman investigator

  • Gibberlings
  • 6913 posts
  • Gender:Male
  • Location:Glencoe, IL, USA

Posted 28 June 2009 - 07:08 AM

Darn - never thought of that loophole. So we need a recode of this.


OK, Logic check. Dy's Quest embedded in the {banters, quests, interjections} component adds x#winski.cre.

The Portraits component installs a flag file if it is chosen, X#NJNPCPortrait.G3
then does its stuff. At that point it does not refer to x#winski -

COPY_EXISTING ~%tutu_var%winski.cre~ ~override~
	WRITE_ASCII 0x34 ~winskis~ #8 //  small portrait
  BUT_ONLY_IF_IT_CHANGES
  COPY_EXISTING ~%tutu_var%winski2.cre~ ~override~
	WRITE_ASCII 0x34 ~winskis~ #8 //  small portrait
  BUT_ONLY_IF_IT_CHANGES

BUT

in the Dynaheir Romance materials, the only screening flag for x#winski is the potrait flag, X#NJNPCPortrait.G3

which means if someone does not install the banter component, but does install the NPC portrait component,

the resource is missing.

Fix:

bg1npc.tp2, lines 6055 - 6069
/* Add Portraits if NJNPC Portraits was chosen */
  ACTION_IF FILE_EXISTS_IN_GAME ~X#NJNPCPortrait.G3~ THEN BEGIN
	COPY_EXISTING ~x#nell.cre~ ~override~
	  WRITE_ASCII 0x34 ~madams~ #8 // small portrait
	COPY_EXISTING ~x#madr.cre~ ~override~
	  WRITE_ASCII 0x34 ~madrinas~ #8 // small portrait
	COPY_EXISTING ~x#bhet.cre~ ~override~
	  WRITE_ASCII 0x34 ~bhetels~ #8 // small portrait
	COPY_EXISTING ~x#sveet.cre~ ~override~
	  WRITE_ASCII 0x34 ~sveetlas~ #8 // small portrait
	COPY_EXISTING ~x#winski.cre~ ~override~
	  WRITE_ASCII 0x34 ~winskis~ #8 // small portrait
	COPY_EXISTING ~x#setta.cre~ ~override~
	  WRITE_ASCII 0x34 ~settas~ #8 // small portrait
  END

replace with

/* Add Portraits if NJNPC Portraits was chosen */
  ACTION_IF FILE_EXISTS_IN_GAME ~X#NJNPCPortrait.G3~ THEN BEGIN
	COPY_EXISTING ~x#nell.cre~ ~override~
	  WRITE_ASCII 0x34 ~madams~ #8 // small portrait
	COPY_EXISTING ~x#madr.cre~ ~override~
	  WRITE_ASCII 0x34 ~madrinas~ #8 // small portrait
	COPY_EXISTING ~x#bhet.cre~ ~override~
	  WRITE_ASCII 0x34 ~bhetels~ #8 // small portrait
	COPY_EXISTING ~x#sveet.cre~ ~override~
	  WRITE_ASCII 0x34 ~sveetlas~ #8 // small portrait
	COPY_EXISTING ~x#winski.cre~ ~override~
	  WRITE_ASCII 0x34 ~winskis~ #8 // small portrait
	COPY_EXISTING ~x#setta.cre~ ~override~
	  WRITE_ASCII 0x34 ~settas~ #8 // small portrait
	ACTION_IF FILE_EXISTS_IN_GAME ~x#winski.cre~ THEN BEGIN
	  COPY_EXISTING ~x#winski.cre~ ~override~
			WRITE_ASCII 0x34 ~winskis~ #8 // small portrait
	  END
  END

and we need to go recheck if anything else automatically messes with x#winski that way -


Searching for: X#winski
bg1npc_docs\bg1npcvarindex.htm(17566): <td>X#WinskiTakeDyna</td>
phase2\baf\x#dynaquest.baf(337): CreateCreatureObjectDoor("X#WINSKI",Player1,0,0,0)
phase2\baf\x#dyqwin.baf(91): Global("X#WinskiTakeDyna","GLOBAL",1)
phase2\baf\x#dyqwin.baf(107): SetGlobal("X#WinskiTakeDyna","GLOBAL",2)
phase2\baf\x#impspl.baf(170): SetGlobal("X#WinskiTakeDyna","GLOBAL",1)
phase2\dlg\x#dynaquest.d(8): BEGIN ~X#WINSKI~
phase2\dlg\x#dynaquest.d(354): /* Initial teleport added to Dynaheir's BCS: _YNAHEIR.BCS X#WINSKI used as walking, instead of %tutu_var%WINSKI2 9sleeping man anim, existing D, and existing .BCS */
phase2\dlg\x#dynaquest.d(355): APPEND ~X#WINSKI~
phase2\dlg\x#dynaquest.d(364): == ~X#WINSKI~ @132 EXTERN ~%DYNAHEIR_BANTER%~ X#DYWIN62
phase2\dlg\x#dynaquest.d(369): == ~X#WINSKI~ IF ~InParty("minsc") InMyArea("minsc") !StateCheck("minsc",CD_STATE_NOTVALID)~ THEN @135
phase2\dlg\x#dynaquest.d(370): == ~X#WINSKI~ @136 DO ~SetGlobal("X#DYQUImpAttack","GLOBAL",1) SetGlobal("X#WinskiTakeDyna","GLOBAL",1) SetGlobal("X#DynaheirRomanceInactive","GLOBAL",1)~ EXIT
phase2\dlg\x#dynaquest.d(376): + ~Class(Player1,THIEF_ALL)~ + @139 EXTERN ~X#WINSKI~ X#DYWIN61love
phase2\dlg\x#dynaquest.d(377): + ~Class(Player1,BARD)~ + @140 EXTERN ~X#WINSKI~ X#DYWIN61love
phase2\dlg\x#dynaquest.d(378): + ~Class(Player1,FIGHTER_ALL)~ + @141 EXTERN ~X#WINSKI~ X#DYWIN61love
phase2\dlg\x#dynaquest.d(379): + ~Class(Player1,PALADIN)~ + @142 EXTERN ~X#WINSKI~ X#DYWIN61love
phase2\dlg\x#dynaquest.d(380): + ~Class(Player1,RANGER_ALL)~ + @143 EXTERN ~X#WINSKI~ X#DYWIN61love
phase2\dlg\x#dynaquest.d(381): + ~Class(Player1,CLERIC_ALL)~ + @144 EXTERN ~X#WINSKI~ X#DYWIN61love
phase2\dlg\x#dynaquest.d(382): + ~Class(Player1,DRUID_ALL)~ + @145 EXTERN ~X#WINSKI~ X#DYWIN61love
phase2\dlg\x#dynaquest.d(383): + ~Class(Player1,MONK)~ + @146 EXTERN ~X#WINSKI~ X#DYWIN61love
phase2\dlg\x#dynaquest.d(384): + ~Class(Player1,MAGE_ALL)~ + @147 EXTERN ~X#WINSKI~ X#DYWIN61love
phase2\dlg\x#dynaquest.d(385): + ~Class(Player1,SORCERER)~ + @148 EXTERN ~X#WINSKI~ X#DYWIN61love
phase2\dlg\x#dynaquest.d(388): ++ @151 EXTERN ~X#WINSKI~ X#DYWIN62cash
phase2\dlg\x#dynaquest.d(389): ++ @152 EXTERN ~X#WINSKI~ X#DYWIN61love
phase2\dlg\x#dynaquest.d(395): IF ~~ THEN EXTERN ~X#WINSKI~ X#DYWIN62swear1
phase2\dlg\x#dynaquest.d(399): APPEND ~X#WINSKI~
phase2\dlg\x#dynaquest.d(441): CHAIN IF WEIGHT #-4 ~%BGT_VAR% Global("X#DynaJournal","GLOBAL",8) InParty("dynaheir") InMyArea("dynaheir") !StateCheck("dynaheir",CD_STATE_NOTVALID)~ THEN ~%tutu_var%WINSKI~ X#WinskiFinal
phase3\wait\dlg\x#npcwait.d(390): IF ~Global("X#WinskiTakeDyna","GLOBAL",1)~ THEN EXIT
phase3\wait\dlg\x#npcwait.d(420): IF ~Global("X#WinskiTakeDyna","GLOBAL",1)~ THEN EXIT
phase3\wait\dlg\x#npcwait.d(560): IF ~Global("X#WinskiTakeDyna","GLOBAL",1)~ THEN EXIT
phase3\wait\dlg\x#npcwait.d(590): IF ~Global("X#WinskiTakeDyna","GLOBAL",1)~ THEN EXIT
Found 30 occurrence(s) in 6 file(s)



hmmm... no reference to x#winski in the romance - oh.


ok, well, that gives a quick fix, replace that block in the .tp2, and everything works, but it leaves x#winski's portrait out of the mix for the folks who just have the quest, not the romance installed.

Perhaps this would be better served falling in the portraits component in the first place, since the rest of this stuff is installed with the romance, making it install-order-independent.

So, for the real fix in v18, I need to remember to move lines 6065 and 6066 to the portrait component around line 5153,

ACTION_IF (FILE_EXISTS_IN_GAME ~X#BG1NPCPhase1.G3~) THEN BEGIN
  /* Phase2 Quest NPCs */

It still leaves a loophole - if someone installs the portrait component first, right after the required component, then they will not get any of the phase1/phase2 portraits installed.

bleh.


Well, I guess the question is, is it worth it to simply ask in the core required component,

'do you want to add Non-Joinable NPC portraits to quests and dialogues?' via READLN and set that as a variable, then toss a macro to patch 'em in.

I am not sure it is worth the mess of using DEPRECIATED and such.
I love deadlines. I love the whooshing noise they make as they go by. - Douglas Adams

#5 Mike1072

Mike1072
  • Gibberlings
  • 1767 posts
  • Gender:Male
  • Location:Canada

Posted 28 June 2009 - 01:07 PM

Yes, it seems like the x#winski.cre portrait change doesn't belong in the Dynaheir romance component. If put this in the portraits component:

ACTION_IF FILE_EXISTS_IN_GAME ~x#winski.cre~ THEN BEGIN
	  COPY_EXISTING ~x#winski.cre~ ~override~
			WRITE_ASCII 0x34 ~winskis~ #8 // small portrait
	END
Then the changes will be applied to x#winski.cre regardless of whether the portraits component is installed first or the banters/quests/interjections component is installed first, since the b/q/i component creates x#winski.cre out of %tutu_var%winski.cre, which gets modified by the portraits component.

To ensure install-order independence for the Phase 1 and 2 creatures that aren't spawned from existing creatures with the same portrait, you can either add this patch to each file as they are copied over:

PATCH_IF FILE_EXISTS_IN_GAME ~X#NJNPCPortrait.G3~ THEN BEGIN
	  WRITE_ASCII 0x34 ~blahblah~ #8 // small portrait
	END

Or try to duplicate the block that the portrait component uses to modify them with the change on the IF statement condition.

Edited by Mike1072, 28 June 2009 - 01:14 PM.


#6 cmorgan

cmorgan

    journeyman investigator

  • Gibberlings
  • 6913 posts
  • Gender:Male
  • Location:Glencoe, IL, USA

Posted 16 July 2009 - 06:18 AM

Repaired by adding that line to the Banters/Quests/Interjections component, but to ensure that someone can actually just install Dy's romance without the Banters/Quests/interjections (why the heck anyone would do that, I don't know, but you never know ) added the following to the beginning of Dy's Romance component;

ACTION_IF NOT FILE_EXISTS_IN_GAME ~x#winski.cre~ THEN BEGIN
  COPY_EXISTING ~%tutu_var%winski2.cre~ ~override~
	WRITE_EVALUATED_ASCII 0x2cc ~%tutu_var%WINSKI~ #8
	WRITE_ASCII 0x280 ~winski2~ #32

  COPY_EXISTING ~%tutu_var%winski.cre~ ~override/x#winski.cre~
END

and the portrait assignment portion left in place, with an added B_O_I_I_C.

Going back now to look at size checks and code cleanup on some of this. I suspect I should macro the puppy with a ACTION_FOR_EACH ~crefile~ IN, but it seems a PITA. I am not completely sure we should be making it possivble to install the portrait component first, then everything else later - on an install/uninstall routine, WeiDU picks up and reintroduces materials fine. But to install the Portrait component, *then* the romances, *then* the banters/quests/interjections, specifically out of order... for the time being, I am repairing the situation where someone wants just the Portraits + Romance or Romance = Portraits.

For docs:

<li> <a href="http://forums.gibberlings3.net/index.php?showtopic=16958">Mike1072's Winski Portrait Fix</li>

I love deadlines. I love the whooshing noise they make as they go by. - Douglas Adams



Reply to this topic



  


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users