Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by Galactygon

  1. I am unable to reproduce the issue in of BG2:EE (without SCS installed). Does SCS patch WAND13.itm?
  2. I have started a topic over 10 years ago in an attempt to set a commonly-agreed list of IDS_OF_SYMBOL names, originally meant for mega-mods. Heck, this was before the days of the EEs. Time really flies. http://www.shsforums.net/topic/46717-add-spell-in-spell-mods/ Not much has come out of that since the traditional mega-mods have long been abandoned. It's certainly a good idea to have agree on a list of names so that mod-added ADD_SPELLs replace each other in order of installation without generating doublettes.
  3. Because of a glitch with autopause messing up the effect order. Until that is fixed, implementation has to be water tight. #RDREMOV.spl is also conventiently used to clear temporary abilities for Mislead/PI/Simulacra when they are created.
  4. A bit of extra info: if opcode 333 has a saving throw attached to it, that save will be rolled each time the effect repeats and the effect self-terminates on a successful saving throw but not other effects from the same resource like opcode 321. Creatures carrying effects that were applied via opcodes 326/333 will use the dispel.level of the target of 326/333 rather than the original caster. This functionality is present as of patch 2.5 which may/may not be fixed in the future.
  5. Thanks, edited original post for accuracy. Is targettype 9-original caster properly used on reflection by spell turning? In that case, original caster should switch to the creature doing the reflection. Some existing spells use the parent spell to affect turning/deflection (nonzero power values) while others have their nonzero resist/dispel/power values used in the child .spls. I will report this inconsistency in Redmine on a good repro case.
  6. It appears that targettypes of effects within a .spl applied via opcodes 326 or 333 is treated as follows: 1-Self is applied regardless of the projectile within that .spl and is applied instantly to the target of the parent spell using opcode 326/333 2-Pre-target is applied via the projectile within that .spl. If projectile 1-none is used then effects using this targettype are applied to the target of the parent effect opcode 326/333 after any effects using 1-self are used. 9-Original Caster is known to be used by SPWI631B.spl (i.e. soul eater in IWD:EE) and applies effects t
  7. Oh right, forgot to mention this as well. Yeah, auto-pause on spell cast can do two fairly bad things--one, as you've already mentioned, is that it can re-roll the probabilities so that not every effect gets the same roll (for further reading, any old thread about the duration of the Friends spell in the Fixpack). Another, but lesser known problem, is that it can sometimes cause the engine to apply spell effects out of order, which can cause all sorts of bad things for spells like Otiluke's where the order is necessary for the proper functioning of the spell. edit: I should note that while
  8. This. I couldn't have said it any better.
  9. Something I just remembered to mention now is when cloning spells as different filenames, instances of immunity spell opcodes (318/324) need to be updated so that they self-block the effects of the new spell rather than the original copied spell. SCS liberally clones spells, so I would integrate this change into the clone spells macros or whatever they are called.
  10. I've updated/clarified the differences between bit0 and bit3. I can confirm that bit3 is the noncumulative version of hp transfer in that if the recipient carries any instance of opcode 18 with special set to 1, then no current and maximum hitpoints are added.
  11. Is there anything similar for delayed and delayed/duration timing modes i.e. using AI frames instead of seconds? PST:EE uses AI frames instead of seconds for its delayed timing mode while the rest of the IE uses seconds.
  12. There are a limited number of splstates (255) so I would only use new slots sparingly.
  13. I believe you need a caster and a target creature for a scorcher-type projectile whose two endpoints move with the caster & target.
  14. I went ahead and wrote a function that can handle .ssl => .baf => .bcs compilation in one go. The modder has to specify the following 3 things: 1. The path of SSL.exe (default is %MOD_FOLDER%/SSL/ssl.exe) 2. The name of the array with a list of .ssl libraries with their file paths specified (valid format either .slb or .ssl). Default value is "SSL_LIB". 3. The name of the associative array with of individual .ssl files compiled as .bcs files in the override folder. Default value is "SSL_LIST". 4. (optional) Any ssl variables can be defined in STR_VAR ssl_variables. Default value is "
  15. When I try to compile ssl scripts from a .bat file run from the main game directory I am unable to specify a directory if ssl.exe is located somewhere else relative to the .bat file in the manner of: LCTests/SSL/ssl.exe "LCTests/SSL/testactions.ssl LCTests/SSL/testssl.ssl -l LCTests/SSL/testlib.slb IsLich=True&CreType=Undead" I get the message "LCTests is not recognized as an internal or external command" I do manage to compile them if ssl.exe is located in the same folder as the .bat file and use the following instead. ssl.exe "LCTests/SSL/testactions.ssl LCTests/SSL/testssl.ssl -
  16. Thanks for the help, Wisp. That was the issue. I was now able to generate the desired .baf file. Now I've got yet even more questions to ask you: 1. Why did you choose not to run ssl.exe? Is it a hassle to account for the different operating systems? 2. You have written a python script make_baf.pl which I couldn't find in any of the SCS folders. What does it do? Is it something specific for aTweaks rather than ssl?
  17. Thanks for your reply, Wisp. I've been looking into pregenerating .baf blocks but you do not seem to have ssl.exe in aTweaks; I am speculating that the scripts distributed in aTweaks are already "ready-made" complete .baf files and the .ssl blocks are there for reference. SCS pregenerates so much with different scripts that it's difficult to boil it down to a simple example of a .tph launching an .ssl compiler with the most basic features and libraries. I've been trying to generate one .baf file from the single block of .ssl code above by running ssl.exe via a .bat but keep getting the err
  18. Question: what does Combine() do? Here's an example from aTweaks/ssl/mage/chaos.ssl: IF TRIGGER TargetBlock(PCsInOrder) TriggerBlock(Disabled|Enemy|MR50|Confusion|SIEnc) THEN DO Combine() Action(Spell,WIZARD_CHAOS|100|50) END My initial guess is that it generates a series of False() targeting blocks with all the "scstarget"s followed up by a LastSeenBy(Myself) block but I could be wrong.
  19. Thanks for the info, I've updated the first post.
  20. What is the difference between bit0 and bit3? They both increase caster hitpoints beyond normal maximum while blocking subsequent increases during the duration. What does param2 = 6 for opcode 18 do?
  21. Much of this is already known: EE expands the use of this opcode so that the special field can be used. In this case, the special field acts as a bitfield as described below. ---------------- Here is a more detailed explanation on life drain functionality (bits 1 and 2). In all cases, the healing amount is identical to the damage inflicted, so resistance against a certain damage type may reduce or even eliminate the amount of hitpoints gained. Damage and healing is not affected by the amount of hitpoints remaining if the creature is killed. For example you can inflict and gain 20 hit
  22. I have been playing around with alpha values so I can confirm that 0 is completely opaque and 1 is completely transparent (or transparent enough that you do not notice anything). The reason for this as I see it is backwards compatibility where the alpha values have been ignored/set to 0 for most .bam files. Near Infinity's .bam preview actually renders alpha values which is cool. However as with most other .bam editors you lose the alpha values if you save the .bam in NI. I go instead the route of palette patching with WeiDU which can give some nice results.
  23. The scripting action AddGlobals() only works for "GLOBAL" variables. This action does nothing for "LOCALS" or "MYAREA" or any other type of variable that is not a "GLOBAL" variable. This example from the IESDP works IF Global("Var1","GLOBAL",0) THEN RESPONSE #100 SetGlobal("Var1","GLOBAL",75) //Var1 = 75 SetGlobal("Var2","GLOBAL",25) //Var2 = 25 AddGlobals("Var1","Var2") //Var1 = 100 END But this does not: IF Global("Var1","LOCALS",0) THEN RESPONSE #100 SetGlobal("Var1","LOCALS",75) //Var1 = 75 SetGlobal("Var2","LOCALS",25) //Var2 = 25 AddGlobals("Var1"
  24. Update on the first post: excluding cleric/druid/paladin/ranger kits do not work. Priest spells can only be excluded by alignment of by the last two bits cleric/druid.
  25. Avenger: Is there a complete list of all bits in the bitfield based on the internal code? There are still a lot of unknowns that I cannot verify, possibly because they apply to classes that do not have spellcasting ability.
  • Create New...