Jump to content

Luke

Modders
  • Posts

    879
  • Joined

Everything posted by Luke

  1. @DavidW So, I went the extra mile and started using SFO (so as to complete your lecture about functional programming). I (hopefully!) managed to get the hang of it, but unfortunately some features are poorly documented / rarely used in SCS, so I'd like to ask you a couple of questions: As far as make_item and make_spell are concerned, how can I target a specific header using add_effect_inline? I was hoping for the array eff_fields to have an additional parameter (i.e., header or something like that), but that's not the case.... I mean, I don't think you're forced to do something like this, right? EDIT: Just to clarify: I'd like to match headers based on their order, i.e.: I'm looking for something like header in ordinary ADD_ITEM_EFFECT / ADD_SPELL_EFFECT ('SET header to number of extended header (starting from 1) the effect should be added to (by default the effect is added to every header'). I tried with add_effect_inline => "match=>~ability=1~ opcode=>18 parameter2=>1" // Add this effect to the first extended header only! but it's not working (i.e., the effect is not added....) Is it possible to collect something like this add_effect_global_inline'0=>~opcode=>0~ add_effect_global_inline'1=>~opcode=>1~ add_effect_global_inline'2=>~opcode=>2~ add_effect_global_inline'3=>~opcode=>3~ add_effect_global_inline'4=>~opcode=>4~ add_effect_global_inline'5=>~opcode=>5~ into an auxiliary array (like you would do when adding a brand new ability / effect, i.e.: add_ability / add_effect => auxiliary_array).
  2. So, I've just noticed @DavidW does exactly that in SCS (i.e., he changes the identifier back to WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL), so @CamDawg needs to fix this issue here in IWDification...
  3. So, to sum up: As far as CharGen and level up (for Sorcerers and Shamans) are concerned, you cannot exceed 50, otherwise the spell will not appear. Instead, as far as learning a spell from a scroll is concerned, then you can safely exceed 50, you'll be able to copy it to your spell book. Is that right?
  4. Fortunately, that's not true (at least on EE games...) I've just tried with SPWI982 – DAERRAGH (note that 82 > 50) and I successfully copied it to my spell book as a level 4 spell
  5. Yeah, it goes up to 99 (the same holds for priest spells of course...). Yes, you're right, this level is almost full... Nevertheless, I'd rather use the remaining free slots instead of leaving them empty (even if it is not strictly needed, like a spell castable by enemies only...)
  6. Good point (also taking into account that 'SpellRES()', 'RemoveSpellRES()' and so forth work fine), but, as @subtledoctor said, why the need to be so drastic? I mean, there are more or less 50 (60 or even 70 in some cases) empty slots per level, so why should they be left empty?
  7. Why the need of this effect in the first place? I mean, it doesn't filter anything (EA is set to ANYONE....) Try removing it and apply opcode #232 directly to your CRE file....
  8. Do you perhaps have any suggestion/tutorial about this? I mean, I do think this is one of the most difficult part when making icons....
  9. Actually, it does seem to be possible, see below. ConditionalTargetBlock(EnemiesInOrderShort;OR(2)&Kit(scstarget,BLACKGUARD)&Class(scstarget,BARD)) Separately: I noticed there are some 'ActionCondition()'s in SCS, but are they functional? I'm asking because I keep getting an error when using them... Moreover, according to the underlying perl code, they seem to be functionally identical to standard 'Action()'s... if ($scsline=~m/ActionCondition\(/ eq "1") { extract_from_brackets(); push @action, $scsline;
  10. Technically speaking, that's how signed integers are represented in two's complement...
  11. OK, I think I found out what's happening here: it's a matter of using object specifiers (e.g., [PC], SecondNearest([PC]), [EVILCUTOFF] and so forth) instead of 'NearestEnemyOf(Myself)', 'SecondNearestEnemyOf(Myself)', and so forth... Now everything seems to work as I originally intended + this explains why your AI cannot be "lured/kited" ...
  12. Well, if that's the case, then this mod should hide the 6-th level series via HIDESPL.2da (in order to have one implementation of any given spell; moreover, that's the case on IWDEE too....). In other words: how can I distinguish between WIZARD_CONJURE_FIRE_ELEMENTAL (5-th level) and WIZARD_CONJURE_FIRE_ELEMENTAL (6-th level)? I mean, LAF RES_NUM_OF_SPELL_NAME STR_VAR spell_name = ~WIZARD_CONJURE_FIRE_ELEMENTAL~ RET spell_res END will return the 5-th level one (i.e., the first one...) Alternatively, since you're replacing the 5-th level series, then you should keep the same identifier (i.e., WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL)
  13. There's another detail that (unfortunately) the IESDP doesn't mention, i.e.: 'ActionListEmpty()' doesn't return true once 'Reevaluation Period' is up (to tell the truth, I'm not sure about this...)
  14. I guess the main reason is that @DavidW hasn't found the time to play the game yet.... If you look at the scripts and compare them, you'll notice SCS ones are superior (generally speaking...)
  15. @DavidW I think there's actually a tweak that could be made optional (or, rather, it should not be installed by default). I'm talking about "Make elemental arrows like BG2 (TUTU,BGEE)" Why is it installed by default? I mean, I don't think it is related to neither "Smarter Mages" nor "Smarter Priests" (i.e., the two components that mainly rely on the changes listed under "Universal Changes")... In other words: unlike the other tweaks, this one should break nothing (AI-wise), so I can safely ignore it... I find it similar to "Move or modify some overpowered magic items (BG2,BG2EE,EET)" or "Reduce the power of Inquisitors' Dispel Magic": as a result, it should be prompted to the user during the installation instead of being an ini option...
  16. Please, enlighten me.... I mean, if you cannot damage the tank with your weapons, why should you stop from pelting the mage? Because in so doing the Mordekainen's Sword and similar would be useless? Mmmh...
  17. I was not suggesting that... I was simply saying Beamdog should implement those two triggers, they'll (hopefully) eliminate the edge case (probably not so "edge"...) me and DavidW were talking about.... Moreover, they'll simplify the so called "weapon handling", i.e., it'll be easier to script enemies that have more than one type of ammo and so fourth...
  18. Yeah, sorry, I meant BIT1 of the upper word of the 'Type' field...
  19. Good point, but it remains exploitable => I can simply send in the Mordekainen's Sword and order everyone else to attack with a ranged weapon... These two triggers will hopefully solve this issue (provided they get implemented...) WeaponEffectiveVs(O:Object*,I:WeaponNum*SLOTS,I:AbilityNum*) WeaponCanDamage(O:Object*,I:WeaponNum*SLOTS,I:AbilityNum*) They are meant to return true if the active creature can hit/cause non-zero damage to the target object specified in the 1st parameter using the weapon located in the specified slot and considering the ability in the extended header specified by the ability parameter.
  20. @temnix I don't think that will work... I'm fairly confident it's some hidden mechanics behind 'AttackReevaluate()' that is preventing my CRE from switching targets... I'd like to ask @Galactygon for some help... It seems he already bumped into this issue some time ago...
  21. As you probably know, creatures currently executing an 'AttackReevaluate()' action won't switch target unless they're forced to move in order to attack their target. This is particularly relevant for ranged creatures (since unlike melee attackers they usually don't chase their target) => As a result, you need to execute a 'ClearActions(Myself)' command in order to stop 'AttackReevaluate()' and look for another valid target. The problem is that it doesn't seem to work in my case.... I'd like to summon @DavidW since he uses this technique quite often in SCS.... Sample script below: The problem is that the CRE in question keeps attacking always the same target, even if someone else is closer than the current target ('NearestEnemyOf(Myself)' is the most important target). It will switch target only after the timer "stayontarget" has expired... But SCS ranged creatures constantly switch targets (even if the timer has not expired yet). How do you manage to achieve that?
×
×
  • Create New...