DavidW Posted August 24, 2007 Share Posted August 24, 2007 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
Kulyok Posted August 25, 2007 Share Posted August 25, 2007 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
DavidW Posted August 26, 2007 Author Share Posted August 26, 2007 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
cmorgan Posted August 26, 2007 Share Posted August 26, 2007 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
Kulyok Posted August 26, 2007 Share Posted August 26, 2007 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
DavidW Posted August 27, 2007 Author Share Posted August 27, 2007 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
Kulyok Posted August 27, 2007 Share Posted August 27, 2007 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
cmorgan Posted August 27, 2007 Share Posted August 27, 2007 Really cool code, DavidW... thank you. Link to comment
Kulyok Posted August 27, 2007 Share Posted August 27, 2007 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
DavidW Posted September 22, 2007 Author Share Posted September 22, 2007 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
Kulyok Posted September 22, 2007 Share Posted September 22, 2007 Belated return to this. Install error was a typo, sorry. No problem; if you ever would like to return to this, just update a working one. Everything else(after your explanations, that is) looks good to me. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.