Jump to content


expanded gMinion TP2 for Mega-Installations


No replies to this topic

#1 Azazello

    The Anti-Spammer

  • Members
  • 555 posts
  • Gender:Male
  • Location:Orlando (via Nairobi, Kenya {via New York City})

Posted 13 December 2008 - 12:36 PM

2013 Apr 19: Added section for aTweaks, PnP Undead component.

2009 Oct 31: Have updated the contents, as I forgot to add a marker file to indicate that SCS II is installed. Please let me know if there's a better filename to use.

Have also changed/added AI script names to catch other mods that may have modified the summons. As noted, this may be redundant coding so we'll just have to wait until an active mod-keeper comes along to update the coding.

As always, if you see anything that needs correcting or modifying, let us know!


The entire TP2 is attached in the Mega Mod Help forum at Spellhold Studios (SHS).

In this post, I will (try) to copy/paste just the changes I made, from the top of the TP2, downward.

I discovered that gMinion needs updating to consider Mega-Installations, otherwise you won't be able to control the summons using gMinion's AI (you might not be able to control them at all).

I used my older mega-install as a basis for this TP2, so I do encourage BiG World Project users to help expand this based on other mods. One example, did I use the correct SCS names for summons scripts?

/*
  * gMinion - version 1.8
  * AI scripts for minions summoned by the party
  *
  * expanded for Mega-Installations by Azazello
  */

BACKUP ~gminion\build1.8\backup~

AUTHOR ~Cirerrek's AI Scripts forum at Gibberlings Three Forums~

ALLOW_MISSING
   // Silver Shadow from The Darkest Day mod - Azazello
   ~SILVERSH.CRE~

LANGUAGE ~AMERICAN ENGLISH~
		  ~american~
		  ~gminion\build1.8\american\gmsetup.tra~

/////////////
// gMinion
/////////////

BEGIN @1

// ids changes to accomodate on-the-fly compiling

ACTION_IF NOT FILE_EXISTS_IN_GAME ~shoutids.ids~ THEN BEGIN // if not present, make it
   COPY ~gminion/build1.8/ids/shoutids.ids~ ~override~
END ELSE BEGIN // if present, append instead
   APPEND ~shoutids.ids~ ~1001 POISONED~ UNLESS ~1001 POISONED~
   APPEND ~shoutids.ids~ ~2001 HELP~	 UNLESS ~2001 HELP~
END

APPEND ~state.ids~ ~0x00102029 STATE_HARMLESS~	  UNLESS ~0x00102029 STATE_HARMLESS~
APPEND ~state.ids~ ~0x00400010 STATE_NOT_VISIBLE~   UNLESS ~0x00400010 STATE_NOT_VISIBLE~
APPEND ~state.ids~ ~0x60400010 STATE_ILLUSIONS~	 UNLESS ~0x60400010 STATE_ILLUSIONS~
APPEND ~state.ids~ ~0x63C08010 STATE_ENCHANTED~	 UNLESS ~0x63C08010 STATE_ENCHANTED~

COPY_EXISTING ~trigger.ids~ ~override~
   REPLACE_TEXTUALLY ~\bHeard(O:Object\*,I:ID\*)~
					 ~Heard(O:Object*,I:ID*SHOUTIDS)~
   BUT_ONLY_IF_IT_CHANGES

/*
  * depending on the minion type (ranged, melee, spell, or both)
  * modify the existing script (wtasight.bcs, etc.) by adding
  * the appropriate script segment (ranged.bcs, melee.bcs, spell.bcs, or both.bcs)
  * to either the top or the bottom of the existing script
  *
  */

EXTEND_TOP	~GENSHT01.BCS~ ~gminion\build1.8\baf\both.baf~
EXTEND_TOP	~WTASIGHT.BCS~ ~gminion\build1.8\baf\both.baf~
EXTEND_TOP	~WTARSGT.BCS~  ~gminion\build1.8\baf\range.baf~
EXTEND_TOP	~SUMSHT01.BCS~ ~gminion\build1.8\baf\melee.baf~
EXTEND_TOP	~SUMSHT02.BCS~ ~gminion\build1.8\baf\melee.baf~
EXTEND_TOP	~WDRUNSGT.BCS~ ~gminion\build1.8\baf\melee.baf~

