Jump to content

Bug reports


berelinde

Recommended Posts

OK, I've found the root of the stutter problem, and it isn't pretty.

 

The reason for the stutter is that the concurrency counter is spiraling out of control. Gavin's relationship is going to be over very quickly, with a loop in that script block. Something is corrupted in the BAF. This was corrupted during downloading, because I know I was running with an elven female mage and was romancing Xan myself during playtesting, and it didn't do it for me, nor have other users games been affected.

 

If you can send me something that large, would you mind sending me a copy of your mod folder. I want to know what happened to it during downloading.

 

There might be a way to salvage your current installation, but I'm thinking that a fresh download is in order. In any case, please send me the mod folder. I want to know what got installed. Also, if you could send me your debug and weidu log, I'd appreciate it. That will let me see what settings you used.

Link to comment

Beta+patch, clean fresh newly minted install, rechecked: Weidu.LOG posed. Dropped by to pick up Gavin, and found that he had a twin...

 

I chose one, then the SCS level up component kicked in and a new "I'm not.." kicked in but was too quick to see. My bet is a spawning check skipped - I had a low rep (blast those stupid Montaron and Xzar checks... the clobbered Marl! Now I know why I never keep them in party...)

 

no time to troubleshoot right now but I will take a look this week :)

 

// Log of Currently Installed WeiDU Mods
// The top of the file is the 'oldest' mod
// ~TP2_File~ #language_number #component_number // [subcomponent Name -> ] Component Name
~SETUP-EASYTUTUHOTFIXES.TP2~ #0 #0 // EasyTutu Hotfixes: 05 February 2007 Release
~SETUP-TUTUFIX.TP2~ #0 #3 // BG2 Ammo Stacks
~SETUP-TUTUFIX.TP2~ #0 #4 // Totemic Druid Spirit Summons are Balanced
~EASYTUTUDEGREENIFIER.TP2~ #0 #0 // EasyTutu Degreenifier
~SETUP-EASYTUTUNPCKITS.TP2~ #0 #1 // Assign a kit to Ajantis? -> Ajantis: Inquisitor
~SETUP-EASYTUTUNPCKITS.TP2~ #0 #7 // Assign a kit to Dynaheir? -> Dynaheir: Specialist Mage
~SETUP-EASYTUTUNPCKITS.TP2~ #0 #9 // Assign a kit to Edwin? -> Edwin: Specialist Mage
~SETUP-EASYTUTUNPCKITS.TP2~ #0 #14 // Assign a kit to Faldorn? -> Faldorn: Shapeshifter
~SETUP-EASYTUTUNPCKITS.TP2~ #0 #21 // Assign a kit to Imoen? -> Imoen: Swashbuckler
~SETUP-EASYTUTUNPCKITS.TP2~ #0 #29 // Assign a kit to Kivan? -> Kivan: Archer
~SETUP-EASYTUTUNPCKITS.TP2~ #0 #44 // Assign a kit to Xan? -> Xan: Sorceror
~SETUP-EASYTUTUNPCKITS.TP2~ #0 #47 // Assign a kit to Xzar? -> Xzar: Specialist Mage
~BG1UB/SETUP-BG1UB.TP2~ #0 #0 // Ice Island Level Two Restoration
~BG1UB/SETUP-BG1UB.TP2~ #0 #1 // The Mysterious Vial
~BG1UB/SETUP-BG1UB.TP2~ #0 #2 // Additional Elminster Encounter
~BG1UB/SETUP-BG1UB.TP2~ #0 #9 // Appropriate Albert and Rufie Reward
~BG1UB/SETUP-BG1UB.TP2~ #0 #10 // Place Entar Silvershield in His Home
~BG1UB/SETUP-BG1UB.TP2~ #0 #11 // Scar and the Sashenstar's Daughter
~BG1UB/SETUP-BG1UB.TP2~ #0 #12 // Quoningar, the Cleric
~BG1UB/SETUP-BG1UB.TP2~ #0 #13 // Shilo Chen and the Ogre-Magi
~BG1UB/SETUP-BG1UB.TP2~ #0 #14 // Edie, the Merchant League Applicant
~BG1UB/SETUP-BG1UB.TP2~ #0 #15 // Flaming Fist Mercenary Reinforcements
~BG1UB/SETUP-BG1UB.TP2~ #0 #16 // Creature Corrections
~BG1UB/SETUP-BG1UB.TP2~ #0 #17 // Creature Restorations
~BG1UB/SETUP-BG1UB.TP2~ #0 #18 // Creature Name Restorations
~BG1UB/SETUP-BG1UB.TP2~ #0 #19 // Minor Dialogue Restorations
~BG1UB/SETUP-BG1UB.TP2~ #0 #20 // Audio Restorations
~BG1UB/SETUP-BG1UB.TP2~ #0 #21 // Store, Tavern and Inn Fixes and Restorations
~BG1UB/SETUP-BG1UB.TP2~ #0 #22 // Item Corrections and Restorations
~BG1UB/SETUP-BG1UB.TP2~ #0 #23 // Area Corrections and Restorations
~BG1UB/SETUP-BG1UB.TP2~ #0 #24 // Permanent Corpses
~BG1UB/SETUP-BG1UB.TP2~ #0 #25 // Elven Charm and Sleep Racial Immunity
~BG1UB/SETUP-BG1UB.TP2~ #0 #26 // The Original Saga Music Playlist Corrections
~SETUP-SONG_AND_SILENCE.TP2~ #0 #0 // Changes to trueclass bards and thieves, and unmodded game kits (required for other components)
~SETUP-SONG_AND_SILENCE.TP2~ #0 #1 // Add new bardic store and thief items
~SETUP-SONG_AND_SILENCE.TP2~ #0 #2 // Install Acrobat bard kit
~SETUP-SONG_AND_SILENCE.TP2~ #0 #3 // Install Chorister bard kit
~SETUP-SONG_AND_SILENCE.TP2~ #0 #4 // Install Dirgesinger bard kit
~SETUP-SONG_AND_SILENCE.TP2~ #0 #5 // Install Gypsy bard kit
~SETUP-SONG_AND_SILENCE.TP2~ #0 #6 // Install Adventurer thief kit
~SETUP-SONG_AND_SILENCE.TP2~ #0 #7 // Install Burglar thief kit
~SETUP-SONG_AND_SILENCE.TP2~ #0 #8 // Install Soulknife thief kit
~SETUP-SONG_AND_SILENCE.TP2~ #0 #9 // Install Sharpshooter thief kit
~SETUP-TGC1E.TP2~ #0 #0 // The Grey Clan Episode One: In Candlelight, BG1TUTU edition v1.10 -> Normal edition
~SETUP-SIRINESCALL.TP2~ #0 #0 // The Lure of the Sirine's Call
~BG1NPC.TP2~ #0 #0 // The BG1 NPC Project: Required Modifications for v12 Beta4, pro5-3
~BG1NPC.TP2~ #0 #1 // The BG1 NPC Project: Banters, Quests, and Interjections
~BG1NPC.TP2~ #0 #2 // The BG1 NPC Project: Give Edwin his BG2 portrait.
~BG1NPC.TP2~ #0 #8 // The BG1 NPC Project: Add Non-Joinable NPC portraits to quests and dialogues
~BG1NPC.TP2~ #0 #9 // The BG1 NPC Project: Coran's Romance Core (adult content)
~BG1NPC.TP2~ #0 #10 // The BG1 NPC Project: Dynaheir's Romance Core (teen content)
~BG1NPC.TP2~ #0 #11 // The BG1 NPC Project: Shar-Teel Relationship Core (adult content)
~BG1NPC.TP2~ #0 #12 // The BG1 NPC Project: Branwen's Romance Core (teen content)
~BG1NPC.TP2~ #0 #13 // The BG1 NPC Project: Xan's Romance Core (teen content)
~BG1NPC.TP2~ #0 #14 // The BG1 NPC Project: Ajantis Romance Core (teen content)
~BG1NPC.TP2~ #0 #15 // The BG1 NPC Project: Female Romance Challenges, Ajantis vs Xan vs Coran
~BG1NPC.TP2~ #0 #18 // Romance [Coran] -> Coran's Romance Speed (30 minutes)
~BG1NPC.TP2~ #0 #23 // Romance [Dynaheir] -> Dynaheir's Romance Speed (30 minutes)
~BG1NPC.TP2~ #0 #28 // Romance [Xan] -> Xan's Romance Speed (30 minutes)
~BG1NPC.TP2~ #0 #33 // Romance [shar-Teel] -> Shar-Teel's Relationship Speed (30 minutes)
~BG1NPC.TP2~ #0 #38 // Romance [branwen] -> Branwen's Romance Speed (30 minutes)
~BG1NPC.TP2~ #0 #43 // Romance [Ajantis] -> Ajantis' Romance Speed (30 minutes)
~BG1NPC.TP2~ #0 #46 // The BG1 NPC Project: NPCs can be sent to wait in an inn.
~BG1NPC.TP2~ #0 #48 // The BG1 NPC Project: Alora's Starting Location. -> Alora Starts in Gullykin.
~BG1NPC.TP2~ #0 #50 // The BG1 NPC Project: Eldoth's Starting Location. -> Eldoth Starts on the Coast Way.
~BG1NPC.TP2~ #0 #52 // The BG1 NPC Project: Quayle's Starting Location. -> Quayle Starts at the Nashkel Carnival.
~BG1NPC.TP2~ #0 #54 // The BG1 NPC Project: Tiax's Starting Location. -> Tiax Starts in Beregost.
~BG1NPC.TP2~ #0 #55 // Jason Compton's Accelerated Banter Script.
~BG1NPC.TP2~ #0 #56 // The BG1 NPC Project: Make Shar-Teel Unkillable until In Party
~BG1NPC.TP2~ #0 #57 // The BG1 NPC Project: Bardic Reputation Adjustment
~BG1NPC.TP2~ #0 #58 // The BG1 NPC Project: Cloakwood areas availability in Chapter One -> Open Cloakwood Lodge (first Cloakwood area only)
~BG1NPC.TP2~ #0 #200 // The BG1 NPC Project: Player-Initiated Dialogues
~GAVIN/GAVIN.TP2~ #0 #0 // Gavin v 1.0 beta
~GAVIN/GAVIN.TP2~ #0 #1 // Gavin Romance (adult content)
~GAVIN/GAVIN.TP2~ #0 #4 // Romance Timers -> Gavin's Romance Speed (30 minutes)
~GAVIN/GAVIN.TP2~ #0 #7 // Flirts
~GAVIN/GAVIN.TP2~ #0 #9 // Alternate Portraits -> Alternate Portrait 1 by berelinde (default)
~GAVIN/GAVIN.TP2~ #0 #12 // Player Initiated Dialog
~GAVINV1BETAPATCH/GAVINV1BETAPATCH.TP2~ #0 #0 // Gavin v 1.0 beta Patch
~PICKS_OF_THE_LITTER/PICKS_OF_THE_LITTER.TP2~ #0 #0 // Plasmocat's Picks of the Litter Portrait Pack
~PLASMOBG1BG2/PLASMOBG1BG2.TP2~ #0 #0 // Plasmocat's BG1 NPC Portraits in BG2 Style
~PLASMOBG1BG2/PLASMOBG1BG2.TP2~ #0 #1 // Plasmocat's BG1 Imoen Portraits -> Plasmocat's BG1 NPC Choices: Imoen #1 BG2 (Ruffles)
~PLASMOBG1BG2/PLASMOBG1BG2.TP2~ #0 #4 // Plasmocat's BG1 Xzar Portraits -> Plasmocat's BG1 NPC Choices: Xzar #2 BG1 Colors (green)
~1PP/1PP.TP2~ #0 #0 // 1PP: Everything but Potions
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #0 // Divine Remix Core Components (Required for Everything)
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #100 // Cleric Remix
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #103 // Install Silverstar of Selune Cleric Kit
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #106 // Install Nightcloak of Shar Cleric Kit
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #109 // Install Battleguard of Tempus Cleric Kit
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #112 // Install Painbearer of Ilmater Cleric Kit
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #121 // Install Lorekeeper of Oghma Cleric Kit
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #124 // Install Heartwarder of Sune Cleric Kit
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #130 // Install Strifeleader of Cyric Cleric Kit
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #200 // Druid Remix
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #403 // Install Bowslinger Ranger Kit
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #406 // Install Feralan Ranger Kit
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #409 // Install Forest Runner Ranger Kit
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #412 // Install Justifier Ranger Kit
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #415 // Install Wilderness Runner Ranger Kit
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #600 // Install Battleguard of Tempus Kit for Branwen
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #605 // Change Jaheira to Neutral Good
~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #610 // Install Nightcloak of Shar Kit for Viconia
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #40 // Change Viconia's Skin Color to Dark Blue
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #60 // Weapon Animation Tweaks
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #110 // Icon Improvements
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1010 // More Interjections
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1080 // Add Bags of Holding
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1090 // Exotic Item Pack
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1100 // Reveal City Maps When Entering Area
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1110 // Add Map Notes
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1120 // Stores Sell Higher Stacks of Items
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2040 // Universal Clubs
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2050 // Description Updates for Universal Clubs Component
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2060 // Weapon Styles for All
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2090 // Change Experience Point Cap -> Remove Experience Cap
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2151 // Wear Multiple Protection Items -> No Restrictions
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2200 // Multi-Class Grand Mastery (Weimer)
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2210 // True Grand Mastery (Baldurdash)
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2220 // Change Magically Created Weapons to Zero Weight
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2230 // Make +x/+y Weapons Consistent
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2231 // Description Updates for Make +x/+y Weapons Consistent Component
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2241 // Un-Nerfed THAC0 Table -> Capped, Best THAC0 is -10 (PnP/BG1 Table)
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2250 // Un-Nerfed Sorcerer Spell Progression Table
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2261 // Alter Mage Spell Progression Table -> PnP Table
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2271 // Alter Bard Spell Progression Table -> PnP Table
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2281 // Alter Cleric Spell Progression Table -> PnP Table
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2294 // Alter Druid Spell and Level Progression Tables -> Use Cleric Level Progression Changes With PnP Druid/Cleric Spell Table
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3000 // Higher HP on Level Up -> Maximum
~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3200 // Sellable Staffs, Clubs, and Slings (Icelus)
~SETUP-SCS.TP2~ #0 #0 // Correct various errors on race, class etc
~SETUP-SCS.TP2~ #0 #5 // Re-introduce potions of extra-healing
~SETUP-SCS.TP2~ #0 #6 // Faster Bears
~SETUP-SCS.TP2~ #0 #7 // Allow player to choose NPC proficiencies and skills
~SETUP-SCS.TP2~ #0 #10 // Allow Yeslick to use axes
~SETUP-SCS.TP2~ #0 #36 // Dark Side-based kobold upgrade
~SETUP-SCS.TP2~ #0 #54 // Skip Candlekeep
~SETUP-SCS.TP2~ #0 #56 // Remove blur effect from displacer cloak
~SETUP-SCS.TP2~ #0 #57 // Stackable ankheg shells and winterwolf pelts
~SETUP-TUTUGUI.TP2~ #0 #0 // Baldurs Gate I GUI for Tut

