Demivrgvs Posted October 14, 2014 Share Posted October 14, 2014 Amazing stuff going on here guys. You both have access to IR/SR betas and have enough knowledge of the game to handle everything by yourself but if you need me to do something (e.g. tweak an item/spell for SCS compatibility sake) just let me know. Link to comment
Salk Posted October 14, 2014 Share Posted October 14, 2014 This will mean that SR/IR game will become a bit harder however. If somebody isn't happy with that, SCS ini file includes the option that AI doesn't detect items' immunites, thus I guess it's fine (i.e. right now AI detects Confusion immunity from Lirarcor, but not ADHW immunity from IR Wave halberd. Now it will ) I always disable the detection of item immunities from the SCS ini file simply because it's a blatant unfairness towards the player. Link to comment
kreso Posted October 14, 2014 Share Posted October 14, 2014 if you need me to do something (e.g. tweak an item/spell for SCS compatibility sake) just let me know. Will do. I always disable the detection of item immunities from the SCS ini file simply because it's a blatant unfairness towards the player. I disagree, but understand. Note that if one doesn't tweak .ini file, it takes a round for them to start detecting (more precicely, they detect immidiately, but don't act on it). I usually disable that round as well. Link to comment
Salk Posted October 14, 2014 Share Posted October 14, 2014 I always disable the detection of item immunities from the SCS ini file simply because it's a blatant unfairness towards the player. I disagree, but understand. Note that if one doesn't tweak .ini file, it takes a round for them to start detecting (more precicely, they detect immidiately, but don't act on it). I usually disable that round as well. I knew you would. But from a merely rational standpoint there is no excuse for the AI to know what protections the player has so I find hard to defend a "I disagree" position. The AI cheats. The one round "delay" is simply a "I let the AI wait one round before I start cheating" because there is no causal effect between waiting one round and gaining knowledge of the player's protection. I am eternally grateful for the .ini customizations. Link to comment
kreso Posted October 14, 2014 Share Posted October 14, 2014 But from a merely rational standpoint there is no excuse for the AI to know what protections the player has so I find hard to defend a "I disagree" position. The AI cheats. The one round "delay" is simply a "I let the AI wait one round before I start cheating" because there is no causal effect between waiting one round and gaining knowledge of the player's protection. I agree, AI blantatly cheats here. Imo, the perfect soultion would be something like this: - mage isn't blind, he can see you - depending on his age/lore/exp (in game terms, level) he can see some of your weapons or armor, recognize them, and act accordingly. - he cannot see rings (too small) or amulets (small & probably hidden), boots (dirty) - some "epic" items like Equilizer, Lirarcor should probably be detected even by low-level mages - some less notable (i.e. Namarra) could be detected by mages above level x. - clerics should be less effective than mages here, druids even less so - lich-types should be able to detect everything Best of all, I think this could actually be coded. Not that I'm gonna do it however. Link to comment
Dakk Posted October 14, 2014 Share Posted October 14, 2014 This will mean that SR/IR game will become a bit harder however. If somebody isn't happy with that, SCS ini file includes the option that AI doesn't detect items' immunites, thus I guess it's fine (i.e. right now AI detects Confusion immunity from Lirarcor, but not ADHW immunity from IR Wave halberd. Now it will ) I always disable the detection of item immunities from the SCS ini file simply because it's a blatant unfairness towards the player. With that setting, will the AI ever detect item immunities? If you have say, a shield that gives 100% fire res, will the AI know that after throwing a fireball? Link to comment
Jarno Mikkola Posted October 14, 2014 Share Posted October 14, 2014 With that setting, will the AI ever detect item immunities? If you have say, a shield that gives 100% fire res, will the AI know that after throwing a fireball?It's more likely to know it before it commits to throwing a fireball, not after ... after all it can check your immunities as is. Link to comment
Dakk Posted October 14, 2014 Share Posted October 14, 2014 With that setting, will the AI ever detect item immunities? If you have say, a shield that gives 100% fire res, will the AI know that after throwing a fireball?It's more likely to know it before it commits to throwing a fireball, not after ... after all it can check your immunities as is. I always disable the detection of item immunities from the SCS ini file simply because it's a blatant unfairness towards the player. ^- this Link to comment
kreso Posted October 14, 2014 Share Posted October 14, 2014 With that setting, will the AI ever detect item immunities? If you have say, a shield that gives 100% fire res, will the AI know that after throwing a fireball? AI will know you're fire-immune regardless of ini, and will not throw a fireball. It will (with AI detect items = 0) cast Charm against someone having Helm of Charm resistance on and similar. Link to comment
Dakk Posted October 14, 2014 Share Posted October 14, 2014 With that setting, will the AI ever detect item immunities? If you have say, a shield that gives 100% fire res, will the AI know that after throwing a fireball? AI will know you're fire-immune regardless of ini, and will not throw a fireball. It will (with AI detect items = 0) cast Charm against someone having Helm of Charm resistance on and similar. I'm not sure I understand. So AI will detect elemental resistance from my shield but not Charm resistance from my helmet? Follow-up: after the AI casts Charm vs HoC - and it turns out I'm immune - will the AI notice it or keep casting Charm? Link to comment
kreso Posted October 14, 2014 Share Posted October 14, 2014 I'm not sure I understand. So AI will detect elemental resistance from my shield but not Charm resistance from my helmet? Yes. Follow-up: after the AI casts Charm vs HoC - and it turns out I'm immune - will the AI notice it or keep casting Charm? Yes. That's why I do enable AI to instantly detect, otherwise they're a bit dumb. Link to comment
Dakk Posted October 14, 2014 Share Posted October 14, 2014 I'm not sure I understand. So AI will detect elemental resistance from my shield but not Charm resistance from my helmet? Yes. Hmm, this confuses me. What's the delimiter? It can't detect elemental resistances I take it, but what else can and can't it? Follow-up: after the AI casts Charm vs HoC - and it turns out I'm immune - will the AI notice it or keep casting Charm? Yes. That's why I do enable AI to instantly detect, otherwise they're a bit dumb. I see. Default behaviour is 1 round, and you can also turn it off fully (like Salk does). Is it possible to extend the 1 round delay via .ini? Also, much obliged for the answers and insights so far. Link to comment
Salk Posted October 14, 2014 Share Posted October 14, 2014 I'm not sure I understand. So AI will detect elemental resistance from my shield but not Charm resistance from my helmet? Yes. I am confused myself now. I was under the impression that the AI wouldn't detect any kind of immunity or resistance granted by all equipped items. From the read me: AI_Does_Not_Detect_Items (0) - set this to 1 and enemies will completely fail to notice your protective magical items. (This is likely to cause some odd behaviour.) Link to comment
kreso Posted October 14, 2014 Share Posted October 14, 2014 This is a part (for FourtNearestEnemyOfMyself which IS targetable) of script responsible for fireball casting. IF !GlobalTimerNotExpired("castspell","LOCALS") // have I got a clean aura? HaveSpell(WIZARD_FIREBALL) // do I have a firaball to cast? !StateCheck(FourthNearestEnemyOf(Myself),STATE_NOT_TARGETABLE) // can the enemy be targeted? !CheckStatGT(FourthNearestEnemyOf(Myself),0,SANCTUARY) // is he sanctuaried? CheckStatLT(Myself,50,SPELLFAILUREMAGE) // am I suffering from some kind of spell failure (hit by WizardSlayer, Insects etc.) !CheckStat(FourthNearestEnemyOf(Myself),2,WIZARD_SPELL_TRAP) // Is the target protected by Spell Trap See(FourthNearestEnemyOf(Myself)) !CheckStatGT(FourthNearestEnemyOf(Myself),99,RESISTMAGIC) // Is he immune to magic !CheckStatGT(FourthNearestEnemyOf(Myself),50,RESISTFIRE) // Is target's fire resistance greater than 50? !CheckStat(FourthNearestEnemyOf(Myself),6,WIZARD_SPELL_IMMUNITY) // Is target under SI:Evocation !CheckStatGT(FourthNearestEnemyOf(Myself),0,MINORGLOBE) // Does he have a Minor Globe? !HasItemEquiped("FIRE IMMUNE SHIELD",scstarget) // this does not exist in script ofc. This is how targeting works. You theoretically could deactivate the 50% Resist Fire part - this 50% includes item bonuses, spell bonuses etc. It's irrelevant from where the fire resistance actually comes, is it an item, a spell, potion or inborn. The last line is "specific", and these are the ones I've altered. This is what ini option disables, not 50% fire resist; 99% magic resist etc. Only those referencing to specific items. SCS builds a "database" for all confuse-proof, charm-proof etc. items in the game and adds a marker. That marker is then used for !HasItemEquiped blocks. Not everything is covered (i.e stuff that's usually covered is Enchantement, Stuns and similar). To make it more clear - you can, for example, create an item (say ring) which doesn't give 100% Fire resistance BUT gives outright immunity to Fireball spell. This SCS won't notice, unless specifically told so (this is; in essence, what I'm doing to it's scripts for IR) If you make a ring with 51% Fire resistance, SCS won't use Fireball against it. You may be cought in the blast, but ain't gonna be a "prime target". Example of what I'm doing, script (part of) for ADHW (on SR/IR install): !CheckStatGT(ThirdNearestEnemyOf(Myself),30,MAGICDAMAGERESISTANCE) !CheckStatGT(ThirdNearestEnemyOf(Myself),50,RESISTMAGIC) !CheckStat(ThirdNearestEnemyOf(Myself),7,WIZARD_SPELL_IMMUNITY) !StateCheck(ThirdNearestEnemyOf(Myself),STATE_IMMOBILE) !CheckStatGT(ThirdNearestEnemyOf(Myself),0,HELD) !HasItemEquiped("halb09",ThirdNearestEnemyOf(Myself)) // Halberd +4: Wave // IR adds ADHW immunity !HasItemEquiped("plat16",ThirdNearestEnemyOf(Myself)) // Armor of the Hart +3 // IR adds SI:Necromancy The bolded lines are new, ofc. In a "regular" download SCS would check for CLCK26 (Mirror Cloak). Since the cloak is changed in IR, there's no more reason to include it, thus it's removed. These 2 lines can be deactivated via ini. The rest can't. I hope I've been clear.... Link to comment
kreso Posted October 14, 2014 Share Posted October 14, 2014 Hmm, this confuses me. What's the delimiter? It can't detect elemental resistances I take it, but what else can and can't it? ..... I see. Default behaviour is 1 round, and you can also turn it off fully (like Salk does). Is it possible to extend the 1 round delay via .ini? It can detect resistances, kits, spell protections, and whatever it's told to detect. I don't really know if you can extend the delay. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.