EXTEND_TOP	~CCRAWLER.BCS~ ~gminion\build1.8\baf\melee.baf~
EXTEND_TOP	~ETTERCAP.BCS~ ~gminion\build1.8\baf\melee.baf~
EXTEND_TOP	~MORSWORD.BCS~ ~gminion\build1.8\baf\melee.baf~
EXTEND_TOP	~DJINNI01.BCS~ ~gminion\build1.8\baf\spell.baf~
EXTEND_TOP	~EFREET01.BCS~ ~gminion\build1.8\baf\spell.baf~
EXTEND_TOP	~MOONDOG.BCS~  ~gminion\build1.8\baf\spell.baf~
EXTEND_TOP	~NISHRU01.BCS~ ~gminion\build1.8\baf\spell.baf~
EXTEND_TOP	~NYMPH.BCS~	~gminion\build1.8\baf\spell.baf~
EXTEND_TOP	~PSPIDER.BCS~  ~gminion\build1.8\baf\spell.baf~
EXTEND_TOP	~SPIDFGSU.BCS~ ~gminion\build1.8\baf\spell.baf~
EXTEND_TOP	~SUMDJ01.BCS~  ~gminion\build1.8\baf\spell.baf~

EXTEND_BOTTOM ~WIZELSUM.BCS~ ~gminion\build1.8\baf\melee.baf~

// Additional changes for any (ToB?) type of installation - Azazello
EXTEND_TOP	~WARDOG.BCS~ ~gminion\build1.8\baf\melee.baf~
EXTEND_TOP	~WYVERN.BCS~ ~gminion\build1.8\baf\melee.baf~
EXTEND_BOTTOM ~BORNWAIT.BCS~ ~gminion\build1.8\baf\melee.baf~
EXTEND_BOTTOM ~SERVSU.BCS~   ~gminion\build1.8\baf\melee.baf~
EXTEND_BOTTOM ~WIZELSU2.BCS~ ~gminion\build1.8\baf\melee.baf~

// Scripts used by Summons from...Big Picture mod - Azazello
ACTION_IF FILE_EXISTS_IN_GAME ~BPBAG04.ITM~ THEN BEGIN
   EXTEND_TOP	~BPSMSHT1.BCS~ ~gminion\build1.8\baf\melee.baf~
   EXTEND_TOP	~BPSMSHT2.BCS~ ~gminion\build1.8\baf\melee.baf~
   EXTEND_TOP	~BPEFREET.BCS~ ~gminion\build1.8\baf\spell.baf~
END

// Scripts used by Summons from...Check the Bodies mod - Azazello
ACTION_IF FILE_EXISTS_IN_GAME ~CBWTASGT.BCS~ THEN BEGIN
   EXTEND_TOP	~CBWTASGT.BCS~ ~gminion\build1.8\baf\melee.baf~
END

// Scripts used by Summons from...The Darkest Day mod - Azazello
ACTION_IF FILE_EXISTS_IN_GAME ~SILVERSH.CRE~ THEN BEGIN
// Silver Shadow from The Darkest Day mod
   EXTEND_BOTTOM ~SILVERSH.BCS~ ~gminion\build1.8\baf\spell.baf~
END

// Scripts used by Summons from...aTweaks mod - Azazello
ACTION_IF FILE_EXISTS_IN_GAME ~fl#dkfa.spl~ THEN BEGIN
   EXTEND_TOP   ~FL#SKLSU.BCS~ ~gminion\build1.8\baf\melee.baf~
   EXTEND_TOP   ~FL#SKWSU.BCS~ ~gminion\build1.8\baf\melee.baf~
END

/*
  * Azazello
  * If using Big Picture (BP) or Sword Coast Strategems 2 (SCS II), ensure that summons use gMinion scripting EXCLUSIVELY.
  * {Actually, this scripting might be redundant}
  */
ACTION_IF (FILE_EXISTS_IN_GAME ~BPBAG04.ITM~ OR FILE_EXISTS_IN_GAME ~scsII/scsII.tph~) THEN BEGIN
   COPY_EXISTING ~BEARBLSU.CRE~		~override~
				 ~BEARBRSU.CRE~		~override~
				 ~BEARCASU.CRE~		~override~
				 ~BEARPOSU.CRE~		~override~
