Jump to content

LoginToDownload

Members
  • Posts

    1666
  • Joined

  • Last visited

Nexus Mods Profile

About LoginToDownload

Profile Fields

  • Country
    Canada

LoginToDownload's Achievements

Community Regular

Community Regular (8/14)

  • Week One Done
  • One Month Later
  • One Year In
  • First Post
  • Collaborator

Recent Badges

0

Reputation

  1. Oh hey, Reaper! Good luck with Dark Tower the second. Many, many thanks to all. This is very good information for whatever nebulous half-plans I currently have boiling.
  2. I agree, but I don't care so much about the prescriptive side (or, for that matter, popularity) as whether it would actually bother people. Thanks to both of you. Please, keep them coming! It's always useful to have a bunch of opinions on questions like this.
  3. Just a quick question: Are quest mods nowadays (/old geezer) expected to be voice-acted, to the point where no voice acting is thought of as a significant strike against? I'd like to know before I hypothetically start work on such a mod.
  4. The script does indeed involve globals, but unless there's a weird bug with globals it's all property accounted for. It is possible that it's a savegame memory issue, but it would be problematic if everyone installing the mod had the same problem, and only one of the scripts would even have been called before now. Tomorrow I'll run through the game again with the mod enabled from the get-go. As near as I can tell, both the old and new scripts are running.
  5. I've been trying to make a werewolf mod, and that means replacing some vanilla scripts. Because scripts and papyrus fragments are held externally and I don't want to leave a mess when it's uninstalled, I do this by copying the standard werewolf quest and changing all of the properties to point to that one instead. Then I can make whatever changes I want, and none of it will remain when you deactivate the .esp file. Unfortunately, the old werewolf quest is still running and being triggered by outside scripts when it normally would, and I have no idea why. This quest isn't connected to anything. Its 'users' count is 0. I have no other mods installed, nor have I since I started this save file. Some of the changes I need to make are negative, so it isn't something I can really work around. I have a backup option in just stopping the old quest from the new one, but that seems like it has the potential to get messy fast, so I'm saving it for a last resort. What's causing this madness? Thanks to all.
  6. At a glance, putting it in MQKillDragon should work. Sorry, I've never actually used animations before. :(
  7. Note: The following is ill-researched guesswork. -Have you filled the property properly? Properties don't automatically point to whatever shares their name. To fill your property, right-click on your script and click "Edit Properties". From there you can click "Auto-Fill" or select something for it point to manually. Empty properties have tripped me up more times than I care to say. -Conventionally, people declare properties at the top of the script rather than the bottom. It probably doesn't matter, but I guess there's a chance? -If none of that works, have you tried using SendAnimationEvent instead?
  8. The last real obstacle to my current project is figuring out if an actor has been hit with a Rally spell. Effects like Demoralize and Charm have keywords associated with them, but Rally effects don't seem to. Checking if their Confidence is higher than their Base Confidence also doesn't work, perhaps because most of the game's enemies already have the highest possible Confidence. Is there any other way I can do it? This isn't strictly necessary for the mod's completion, and since it's used on enemies they'll probably never get Rallied in the first place, but it would be a bit silly if Rallied people were fleeing under the exact circumstances that you would expect a Rallied character to stand and fight under. Thanks to all.
  9. I assure you, trawling the Creation Kit Wiki is more-or-less an automatic response to anything I don't understand. :P It should be doable so long as GetAlias can be used consistently.
  10. Alright, so I can add 20 or so aliases and assign them to actors via scripts? That sounds viable. Thank you.
  11. For my current project, I need a script that can make any actor, selected in-game, run away. I do mean "run away", mind you, not "cower in a corner" like the Demoralize effect does. Back in Oblivion I would do this via AddScriptPackage, but it no longer seems to exist in Skyrim and I can't seem to find any alternative for using AI Packages in scripting. Once again, giving the packages to the actors in-CK isn't at all an option. Has the functionality been lost completely? Thank you.
  12. I'm pretty sure you can't use OnHit like that. I think it can only be applied to ObjectReference scripts, and only runs when the ObjectReference in question is hit. Sorry I can't be of more help.
  13. DISCLAIMER: The only testing I did was making sure the script compiled. I think this will work, but no guarantees. If it doesn't, let me know and I'll give it a more thorough look-through. Step 1: Open up the 'scripts' tab of your dialogue quest. Click the 'add' button, and [New Script]. Name it whatever you'd like (for the purposes of this guide, we'll call it MyQuestScript). The 'Extends' textbox should say Quest, and you can leave the Documentation String empty for now. It just contains a description of the script. Note that you only need to do this if the Quest doesn't already have a script. Paste the following into it. Scriptname MyQuestScript extends Quest {Used to ensure the questgiver dies when his quest fails and the player isn't in the area} Actor Property Victim Auto {Declaring a variable, in this case the questgiver to kill. 'Actor' is the type of variable, 'Property' lets it refer to something not in the script and 'Auto' saves us the complexity of setting the Property up.} ;If you give this Property the same name as the questgiver's Reference ID instead of Victim, it will make a future step easier. Event OnUpdate() ;This will make sense later. if (GetStage() == 10) ;The stage in which we're supposed to kill our questgiver. if (Victim.GetParentCell() != Game.GetPlayer().GetParentCell() ) ;If they're in different cells... Victim.kill() UnregisterForUpdate() ;Again, this will make sense later. endif else ;If, for some reason, we exited the victim-killing stage and no longer want to off him... UnregisterForUpdate() endif EndEvent If I knew more about Quest scripting, I could probably get it to work with the alias rather than a new property, but alas (no pun intended) I don't. Save the script up and close it. Step 2: Still in the scripts tab, click your script once and press the 'Properties' button. This should bring up a list of the script's Properties, in this case only the one. If you named it the same as your questgiver's Reference ID, you can just click the 'Auto-Fill All' button. If not, click the Property, press the Edit Value button and select your questgiver's Reference ID from the drop-down list. If you haven't given them a Reference ID yet, you'll probably want to do that. Now the script knows who we're talking about when we use that Property. Step 3: Open up Stage 10 of your Quest, and paste the following into the Papyrus Fragment textbox. kMyQuest.RegisterForUpdate(30) Also, set the kMyQuest drop-down box above your Papyrus Fragment to MyQuestScript. RegisterForUpdate sends an 'Update' Event to the Form in question every () seconds (and the UnregisterForUpdate functions from earlier stop doing so). That is, when you set the Stage to 10, our OnUpdate block will run once every 30 seconds to check if the player has left yet. Feel free to decrease that number for testing purposes, or if you want to kill the questgiver really fast, but there's no need to gobble up unnecessary processing power. Click the 'Compile' button and you should be set.
  14. You might get more help if you post details in-thread. Asking people to message you seems like an unnecessary step.
  15. The functions are tied to the calling variables, not script types. In other words, the functions you can see there are the ones that you can run on an ActiveMagicEffect, and the events are the ones you can run in an ActiveMagicEffect script. If you say 'MyActor.kill()', it will still work (if you're doing this in an OnEffectStart Event, you could use akTarget for that purpose), because the variable in question is (presumably) an Actor. If you just say 'kill()' in an ActiveMagicEffect script it won't work, because it'll assume you want to kill the ActiveMagicEffect itself and that would be silly. :P It also means, yes, that PlaceAtMe can only be run on ObjectReference variables and not Actor variables. You can get around this by either casting the Actor variable as an ObjectReference (that is, if I have this right, 'MyObject = MyActor as ObjectReference'. I only ever tried it once) or use the PlaceActorAtMe function instead. As for using an OnDeath event in an ActiveMagicEffect script, don't take my word for it because I'm a bit of a newbie too and have never tried, but I don't think it would work. Back in Oblivion I would use OnEffectFinish (effects end when their subject dies) and check if the subject is dead inside. EDIT: Oh, yeah: A warning about PlaceAtMe. Most of the stuff in Skyrim is stored in the .esp and .esm files, but you can't do this when using PlaceAtMe to create new objects in-game. Instead, they get stored in the save file, and that adds up. As the save gets bigger, it starts causing bugs and making the game load more slowly, so using PlaceAtMe a potentially indefinite number of times is frowned upon if you don't use the Delete function to clean the objects up when you're done with them.
×
×
  • Create New...