Jump to content


Photo

BCS editing with WEIDU


  • Please log in to reply
5 replies to this topic

#1 dorotea

dorotea

    witch extraordinaire

  • Modder
  • 1927 posts

Posted 18 November 2002 - 06:27 PM

Hi folks!

As Jason sagely noted ? better ask the community than an individual. I bet there is an easy way to do what I want. Here we go. In the AR6200 bcs I need to change every


Dead("finiren")
OR(2)
Dead("finbodh")
Global("BodhiFights","GLOBAL",1)
into


OR(2)
Dead("finiren") // Jon Irenicus
Global("JonFights","GLOBAL",1)
OR(2)
Dead("finbodh") // Bodhi
Global("BodhiFights","GLOBAL",1)

To make sure the pools will unlock with Jon in the party. How do I do it with WEIDU without overwriting the whole bcs?

I also need to add

IF
Global("StartEndBios","AR6200",1)
InParty("finiren")
Global("JonBio","GLOBAL",0)
THEN
yada yada add Jon?s bio
END

Right before the end but not at the very end. Surely, this was done numerous times with custom npc?s epilogues.

Currently I just overwrite the whole bcs to get Jon in.
By the way, Kish told me that when he played the mod-beta without saving over his old save he got the message ?Bodhi restored? after clicking on the essence pool, even when he had Jon in the party, not the vamp sister, but if he saved the game and than continued ? it turned to ?Jon restored? as it should have. I wonder if the game is using old resources, including old scripts until it is saved over?

Freedom cannot be equated with goodness, virtue, or perfection. Freedom has its own unique self-contained nature; freedom is freedom ? not universal goodness. Any confusion or deliberate equalization of freedom with goodness and excellence is in itself negation of freedom, and acceptance of the path of restraint and enforcement.

Nikolai Berdyaev - Christian Existentialist, Philosopher of Freedom.


The Longer Road mod
Redemption mod
Bitter Grey Ashes


#2 Kish

Kish
  • Member
  • 1265 posts

Posted 18 November 2002 - 08:38 PM

? it turned to ?Jon restored? as it should have.

...not quite. I never saw "Greater Restoration: Jon Irenicus." The first time, I got, "Greater Restoration: CharName, Greater Restoration: Balthazar, Greater Restoration: Bodhi." After reloading the save, I got "Greater Restoration: CharName, Greater Restoration: Balthazar," as usual without Redemption installed. I figured that was normal since, as a member of the party, Irenicus was healed by the "Greater Restoration: CharName."
Posted Image

http://www.moveon.org/fox/
"You are what you do. Choose again, and change."
--Cordelia Naismith Vorkosigan

#3 japheth

japheth

    Codewalker

  • Member
  • 317 posts

Posted 18 November 2002 - 08:44 PM

Well, to do it you need to take the block of script you want to change and compile it. And then compile the block of script that you want to change it to and compile that as well.

And then within your. tp2 you would issue this statement:

COPY_EXISTING ~ar6200.bcs~ ~override/ar6200.bcs~
REPLACE_BCS_BLOCK ~unchangedscriptblock.bcs~ ~updatedscriptblock.bcs~

However, by glancing at ar6200.bcs briefly, there are no instances of the script block you mentioned at all. So this method won't work. Unless you mean a different script?

I'd suggest downloading the Baldurdash Remix developer's version and browsing to baldurdash/romance and opening up the romance.tp2. I used R_B_B heavily in that .tp2.

As for your second question, you can only put it either at the top or the bottom using EXTEND_TOP/BOTTOM.

You can get the developers version here.

(Sorry for the direct linkage Wes, but this is just easier, and I'm sure she's already been to your webpage if she has WeiDU. :))
Check out BG1Tutu.

#4 dorotea

dorotea

    witch extraordinaire

  • Modder
  • 1927 posts

Posted 18 November 2002 - 08:49 PM

I found this post by Greyfain

about REPLACE_BCS_BLOCK - looks like you need to do

COPY_EXISTING ~AR6200.bcs~ ~override\AR6200.bcs~
REPLACE_BCS_BLOCK ~KelseyToB\Scripts\J#AR620r.bcs~ ~KelseyToB\Scripts\J#Ar6200.bcs~

So I guess my problem is partially solved. But! I wish WEIDU manual was easier to comprehend ! :rolleyes:

PS

