Jump to content


GeN1e's Content

There have been 127 items by GeN1e (Search limited from 08-May 23)


By content type

See this member's


Sort by                Order  

#600631 When is the party stripped during the BG saga?

Posted by GeN1e on 26 February 2018 - 09:27 AM in IE Help

You also get stripped of equipment in SoD epilogue, when they put you into jail, but you can get it back as soon as you're out of cage. This is basically just one scene.

 

The SCS mod also has an optional mod component that produces a party strip during the Spellhold story arc

I came to honestly believe it was vanilla :D




#600852 What happens if a number in PROJECTL is already taken?

Posted by GeN1e on 07 March 2018 - 11:57 AM in IE Help

The latter value overwrites the former, if both share the index.




#598667 What do I need for an area?

Posted by GeN1e on 01 December 2017 - 03:55 PM in IE Help

All files are packed individually. I'm less certain about tilesets, though, as EE converted them to .pvrz format to conserve space, and I don't remember if/what a modder needs to do about conversion.

 

ar1000.are // the "actual" area file

ar1000.tis // tileset

ar1000.mos // minimap mosaic image

ar1000.wed // wall polygons

ar1000sr.bmp // search map

ar1000ht.bmp // height map

ar1000lm.bmp // light map

 

If it's an area with day/night change, then the following files are also needed:

ar1000n.tis // night tileset

ar1000n.mos // night minimap mosaic

ar1000n.wed // night walls

ar1000ln.bmp // night light map




#599491 What causes snags?

Posted by GeN1e on 11 January 2018 - 01:05 PM in IE Help

I assume you're using 342? Do you overwrite the changed space value back to original? If yes, then stacked 342s are known to be buggy, clear it with 321 instead. If not, then I may not have understood the problem correctly.




#596017 VC and NeJ3 - final releases

Posted by GeN1e on 23 July 2017 - 10:40 PM in Mega Mod Help

It seems I'm done with the BG modding. This year is a 20 anniversary of my BG modding. :huh:  I think it's enough.

We didn't exactly see eye to eye about how modding should be conducted, but regardless of that NEJ featured the best story of all the mods I have seen, it had an actual intrigue going on. Thanks for that, and good luck to you, Vlad.




#600749 The scripts of the engine creature

Posted by GeN1e on 02 March 2018 - 04:38 PM in IE Help

With them, it does not repeat even when there is Continue().

Continue() adds the current block to the action queue and continues reading the script without execution until it reaches the end or a true block without Continue(). After that it executes the queue.

So you can get both displays from this example:

IF
  Global("test","global",0)
THEN
  RESPONSE #100
    SetGlobal("test","global",1)
    DisplayStringHead(Player1,~One.~)
    Continue()
END

IF
  Global("test","global",0)
THEN
  RESPONSE #100
    SetGlobal("test","global",2)
    DisplayStringHead(Player1,~Two.~)
END

 

BALDUR itself, with all of the regular content from previous mods and your mod, could be inserted at the OVERRIDE level and moved out of DEFAULT; I don't see why not.

I don't see why :shrug:

 

I would like to know whether these changes to the engine creature would be properly uninstalled?

Most unlikely.




#599596 The SaveGame() action

Posted by GeN1e on 15 January 2018 - 01:15 AM in IE Help

I think savename.2da was added after debug dialog.




#599531 The SaveGame() action

Posted by GeN1e on 13 January 2018 - 02:48 PM in IE Help

This is all the info I have on the subject
IF ~~ THEN BEGIN dbg0100
  SAY #65235 /* *MAIN/SAVE* A previously saved game will be lost. Which slot would you like to overwrite? */
    IF ~~ THEN REPLY #65236 /* *Back* */ GOTO dbg0000
    // IF ~~ THEN REPLY #0 /* Auto save. */ DO ~SaveGame(0)~ EXIT
    IF ~~ THEN REPLY #65237 /* Quick save. */ DO ~SaveGame(1)~ EXIT
    // IF ~~ THEN REPLY #0 /* Final save. */ DO ~SaveGame(2)~ EXIT
    IF ~~ THEN REPLY #65238 /* Auto save ToB. */ DO ~SaveGame(3)~ EXIT
    IF ~~ THEN REPLY #65239 /* Quick save ToB. */ DO ~SaveGame(4)~ EXIT
