Skip to content

Commit

Permalink
v9
Browse files Browse the repository at this point in the history
  • Loading branch information
CamDawg committed Aug 28, 2018
1 parent 62c801b commit 465400e
Show file tree
Hide file tree
Showing 14 changed files with 765 additions and 471 deletions.
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Change Log

## Version 9 - August 27, 2018
### Added
- Added compatibility for IWDEE
- Fixed bug where Nalia and Imoen would not get the S&S version of the Adventurer kit when used in conjunction with NPC Kitpack
- The bard songs of the Gypsy and Dirgesinger have had their areas of effect upped to match the bardsong of Jesters (15' radius)
- The curse spell of the Gypsy no longer reports 'Bless' on its target
- The Gypsy bardsong can now be resisted by elven sleep/charm resistance (if installed from Fixpack or the EEs); the spell will also no longer apply effects or require saving throws from non-humanoids


## Version 8 - October 3, 2016
### Added
- EET compatibility
Expand Down
4 changes: 2 additions & 2 deletions package_mod.bat
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ call "%~dp0..\ModPackaging\utilities\ie_games.bat"

REM /* MODIFY: set the values of the 3 variables below to reflect the current mod version */
set "mod_name=Song and Silence"
set mod_version=v8
set mod_version=v9
set mod_folder=song_and_silence

REM /* MODIFY: list here which IE games the mod is compatible with, from this list of possibilities: */
REM /* %bg1%, %bg2%, %bgt%, %tutu%, %bgee%, %bgiiee%, %iwd1%, %iwdee%, %iwd2%, %iwd2ee%, %iwd-in-bg2%, %pst%, %pstee% */
set "compatible_games=%bg2%, %bgt%, %tutu%, %bgee%, or %bgiiee%"
set "compatible_games=%bg2%, %bgt%, %tutu%, %bgee%, %bgiiee%, %iwdee%, or %eet%"

REM /* MODIFY: these variables have sensible default values but they may need to be tweaked to match your particular mod */
REM /* the ico_folder is where your .ico files are stored, which is usually the mod's backup or style folder */
Expand Down
Binary file modified song_and_silence/dirgesinger/a!dssong.spl
Binary file not shown.
Binary file modified song_and_silence/gypsy/a!gyps.spl
Binary file not shown.
Binary file added song_and_silence/gypsy/cdca7.eff
Binary file not shown.
Binary file added song_and_silence/gypsy/cdcd7.eff
Binary file not shown.
Binary file modified song_and_silence/gypsy/cdcurse.spl
Binary file not shown.
Binary file added song_and_silence/gypsy/cdcvis.eff
Binary file not shown.
778 changes: 459 additions & 319 deletions song_and_silence/readme-song_and_silence.html

Large diffs are not rendered by default.

117 changes: 68 additions & 49 deletions song_and_silence/setup-song_and_silence.tp2
Original file line number Diff line number Diff line change
@@ -1,29 +1,39 @@
BACKUP ~song_and_silence/backup~
AUTHOR ~andyr@gibberlings3.net~
SUPPORT ~http://gibberlings3.net/forums/index.php?showforum=72~

VERSION ~v6~
VERSION ~v9~
README ~song_and_silence/readme-song_and_silence.html~

ALWAYS
INCLUDE ~%MOD_FOLDER%/lib/fl#add_kit_ee.tpa~
INCLUDE ~%MOD_FOLDER%/lib/functions.tpa~ // misc s&s functions

ACTION_IF NOT VARIABLE_IS_SET cd_always THEN BEGIN
OUTER_SET cd_always = 1
ACTION_IF NOT VARIABLE_IS_SET ee_game THEN BEGIN

INCLUDE ~%MOD_FOLDER%/lib/fl#add_kit_ee.tpa~
INCLUDE ~%MOD_FOLDER%/lib/functions.tpa~ // misc s&s functions

ACTION_DEFINE_ARRAY cdnoconvert BEGIN END // List of tra files that contain ONLY strings for the WeiDU installer and NOT game content
ACTION_DEFINE_ARRAY cdreload BEGIN ~setup~ END // List of tra files that need to be reloaded after conversion because they were previously loaded in the LANGUAGE section

// On EE games, convert game content tra files to utf-8 so that games don't crash when encountering international characters.
LAF HANDLE_CHARSETS INT_VAR infer_charset = 1 STR_VAR default_language = ~english~ tra_path = EVAL ~%MOD_FOLDER%/tra~ noconvert_array = cdnoconvert reload_array = cdreload END
LAF HANDLE_CHARSETS INT_VAR infer_charsets = 1 STR_VAR default_language = ~english~ tra_path = EVAL ~%MOD_FOLDER%/tra~ noconvert_array = cdnoconvert reload_array = cdreload END

// Load EE-specific text (usability section removed from item descriptions)
ACTION_IF ENGINE_IS ~bgee bg2ee~ THEN BEGIN
ACTION_IF GAME_IS ~bgee bg2ee iwdee eet~ THEN BEGIN

OUTER_SET ee_game = 1

// Load English first in case some entries not available in the chosen language (as in LANGUAGE for setup.tra)
LOAD_TRA ~song_and_silence/tra/english/setup_ee.tra~
LOAD_TRA ~song_and_silence/tra/%LANGUAGE%/setup_ee.tra~
END

END ELSE BEGIN

OUTER_SET ee_game = 0

END

END

END

/* Language Settings */
Expand Down Expand Up @@ -100,7 +110,7 @@ COPY_EXISTING mxsplbrd.2da override
BUT_ONLY

// unnecessary if Fixpack
ACTION_IF ((NOT MOD_IS_INSTALLED setup-bg2fixpack.tp2 0) AND (NOT ENGINE_IS ~BGEE BG2EE~)) THEN BEGIN // fixed in EE, vBG2 w/ Fixpack
ACTION_IF ((NOT MOD_IS_INSTALLED setup-bg2fixpack.tp2 0) AND (!ee_game)) THEN BEGIN // fixed in EE, vBG2 w/ Fixpack

// Fix Blade's pick pockets skill
COPY ~song_and_silence/chorister/a!pp2.spl~ override
Expand Down Expand Up @@ -185,10 +195,15 @@ BUT_ONLY

// Swashbuckler description change
ACTION_IF NOT FILE_EXISTS_IN_GAME rr#tsb01.spl THEN BEGIN

ACTION_IF GAME_IS ~bgee~ THEN BEGIN
STRING_SET 24303 @1
END ELSE BEGIN
STRING_SET 25216 @1
ACTION_IF GAME_IS ~iwdee~ THEN BEGIN
STRING_SET 37230 @1
END ELSE BEGIN // everything else
STRING_SET 25216 @1
END
END
END

Expand Down Expand Up @@ -242,6 +257,7 @@ END

BEGIN @2
DESIGNATED 1
//REQUIRE_PREDICATE !GAME_IS ~iwdee~ @104

LAF HANDLE_AUDIO END

Expand Down Expand Up @@ -284,7 +300,7 @@ ACTION_IF GAME_IS ~bgt soa tob bg2ee~ THEN BEGIN
END

// spawn raoul at nashkel carnival
ACTION_IF GAME_IS ~bgt tutu tutu_totsc bgee eet~ THEN BEGIN
ACTION_IF GAME_IS ~bgt tutu tutu_totsc bgee eet sod~ THEN BEGIN

ACTION_IF GAME_IS ~tutu tutu_totsc~ THEN BEGIN
OUTER_SPRINT nashkel_carnival fw4900
Expand Down Expand Up @@ -701,7 +717,29 @@ COPY ~song_and_silence/gypsy/cdcurse.spl~ ~override/a!gypc.spl~
LAUNCH_PATCH_MACRO andyr_spell_to_innate
WRITE_SHORT 0x98 "%a!curse%" //Writes the projectile into the file

ACTION_IF !ee_game THEN BEGIN // block ancillary charm effects for unaffected creatures, the hard way

COPY_EXISTING ~a!gyps.spl~ ~override~
LPF CLONE_EFFECT INT_VAR match_opcode = 5 opcode = 177 parameter1 = 1 parameter2 = 3 STR_VAR resource = ~cdca7~ END
LPF CLONE_EFFECT INT_VAR match_opcode = 177 timing = 4 STR_VAR match_resource = ~cdca7~ resource = ~cdcd7~ END
LPF CLONE_EFFECT INT_VAR match_opcode = 177 duration = 4 STR_VAR match_resource = ~cdca7~ resource = ~cdcvis~ END
PATCH_IF FILE_EXISTS_IN_GAME ~cdelfcm0.eff~ BEGIN // fixpack elven charm resistance
LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 15 opcode = 177 power = 0 parameter1 = 2 parameter2 = 4 resist_dispel = 0 probability1 = 89 STR_VAR resource = ~cdelfcm0~ END
LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 19 opcode = 177 power = 0 parameter1 = 3 parameter2 = 4 resist_dispel = 0 probability1 = 29 STR_VAR resource = ~cdelfcm0~ END
FOR (index = 1 ; index < 8 ; ++index) BEGIN
LPF CLONE_EFFECT STR_VAR match_resource = cdelfcm0 resource = EVAL ~cdelfcm%index%~ END
END
END
PATCH_FOR_EACH op IN 324 50 142 215 174 BEGIN
LPF DELETE_EFFECT INT_VAR match_opcode = op END
END

COPY ~song_and_silence/gypsy/cdca7.eff~ ~override~
~song_and_silence/gypsy/cdcd7.eff~ ~override~
~song_and_silence/gypsy/cdcvis.eff~ ~override~

END

////////////////////////////////
//Install Adventurer thief kit//
////////////////////////////////
Expand Down Expand Up @@ -731,7 +769,7 @@ OUTER_SPRINT match ~A!ADVENTURER~
LAUNCH_ACTION_MACRO andyr_cinders_of_ashes_of_embers
LAF fl#add_kit_ee STR_VAR backstab = ~1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1~ kit_name = ~A!ADVENTURER~ END // for ee games, give no backstab multiplier

ACTION_IF NOT ENGINE_IS ~bgee bg2ee~ THEN BEGIN // if non-ee game, have to use swash usability flag to prevent backstabbing
ACTION_IF !ee_game THEN BEGIN // if non-ee game, have to use swash usability flag to prevent backstabbing

COPY_EXISTING ~kitlist.2da~ ~override~
REPLACE_TEXTUALLY ~\([ %TAB%]a!av[ %TAB%]+[0-9]+[ %TAB%]+\)0x0*4000~ ~\10x00100000~
Expand All @@ -746,27 +784,20 @@ COPY ~song_and_silence/adventurer/adventurer1.spl~ ~override/a!av1.spl~
// Save bonus
COPY ~song_and_silence/adventurer/a!av3.spl~ ~override/a!av3.spl~

// This means that if Idobek's Kitpack is installed, Nalia and Imoen will get this version of the Adventurer.
ACTION_IF MOD_IS_INSTALLED npckit.tp2 1400 || MOD_IS_INSTALLED npckit.tp2 2500 THEN BEGIN
COPY_EXISTING_REGEXP GLOB ~^.+\.cre$~ override
PATCH_IF SOURCE_SIZE > 0x2d3 BEGIN
READ_ASCII DEATHVAR dv
PATCH_IF (("%dv%" STRING_MATCHES_REGEXP ~^imoen2?$~) == 0) && (MOD_IS_INSTALLED npckit.tp2 1400) BEGIN
PATCH_PRINT @80
WRITE_SHORT 0x244 0x0000
WRITE_BYTE 0x246 %A!ADVENTURER%
WRITE_BYTE 0x247 0x40
END
ELSE PATCH_IF (("%dv%" STRING_MATCHES_REGEXP ~^nalia$~) == 0) && (MOD_IS_INSTALLED npckit.tp2 2500) BEGIN
PATCH_PRINT @81
WRITE_SHORT 0x244 0x0000
WRITE_BYTE 0x246 %A!ADVENTURER%
WRITE_BYTE 0x247 0x40
END
END
BUT_ONLY_IF_IT_CHANGES
END
// This means that if Idobek's Kitpack is installed, Imoen and Nalia will get this version of the Adventurer.
ACTION_IF ((MOD_IS_INSTALLED npckit.tp2 1400) OR (MOD_IS_INSTALLED npckit.tp2 2500)) THEN BEGIN

ACTION_FOR_EACH script IN imoen imoen2 imoe25 _imoen bgimoen bgimoen2 nalia nali25 BEGIN

COPY_EXISTING ~%script%.bcs~ ~override~
DECOMPILE_AND_PATCH BEGIN
REPLACE_TEXTUALLY ~IK_ADVENTURER~ ~A!ADVENTURER~
END
BUT_ONLY IF_EXISTS

END

END

/////////////////////////////
//Install Burglar thief kit//
Expand Down Expand Up @@ -829,7 +860,7 @@ OUTER_SPRINT match ~A!SOULKNIFE~
LAUNCH_ACTION_MACRO andyr_cinders_of_ashes_of_embers
LAF fl#add_kit_ee STR_VAR thiefskl = ~40 15~ kit_name = ~A!SOULKNIFE~ END // for ee games, use table to designate only 15 points/level

ACTION_IF NOT ENGINE_IS ~bgee bg2ee~ THEN BEGIN // if non-ee game, have to use assassin usability flag for thieving points
ACTION_IF !ee_game THEN BEGIN // if non-ee game, have to use assassin usability flag for thieving points

COPY_EXISTING ~kitlist.2da~ ~override~
REPLACE_TEXTUALLY ~\([ %TAB%]a!soul[ %TAB%]+[0-9]+[ %TAB%]+\)0x0*4000~ ~\10x00040000~
Expand Down Expand Up @@ -884,7 +915,7 @@ OUTER_SPRINT match ~A!SHARPSHOOTER~
LAUNCH_ACTION_MACRO andyr_cinders_of_ashes_of_embers
LAF fl#add_kit_ee STR_VAR backstab = ~1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1~ kit_name = ~A!SHARPSHOOTER~ END // for ee games, give no backstab multiplier

ACTION_IF NOT ENGINE_IS ~bgee bg2ee~ THEN BEGIN // if non-ee game, have to use swash usability flag to prevent backstabbing
ACTION_IF !ee_game THEN BEGIN // if non-ee game, have to use swash usability flag to prevent backstabbing

COPY_EXISTING ~kitlist.2da~ ~override~
REPLACE_TEXTUALLY ~\([ %TAB%]a!sharp[ %TAB%]+[0-9]+[ %TAB%]+\)0x0*4000~ ~\10x00100000~
Expand All @@ -894,27 +925,15 @@ END

//Duplicate Assassin's Poison Weapon ability, removing effects on melee weapons
COPY_EXISTING ~spcl423.spl~ ~override/a!ss01.spl~
READ_LONG 0x64 "abil_off" ELSE 0
READ_SHORT 0x68 "abil_num" ELSE 0
READ_LONG 0x6a "fx_off" ELSE 0
FOR (index = 0; index < abil_num; index = index + 1) BEGIN
READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num"
READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx"
FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN
READ_SHORT ("%fx_off%" + (("%abil_fx_idx%" + "%index2%") * 0x30)) "opcode"
PATCH_IF ("%opcode%" = "248") BEGIN // opcode #248 (Set Melee Effect)
WRITE_BYTE ("%fx_off%" + 0x12 + (("%index2%" + "%abil_fx_idx%") * 0x30)) "0" // probability1: 0
END
END
END
LPF DELETE_EFFECT INT_VAR match_opcode = 248 END

//////////////////////////////////
//Install Shadowdancer thief kit//
//////////////////////////////////

BEGIN @97
DESIGNATED 10
REQUIRE_PREDICATE NOT ENGINE_IS ~bgee bg2ee~ @104
//REQUIRE_PREDICATE !GAME_IS ~bgee bg2ee iwdee eet~ @104
REQUIRE_COMPONENT ~setup-song_and_silence.tp2~ ~0~ @43

ADD_KIT ~A#SHADOWDANCER~
Expand Down
Binary file added song_and_silence/style/g3_logo_2018.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified song_and_silence/style/g3banner.bmp
Binary file not shown.
101 changes: 0 additions & 101 deletions song_and_silence/style/g3readme.css

This file was deleted.

Loading

0 comments on commit 465400e

Please sign in to comment.