kreso Posted September 19, 2014 Share Posted September 19, 2014 So - as it appears; and after an extensive testing/tweaking period, I come to a conclusion that eff usage is not really satisfactory. What can happen is that either they overlap (several times, which should be impossible); don't work in conjuction, or remain inactive for prolonged periods of time. More odd, enemy-targeting effs (paladin's or berserker aura) actually work as advertised, which comes as a huge surprise to me. Those affecting allies are busted. EE unfortunately didn't really fix this. (fwiw, I tested this by having auras apply graphic effects/portrait icons on enemies/party). Merging party-affecting auras into a single eff does help a bit (at least you get all the bonuses, when you get them), but I don't think that's satisfactory - worst thing is - they usually don't work when combat starts. I don't know what causes this, they work when standing still....but that's not when you need them. Additional problem is .eff + Haste. Thinking about possible solutions, something like this could work, at least in theory; example True Fighter aura 1) add a spell to his CLAB which uses "cast spell on condition" - "enemy sighted", target allies in range + self (similar AoE like Pro Evil, that's large enough; or even better, target whole party if that is usable by enemies as well). One doesn't really need bonuses if he isn't fighting anyway. 2) the spell casts another single-target spell at each ally in range and adds what are now aura bonuses (THAC0, damage, AC bonus; depending on level) As so far, I can easilly make this work. Only the duration of the effects should be considered. However, how can I (if et all) prevent the spell going off constantly, i.e. trigger returning true ad infinitum; while at the same time keeping the bonuses stackable for each True fighter in the group? An alternative is to make auras affecting enemies only (AC bonus aura turned into THAC0 penalty for oponnents), however some effects can hardly be mimicked (saves bonus from paladins, damage bonus for fighters). Link to comment
Grammarsalad Posted September 20, 2014 Share Posted September 20, 2014 I haven't worked with cast spell on condition, but maybe you make it remove itself via 172, then give it back using 171 after a delay equaling the duration(?) It can't trigger if it isn't there Link to comment
polytope Posted September 20, 2014 Share Posted September 20, 2014 More odd, enemy-targeting effs (paladin's or berserker aura) actually work as advertised, which comes as a huge surprise to me. Those affecting allies are busted. EE unfortunately didn't really fix this. (fwiw, I tested this by having auras apply graphic effects/portrait icons on enemies/party). Merging party-affecting auras into a single eff does help a bit (at least you get all the bonuses, when you get them), but I don't think that's satisfactory - worst thing is - they usually don't work when combat starts. I don't know what causes this, they work when standing still....but that's not when you need them. I think a plausible source of this problem is the projectile, it sounds like it fails to affect allies because they are moving around (but effects enemies because they are moving in to attack you usually). Which projectile are you using to apply the effects to your allies? If it's just INAREAPA try increasing the radius to 35'-40' and/or setting projectile speed to 60-80 as small and slow moving AoE projectiles often glitch like this. Link to comment
polytope Posted September 20, 2014 Share Posted September 20, 2014 I haven't worked with cast spell on condition, but maybe you make it remove itself via 172, then give it back using 171 after a delay equaling the duration(?) It can't trigger if it isn't there You're thinking of something totally different, 171/172 respectively grant and remove a memorized spell or innate, they don't apply or remove the effects of the spell or innate on a creature. Link to comment
kreso Posted September 20, 2014 Author Share Posted September 20, 2014 I haven't worked with cast spell on condition, but maybe you make it remove itself via 172, then give it back using 171 after a delay equaling the duration(?) It can't trigger if it isn't there I think these affect only memorized spells, this contingency-like effect isn't really something like that. I think a plausible source of this problem is the projectile, it sounds like it fails to affect allies because they are moving around (but effects enemies because they are moving in to attack you usually). Which projectile are you using to apply the effects to your allies? If it's just INAREAPA try increasing the radius to 35'-40' and/or setting projectile speed to 60-80 as small and slow moving AoE projectiles often glitch like this. I'll check out the .pro then. Somehow I'm afraid because I have a vague memory that more than a year ago Demivrgvs and I already tried increasing the speed to maximum.... EDIT: Better than nothing...but I hate flaws. We might try one more thing: increasing the projectile speed. This thing is crucial to fix because if Tactician doesn't work flawlessly, all paladin's auras will share this flaw. Damn.edit: I tried increasing projectile speed (dvcl115a.pro) via NI, by setting it to 100 (originaly it was 40, didn't see much difference) and then to maximum possible allowed. It kind of works, but not flawlessly. AC changes (rarely, and I can't seem to notice a pattern) but generally it stays on the correct value. I tried this out by observing AC in inventory sheet (ToBEx enabled) and how it changes. AC/THAC0 fluctuation happens sometimes (+1/-1), and lasts less than a half a second, then it continues as normal. I saved a game twice, once when it's working normal, once when bonuses were at +1. Edited them via Shadowkeeper, effects are present but I can't say what actually is causing this behevior. Otoh, Refinements mod incuded some Auras for Paladins. Maybe those files could help out. More edit: Tried Paladin Aura in Refinements....even there it dissapears for a split second before it triggers again (shows a graphic effect and Prot.Evil icon). . Link to comment
Grammarsalad Posted September 20, 2014 Share Posted September 20, 2014 I haven't worked with cast spell on condition, but maybe you make it remove itself via 172, then give it back using 171 after a delay equaling the duration(?) It can't trigger if it isn't there You're thinking of something totally different, 171/172 respectively grant and remove a memorized spell or innate, they don't apply or remove the effects of the spell or innate on a creature. Okay. Let me see if I understand the problem: You have an applied effect(1)--with corresponding spl (1)--on a character that: Casts some spell(2) applying some other effect(s) (2) upon seeing an enemy. The problem is that: The effect will cast multiple spells applying effect (2) upon seeing multiple enemies but You need effect (2) to stack so you can get bonuses from having multiple fighters If this is the problem, then it seems that the following should work: Spell (2) should Dispel/remove spl/effect (1) for the duration of the effect, then reapply it after a delay equaling the duration. Perhaps 221 to remove a dedicated sectype* and then 146 to cast spell at self (spl (1)). * wouldn't it remove just the specific spell if it is in the resource key? I know that 261 will restore spells in its resource key above all others--perhaps exclusively--when there is an appropriate spell in the resource key. If so, there may not be a need for a dedicated sectype Link to comment
kreso Posted September 20, 2014 Author Share Posted September 20, 2014 The problem is that: The effect will cast multiple spells applying effect (2) upon seeing multiple enemies but You need effect (2) to stack so you can get bonuses from having multiple fighters 1) can be handled using 206 Pro Spell opcode, that's easy 2) this I don't know if it can be done at all - if I use 206, then two or more fighters won't be granting bonuses So, they need to stack, but not coming from the same actor (either PC or AI) EDIT: Thinking about it - this may actually be viable. What can be done: 1)fighter kit is given immunity to this (let's call it aura, even if techincally it wouldn't be, it'd be a contingency) 2)so, they only carry it, but are immune to it's underling spell which gives combat bonuses (this reminds me of something... ) 3)this aura spell goes off on enemy sighted, but can't trigger more than once every x rounds (10-20-60, whatever, and the single-target spell it carries last also as long) 4)every kit besides true fighter benefits from true fighter in group; or several of them because each would cast this spell, granting more bonuses 5) true fighters don't get bonuses, but aura buffs everyone around them, which is fitting anyway, and prevents ToB drow fighters granting each other +6 damage, AC and THAC0 Now, what I'm curious is can ad.3) be made happen, or is this all bollocks. Link to comment
Grammarsalad Posted September 20, 2014 Share Posted September 20, 2014 Okay, there seems to be two possibilities:a) Protection from spell effects and b) Dispelling spell effects Which is better depends on the behavior of the engine and the desired effects. It seems like the most surefire way to achieve your 3 is option b here (though perhaps option a is also viable, as you suggest.) (snip)... What can be done: 1)fighter kit is given immunity to this (let's call it aura, even if techincally it wouldn't be, it'd be a contingency) 2)so, they only carry it, but are immune to it's underling spell which gives combat bonuses (this reminds me of something... ) 3)this aura spell goes off on enemy sighted, but can't trigger more than once every x rounds (10-20-60, whatever, and the single-target spell it carries last also as long) 4)every kit besides true fighter benefits from true fighter in group; or several of them because each would cast this spell, granting more bonuses 5) true fighters don't get bonuses, but aura buffs everyone around them, which is fitting anyway, and prevents ToB drow fighters granting each other +6 damage, AC and THAC0 Now, what I'm curious is can ad.3) be made happen, or is this all bollocks. Regarding 2: I don't think they want to be immune to the spell that (gives the combat bonuses) but rather the spell that [casts the spell that (gives the bonuses)]. Quoting IESDP opcode #232 "Casts the spell specified by the resource field..." You have your contingency. Lets call it "Spell01.spl" You have the spell that the contingency casts, lets call it "Spell02.spl". If I understand correctly:Spell01.spl--or really the effects of spell01.spl when it is applied to the character--will cast spell02.spl when an enemy is observed. This is the spell that [casts the spell that(gives the bonuses)] Spell02.spl gives the actual bonuses. This is the spell that (gives the bonuses). Spell02.spl should also cast the effect that grants immunity to Spell01.spl (maybe in the "casting features" tab with a duration equal to the duration of the given bonuses). Now, Spell02.spl is not the spell that is in the resource key when opcode 206 is activated; that should be Spell01.spl. Further, it is possible that protection from spell01.spl will also protect from spell02.spl, but as you say, that's not a terrible thing. Heck, even if it doesn't, you can probably also make Spell02.spl explicitly protect the caster from it as well. How this will work depends on how the engine deals with protection from an effect that is already applied that works like 232. If instead you dispelled the effects of Spell01.spl outright, but then used #146 to cast a third spell (say, spell03.spl) at yourself that was delayed for the exact same duration as spell02.spl, and spell03.spl also used #146 to cast Spell01.spl at self with a permanent duration, then you would only cast Spell02 when seeing an enemy (i.e. are under the effects of Spell01) when spell02.spl is not active. So something like: Spell01: I assume that this is AP_ in the clab. I believe that this means that the effects of spell01 are applied to the character. The effect is:#232: Resource Key: Spell02 Spell02: Casts the spell that applies the boni. As a casting feature it might protect from Spell01 if that works, or it might have an effect that outright dispels spell01. Either way, the hope is that the character is no longer casting spell02 when it sees an enemy. Spell03: if necessary--if the effects of spell01 are dispelled rather than suppressed--spell02 casts 146 with a delay that = duration of bonuses. The spell that it casts is Spell03. Spell03 itself casts spell01 using 146 at self with a 'permanent after death' duration meaning that the effects of spell01 are reapplied to the character again. At no time does the character have spell01 and spell02 active at the same time. Edited for clarity (hopefully!) Link to comment
kreso Posted September 20, 2014 Author Share Posted September 20, 2014 How this will work depends on how the engine deals with protection from an effect that is already applied that works like 232. Well, does anybody Infinity-engine savvy know this? I can probably test this in practice, but I'd rather not bother if it's impossible. EDIT: I see yet another problem. What if a fighter dies? Bonuses he gives should get removed, but unless 232 spell is cast every round (which brings me back to repeating .eff) they'll probably last too long. Thinking about it, I remember Demi writing something somewhere about auras changed to casting spells on each member, which then cast another spell or something... Link to comment
Grammarsalad Posted September 20, 2014 Share Posted September 20, 2014 How this will work depends on how the engine deals with protection from an effect that is already applied that works like 232. Well, does anybody Infinity-engine savvy know this? I can probably test this in practice, but I'd rather not bother if it's impossible. EDIT: I see yet another problem. What if a fighter dies? Bonuses he gives should get removed, but unless 232 spell is cast every round (which brings me back to repeating .eff) they'll probably last too long. Thinking about it, I remember Demi writing something somewhere about auras changed to casting spells on each member, which then cast another spell or something... You only have to worry about engine behavior if you use 'protection from' rather than 'dispel'. I think that if the effects of a spell are removed entirely, then they are gone; you only need to worry about reapplying them after the duration ends. But death could be a problem...A dead fighter will probably not cast the delayed spell and would forever be without his 'aura'... EDIT: So, protection from might be the best bet if it works... EDIT2: Or, perhaps the 'reverse aura' idea is better. What sort of penalties could you add? Penalties to Thac0 to simulate boni to AC Penalties to AC for a 'martial'/'strategist' type--seems to fit EDIT3: Or perhaps a combination approach. Perhaps some effects are better implemented one way, and others another way ... Link to comment
kreso Posted September 20, 2014 Author Share Posted September 20, 2014 You only have to worry about engine behavior if you use 'protection from' rather than 'dispel'. I think that if the effects of a spell are removed entirely, then they are gone; you only need to worry about reapplying them after the duration ends. But death could be a problem...A dead fighter will probably not cast the delayed spell and would forever be without his 'aura'... Tnx man. This is exactly what I needed to drop the idea completely. Link to comment
Grammarsalad Posted September 20, 2014 Share Posted September 20, 2014 You only have to worry about engine behavior if you use 'protection from' rather than 'dispel'. I think that if the effects of a spell are removed entirely, then they are gone; you only need to worry about reapplying them after the duration ends. But death could be a problem...A dead fighter will probably not cast the delayed spell and would forever be without his 'aura'... Tnx man. This is exactly what I needed to drop the idea completely. LOL, well there are still other options...I'm holding out for 'protection from...' Link to comment
Grammarsalad Posted September 20, 2014 Share Posted September 20, 2014 Thinking about it, this should be fairly easy to test. I'm not at a computer that can run bg--or it can't run bgee and I don't want to download and install bgee --but I think the basics could be tested like:Make a spl that protects from, say, "spcl142", the Kensai's -2 to AC. Add to the kensai as an activated ability (with a short duration). Create a kensai. Activate the ability in game. See if the Kensai gets the -2 to AC once the ability has expired. Now, if you have created a working model of your 'cast spell on condition' it would be preferred to test a prot from that. Link to comment
kreso Posted September 20, 2014 Author Share Posted September 20, 2014 EDIT3: Or perhaps a combination approach. Perhaps some effects are better implemented one way, and others another way ... Well : - Fighters gain +1 THAC0, +1 AC, +1 damage - since auras affect enemies correctly, only +1 damage cannot be "mimicked" (theoretically, it could be "-5% damage resistance aura" but that's a long shot) - +1 THAC0 is -1 AC aura on enemies, +1 AC is -1 THAC0 aura on enemies. That might work, even better since it will affect even mega-ac allies who theoretically hit the hardcoded AC cap at -24 (or -26, with 24 dex or single-wepon style) Paladins already work better, since their aura is usually affecting enemies - both damage and THAC0 penalties work as advertised, I even made them "stack" so two paladins mean twice the negative effect on bad guys. However, +1 saves aura is malfunctioning (since it's affecting allies). This cannot be mimicked. I'll test this out eventually, but not in the next few days since I'm busy with playtesting some other stuff. Thnx again, dialogue always sheds more light on things. Link to comment
kreso Posted September 20, 2014 Author Share Posted September 20, 2014 Now, if you have created a working model of your 'cast spell on condition' it would be preferred to test a prot from that. I haven't, but probably will test, yes. Thnx one more time. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.