Jump to content


  • Content Count

  • Joined

Everything posted by Luke

  1. That's interesting, thanks for pointing it out. I can now see why it is attached to almost all NPCs (only SoD though, probably because the AI has been rewritten from scratch there...)
  2. You might want to check opcode #293 (0x125) Script: Enable Offscreen AI too. It is attached to a lot of CRE files (in particular SoD CRE files), but its functionality is unknown. I mean, creatures run scripts as long as they are in the current area, opcode #293 does not alter this, nor allow their scripts to run while they are in different areas...
  3. It does sound similar to the problem of avoiding friendly fire when casting a non party-friendly spell. For instance, for a Fireball-like spell (from "BDDEFAI.BCS"): !TriggerOverride(SecondNearest([EVILCUTOFF.0.TROLL]),Range(NearestEnemyOf(Myself),20))
  4. "savingthrow = THIS | BIT11 | BIT25" (you can find more details in this post, towards the end...). However, you cannot use it with ALTER_SPELL_EFFECT and the like, so you might want to cycle through the current effect(s) with something like GET_OFFSET_ARRAY / GET_OFFSET_ARRAY2, i.e.:
  5. I apologize for the mess, but I was actually right that day. "ActionCondition()" does not (always) work with "Combine()" (see here). That's because the wrong array is processed in get_combine_top(). In case you are interested in a fix, here it is: # ... @temp=split('\|',$forcombine); @temp=split(';',$temp[0]); # NEW: ActionCondition() check!!! @actionargs=split(',',$temp[0]); # ...
  6. @Galactygon Thanks for sharing! OK, this is not strictly related to v2.6, but still somewhat obscure (at least for me). Could you please provide additional details about opcodes #245 (0xF5) Check For Berserk and #246 (0xF6) Spell Effect: Berserking ? What do they do exactly aside from setting STATs CHECKFORBERSERK and BERSERKSTAGE1?
  7. Yes and no... I mean, your code still fails if "test" and "blah" contain subfolders (no file will be returned...) So basically the "ChildDirRegEx" variable is somewhat useless...? That is, you cannot recursively search into specific subdirectories if these subdirectories contain other directories... On the other hand, if "ChildDirRegEx" is set to the empty string "", then everything will be returned... So to sum up, you're somewhat forced to do something like
  8. @Sam. That's exactly what I tried (the only difference is that I used "," in place of "%WNL%" to separate the various file paths), thanks for confirming it. It didn't work for me because I launched the main function with ~ChildDirRegex = "^.+$"~ instead of using its default value (that is, the empty string ""). However, it seems I cannot target a specific subfolder (or more than one subfolder)...? I mean, if I write something like LAF ps_recursive_search STR_VAR ParentDir = EVAL ~%MOD_FOLDER%~ ChildDirRegex = ~^\(test\|blah\)$~ RET FileList Count END PRINT ~Count of files
  9. If the number is not the same, then opcode #267 will not block your string, it does not go by content (it grants immunity to opcode #139 effects with a matching String Reference value).
  10. For posterity, I was wrong somehow... "ActionCondition()" should work fine when used with "Combine()"... Just keep in mind that only the "LastSeenBy(Myself)" BCS block will contain the condition(s) specified by "ActionCondition()". For instance, the following SSL script compiles as
  11. @argent77 Your code takes into account only one level of subdirectory (since GET_DIRECTORY_ARRAY is called only once), whereas @Sam.'s function should work regardless of that (due to recursion). However, I'm failing to edit it in order to collect file paths into a unique string / array, i.e.:
  12. Pretty much what the title states. Suppose you have a folder containing 3 subfolders and 4 files. The first subfolder contains 5 files, the second one 14 and the third one just 1. How can I collect all those files/file paths (4 + 5 + 14 + 1 = 24) in a single array?
  13. There's no need for that, CLAB (passive) effects should always be added with the correct "Parent resource" (see here for further details...)
  14. What about ChangeStat()?
  15. Yeah, better (right now SPWI100 is indeed not available, as if it were in the 51–99 range...) You're probably referring to SPELLS.2DA... But see? The file has been externalized, so I guess that having more than 50 spells per level is already partially soft coded...? As of now, if you write something greater than 50, nothing happens... Unless it's been externalized only to reduce the number below 50 (but that's pretty useless...) Yeah, the UI would need to be updated accordingly... Hopefully, not that hard with a cap of 100 per level...?
  16. @Galactygon For v2.7, what about extending the number of spells available to sorcerers/shamans at level-up, and to mages/bards/clerics/druids at character generation to 100 per level (01–99)? That would be extremely great and will solve most of the issues...
  17. Unless applied via op177...? In any case, it would be rather odd to equip a weapon that boosts, say, off-hand (p3=2) instead of the hand it is equipped on (p3=0)...
  18. They are meant to set "LastSeenBy(Myself)" to the desired object. See here for further details.
  19. I agree. There is hope this issue will be addressed in later patches... In the meantime, you can use EFF files + op206/318/324 (see here for further details...)
  20. @DavidW Just a FYI: your tweak Antimagic attacks penetrate improved invisibility will be official behavior on EE games when the 2.6 patch drops...
  21. Let us consider "SPPR712" (Resurrection) as an example: Yes, it does not affect the living (Extended Header Target is '3|Dead actor'). Moreover, the first effect is op324 (filter: GENERAL != DEAD). It applies a subspell ("SPPR712A") via op326 (filter: GENERAL = DEAD) "SPPR712A" applies another subspell ("#RDREMOV") via op326 (no filter: EA >= ANYONE) And finally, "#RDREMOV" strips Sequencers and Spell Triggers away via op172. Why the need of two consecutive subspells??? Also, since you suggested checking for STATE = STATE_DEAD, are you saying there's a diffe
  • Create New...