Link to comment

Ah, OK, I think I understand.

 

Gavin doesn't use the SCS levelling system. First of all, as a mod NPC, he is completely unaffected by anything SCS or any other mod does to NPCs. I was unable to get my head around DavidW's levelling system, so I have my own. Less elegant, perhaps, but it gets the job done:

 

IF
 InParty(Myself)
 Global("GavinJoined","GLOBAL",1)
 Global("GavinLeveled","GLOBAL",0)
 XPLT(Player1,1500)
THEN
 RESPONSE #100
SetGlobal("GavinLeveled","GLOBAL",1)
DisplayStringHead("B!GAVIN",~Please make my weapon and spell selections.~)
PlaySound("_EFF_P24")
Wait(2)
END

IF
 InParty(Myself)
 Global("GavinJoined","GLOBAL",1)
 Global("GavinLeveled","GLOBAL",0)
 XPGT(Player1,1499)
 XPLT(Player1,3000)
THEN
 RESPONSE #100
SetGlobal("GavinLeveled","GLOBAL",1)
AddXPObject("B!GAVIN",1501) // level 2
DisplayStringHead("B!GAVIN",~I am eligible to increase in level. Please make the necessary changes as well as my weapon and spell selections.~)
PlaySound("_EFF_P24")
Wait(2)
END

