Jump to content

Terra Nova

Account closed
  • Posts

    437
  • Joined

  • Last visited

Everything posted by Terra Nova

  1. I'm just gonna post the same warning that bethesda themselves said on the wiki - don't over do it with shadow casters, as they can hurt performance.
  2. I don't think so. You can experiment a bit with the PlayerWerewolfChange script. make a backup first. ; make everyone hate you Game.GetPlayer().SetAttackActorOnSight(true) ; alert anyone nearby that they should now know the player is a werewolf Game.SendWereWolfTransformation() Game.GetPlayer().AddToFaction(PlayerWerewolfFaction) Game.GetPlayer().AddToFaction(WerewolfFaction) int cfIndex = 0 while (cfIndex < CrimeFactions.GetSize()) ; Debug.Trace("WEREWOLF: Setting enemy flag on " + CrimeFactions.GetAt(cfIndex)) (CrimeFactions.GetAt(cfIndex) as Faction).SetPlayerEnemy() cfIndex += 1 endwhile ; but they also don't know that it's you Game.SetPlayerReportCrime(false) This bit of code starts on line 146.
  3. Set the time to start the pack to something early. Change the duration to something other than 24 hours. 22 sounds like a happy medium. Duration is the one that controls how long the package will run. As an example: Hour: 6 Minute: 20 Duration: 5.000 = Begin at 6:15, and end in 5 hours.
  4. This implies they have border regions turned on in their ini. This needs to be added to their Skyrim.ini. [General] bBorderRegionsEnabled=0
  5. The conditions is telling you what quests to add. Those names are the quest IDs. So if you're trying to activate it through a script(not sure if constructable objects are also activators) quest property MQ205 auto quest property MQ206 auto etc..
  6. Err wait a sec man. Sorry. I don't give up so easily. Turns out I was using that command wrong. When I did it the right way: The objective displayed uncompleted, and not failed. :smile: So here's what we know about FaillAllObjectives It will fail all objectives that are displayed in the journal. The failed ones that are not completed before hand will not display on screen as failed. Any objectives completed will be flagged as failed in the journal, but will not show up on screen as failed. Any objectives that were not called to be displayed, will be ignored by the function.
  7. I tried testing a non displayed one with the console command's version of SetObjectiveDisplayed (I used 30 for this) and nothing happened.
  8. Hmm. Does it fail non-displayed objectives? Ones that haven't been shown yet? I don't know how to properly test non displayed ones. This is how I tested it. I made 5 Objectives: SetObjectiveDisplayed(10) SetObjectiveDisplayed(20) SetObjectiveDisplayed(30) SetObjectiveDisplayed(40) SetObjectiveDisplayed(50) SetObjectiveCompleted(40) utility.wait(8.0) FailAllObjectives() utility.wait(10.0) debug.notification("Check" +IsObjectiveCompleted(40)) ← false 10-30, and 50 will show up on screen, 40 gets completed as expected. When FaillAllObjectives kicks in, this shows up on the screen: Failed Test 1 Failed Test 2 Failed Test 3 Failed Test 5 But in the journal all are flagged failed. Seems to me like it does what its intended, and not the function you're looking for. Edit: the check works as expected. Even though 40 is completed, it is set to failed, and returns false.
  9. Nah, I did it for you lol. If a stage is already completed, it is still flagged(in the journal) as failed with FailAllObjectives. But the completed stage will not display on screen with the rest of the failed objectives, if you know what I mean.
  10. The only way to find that out is to test FailAllObjectives() yourself. I'm betting it is one of those functions that is hardly ever used. I was working a custom function to do this easily, via arrays but ran into an interesting discovery with isObjectiveCompleted() and SetObjectiveFailed(). Passing arrays into the former will only return the index, instead of what the index is holding(in this case myQuest.IsObjectiveCompleted(Obj)), resulting in an error and printing to the log about unknown quest objective. Since obviously the indexes will not match the values representing that objectives.
  11. Do it the standard way provided by SKSE's loader.exe. Make it a shortcut on your deskop, and voila. The only thing about it, you can't load SKSE+Skyrim through bash, or NMM this way, which is fine. Save yourself the headache. The instructions in the link make things overly complicating.
  12. Ah yes, quests can have many scenes. Although I'm not sure of the max number before the quest gets buggy if that's even possible, but I've seen more than 6 scenes in a quest.
  13. Care to elaborate? I thought scenes could not run without a quest. When all I wanted was a scene, I had to make a "quest shell" to hold that scene. The quest itself didn't have to have any other content. Skyrims units of measurements is a little uhm... Lets just say 100 units is maybe a couple of feet from the players position. From the entrance of the hall, to the back of the room is probably a very large unit value.
  14. Always best to turn on the normals(I forgot how to do that in blender) as they are often pointing in the wrong direction for different parts of a mesh, so you can flip them when you spot oddities.
  15. An actor isn't an activator. OnActivate wont work?
  16. They matter because certain conflicts will break vanilla quests or other things for seemingly no reason, even if they don't edit them, but there is some underlying reason why, like them editing a reference they did not know was needed in another quest, or part of trigger chain, or what not. Conflicts can be complex to the point of hair pulling.
  17. Start() will do nothing on an already running quest. Stop() will also do nothing on a quest already stopped, however.. keep in mind, when a quest is completed(reached its completed stage), it can still be running, because stop was not called. It is wise to get in the habit of calling Stop() where necessary, so that all quest variables are released. Optional allows any reference to fill it at run time, by using ForceRefTo(), and gives you access to the function Clear(), so that you can clear that alias when it's not needed anymore. Checking optional is the best way in troubleshooting aliases that aren't being filled because optional will allow a quest to run even if the aliases aren't being filled.
  18. ...There needs to be a guide on how to navmesh exteriors safely.
  19. Calling Reset() will not work. When the quest is completed or stopped, you can't reset it.Mostly unused, one would think this does what it implies, but I personally don't know.I'm taking a guess here: When an NPC is attached to more than one quest, this number determines what order the starting dialogue options for the quest appears in. Higher priority = this is the quest to be initiated.I don't understand "Reuse in Quest", but Allowed Reserved makes it so there is no conflict with the alias that is already reserved in another quest, as otherwise the alias will not be filled due to the NPC or object being reserved in another quest, when Allowed Reserved is not check.Seems to be the same as ForceRefTo() although I am not sure, as I mostly use ForceRefTo() when trying to force something into an alias(if I need papyrus)Not really sure.Yes, or the quest will either not start, or the package on the alias will not run.Not really sure.
  20. You could quite easily do this by script. So you have a script effect, which, once activated, has a script like so: Scriptname LifeStealMGEFScript Extends ActiveMagicEffect Event OnEffectStart(Actor akTarget, Actor akCaster) akTarget.DamageAV("Health", ActorValuePercent(akTarget, "Health", 0.1)); in this scenario, damage the actors health by 20 percent akTarget.RestoreAV("Stamina", ActorValuePercent(akTarget, "Stamina", 0.1)); restore stamina by 10 percent akTarget.RestoreAV("Magicka", ActorValuePercent(akTarget, "Magicka", 0.1)); restore magicka by 10 percent EndEvent Event OnEffectFinish(Actor akTarget, Actor akCaster) EndEvent Float Function ActorValuePercent(Actor akTarget, String AV, Float Percent) If AV == "Health" Return ((akTarget.GetAV("Health") / akTarget.GetAVPercentage("Health")) * Percent) ElseIf AV == "Stamina" Return ((akTarget.GetAV("Stamina") / akTarget.GetAVPercentage("Stamina")) * Percent) ElseIf AV == "Magicka" Return ((akTarget.GetAV("Magicka") / akTarget.GetAVPercentage("Magicka")) * Percent) EndIf EndFunction Then attach the magic effect to your spell/ability/perk. There might just be a way to do this through the Absorb archetype though, haven't played around with it much. Heads up: GetActorValuePercentage() doesn't work as intended with buffed HP/magicka. The code snippet on the wiki page is wrong.
  21. Can be done with widgets I think. You'd have to ask the people that develop MCMs that have images in them on how they did it. Images can be added to books easily though.
  22. Have the items scripted to be unequipped before the AI is turned off.
  23. You avoid using RegisterForUpdate() in any circumstance as it is incredibly unstable. Instead you use RegisterForSingleUpdate(). For updates involving scripts, you usually wanna avoid changing the values associated with variables and properties, but there's a way to change those cleanly by making an "update quest" with in the mod with a script that force changes to them. See this: for an example - http://forums.bethsoft.com/topic/1484684-updating-scripted-mods-and-papyrus-logs/?do=findComment&comment=23270450
×
×
  • Create New...