END

 




#599591 The SaveGame() action

Posted by GeN1e on 14 January 2018 - 11:52 PM in IE Help

Pretty sure it's the same across all games. IIRC I didn't get a meaningful result for 5 and presumed it was the upper limit, or maybe I just didn't feel the need for more saving slots in debugging.

 

The quote is from SoD's debug.dlg.




#598804 The Mirror of Opposition

Posted by GeN1e on 12 December 2017 - 04:42 AM in IE Help

1) Party is first protected against spell-changing effect

2) Then a clone is created. It's allegiance matches the original's, so it'll be EA=2/PC.

3) Then 177 all PC actors (target=3/global/everyone) with the effect - since the original party is already immune to it, only the clone will be affected.

 

It works fine since you can't normally have PCs outside of party, but if you want to copy random enemies then be wary of anything EA=ENEMY that may show up during the step 2.




#598810 The Mirror of Opposition

Posted by GeN1e on 12 December 2017 - 10:40 AM in IE Help

I don't quite remember, it's been years since I tested it. That said, I doubt I would have considered it good enough for release, if it stayed green long enough to matter. Single scripting block to execute 2nd and 3rd steps should be enough to minimize any delay down to instant.




#600442 That 326 effect, Apply Effects List

Posted by GeN1e on 20 February 2018 - 03:47 AM in IE Help

SoD's AI system relies on specifics to distinguish friendly and hostile factions and subgroups within them (see InMyGroup() trigger). Feel free to throw rotten eggs and tomatoes at me for usurping that field :P

 

In any case, specifics is a scripting function. You may be able to re-purpose it for spell needs, but it doesn't change the fact you're doing something forbidden.




#600430 That 326 effect, Apply Effects List

Posted by GeN1e on 19 February 2018 - 02:33 PM in IE Help

My $20 is on "using an inoperable spellstate above 255."

Seems you're right. Forcing new state to 300 resulted in failure.




#600429 That 326 effect, Apply Effects List

Posted by GeN1e on 19 February 2018 - 02:25 PM in IE Help

This works fine - casting level 1 Pro Evil onto Blessed target autocasts Pro Evil 10'.

 

 

 

//////////////////////////////////////////////////////////////////////////////////////


DEFINE_ACTION_FUNCTION ds_resolve_stat INT_VAR ids=2 index=0 delete=0 RET stat_ind BEGIN


OUTER_SPRINT ids_file stats OUTER_SET min_new=401


ACTION_IF ids=0 BEGIN OUTER_SPRINT ids_file extstate OUTER_SET min_new=0 END
ACTION_IF ids=1 BEGIN OUTER_SPRINT ids_file splstate OUTER_SET min_new=0 END


