Jump to content

Auras


kreso

Recommended Posts

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.

Not happening. Kensai didn't even loose 2 AC, let alone got it back. :D

Link to comment

 

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.

Not happening. Kensai didn't even loose 2 AC, let alone got it back. :D

 

HA! I had a feeling that wouldn't work*...too bad my solution didn't work either!

:D

* I may have had a convo with Adarnis about this, though...

Link to comment

HA! I had a feeling that wouldn't work*...too bad my solution didn't work either!

:D

 

So did I, but it took 30 seconds to try it out. Well, what I can do is create the ability that lowers AC by 2, nullifying +2 bonus, that does work.

Link to comment

Hm. Turns out EE2 has an item (shield) using repeating .eff. The only thing that's different is that it uses opcode 321, "Remove effects by resource" before it applies it's bonuses (MR bonus to each in range) - I think this prevents the spell being applied twice on the same actor. Better than nothing I guess.

Link to comment

Hm. Turns out EE2 has an item (shield) using repeating .eff. The only thing that's different is that it uses opcode 321, "Remove effects by resource" before it applies it's bonuses (MR bonus to each in range) - I think this prevents the spell being applied twice on the same actor. Better than nothing I guess.

 

Unfortunately that opcode isn't included in the regular BG engine.

 

You could always make the fighter/paladin's aura something that is X-times per day special ability, lasts a few turns (like Mazzy's Invoke Courage, so as to be suitable for prebuff) and applies the effects to nearby allies through delayed 146/148 - this coincidentally solves the slow/haste issue. I tried this with the Chant spell and it seems to work ok.

Link to comment

 

You could always make the fighter/paladin's aura something that is X-times per day special ability, lasts a few turns (like Mazzy's Invoke Courage, so as to be suitable for prebuff) and applies the effects to nearby allies through delayed 146/148 - this coincidentally solves the slow/haste issue. I tried this with the Chant spell and it seems to work ok.

 

 

I know. The issue with this is

a) it's not an aura anymore, it's an ability

b) AI won't use it

 

Latest SCS picks up on anything done with the kits, so loosing auras would be a terrible shame imo. Keep in mind, they do properly work on oponnents. It's "friendly" auras bugging out.

 

 

 

Unfortunately that opcode isn't included in the regular BG engine.

 

My editor shows it is....it may not work tho.

Link to comment

 

 

You could always make the fighter/paladin's aura something that is X-times per day special ability, lasts a few turns (like Mazzy's Invoke Courage, so as to be suitable for prebuff) and applies the effects to nearby allies through delayed 146/148 - this coincidentally solves the slow/haste issue. I tried this with the Chant spell and it seems to work ok.

 

 

I know. The issue with this is

a) it's not an aura anymore, it's an ability

b) AI won't use it

 

Latest SCS picks up on anything done with the kits, so loosing auras would be a terrible shame imo. Keep in mind, they do properly work on oponnents. It's "friendly" auras bugging out.

 

 

Ok then, I'd say add an AP_SPXXXXX to the clab file, whereby SPXXXXX is a timing mode 9 .spl that uses 232 to cast a secondary spell once per round on self, this 2nd spell lasts for 'x' rounds (say 30) and in turn casts the tertiary "Aura" spell via delayed 146 and has a 206 protecting from itself for 'x' rounds at the end of the block to prevent overlapping.

The game sometimes crashes when you use 232 to cast a self targeted spell, not sure if I've found the pattern to that yet.

 

 

 

Unfortunately that opcode isn't included in the regular BG engine.

 

My editor shows it is....it may not work tho.

 

 

I promise you it won't, if it did there'd be no need for the extra effort of making custom sectypes.

Link to comment

Using 321 on non-EE is game crash :D

Anyway, you'd reccomend using "232 to cast spell once per round". Lovely idea, but what trigger would you use? They're all flawed. I tested them out hundreds of times, there isn't a single one working as advertised. Perhaps something could be done with the new EE trigger (time of day) but I'm not sure and I want non-EE to benefit as well.

.

Link to comment

You could set it to trigger "On Hit" or "Attacked" and also via #248 melee hit effect (set by another CLAB file applied spell), this way the "aura" would be guaranteed to come into play one way or another once the fighting starts.