IF
 InParty(Myself)
 Global("GavinJoined","GLOBAL",1)
 Global("GavinLeveled","GLOBAL",0)
 XPGT(Player1,2999)
 XPLT(Player1,6000)
THEN
 RESPONSE #100
SetGlobal("GavinLeveled","GLOBAL",1)
AddXPObject("B!GAVIN",3001) // level 3
DisplayStringHead("B!GAVIN",~I am eligible to increase in level. Please make the necessary changes as well as my weapon and spell selections.~)
PlaySound("_EFF_P24")
Wait(2)
END

IF
 InParty(Myself)
 Global("GavinJoined","GLOBAL",1)
 Global("GavinLeveled","GLOBAL",0)
 XPGT(Player1,5999)
 XPLT(Player1,13000)
THEN
 RESPONSE #100
SetGlobal("GavinLeveled","GLOBAL",1)
AddXPObject("B!GAVIN",6001) // level 4
DisplayStringHead("B!GAVIN",~I am eligible to increase in level. Please make the necessary changes as well as my weapon and spell selections.~)
PlaySound("_EFF_P24")
Wait(2)
END

IF
 InParty(Myself)
 Global("GavinJoined","GLOBAL",1)
 Global("GavinLeveled","GLOBAL",0)
 XPGT(Player1,12999)
 XPLT(Player1,27500)
