Jump to content

tiny request


DavidW

Recommended Posts

Scarcely worth asking really, but: in the Bodhi encounter, she mentions that it cost "15000" for the player to get to go to Spellhold. One of the components of SCS II lets you put up the cost; do you mind if I add a block to that component to edit your line for consistency?

Link to comment

Good idea for Crossmod Banter Pack - or is SCS II installed last? If it is, yeah, it's SCS II material. But first, please, tell me about consistency/technical info on this one.

 

Technical info: I'd like the link to the alpha where you're doing it, so I can test the technical side/double-check the whole thing.

 

{You can be certain it doesn't have anything to do with me wanting to play SCS II. No way. Of course not. Word.}

 

Consistency: more than one mod mentions this particular sum(15000/20000/fifteen thousand/twenty thousand); Xan does it for sure, and I think the whole NPC/NPC-related modlist section bears checking. Because if you're doing it for virtually every known mod, it's a good and consistent feature; RE-only - I don't see a point.

Link to comment

SCS II installs pretty late (last other than tweakpacks, ideally). Here's the relevant section of code:

 

OUTER_SET ~RE_string~=STATE_WHICH_SAYS @1301 FROM BODHI

 

ACTION_IF ~%RE_string%~>0 THEN BEGIN

 

OUTER_SPRINT ~sourcestring~ @1301

 

OUTER_INNER_PATCH_SAVE ~sourcestring~ ~%sourcestring%~ BEGIN

REPLACE_TEXTUALLY ~20,000~ ~%original_price%~

REPLACE_TEXTUALLY ~15,000~ ~%actual_price%~

REPLACE_TEXTUALLY ~20000~ ~%original_price%~

REPLACE_TEXTUALLY ~15000~ ~%actual_price%~

END

 

PRINT ~%sourcestring%~

 

<<<<<<<< .../scsII-inline/dw#spellhold_RE.d

 

REPLACE_SAY bodhi state ~string~

 

>>>>>>>>

 

COPY ~.../scsII-inline/dw#spellhold_RE.d~ ~override~

REPLACE_TEXTUALLY ~state~ ~%RE_string%~

REPLACE_TEXTUALLY ~string~ ~%sourcestring%~

 

COMPILE ~override/dw#spellhold_RE.d~

 

END

 

@1301 is the relevant string from RE's addon to Bodhi. ~%original_price%~ and ~%actual_price%~ are set in the main TP2. If you just dump this into a test TP2 and run it, that's probably simpler than playing with the whole of SCS II. (I've tested it, incidentally; all it's doing is replacing one string, and it seems to do it fine.

 

In truth, I don't really have time or energy to sift through all the innumerable mods that might possibly refer to the standard cost. This is much more opportunistic: I happened to look at RE, and noticed the issue, and thought I'd sort it. Happy to do it for other mods if I / others come across them.

 

BTW, if you do want a sneak preview of SCS II, drop me a PM.

Link to comment

tp2 addition would be something like

 

OUTER_SPRINT ~cost_spellhold~ ~placeholder_value~
OUTER_WHILE (!(IS_AN_INT ~cost_spellhold~) OR (~cost_spellhold~ > 0x4) OR (~cost_spellhold~ < 0x1)) BEGIN
 PRINT ~Set cost to get to Spellhold as
1. 100,000/75,000 gp
2. 75,000/50,000 gp
3. 50,000/30,000 gp
4. 20,000/15,000 gp~
 ACTION_READLN ~cost_spellhold~
END
  ACTION_IF ("cost_spellhold" = 1) THEN BEGIN
	OUTER_SET "original_price" "100,000"
	OUTER_SET "actual_price"  "75,000"
	PRINT ~Cost set to 100,000/75,000 gp~
  END
  ACTION_IF ("cost_spellhold" = 2) THEN BEGIN
	OUTER_SET "original_price" "75,000"
	OUTER_SET "actual_price"  "50,000"
	PRINT ~Cost set to 75,000/50,000 gp~
  END	etc. etc.

 

 

?

 

... I think this has got to be the coolest quickest way of matching and patching existing dialogue. I know I was trying to follow this in Grim Squeaker's STATE_WHICH_SAYS in Crosmod, but I think I actually understod what you wrote, DavidW - and it is a key into the world of non-destructively rewriting strings. Could you please post the tp2 stuff you actually use?

Link to comment
In truth, I don't really have time or energy to sift through all the innumerable mods that might possibly refer to the standard cost. This is much more opportunistic: I happened to look at RE, and noticed the issue, and thought I'd sort it. Happy to do it for other mods if I / others come across them.

 

Yes, since consistency is the key. I haven't seen it in Keto/Kelsey/Amber/Kivan/Banter Packs/Flirt Packs, though I suspect other mods, such as Nathaniel, Auren or others, might have it. But you'll have to address the issue at least in two other mods: Xan's "fifteen thousand" in Xan mod, and, again, Xan's "fifteen thousand" in Tiax-Xan banter for Crossmod Banter Pack - I believe there'll be a beta within days(and, though the stats for RE are not yet available - it's been less then a month - I very much suspect CBP and Xan are more popular than RE).

 

 

 

In truth, I don't really have time or energy to read code from a thread - I'd much rather(and much quicker) test it via a working mod.

Link to comment

Working mod attached. (A working fragment from SCSII, not the whole thing). You need to supply your own WEIDU.exe.

 

Basically my code has as an algorithm that takes in a DLG file and a string in that DLG file (in text-string format) , and then corrects the string on that basis. (That's the algorithm for mod corrections - only RE so far - anyway; the vanilla game is done slightly differently). It doesn't currently handle "fifteen thousand" vs. 15,000, because so far I haven't come across any uses of the former, but it could do so very easily.

 

I'd very happily incorporate other mods than RE, given the DLG file name and the string. I don't want to go hunting through every NPC mod on Earth to find strings myself, partly because I don't have time and partly because I haven't played most of them and would rather experience the content through play than through Near Infinity.

scs_RE.zip

Link to comment

Thank you very much - I'll test this mechanism as soon as I get home; sadly, they do not allow me to install BG2 at work. I'll post the results here.

 

Here are the lines for you:

 

(Xan has to be installed; check for O#XANS.bcs or O#XANJ.dlg)

 

O#XANJ

 

Of course, I paid them fifteen thousand gold only to be privileged to do their dirty work! How very insightful of you!

 

BO#XAN

 

Ah, so fifteen thousand gold were given to a shadowy organization, because you felt it did not agree with adventuring. Very interesting.

 

 

Crossmod Banter Pack, Tiax-Xan banter:

(you may have to ask Liam for the copy of the mod, since v5 is still not released)

 

BO#XAN

 

Oh, I thought you knew. You see, we went to great lengths to get to Spellhold. <CHARNAME> accepted several rather dangerous missions to get the gold necessary to secure our passage. Fifteen thousand gold, I should add - not a sum to be easily discarded, is it?

 

BO#TIAX(same banter, a few lines down)

 

... er, fifteen thousand?

Link to comment

Alas, it didn't work for me. When I tried installing it without RE installed, it said that it hasn't found a translation string for @1301; when I tried to install it after RE, it said

 

ERROR: Unix.Unix_error(20, "stat", ".../scs_re-inline/dw#spellhold_mod.d")

 

and stopped the installation process. (I have replaced scsii to scs_RE, because it refused to work otherwise, but it's the same - ERROR: Unix.Unix_error(20, "stat", ".../scsii-inline/dw#spellhold_mod.d") )

 

 

I also want to ask two "check that it is safe" questions:

 

- What happens if I install SCSII with this component, but don't have RE installed? Do you need check files for each mod? (for RE-Bodhi it's RE_Bodh1.bcs).

 

- What happens if I install Bodhi-related/Xan-related mods in different order, or if one of the next versions shifts the text around? What happens if the lines change(the last bit is very unlikely, but just to check everything)? I mean, REPLACE_SAY replaces an entire state, so I wonder about this.

Link to comment

Belated return to this. Install error was a typo, sorry.

 

I also want to ask two "check that it is safe" questions:

 

- What happens if I install SCSII with this component, but don't have RE installed? Do you need check files for each mod? (for RE-Bodhi it's RE_Bodh1.bcs).

 

Yes, it checks for each component.

 

- What happens if I install Bodhi-related/Xan-related mods in different order, or if one of the next versions shifts the text around?

It won't make any difference. The code just finds the string in the dialog - wherever it is - and replaces it.

 

What happens if the lines change(the last bit is very unlikely, but just to check everything)?

 

It won't work. (The install won't fail, though it will display a warning message). It relies on matching the entire string. (There isn't really a way around this; if I go replacing every use of "15" and "fifteen", all hell might break loose...)

Link to comment

Archived

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

×
×
  • Create New...