Jump to content
  • 0

What to do with Script Conflicts?


Question

Posted

Hi there STEP, I wanted to ask how to deal with script conflicts?

Currently the script is tif__010012da.pex

 

1st mod is Order My Items which edits the script like so

 

;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment

;NEXT FRAGMENT INDEX 2
Scriptname TIF__010012DA Extends TopicInfo Hidden
 
;BEGIN FRAGMENT Fragment_1
Function Fragment_1(ObjectReference akSpeakerRef)
Actor akSpeaker = akSpeakerRef as Actor
;BEGIN CODE
Form OrderedItem = Game.GetFormFromFile(0x0005AD93, "Skyrim.esm");
(GetOwningQuest() as OrderMyItems_QuestScript).PlayersOrder = OrderedItem;
;END CODE
EndFunction
;END FRAGMENT
 
;END FRAGMENT CODE - Do not edit anything between this and the begin comment

 

 

 

While the 2nd Mod Wheels of Lull change the script to this

 

;/ Decompiled by Champollion V1.0.0

Source   : TIF__010012DA.psc
Modified : 2014-06-12 13:35:24
Compiled : 2014-06-12 13:35:25
User     : Kevin
Computer : SVEN
/;
scriptName TIF__010012DA extends TopicInfo hidden
 
;-- Properties --------------------------------------
 
;-- Variables ---------------------------------------
 
;-- Functions ---------------------------------------
 
function Fragment_0(ObjectReference akSpeakerRef)
 
;actor ::temp0
;quest ::temp1
;dialoguefollowerscript ::temp2
;None ::NoneVar
 
; 000 : cast ::temp0 akSpeakerRef 
; 001 : assign akSpeaker ::temp0 
actor akSpeaker = akSpeakerRef as actor
; 002 : callmethod GetOwningQuest self ::temp1 
; 003 : cast ::temp2 ::temp1 
; 004 : callmethod FollowerFollow ::temp2 ::NoneVar 
(self.GetOwningQuest() as dialoguefollowerscript).FollowerFollow()
endFunction
 
; Skipped compiler generated GetState
 
; Skipped compiler generated GotoState

 

 

 

What should I do about this?

 

Thank you!

Recommended Posts

  • 0
Posted (edited)

Well if you want the function to do both things just paste the two lines from the first script and recompile:

Form OrderedItem = Game.GetFormFromFile(0x0005AD93, "Skyrim.esm");
(GetOwningQuest() as OrderMyItems_QuestScript).PlayersOrder = OrderedItem;

into the second script just ahead of endFunction:

(self.GetOwningQuest() as dialoguefollowerscript).FollowerFollow()
Form OrderedItem = Game.GetFormFromFile(0x0005AD93, "Skyrim.esm");
(GetOwningQuest() as OrderMyItems_QuestScript).PlayersOrder = OrderedItem;
endFunction

That way whichever mod calls the fragment both things will happen.  Or at least I'd have thought that would be the solution... [waits for the abuse]

Edited by dunc001
  • 0
Posted (edited)

Well if you want the function to do both things just paste the two lines from the first script and recompile:

Form OrderedItem = Game.GetFormFromFile(0x0005AD93, "Skyrim.esm");(GetOwningQuest() as OrderMyItems_QuestScript).PlayersOrder = OrderedItem;
into the second script just ahead of endFunction:
(self.GetOwningQuest() as dialoguefollowerscript).FollowerFollow()Form OrderedItem = Game.GetFormFromFile(0x0005AD93, "Skyrim.esm");(GetOwningQuest() as OrderMyItems_QuestScript).PlayersOrder = OrderedItem;endFunction
That way whichever mod calls the fragment both things will happen. Or at least I'd have thought that would be the solution... [waits for the abuse]
Shouldn't

 

Function Fragment_1(ObjectReference akSpeakerRef)Actor akSpeaker = akSpeakerRef as Actor
From the Order My Item copied as well since it is a different fragment? And where should it placed? Edited by reddvilzz
  • 0
Posted

Ah hadn't noticed that, so it's two distinct functions. Then I guess you could just add the complete function from script one to script two

Function Fragment_1(ObjectReference akSpeakerRef)
Actor akSpeaker = akSpeakerRef as Actor
Form OrderedItem = Game.GetFormFromFile(0x0005AD93, "Skyrim.esm");
(GetOwningQuest() as OrderMyItems_QuestScript).PlayersOrder = OrderedItem;
EndFunction

 That way I guess both Fragment_0 and Fragment_1 functions can be called independently of each other by the respective mods.  Anyone with actual knowledge please feel free to interject...

  • 0