The snippet I was trying to change in AR6200 was from Ascension AR6200. It is quite different from 'regular' AR6200

Freedom cannot be equated with goodness, virtue, or perfection. Freedom has its own unique self-contained nature; freedom is freedom ? not universal goodness. Any confusion or deliberate equalization of freedom with goodness and excellence is in itself negation of freedom, and acceptance of the path of restraint and enforcement.

Nikolai Berdyaev - Christian Existentialist, Philosopher of Freedom.


The Longer Road mod
Redemption mod
Bitter Grey Ashes


#5 japheth

japheth

    Codewalker

  • Member
  • 317 posts

Posted 18 November 2002 - 09:07 PM

Okay, I've just been given an anonymous tip that you are talking about Ascension. :)

Here is a what you need to do:

First of all in you .tp2 do an error check using REQUIRE_FILE to ensure that they do indeed have Ascension installed.

So after your BEGIN statement write this line to check and see if they have Ascension.

REQUIRE_FILE ~override/finsarev.cre~ ~Sorry, you don't seem to have Ascension installed. Install Ascension and then install this mod.~

This will give your REPLACE_BCS_BLOCKs a better chance of working.

Now, you need to go through ar6200.bcs and find every occurance of the conditions you're looking for and create a small script block out of every one of them. So for instance, you need to grab this block:

IF
Dead("finiren") // Jon Irenicus
OR(2)
Dead("finbodh") // Bodhi
Global("BodhiFights","GLOBAL",1)
Dead("finsolar") // Fallen Solar
!Exists([ENEMY])
Global("SetForceWalkwayTimer","AR6200",0)
Global("FinalFight","AR6200",3)
THEN
RESPONSE #100
SetGlobal("SetForceWalkwayTimer","AR6200",1)
SetGlobalTimer("ForceWalkway","AR6200",30)
END

and compile it with it's own distinct name. (ie 6200po.bcs)

And then you need to compile the block that you want to change it to as it's own distinct script block as well. Rinse, lathe, repeat for all script blocks.

Another anonymous tip given to me that I overlooked was you *can* add it right before the very end, but it's not advisable. You should use EXTEND_TOP instead. However, if you feel you need to do it, this is how it's done.

First, grab the last block of script from ar6200.bcs, which is:

IF
Global("StartEndBios","AR6200",1)
THEN
RESPONSE #100
SetGlobal("StartEndBios","AR6200",2)
SetCursorState(FALSE)
EndCredits()
END

This will be your original script block. Then you take your script block which adds Irenicus' biography and you take the previous script block and combine them into one to make your patching script block. So the patch script block will look like this:

IF
Global("StartEndBios","AR6200",1)
InParty("finiren")
Global("JonBio","GLOBAL",0)
THEN
yada yada add Jon?s bio
END

IF
Global("StartEndBios","AR6200",1)
THEN
RESPONSE #100
SetGlobal("StartEndBios","AR6200",2)
SetCursorState(FALSE)
EndCredits()
END

Then do the R_B_B as I outlined in my previous post.
Check out BG1Tutu.

#6 dorotea

dorotea

    witch extraordinaire

  • Modder
  • 1927 posts

Posted 18 November 2002 - 09:27 PM

First, grab the last block of script from ar6200.bcs, which is:

IF
Global("StartEndBios","AR6200",1)
THEN
RESPONSE #100
SetGlobal("StartEndBios","AR6200",2)
SetCursorState(FALSE)
EndCredits()
END

This will be your original script block. Then you take your script block which adds Irenicus' biography and you take the previous script block and combine them into one to make your patching script block. So the patch script block will look like this:

new script + ending block


Hey ! I actually just thought of it myself. :) I swear that is what I was doing when I decided to check the board again.

But - thank you. You have been incredibly helpful and easy to understand. 'Tis a rare quality.

Now if I only can figure out why Imoen is not turning back to human immediately after all the 'ENEMY' creatures are gone but waiting for her timer to expire I will sleep easy tonight. :blink:

Freedom cannot be equated with goodness, virtue, or perfection. Freedom has its own unique self-contained nature; freedom is freedom ? not universal goodness. Any confusion or deliberate equalization of freedom with goodness and excellence is in itself negation of freedom, and acceptance of the path of restraint and enforcement.

Nikolai Berdyaev - Christian Existentialist, Philosopher of Freedom.


The Longer Road mod
Redemption mod
Bitter Grey Ashes