Jump to content

hereami

Members
  • Posts

    482
  • Joined

  • Last visited

Everything posted by hereami

  1. well when i tried the "log" trick i was using for placement in a port /dock near land where depth isnt that much and it would easily touch the surface... I think the issue is also a keyword issue and the fact that water isnt a surface but an effect with no collision . Maybe i need to force a placement at a specific " Z" that all ocean height is... but i dont know how to do that.. Do not suffer and put place everywhere. I don't know, maybe one out of 10 people doesn't use it. Nearly 90k endorsements on the Nexus speak for themselves. Everyone who loves to build something in fo4 will inevitably come to place everywhere. ) Never used that mod :laugh: .Now that you know about this mod, you can use it too. ) Technically, it not only allows you to place objects, but also binds all console commands to the keys, such as setscale, rotate, etc. Also, you can endlessly drag spline wires, at least through the entire map, if there is a camp, or carry out collisions through collisions. Cancel and enable physics for objects. I don't know how you can build without all this.Just for example Fallout 4 Eden Settlement at Abernathy Farm (Includes Construction) - YouTube . Matter of preferences though, of course.
  2. Like this TestTownINVScript.psc . Would cut fingers for making it without variable properties and with fixed Z, also runs like crap, but still something. Though not a problem to fix and recompile on pc, i guess. I'd say that buildable mooring to snap with isn't that bad idea. Unless floating on waves is really achievable at run time.
  3. Basically, this means that single thing which makes an object permanently persistent - it's checkbox on a REFR, "manually" set by Creation Kit according to user actions. Wiki silences this fact and provokes confusion. While using a reference in a script or hard alias fill etc. doesn't enforce persistence by itself, e.g., when done exclusively by XEdit and never saved in CK. I don't quite understand another thing. Let's say Condition GetIsReference or alias force fill, they are said to require a persistent object and CK issues warnings, fine, but my rightful question now is - why on earth they happen to fail even if that object REFR is already loaded, obviously, that ID and its data is sitting in live memory structures, i guess. Just weird.
  4. In the list, consecutive Conditions with OR form a block from top to bottom, first AND below it closes the block and belongs to it. Let's say, 3 ORs followed by AND = solid block of 4 members (e.g. A Or B Or C Or D). Which operator is used at very end of the list in CK - that makes no difference, same as for a list with just one Condition.
  5. Branching is quite a pain, true. ORs form a single block until last member marked AND concludes it, then a new OR block may start and will AND with previous OR block. ANDs do not form such a block and sequences of them can't be ORed as solid blocks. Recombine, notation AND block members should be cross-ORed by exclusion principle: === OR Block1 GetIsID Actor: 'DLC01Ada' == 1.00 OR ( A ) GetGlobalValue Global: CompChoice == 1.00 AND ( D ) === OR Block2 GetIsID Actor: 'DLC04Dixie' == 1.00 OR ( C ) GetGlobalValue Global: CompChoice == 0.00 AND ( B ) Results in Block1 AND Block2. (True OR False) AND (False OR True) for Ada, (False OR True) AND (True OR False) for Dixie. Other combos will fail.
  6. Well, untill there's a proper answer. Some curious meself too, if there can be invisible material swap or else for existing objects. Like SetAlpha, maybe. Should it be placed at runtime and have complex shape? Otherwise, might use REFR primitives with suitable base object and collision layer. What i know from things available in game, there are invisible TriggerBox nifs, good for interaction spots as Activator and probably else interactive types, though again, need be placed and scaled in CK and have no collision by itself, if that's a reasonable requirement somehow.
  7. They should attack (become aggro) when player combat state changes or someone is targeting the player (GetCombatTarget()). Also you need to remove them form all factions (or add them to player faction in alias quest with high priority) All that's right, but main point is to keep Player fully apart from that conflict. And game dislikes it strongly. ps. Well, i just discard this idea and exclude Teammates from the scope of the feature. Silly wise engine, you've won this time.
  8. So, there appears a hard block indeed. Even StartCombat() doesn't kick teammates' brains. Enemies won't attack first either, unless Player is assigned hostile to them. Briefly removing from teammates or Package kills seem be two ways and neither is convenient, pity.
  9. Any Info can be specified as Shared info for own Topic with keyword. Although there can be side effects, if targeted Info has script or has wrong conditions. Trade lines are Shared by itself, i think, so are trouble-free. But is there a way to detect what dialogue option is chosen, event or else?
  10. After some tinkering around, other things appeared to be fine. They go aggro as soon as SetPlayerTeammate kicks them out, that's my conclusion. Enemies' faction is custom and straightforward, doesn't have any other relations which could interfere. Guess it's a hardcoded AI overrride to limit teammate's freedom, makes sense in overall, untill it becomes a specific problem on a specific platform. ps. UseWeapon attack doesn't make witnessing Allies aggroed, pity, StartCombat is allowed. Maybe because it always appears to be instakill, but whatever, doesn't fit. pps. Hm, it's like one packaged kill is not enough to distrurb other enemies, but two will trigger response and show starts. Well, maybe. Although why so?
  11. That's nice, Package would be most natural, i'd say, though maybe not as reliable as scripted manipulation. Never had such need yet but, supposedly, Travel procedure/package ending script should fire for a persistent Actor, since they actually do advance on map in background, i.e. keep executing packages. Probably, it's pointless to run a scene while player is away, just check for HasLoaded3d or proximity and throw a limited time objective if not.
  12. Now it appears to be an unexpected problem. They don't attack Enemy faction even if Player is enemy to it as well. Maybe some way to make them aggro, other than by script, another magic keyword or faction relations modifier powering up the hatred (i guess, it's never used in game, no idea how works)? Part of problem is that enemies need be Neutral, while making them aggro on teammates first is the most simple solution but is least preferred as unnatural. UseWeapon package as another option in sight, but it's bulky.
  13. Wait, what is that "Flashlight" on a pipe gun? For bayonets in particular this can be modcol_PipeGun_Muzzles_Any [OMOD:001642B5], remove Bayonets entry from the list. In short, spawnable combinations are defined in Weapon records as Object Templates. These are messy to deal with in general and need extra care if handled in XEdit, i'd say. For each variant there can be singular mod or ModCollection (like Muzzles above) specified for each slot (Attach Point), just look at how a gun is constructed. Combos may be tagged with Instantiation filter keywords and Leveled Lists use them to select exact combination to spawn. Most simple, can remove all extra combos from original gun record and keep just one as Default, this will affect all future spawns. Or create your own modified copy and insert into LeveledLists, if that makes sense. Otherwise need to deal with filters and whatever else. Craftable attachments - OMODs - have recipes - Constructible Object.
  14. Haha, yeah, we're basically wearing a couch :smile: By the way, realismus. If car has MSTT model, then it will actually rumble and shiver when intersects with other objects untill frees itself. Would be hilarious for overload scenario, if manage to provoke that intentionally.
  15. I'm mainly curious if that's some larva that needs to be planted into the corpse and what goes next after a few days :wink: Looks like perceived as overcomplicated, while it's not. Although i'm not sure why such a strict need to disable, worst problem for a character without postmortem dependencies (as properly advised to check out above) would be just with other mods, which might decide to use the same body. Can't grasp the immensity here. Still, it's a reasonable idea to keep very unique corpses intact and at least not vandalize game by Delete. Good practice for both sides would be to have a spare scenario for the case when base game object is unavailable or just something went wrong, then a fresh spawn or else goes into play, for example, can reenable that disabled corpse for own use. Ragdoll isn't a problem, unless he falls out of map, of course. As advised, quest alias is likely the best way. OnAliasInit event or any code that fills the alias should check if actor is dead already, otherwise ReferenceAlias OnDeath event should progress the quest, either of them should inform player by a quest marker (SetObjectiveDisplayed) which points to the Actor, so it doesn't really matter where he lays, unless primary goal of the mod is to challenge player by hide and seek. If that's some larva indeed, then OnItemAdded event as described, otherwise OnActivate can be enough. May be proximity check as well, depends on mod's plot. Another option to designate player's acknowledgement may be a custom (or scripted by alias) item that needs be taken out of corpse, OnContainerChanged() event, though anyway OnActivate will fire still, so it can be any dummy thing. I could advise to pay attention to DefaultAlias / DefaultRef base game scripts series. They're inefficient as hell, but good for start. * ps. Should avoid forced alias fill for temporarily captured intermediate objects, unless that actor (or whatever else REFR) is Persistent in base game. This requires additional measures though, like starting the quest (or filling the alias) when he's loaded, then clearing the Alias. Still, may be ignored while in experimental stage. nah, nevermind
  16. SetPlayerTeammate(abCanDoFavor=false)? Also, try keywords CompanionDisableMenuXXX, although DisableMenuCommand doesn't seem to have effect if abCanDoFavor was True, i couldn't protect an Actor from being commandable in latter case. To remove Talk, npc should have no valid dialogue lines, i think, though may be somehow else. Hm, likely it can't be removed, they just don't have anything to say, but prompt would be there.
  17. Register for CompanionChange custom event and dismiss her as necessary. Don't know if there is a specific event for SetPlayerTeammate() function, which would be more reliable because anyone can be hired without being a Companion, but still GetPlayerTeammate Conditon can be useful before hiring. What i remember, there are DisallowedCompanionFaction and HasLeftPermanently script variable, though probably have no meaning for a companion who is not managed by FollowersScript, so needs manual handling in a similar manner. Gotta track NW story and find if there's an event or something else suitable to serve as trigger. Subject conditions run on speaker, Target - on dialogue target. Doesn't matter for impersonal Conditions like GetStageDone etc.
  18. Arrgh, sure, inaccessible. What a brilliant developer idea to scatter settings everywhere, doubtful if that's any critical for engine loading phase.
  19. I suppose broken locks mechanics is fully stripped. For Terminals there is lockout period still, but what is variable for default value then? Nothing relevant in Game Settings, only ModTerminalLockout Set 0 in perks.
  20. AddKeyIfNeeded adds key to npc if door has assigned it already. Well, pity. Not that it matters much but could be handy. Had something F3 in mind, where terminals could be locked out forever, but i wanted to provide a sort of master lockpick which needs finding. So much valuable ideas are stripped from game with each sequel.
  21. That's unrealistic. Would a car explode from a few bullets outside of Hollywood?
  22. In general, Static isn't supposed to be interacted with, so no. Pop-up menu looks like a good solution indeed, then it should be Activator object. Assign Model from that of a car. PowerArmor is Furniture, so might create new Furniture with a dummy Interaction point and enabled Container (or maybe actual sitting in car animation too). There will be Transfer and Enter, because for whatever reason Activate label replacement isn't applied. Also, CantUseAtThisTime message pops-up if no animation keyword is specified. ps. Unfortunately, BlockActivation() allows to avoid that message and to display custom activation label but also disables Transfer option. Either way, need a script including two event handlers OnItemAdded() and OnActivate() or just one of them, might look at PowerArmorBatteryInsertScript as some reference. Destruction method varies, can be placed explosion or integrated Destruction data + DamageObject(). More interesting is how to add small interaction spot on a solid model (let's say Trunk) and how to assign inventory filter for such a container, but actually it's even more curious how to disable such filter for PowerArmor itself.
×
×
  • Create New...