Posted

Ah hadn't noticed that, so it's two distinct functions. Then I guess you could just add the complete function from script one to script two

Function Fragment_1(ObjectReference akSpeakerRef)
Actor akSpeaker = akSpeakerRef as Actor
Form OrderedItem = Game.GetFormFromFile(0x0005AD93, "Skyrim.esm");
(GetOwningQuest() as OrderMyItems_QuestScript).PlayersOrder = OrderedItem;
EndFunction

 That way I guess both Fragment_0 and Fragment_1 functions can be called independently of each other by the respective mods.  Anyone with actual knowledge please feel free to interject...

I'm not that great with the scripts, but adding both functions to into a single script should work. The game should only use the function that is being called by the respective mod. Ideally, this should be provided by one of the authors as a "patch".

  • 0
Posted

The mod is pretty inactive at least from the Order My Item part, which I think it is better for me to patch it myself rather than waiting if the modder will showed up or even make the patch.

 

Okay thank you everyone

  • 0
Posted

Yep, completely unrelated but obviously both being used. That's why I suggested just adding both functions to the same script fragment.  Then like Tech says whichever mod is calling it's function it will be found.

  • 0
Posted

Huh, those two snips do not look related at all.

Its probably a naming conflict

Could be naming conflict but since it is there I think merging those 2 scripts would be better or else one of them can't function as intended right?
  • 0
Posted

Correct.

 

If the two mods both call the a script of the same name, there are only two options. 1) Reconfigure one of the mods to use it's script using a different script name. 2) Combine the two scripts into one and allow both mods to call upon it independently.

  • 0
Posted (edited)

I mean... Merge plugins handles script fragments you could probably just have it renumber all forms but I definitely wouldn't do that to wheels of lull.

I've merged the Order My Item mod with some other mods and for Wheels of Lull I don't merged them.

So what are you suggesting hishy?

Edited by reddvilzz
  • 0
Posted (edited)

Okay I tried compiling the script and set it up like this on the StringCompile.bat

"D:\Steam\SteamApps\common\Skyrim\Papyrus Compiler\ScriptCompile.bat" %1 -f="TESV_Papyrus_Flags.flg" -i="D:\Steam\SteamApps\common\Skyrim\Data\Scripts\Source" -o="D:\Steam\SteamApps\common\Skyrim\Data\Scripts"
 
pause

and this on the run command of notepad++

"D:\Steam\SteamApps\common\Skyrim\Papyrus Compiler\ScriptCompile.bat" "$(FILE_NAME)" "$(CURRENT_DIRECTORY)"

The script location is here

C:\Users\Vague\Desktop\Skyrim Stuffs\Champollion-V1.0.1-x86\tif__010012da.psc

the command prompt keep showing this endlessly

 

C:\Program Files (x86)\Notepad++>"D:\Steam\SteamApps\common\Skyrim\Papyrus Compiler\ScriptCompile.bat" "tif__010012da.psc" -f="TESV_Papyrus_Flags.flg" -i="D:\Steam\SteamApps\common\Skyrim\Data\Scripts\Source" -o="D:\Steam\SteamApps\common\Skyrim\Data\Scripts"

 

Edited by reddvilzz
  • 0
Posted

Maybe pack it into a bsa, I read in a few places that files that have a form need to be in a bsa to avoid possible name conflicts.

In which case don't extract bsas if there is a valid reason.

 

Edit: wheels of lull is shipped with a bsa, don't extract it.

Bsas are significantly quicker in sse but are about the same in oldrim

  • 0
Posted

Maybe pack it into a bsa, I read in a few places that files that have a form need to be in a bsa to avoid possible name conflicts.

In which case don't extract bsas if there is a valid reason.

 

Edit: wheels of lull is shipped with a bsa, don't extract it.

Bsas are significantly quicker in sse but are about the same in oldrim

Will this solve the conflicts?

Even though the Wheels of Lull packed in bsa it still use the same script while in game right?

It's just a matter of priority.

 

At least this is what I thought on how skyrim works. Correct me if I'm wrong.

  • 0
Posted

Yeah, that doesn't sound right. The one with the highest priority will be used in game. If you're using WB, then the loose file will be higher priority and will be the one used. If you're using MO, MO will grab the file being provided by the mod lowest in the left pane and present that file to the game.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.