COPY_EXISTING ~%ids_file%.ids~ override
  stat_ind=0
  found=0


  READ_2DA_ENTRIES_NOW stats 2
  FOR (row=0;row<stats;row+=1) BEGIN
    READ_2DA_ENTRY_FORMER stats row 0 ind
    READ_2DA_ENTRY_FORMER stats row 1 str
    SET $stat("%row%") = ind
    PATCH_IF index BEGIN
      PATCH_IF ind=index BEGIN
        REMOVE_2DA_ROW row 2
        found=1
        PATCH_IF delete=0 BEGIN
          INSERT_2DA_ROW row 2 ~%index% %id%~
        END
        row=stats
      END
    END ELSE BEGIN
      PATCH_IF ~%str%~ STRING_EQUAL_CASE ~%id%~ BEGIN
        stat_ind=ind
        found=1
     /* row=stats */ // don't stop looking, the same ID may be assigned to a greater index, which takes priority when compiling
      END
    END
  END


  PATCH_IF found=0 BEGIN
    stat_ind=min_new
    PHP_EACH stat AS row => ind BEGIN
      PATCH_IF found=0 && (row+1 < stats) BEGIN // not at the end of file
        next_row = row+1
        next_ind = EVAL $stat("%next_row%")
        PATCH_IF index BEGIN
          PATCH_IF index<next_ind && index>ind BEGIN
            INSERT_2DA_ROW next_row 2 ~%index% %id%~
            found=1
          END
        END ELSE BEGIN
          PATCH_IF stat_ind<next_ind BEGIN
            PATCH_IF ind<stat_ind BEGIN
              INSERT_2DA_ROW next_row 2 ~%stat_ind% %id%~
              found=1
            END ELSE BEGIN
              stat_ind+=1
              PATCH_IF stat_ind<next_ind BEGIN
                INSERT_2DA_ROW next_row 2 ~%stat_ind% %id%~
                found=1
              END
            END
          END
        END
      END ELSE BEGIN // at the end of file
        PATCH_IF found=0 BEGIN
          PATCH_IF index BEGIN
            INSERT_2DA_ROW stats 2 ~%index% %id%~
          END ELSE BEGIN
            PATCH_IF stat_ind>ind BEGIN
              INSERT_2DA_ROW stats 2 ~%stat_ind% %id%~
            END ELSE BEGIN
              stat_ind+=1
              INSERT_2DA_ROW stats 2 ~%stat_ind% %id%~
            END
          END
        END
      END
    END // PHP_EACH
  END


END




LAF ds_resolve_stat INT_VAR ids=1 STR_VAR id=AG_BLESS RET bless_state=stat_ind END


COPY_EXISTING sppr101.spl override
  LPF ADD_SPELL_EFFECT INT_VAR opcode=328 target=2 duration=36 parameter2=bless_state special=1 END


COPY_EXISTING sppr107.spl override
  LPF ADD_SPELL_EFFECT INT_VAR opcode=326 target=2 timing=1 parameter1=bless_state parameter2=110 STR_VAR resource=sppr408 special=1 END

 




#600460 That 326 effect, Apply Effects List

Posted by GeN1e on 21 February 2018 - 09:14 AM in IE Help

 Am I missing something
No, you've got it.
 
If you're going to patch AI scripts, then using specifics makes sense, since you'll have some degree of control anyway. Do note that it's kinda unpleasant monkey work though, since you deal with a bunch of random scripts instead of centralized system (which is how AI must be... not in IE, apparently <_<).

PS Who on earth thought this piece of shitware was a good choice as forum engine? > :(



#600448 That 326 effect, Apply Effects List

Posted by GeN1e on 20 February 2018 - 09:40 AM in IE Help

Btw, it is perfectly legit to use specifics with effects

Not really, unless you're talking about adding new type of actors (e.g. subrace or something) and 177/326-targeting them with custom effects.

If you go about changing the already existing value, it's no different from changing the race, class or allegiance - yes, you *can* technically do that, but unless you're working on new content you don't have enough control over environment to ensure stability. As long as the latter is high on your list of priorities, that is.




#600444 That 326 effect, Apply Effects List

Posted by GeN1e on 20 February 2018 - 05:38 AM in IE Help

If you checked the IESDP, you'd see this in CRE file structure:

0x0274 1 (byte) Specific (SPECIFIC.IDS) 0x0275 1 (byte) Gender (GENDER.IDS). Dictates the casting voice, and checked for the summoning cap.

i.e. one byte aka 255 only.
 

Taking someone's pants off is forbidden, the minister said

It's irrelevant what value you use, as long as the actor has been assigned one. The mere fact of changing it will already remove them from their faction group.

 

But by all means, it's not my foot that you're pointing the shotgun at ;)




