Jump to content

RichWebster

Premium Member
  • Posts

    436
  • Joined

  • Last visited

Everything posted by RichWebster

  1. Yea I could have SWORN the same. Been so long since I've had to worry about it.
  2. Or even better, move a furniture position with the player already seated?
  3. Hey folks. Is there a way to have the seating animation skipped, either via script or keyword or such, for a specific object? I thought MoveTo() would do the trick, based on the notes, but it just moves the player to it, not force them to sit instantly.
  4. Afternoon all. I've started putting together a coding standards spec for Papyrus scripts and wanted to hear other people's thoughts. https://github.com/rwebster85/PapyrusCodingStandards/blob/main/spec.md It's not something I want to try and force other people to use. It's just something I've written for my own projects, based on outside experience.
  5. Trainers have a faction attached to them that specifies the skill they train, if that's any use. https://wiki.nexusmods.com/index.php/Adding_a_Trainer_NPC_to_Skyrim
  6. Important to point out that the reason it's not compiling isn't because of the UI.psc file being missing from the Source folder. It's the UI.pex file missing from the Scripts folder.
  7. No mate, you're calling UI already, like you see with Utility. If it's still not working I can only think that SKSE is not installed properly. You could also try restarting the CK.
  8. Attach a new script to your Activator and add the following: event OnActivate(ObjectReference akActionRef) UI.InvokeString("MapMenu", "_global.skse.OpenMenu", "MapMenu") endevent I've only ever installed SKSE manually so I can't speak to MO. But you should make sure the SKSE scripts are installed correctly by going to Data/Scripts/Source and seeing if there's a UI.psc file in there.
  9. This requires SKSE: UI.InvokeString("MapMenu", "_global.skse.OpenMenu", "MapMenu") Or as a helper function: ;/* * Opens a UI menu by invoking a string. Requires SKSE * Example for asMenuType is "InventoryMenu" * * UI.InvokeString example usage: * {Opens the Map Menu} * UI.InvokeString("MapMenu", "_global.skse.OpenMenu", "MapMenu") */; function OpenMenu(string asMenuType, string asMenuName = "HUD Menu", string asTarget = "_global.skse.OpenMenu") global UI.InvokeString(asMenuName, asTarget, asMenuType) endfunction
  10. There's lots of tools and techniques you can use, all depends on what your mod will do. If it's scripting you can use software engineering diagrams like UML, data flow diagrams, class diagrams, entity relationship etc. Simple bullet point lists are good for high level feature lists and details. You can then use those to create user stories, which can then be turned into other diagrams I listed above.
  11. I'll be getting back into modding in a few months. Does the current CK still crash all the time, like when creating new perks and such? It was a nightmare making mods for SSE.
  12. In response to post #91957498. #91958333, #91964623, #91969593, #91974693 are all replies on the same post. @OmegaDarkKnight I agree. It would be a mistake to block out the modding scene in future titles. Bethesda knows that, and my hope is MS will know it to. I'm not too worried about these Game Pass versions setting a precedent, since all the games are available elsewhere already. Also worth remembering that a game releasing on Game Pass doesn't mean you can't buy it. I purchased Forza Horizon 4 despite being a Game Pass subscriber because I wanted to own a copy.
  13. Hunterborn uses that function, as does my hunting mod. I've never seen that behaviour and I don't think HB has either. Is it related to the state being set? We use 4 and haven't had any problems.
  14. Right click on the Actor in the object window and select "Use Info". Not sure if it will detail everything, but covers the things that count towards the "users" number.
  15. SetCriticalStage(4) is basically like an actor turning to ash, but without leaving an ash pile. If they're a levelled or respawning actor they'll respawn as usual when the cell resets.
  16. No problem :) My source is full of code that you wouldn't need but I didn't have time to trim it, dinner was ready ;)
  17. Yea it's really a shame, what's why I had to roll my own solution. Ingredients Eaten is another one that doesn't fire an event.
  18. Ingredients Harvested is one of the stats that doesn't fire an OnTrackedStatsEvent(), so you have to manually check for it. The basis of my script will do that for you, keep a track of the stat number and every time the player has an ingredient added, if the stat is higher than the previous number, you know it was an ingredient harvest :)
  19. The way I had to do this in Hunting in Skyrim is to store the IngredientsHarvested stat, track every time the player added a new item, compare it to that stat saved as a global, and then increment my global. Here's my source. You should be able to alter to your needs. Start by setting your global to the stat value, I did this in a quest. ; Set my global count to the Ingredients Harvested stat so we can check against it HISIngredientsHarvestedTotal.SetValueInt(Game.QueryStat("Ingredients Harvested")) Attach this script to a Player Alias Event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) if !akSourceContainer && !akItemReference ; Only track any added items for the following scenarios: ; If there was no original source container and no object reference Ranger.IngredientHarvested(akBaseItem) endif endEvent I created a form list of ingredient keywords so I didn't have to check for every single item that wasn't valid. Event IngredientHarvested(Form akBaseItem) Int iList = HISIngList01.GetSize() while iList iList -= 1 Keyword iKeyword = HISIngList01.GetAt(iList) as Keyword if akBaseItem.HasKeyword(iKeyword) Int OldCount = HISIngredientsHarvestedTotal.GetValue() as Int Int NewCount = Game.QueryStat("Ingredients Harvested") if NewCount > OldCount ; For harvesting an ingredient the player earns XP Int XP = 1 if !HISRangerKnownIngredients.HasForm(akBaseItem) HISRangerKnownIngredients.AddForm(akBaseItem) ; If the player has never harvested this ingredient before, give extra XP XP = 3 endif HISIngredientsHarvestedTotal.SetValueInt(NewCount) TrackedStatXP(XP) iList = 0 return endif endif endwhile endEvent
  20. I see, I assumed you'd had that part sorted from your function examples. Might need another think.
  21. You could use the IsSwimming condition on an ability spell to detect when the player starts swimming. Then in a scripted magic effect you could loop and check for that image space mod, and do something when it's detected.
  22. Does the actor have an enable parent attached?
  23. We all have to learn them the hard way. Glad your clean slate is working now though :)
×
×
  • Create New...