Jump to content

WhiteWolf424242

Premium Member
  • Posts

    130
  • Joined

  • Last visited

Everything posted by WhiteWolf424242

  1. Ahh, okay, that's the problem then. The real-life other-mod didn't come with source files. I don't suppose that just adding a dummy empty ExampleScript.psc to my source files could be a workaround for the issue? It's the compiled script that matters after all, does it matter what's in the source for the time being? EDIT: nope, that didn't work. CK still says unknown type. :/ EDIT2: Okay, just had to add at least a proper Scriptname to the dummy file. My script complies now, on to see if this actually works :smile: EDIT3: Unfortunately, to access the actual quest properties, it indeed looks like that the proper sources need to be there. Without that it seems that the CK doesn't find the properties. EDIT4: Endorsement given to Champollion papyrus decomplier. It works now :)
  2. Maybe you could place a trigger to the location where the npc is going, enable it at stage 40. It should have a script attached to it that's something like this: Quest Property YourQuest Auto Actor Property NPC Auto Event OnTriggerEnter(ObjectReference AkActivator) If(game.getPlayer()==AkActivator && YourQuest.GetStage() == 40) YourQuest.SetStage(50) NPC.EvaluatePackage() Endif EndEvent The condition for the forcegreet package should be for the quest to be at stage 50 and make sure that it's on top of the AI stack.
  3. Hello, In my mod, I'm trying to access the quest-variables (properties) of a quest from another mod. So for example let's say that Example.esp contains an ExampleQuest, and an ExampleScript is attached to this quest. I can get to the point of getting the quest from the other mod: Scriptname myModsScript ...stuff function somefunction() Quest variablesQuest = Game.GetFormFromFile(0x000557b1, "Example.esp") as Quest endfunction where the hexadecimal form is the formID of ExampleQuest. However, I want my script to access the properties of ExampleScript. And when I'd add this ExampleScript Property script Auto This won't compile. No matter how I try to introduce it, the compiler always says that ExampleScript is not a known type. I'm guessing the problem may be that ExampleScript is not attached to any of the objects in my mod's esp, and therefore it's an unknown type? Is this possible at all, if yes, what am I doing wrong, how else should I do it?
  4. @NexusComa2: Thanks, yes, and that's pretty much resolved. The issue left is getting the voicetype to show in the CreationKit for creating voiced dialogues. Fortunately: @dylbill: YUSSSS :smile: With some added tweaks, the FormList trick finally works, and now everything is in place. Thanks so for much for helping out! :smile: :smile: I'll leave behind the refined final recipe for any other unfortunate soul who's looking for the same answer: Thanks again to everyone :smile:
  5. @ReDragon2013: As I feared, this code doesn't work. The dialogue is not there. I suspect that it's because the script only makes its own variables equal to each other, but for the CK, though the editorIDs are the same, the formIDs of the VoiceTypes are still different. Therefore when I write (GetIsVoiceType == vtFollower0X), it won't activate for the follower. The CK is looking for vtFollower0X with my esp's formID, but the followers voicetype's formID is different. @dylbill: Now that sounds plausible, that will certainly get the dialogue to appear, but how do I solve the voicetype issue? I'd like to make the dialogues voiced, for which the CK needs to be able to indentify the npc's voicetype. According to the wiki, the conditions which allow the CK to do that are: Now I wonder if placing the npc into a formlist and then using IsInList, or placing the npc into an alias and then using GetIsAliasRef are viable alternatives. I'll try soon. EDIT: Placing the NPC into an alias doesn't work either. Dialogue is OK, but as you can see, there's no way to record voices for it, since the CK cannot find a voicetype for it:
  6. Hmm, so this still essentially does what I wrote in the code block 3 posts above: Use the "GetFormFromFile as VoiceType" to make the VoiceType property of my mod's esp equal to the one from the other mod. But the thing I worried there about is, that wouldn't this just make only the script property equal to it? Will the CK too actually then recognize this as that voicetype? This is why I discarded this idea. You're saying it would still work? Oh whatever, I guess only one way to find out - I'll test your code soon, thanks :)
  7. But that would apply the dialogue to all NPCs, if said mod is installed. I want to apply the dialogues only to the one follower that is actually contained by the mod we're checking for (and also be able to record/copy voices for him. That means that the CK must recognize the voicetype). What is the condition for that? Since I can't just use GetIsID or GetIsVoiceType out of the box, because the follower's id and voicetype are not records of my mod.
  8. Sounds good, thanks :smile: My mod already uses skse, requiring it is no problem. So how would I then activate the dialogues? Let's say that FollowerExample.esp contains a Follower with a unique FollowerVoiceType. What's the correct condition to the dialogues with this follower? I guess that in the <if mod is present> section I can then use GetFormFromFile to save the Follower's ID to a global, and then I could use Subject.GetIsID() == [ticked Use-Global-box] the previously set global? I'm not sure if this is correct. Would the CK find the voicetype so that voice dialogue could be saved for it? EDIT: Or maybe I could add FollowerVoiceType to Mod.esp, as a new record, and just use that as the condition for the dialogues. Then to make it work, use the <if mod is present> section to somehow make this voicetype "equal" to the voicetype in FollowerExample.esp? I don't know how this would be possible though. I don't suppose that just Voicetype Property FollowerVoiceType Auto ; set to the voicetype in CK If Game.GetModByName("FollowerExample.esp") != 255 FollowerVoiceType = GetFormFromFile( <checked formID of the Voicetype from other mod>, FollowerExample.esp) as Voicetype EndIf would work? EDIT2 Nah, this would surely just make the script property equal to the other one, but not the actual forms in the CK. I'm out of ideas :(
  9. Hello, I'm trying to add optional content (player dialogues) to one of my mods (call it Mod.esp), that is only visible if another mod is also installed. (Say FollowerExample.esp). I want to do this: - without making FollowerExample.esp a master/requirement for my Mod.esp. It should be optional: if the user has it installed then it's there, if not, then not. - Without making a dedicated 3rd patch-plugin. I know that it would be possible to make a patch esp that loads up my Mod.esp and FollowerExample.esp, and then adds the dialogues there, but I want to save everyone a plugin space - so no patch plugin. I certainly know that this is definitely possible - many mods do that: Vilja does this with Inigo, and Lucien does this with a lot of other followers: there's dialogues with them if they are installed, but they are not a requirement, and also there's no additional esp's doing this. So my question is, how do you achieve that? Because what I had in mind doesn't really work. In order to add dialogue to the follower, I figured that I definitely need to have at least their Voicetype as a record in my mod. However, this still can't be done without making FollowerExample.esp a master for Mod.esp. (at least this is what Tes5Edit tells me when I want to copy it as override. If I copy it as a new record instead, then the FormID's won't match, so it won't work.) If anyone could help me out with this, that would greatly appreciated :)
  10. After a bit of testing around, I think I'll stick with DLC1LibraryBookList. I've duplicated the list and added a few more select books, and I'm adding their contents to the gift lifts on script init. Yes, this won't enable books added by mods, but I just find that the other way passes too many books - it includes journals, quest books, black books, stuff that just generally doesn't came across as a nice gift to me. The DLC1LibraryBookList (+my select additions) only contains library books that would make a nice gift. I don't think that not including mod-added books is a problem, for a similar reason, since those books usually serve the mod's purpose and fall in the someone's journal or quest book category, which I actually want to avoid. Thanks for all your help :)
  11. Sounds good, I hope I can try that too soon. I assume this script is attached to the player alias, right?
  12. The mod already uses SKSE, that's not a problem at all. It'd be cool to make it work :smile: Apparently my knowledge is lacking quite a bit here (that's why I gave up so easily in my previous post, I didn't know this was possible.). So allow me a quick recap: The player can give the gifts to any NPC. The actual objects eligible as gifts depend on the NPC's class. I'm not happy with the vanilla Gift* formlists, so I made my own, and would like to include books for classes that would be happy if a book was gifted to them (let's stick to Priest for the example). The book is the player's inventory, intended to be gifted to the NPC. So what you're saying is that something like this could work? Class Property Priest Auto Formlist Property CustomPriestGiftList Auto ; In the CK, containing the basic things. Keyword Property Book Auto Function GiftingFunctionCalledByMod(Actor akTarget) ; conditions for checking if actor is a priest and other necessary stuff ; add books to formlist: Int M = Game.GetPlayer().GetNumItems() while M > 0 M -= 1 Form CurrentForm = Game.GetPlayer().GetNthForm(M) If CurrentForm as Book If CurrentForm.GetWeight() >= 1 CustomPriestGiftList.AddForm(CurrentForm) Endif Endif Endwhile int points = akTarget.ShowGiftMenu(true, CustomPriestGiftList) EndFunction This would be supercool. However, does the Formlist then stay modified forever? Because the player can just decide to give a gift to this NPC again. Based on SKSE's documentation, if a form is already a member of the formlist, calling AddForm on it won't do anything, so I guess it's safe to rely on this functionality, and there's no need to bother with checking if it's been already added or not? EDIT: So Book is not a Keyword, but it is a type, so that property is not necessary. Otherwise, this does indeed work, but it's soooo terribly slow. For my character with 300+ items in its inventory, this loop takes over 10 seconds. That delay is simply too long to be tolerated here :sad: Is there any way to better optimize this code? EDIT2: I've found a formlist in the CK called DLC1LibraryBookList. This seems to contain most of the books that are actually books, up to Dawnguard (224 in total). Yay, finally that's well close enough :) I'm using the above code in an OnInit() event to add the contents of this list to my formlists, and now it seems to work fine. There certainly are books that are missing, but it's close enough for me. This way also makes sure that books like the Black Books don't show up in the gift menu, which is a plus for this solution. Unless there's a way to optimize the first approach, I'll stick with this way. Thanks for your help :)
  13. I was afraid so. I don't think GetWeight can be applied here, the Keywords are included into a Formlist that is then passed into ShowGiftMenu. I guess I'll just cut books as a whole, not wanting notes is a stronger condition than wanting actual books.
  14. Hello, Is there a Keyword that identifies only hardback books in Skyrim? So far I only found the VendorItemBook, but my problem is that it includes notes and letters. I'd like to create a Formlist that includes hardcover books in the game, but not letters. Is this possible somehow? Thanks
  15. Right, it's this one: I'm pretty sure that earlier that was game-color as well (found an older screenshot of a site):
  16. Ah, yes, one more thing - the Upload menu's border on the top right seems affected too: it retains its yellow color regardless of the selected game. It functions correctly though, and leads to an upload to the selected game, it's just the color that's missing. Would you like me to open a github issue? EDIT - I see the author's border is now working, thanks for the quick fix :)
  17. Hello, I noticed today, that the previous blue highlight border of a mod's author's posts, is now gone. Author's posts now appear the same as any user's posts. Was this an intentional change, or is this something that should be reported as a bug? I checked the forum's changelogs, I didn't find a mention of such a change. I checked with Firefox 68.8.0esr(64 bit), and also with Brave from android, the border is gone in both browsers. Cheers
  18. So the AllowPCDialogue way doesn't do anything. The TapKey however works just fine :smile: It's not a problem for the mod, as it already requires SkyUI, which implies an installed SKSE anyway. My only nitpicking left is that while a dialogue flagged as goodbye will just simply end, a dialogue force ended by tapkey will instead still get the additional "Goodbye" misc line from the NPC after ending, which is not exactly ideal. The reason is that there is an idle animation playing at the end, and the follower butting in with "Lead on/Let's get going/etc" during it is not what I aimed for. I guess it's only up to me to figure out if this bothers me enough to instead do it the arduous way and copy each dialogue to proper flagged and non-flagged pairs to fix this, or just settle for this easy compromise. Thanks for your help! EDIT: After some further testing: if Input.TapKey(1) is called from the end fragment, the NPC will say their goodbye misc line, but if called from the begin fragment, they won't (but they do say their dialogue lines properly). I think I can actually exploit this to get rid of the goodbye misc line. Cool :)
  19. Thanks, it sounds like something worth testing. I don't yet see however how I should reable it after the dialogue ended, since I don't want to make the follower uninteractable :D Maybe a good combination of disallow dialogue -> well timed Utility.Wait -> reallow dialoge can do the trick. I'll check what this does.
  20. Hello, Is there a way to force a dialogue to end through scripts? I want to create dialogue topics that will only be goodbye dialogues if a certain condition (checkable in scripts) is fulfilled, and if not, then it's not goodbye. Therefore I DO NOT want to flag the topic as 'goodbye', and my question is, is there a way to interrupt the dialogue, and force the goodbye through the end fragment script? (after certain conditions are checked). The only other way I see is to make 2 instances of all these topics, one flagged as goodbye and another as not, and then use conditions to filter on which is shown to the player. Since I'd have to manually copy the voice lines for all of these, I'd really like to avoid this solution.
  21. And it's still awesome. The vanilla script didn't work for me at all, and I've been looking for a solution for hours now. But this script works flawlessly (I'm not using the BlockActivation, it's just for a dagger "stabbed" into a desk.) Thanks for sharing this all that time ago :laugh:
  22. Hello everyone, How do you give a custom-voiced NPC an "end of combat" dialogue? By that I mean the "Cleared out I guess." comments that vanilla voiced NPC's have. In the quests' misc tab, I didn't find such an option for misc dialogue. What is the best way to do this? Thank you for your help EDITED (2020.08.08.): If someone else finds this topic wondering about the same thing - it's in the Detection tab of the Quest tab, use the CombatToNormal topic for this line of dialogue.
  23. Hello everyone, I have a few questions regarding the Creation Kit and quests. My knowledge currently goes so far that I can create a small "Billy Bob's Great Adventure", namely I followed a great youtube tutorial on the very basics of creating a new quest with placing NPCs, creating dialogues, going through stages, completing objectives, and the necessary small scripts and such. However, I don't want to create a new quest from scratch, I want to mod a vanilla one, for starters, the DB10 "Death Incarnate" from the Dark Brotherhood questline. And of course, in the real word a lot of things seem work differently than in the beginner's "Billy Bob" example, so my first question is: how can I find the points where the quest stages propagate, in the vanilla scripts? To be more precise: I want to fork away from vanilla, and start my own stages from stage 60. So I want to find where the vanilla game propagates the quest to stage 60, so that I can modify it by including a couple of extra filters, and if those are true, then instead of going to vanilla 60, it would go to my 61, which is already my alternate story for this quest. The problem is, I can't find where this happens. The objective for stage 50 is to "Embrace the Night Mother", but I can't find the script that handles the objective completed part here. Namely: I can't find SetStage(60) call anywhere. How can I find this? (EDIT: I've also looked through Data/Scrips/Source/DB10 (*) .psc scripts, with no luck). Here is an even longer explanation with full details of what I want with all of this: Thank you for your kind help EDITED (2020.08.08) If by some miracle someone else finds this topic wondering about the same thing - it's in the Scene Data of the scene where the Night Mother tells you to speak with Astrid, the end fragment sets the stage to 60.
×
×
  • Create New...