|
Post by PBJelly on Dec 29, 2020 12:45:30 GMT -5
Hello! I'm trying to create a duplicate of the odd job picker but it having it's own set of custom odd jobs, I was able to "duplicate" the picker but the EA odd jobs still show in it. Is it possible to create a new bucket to be listed on this tuning? (idk if I'm using the terms correctly) I am assuming this is the reason why it still shows the EA odd jobs. The Batuu missions also has its own bucket so I guess it is somehow hard coded?
|
|
|
Post by MizoreYukii on Dec 29, 2020 20:58:10 GMT -5
More than likely you can add your own buckets, much like you would with custom tags, but it requires scripting to avoid overriding. Note that there are two files involved, I noticed that the second one I found is for scheduled stuff and only applies to a few buckets, but you shouldn't need to add to it for regular buckets to work. The file is 03B33DDF!00000000!9F853D9F64B17368.drama_scheduler.drama_scheduler.Tuning.xml and if it you want to add to it for whatever reason, I recommend asking Triplis as he is currently making a module injector (like XML Injector), maybe he can add it to the to-do list. For the regular buckets though, you need to add to the list in file 03b33ddf!00000000!85cbdf0fea68bbb9.drama_scheduler.drama_enums.xml. I took a quick look and compared that file and the 03B33DDF!00000000!D89CB9186B79ACB7.tag.Tuning.xml file, they look similar and so this script should work similarly as well. I asked my friend who is more familiar with scripting and they said it should work too, so fingers crossed :P (also I asked already, these aren't able to be added to the module injector). Your script should look something like this. The "My_New_Bucket" is your new bucket name. Make it unique! Then hash it in the Hash Generator, grab the 32bit, convert to decimal and replace the number shown in the script. At least I assume 32bit, as that is needed for custom tags (64bit gives errors). Then take your new bucket, insert in your OddJobPicker like your picture, assign the bucket to your job files, and that should pretty much be it. Let me know if it doesn't work. from drama_scheduler.drama_enums import DramaNodeScoringBucket
def add_buckets(drama): with DramaNodeScoringBucket.make_mutable(): for dr, ama in drama.items(): DramaNodeScoringBucket._add_new_enum_value(dr, ama)
BUCKET_ELEMENTS = {'My_New_Bucket': 2758326949}
add_buckets(BUCKET_ELEMENTS) Edit: Updated this post for patch July 20th 2021 (1.77) changes.
|
|
|
Post by PBJelly on Dec 29, 2020 23:42:13 GMT -5
Thank you Mizore! I tested it and followed your instructions but the picker still wont show the custom odd job. I'm pretty sure I followed your instructions wrong but here is what I did with the script: I added PBJelly_NewBucket_CompetitionCenter_Novice to the oddjob_picker buckets and to the PickerDramaNode but nothing shows in-game I tried by manually adding the custom bucket to the 2 tunings you've shared and it showed in the picker when I tested it in-game so custom buckets do work, I don't know what part of the scripting I did wrong so I have to apologize with the silliness :D
|
|
|
Post by MizoreYukii on Dec 30, 2020 1:17:31 GMT -5
It's also possible I did something wrong, or maybe there's something else I missed. Did you try only adding to the 03B33DDF!00000000!625178BE42B181F1.drama_scheduler.drama_node.Tuning.xml and not doing both? So I know if just that file works or not. If it doesn't work with just that file, it's probably something else in the files that you cloned, since you cloned OddJobs and they use both files. Unfortunately this is the first time I've even looked at DramaNodes, but from at a quick glance in the TDESCs and EA's files, I think it's because your files don't have <T n="use_only_scheduled">False</T> while the Batuu ones do. So run a test with just the first file, and if it doesn't work try adding the schedule false while only overriding the first file. If it suddenly works, then we have our answer and you just need to see what works for you until Triplis adds the scheduler to the module.
|
|
|
Post by PBJelly on Dec 30, 2020 11:01:43 GMT -5
So I tested it with only overriding the 03B33DDF!00000000!625178BE42B181F1.drama_scheduler.drama_node and the odd job does not show (it needs both modules :( ) I looked at some pickerDramaNode_Freelancer_Batuu_ but I didn't see the <T n="use_only_scheduled">False</T> on it? I am supposed to put the <T n="use_only_scheduled">False</T> on the PBJelly:pickerDramaNode_OddJob_Wingman right?
Oh nvm I got it, the <T n="use_only_scheduled">False</T> was at the end of the oddJobPicker_Batuu_Missions_ (interaction tuning) I was looking at the batuu drama nodes XD
|
|
|
Post by PBJelly on Dec 30, 2020 12:09:10 GMT -5
Now I did another test with overriding 03B33DDF!00000000!625178BE42B181F1.drama_scheduler.drama_node and adding the "use_only_scheduled" to the oddjob_picker tuning and it worked, the custom odd job shows in-game. (Note: I still had the script that you gave in my mods folder)
I also did the same test but now I did not override both modules: 03B33DDF!00000000!625178BE42B181F1.drama_scheduler.drama_node 03B33DDF!00000000!9F853D9F64B17368.drama_scheduler.drama_scheduler
with the "use_only_scheduled" on the oddjob_picker, and the script you gave and the odd job shows in-game. The only con with this is that every time I open the oddjob picker in-game, the sim that offers the job will be changed each time instead of being persistent for the day. Not really a concern anyway so it's an irrelevant con. Thank you so much again Mizore, this was so much help for the mod I am trying to create. :D :D
|
|
|
Post by MizoreYukii on Dec 30, 2020 17:34:20 GMT -5
That means the script works, awesome! And also means that custom buckets and oddjobs/missions are possible. You're welcome! Hopefully Triplis can add the scheduler thing for you soon. As for the <T n="use_only_scheduled">False</T> you mentioned on Discord, the TDESC says "If checked, this picker will only consider drama nodes that have been scheduled by the drama scheduler service. This is usually the desired behavior except in special circumstances like debugging," and when you don't put it as False manually like I suggested, the game defaults to True. So the game is saying that it's only checking for buckets that are in the scheduler file when True, and is why it doesn't show up unless you add that bit to block it or add your bucket to both files. It's also why the Batuu missions seem to stay the same everyday while OddJobs will change, at least if I'm remembering Oddjobs right and reading the TDESC correctly. Hopefully that makes sense!
|
|
|
Post by PBJelly on Jan 4, 2021 18:57:22 GMT -5
Hi! I am facing another problem with this again XD. I want the odd jobs to appear on a particular day so I did a test but it doesn't seem to work. Changing the time_option tunable on the drama node only makes the job happen at a later date. For example, using the photo, if anything else was false except Friday, the custom odd job will start on Friday instead of it being occurring right after getting the job. That made me think that maybe adding a test will prevent the custom odd job from showing any day but it's not working in-game. I am assuming it has to do with the scheduler module that we have talked about above?
|
|
|
Post by MizoreYukii on Jan 4, 2021 23:12:23 GMT -5
That's my guess too. You could try including your override of that file and see if it suddenly works. If it does work then hopefully Triplis can get it added before you release.
|
|
|
Post by PBJelly on Jan 5, 2021 0:10:30 GMT -5
I also tried overriding both the modules (drama_node and drama_scheduler) and I still can't get the custom odd job to only show on a specific day. I am probably missing something here but my brain is aching trying to understand it. XD I will message again once I've seen noticeable changes by messing with the files. Thanks!
|
|
|
Post by PBJelly on Jan 5, 2021 10:43:49 GMT -5
I figured it out! I didn't have to override both modules, I just did not have the correct test tunable (?). I compared the drama nodes between the odd job and the batuu missions and I had to have the whole visibility test tunable (?) instead of it just being that one line (in red) xD
|
|