THEN
 RESPONSE #100
SetGlobal("GavinLeveled","GLOBAL",1)
AddXPObject("B!GAVIN",13001) // level 5
DisplayStringHead("B!GAVIN",~I am eligible to increase in level. Please make the necessary changes as well as my weapon and spell selections.~)
PlaySound("_EFF_P24")
Wait(2)
END

IF
 InParty(Myself)
 Global("GavinJoined","GLOBAL",1)
 Global("GavinLeveled","GLOBAL",0)
 XPGT(Player1,27499)
 XPLT(Player1,55000)
THEN
 RESPONSE #100
SetGlobal("GavinLeveled","GLOBAL",1)
AddXPObject("B!GAVIN",27501) // level 6
DisplayStringHead("B!GAVIN",~I am eligible to increase in level. Please make the necessary changes as well as my weapon and spell selections.~)
PlaySound("_EFF_P24")
Wait(2)
END

IF
 InParty(Myself)
 Global("GavinJoined","GLOBAL",1)
 Global("GavinLeveled","GLOBAL",0)
 XPGT(Player1,54999)
 XPLT(Player1,110000)
THEN
 RESPONSE #100
SetGlobal("GavinLeveled","GLOBAL",1)
AddXPObject("B!GAVIN",55001) // level 7
DisplayStringHead("B!GAVIN",~I am eligible to increase in level. Please make the necessary changes as well as my weapon and spell selections.~)
PlaySound("_EFF_P24")
Wait(2)
END

