reddvilzz Posted November 9, 2016 Posted November 9, 2016 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 2Scriptname TIF__010012DA Extends TopicInfo Hidden ;BEGIN FRAGMENT Fragment_1Function Fragment_1(ObjectReference akSpeakerRef)Actor akSpeaker = akSpeakerRef as Actor;BEGIN CODEForm OrderedItem = Game.GetFormFromFile(0x0005AD93, "Skyrim.esm");(GetOwningQuest() as OrderMyItems_QuestScript).PlayersOrder = OrderedItem;;END CODEEndFunction;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.0Source : TIF__010012DA.pscModified : 2014-06-12 13:35:24Compiled : 2014-06-12 13:35:25User : KevinComputer : 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!
0 dunc001 Posted November 9, 2016 Posted November 9, 2016 (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; endFunctionThat 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 November 9, 2016 by dunc001
0 reddvilzz Posted November 9, 2016 Author Posted November 9, 2016 (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;endFunctionThat 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 ActorFrom the Order My Item copied as well since it is a different fragment? And where should it placed? Edited November 9, 2016 by reddvilzz
0 dunc001 Posted November 9, 2016 Posted November 9, 2016 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 TechAngel85 Posted November 9, 2016 Posted November 9, 2016 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 reddvilzz Posted November 10, 2016 Author Posted November 10, 2016 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 hishutup Posted November 10, 2016 Posted November 10, 2016 Huh, those two snips do not look related at all.Its probably a naming conflict
0 dunc001 Posted November 10, 2016 Posted November 10, 2016 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 reddvilzz Posted November 13, 2016 Author Posted November 13, 2016 Huh, those two snips do not look related at all.Its probably a naming conflictCould 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 TechAngel85 Posted November 13, 2016 Posted November 13, 2016 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 hishutup Posted November 13, 2016 Posted November 13, 2016 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.
0 reddvilzz Posted November 14, 2016 Author Posted November 14, 2016 (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 November 14, 2016 by reddvilzz
0 reddvilzz Posted November 14, 2016 Author Posted November 14, 2016 (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" pauseand 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.pscthe 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 November 14, 2016 by reddvilzz
0 hishutup Posted November 14, 2016 Posted November 14, 2016 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 reddvilzz Posted November 15, 2016 Author Posted November 15, 2016 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 oldrimWill 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 TechAngel85 Posted November 15, 2016 Posted November 15, 2016 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.
Question
reddvilzz
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
While the 2nd Mod Wheels of Lull change the script to this
;/ Decompiled by Champollion V1.0.0
What should I do about this?
Thank you!
16 answers to this question
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now