Post reply

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.
Name:
Email:
Subject:
Message icon:

Verification:
Type the letters shown in the picture
Listen to the letters / Request another image

Type the letters shown in the picture:
What color is grass?:
What is the seventh word in this sentence?:
What is five minus two (use the full word)?:

shortcuts: hit alt+s to submit/post or alt+p to preview


Topic Summary

Posted by: jastey
« on: July 03, 2014, 07:38:02 AM »

(Component is included in v13.1)
Posted by: Gay Lord
« on: May 15, 2012, 08:25:16 PM »

Apologies if I upset.  I do like the mod.

I'll be adding it to my install when I start a new game shortly.
Posted by: plainab
« on: May 14, 2012, 01:14:35 PM »

Put it simply:   EXPLOIT FIX

To expand upon that:    The original game engine is limited in how it deals with items.  It takes an entire stack, even if it just wants one or two.  While there aren't that many emeralds floating around in the original version at that stage of the game, there is the issue where players knowingly drop one gem before turning in the quest at Oublek so that they may get the reward twice.

The BG Fixpack prevents the dual reward by putting in missing checks for existing variables, but the player if they attempt the exploit is left with one of the original gems that they then must sell or let rot.

Enter this component:   The main purpose of the component is so that if the player allows Prism to finish the statue, the emeralds will BE IN THE EYES. This gives a finish to the story, the player can choose to leave the gems in the eyes.  If they take them out, they lose the rep point they got for allowing him to finish it.  Everything else was built around the status of the gems at every conceivable point no matter how unlikely.   A nice side effect is that there is no longer an exploit possibility when turning in the emeralds.   NOTE:  Ascension64 originally tried doing just one container for both eyes.  It looked like a crappy pair of blue shaded sunglasses.  Two smaller containers closely fitted along each eye is the most ideal and is what was agreed upon at the time.  Two containers tho means two items.

Nothing was touched in regards to Greywolf, nor is anything planned. If there was a penalty for pretending to be Greywolf, it is still there.

Do you not think it odd that he would drop the gems upon his suicide even tho he claimed to have completed it?  It was an idea put forth and this is my take on the scenario.  Like it or not, your choice.
Posted by: Gay Lord
« on: May 14, 2012, 11:33:39 AM »

Let me ask something, since it's been years since I've played BG.  I remember that Oublek gets upset if you take Greywolf's reward when you first speak to him, and he will hold back a future reward as punishment.  What happens if you kill Greywolf BEFORE talking to Oublek?  Since Grey will now never show up to claim his pay from Oublek, is it possible to get Grey's pay AND still get the two rewards for completed missions?  If not, would it be possible to include it?  I hardly think whatever few coins you get by impersonating Grey would be game-breaking.  As an extra, if you wanted, you could include a skill check or charm option or something of the like on Oublek where you take Grey's coin yet manage to sweet talk Oublek so that he doesn't withhold future pay from you for lying to him.

Another question I have is why there are two emeralds, since it seems to be causing a tremendous amount of extra writing on your part?  Instead of having two items of one emerald each, why not have a single item called 'pair of emeralds'?  This would give you your unique item, would reduce the coding and scripting and dialogue options you have to deal with (more text = more chance of bugs), and would save room in your inventory.  I mean, all of this... gah !
Quote
when the player picks prism's pockets:
prism needs to cover the following possibilities
left gem taken, right gem in hand -- player has left gem
left gem taken, right gem in hand -- player stashed/sold left gem
left gem taken, right gem in hand -- player turned in left gem for bounty
right gem taken, left gem in hand -- player has left gem
right gem taken, left gem in hand -- player stashed/sold left gem
right gem taken, left gem in hand -- player turned in left gem for bounty
left gem taken, right gem taken -- player has both gems
left gem taken, right gem taken -- player stashed/sold both gems
left gem taken, right gem taken -- player turned them in for bounty
and i suppose out of fullness sake he should notice the following tho the statements don't have to be the same.
left gem taken, right gem taken -- player has left gem, stashed/sold right gem
left gem taken, right gem taken -- player has left gem, turned in right gem for bounty
left gem taken, right gem taken -- player has right gem, stashed/sold left gem
left gem taken, right gem taken -- player has right gem, turned in left gem for bounty

That's a heck of a lot of, IMHO, unnecessary work.  If you replace the two items with one item, I would think things would be much easier for you.  But I'm not a coder, so I don't know.

I do think though that there's very little reason for anyone involved in this situation to split up the gems.  Prism wants both gems to finish his work, not one.  When he dies, he drops both gems, not one.  Greywolf will let you leave in exchange for both gems, not one.  Oublek wants both gems returned, not one.  The owner wants both gems returned, not one.  If you decide to sell them, you are going to sell both of them, not one.  So to me, it seems fine to replace the two items with one.  Whip up a simple icon, call it 'two emeralds' or 'pair of emeralds' or "Prism's emeralds' or whatever, and you're done.
Posted by: jastey
« on: April 22, 2012, 08:14:45 AM »