IF
 InParty(Myself)
 Global("GavinJoined","GLOBAL",1)
 Global("GavinLeveled","GLOBAL",0)
 XPGT(Player1,109999)
THEN
 RESPONSE #100
SetGlobal("GavinLeveled","GLOBAL",1)
AddXPObject("B!GAVIN",110001) // level 8
DisplayStringHead("B!GAVIN",~I am eligible to increase in level. Please make the necessary changes as well as my weapon and spell selections.~)
PlaySound("_EFF_P24")
Wait(2)
END

 

Still don't know why you got 2 Gavins.

 

Oh, and if you're curious, this is Gavin's reputation stuff. He isn't quite as tolerant as BioWare NPCs when it comes to reputation.

/* REPUTATION TALKS */

// Bye-bye
IF
InParty(Myself)
ReputationLT(Player1,4)				//REP TOO LOW
Global("B!RepComplain","GLOBAL",2)  //Already warned
Global("B!RepLeaving","GLOBAL",0)   //Checkvariable
CombatCounter(0)
!See([ENEMY])
!StateCheck(Player1,STATE_SLEEPING)
THEN
RESPONSE #100
SetGlobal("B!RepLeaving","GLOBAL",1)
StartDialogueNoSet(Player1)
END

// Getting uncomfortable

IF
InParty(Myself)
ReputationLT(Player1,10)			//Getting low
Global("B!RepComplain","GLOBAL",0)   //Checkvariable
CombatCounter(0)
!See([ENEMY])
!StateCheck(Player1,STATE_SLEEPING)
THEN
RESPONSE #100
SetGlobal("B!RepComplain","GLOBAL",1)
StartDialogueNoSet(Player1)
END

// Happy camper

IF
InParty(Myself)
ReputationGT(Player1,15)
Global("B!RepHappy","GLOBAL",0)   //Checkvariable
CombatCounter(0)
!See([ENEMY])
!StateCheck(Player1,STATE_SLEEPING)
THEN
RESPONSE #100
SetGlobal("B!RepHappy","GLOBAL",1)
StartDialogueNoSet(Player1)
END


// Well, Gavin's impressed

IF
InParty(Myself)
Reputation(Player1,20)			//Highest
Global("B!RepHighest","GLOBAL",0)   //Checkvariable
CombatCounter(0)
!See([ENEMY])
!StateCheck(Player1,STATE_SLEEPING)
THEN
RESPONSE #100
SetGlobal("B!RepHighest","GLOBAL",1)
StartDialogueNoSet(Player1)
END

Link to comment

Found it -- you are taking Continue() too seriously! You do a beautiful EXTEND_BOTTOM, but the result of all those Continue() s is the following area script:

 

IF
Global("CDStartSpawns","FW3400",0)
THEN
RESPONSE #100
	SetGlobal("CDStartSpawns","FW3400",1)
	CreateCreature("CD340001",[3562.158],0) // No such index
	CreateCreature("CD340002",[4599.1075],0) // No such index
	CreateCreature("CD340003",[4420.2111],0) // No such index
	CreateCreature("CD340004",[4792.2877],0) // No such index
	CreateCreature("CD340005",[2079.2715],0) // No such index
	CreateCreature("CD340006",[620.2817],0) // No such index
	CreateCreature("CD340007",[2509.1659],0) // No such index
END