//			  ~BERSER02.CRE~		~override~
//			  ~BERSER03.CRE~		~override~
//			  ~BERSERSU.CRE~		~override~
				 ~CARRIOSU.CRE~		~override~
				 ~CATJAGSU.CRE~		~override~
				 ~CATLIOSU.CRE~		~override~
				 ~CATLIOWP.CRE~		~override~
				 ~DEVAEVIL.CRE~		~override~
				 ~DEVAGOOD.CRE~		~override~
				 ~DJINNISU.CRE~		~override~
				 ~DOGWASU.CRE~		~override~
				 ~DOGWAWP.CRE~		~override~
				 ~DOGWISU.CRE~		~override~
				 ~EFREETSU.CRE~		~override~
				 ~ELAIRSU1.CRE~		~override~
				 ~ELAIRSU2.CRE~		~override~
				 ~ELAIRSU3.CRE~		~override~
				 ~ELAIRSUW.CRE~		~override~
				 ~ELEARSU1.CRE~		~override~
				 ~ELEARSU2.CRE~		~override~
				 ~ELEARSU3.CRE~		~override~
				 ~ELEARSU4.CRE~		~override~
				 ~ELEMCHAN.CRE~		~override~
				 ~ELEMSUNN.CRE~		~override~
				 ~ELEMZAAM.CRE~		~override~
				 ~ELFIRSU1.CRE~		~override~
				 ~ELFIRSU2.CRE~		~override~
				 ~ELFIRSU3.CRE~		~override~
				 ~ELFIRSU4.CRE~		~override~
				 ~ETTERCSU.CRE~		~override~
				 ~GHASTSU.CRE~		~override~
				 ~GNOLLSU.CRE~		~override~
				 ~HAKSU.CRE~		~override~
				 ~HOBGOBSU.CRE~		~override~
				 ~KOBOLDSU.CRE~		~override~
				 ~MOONDOG.CRE~		~override~
				 ~NISHRUSU.CRE~		~override~
				 ~NYMPHSU.CRE~		~override~
				 ~OGREGRSU.CRE~		~override~
				 ~OGRELESU.CRE~		~override~
				 ~OGRESU.CRE~		~override~
				 ~PLANEVIL.CRE~		~override~
				 ~PLANGOOD.CRE~		~override~
				 ~RABBITSU.CRE~		~override~
				 ~SERVSU.CRE~		~override~
				 ~SKELWASU.CRE~		~override~
				 ~SMOUNDSU.CRE~		~override~
				 ~SPIDFGSU.CRE~		~override~
				 ~SPIDGISU.CRE~		~override~
				 ~SPIDPHSU.CRE~		~override~
				 ~SPIDSWSU.CRE~		~override~
				 ~SPIRBEAR.CRE~		~override~
				 ~SPIRLION.CRE~		~override~
				 ~SPIRSNAK.CRE~		~override~
				 ~SPIRWOLF.CRE~		~override~
				 ~STALKE.CRE~		~override~
				 ~SUMDJINN.CRE~		~override~
				 ~SUMEFREE.CRE~		~override~
				 ~SUMELAIR.CRE~		~override~
				 ~SUMELEAR.CRE~		~override~
				 ~SUMELFIR.CRE~		~override~
				 ~SWAAIR01.CRE~		~override~
				 ~SWAEAR01.CRE~		~override~
				 ~SWAFIR01.CRE~		~override~
				 ~SWORD01.CRE~		~override~
				 ~SWORD02.CRE~		~override~
				 ~SWORD68.CRE~		~override~
				 ~WOLFDISU.CRE~		~override~
				 ~WOLFWWSU.CRE~		~override~
				 ~WORGSU.CRE~		~override~
				 ~WYVERNSU.CRE~		~override~