#600466 That 326 effect, Apply Effects List

Posted by GeN1e on 21 February 2018 - 11:19 AM in IE Help

Pretty sure that if the AI scripts were not decentralized they would attain self-awareness and become Skynet. So I guess we can thank Bioware's pain-in-the-ass scripting implementation for averting the robot apocalypse.

Most other games use semi-hardcoded AI, controllable by flags. This actually is what I tried to simulate in SoD - BDSHOUT is shared by almost all actors who are not random wilderness encounters, and behavioral control variables are set/updated in their override scripts.

 

If you're going to patch AI scripts, then using specifics makes sense, since you'll have some degree of control anyway.
No-no-no, nothing that drastic, I just need a way to tell PC simulacrums to attack exactly same creature whose original attack by real PC caused them to appear (I hope that makes sense) :)

In that case you might actually wanna ask Temnix, as iirc he's been actively exploring the possibilities of LastSummonerOf()-based controls.




#601727 Silencing attack feedback

Posted by GeN1e on 15 April 2018 - 12:27 AM in IE Help

This action only dispenses with the battlecry.

It does suppress attack rolls display completely, we used it for archers training in the background in SoD.

 

There is still the saving throw info.

Try moving the save effect inside of a child EFF/SPL (i.e. 177 or 146). It should delay the save roll until the projectile hits the target.

 

But actually, I managed to use this problem and make it into a feature.

Well, if it works out for you, then I suppose it's fine :)




#601692 Silencing attack feedback

Posted by GeN1e on 14 April 2018 - 05:53 AM in IE Help

Try AttackNoSound(O:Target*)

It is continuous action, however, much like Attack(), so you'll need a way to stop it after the first shot.




#599521 SetTrap for thieves?

Posted by GeN1e on 12 January 2018 - 10:35 PM in Rogue Rebalancing

355 RunAwayFromNoLeaveArea(O:Creature*,I:Time*)
This action causes the active creature to run away from the specified creature, for the specified time, without leaving the current area.



#599478 SetTrap for thieves?

Posted by GeN1e on 11 January 2018 - 07:34 AM in Rogue Rebalancing

I can't *confirm*, but your observations and knowing that setting a trap fails if there're hostiles in visual range (blind thieves ftw, yes) lead me to believe the rule may apply to any actor, not just party members.




#599530 SetTrap for thieves?

Posted by GeN1e on 13 January 2018 - 02:31 PM in Rogue Rebalancing

No solution then, at least without editing areas. DavidW had to patch the Gov District to prevent Viconia's would-be-executors from conveniently placing themselves into prison.

 

That said, is there any reason to use RunAwayFrom() in battle scripts? Imo the only thing worse than enemy archers trying to run away from you through a solid wall instead of switching to melee is the enemy AI prioritizing targets based on their immunities.




#599475 SetTrap for thieves?

Posted by GeN1e on 11 January 2018 - 06:36 AM in Rogue Rebalancing

412 and 414 are just wrappers for the spls with actual effects. You can ~RemoveSpell(4412) SpellNoDec(4411)~ instead, this solve both the message and visibility issues.

As for not setting another trap... I'd just set a random reasonably lengthy timer between, tbh. Less problem, close result.




#599550 SetTrap for thieves?

Posted by GeN1e on 14 January 2018 - 04:02 AM in Rogue Rebalancing

You're better off editing the area then, especially since it's one encounter and not a general script.

You could also make him run away from area exits and into parts of area clear of PCs, but you can't really mark those without placing more triggers (though maybe invisible actors will do, I forgot if it's possible to have non-flying zero-space critters in vanilla). Plus it would probably involve doing extra AI work - from my experience, customized movement routine can take a while to develop, test and finalize.

 

PS

RandomWalkContinuous() is also an option.