berelinde Posted April 25, 2009 Share Posted April 25, 2009 According to the IESDP, the following conditions all show up as Stats. In theory, you should be able to use a CheckStat() trigger to see if the condition applies. We all use CheckStat(Player1,##,STR) or whatever all the time, and I've used both INTOXICATION and FATIGUE before (which wasn't as fun as it sounds). But couldn't you also customize dialogue/scripts to check for things like two-handed sword proficiencies or the ability to set traps above a certain level? 2 ARMORCLASS 3 ACCRUSHINGMOD 4 ACMISSILEMOD 5 ACPIERCINGMOD 6 ACSLASHINGMOD 7 THAC0 8 NUMBEROFATTACKS 9 SAVEVSDEATH 10 SAVEVSWANDS 11 SAVEVSPOLY 12 SAVEVSBREATH 13 SAVEVSSPELL 14 RESISTFIRE 15 RESISTCOLD 16 RESISTELECTRICITY 17 RESISTACID 18 RESISTMAGIC 19 RESISTMAGICFIRE 20 RESISTMAGICCOLD 21 RESISTSLASHING 22 RESISTCRUSHING 23 RESISTPIERCING 24 RESISTMISSILE 25 LORE 26 LOCKPICKING 27 STEALTH 28 TRAPS 29 PICKPOCKET 30 FATIGUE 31 INTOXICATION 32 LUCK 33 TRACKING 34 LEVEL 35 SEX 36 STR 37 STREXTRA 38 INT 39 WIS 40 DEX 41 CON 42 CHR 43 XPVALUE 44 XP 45 GOLD 46 MORALEBREAK Returns 0 or 1 if the creature is immune to fear. 47 MORALERECOVERYTIME 48 REPUTATION 49 HATEDRACE 50 DAMAGEBONUS 51 SPELLFAILUREMAGE 52 SPELLFAILUREPRIEST 53 SPELLDURATIONMODMAGE 54 SPELLDURATIONMODPRIEST 55 TURNUNDEADLEVEL 56 BACKSTABDAMAGEMULTIPLIER 57 LAYONHANDSAMOUNT 58 HELD 59 POLYMORPHED 60 TRANSLUCENT 61 IDENTIFYMODE 62 ENTANGLE 63 SANCTUARY 64 MINORGLOBE 65 SHIELDGLOBE 66 GREASE 67 WEB 68 LEVEL2 69 LEVEL3 70 CasterHold 71 ENCUMBERANCE 72 MISSILETHAC0BONUS 73 MAGICDAMAGERESISTANCE 74 RESISTPOISON 75 DONOTJUMP 76 AURACLEANSING 77 MENTALSPEED 78 PHYSICALSPEED 79 CASTINGLEVELBONUSMAGE 80 CASTINGLEVELBONUSCLERIC 81 SEEINVISIBLE 82 IGNOREDIALOGPAUSE 83 MINHITPOINTS 84 THAC0BONUSRIGHT 85 THAC0BONUSLEFT 86 DAMAGEBONUSRIGHT 87 DAMAGEBONUSLEFT 88 STONESKINS 89 PROFICIENCYBASTARDSWORD 90 PROFICIENCYLONGSWORD 91 PROFICIENCYSHORTSWORD 92 PROFICIENCYAXE 93 PROFICIENCYTWOHANDEDSWORD 94 PROFICIENCYKATANA 95 PROFICIENCYSCIMITARWAKISASHININJATO 96 PROFICIENCYDAGGER 97 PROFICIENCYWARHAMMER 98 PROFICIENCYSPEAR 99 PROFICIENCYHALBERD 100 PROFICIENCYFLAILMORNINGSTAR 101 PROFICIENCYMACE 102 PROFICIENCYQUARTERSTAFF 103 PROFICIENCYCROSSBOW 104 PROFICIENCYLONGBOW 105 PROFICIENCYSHORTBOW 106 PROFICIENCYDART 107 PROFICIENCYSLING 108 PROFICIENCYBLACKJACK 109 PROFICIENCYGUN 110 PROFICIENCYMARTIALARTS 111 PROFICIENCY2HANDED 112 PROFICIENCYSWORDANDSHIELD 113 PROFICIENCYSINGLEWEAPON 114 PROFICIENCY2WEAPON 115 EXTRAPROFICIENCY1 116 EXTRAPROFICIENCY2 117 EXTRAPROFICIENCY3 118 EXTRAPROFICIENCY4 119 EXTRAPROFICIENCY5 120 EXTRAPROFICIENCY6 121 EXTRAPROFICIENCY7 122 EXTRAPROFICIENCY8 123 EXTRAPROFICIENCY9 124 EXTRAPROFICIENCY10 125 EXTRAPROFICIENCY11 126 EXTRAPROFICIENCY12 127 EXTRAPROFICIENCY13 128 EXTRAPROFICIENCY14 129 EXTRAPROFICIENCY15 130 EXTRAPROFICIENCY16 131 EXTRAPROFICIENCY17 132 EXTRAPROFICIENCY18 133 EXTRAPROFICIENCY19 134 EXTRAPROFICIENCY20 135 HIDEINSHADOWS 136 DETECTILLUSIONS 137 SETTRAPS Link to comment
devSin Posted April 25, 2009 Share Posted April 25, 2009 If you needed to... I'm not sure where you're getting the mysterioso from; it should be pretty straightforward? There are a few more stats than are in a ToB IDS; probably nothing you'd ever want to use. 166 MELEETHAC0BONUS 167 MELEEDAMAGEBONUS 168 MISSILEDAMAGEBONUS 169 NOCIRCLE 170 FISTTHAC0BONUS 171 FISTDAMAGEBONUS 172 TITLE1 173 TITLE2 174 NOVISUALS 175 IMMUNITYBACKSTAB 183 NODEFERAI 186 NOPERMANENTDEATH 187 IMMUNITYTURNUNDEAD 189 WILDSURGEMOD 190 NPCBUMP 191 USEANYITEM 192 ASSASSINATION 194 SPELLFAILUREINNATE 195 IMMUNITYTRACKING 196 DEADMAGIC 197 IMMUNITYTIMESTOP 198 IMMUNITYSEQUESTER 201 DONOTDRAW There are others, but I either have no suitable name for them or it's completely unknown what they're hooked up to. Link to comment
cmorgan Posted April 25, 2009 Share Posted April 25, 2009 Hmmm - CheckStat(Player1,2,PROFICIENCYTWOHANDEDSWORD) ( or CheckStat(Player1,2,93) ) may not be the kind of thing you are looking for, though, berelinde - the bigg's tewaks and stuff that remaps the proficiencies between BG and BG2 style might interfere. I do have a question, though, devSin - if I wanted to do something like this: /* 67 WEB */ IF StatCheck(Player1,#,67) THEN RESPONSE #100 DisplayStringHead(Myself,~Well, it looks like you are in a mite o' a sticky situation, there~) END (obviously set up properly so it isn't constantly checking) where would I look for the valid values? Link to comment
berelinde Posted April 25, 2009 Author Share Posted April 25, 2009 I was just thinking that it might occasionally be useful, in some pretty obscure dialogue situations. Like, if Player 1 had a high Lore ability, have an NPC say something like (using a BG1 example), "You probably already know about the Crown Wars, but this ruined elven temple is just one of those left in their wake in the border region between Tethyr and Amn." I'm thinking of the Underdark Exit, here, and making the entire thing up, but you get the idea. I got kind of used to being able to check for all kinds of bizarre things in NWN2, and I was just looking to see if there was provision for it in IE. Link to comment
devSin Posted April 26, 2009 Share Posted April 26, 2009 where would I look for the valid values?I wouldn't bother... if a creature doesn't have the web overlay effect, CheckStat(Object,0,67) is true, else !CheckStat(Object,0,67). (That's the way I'd do it.) But in most cases of these "effect" stats, you're probably just looking at "1" for "on" and "0" for "off." You can check exact values with a player script (IF HotKey(B) CheckStat(Target,[012...n],67) THEN RESPONSE #100 DisplayStringHead(Myself,[123...n]) END) and hit B after assigning the script to Player1 before and after webbing Target. Note that the run from ENTANGLE ... WEB mean *only* that the corresponding effect is active on the character checked (so minor globe overlay effect from Otiluke's sphere will still cause MINORGLOBE to be nonzero). I'm not sure about some of the others (HELD is probably 0/1; Polymorph and Translucent would be cool to return the Animation and Trans amount but probably don't; Identify probably is never set; CasterHold i.e., Pause caster is 0/1; NOJUMP i.e., No collision detection is 0/1; THRULL i.e., Turned by Cleric is 0/1; no idea about alacrity/speed factor/cast speed mods). Some of the SoA and ToB effects that have corresponding stats allow the effect to set an arbitrary stat value (in IESDP, these will usually be "Must be 1" or "Constant value" labels for Parameter 2), so these should always be checked by 0 / !0. The engine is basically checking the stat to determine if something should happen, and the effect really just sits there setting the stat for that character to its Parameter 2 value (things like SEEINVISIBLE, IGNOREDLGPAUSE, NOVISUALS, NOPERMDEATH, IMMUNETURNDEAD, USEANY, ASSASSINATE, etc.) without actually doing anything itself. (This is why older versions of Detectable Spells were wacky -- they were basically randomly turning all this stuff on and off by assigning values to these stats with misuse of the scripting state modifier). Link to comment
Jarno Mikkola Posted April 26, 2009 Share Posted April 26, 2009 This should be the list that we all know... so there are few to add into it, like those in devSin's post, but there is also the 1(MAXHITPOINTS), 148-165 and 200 not yet in this thread. Link to comment
Avenger Posted April 26, 2009 Share Posted April 26, 2009 DevSin, your list is almost complete I have these too: #define IE_EXISTANCEDELAY 184 // (sound2mn.itm) - (opcode 294) #define IE_ATTACKNUMBERDOUBLE 185 // used by haste option 2 I know all values from 1-201, except: 176-182, 188 and 193. If someone finds any clue how those are affected, tell me. [edit] added 188 to the list of unknown stats Link to comment
devSin Posted April 26, 2009 Share Posted April 26, 2009 Yeah, ExistanceDelayOverride was something that I couldn't come up with a catchy IDS symbol for, and we're still not sure what it was supposed to do anyway. So I leave it off. Not sure why I don't have 185; if there's already a haste stat, that's probably why I leave it out ("185 HASTE2" would just bug the hell out of me). That's what I meant with "no suitable name." Even if we know what it's used for, I have to come up with a label that looks good before I'll add it. :-) Link to comment
Taimon Posted July 19, 2009 Share Posted July 19, 2009 I know all values from 1-201, except: 176-182, 188 and 193.If someone finds any clue how those are affected, tell me. 176-182 are thief skill modifiers. The get set from the effect when param2 = 0 and timing = 9. (only in the "last" set of stats) In that order: open locks, move silently, find traps, pick pockets, hide in shadows, detect illusions, set traps. 184: Probably something from BG1 as it is related to the DIALOG_DEFAULT soundslot. It influences a chance that this sound/dialogue is triggered. The higher the value, the lower the chance. But it needs to be >0. There is still a condition that I haven't figured out, that needs to be true for this to happen. 188: Skips a whole bunch of action related stuff if it's set. (That stuff is also skipped when the game is in cutscene mode or bit 31 [named it "noninterruptable", since it is set by SetInterrupt(0)] of the cre flags is set.) I'm curious about 198, though. It's used (indirectly) in the freedom effect when param2 is not 0. But it looks like some legacy thing. Link to comment
Taimon Posted July 19, 2009 Share Posted July 19, 2009 184: Probably something from BG1 as it is related to the DIALOG_DEFAULT soundslot. It influences a chance that this sound/dialogue is triggered. The higher the value, the lower the chance. But it needs to be >0. There is still a condition that I haven't figured out, that needs to be true for this to happen. Correction: I was off by one in the switch table, it's not the DIALOG_DEFAULT slot, but rather those strange EXISTANCE slots. And now the name of the effect suddenly starts to make sense. Link to comment
Taimon Posted July 19, 2009 Share Posted July 19, 2009 Okay, I think I finally have all pieces together. The EXISTANCE soundslots start at 69, not 70. (But the amount [5] is correct.) Normally, there is a low chance (1/1485) that a creature does a random existance sound in his ai round. (Only valid strrefs are taken into account, and multiple entries have to be consecutive.) With param1 of effect 0x126 you can directly influence that chance. 1 => 1/1, 2 =>1/2, ..., n => 1/n. Param2 has no effect at all. The extra condition I was talking about earlier is, that the creature has to be visible. Link to comment
Ardanis Posted July 19, 2009 Share Posted July 19, 2009 As far as I can tell there're already 26-29 and 135-137 stats that deal with thief skills. Is there a difference between those and 176-182? PS Oh, great, now I get it at last! It often happened to me that my rogues would have some of their skills 1-2 points higher than it should be. Detectable Spells uses 176-182 for various spells and that's how skills would go higher. Link to comment
Avenger Posted July 19, 2009 Share Posted July 19, 2009 Thanks for clearing up the existance_whatever stat I always thought it is about how long to keep the corpse after death. 198 is set by the 'immunitytosequester' effect (0x138). But the effect itself is crippled (its constructor bugs out). So, this stat cannot be set by its designated opcode. 00549975 8B 51 1C mov edx,dword ptr [ecx+1Ch] ;;param2 00549978 89 90 AA 0D 00 00 mov dword ptr [eax+0DAAh],edx ;; ? Link to comment
Taimon Posted July 19, 2009 Share Posted July 19, 2009 198 is set by the 'immunitytosequester' effect (0x138).But the effect itself is crippled (its constructor bugs out). So, this stat cannot be set by its designated opcode. Yes, you can't construct the effect directly. But the freedom effect (with param2 != 0) provides a way to do it indirectly. There are some other conditions that must be met in order to construct the effect and I haven't quite figured it out yet. Link to comment
devSin Posted July 19, 2009 Share Posted July 19, 2009 Yeah, the existence quips (PICKED_POCKET slot to +4) run periodically (rarely used in BG2), so this makes sense (there should be another condition: not in party, but that may be enforced elsewhere). Interesting that they made this 1/param1 when the default is already such a large value (SOUND2MN is definitely not going to be 2 minutes between sounds, guys). No wonder it's never used. Hm, maybe sequester immunity really was going to block the maze-type limbo (I changed my mind last year or so since there's a sequester-ish pnp spell, but my original guess around here somewhere was to block the imprisonment removal)? Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.