IF
Global("UB_CORIANNA_SPAWN","GLOBAL",0)
!Exists("UBCORIAN")
!Dead("UBCORIAN")
Global("UB_HELPCORIANNA","GLOBAL",0)
THEN
RESPONSE #100
	CreateCreature("UBCORIAN",[4611.3449],2) // Corianna
	SetGlobal("UB_CORIANNA_SPAWN","GLOBAL",1)
END

IF
Global("X#RashelExists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("X#RashelExists","GLOBAL",1)
	CreateCreature("X#RASHEL",[1059.1089],3) // Rashel
END

IF
AreaCheck("FW3400")
Global("B!GavinExists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!GavinExists","GLOBAL",1)
	CreateCreature("B!GAVIN",[728.1474],3) // Gavin
	Continue()
END

IF
AreaCheck("FW3400")
Global("B!GustavExists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!GustavExists","GLOBAL",1)
	CreateCreature("B!GUSTAV",[3950.50],0) // Gustav
	Continue()
END

IF
AreaCheck("FW3400")
Global("B!BertramExists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!BertramExists","GLOBAL",1)
	CreateCreature("B!BERTRA",[3950.50],0) // Bertram
	Continue()
END

IF
AreaCheck("FW3400")
Global("B!Thug1Exists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!Thug1Exists","GLOBAL",1)
	CreateCreature("B!THUG1",[3950.50],0) // Plato
	Continue()
END

IF
AreaCheck("FW3400")
Global("B!Thug2Exists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!Thug2Exists","GLOBAL",1)
	CreateCreature("B!THUG2",[3950.50],0) // Crusher
	Continue()
END

IF
AreaCheck("FW3400")
Global("B!Thug3Exists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!Thug3Exists","GLOBAL",1)
	CreateCreature("B!THUG3",[3950.50],0) // Spike
	Continue()
END

IF
AreaCheck("FW3400")
Global("B!ValeriaExists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!ValeriaExists","GLOBAL",1)
	CreateCreature("B!VALER",[3950.50],0) // Valeria
	Continue()
END

IF
AreaCheck("FW3400")
Global("B!PennyExists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!PennyExists","GLOBAL",1)
	CreateCreature("B!PENNY",[3950.50],0) // Penny
	Continue()
END

IF
AreaCheck("FW3400")
Global("B!GavinExists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!GavinExists","GLOBAL",1)
	CreateCreature("B!GAVIN",[728.1474],3) // Gavin
	Continue()
END

IF
AreaCheck("FW3400")
Global("B!GustavExists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!GustavExists","GLOBAL",1)
	CreateCreature("B!GUSTAV",[3950.50],0) // Gustav
	Continue()
END

IF
AreaCheck("FW3400")
Global("B!BertramExists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!BertramExists","GLOBAL",1)
	CreateCreature("B!BERTRA",[3950.50],0) // Bertram
	Continue()
END

IF
AreaCheck("FW3400")
Global("B!Thug1Exists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!Thug1Exists","GLOBAL",1)
	CreateCreature("B!THUG1",[3950.50],0) // Plato
	Continue()
END

IF
AreaCheck("FW3400")
Global("B!Thug2Exists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!Thug2Exists","GLOBAL",1)
	CreateCreature("B!THUG2",[3950.50],0) // Crusher
	Continue()
END

IF
AreaCheck("FW3400")
Global("B!Thug3Exists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!Thug3Exists","GLOBAL",1)
	CreateCreature("B!THUG3",[3950.50],0) // Spike
	Continue()
END

IF
AreaCheck("FW3400")
Global("B!ValeriaExists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!ValeriaExists","GLOBAL",1)
	CreateCreature("B!VALER",[3950.50],0) // Valeria
	Continue()
END

IF
AreaCheck("FW3400")
Global("B!PennyExists","GLOBAL",0)
THEN
RESPONSE #100
	SetGlobal("B!PennyExists","GLOBAL",1)
	CreateCreature("B!PENNY",[3950.50],0) // Penny
	Continue()
END

 

The script runs, does everything, then loops back for a sceond pass... and on the second pass is locked into the Continue(), I expect. Could be that you might get more than one on faster/slower machines, etc. -- I would ask devSin for a hand (or rejoin that ongoing discussion).

 

For E_TOP, on area scripts that use OnCreation(), this Continue() stuff is important. On all the extend bottoms (and anyone who uses modern modding stuff and avoids OnCreation() like the plague (no relation to Horred!) using regular globals without Continue() has let us successfully play on BGT installs, where folks still use stuff like this... :)

 

P.S. there are a couple of posts on this in various workrooms, worth a search... i can't remeber where, but someone was talking about the same thing, either with Amber or another NPC, where they got all 3 conditions evaluated via continue, and got multiples)

Link to comment

Cool leveling thing... the Wait() needs to be longer. I don't know if there is a way of ceasing activity and stopping a player from immediately clicking on the character record, perhaps the INTERRUPT (we would have to go IESDP diving, but there is a set of things that make it possible without resorting tho a cutscene, I am sure).

 

I am going to leave the Doppelganger (the second spawn, I mean :) ) there, but I may see if I can edit out the Continue() stuff manually in my local copy, so I don't do a full reinstall.

 

