Jump to content

Maduin81

Premium Member
  • Posts

    50
  • Joined

  • Last visited

Everything posted by Maduin81

  1. Hey folks, Back from a break and deciding to polish off a mod that requires information about object mods that are attached, specifically Automatron Robot mods, without using F4SE. Is there any sort of definite way to list all of the mods on a robot, preferably along with head/body/arm/leg types? It's a very specific situation and I'm not sure Papyrus supports it without F4SE which unfortunately is flat out not an option. If anyone has advice, I'd greatly appreciate it. Thanks!
  2. You want this guy - http://www.nexusmods.com/fallout4/mods/11165/? The quantum conduits it adds are wireless conduits, one on outside, one on inside, you're good to go.
  3. I'm confused. You found a mod that returns things you want to Survival, but instead rather bring Hardcore things to Very Hard? Sounds like you got what you want. But this probably won't happen as Survival items, such as food, diseases, are regulated by a quest. To do what you'd want, one would have to rebuild Survival from the ground up. Your best bet, would be do find/use/create mods that make Survival more of the way you want it. Not specifically trying to self-promote, but my mod http://www.nexusmods.com/fallout4/mods/13054/? actually somewhat does this now. The working in non-survival is actually currently accidental and not yet fully supported. I'm working on a rewrite that will more or less completely take control of Survival and allow most (all just flat out won't work as some are handled by native code, disabling fast travel the way Survival mode does for starters, though its still doable) features to be used in any difficulty. Since its not purposely supported, there are bugs with it, but I'm hoping to get those squashed soon.
  4. Hey folks, I was wondering if anyone knew if there were existing events to monitor the status of certain settlement objects. As examples, I know there's an event that fires when actors are assigned to jobs, and I know of the daily update event. What, if any, event fires to update the GUI to show updates when you toggle a generator on/off or put down a water pump(This one can be workshopobjectplaced, I guess)? Maybe OnActivate or PowerOn/PowerOff? I was kind of hoping for a general "This object/actor/whatever changed, so we're just going to say hey, something changed" event. Any ideas?
  5. If you export the mod info when uploading to PC, it creates a separate file. When uploading to consoles, import that file and it'll allow you to have the same name, appending XB1 and all that automatically, but invisible to you, you'll only see it on Bethesda.net. However, you will still need to upload pics.
  6. Bump. Nobody have any suggestions? I really hope there's a better way as this one is kinda sluggish.
  7. Yep, it's working relatively well now, though I'm having troubles getting searches along the z axis to return anything. Not a major deal since all the objects should share the same z axis. I'm trying to compare this to my original method to see which is more efficient as far as getting the connected objects. Basically, I'm hopping through every item to get, say, the furthest item on the left, then return an array of all objects from left to right with left being index 0. The original method would just center the search on that particular object and look in each direction for another object then do another search based on that, which is relatively accurate, but I can see scenarios where it would cause issues. This one offsets the position and centers the search where the new object should be. It /should/ be more accurate, however there's a few more calculation steps going into it, so I'm kind of concerned with overhead.
  8. I'm not familiar with the ShowGiftMenu function, but there is this guy - http://www.creationkit.com/fallout4/index.php?title=OnItemAdded_-_ObjectReference You can check the object that was moved and move it back to the original inventory if its the wrong type, basically rejecting it. Also, you can verify that it is the correct type, etc.
  9. Heya, I was wondering if anyone had an easier way to get statistics of subsets of settlement objects, for example a single power grid? Right now, I can search a huge range, 30000ish (thanks to Spectacle Island) for all generators, then see if they share a power grid with whatever I'm checking against, then I tally up their generated power to get the total. It works, but I don't feel it is very fast, or very efficient. I was hoping that I could pretty much connect something up to a power grid, and directly say "This power grid has this much power available". Anyone have any suggestions?
  10. Heya MasterMagnus, I believe OnWorkshopObjectPlaced returns this, it's just a matter of capturing that event, I think the list in that case would work just fine, however I can't come up with a way to access those connection points, unless it's a pretend list and not actual object properties. DarthWayne, I really appreciate you taking the time here, though I'm having a few issues getting the example you provided to work. It's been about... 17 years since I've touched sines/cosines, so if you don't mind catching me up here, I'm thinking this is what the purpose of this is... I believe what's happening is that you're getting the angle of the object and using that to offset the current position to just off the side where something I'd want to search for should be. I've got the method compiling and its returning valid coordinates, that are fairly close, but don't seem to center on where I'd want. Below are the raw values for the base object, all the calculations (0/90/180/270), and the actual position of the object I'm looking for. I'm also using a search radius of 100 as its a fairly small object. Base - Angle:315.019714| X: -79113.343750| Y: 89210.585938| Z: 7846.123535Calc+000 Angle:315.019714| X: -79294.296875| Y: 89391.664063| Z: 7846.123535Calc+090 Angle:405.019714| X: -78932.265625| Y: 89391.546875| Z: 7846.123535Calc+180 Angle:495.019714| X: -78932.382813| Y: 89029.507813| Z: 7846.123535Calc+270 Angle:585.019714| X: -79294.421875| Y: 89029.625000| Z: 7846.123535Targ - Angle:585.019714| X: -79090.710938| Y: 89233.203125| Z: 7846.123535 Currently what I have, using the heading angle, I can get the position roughly on an x/y axis but no z, though z isn't super-important to me. I'd really like to get a working sample based on what you provided and extend on it as I think it'd be way more accurate and useful for me. Also, random question, will finding a reference work if any part of the object is in/near those coordinates or does it have to be its relative origin point? Edit: Oh, derp, the "256" being multiplied should coincide with the actual radius of the object not a static 256. I can detect stuff now, I believe I can refine it a bit more to fit my needs, though it appears getting the actual radius of an object in script might be tricky since getwidth and all that seem to return 0 for the objects I'm testing.~
  11. Yep, it's the same as a trigger event. I've looked closer at that trapbase, I'm not 100% sure that's what fires off with mines, however I can't really find anything that explains how mines work. I'm more familiar with scripting rather than editor objects though so someone else may be able to answer that?
  12. That looks about right, I'm assuming there'd be an activator of some sort either on the base object or in that script that would cancel the timer as well. If you can find what actually starts the timer, I'm assuming maybe a trigger volume?, you can replace the timer with maybe a OnDistanceGreaterThan event to see if the player moved too far away and blow up instead, with the activate unregistering that event.
  13. I can't seem to find any functions that so much as touch those connection points. I can sort of do what I need by doing FindAllReferencesOfType in an extremely small radius, removing self to get rid of the original, then comparing the heading angle from self to the others to get roughly what side they're attached to. This doesn't definitely even tell me if they are attached, only extremely close and roughly what direction. I thought HasNode would give me /some/ connection point data but either it doesn't or I'm using it incorrectly. Any help on specifically the connection points?
  14. Err. I suppose it sounded that way. It should just be a base object edit. I meant all mine /types/
  15. I'm not quite that familiar with actual in-game objects yet, and I'm not quite sure where to look for what I'm asking, so I was wondering if someone might have an answer here? Using Papyrus, is it possible to get the objectreference of objects snapped together, say walls or floors? I think what I'm looking for is something along the lines of HasNode()? Basically, let's say I put down a piece of floor, I snap another piece of floor to the 'north' side of it, can I check specifically that 'north' side to A) see if something is attached, and B) get the object reference of that something, and bonus C) Get the node on the 2nd piece(For ease, we'll call it the 'south' side) that is connected to the first? Right now, I'm thinking closest I can come is using GetClosestReferenceByType() + HasDirectLOS() but I'm not sure how well that'd work or if there might be something better? Any help here would be greatly appreciated!
  16. Well, you would have to either edit all existing mines and replace the existing script, which means actual formid changes, or edit the existing script to behave differently if you don't want to create entirely new objects. Though if you edit the existing one, and add new properties, you'll be updating the mines anyhow.
  17. This may sound silly, did you compile the script? Edit: Also, I've noticed certain debug methods don't always work with activations. You could try to enable papyrus logging and use debug.trace instead. Or a quick and dirty Game.GetPlayer().Additem(Game.GetCaps(), 50), if you need to check multiple states, just change the cap amount to a set amount (1 is a success or 'if' branch 1, 2 is failure or branch 2, etc.)
  18. Don't know if there are any. What I know was from reading quite thoroughly through the scripts since I had a need to.
  19. The visible border is actually a .nif file in the shape of the area, it doesn't seem to do much other than be a visual representation of the edges. The "buildableareas" or "sandboxes" on some settlements are the actual sizes of the settlement, some have multiple to accomodate non-standard shapes like RR's sorta pentagon for example, it has like 5 buildable areas stacked up to make that shape. You'll need to link all this stuff to your workshopref through keywords to define the characteristics (Please use all of them as my own mod, JOURNEY, depends on that being right! Maybe some other mods too), you'll also need to call the workshop initialize function in.. I think it's workshopparentscript and pass all the specifics of the settlement. Again, please don't skimp on the details, it's not technically a full settlement if you do. Most of the functionality as far as establishing a settlement is in that workshopparentscript, with some stuff in workshopscript, workshopobjectscript and workshopnpcscript, I believe that's most of them. They're pretty much 50/50 building/scripting, so I hope you're familiar with or willing to learn Papyrus.
  20. Figure I'll throw this out for those that haven't noticed. Looks like Valdacil updated his mod to accomodate at least [settings], haven't tested the other tag, so all holotapes following that are now grouped in MISC as "Settings Holotapes" ^_^
  21. Hey folks, I was hoping that someone fairly experienced with modeling/texturing could help me out for a bit. Basically, I need a few (3-4?) assets created to use as settlement objects for my mod but I'm not exactly very artistic. They shouldn't be too horrible as they'd mostly be modifications of existing objects. I'm in the process of learning 3DS Max, and will continue to do so but having some assistance here would save me a ton of time. If anyone is interested, please PM me~ Thanks!
  22. It's actually in the CK. File > Upload Plugin and Archive to Bethesda.net > Platform(PC/XB1)
  23. LL_SubmachineGun_SilverShroud in the object window is where its loaded from during the quest.
  24. Hey folks, I'm having issues and I was hoping someone might know a way to accomplish something... Basically what I'm wanting to do is get every reference of a particular base object in the game if possible, not based on distance from another object. I'm thinking this can be done with RefCollection aliases, however I'm at a loss on how to set those up. Let's say map markers... there's a MapMarker base object and a MapMarkerRefType base object, is it possible to fill a collection with all of those dynamically in a script?
  25. I believe Skyrim's text replacement page provides a /bit/ more info, if it helps. http://www.creationkit.com/index.php?title=Text_Replacement Regarding AddTextReplacementData not compiling, it's an objectreference script object so you'd need to make sure you're applying it to an objectreference. Also, I can't say it'd be terribly efficient or that it'll even work (This is just a theory), but if you're working with a very limited amount of strings, you could potentially create dummy forms, such as dummyMessageStringYes and dummyMessageStringNo with the names set to "Yes" or "No", then use AddTextReplacementData("YesNo", dummyMessageStringYes) to switch it to say "Yes". If you needed multiple YesNo states, you could do something like AddTextReplacementData("AliveYesNo", dummyMessageStringYes) AddTextReplacementData("HungryYesNo", dummyMessageStringNo) Then in your message box, do <Token.Name=AliveYesNo> <Token.Name=HungryYesNo> You'd also probably want to do blank placeholders for when you wouldn't print anything. Keep in mind this will not work for message buttons, that's a limitation of the game, you'd have to use predefined buttons or list the index for the options and have the buttons be numbered instead. Also, the Total Hack (turret hacking, etc) holotapes use quite a bit of text replacement if you could use some examples, though nothing like what I described, but maybe enough to get you started. Edit: Apparently the Total Hack holotapes do exactly as I described the "terminalTurretStatus" objects are messages with names set to strings, you can look them up in the CK. hackerHolotapeTurretSCRIPT.psc Event OnHolotapePlay( ObjectReference akTerminalRef ) ; store the terminal we are being played on. myTerminalref = akTerminalRef debug.trace("HOLOTAPE: set up globals for turret info") objectReference[] linkedRefChain = akTerminalRef.getLinkedRefChain(LinkTerminalTurret) int i = 0 while i < akTerminalRef.countLinkedRefChain(LinkTerminalTurret) i += 1 endWhile gNativeTermTurretsConnected.setValue(i) akTerminalRef.addtextreplacementData("Connected", gNativeTermTurretsConnected) ; Add text replacement Data for frenzy status. if ((akTerminalRef.getLinkedRef(linkTerminalTurret) as actor).getValue(Aggression) == 3) gNativeTermTurretsFrenzied.setValue(1) endif akTerminalRef.addtextreplacementData("Frenzied", gNativeTermTurretsFrenzied) if ((akTerminalRef.getLinkedRef(linkTerminalTurret) as actor).hasMagicEffect(hackerTurretSabotageEffect)) gNativeTermTurretsFrenzied.setValue(1) endif akTerminalRef.addtextreplacementData("Sabotaged", gNativeTermTurretsSabotaged) ; set up text.repl. for Faction owner of ref of first linked turret. akTerminalRef.addtextreplacementData("Faction", (akTerminalRef.getLinkedRef(linkTerminalTurret)).getFactionOwner()) if (akTerminalRef.getLinkedref(linkTerminalTurret) as actor).getCombatState() == 0 akTerminalRef.addTextReplacementData("AIstatus", terminalTurretStatusNonCombat) elseif (akTerminalRef.getLinkedref(linkTerminalTurret) as actor).getCombatState() == 1 akTerminalRef.addTextReplacementData("AIstatus", terminalTurretStatusCombat) else akTerminalRef.addTextReplacementData("AIstatus", terminalTurretStatusSearching) endif if (akTerminalRef.getLinkedref(linkTerminalTurret) as actor).isDead() akTerminalRef.addtextReplacementData("OnStatus", terminalTurretStatusDead) akTerminalRef.addtextReplacementData("AIstatus", terminalTurretStatusDead) else if ((akTerminalRef.getLinkedref(linkTerminalTurret) as actor).isUnconscious()) akTerminalRef.addtextreplacementData("OnStatus", terminalTurretStatusOnline) else akTerminalRef.addtextreplacementData("OnStatus", terminalTurretStatusOffline) endif endif debug.trace("HOLOTAPE: gNativeTermTurretsConnected = "+gNativeTermTurretsConnected.getValue()) debug.trace("HOLOTAPE: Faction = "+(akTerminalRef.getLinkedRef(linkTerminalTurret)).getFactionOwner()) EndEvent
×
×
  • Create New...