kreso Posted September 20, 2014 Author Share Posted September 20, 2014 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. Link to comment
Grammarsalad Posted September 20, 2014 Share Posted September 20, 2014 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. HA! I had a feeling that wouldn't work*...too bad my solution didn't work either! * I may have had a convo with Adarnis about this, though... Link to comment
kreso Posted September 20, 2014 Author Share Posted September 20, 2014 HA! I had a feeling that wouldn't work*...too bad my solution didn't work either! 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
kreso Posted September 21, 2014 Author Share Posted September 21, 2014 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
polytope Posted September 21, 2014 Share Posted September 21, 2014 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
kreso Posted September 21, 2014 Author Share Posted September 21, 2014 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
polytope Posted September 22, 2014 Share Posted September 22, 2014 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
kreso Posted September 22, 2014 Author Share Posted September 22, 2014 Using 321 on non-EE is game crash 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
polytope Posted September 22, 2014 Share Posted September 22, 2014 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. Link to comment
kreso Posted September 22, 2014 Author Share Posted September 22, 2014 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
kreso Posted September 23, 2014 Author Share Posted September 23, 2014 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. Link to comment
Demivrgvs Posted September 23, 2014 Share Posted September 23, 2014 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
kreso Posted September 26, 2014 Author Share Posted September 26, 2014 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. 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
wolpak Posted September 14, 2015 Share Posted September 14, 2015 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
Ardanis Posted September 15, 2015 Share Posted September 15, 2015 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
Recommended Posts
Archived
This topic is now archived and is closed to further replies.