Jump to content

Version 16 released


DavidW

Recommended Posts

Corrected a minor compatibility issue where SR was preventing certain drow high priestesses from summoning Balors

We now attempt to allow for aTweaks fiends

 

Do you mind enlighten me about how SR, SCS2, and ATweaks deal with fiends when installed one on top of the other now please? Instal order: SR -> SCS2 ( more staying power, istant casting ) -> ATweaks ( 2nd component, attempts to affects mod added fiends as well ).

 

My guess is that ATweaks fiends are meet through the game, with some exceptions ( the ones exluded by their readme like Demogorgon and the Chromatic Demon- who else? - ) that use SCS2 improved stats and scripts; players summon AT scripted fiends as well ( so they need to protect themselves with PfE ), SCS2 mages and priests summon AT fiends ( without Blood War fights if mixed alligned enemies, judging from one of your replies on their forum afaik ) but are unaffected by the ProEvil rule. SR fiends aren't used anymore by the player, might even comment them out. All fiends cast spells istantly. More staying power is redundant because fiends use AT stats. Improved Drows keep the demons listed in the SCS2 spoiler section. The uber lesser Demon Lord is going to mop up the hopeless Improved defenders of Uth Natha :)

 

Find the errors :)

 

Edit: About Spell Shield, is it going to absorb one antimagic ray before collapse now?

Link to comment

ASSERTION FAILED! Return Address: 0x636d63 File: CRuleTables.cpp Line: 5655 Expression: FALSE Message: <null>

 

G3 Fixpack + ToBEX core + only the initialise component of SCS2 v16 for testing purposes: game crashes after couple seconds.

 

Edit: reverting from ToBEx beta20 to ToBEx beta19 'fixes' the bug, looks like a compatibility issue with the latest beta only.

Link to comment
Corrected a minor compatibility issue where SR was preventing certain drow high priestesses from summoning Balors

We now attempt to allow for aTweaks fiends

 

Do you mind enlighten me about how SR, SCS2, and ATweaks deal with fiends when installed one on top of the other now please? Instal order: SR -> SCS2 ( more staying power, istant casting ) -> ATweaks ( 2nd component, attempts to affects mod added fiends as well ).

 

My guess is that ATweaks fiends are meet through the game, with some exceptions ( the ones exluded by their readme like Demogorgon and the Chromatic Demon- who else? - ) that use SCS2 improved stats and scripts; players summon AT scripted fiends as well ( so they need to protect themselves with PfE ), SCS2 mages and priests summon AT fiends ( without Blood War fights if mixed alligned enemies, judging from one of your replies on their forum afaik ) but are unaffected by the ProEvil rule. SR fiends aren't used anymore by the player, might even comment them out. All fiends cast spells istantly. More staying power is redundant because fiends use AT stats. Improved Drows keep the demons listed in the SCS2 spoiler section. The uber lesser Demon Lord is going to mop up the hopeless Improved defenders of Uth Natha :)

 

 

I think that's basically right. (TBH I've slightly lost track myself).

 

Edit: About Spell Shield, is it going to absorb one antimagic ray before collapse now?

 

Yep.

Link to comment
ASSERTION FAILED! Return Address: 0x636d63 File: CRuleTables.cpp Line: 5655 Expression: FALSE Message: <null>

 

G3 Fixpack + ToBEX core + only the initialise component of SCS2 v16 for testing purposes: game crashes after couple seconds.

 

Edit: reverting from ToBEx beta20 to ToBEx beta19 'fixes' the bug, looks like a compatibility issue with the latest beta only.

 

Cool. (I'm shipping 19, aren't I?)

Link to comment

I can't install: smarter golems

 

 

ERROR: Failure("hamm09.itm: read out of bounds")

 

 

does it have anything to do with IR changing crom faeyr so that it no longer istakills golems?

 

 

 

reduced reputation gain rate ( all 4 options tested )

 

 

[GPMERC.BCS.BCS] LEXER ERROR at line 1 column 0-1

Near Text: IF

invalid keyword [iF]

 

[GPMERC.BCS.BCS] ERROR at line 1 column 0-1

Near Text: IF

Parsing.Parse_error

ERROR: parsing [GPMERC.BCS.BCS]: Parsing.Parse_error

ERROR: [GPMERC.BCS] -> [override/GPMERC.BCS] Patching Failed (COPY) (Parsing.Parse_error)

Stopping installation because of error.

Stopping installation because of error.

 

ERROR Installing [Reputation increases at about 1/2 the normal rate], rolling back to previous state

Link to comment
Ah, ensuring your mod installs correctly with broken resources from some better left untold prehistorical mod. That's my favoritest part EVAR of modding.

 