You learn so much faster than I do, it's scary.

Link to comment

Ah! Thanks for the fix! I'll lose the Continue()'s. They're legacy code, anyway, from back when we were still thinking we had to extend the top to get the spawns in.

 

The doppleganger-Gavin isn't going to hurt anything, but at least you'll have one free resurrection if he gets chunked... AFAIK, if he uses the same DV, you could just rejoin him. I wonder if he'd flunk the CD_STATE_NOTVALID test, though, if his state is "dead as a post, dead"?

 

BTW: I might just drop the Wait(), and the DSH. If the PC doesn't notice the little gold +, and maybe the kalang!, they aren't going to notice the DSH. Still debating whether or not I want to point out that his weapon and spell selections are not made, though.

Link to comment

naaah; SPRITESDEAD will be set, and without editing the ressurection spell is the only way, I think. I will just pretend there is a new guard there, and as long as I don't talk to him, it is harmless.

 

This is your baby, so only your opinion matters on this (it is purely a style thing), but my bet is that people will notice the little gold "+". If they don't, then my usually genial and nice side goes "poof", and I join the bigg in decrying the necessity of pointing out the obvious to people who can't even take the time to look... kinda rude to pick up a new NPC, not read any documentation, not bother to see if he will be a good fit, and then not even look at him when you join him up - it seems the least one can do :)

 

ToB style NPCs and Level1 NPCs rely on the "+". The only reason (I think) DavidW put the DSH was that it was an oddity to see a L0 character, and folks needed an explanation as to what was happening.

 

My 2cp; I use Level0 NPCs, but will stop once Nythrun's code is finished. The DSH is very jarring - and I would prefer to have things remain "in-character", so to speak. I would prefer even the Reputation Bards to not do the DSH, and leave it just like *something* in the dialogue; a description, action, *sigh* kinda thing. Gorion's Burial uses Domi's approach to the Dynaheir end cuscene - it is used as narration. Unfortunately, these are just no other reliable ways short of direct SDNS and waylaying the party to remind folks that there is something new present.

Link to comment
BTW: I might just drop the Wait(), and the DSH. If the PC doesn't notice the little gold +, and maybe the kalang!, they aren't going to notice the DSH.

 

I'd like that. :) (But you knew I'd say that). Gavin is a very real NPC, with real personality traits, highs and lows, and I'd love him to be real from the very start. So I'd agree with cmorgan, though, as he said, it is ultimately your choice. A golden "+" does the job for me.

Link to comment