Yes, I have problems with posting links sometimes, too, especially since the syntax is different on this forum to G3 (meaning that, if I want to post announcements, I cannot just copy and paste the same text (and it was like this before the forum update at G3, in case someone wants to comment)).

Thank you for the corrected link, I downloaded it now.
Posted by: plainab
« on: April 22, 2012, 07:51:04 AM »

I corrected the link....
I think...

http://sasha-altherin.webs.com/mods/abPrismEmeraldsv3.7z

the above is this
Code: [Select]
[url]http://sasha-altherin.webs.com/mods/abPrismEmeraldsv3.7z[/url]the previous was this
Code: [Select]
[url="http://sasha-altherin.webs.com/mods/abPrismEmeraldsv3.7z"]http://sasha-altherin.webs.com/mods/abPrismEmeraldsv3.7z[/url]and the modified link is
Code: [Select]
[url=http://sasha-altherin.webs.com/mods/abPrismEmeraldsv3.7z]http://sasha-altherin.webs.com/mods/abPrismEmeraldsv3.7z[/url]which seems to work, so apparently the url tag doesn't like the ""   

With there being no instructions on how to use the url tags on this site (that I've seen), I've always been confused on how to get it to work right.  and in all cases it has worked when I've tested it in the preview.  apparently I need to submit, reload the page and test it again before walking away from the post.
Posted by: jastey
« on: April 22, 2012, 06:25:07 AM »


So unless it's something insane like script bog down from an insane amount of mods, I think this should be working now.

http://sasha-altherin.webs.com/mods/abPrismEmeraldsv3.7z
I am very embarrassed to say, that I don't seem to have this version. At least, I cannot find the version on my computer (I was transferring my files from one to the newer so I have three disc drives where I put files currently).

The link doesn't work for me currently. Would you upload it again, please?
Posted by: Miloch
« on: April 05, 2012, 10:03:08 AM »

For this:

\([0-9]+\)

[0-9] means match any digit. + means match it one or more times. What's between \( and \) is recorded as the first match, thus in the replacement string you can use \1 to replicate it. It might seem arcane at first if you're used to DOS wildcards, but it's easy to get used to (though I still regularly have to consult the table in the WeiDU doc).
Posted by: plainab
« on: April 05, 2012, 09:00:50 AM »

REGEXP in a .d file?  how?
do note any .d file regexp in the BG1 fixpack is copied from something else.  I don't know what it means, just that it works.
There is a regexp section in the WeiDU documentation and also a REPLACE_ACTION_TEXT example that uses regexp (sort of). Something like this should work:

REPLACE_TRANS_ACTION ~%tutu_var%oublek~ BEGIN %BGT_DiffState% END BEGIN 0 END ~GivePartyGold(\([0-9]+\))~ ~GivePartyGold(\1) TakePartyItem... etc.~
yeah i know about the regexp section in weidu readme.  it doesn't make sense to me.  All I know is from my old dos days where * meant anything and I could narrow down by placing it among characters I knew were in what I wanted.  Looking at what you have here I don't see how it does it.  I'm not doubting that it works, I just don't understand it.
Posted by: Miloch
« on: April 05, 2012, 08:39:23 AM »

REGEXP in a .d file?  how?
do note any .d file regexp in the BG1 fixpack is copied from something else.  I don't know what it means, just that it works.
There is a regexp section in the WeiDU documentation and also a REPLACE_ACTION_TEXT example that uses regexp (sort of). Something like this should work:

REPLACE_TRANS_ACTION ~%tutu_var%oublek~ BEGIN %BGT_DiffState% END BEGIN 0 END ~GivePartyGold(\([0-9]+\))~ ~GivePartyGold(\1) TakePartyItem... etc.~
Posted by: plainab
« on: April 05, 2012, 12:13:25 AM »

Scoured the code and determined that I should actually set the global on those blocks to 3 after they've been activated.
Isn't that sort of what jastey said? Or are you just saying you had to verify what the value should be...
I needed to verify cause on the surface it was only set to 3 in the dialog.  There is a variable that's replaced depending upon the method chosen at install time and inside the definition of said variable was where it got set to 1.  Gotta remember it's been a few weeks since I'd last looked at any of this.  :P

Quote
Since you're not actually changing the gold amount, is it necessary to use that as the text you're replacing or is that all there is? Should be able to use regexp on it anyway, just in case some other mod's changed the gold amount.
I would have simply replaced the TakePartyItem action BUT there are two of them and it would cause unneeded duplication.  So I remove the existing TakePartyItem actions first from those two states and then what's left is the give gold action and some erase journal entries.  Since journal strrefs can be different across platforms, it is safer to use the give gold action to tie in the new actions.

REGEXP in a .d file?  how?
do note any .d file regexp in the BG1 fixpack is copied from something else.  I don't know what it means, just that it works.
Posted by: Miloch
« on: April 04, 2012, 09:52:53 PM »

Scoured the code and determined that I should actually set the global on those blocks to 3 after they've been activated.
Isn't that sort of what jastey said? Or are you just saying you had to verify what the value should be...

Since you're not actually changing the gold amount, is it necessary to use that as the text you're replacing or is that all there is? Should be able to use regexp on it anyway, just in case some other mod's changed the gold amount.
Posted by: plainab
« on: April 04, 2012, 06:44:26 PM »

Tested on BGT with only BG2 Fixpack prior to BGT conversion.
Used that bit I quoted above for the Gold awards and it seems to work so far. 
Moved the two script blocks to the top & put the Die() block as very first.
Scoured the code and determined that I should actually set the global on those blocks to 3 after they've been activated.
Put a backup block on the container script which checks for Prism to be Dead().

With a level 8 imported thief from the BG2 SoA characters, I tried to pickpocket him, failed, he turned hostile and I killed him.  gems gone from the container.  did this a few more times and had the same result.  Then reloaded and tried to kill him while his circle was still blue.  was successful a couple times and the gems were gone from the container.

Finally took the gems to oublek and turned them in together and he took 'em both as he should.

So unless it's something insane like script bog down from an insane amount of mods, I think this should be working now.

http://sasha-altherin.webs.com/mods/abPrismEmeraldsv3.7z
Posted by: plainab
« on: April 04, 2012, 03:36:05 PM »

so this then will be okay to do without any sort of checks against other mods?
Code: [Select]
REPLACE_TRANS_ACTION ~%tutu_var%oublek~ BEGIN %BGT_DiffState% END BEGIN 0 END ~GivePartyGold(150)~ ~GivePartyGold(150) TakePartyItem("abgfEyeL") TakePartyItem("abgfEyeR") %ERASEJOURNALENTRY_0% %ERASEJOURNALENTRY_1% %ERASEJOURNALENTRY_2% %ERASEJOURNALENTRY_3% %ERASEJOURNALENTRY_4% %ERASEJOURNALENTRY_5%~
REPLACE_TRANS_ACTION ~%tutu_var%oublek~ BEGIN %BGT_DiffState% END BEGIN 0 END ~GiveGoldForce(150)~ ~GiveGoldForce(150) TakePartyItem("abgfEyeL") TakePartyItem("abgfEyeR") %ERASEJOURNALENTRY_0% %ERASEJOURNALENTRY_1% %ERASEJOURNALENTRY_2% %ERASEJOURNALENTRY_3% %ERASEJOURNALENTRY_4% %ERASEJOURNALENTRY_5%~
and in another spot
Code: [Select]
REPLACE_TRANS_ACTION ~%tutu_var%oublek~ BEGIN 4 END BEGIN 0 END ~GivePartyGold(300)~ ~GivePartyGold(300) TakePartyItem("abgfEyeL") TakePartyItem("abgfEyeR") %ERASEJOURNALENTRY_0% %ERASEJOURNALENTRY_1% %ERASEJOURNALENTRY_2% %ERASEJOURNALENTRY_3% %ERASEJOURNALENTRY_4% %ERASEJOURNALENTRY_5%~
REPLACE_TRANS_ACTION ~%tutu_var%oublek~ BEGIN 4 END BEGIN 0 END ~GiveGoldForce(300)~ ~GiveGoldForce(300) TakePartyItem("abgfEyeL") TakePartyItem("abgfEyeR") %ERASEJOURNALENTRY_0% %ERASEJOURNALENTRY_1% %ERASEJOURNALENTRY_2% %ERASEJOURNALENTRY_3% %ERASEJOURNALENTRY_4% %ERASEJOURNALENTRY_5%~
Posted by: Miloch
« on: April 04, 2012, 02:43:53 PM »

Dunno what exactly you're doing via code (I can only see one page up while posting and the only code I see is the aforementioned script block) but I don't know that you need to check for a specific mod. If you're doing some sort of REPLACE_* on GivePartyGold then just duplicate it for GiveGoldForce under the same terms. If it's there, it will be replaced too, if not, it will do nothing.

I don't want to digress too much on Aurora here since it has little to do with UB (apart from the mirror restoration etc. mentioned in another thread), but you may want to read the Components section in the readme and also the ag_quest*.tpa files in the mod's lib folder. In short, we nerf a handful of CREs who have over-the-top gold amounts (to prevent uberlooting exploits, yes, Oublek being one); in any case, we would have to account for the "Change creature gold carried" component which could potentially reduce a quest-giver's gold below what they're promising despite other changes in the quest gold component. (In retrospect, now that I look at the code, we should've used REPLACE_ACTION_TEXT or the like instead of DECOMPILE/REPLACE_TEXTUALLY on .dlg files, but that is even more irrelevant here. I suspect we weren't fully aware of those commands at the time and/or they can be somewhat counterintuitive to use since they require compiling .d pseudofiles... by "we" I mean GeN1e/Ardanis and I, since I can't take sole credit for these components.)

Edit: if you really do need to detect the component, it's probably best to use BUFFER_INDEX or the like to look for GiveGoldForce in the .dlg file. You could also use ACTION/PATCH_IF MOD_IS_INSTALLED setup-aurora.tp2 241 ... 257, but that is more cumbersome in this case, due to the number of alternative subcomponents that do similar things. I vaguely recall asking the bigg for a MOD_IS_INSTALLED subcomponent catchall but don't know if it was ever implemented.