Jump to content

onspey

Members
  • Posts

    10
  • Joined

  • Last visited

Nexus Mods Profile

About onspey

Profile Fields

  • Country
    None

onspey's Achievements

Apprentice

Apprentice (3/14)

  • First Post
  • Collaborator
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

1

Reputation

  1. After trying a lot of different approaches with package conditions and procedures, I came to the conclusion that it's simply not worth it trying to fight the game engine. Seems to me Bethesda put priority on getting actors where they need to be, rather than ensuring the realism/plausibility of how the actor gets there. My plans were to achieve some sort of emergent behavior with quasi-autonomous NPCs doing stuff on their own in the world, which is working for the most part. But it looks like I will need to resort to gas lighting the player to some degree and implement some way to simulate travel time by delaying informing the player that an actor has arrived at location X.
  2. Thanks for the input. I did some experiments with different time scales and there seems to be a correlation. The LOWER time scale is set, the FASTER NPCs seem to travel (in unloaded cells, purely by nav mesh). I tried different values between 60:1 and 1:1. At 60, travel speed almost seems what the player could achieve. At 20:1 (vanilla), travel speed is bearable, although much faster than the player can run. But at 5:1 (the setting I normally use), NPCs simply race across the map (even worse at 1:1). So it seems, the engine is applying some 'correction' factor depending on the time scale setting. This might be a bug, as I can't imagine this to be the intended behavior. Now I'll need to think about some way to work around this issue.
  3. I have an actor assigned to a quest alias. This alias adds an AI package with a 'travel' procedure to the actor. There's also a objective marker pointing to the actor's position on the map. Once forced into the alias, the actor starts moving as they should. If I follow them, they'll continue to walk to their destination, taking however long it takes to actually walk there. All seems to work. However, if I instead leave them and - for example - enter an interior cell, the actor's behavior becomes really erratic. As soon as the actor is unloaded, they will almost instantly jump to the travel procedure's destination reference; literally reaching the other side of Skyrim within a couple of in-game minutes, which severely harms immersion for the purposes of the mod I'm working on. I've never worked with traveling NPCs before, hence I'm unsure whether this is the expected engine behavior or whether the way I set things up is flawed. If someone more knowledgeable could shed some light on this for me, I would greatly appreciate it.
  4. There seems to be a way after all. While you can't test Self == None, you can cast Self to a string and look for a sub-string '<None>', like so: If StringUtil.Find(Self As String, "<None>") < 0 Then ; Code that would throw 'No object bound' error, if script is no longer attached EndIfAt least this is how I currently deal with this issue.
  5. Thanks, Reneer. I assumed as much, looking at all the otherwise well-made mods that generate lots of these messages.
  6. Just to clean up my stupidity, here: The problem was in fact NOT the keyword, but rather the quest dialogue conditions, which checked for the presence of this particular keyword. I just wasn't aware that these conditions are enforced throughout the dialogue chain, not just at the beginning. The moment whatever dialogue conditions solve to false, dialogue is canceled.
  7. Actor1.HasLOS(Actor2) seems to always return false, when both actors are NPCs. Even when they stand staring into eachother's face. Swapping either actor with a PlayerRef works just fine. I also confirmed this with the console via GetLOS. Works when involving the player, doesn't when testing two NPCs. Is this some undocumented engine limitation or am I missing something? The Wiki makes no mention of this.
  8. I know there is no way to avoid having to deal with scripts bound to ActiveMagicEffects getting orphaned while still running. But is there a way to catch this situation from within the orphaned script itself? I tried testing for Self == None, but that doesn't seem do it. The scripts getting orphaned in itself is not a problem. I'm basically simply looking for a way to prevent the error message from getting thrown into the log file and confusing the casual modders. Anyone know how?
  9. Thanks for your thoughts, Ishara. I did some more experiments. Here is what I finally figured out: All hinges on the ClothingBody keyword, if you believe it. The moment the actor is no longer wearing any armor/clothing piece with a ClothingBody keyword, dialogue is canceled. Why this should happen, I have no idea. The armor I tried to have the actor equip did not have this keyword. Adding it, solved the issue.
  10. I have a quest with a dialogue sequence, where the actor, to which the player is talking, changes from normal clothing into armor. This is done via a papyrus fragment, using Actor.UnequipItem(...) and Actor.EquipItem(...). Dialogue works fine and the actor unequips/equips clothing/armor as expected. BUT, instead of then continuing to the linked topic, the dialogue breaks off with the generic goodbye. This happens with UnequipItem alone, too. I also tried RemoveItem, which had the same effect. Without any UnequipItem/EquipItem, the sequence continues as expected. Is this the expected behavior? I there a way to prevent this? I'd like to avoid having the player to manually initiate dialogue again. Is there perhaps another way? Thanks!
×
×
  • Create New...