Do you mind share your thoughts? So far I installed in order: Fixpack, ToBEx, IR, SR, Banterpack, RR, G3Tweaks, 1PP Paperdolls, SCS2; of these I guess the only prehistorical one is banterpacks.

Link to comment

I did. I also heavily modified both of them but I did not remember touching that .bcs. Can you reproduce the error on a clean install?

 

 

Edit: after checking the scs2 modified mages .cre I notice every mage of lvl 18+ has 1+ HLA memorized, do they actually cast them? I installed the ''only selected mages get HLA'' + ''Make HLA Innates'' components and I'm a bit worried about Nevaziah dropping a Fallen Planetar on my lvl 9-10 guys :S

Link to comment

GET_OFFSET_ARRAY ab_array 0x64 4 0x68 2 0 0 0x28
PHP_EACH ab_array AS int => ab_off BEGIN
...
 GET_OFFSET_ARRAY2 eff_array ab_off ITM_V10_HEAD_EFFECTS
 PHP_EACH eff_array AS int =>eff_off BEGIN

You need to CLEAR_ARRAY each one, otherwise you may read a file with 5 headers (array is 5 elements long), and if the next one has only 2 - instead of two iterations PHP_EACH will perform 5, first two belonging to the actual file, and the rest - to previous. Corrupting the file with high probability.

CLEAR_ARRAY ab_array GET_OFFSET_ARRAY ab_array 0x64 4 0x68 2 0 0 0x28
PHP_EACH ab_array AS int => ab_off BEGIN
...
 CLEAR_ARRAY eff_array GET_OFFSET_ARRAY2 eff_array ab_off ITM_V10_HEAD_EFFECTS
 PHP_EACH eff_array AS int =>eff_off BEGIN

Link to comment

scsii/beholder/beholder.tph, the 'Beholders are immune to (most of) their own eyestalks' patch near the beginning -

			SPRINT ~new_effect_resource~ ~spin961~ // paralyze again
		LAUNCH_PATCH_MACRO ~add_global_effect~

You probably meant 'spin960' here.

 

 

The Spell Shield routine:

1) Using WeiDU's new ADD_SECTYPE command (it's more reliable)

2) Fixing an old oversight on my part, and reading for SS's real duration

Also