// Silver Shadow from TDD - // added by Azazello
				 ~SILVERSH.CRE~		~override~
	 PATCH_IF (SOURCE_SIZE > 0x2d3) THEN BEGIN // protects against invalid files
	   READ_ASCII 0x248 "Override"
	   READ_ASCII 0x250 "Class"
	   READ_ASCII 0x258 "Race"
	   READ_ASCII 0x260 "General"
	   READ_ASCII 0x268 "Default"

	   PATCH_IF (("%Override%" STRING_COMPARE_CASE "BPWDASGT") = 0) BEGIN
		 WRITE_ASCII 0x248 ~WTASIGHT~
	   END
	   PATCH_IF (("%Class%" STRING_COMPARE_CASE "BPWDASGT") = 0) BEGIN
		 WRITE_ASCII 0x250 ~WTASIGHT~
	   END
	   PATCH_IF (("%Race%" STRING_COMPARE_CASE "BPWDASGT") = 0) BEGIN
		 WRITE_ASCII 0x258 ~WTASIGHT~
	   END
	   PATCH_IF (("%General%" STRING_COMPARE_CASE "BPWDASGT") = 0) BEGIN
		 WRITE_ASCII 0x260 ~WTASIGHT~
	   END
	   PATCH_IF (("%Default%" STRING_COMPARE_CASE "BPWDASGT") = 0) BEGIN
		 WRITE_ASCII 0x268 ~WTASIGHT~
	   END

	   PATCH_IF (("%Override%" STRING_COMPARE_CASE "BPWTSIGT") = 0) BEGIN
		 WRITE_ASCII 0x248 ~WTASIGHT~
	   END
	   PATCH_IF (("%Class%" STRING_COMPARE_CASE "BPWTSIGT") = 0) BEGIN
		 WRITE_ASCII 0x250 ~WTASIGHT~
	   END
	   PATCH_IF (("%Race%" STRING_COMPARE_CASE "BPWTSIGT") = 0) BEGIN
		 WRITE_ASCII 0x258 ~WTASIGHT~
	   END
	   PATCH_IF (("%General%" STRING_COMPARE_CASE "BPWTSIGT") = 0) BEGIN
		 WRITE_ASCII 0x260 ~WTASIGHT~
	   END
	   PATCH_IF (("%Default%" STRING_COMPARE_CASE "BPWTSIGT") = 0) BEGIN
		 WRITE_ASCII 0x268 ~WTASIGHT~
	   END

	   PATCH_IF (("%Override%" STRING_COMPARE_CASE "dw#melee") = 0) BEGIN
		 WRITE_ASCII 0x248 ~WTASIGHT~
	   END
	   PATCH_IF (("%Class%" STRING_COMPARE_CASE "dw#melee") = 0) BEGIN
		 WRITE_ASCII 0x250 ~WTASIGHT~
	   END
	   PATCH_IF (("%Race%" STRING_COMPARE_CASE "dw#melee") = 0) BEGIN
		 WRITE_ASCII 0x258 ~WTASIGHT~
	   END
	   PATCH_IF (("%General%" STRING_COMPARE_CASE "dw#melee") = 0) BEGIN
		 WRITE_ASCII 0x260 ~WTASIGHT~
	   END
	   PATCH_IF (("%Default%" STRING_COMPARE_CASE "dw#melee") = 0) BEGIN
		 WRITE_ASCII 0x268 ~WTASIGHT~
	   END

	   PATCH_IF (("%Override%" STRING_COMPARE_CASE "dw#range") = 0) BEGIN
		 WRITE_ASCII 0x248 ~WTARSGT~
	   END
	   PATCH_IF (("%Class%" STRING_COMPARE_CASE "dw#range") = 0) BEGIN
		 WRITE_ASCII 0x250 ~WTARSGT~
	   END
	   PATCH_IF (("%Race%" STRING_COMPARE_CASE "dw#range") = 0) BEGIN
		 WRITE_ASCII 0x258 ~WTARSGT~
	   END
	   PATCH_IF (("%General%" STRING_COMPARE_CASE "dw#range") = 0) BEGIN
		 WRITE_ASCII 0x260 ~WTARSGT~
	   END
	   PATCH_IF (("%Default%" STRING_COMPARE_CASE "dw#range") = 0) BEGIN
		 WRITE_ASCII 0x268 ~WTARSGT~
	   END

	   PATCH_IF (("%Override%" STRING_COMPARE_CASE "dw#wizardslay") = 0) BEGIN
		 WRITE_ASCII 0x248 ~WTASIGHT~
	   END
	   PATCH_IF (("%Class%" STRING_COMPARE_CASE "dw#wizardslay") = 0) BEGIN
		 WRITE_ASCII 0x250 ~WTASIGHT~
	   END
	   PATCH_IF (("%Race%" STRING_COMPARE_CASE "dw#wizardslay") = 0) BEGIN
		 WRITE_ASCII 0x258 ~WTASIGHT~
	   END
	   PATCH_IF (("%General%" STRING_COMPARE_CASE "dw#wizardslay") = 0) BEGIN
		 WRITE_ASCII 0x260 ~WTASIGHT~
	   END
	   PATCH_IF (("%Default%" STRING_COMPARE_CASE "dw#wizardslay") = 0) BEGIN
		 WRITE_ASCII 0x268 ~WTASIGHT~
	   END

	   PATCH_IF (("%Override%" STRING_COMPARE_CASE "dw#wtacor") = 0) BEGIN
		 WRITE_ASCII 0x248 ~WTASIGHT~
	   END
	   PATCH_IF (("%Class%" STRING_COMPARE_CASE "dw#wtacor") = 0) BEGIN
		 WRITE_ASCII 0x250 ~WTASIGHT~
	   END
	   PATCH_IF (("%Race%" STRING_COMPARE_CASE "dw#wtacor") = 0) BEGIN
		 WRITE_ASCII 0x258 ~WTASIGHT~
	   END
	   PATCH_IF (("%General%" STRING_COMPARE_CASE "dw#wtacor") = 0) BEGIN
		 WRITE_ASCII 0x260 ~WTASIGHT~
	   END
	   PATCH_IF (("%Default%" STRING_COMPARE_CASE "dw#wtacor") = 0) BEGIN
		 WRITE_ASCII 0x268 ~WTASIGHT~
	   END

	   PATCH_IF (("%Override%" STRING_COMPARE_CASE "WDASIGHT") = 0) BEGIN
		 WRITE_ASCII 0x248 ~WTASIGHT~
	   END
	   PATCH_IF (("%Class%" STRING_COMPARE_CASE "WDASIGHT") = 0) BEGIN
		 WRITE_ASCII 0x250 ~WTASIGHT~
	   END
	   PATCH_IF (("%Race%" STRING_COMPARE_CASE "WDASIGHT") = 0) BEGIN
		 WRITE_ASCII 0x258 ~WTASIGHT~
	   END
	   PATCH_IF (("%General%" STRING_COMPARE_CASE "WDASIGHT") = 0) BEGIN
		 WRITE_ASCII 0x260 ~WTASIGHT~
	   END
	   PATCH_IF (("%Default%" STRING_COMPARE_CASE "WDASIGHT") = 0) BEGIN
		 WRITE_ASCII 0x268 ~WTASIGHT~
	   END

	   PATCH_IF (("%Override%" STRING_COMPARE_CASE "WDARSGT") = 0) BEGIN
		 WRITE_ASCII 0x248 ~WTARSGT~
	   END
	   PATCH_IF (("%Class%" STRING_COMPARE_CASE "WDARSGT") = 0) BEGIN
		 WRITE_ASCII 0x250 ~WTARSGT~
	   END
	   PATCH_IF (("%Race%" STRING_COMPARE_CASE "WDARSGT") = 0) BEGIN
		 WRITE_ASCII 0x258 ~WTARSGT~
	   END
	   PATCH_IF (("%General%" STRING_COMPARE_CASE "WDARSGT") = 0) BEGIN
		 WRITE_ASCII 0x260 ~WTARSGT~
	   END
	   PATCH_IF (("%Default%" STRING_COMPARE_CASE "WDARSGT") = 0) BEGIN
		 WRITE_ASCII 0x268 ~WTARSGT~
	   END

	 END

   BUT_ONLY_IF_IT_CHANGES
END

The rest of the TP2 is exactly like the original.

Edited by Azazello, 19 April 2013 - 04:19 AM.

Der Tag beginnt in der Mittel am Nacht, immer. -- Peter Wendl
================================================================
Community Contributions
a directory of Mega-Installation Guides * Level 1 NPCs * gMinion: expanded TP2 for MegaInstalls * PSM (PSQM): expanded scripts for Melanthium * Weimer's-Tactics: revised TP2 for MegaInstalls * non-detectable Cloak of Non-Detection ?? * Shar Nadal (DSotSC-BGT) revision




Reply to this topic



  


1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users