Isolating conflict between two companions, from same author.

Post » Sat Feb 19, 2011 9:16 am

I've been going crazy for days trying to figure out why Fast Travel (not becasue Fast Travel is important but becasue it's sometimes the first indicator of bad conflicts, imo) breaks, then was able to isolated it to two companion mods from the same author. Since I refuse to disable them, as they are too well done, I would like to isolate the problem, fix it and need help if possible. :)

The mods http://www.tesnexus.com/downloads/file.php?id=16251 and http://www.tesnexus.com/downloads/file.php?id=15200 (The Underdark Saga) are companions I would much like to keep, but alas they not only conflict with other mods, they conflict with each other. After much pain and suffering of trying to get at least a Green only conflicts with OBMM New Conflict Utility along with at least 100 other mods, they were STILL crashing. Then I realized the one thing that wasn't being anolyzed was their MOUNTS!

Sure enough first thing I found was an Edited HorsePC which had Different added Factions to each version and conflicting. So I deleted the edits to HorsePC, then added each Faction into the Factions List separately on each mount. (Btw each of their ESPs shows HorsePC as edited even though they are back to Default, is there any way to Reset a Statement (in this case an AI package) back to Default?) STILL didn't fix it.

Next I decided to try to remove the two scripts from each of the mounts, first I tried removing both Combat scripts (set to Default) and leaving the two main scripts, still crashed. Then I set the main script on each mount to Default and it WORK! Though there were a few small issues, like I have 4 companions now instead of two. ;)

So basically I'm too inexperienced to look at the two main mount scripts and could use some help finding out why these scripts break Fast Travel and possibly fixing them. Worst case I would just need these two scripts (or could make new ones) to make sure the mounts dismiss when going into towns or dungeons (heh) and still summon for the companions.

Saerileth mount Sillara
ScriptName A909SillaraScriptfloat fFollowTimer ref rEnemyBegin OnActivate	if IsActionRef Player == 1		Message "Only Saerileth can ride Sillara."	else		Activate	endifEndBegin GameMode	if SaeriRef.IsRidingHorse == 1		set fFollowTimer to 84.0		return	endif	if GetInCell A909SaeriHoldingCell == 1 || GetUnconscious == 1		return	endif	if isInCombat == 1		set rEnemy to GetCombatTarget		if ((SaeriRef.getShouldAttack rEnemy <= 0) && (rEnemy.getShouldAttack SaeriRef <= 0)) || (GetRandomPercent < 5)			StopCombat		else			return		endif	endif	if fFollowTimer > 0.0		set fFollowTimer to fFollowTimer - GetSecondsPassed	endif	if SaeriRef.GetAttacked == 1 && GetDistance SaeriRef < 2000		set rEnemy to SaeriRef.GetCombatTarget		if SaeriRef.GetDistance rEnemy < 110			set fFollowTimer to (fFollowTimer + 90.0) * 0.5    			startCombat rEnemy 		endif	elseif fFollowTimer <= 0.0 || GetInWorldSpace Tamriel == 0		RemoveScriptPackage		moveto SaeriHoldMarker 500, 500, 500	elseif GetRandomPercent < 5		PickIdle	endifEnd



Viconia mount Ultrin
ScriptName prc1UltrinScriptfloat fFollowTimer ref rEnemyBegin OnActivate	if IsActionRef Player == 1		Message "Only Viconia can ride Ultrin."	else		Activate	endifEndBegin GameMode	if ViconiaRef.IsRidingHorse == 1		set fFollowTimer to 84.0		return	endif	if GetInCell A909ViconiaHoldingCell == 1 || GetUnconscious == 1		return	endif	if isInCombat == 1		set rEnemy to GetCombatTarget		if ((ViconiaRef.getShouldAttack rEnemy <= 0) && (rEnemy.getShouldAttack ViconiaRef <= 0)) || (GetRandomPercent < 5)			StopCombat		else			return		endif	endif	if fFollowTimer > 0.0		set fFollowTimer to fFollowTimer - GetSecondsPassed	endif	if ViconiaRef.GetAttacked == 1 && GetDistance ViconiaRef < 2000		set rEnemy to ViconiaRef.GetCombatTarget		if ViconiaRef.GetDistance rEnemy < 110			set fFollowTimer to (fFollowTimer + 90.0) * 0.5    			startCombat rEnemy 		endif	elseif fFollowTimer <= 0.0 || GetInWorldSpace Tamriel == 0		RemoveScriptPackage		moveto ViconiaHoldMarker 500, 500, 500	elseif GetRandomPercent < 5		PickIdle	endifEnd


I couldn't find the Spoiler tags to hide the scripts.


Thanks for any help. :confused:


Edit: Is it the fFollowTimer, if that means 84 seconds, seems damn long?

Edit Edit: The two custom AI packages Wander and Follow for the mounts seem to be the same, might also be useful.
Wander Package

Conditions
GetRandomPercent None <= 50 and

Location
Near Current Location Radius 3000


Follow Package

Conditions
GetInCell HoldingCell == 0 and
GetInWorldSpace WorldSpaceTamriel == 1 and

Target
Cell and Ref

Distance 500
User avatar
Mrs shelly Sugarplum
 
Posts: 3440
Joined: Thu Jun 15, 2006 2:16 am

Post » Fri Feb 18, 2011 9:19 pm

Any suggestions or have I not provided enough information or maybe asked the question in a wrong way?

Currently I have both of their mounts disabled, e.g no script selected. They still try to cast when I mount, Fast Travel will work now and game seems more stable. If these scripts look ok, could I try setting Wander and Follow packages to Default Mount packages?


I really not sure what to try, after isolating it down to the Mounts.


Thanks for any help.
User avatar
Syaza Ramali
 
Posts: 3466
Joined: Wed Jan 24, 2007 10:46 am


Return to IV - Oblivion