"hit" and "attacked" triggers on numerous occasions (i.e. poisoned). I do like "melee hit effect" tho - this could work. It still wouldn't solve the "stacking" issue; which would be grand if it could be done, but I fear it isn't.

Link to comment

Well, idiot me. I already did succeed in making something fairly similar once when I was tweaking the Barbarian.

Leap attack - gained at level 6, sorta substitute for offensive stance. For 6 seconds, once per turn, double movement speed, large THAC0 bonus (+4) and damage bonus (+4), +10 attacks speed factor. I used "cast spell on condition - enemy sighted", with a "protection from spell - leap attack (60seconds)" to make this work as I wanted. Ideally, bonus damage would work only on the first attack, but I can't really make this work.

Could easilly be upgraded at later levels (shorter cooldown, more damage, bonus AC etc.).

Now, what I'd do is replace friendly aura with something like this - only longer lasting (1 turn, can work once every 5 turns or so). This did work, and it's likely it can be made to work for the entire group.

I'll call it (taaaa-daaam) Battle orders. :D

Link to comment

My 2 cents:

- "on hit" EFF has some potential use, but unfortunately it triggers only on successful hits, not on every attack :(

- cast "on sight" with long duration would make the aura affect party members even if they get far away, that's why auras are refreshed every round generally

 

Overall, almost every solution isn't flawless. The best way to implement them would be as activated innate abilities imo, but that means the AI is not going to use them, which is a real shame.

Link to comment

Well, idiot me. I already did succeed in making something fairly similar once when I was tweaking the Barbarian.

Leap attack - gained at level 6, sorta substitute for offensive stance. For 6 seconds, once per turn, double movement speed, large THAC0 bonus (+4) and damage bonus (+4), +10 attacks speed factor. I used "cast spell on condition - enemy sighted", with a "protection from spell - leap attack (60seconds)" to make this work as I wanted. Ideally, bonus damage would work only on the first attack, but I can't really make this work.

Could easilly be upgraded at later levels (shorter cooldown, more damage, bonus AC etc.).

Now, what I'd do is replace friendly aura with something like this - only longer lasting (1 turn, can work once every 5 turns or so). This did work, and it's likely it can be made to work for the entire group.

I'll call it (taaaa-daaam) Battle orders. :D

This does work, I've changed aura into 232-enemy sighted-cast spell-previous aura effect, with same pro, and protection from spell with same duration (6) as spell itself. It's not perfect (can't stack) but it triggers correctly, low duration ensures that people standing away from fighter won't benefit too long. I think this can be used instead "friendly auras" and effs with "enemy-affecting auras".

Link to comment

So, I think the best method, and fairly foolproof way of doing Auras is through scripting...as long as you don't mind adding script to Baldur.bcs (which I don't).

 

Given a spll AC+ and AC- where AC+ increases AC by 1 point and AC- decreases, the script below will give Player2 a +2 AC bonus when within 20 feet of Player1. When he is out of that range, the bonus is removed.

 

IF
NextTriggerObject(Player1)
Range(Player2,20)
Global("P2RANGE","GLOBAL",0)
THEN
RESPONSE #100
ApplySpellRES("AC+",Player2) // You should find your father, for he wouldst speak with you.
ApplySpellRES("AC+",Player2) // You should find your father, for he wouldst speak with you.
SetGlobal("P2RANGE","GLOBAL",1)
END
IF
NextTriggerObject(Player1)
!Range(Player2,20)
Global("P2RANGE","GLOBAL",1)
THEN
RESPONSE #100
ApplySpellRES("AC-",Player2) // You should find your father, for he wouldst speak with you.
ApplySpellRES("AC-",Player2) // You should find your father, for he wouldst speak with you.
SetGlobal("P2RANGE","GLOBAL",0)
END
Link to comment

The biggest problem with using scripts anywhere imaginable is they love taking their sweet time to (re-)evaluate. The "hit pause and drop your inventory to collect it later" exploit at the start of BG2 is a perfect example of it. And it gets progressively worse when you re-evaluate the same script, to the point that even Continue() doesn't always seem to resolve it.

 

Now, the game's not gonna break if an aura is applied with a couple seconds delay, so exercising absolute control over timing is not as crucial as it is with plot or cutscene scripting. However, if the solution is bound to suffer from delays either way, the opcodes at least will not bloat the scripts.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...