File this under "Not really a bug, and basically harmless" but I thought I'd mention it for posterity's sake ;) (OH, and I apologize if it's previously mentioned, but I'm on my way to bed so I'm posting this all quick-like).

(Ooooh, spoilers here for anyone who hasn't finished the romance)

 

 

I've only gotten through the first 2 Gavin LT's, and I decided to pick up Ajantis. Within 5 minutes he started a very long conversation with Gavin about our 'special bond' and whether Gavin's going to continue to be there for his daughter...all very late romance stuff. Since I've already been through the romance once it's more amusing than anything else (I call him "Ajantis the Seer") but I'm mentioning it anyway.

Link to comment
Guest Shieara

Okay, first of all I have been enjoying the mod. No major bugs so far, but here are a few minor things...

 

Upon first meeting Gavin right away he commented that there was a bounty on my head and that we should be careful. Well, the guy just joined my party two seconds ago and I am pretty sure I didn't give him permission to go through my backpack, so there is no way he would have known about the bounty. I'm not sure if this comment can trigger maybe upon the death of one of the assassins instead or what, but it might be something you want to look at because it sounds rather odd coming right away.

 

Another couple things. The first messenger for Gavin's quests showed up just as I was about to do the Nashkel mines, so I asked Gavin if he could wait before we went to the temple. He agreed. After we cleared the mines, we went back to the temple to talk to the head priest. However, there was no dialogue that wasn't there before, and nothing to indicate to a player that "Yes, killing Bassilus (sorry can't spell his name) is part of the Gavin quest line and the reason for that messanger)."

 

So I thought it was possibly a bug and not recognizing that I had talked to the messenger and was there to pick up his quest. I reloaded my save game from before I talked to the high priest, and decided I would wait for Gavin to prompt me about the quest. When he did, I was clearing out the Cloudpeak Mountains. I told Gavin to go ahead of me and he left the party. At that point I worked on clearing out the rest of the area and encountered the little "boy" who had lost his dog Rufie. I found the dog and finished exploring the area. Then I went to the temple and re-added Gavin to my party. Everything seemed fine at that point until a few seconds later when he said something along the lines of "<Charname> I don't think that child was human." Again, this seemed odd since he hadn't been in my party to witness me helping the kid find his dog, or their transformation into demons.

 

So anyways, nothing game-breaking here but I thought I would mention them in case you wanted to take a look at them.

Link to comment
Upon first meeting Gavin right away he commented that there was a bounty on my head and that we should be careful. Well, the guy just joined my party two seconds ago and I am pretty sure I didn't give him permission to go through my backpack,<snip>

You've got a bounty notice in your pack. In the message about v 1.1, ETA tomorrow, I address the inventory comments. The bounty notices are among the items he will no longer comment upon if he didn't have some interaction with the actor in question.

 

The first messenger for Gavin's quests showed up just as I was about to do the Nashkel mines, so I asked Gavin if he could wait before we went to the temple. He agreed. After we cleared the mines, we went back to the temple to talk to the head priest. However, there was no dialogue that wasn't there before, and nothing to indicate to a player that "Yes, killing Bassilus (sorry can't spell his name) is part of the Gavin quest line and the reason for that messanger)."
After his usual "Welcome to the temple" speech, This interjection is scripted:

INTERJECT_COPY_TRANS ~_KELDDA~ 0 BGavinKelddathBassilus
== ~_KELDDA~ IF ~!Dead("bassilus") InParty("B!GAVIN") InMyArea("B!GAVIN") !StateCheck("B!GAVIN",CD_STATE_NOTVALID) Global("B!GavinMessenger1","GLOBAL",2) GlobalGT("B!GavinBassilusQuest","GLOBAL",1)~
~Gavin, it is good to see that the messenger was able to find you. I had heard that you had taken up with a party of adventurers and hoped you might be able to assist the temple in the matter of Bassilus. If your party requires nothing, then let us speak of it.~
DO ~SetGlobal("B!GavinBassilusQuest","GLOBAL",4) SetGlobal("B!GavinMessenger1","GLOBAL",3)~
END

 

Gavin's interjections with Bassilus will reference the quest, but only if he was around to get the quest.

 

It seemed logical that his superior would rope him into helping out on other quests to do with the Song of the Morning temple, like the Bassilus quest, so he's got them. But as this quest is available in the vanilla BG, I didn't think it should get any extra journal comments or XP. I had thought about the business with the wyverns, since Ormlyr is worried about them, too, but decided that was Coran's pickup line, so he deserved to have that to himself.

 

As Mutamin and Gavin's third quest are not part of the regular temple quests, there are journal entries, special dialogue, and special rewards for them.

 

At that point I worked on clearing out the rest of the area and encountered the little "boy" who had lost his dog Rufie. I found the dog and finished exploring the area. Then I went to the temple and re-added Gavin to my party. Everything seemed fine at that point until a few seconds later when he said something along the lines of "<Charname> I don't think that child was human." Again, this seemed odd since he hadn't been in my party to witness me helping the kid find his dog, or their transformation into demons.
Which just goes to show that eventually, someone will stumble upon even the most unlikely combination of events.

 

He's already got an interjection for Albert for before the transformation. I'll add a check for that to his second comment.

Link to comment
File this under "Not really a bug, and basically harmless" but I thought I'd mention it for posterity's sake ;) (OH, and I apologize if it's previously mentioned, but I'm on my way to bed so I'm posting this all quick-like).

(Ooooh, spoilers here for anyone who hasn't finished the romance)

 

 

I've only gotten through the first 2 Gavin LT's, and I decided to pick up Ajantis. Within 5 minutes he started a very long conversation with Gavin about our 'special bond' and whether Gavin's going to continue to be there for his daughter...all very late romance stuff. Since I've already been through the romance once it's more amusing than anything else (I call him "Ajantis the Seer") but I'm mentioning it anyway.

 

Yeah, that one's fixed for version 1.1. Dummy went from that banter being a random banter call banter to having it scripted on a timer, and forgot to make one of the necessary changes.

 

But because of my own stupidity, this might cause a stutter when it is called in the script and nothing happens. So you might want to set a variable with the console

 

CLUAConsole:SetGlobal("B!GavinAjantis5","GLOBAL",3)

 

That's fixed for version 1.1.

Link to comment

Archived

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

×
×
  • Create New...