Edit: About Spell Shield, is it going to absorb one antimagic ray before collapse now?
It wasn't in my list (totally forgot about them back then, my bad), so I've added 'spin992' and 'spin550'. Unless you patch them somewhere else (couldn't find if you do), then they should be omitted.

DEFINE_ACTION_MACRO ~ardanis_spell_shield~ BEGIN

// adding new sectype

ADD_SECTYPE SpellShield  @14200

COPY_EXISTING ~spwi519.spl~ ~override~
 WRITE_BYTE 0x27 SpellShield
 CLEAR_ARRAY ab_array GET_OFFSET_ARRAY ab_array 0x64 4 0x68 2 0 0 0x28
 PHP_EACH ab_array AS int => ab_off BEGIN
CLEAR_ARRAY eff_array GET_OFFSET_ARRAY2 eff_array ab_off ITM_V10_HEAD_EFFECTS
PHP_EACH eff_array AS int2 => eff_off BEGIN
  PATCH_IF SHORT_AT eff_off = 226 BEGIN
	SET $spellshieldheader("%int%")=LONG_AT(eff_off+0xe)
  END
END
 END
 LPF DELETE_SPELL_EFFECT INT_VAR opcode_to_delete = 226 END


// patching antimagic

ACTION_FOR_EACH spell IN
 ~spwi321~ // spell thrust
 ~spwi419~ // secret word
 ~spwi513~ // breach
 ~spwi608~ // pierce magic
 ~spwi704~ // ruby ray of reversal
 ~spwi705~ // khelben warding whip
 ~spwi805~ // pierce shield
 ~spwi903~ // spellstrike
 // beholder innates
 ~spin992~  // beholder antimagic ray
 ~spin550~  // hive mother antimagic ray
BEGIN

 COPY_EXISTING ~spwi519.spl~ ~override~ // spell shield  
 PHP_EACH spellshieldheader AS ind => res BEGIN
LAUNCH_PATCH_FUNCTION ADD_SPELL_EFFECT INT_VAR
  header=ind+1
  opcode=206
  target=1
  duration=res
  power=5
STR_VAR resource = EVALUATE_BUFFER ~%spell%b~ END
 END

 ACTION_IF FILE_EXISTS_IN_GAME ~%spell%d.spl~ THEN BEGIN // check if I've modified the spell already to make it penetrate Inv.
 OUTER_SPRINT ~spellcore~ ~%spell%d~
 END ELSE BEGIN
 OUTER_SPRINT ~spellcore~ ~%spell%~
 END

 COPY_EXISTING ~%spellcore%.spl~ ~override/%spell%b.spl~
WRITE_ASCII 0x8 ~~ (8) // clearing out the name
READ_LONG 0x64  ab_off
READ_SHORT 0x68 ab_num
FOR (i=0;i<ab_num;i+=1) BEGIN
  WRITE_SHORT (ab_off+i*0x28+0x0c) 1 // target = creature
  WRITE_SHORT (ab_off+i*0x28+0x26) 1 // projectile = none
END


 COPY_EXISTING ~%spellcore%.spl~ ~override~			  // modifying the original
READ_LONG 0x34  level
READ_LONG 0x64  ab_off
READ_SHORT 0x68 ab_num
READ_LONG 0x6a  ef_off
READ_SHORT 0x70 cast_num // global effects aka casting features

total_eff=cast_num
FOR (i=0;i<ab_num;i+=1) BEGIN
  READ_SHORT  (ab_off+i*0x28+0x1e) ef_num  // effect number
  total_eff+=ef_num
END

DELETE_BYTES ef_off (total_eff*0x30)
DELETE_BYTES ab_off ((ab_num - 1)*0x28)
WRITE_SHORT 0x68 1
WRITE_LONG 0x6a  (ef_off - (ab_num - 1)*0x28)
WRITE_SHORT 0x70 0

WRITE_SHORT (ab_off+0x1e) 2
WRITE_SHORT (ab_off+0x20) 0
WRITE_SHORT (ab_off+0x10) 1 // level required

offset=(ef_off - (ab_num - 1)*0x28)
INSERT_BYTES offset 0x60

WRITE_SHORT (offset+0x00) 146	 // opcode = cast spell on creature
WRITE_BYTE  (offset+0x02) 2	   // target = pre-target
WRITE_BYTE  (offset+0x03) level   // power level = spell level
WRITE_LONG  (offset+0x04) 0	   // parameter 1 = caster's level
WRITE_LONG  (offset+0x08) 1	   // parameter 2 = instant
WRITE_BYTE  (offset+0x0c) 1	   // timing mode = permanent
WRITE_BYTE  (offset+0x12) 100	 // probability 1 = 100%
WRITE_BYTE  (offset+0x13) 0	   // probability 2 = 0%
WRITE_ASCIIE (offset+0x14) ~%spell%b~ (8)

READ_ASCII offset ~clone~ (0x30)
WRITE_ASCIIE (offset+0x30) ~%clone%~ 
WRITE_ASCIIE (offset+0x44) ~%spell%c~


 COPY_EXISTING ~%spellcore%.spl~ ~override/%spell%c.spl~
WRITE_ASCII 0x8 ~~ (8) // clearing out the name
READ_LONG 0x64  ab_off
READ_LONG 0x6a  ef_off
WRITE_SHORT (ab_off+0x1e) 1
WRITE_SHORT (ab_off+0x26) 1
DELETE_BYTES (ef_off+0x30) 0x30

WRITE_SHORT ef_off 230		  // opcode = remove one sectype
WRITE_LONG (ef_off+0x4) 9	   // max level = 9
WRITE_LONG (ef_off+0x8) SpellShield
WRITE_ASCII (ef_off+0x14) ~~ (8)

END

END

Link to comment
I did. I also heavily modified both of them but I did not remember touching that .bcs. Can you reproduce the error on a clean install?

You mean, does the component fail on a pure SCS-plus-fixpack install? If so, no. (I do do install tests before releasing, believe it or not.)

 

Edit: after checking the scs2 modified mages .cre I notice every mage of lvl 18+ has 1+ HLA memorized, do they actually cast them? I installed the ''only selected mages get HLA'' + ''Make HLA Innates'' components and I'm a bit worried about Nevaziah dropping a Fallen Planetar on my lvl 9-10 guys :S

 

Hmm. That does sound like an error - will check. (I don't think that particular permutation got much detailed testing.)

Link to comment

Damn. Raj is right, if "HLAs as innate" is installed then all high-level enemies get HLAs, irrespective of what options you choose.

 

I'll fix this at the weekend (I need to do a translation update and Linux release anyway.) Inter alia, you can fix it by editing scsii/mage/mage.tph in a text editor. At line 2425, replace

 

	 PATCH_IF ~hla_innate~>0 BEGIN
[code]

with

[code]
 PATCH_IF (~hla_innate~>0 AND VARIABLE_IS_SET $hla(EVALUATE_BUFFER ~%CREfilename%~)) BEGIN

 

Sorry about that. (There's always something...)

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...