Jump to content

Luke

Modders
  • Posts

    879
  • Joined

Everything posted by Luke

  1. Is there any particular reason for that? In other words, how would you automate something like this I mean, 'Combine()' is really useful to generate False() blocks, but I cannot use it in this case since there are different triggers.... Actually, I can use it but then I would generate two attack blocks (one for STATE_MIRRORIMAGE and another one for STATE_BLUR), which is kinda bad..... Do you have any suggestions? Is defining two separate ACTIONs and manually create the False() blocks (i.e., without using 'Combine()) the only solution? That is:
  2. Good to know, thanks for clarifying (the triggers I previously pointed out don't belong to the intersection, so they appear only in the final 'LastSeenBy(Myself)' blocks).
  3. To tell the truth, it seems to be partially possible. This SSL block generates the following BAF code: To sum up: could you explain why some triggers (e.g., 'Allegiance()' and '!InParty()') defined in the ACTION definition only appear in the 'LastSeenBy(Myself)' block instead of everywhere?
  4. I'd like to ask a question about an SSL block: the following two SSL blocks generate the same BAF file: => the triggers present in the ACTION "Spell" are the first ones, then comes "See(NearestEnemyOf(Myself)" (i.e., Target and TargetBlock()) and finally all the other triggers (in this case "!GlobalTimerNotExpired("Dispel","LOCALS")"), regardless of what comes first in the IF TRIGGER part. Is it intended?
  5. I see, thank you for clarifying. This means that I need to define two separate ACTIONs, right? Alternatively – When dealing with ACTION blocks, can "scsargument" be a script trigger? For instance, I noticed you can do something like this but you cannot do this because "," (commas) are used to separate arguments, so the SSL compiler cannot resolve this comma => Allegiance(Myself,GOODCUTOFF). It basically thinks there's another argument after "Allegiance(Myself". The resulting BAF file is: To tell the truth, I also noticed you cannot write i.e., feed your ACTION with the empty string in case you don't need any additional trigger, so this is probably not the best solution...
  6. I have a question about Combine(): Is it possible to combine two actions so that certain triggers only appear in one of two final blocks (i.e., the two blocks containing LastSeenBy(Myself))? Example below: Moreover, could you provide a couple of lessons about ConditionalTargetBlock() and LOOP? If I'm not mistaken, the first one can be used to restrict the triggers specified in the second argument to the targets specified in the first argument. For instance: IF TRIGGER ConditionalTargetBlock(PCsPreferringWeak;Gender(scstarget,MALE)) TargetBlock(EnemiesInOrderShort) TriggerBlock(MR100|Enemy|SIConjuration) THEN DO Action(Spell,WIZARD_FLAME_ARROW,50,SPELLFAILUREMAGE|100|50) END Both "PCsPreferringWeak" and "EnemiesInShortOrder" are subjected to !CheckStatGT(scstarget,99,RESISTMAGIC) Allegiance(Myself,ENEMY) !Allegiance(scstarget(Myself),ENEMY) !CheckStat(scstarget,2,WIZARD_SPELL_IMMUNITY) whereas only "PCsPreferringWeak" are subjected to Gender(scstarget,MALE) Am I correct?
  7. @DavidW, @Angel OK, I found the culprit: TRIGGER = Attacked should be TRIGGER=Attacked I.e.: you do not need to put spaces between the keyword TRIGGER and its name
  8. @DavidW So, I keep getting the following error: Unrecognised TriggerBlock: Attacked Here's my .tp2 file: ACTION_IF !FILE_EXISTS_IN_GAME ~GTTEST.bcs~ BEGIN // Sanity check AT_NOW ~chmod 755 %MOD_FOLDER%/ssl/ssl.pl~ AT_NOW ~/usr/bin/perl %MOD_FOLDER%/ssl/ssl.pl %MOD_FOLDER%/components/test/GTTEST.ssl -l %MOD_FOLDER%/ssl/library.slb~ EXACT COMPILE ~%MOD_FOLDER%/components/test/ssl_out~ END Here's what library.slb contains: TRIGGER = Attacked OR(2) AttackedBy([GOODCUTOFF],DEFAULT) SpellCastOnMe([GOODCUTOFF],0) And here's GTTEST.ssl: BEGIN_ACTION_DEFINITION Name(Test) TRIGGER HaveSpell(scsargument1) Global("gttest","GLOBAL",0) ACTION RESPONSE #scsprob1 Spell(scstarget,scsargument1) SetGlobal("gttest","GLOBAL",1) END IF TRIGGER TriggerBlock(Attacked) Target(Protagonist) THEN DO Action(Test,WIZARD_CHARM_PERSON) END Am I missing something? Why doesn't it recognize "Attacked" defined in library.slb? It seems @Angel bumped into this issue too... Moreover, there's a typo in all the examples provided in the first page: "#scsprob" should be "#scsprob1"
  9. If that's the case, then you should add Poisoned Throwing Dagger (1DAGG16.pro).
  10. I see. So I first need to do my modifications (including my version of MONSTER_SUMMONING_4, 5, 6, 7 and so forth) => then installing IWDification => and finally SCS. Right?
  11. @DavidW What about an existing spell? What if I'd like to edit WIZARD_MONSTER_SUMMONING_2? Will your IWDEE spells overwrite my modifications?
  12. Unfortunately, there are still some issues with summoned monsters. Why do some summoned creatures (e.g., OGRELESU, HOBGOBSU) use some other script (e.g., DW#SUMME) instead of BDSUM00 when summoned by the player (i.e., [GOODCUTOFF])? Just to allow for toggling AI on/off via hotkeys? I mean, it's worse than BDSUM00 combat-wise... Lizard man shades now have weapons => You placed #S1-12.itm in SLOT_HELMET (should be SLOT_WEAPON) You attached opcode #326 (param#2 = 0, resource = ~RNDTRE03~) to some summoned creatures (e.g., GNOLLSU, HOBGOBSU). I don't think this is intended...
  13. Are you referring to offsets 0x6e – 0x75 of the CRE file? If so, then you're right, they're functional, but you may wanna redistribute them => for instance, DW#MS4YU (Yuan-ti) has 3 points in the Spiked proficiency (offset 0x73) but its equipped weapon (SW1H04 – Long Sword) makes use of the Large Sword proficiency (offset 0x6e).... This is particularly true for Lizard Men summoned by WIZARD_SHADOW_MONSTERS, WIZARD_DEMI_SHADOW_MONSTERS and WIZARD_SHADES...
  14. Sorry, forgot to mention these resources exist only on BGEE (not on BG2EE – so if you decide to use them, you'll need to distinguish between the two games)
  15. I see, thank you for clarifying. So basically there's no risk of breaking your AI in this case. In particular: I'd like to replace the current summoned creatures with my own creatures. I'd like to modify the special parameter of opcode #331 to always use "Dice values". I'd like to give some specialist mages (notably Conjurers) the possibility of summoning extra creatures via opcode #177. As you can see, none of these things is supposed to break your AI. Moreover, since you tend to give specialist mages spells belonging to their school, your AI will benefit from it as well. I have a question about the associated scroll: do I need to CREATE it or will SCS do that for me and distribute it where appropriate?
  16. Does this mean that everyone is free to ADD his/her own version of the Monster Summoning spells and similar (e.g., WIZARD_SHADES, etc.)? I mean, your AI uses these spells regardless of what creatures are summoned, so it's safe, right?
  17. [BG1EE, SCS v32.3] Improved NPC management and customization: the EE joinable NPC Dorn joins the party with 1 use of "Absorb Health" (along with the special ability to change his original class/kit). As a result, if you keep his original class/kit when leveling him from level 0 to level 1, he'll end up with 2 uses of this spell-like ability (whereas it should be one use per day) => I managed to fix this issue via kicking him from the party and then recruiting him again before hitting the 'level up' button... When an NPC joins the party, he/she has 0 (zero) XP points. Is it intended?
  18. At least on EEs, you could use DAGG01Q, HALB01Q, BLUN06Q and the like (note the "Q" in the resource name) => they're basically the non-breakable version of the ordinary dagger, halberd, morning star and the like (a.k.a. "quality" weapons).
  19. CLERIC_MASS_CAUSE_LIGHT_WOUNDS is using an unknown secondary projectile (offset 0x214 of SPARRENP.pro) IDPRO282.pro is displaying the wrong string at 0x030 (namely: Change difficulty to IMPROVED: Vampires show more care in choosing their targets, actively seeking vulnerable targets; they use their dominating gaze on opponents.) => The correct string should be Releases Acidic Vapor. Anyway, you may wanna unset BIT20 (located at offset 0x2c of the .PRO file) since the SPL (namely INNATE_BOMBARDIER_BEETLE_CLOUD) makes use of opcode #139 (string: Releases Acidic Vapor)... INNATE_SPIDER_WEB: opcodes #109 and #157 have a 'duration' of 21, whereas opcode #142 has a 'duration' of 7 (please set the 'icon' parameter to 129 – Webbed) => which is the correct value? 21 or 7? (IMHO, a duration of 12 would be perfect...) Also, you may wanna set BIT25 (Castable when silenced) to 1 (never mind, spiders are scripted to use it if they're not DISABLED...). Moreover, a saving throw vs. Breath (instead of vs. Spell) would probably be more appropriate....
  20. Dunno, I didn't test it... In any case, they're scripted to use it (via the script action SelectWeaponAbility()), so this may crash the game.... This is related to the new humanoid creatures (e.g., DW#MS4YU, DW#MS6GT and the like) you introduced for level 6,7,8 and 9 Monster Summoning spells => Anyway, this may be intended since you cannot cast level 6, 7, 8, and 9 spells in BG1 due to the experience cap. Can you confirm? Moreover, some of them (e.g., DW#MS4YU, MS7BGRD) are coded as FIGHTER with no apparent reason => To tell the truth, it may be reasonable but then consider the idea of giving them some pips (for instance, since the Yuan-ti is equipped with a long sword: SET_BG2_PROFICIENCY ~PROFICIENCYLONGSWORD~ 3 SET_BG2_PROFICIENCY ~PROFICIENCYSINGLEWEAPON~ 2 or something like that....). As a side note, DW#MS1HA (from MSUMMO1.2da) is coded as THIEF and its melee weapon is not suitable for backstab/sneak attack... You may wanna give BERSERKER_RAGE to OGREGRSU for consistency purposes (otherwise DW#MSOGR.bcs is useless...)
  21. But the script action Rest() is supposed to restore everything (including innate abilities) => Am I missing something?
  22. BDSUM00.bcs is fixed on v32.3 but only for BG2EE... Moreover, why do some summoned creatures (e.g., OGRELESU) use some other script (e.g., DW#SUMME) than BDSUM00 when summoned by the player? Just to allow for toggling AI on/off via hotkeys? I mean, it's worse than BDSUM00 combat-wise....
  23. Yes, it's using an unknown animation even on BG2EE (creature file: MS7BGRD)
  24. So far (BGEE without SoD ) Wild mages lack their characteristic spells (e.g., Nahal Reckless Dweomer) if 'Improved NPC management' is installed. Moreover, their character portrait is greyed out (as if they were dead) upon joining the party if they have very low hit points (e.g., 1 HP => this one may be related to the hit die of the character class being less than 10...) Some 2DA files related to Monster Summoning spells contain references to non existing resources. Summoned creatures should be equipped with non-breakable weapons (where appropriate) => this applies only to BG1 of course... Moreover, make sure all Lizard Men are equipped with a weapon whose 'equipped appearance' is either 'QS' or 'CB' or 'HB'. You forgot to fix BDSUM00.bcs via adding 'See(LastSeenBy(Myself))' to the two attacking blocks. Osmadi and Seniyad (and possibly other druids) are equipped with a non existing weapon (i.e., DW#SHNBR.itm). If it may help, I did not install the 'Rebalance Shapeshifting' component. The Boneguard summoned by the 9th level spell 'Create Boneguard' is using an unknown animation (offset 0x28) Technical question now. I noticed that enemy sequencers (e.g., DW#MS1.spl) are restored after 1440 real time seconds. Is there a particular reason for that?
  25. The iOS executable (i.e., where @subtledoctor extracted the mod in order to mod the actual iOS game) should be here => /Users/%Username%/Music/iTunes/Previous iTunes Libraries/iTunes Media/Mobile Applications/Baldur's Gate 2 2.5.16/Payload/Baldur's Gate 2.app
×
×
  • Create New...