Jump to content

ArronDominion

Premium Member
  • Posts

    250
  • Joined

  • Last visited

Everything posted by ArronDominion

  1. You do not need to place your SoundMarker in the cell. With the SoundMarker in the properties tab (although I have run into issues with the property not adding itself to the fragment, which is why I posted a Quest script method), it will automatically go to your speaking NPC when you call to play it from the speaking NPC.
  2. To answer your original question of playing a sound WITHOUT sound markers or triggers, the answer is no. The Sound property requires a Sound marker to set as the Sound property. Thus as an example NPCTalk01SoundProperty must have a NPCTalk01Sound sound marker before you can use NPCTalk01SoundProperty.Play(akSpeaker). If you are running this in dialogue, what you could do is have your Quest script contain the function with the Sound property. Below is a fragment to explain what you need to add in the Quest script: In your Dialogue fragment block, you will want something like this: Hope this helps you working around annoying DialogueFragment issues for the method you want to play the sound.
  3. So an example I wrote out to show you the thought process (feel free to use the contents and experiment from there):
  4. There are several things you will want: Have some sort of random function RandomInt or RandomFloat (I lean on RandomFloat so you can use percentages like you describe, since 80% = 0.8, so you would be checking if it is above 80%, then spawn). The skeever probably needs an Actor script attached to it (so it propagates to all Skeevers you insert into The Ragged Flaggon). When you say 0-10 mins, are you talking about in-game time or in real time? If you want game time, you will want OnUpdateGameTime and RegisterForSingleUpdateGameTime, otherwise you will want OnUpdate and RegisterForSingleUpdate. Whichever method you choose, be sure to call the Register function both in the Update event and in the event you use to start the update. When a rat is 'spawned'(enabled), I believe you don't want to Register for another update (funky behavior might happen). An event you will want to attach to this script is OnDeath. Within the event you will want to Disable the rat, Resurrect the rat, and register for an update (based on how you are doing it) Hope this helps you get on the right track.
  5. Definitely a step in the wrong direction (sorry about that). Looking in the creation kit, it looks like the value of the enchanted items are listed with the same price as the regular versions of the item, regardless of item type (so an object reference will not help get around that issue). I would experiment in game with the items with their various enchantments and work backwards to come up with a formula on enchanted items where the price would be (yay algebra?): base (+ or *) enchOffset = actual price
  6. Forgive me if you have already tried this, but have you tried casting the form as an objectreference, in a similar way that you casted it as a Weapon/Armor?
  7. First question, do you have the Creation Kit installed currently (it helps for reverse engineering what sound goes to what)? Typically the up and down refers to when the item is picked up versus when the item is removed. Not entirely sure since I haven't looked at potion sounds, but I believe drinking a potion counts as removing it. Bethesda loves reusing sound assets for similar items. In order to replace the sounds individually for those items that share sounds, will need to open the Creation Kit to replace the sound (this will become a mod compatibility nightmare though just to warn). For repackaging the SEs, make sure to do the following: -Have the sounds in their right location with the Data folder (just like you saw it in the BSA) -Go to your root Skyrim folder (where you can see Data folder amongst other folders) -Open a program called Archive.exe -Click the Sounds checkbox, and any other assets that go with your .esp -Drag the sound files into the big white space (the files will start showing up, and updates when you add something new to it) -Once you are finished, go click File -Then click Save As -Then you type out your .esp name and add a .bsa instead. Example, for my More Redguards mod, I called it ajd_moreredguards.bsa -Click save -Find the bsa where you saved it and add it to your Data folder -You are now ready to upload to the Steam Workshop (if you are) -Extra step if uploading to Nexus, place your .esp and .bsa in a .zip before using the File Upload process on Nexus.
  8. I decided to bypass the issue (still have no clue why it is thrashing at the changes, and not giving the fragments the reference aliases in the case of the newer aliases to the old fragments, and any aliases to the new fragments). Here is the resulting function I decided to use instead: ;This function is designed to replace the current MoveCompanion script with numeric input instead of ReferenceAlias input Function MoveCompanionInt(Actor Companion, Int Choice) ;Function puts the player companion in the correct alias to sandbox in the appropriate house ;Clear all the other house aliases before setting the new one ;Your solitude house If SolitudeHouse SolitudeHouse.Clear() EndIf ;Your windhelm house If WindhelmHouse WindhelmHouse.Clear() EndIf ;Your markarth house If MarkarthHouse MarkarthHouse.Clear() EndIf ;Your riften house If RiftenHouse RiftenHouse.Clear() EndIf ;Your whiterun house If WhiterunHouse WhiterunHouse.Clear() EndIf ;Sniffs follower package If FollowHouse FollowHouse.Clear() EndIf ;The Bannered Mare If WhiterunBarHouse WhiterunBarHouse.Clear() EndIf ;Sniffs stay here package If StayHereHouse StayHereHouse.Clear() EndIf ;Falkreath Lakeview house If BYOHLakeviewHouse BYOHLakeviewHouse.Clear() EndIf ;Morthal Windstad house If BYOHWindstadHouse BYOHWindstadHouse.Clear() EndIf ;Dawnstar Heljarchen house If BYOHHeljarchenHouse BYOHHeljarchenHouse.Clear() EndIf ;Raven Rock Severin House If DLC2SeverinHouse DLC2SeverinHouse.Clear() EndIf ;Your custom house If CustomHouse CustomHouse.Clear() EndIf ;;;;;;;;;;;;;;;;;;;;;;; ;Choice logic ;0 - Solitude ;1 - Windhelm ;2 - Markarth ;3 - Riften ;4 - Whiterun ;5 - Follow ;6 - Bannered Mare ;7 - Stay Here ;8 - Lakeview ;9 - Windstad ;10 - Heljarchen ;11 - Severin ;12 - Custom ;;;;;;;;;;;;;;;;;;;;;;; if Choice == 0 SolitudeHouse.ForceRefTo(Companion) ElseIf Choice == 1 WindhelmHouse.ForceRefTo(Companion) ElseIf Choice == 2 MarkarthHouse.ForceRefTo(Companion) ElseIf Choice == 3 RiftenHouse.ForceRefTo(Companion) ElseIf Choice == 4 WhiterunHouse.ForceRefTo(Companion) ElseIf Choice == 5 FollowHouse.ForceRefTo(Companion) ElseIf Choice == 6 WhiterunBarHouse.ForceRefTo(Companion) ElseIf Choice == 7 StayHereHouse.ForceRefTo(Companion) ElseIf Choice == 8 BYOHLakeviewHouse.ForceRefTo(Companion) ElseIf Choice == 9 BYOHWindstadHouse.ForceRefTo(Companion) ElseIf Choice == 10 BYOHHeljarchenHouse.ForceRefTo(Companion) ElseIf Choice == 11 DLC2SeverinHouse.ForceRefTo(Companion) Else CustomHouse.ForceRefTo(Companion) EndIf EndFunction I can move forward on the changes to the mod. I wish I understood what was going on in the original form of the function (did the Creation Kit thrash because the mod had cached data from its release that my system did not have anymore due to the cloud sync bug, or did I goof somewhere).
  9. So I recently decided to incorporate the Hearthfire content, Dragonborn content, and the ability to set a custom house for Sniffs the Skooma Bear. (I am also going to reduce the volume of Sniffs, but that is not why I am here) I have run into an issue of the Dialogue fragments not updating properly to reflect the changes in the quest script (haven't fooled around with dialogue scripts too much outside of basics, so it might be something stupid on my part). So the original quest script (should look somewhat similar to the MarriageQuestMoveHouseScript [prob the wrong name, but you will get the idea], this is an old script from when I was newer to modding): Scriptname AJDCompanionHouseScript extends Quest ReferenceAlias Property SolitudeHouse Auto ReferenceAlias Property WindhelmHouse Auto ReferenceAlias Property MarkarthHouse Auto ReferenceAlias Property RiftenHouse Auto ReferenceAlias Property WhiterunHouse Auto ReferenceAlias Property SpouseHouse Auto ReferenceAlias Property WhiterunBarReference Auto ReferenceAlias Property WhiterunBarHouse Auto ReferenceAlias Property StayHereHouse Auto Function MoveCompanion (Actor Companion, ReferenceAlias NewHouse) ;Function puts the player companion in the correct alias to sandbox in the appropriate house ;Clear all the other house aliases before setting the new one If SolitudeHouse SolitudeHouse.Clear() EndIf If WindhelmHouse WindhelmHouse.Clear() EndIf If MarkarthHouse MarkarthHouse.Clear() EndIf If RiftenHouse RiftenHouse.Clear() EndIf If WhiterunHouse WhiterunHouse.Clear() EndIf If FollowHouse FollowHouse.Clear() EndIf If WhiterunBarHouse WhiterunBarHouse.Clear() EndIf If StayHereHouse StayHereHouse.Clear() EndIf NewHouse.ForceRefTo(Companion) EndFunction Function SpouseShop (Actor Spouse) ;Function checks to see if the player was a vendor before, if not, make them a MiscVendor EndFunction ReferenceAlias Property FollowHouse Auto Here is the new iteration of the script: Scriptname AJDCompanionHouseScript extends Quest ReferenceAlias Property SolitudeHouse Auto ReferenceAlias Property WindhelmHouse Auto ReferenceAlias Property MarkarthHouse Auto ReferenceAlias Property RiftenHouse Auto ReferenceAlias Property WhiterunHouse Auto ReferenceAlias Property SpouseHouse Auto ReferenceAlias Property WhiterunBarReference Auto ReferenceAlias Property WhiterunBarHouse Auto ReferenceAlias Property StayHereHouse Auto Function MoveCompanion (Actor Companion, ReferenceAlias NewHouse) ;Function puts the player companion in the correct alias to sandbox in the appropriate house ;Clear all the other house aliases before setting the new one ;Your solitude house If SolitudeHouse SolitudeHouse.Clear() EndIf ;Your windhelm house If WindhelmHouse WindhelmHouse.Clear() EndIf ;Your markarth house If MarkarthHouse MarkarthHouse.Clear() EndIf ;Your riften house If RiftenHouse RiftenHouse.Clear() EndIf ;Your whiterun house If WhiterunHouse WhiterunHouse.Clear() EndIf ;Sniffs follower package If FollowHouse FollowHouse.Clear() EndIf ;The Bannered Mare If WhiterunBarHouse WhiterunBarHouse.Clear() EndIf ;Sniffs stay here package If StayHereHouse StayHereHouse.Clear() EndIf ;Falkreath Lakeview house If BYOHLakeviewHouse BYOHLakeviewHouse.Clear() EndIf ;Morthal Windstad house If BYOHWindstadHouse BYOHWindstadHouse.Clear() EndIf ;Dawnstar Heljarchen house If BYOHHeljarchenHouse BYOHHeljarchenHouse.Clear() EndIf ;Raven Rock Severin House If DLC2SeverinHouse DLC2SeverinHouse.Clear() EndIf ;Your custom house If CustomHouse CustomHouse.Clear() EndIf NewHouse.ForceRefTo(Companion) EndFunction ;This function is designed to replace the current location of the custom house ;WARNING Only one custom house at a time ;2nd WARNING You might lose Sniffs if the custom house is removed while he is inside Function MoveMarker() AJDSkoomaBearCustomHouseMarker.MoveTo(AJDSniffs) EndFunction Function SpouseShop (Actor Spouse) ;Function checks to see if the player was a vendor before, if not, make them a MiscVendor EndFunction ReferenceAlias Property FollowHouse Auto ReferenceAlias Property BYOHLakeviewHouse Auto ReferenceAlias Property BYOHHeljarchenHouse Auto ReferenceAlias Property BYOHWindstadHouse Auto ReferenceAlias Property DLC2SeverinHouse Auto ReferenceAlias Property CustomHouse Auto ObjectReference Property AJDSkoomaBearCustomHouseMarker Auto ObjectReference Property AJDSniffs Auto The quest itself uses the Story Manager, and has an event node under Script Events in the SM Event Node sub-category. In the quest stage for this quest, I use the line, with kmyquest as AJDCompanionHouseScript: kmyquest.SpouseShop(Alias_Sniffs.GetActorRef()) For the dialogue options for the various follower options (Go to the bar, Go to my Whiterun House, etc.), I used the End script fragment (replace FollowHouse with the other ReferenceAlias listed in the quest): (GetOwningQuest() as AJDCompanionHouseScript).MoveCompanion(akspeaker, FollowHouse) The original fragments are keeping the original references and have not updated to reflect the new references. The problem comes in when I introduced the Hearthfire, Dragonborn, and Custom House logic in the mix. The new fragments do not recognize the ReferenceAliases from AJDCompanionHouseScript. Edit: I can call MoveMarker() without any issues. Also just remembered it would be helpful to see the ReferenceAliases: https://dl-web.dropbox.com/get/public%20share/wthsniffs/referencealiases.png?_subject_uid=41308520&w=AABcD_QXle2mtGzKNkHbLxl1HJLXIPlO_L2BF1oZeO0nDA Anyone have an idea on how to tackle this problem?
  10. Almost done with the More NPC mods so I can focus on other projects.
  11. Games with good mod tools are the future. Some of these games that would only last a couple of years at best have been extended due to a creative community (Portal, Half-Life mods, Morrowind, Oblivion, Skyrim, Fallout 3, Fallout New Vegas, and many more games). The Skyrim mod tools are easier to use than some of the other tools out there, making it more popular and accessible. The scripting language created for the Creation Kit also allows for some powerful control that some other toolkits don't have, or make hard to use. CTDs will happen with any mods since you are trying to run new content ontop of what is there (which requires memory), and some of these mods are not constructed with compatibility in mind, use the same area or namespace (in terms of scripts) that another mod uses, are large enough in scope that bugs are inevitable, or done quickly enough to allow for glitches to pop up. Don't give up on mods due to the CTDs, it just might take some trouble-shooting to see what mods work together (and that you want of course). I personally enjoy both playing mods and making mods, and think it adds to a more tailored experience.
  12. The original script was attached to an XMarker reference that was placed in the world, so self would refer to the XMarker reference that the tutorial uses for the Target Location spell. PlayerRef would cause weird behavior if you ended up deleting that, since there are other scripts that utilize it. Self is appropriate in this case. Self.Delete() will only call on the XMarker reference, since that is what the script is attached to. Edit: You probably want to have a method of some sort to clean up the soil since that seems like a potential memory leak in its current form (since you will spawn the object and there is no way to destroy it at the moment). As an aside, the method the tutorial/this script use to access the form leaves little room for error if that value ever changed (who knows what you would access), it probably would be better to try and use a Form property.
  13. Activator extends Form so Activator scripts gain all of the functionality that is inherent to Form in addition to what Activator has (yay O.O. concepts). Looking at the API on the wiki shows that Delete() is not a member function of either Activator (which has nothing inherent to it o.o) or Form. You would need to place the Activator within the world, then attach a script to the world object that is an ObjectReference script (or a script that extends ObjectReference if you need access to any other functions inherent to that type of script, but that would be weird for an Activator). Edit: You can cast it as an ObjectReference or find another method to obtain it. Know casting can have some weird voodoo if done incorrectly.
  14. Prefixes or suffixes (depending on the style the author uses, although prefixes are more common) are used to identify: A) Author and/or B)Functionality (although there can be some poor names out there, I am probably guilty of some of that) It helps for finding the files you need to add to your bsa when you are assembling your mod assets. Renaming or removing them will cause issues for the Creation Kit if you load a mod that uses the scripts. Game wise, it will have issues if you remove the .pex files. I know there are script files you don't specifically name that are created (both .psc and .pex) when you create dialogue scripts (the Creation Kit will show you the name of them, but you can usually identify which mod they go to by checking the creation/compile date [depending on if .psc/.pex respectively]), which are important for those dialogue pieces to execute properly.
  15. Think what you are looking for is attaching an Actor script to the NPCs that uses the EquipShout function. This would be attached to an event, I am thinking (haven't tried something like this yet) it would be attached to something like OnHit. You might want to play around with different logic because just having it cycle through the shouts every time they are hit by something would most likely give unfavorable results, maybe check for your NPC health or magicka (check GetActorValuePercentage). Hope this is helpful.
  16. Sorry in advance, but this will be a long post response since this system is not as easy as it might seem. About your current issue: Fragment scripts are things auto-generated by the Creation Kit and drives the behavior of the script. Changing the fragment will cause the dialogue script not to work. Something I did as a quick test: Did a dirty test (since I am using DialogueSolitude for the test) and added Blaise in the dialogue branches, by copying Kayd's dialogue branch (would have to copy the female child for female children), and changing the actor check to Blaise getting a favorable result in the immediate, but would potential make it incompatible with other mods if they happen to use or change DialogueSolitude. Explanation of their script: WI indicates that it is a World Interaction which is under the radiant quest system, and it is calling the WI quest to execute the function StartGameTag(FirstPlayer, SecondPlayer, duration, self[forget what this one does atm]). It has been awhile since I have fiddled with radiant quests so forgive me for not being much help at this point. Lets define the variables in their call of StartGameTag: akspeaker - child game.getplayer() - the player 60 - The duration in seconds self - Calling the Form Self as explained in the WIFunctionScript.psc What needs to happen: What you need to do in your dialogue is to somehow get WI.StartGameTag(akspeaker, game.getplayer(), 60 [or whatever duration you set or implement in your mod in seconds], self) to be called correctly. Here is what comes from the comment section directly from the script: ;HOW TO USE THIS: Make this Quest a property cast as this quest, in the calling quest, and then you can access it's functions using the properties set up on WI quest. How to do that for your new quest is outside of my understanding at this moment, if someone else knows this system better please help this modder out.
  17. The Creation Kit's BSA maker does not capture all of the files for your mod typically in addition to being slower then the archive tool that comes with the game (which is highly odd on one hand, but I suspect the back end of the Creation Kit is doing a systematic check of folders and comparing them to files used by the mod, which would make it take a long time to BSA via Creation KIt). I have had a few annoying crashes for my Soul Cairn House Mod in the 1.3 WIP (not showing much of that since I took a break from modding for a few months after finishing 2/3 of the update). Usually happened in my new house region that is sitting at 3-stories with an attached branching cave system (also uses 133.90 MB / 157.00 MB limit), and moving too quickly or selecting too many items in that cell at a time has caused a crash before. It has also crashed if the cell is open and new items are being added. Ironically it is doing this at 1 MB for the ESP, I cannot imagine the troubles with higher file sizes.
  18. I have a lot more screenshots since my last post. Been working on a few new features for the existing house areas, as well as the new areas. Here is what I have so far though: Kitchen Shelves: http://steamcommunity.com/sharedfiles/filedetails/?id=202347640 Other item placers: http://steamcommunity.com/sharedfiles/filedetails/?id=202341449 | http://steamcommunity.com/sharedfiles/filedetails/?id=202337497 | http://steamcommunity.com/sharedfiles/filedetails/?id=202328939 Mage-Towerish Area: http://steamcommunity.com/sharedfiles/filedetails/?id=199142817 Current progress on Generator Room: http://steamcommunity.com/sharedfiles/filedetails/?id=200394876 Still on the TODO List: -Add more item placers and types of placers -Quest(s) involved with the new area(s) -Fine tune the creature summoning device -Add onto the existing Garden/Generator(Necromancer) areas -Create the servant
  19. Mods keep releasing for the game, and some impressive epics are being created still. I don't think we have seen the end for modding Skyrim, since Morrowind/Oblivion both are still receiving mods. As long as there are people interested, developers and players a like, new mods will exist and people will use those new mods.
  20. After taking a break from Skyrim modding, I released a few patches for a couple of my older mods (Skooma Bear, and Morthal's Ghastly Mine), and started backup on finishing the addons for Pneuma Manor. Here are some finished areas I can show, as there is still a lot of work to do for other areas: Entrance to the roof: http://steamcommunity.com/sharedfiles/filedetails/?id=197081536 Corner 1 of the roof: http://steamcommunity.com/sharedfiles/filedetails/?id=197083392 Corner 2 of the roof: http://steamcommunity.com/sharedfiles/filedetails/?id=197083420 Corner 3 of the roof: http://steamcommunity.com/sharedfiles/filedetails/?id=197083456 Corner 4 of the roof: http://steamcommunity.com/sharedfiles/filedetails/?id=197083502 A view from a bench: http://steamcommunity.com/sharedfiles/filedetails/?id=197081610 For Pneuma Manor I am adding: -More potted plants on the interior (from a request to do so) -Roof access without the risk of falling down (if you notice the giant grand soul gems in each of the corners) -Secret Lair accessed through secret methods [would have interior images if area was lit] (hint: http://steamcommunity.com/sharedfiles/filedetails/?id=197079994 -Quest(s?) involving this new lair -Creature Summoning Device for Soul Trapping -Some sort of necromancer area, planning has not started yet -Garden area linked to the lair -Servant for the lair
  21. As an update I figured out a way to do this via scripts. I decided to test out with the Blades armor on a mannequin, and here is what I came up with for a custom script on the Mannequin trigger: Scriptname AJDPROutfitMannequinScript extends ObjectReference GlobalVariable Property AJDPROutfitMannequinAccessCount Auto Armor Property ArmorBladesBoots Auto Armor Property ArmorBladesCuirass Auto Armor Property ArmorBladesGauntlets Auto Armor Property ArmorBladesHelmet Auto Armor Property ArmorBladesShield Auto Actor Property AJDPROutMann Auto Outfit Property AJDPRNoOutfit Auto Event OnActivate(ObjectReference akActionRef) int temp = 0 temp = (AJDPROutfitMannequinAccessCount.GetValue() as int) ;Checks to see if this is the first time accessed if (temp < 1) ;Removes the current outfit AJDPROutMann.UnequipAll() AJDPROutMann.SetOutfit(AJDPRNoOutfit) ;Gives the items from the mannequin Game.GetPlayer().AddItem(ArmorBladesBoots, 1) Game.GetPlayer().AddItem(ArmorBladesCuirass, 1) Game.GetPlayer().AddItem(ArmorBladesGauntlets, 1) Game.GetPlayer().AddItem(ArmorBladesHelmet, 1) Game.GetPlayer().AddItem(ArmorBladesShield, 1) ;Ensures no item gifting AJDPROutfitMannequinAccessCount.SetValue(1) endif EndEvent This adds the items to the player, and removed the items from the mannequin. The menu still does not show it, but that is a minor non-issue at this point.
  22. I am working on an addition to the Soul Cairn house I have made, and want to have 3 mannequins that are already pre-equipped, but you can loot the outfits from them. This concept would be especially helpful for the end quest reward for this area. Here are my current results, since I gave the mannequin each of the items in the inventory and setup the outfit for them: Looking at it: http://steamcommunity.com/sharedfiles/filedetails/?id=197588519 After using the mannequin to loot it: http://steamcommunity.com/sharedfiles/filedetails/?id=197588587 The items are not showing up in the mannequin inventory currently. Is there a different way I should be setting them up in order to allow this, or is this not possible under vanilla Skyrim?
  23. I have slowly been working on expanding my Soul Cairn mod, Pneuma Manor. Adding new areas, and touching up the existing areas. Currently I have been populating a hybrid library/arcane workshop. Here is an early screenshot of one of the things I have worked on for this area (attached to the enchanting corner): http://cloud.steampowered.com/ugc/594744376251893419/CEEADCA32874C13C584AD3CA4C018BFA992867A5/
  24. This link might be helpful: http://www.creationkit.com/Notepad%2B%2B_Setup That is the information for setting up Notepad++ to work with Papyrus. The Syntax Highlighting is also particularly useful for it.
  25. I found this in the Creation Kit Wiki: http://www.creationkit.com/GetCurrentGameTime_-_Utility and http://www.creationkit.com/GameTimeToString_-_Utility could you use one of these to splice into the game month?
×
×
  • Create New...