Jump to content

DavidW

Gibberlings
  • Posts

    6,424
  • Joined

  • Last visited

Everything posted by DavidW

  1. Cam (or anyone): how does one revert a set of pushed changes? (It’s hypothetical, I don’t need to do it right now.)
  2. At a certain level, I kinda become inured to all sorts of random crap being blamed on Beamdog and/or the EEs, and I was fully prepared to dismiss this as same. But damn if this isn't true, and damn if I can find the ticket and/or justification. I would have hoped my non-Beamdog-hating credentials were reasonably solid by now! To be fair to them, it's invisible and harmless in an unmodded game. But SCS takes information in the "kit" field literally, and provides special abilities and scripting to match.
  3. Carbos and Shank are kit=assassin in unmodded BGEE, so yes: on a technical level it's a bug that SCS isn't patching them. Having said that, it's a curious decision on the part of Beamdog to make them assassins, and I don't think it's a good idea, since 1st level characters could easily end up insta-killed (and since Carbos and Shank are obviously mooks, not ninja assassins). So I don't really care, except insofar as it's a tell that something isn't quite working right. (At a guess, it's collateral damage from the infuriating ASSASSIN/ASSASIN issue, i.e. from that fact that Bioware couldn't spell "Assassin" back in the day.)
  4. It's actually a nice example of why the IDS file ought to tell the truth. I reference SPCL423 via ASSASSIN_POISON. It's a little unfortunate if that IDS reference no longer points to the actual assassin-poison spell. Still, it's not difficult to work around. I've put a commit on the master that probably fixes it. (And I'll fix it more elegantly in v32.)
  5. So far as I can see this is still hardcoded, even in BG2EE 2-5. Anyone able to confirm (or correct)?
  6. Unless I am missing something (which, for this kind of code-insert, is always possible) that's nothing to do with SCS - I'm not adding or subtracting things in the CLAB files, unless they're granted spells (and this is an AP_xxxx, I think). One possibility (I don't have BGEE handy right now) is that Borda is a spellcaster whose level is being adjusted down from 7. In which case, there's nothing I can really do about it: I can't auto-adjust third-party CLAB settings without systematically parsing the CLAB file, which is what people (including, on reflection, me) would prefer I didn't do.
  7. No. (Well, I suppose it might mean you get a new release of maintenance SCS with the fragment I just uploaded- that's not really up to me. If so, I guess that will be v32 and the next non-maintenance version will be v33.)
  8. The v32 fragment I uploaded will (I think) fix this too.
  9. I am reluctant to systematically move away from the CLAB files, partly on practical grounds (I have to hardcode things or ship vanilla copies of the CLAB files), partly on the grounds that I don't want to encourage modders to feel they can change resources with impunity without worrying about how it affects AI! Where there are specific good reasons (and if Blackguard and Assassin are overloading SPCL423, that's a good reason) I can accommodate them specifically.
  10. It's not systematically possible to anticipate changes like this; AI scripting can't just adjust on the fly when spells and powers change. In this particular case, do you know why RR changes the spell file name, rather than just changing the payload of the existing spell?
  11. I agree, and effectively that's what I do. "stratagems_external" is shared by SCS and Wheels of Prophecy (both their backup and workspace files live in it), and in fact by the IWD-EE converter, not that I released that publicly. Other people are welcome to use it; I might rename it to "weidu_external" or something next time around, to make that more obvious. (That's what the template on this thread does.)
  12. I thought so: there's an obvious way that function could fail if a spell is missing. (And yes, it ought to be robust against that consequence.) Try the new one I just uploaded.
  13. Right. So apparently you never saw this. Too bad you responded to it with: I'm not sure I understand the point you're making. I'm distinguishing "meaningful complaints" from "incomprehensible gnomic utterances". (But, sure, I don't mind replacing "no-one cared" with "only Jarno cared" if you like. And if our evil corporate overlords are hiding other objectors to me, feel free to point them out.) Bizarrely enough, I don't issue blanket COMPILE commands to files I didn't build myself.
  14. Install whatever mod is imposing the 328 after SCS? Other than that: no, sorry. Editing the code that enforces this is likely to break things and right now I don't have the time to fix them. Others are welcome to try though!
  15. I think this concern is overrated. I mean, tidy up after yourself as much as you can, of course, but all I'm really proposing is adding one folder to what is usually several dozen folders, and I really don't think end users care. Put it this way. I moved SCS over to immutability around v22, which I think was about five years ago. I thought about discussing it publicly then; the reason I didn't was partly that I expected lots of people to complain about stratagems_external. Fast forward 5 years, and so far as I'm aware no-one has even noticed; certainly I've never seen a comment about it, and a google search doesn't show one up.
  16. Yes. It means you can't read in data in your ALWAYS that's to be used in any component. Example: SCS's ALWAYS block goes through every spell in the game and sets a variable with name equal to its ids reference, value equal to its spell file. It also goes through and finds a scroll for each wizad spell, and records that as the value of a variable. It takes 2-5 seconds and I'd rather not have those 2-5 seconds every component. At a more conceptual level, I'd like my encapsulation to be built in to the way the code is structured, not forced explicitly. One of the main points of FUNCTIONs is to deliver this; why not use it? Put another way: why not avoid defining variables with global scope in the first place unless you want them to have global scope, rather than just clearing out the global scope on a regular basis? I thought ALWAYS is supposed to run always, i.e. you'll spend 2-5 seconds re-reading data regardless of how you clean up the environment. Most of my ALWAYS block is wrapped in ACTION_IF !VARIABLE_IS_SET do_this_once BEGIN OUTER_SET do_this_once=1 [do some stuff] END Well, of course I agree that this is as much aesthetics and taste as anything else. That said, if *everything* you do is call functions, there can't be anything left to slip into the next component. (It's not quite true that everything I do is call functions, because my ALWAYS block defines a bunch of variables, but it's relatively easy to keep track of those, and in any case they don't get changed from component to component.)
  17. Because SCS's kit-processing system doesn't think to check for the "special" field. (I think that bit of code probably predates any extensive use of the field in the EE.) It's fixable; on the other hand, I'm persuaded by subtledoctor that it's not sensible for compatibility for SCS to try being that broad in its approach to kits, so from v32 I'll be leaving it to other mods to impose their own kit effects if they add them.
  18. I'm guessing some of the spells in the CLAB don't actually exist?
  19. This is intentional. From the tp2 comments: /// This program looks for "%file%.tpa" in location "%mod_root%/%file_loc%". /// If it's not found, the install fails. If it's found, it's INCLUDEd and /// the program attempts to run "%file_loc%" as an ACTION_FUNCTION /// with tra file "%tra%.tra". Rationale: "file" is both the name of the file in which the component function lives, and the name of the function itself. So a suffix has to be assumed. (Of course, I could allow for arbitrary suffices and strip them off when identifying the function name, but why bother?) Of course, it's a template. If you don't like it, edit the run function.
  20. Yes. It means you can't read in data in your ALWAYS that's to be used in any component. Example: SCS's ALWAYS block goes through every spell in the game and sets a variable with name equal to its ids reference, value equal to its spell file. It also goes through and finds a scroll for each wizad spell, and records that as the value of a variable. It takes 2-5 seconds and I'd rather not have those 2-5 seconds every component. At a more conceptual level, I'd like my encapsulation to be built in to the way the code is structured, not forced explicitly. One of the main points of FUNCTIONs is to deliver this; why not use it? Put another way: why not avoid defining variables with global scope in the first place unless you want them to have global scope, rather than just clearing out the global scope on a regular basis?
  21. I am not really supporting the maintenance release (I'm only semi-around at the moment and didn't keep close track of it) but I'll have a look if I have a chance to see if I can tweak whatever's not working in my v32 alpha fragment.
  22. That "hardcoded" can only be because you're working off the master rather than the official release, because it's the proposal I did this morning. That proposal is still there for testing, it's not there for people who are just trying to play the game. (Which isn't to say there might not be problems with the official release too.)
  23. Not over 50 at level 9 too? Or is the hardcoded limit lower there?
  24. Kangaxx doesn't actually use the Imprisonment wizard spell, he uses an innate demilich power, Trap the Soul. I would have thought editing monster innate powers is probably beyond SR's scope? (SCS does give a saving throw against it.)
×
×
  • Create New...