Luke
Modders-
Posts
879 -
Joined
Content Type
Forums
Events
Downloads
Gallery
Mods
News
Store
Everything posted by Luke
-
Even when editing existing resources? I mean, in this case I basically intend to edit just a couple of things regarding the existing descriptions.... And I'd like to avoid generating a new string for such a small change... But I'll probably reconsider this idea since many people are suggesting to create new strings...
-
But I cannot use that command inside a COPY_EXISTING_REGEXP or a patch..... In other words: how should I edit the aforementioned macro in order to use STRING_SET_EVALUATE in place of SAY_EVALUATED?
-
I'd like to know something about how you use these two triggers. Do you actually trust them? I mean, they're great if the CRE in question has only one weapon, but what if it has 2 weapons with different enchantment levels (offset 0x60)? For instance, let's consider DW2RP2GE.bcs (in particular a script block like the one in the spoiler tag below) and a CRE with ranged and melee weapons (e.g., ORC02.cre, BG2EE – its melee weapon 'SW1H07' is not magical, its ammunitions 'AROW02' are magical +1). If the currently equipped weapon is BOW03.itm with its corresponding ammo (AROW02) and 'NearestEnemyOf(Myself)' happens to be immune to normal weapons (op=120, param#2 = 2), then 'WeaponEffectiveVs(NearestEnemyOf(Myself),MAINHAND)' and 'WeaponCanDamage(NearestEnemyOf(Myself),MAINHAND)' will return true (because 'AROW02' is magical +1) => BUT its melee attacks will be ineffective (because SW1H07 is a normal weapon). To sum up: the problem is that these two triggers always refer to the currently equipped weapon and this weapon may have a different enchantment level from the one you're gonna equip – Am I missing something? If not, how do you prevent this situation from happening without using custom spell states?
-
I was talking about replacing this line SAY_EVALUATED index ~%new_desc%~ with something else so as not to generate a new string (e.g., via using STRING_SET_EVALUATE). But as @DavidW said, that command is an action command, not a patch one: that's why it's not working (and probably there's no alternative.....)
-
No. If a certain mod overwrites an existing string via STRING_SET (or STRING_SET_EVALUATE) and then you uninstall that mod, the original content of that string is restored.
-
This. I was wondering if there's a way to achieve that without generating 1000 new strings pretty much identical to the old ones but a minor detail (e.g., a 1d5 changed into a 2d6 or something like that....) To sum up, I'd like to overwrite the existing descriptions and avoid generating new strings (I don't think it makes sense in this case.......)
-
Is it possible to write the following in a compact way? BEGIN LOOP(scsloopvar||NearestEnemyOf(Myself);SecondNearestEnemyOf(Myself);ThirdNearestEnemyOf(Myself);FourthNearestEnemyOf(Myself);FifthNearestEnemyOf(Myself);SixthNearestEnemyOf(Myself)) I tried with BEGIN LOOP(scsloopvar||EnemiesInOrder) but it's not working...... Thanks in advance
-
What if I didn't want to generate a new string for the new description via SAY_EVALUATED? I tried replacing that line with STRING_SET_EVALUATE index ~%new_desc%~ but it's not working.... Is there a way to update the existing description without creating a new string?
-
Next: as you know, you can put multiple triggers when using 'ConditionalTargetBlock()'. My question is: can you OR() two or more triggers? I mean, you can currently write 'A AND B' via "&". Is there an equivalent symbol for 'A OR B'? Related: I noticed that you cannot write That'd be handy.......
-
So, I have a question about setting variables from outside the SSL script itself, in the command line. If I write the variable "Test" doesn't get set. As a matter of fact, if TEST.ssl contains something like that block does get compiled (the SSL compiler should ignore it since "Test" is supposed to be set to True....) What am I missing?
-
Upon further reflection, I do think it's better to tweak existing resources => in so doing, I don't need to worry about scrolls and the like..... I could also optionally DELETE your resources/IWDification's from /override (just not to have unused resources around.....)
-
@DavidW Next question: what does the following clause mean in a TRIGGER definition? LineIf<!CheckStatGT(scstarget,0,WIZARD_SPELL_DEFLECTION)><%scsargument1_SPELLTURN%>
-
OK, it should be clear now, thanks. To tell the truth, I think it may be useful for what I need to do (in conjunction with DELETE_SCRIPT_BLOCK .....)
-
I see, thanks for clarifying. Thing is that I need it because of what I told you before, i.e., the automation of something like this Anyway, thank you for the workaround, it works. I opted for the following one:
-
OK, I fear I spotted a bug: if you compile the following SSL block the resulting BAF/BCS block won't have the See(LastSeenBy(Myself)) trigger ...... The same holds if you define a custom target for that in your .slb file, i.e.:
-
I see. Well, I don't know Perl but I may look at someday..... In the meantime, I found out a workaround: I'll stick with "Combine()" and then will delete the additional attack blocks using your function DELETE_SCRIPT_BLOCK: it's not very elegant but it should work.....
-
What do you mean exactly? Why is it precious? Unfortunately, 'Action(Literal)' is still pointless for me ... When exactly should I use it?
-
I'd use the existing gender (offset 0x0275) ILLUSIONARY => In so doing, they'll be instantly killed by Remove/Dispel Magic, Detect Illusion (Thieves, Dark Moon monks, Shamans) and True Seeing; at the same time they'll be immune to Death Fog (which is fine since they should not be considered as "conjured matter" as @bob_veng said). The only problem I foresee is that they'll no longer be subjected to the summoning limit => having said that, this will probably be irrelevant since their attacks are not reliable and they can be instantly killed by various common spells.....
-
More questions. Could you provide additional details about Action(Literal)? Let's consider your example: The aforementioned SSL blocks generate the same BAF file, namely: What am I missing?
-
@DavidW I see. To sum up: I could use Combine() => this will put the See() triggers in the right position but will also generate multiple attack blocks (useless, but not wrong). I could define multiple ACTIONs and manually put the False() triggers in the IF TRIGGER part => this won't generate multiple attack blocks but it's not very flexible (since I need to define lots of ACTIONs instead of using TriggerBlock()....). Alternatively: how much is difficult to define a "Combine()" command that does not generate a "LastSeenBy(Myself)" block? That will solve my issue
-
Guess this is the problem: why does TargetBlock() always come before all the other triggers defined in the IF TRIGGER part? If that was not the case, then your code would work...
-
@DavidW No, your SSL code generates the following BAF file, which is not what I was looking for... I need those See() triggers to be second last, immediately before False() – just like Combine() would do. Is there a way to achieve that? Moreover, it's still not clear for me what 'Action(Literal)' is supposed to do.....