Kazyn Posted March 11, 2014 Posted March 11, 2014 sorry if this is a bit off topic by now, but I just got curious: so if you get caught by a spider anywhere in Skyrim you'll automatically teleport to the lair you made right? and upon escaping and making you way out of the said lair/cave you'll just be at the entrance of it, and if you need to get back to where you were caught you'll have to hoof it one way or another? (or just use fast travel) To clarify, you're teleported to a spot that captives are kept (hopefully alongside what is right now a single follower). Upon escaping there'll be an exit to connect back into the open world. If you for whatever reason need to get back into the cave (you shouldn't need to because I didn't include any Radiant Story elements in there and there's little more than a few egg sacs to loot) the only way back in is to either CoC in (I dropped the CoC marker where the player is normally taken instead of at the entrance like everywhere else does) or to get captured. Once you exit the cave, feel free to fast travel where ever you want to go... or hoof it, however your preferred method of travel is. The cave itself is fairly close to the center-ish of Skyrim so it's not like you'll go from Riften to Solitude upon capture. I'm reading up on the mechanics in Skyrim, but I probably won't soon reach the level of someone who should actually be giving further advice, so I'll bow out on that for now. Still very much looking forward to what happens from here on, and I'm making a list of ideas to drop on you at a later date if you decide to follow through with "Perilous Defeat" (many of which should hopefully be relatively simple to script after this). I've some prior experience with Ruby myself (For my college classes I actually just so happen to be going through a programming class right now) and this so far hasn't been terribly difficult to grasp. It's more or less just learning the vocabulary and the functionality of functions that came with the stock scripts. For those with programming experience this isn't all that bad. Hell, I'm finding it easier to grasp than Ruby, lol. I have to head out for a couple of hours but will be sure to respond when I get back.
bleeb Posted March 11, 2014 Posted March 11, 2014 ah ok, that makes it clearer, thanks. yeah I've used those commands before too so I figured they could be used to get back into the lair. sounds like a good "neutral" placement for the cave then, so you're not hauled across the land like you said, good call
Princessity Posted March 11, 2014 Author Posted March 11, 2014 Bleeb your picture is so cute XD whenever I come to this topic and I see the widdle fuzzy wuzzy fuzzball I forget what i wanted to post!
bleeb Posted March 11, 2014 Posted March 11, 2014 XD yeah it is lol, hence my signature. sorry it makes you forget your posts though lol.
KomradePavlov Posted March 11, 2014 Posted March 11, 2014 XD yeah it is lol, hence my signature. sorry it makes you forget your posts though lol. I am immune to such things!! You have clearly met your match.
bleeb Posted March 11, 2014 Posted March 11, 2014 lol, it's just random nonsense anyway. but yeah, for the sake of not burying this topic in un-related replies for when Kazyn gets back I say we should get back on the topic, for anyone who has anything to say on that. I'll be doing Kazyn a favor by not stringing out random chit-chat after this post, enough info got buried already, and under on-topic themes to boot lol. anyway, here's an on-topic question I just thought of for Kazyn (when he returns): the cave looks quite big.. so I'm betting there's going to be a whole host of spiders in there, rather than just one lone one, I mean unless it's just one giant patrol route for the lone spider, I guess that could warrant using that much space for the cave (not saying I dislike that, if it's the case, but my mental image of the scene puts multiple spiders in there right now). so is this lair going to be swarming with them? or just one lone one? or maybe somewhere in between? and here's another: when you get caught with your follower, will they spawn up, cocooned right next to you? or somewhere else? also, do they automatically get free when you get loose? or do you have to go up and free them as well? and one last thing: when you fail to escape, do you hear them do a "death cry" too? or just the player character?
OodlesOfDoodles Posted March 11, 2014 Posted March 11, 2014 "J++" wouldn't compile. "J+1" would compile, but come time the function was called, the script got stuck in the while loop. "J = J + 1" also compiled, but then it seemed the function was skipped altogether. I don't know if this is still an issue, but try giving "J += 1" a try. It looks like gobbledegook, but it works for me.
Kazyn Posted March 12, 2014 Posted March 12, 2014 Bleeb your picture is so cute XD whenever I come to this topic and I see the widdle fuzzy wuzzy fuzzball I forget what i wanted to post! Speaking sorta of which... are you, or were a Saints Row 3 player? Your signature (and color of your signature) might suggest that you are. If so, you get another point in my book. lol anyway, here's an on-topic question I just thought of for Kazyn (when he returns): the cave looks quite big.. so I'm betting there's going to be a whole host of spiders in there, rather than just one lone one, I mean unless it's just one giant patrol route for the lone spider, I guess that could warrant using that much space for the cave (not saying I dislike that, if it's the case, but my mental image of the scene puts multiple spiders in there right now). so is this lair going to be swarming with them? or just one lone one? or maybe somewhere in between? and here's another: when you get caught with your follower, will they spawn up, cocooned right next to you? or somewhere else? also, do they automatically get free when you get loose? or do you have to go up and free them as well? and one last thing: when you fail to escape, do you hear them do a "death cry" too? or just the player character? The cave is actually not as big as I think you think it is. There won't be a swarm of spiders, but there will be more than one (at least your first time through). After your first escape, well... if you get caught again, then you've been there before, and you either snuck past them all, or you kicked their ass. HOWEVER... you will have to kill your "captor" spider as it were, or you cannot escape the cave at all. The only way out will be webbed off and THIS web wall, can't be slashed/burned through. So maybe you think that sounds cool, except, well... I couldn't make the web wall activate-able, so it just goes away when you kill the spider responsible for you. The original intent (and I'm pseudo-sticking by it) is that the spider drops a sample of its venom which can only be used to dissolve the web. It just happens instantly... >_> Are there other ways to do it, absolutely, but right now, I need to get the mod working first. I've thought about placing the follower somewhere else, (and its very possible to do) but I'd also like to not have the followers be forgotten (mostly because I don't know how I would implement the "what-if" scenario if the follower were to be left behind) and also because it's going to just further delay the release. Let me be clear, the original intent of this mod was to not even take it further than initial entanglement. Just add some interaction to the escape process. Adding the cave escape process was well beyond anything I had intended on embarking on, considering this is a VERY EARLY point in my Skyrim modding "career," as it were. Back on the subject, I'm trying to implement a dialogue option that gives you the option to free them, but I can't say whether or not it's going to work. I need to first see if I can get them in the cave in the first place - intentionally, as opposed to the game freaking out that it can't path the follower(s) a way to the player and so it just teleports them to the player. I don't know if this is still an issue, but try giving "J += 1" a try. It looks like gobbledegook, but it works for me. That would work too actually, I am using it in other places but the result, I'm afraid, is still the same. : \ EDIT: I've run into another issue. Perhaps someone can shed some light. Upon being RE-captured, the spider responsible for the player is resurrected. However, it seems to be stuck in a very default animation pose. It'd be like the problem you run into had you failed to run FNIS after installing a mod that used it... except it's more like for the spider model. With that said, it can't attack. It just slides over to me as though it was trying to attack, but can't because it can't animate itself. What causes this and how can it be avoided? I'm going to try and send it an animation event in the meantime and see if that works.
Stiltzkinator Posted March 12, 2014 Posted March 12, 2014 EDIT: I've run into another issue. Perhaps someone can shed some light. Upon being RE-captured, the spider responsible for the player is resurrected. However, it seems to be stuck in a very default animation pose. It'd be like the problem you run into had you failed to run FNIS after installing a mod that used it... except it's more like for the spider model. With that said, it can't attack. It just slides over to me as though it was trying to attack, but can't because it can't animate itself. What causes this and how can it be avoided? I'm going to try and send it an animation event in the meantime and see if that works. This is a common issue when entities are 'resurrected' using the game's own script (ESPECIALLY for non-human entities). Would it be possible to scrap the old spider's body and spawn a new one in its place, instead of resurrecting? Alternatively, I believe there is a way to fix this that involves something like 'reloading' the entity in question, but I can't remember it off the top of my head.
WaxenFigure Posted March 12, 2014 Posted March 12, 2014 Actor[] Function FindFollowers() Actor[] Followers = new Actor[100] ; Largest follower mod I know of was limited to 100 Cell playerCell = player.getParentCell() int i = playerCell.getNumRefs(43) ; Not zero based, is actual count int j = 0 int k = 0 while (j < i && i > 0) j += 1 ; Sorry about the j++, I program in many languages so sometime the lines blur between them Actor akActor = playerCell.getNthRef(j, 43) as Actor Debug.Notification("i=" + i + " j=" + j + " k=" + k) ; If you get stuck in this loop this will tell you why, comment it out or delete it once the problem is fixed if akActor.IsPlayerTeammate() Followers[k] = akActor if k < 99 k += 1 EndIf EndIf EndWhile Return Followers[] EndFunctionTrying to give you a more complete function for future use.
bleeb Posted March 12, 2014 Posted March 12, 2014 thanks for the detailed response, but on the follower thing, that means they will be wrapped up near you then right? and if you can't get a "free follower" option going, it might be best just to have them be freed when the player is too
Kazyn Posted March 12, 2014 Posted March 12, 2014 This is a common issue when entities are 'resurrected' using the game's own script (ESPECIALLY for non-human entities). Would it be possible to scrap the old spider's body and spawn a new one in its place, instead of resurrecting? Alternatively, I believe there is a way to fix this that involves something like 'reloading' the entity in question, but I can't remember it off the top of my head. I've thought about that but wouldn't that cause save-game bloat? I guess marking the old body for deletion COULD help? But I can't be sure if it truly deletes the old body or not. Trying to give you a more complete function for future use. Ooooh, Arrays... my old nemesis. I knew they would creep up on me at some point. No matter how much reading I've done on arrays I just can't seem to grasp them, but then I also have never really seen one in action that I could understand. I'll do my best with this one though.
Stiltzkinator Posted March 12, 2014 Posted March 12, 2014 I've thought about that but wouldn't that cause save-game bloat? I guess marking the old body for deletion COULD help? But I can't be sure if it truly deletes the old body or not. As far as I know, when non-humans(/humanoids/elves/whatever) are removed, they are simply removed. The game has a special storage space for the dead bodies of people, though. I'll look into it, but technically speaking, it shouldn't by any worse than the ridiculous numbers of radiant dragon attacks that are capable of occuring (I've had radiant dragon attacks occur 10+ times in Falkreath alone, all in a single game file). Regardless, it's a great idea to try to prevent any problems before they happen, so good thinking. @WaxenFigure: Thanks for picking up on what I was going for and converting it so it would work in Skyrim. I'm actually learning a lot here now that I can see some raw code. Perhaps I'll make some of my own mods in the future.
WaxenFigure Posted March 12, 2014 Posted March 12, 2014 Watch out and make sure you use the PlaceAtMe function to create a spider and not the similar and easier to use PlaceActorAtMe function. The latter forces the "persistant" flag on which means the placed actor cannot be deleted and will thus lead to save game bloat. If you do prefer to use PalceActorAtMe you should keep track of the original reference and just resurrect and reuse it after first creating it. Of course better yet just skip doing it in script and place the spider in the cave using the CK, then all you need to do is just use the script function on the cave to reset it completely before moving the player to it.
Kazyn Posted March 12, 2014 Posted March 12, 2014 Actor[] Function FindFollowers() Actor[] Followers = new Actor[100] ;New variable of data type Actor named "Followers" assigned to new 100 element array "Actor" Cell playerCell = Victim.getParentCell() ;Assigned PlayerCell to the victim's current cell (defined earlier in script) int i = playerCell.getNumRefs(43) ;Get number of NPC references in the cell that the victim (the player) is in. int j = 0 int k = 0 while (j < i && i > 0) j += 1 ;j is now equal to 1 on the first instance of this function being run Actor akActor = playerCell.getNthRef(j, 43) as Actor ;Get reference 1 (because j is currently equal to 1) and assign it to akActor Debug.Notification("i=" + i + " j=" + j + " k=" + k) if akActor.IsPlayerTeammate() Followers[k] = akActor ;Assign akActor to index "k" (which is 0 in this case) in the Follower array (do I need to define the follower array?) if k < 99 k += 1 EndIf EndIf EndWhile Return Followers[] ;Return the array "Followers" This line does not compile. "No viable alternative output at ']'" EndFunction This is me trying to perform a sort of pseudo hand-trace/desk-check on the code. The above scenario assumes there's only 1 follower for the moment (and therefore the While Loop should only have one instance). I've had my nose deep in some articles the past hour now trying to get spun up on arrays. I think, should this work, I can refer to Follower[0] when telling the game to move my single follower? i.e. Follower[0].MoveTo(CaveLocation) I'll mess around some more with it and see what I come up with. EDIT: Whoa, you can reset the whole cave?! I need to find the function that does that! lol Right now I have a pre-placed spider from the CK, and have it following a patrol path. When the player escapes, the that pre-placed spider is enabled (it's initially disabled) and there is a trigger volume that the player will end up entering that causes additional spiders to repel down from ceiling sinkholes. Will resetting the cave reset that ambush (I hope it does) and will it restore the pre-placed spider to be disabled as well? If so, then that works out nicely. EDIT 2: Found a MyCell.Reset() function. Let's do this!
Kazyn Posted March 12, 2014 Posted March 12, 2014 Well... more snags. Lovely. Resetting the cell does nothing for whatever reason. Checked the Respawn flags, those were fine, all objects that I moved didn't revert to their original position (I kicked a human spine and deer skull across the cave) and the spider corpses were still just that. Corpses... in the same place I killed them. So that option might be out. Gonna have to go to the old resurrection method I was using but instead figure out how to unlock its animations after resurrection. I also tried a separate function that didn't involve cycling through an array to get my follower and it's only somewhat working. The follower reference is gained, so that function is working, and will be a placeholder function until I can grasp Waxen's code a bit better. However, for some reason the follower isn't moving to the marker I specified, so it's a bit interesting to see it hung up at the entrance of the cave as opposed to somewhere near the player.
bleeb Posted March 12, 2014 Posted March 12, 2014 ouch, sounds a bit awkward! so the follower is cocooned and hung near the entrance? lol
Kazyn Posted March 12, 2014 Posted March 12, 2014 Yeah I think I might've found the issue with that, though. I also had to make NPCs immune to becoming webbed by spider spit again, otherwise when the time came for the player to get captured, I would get smacked in the face with a CTD. I'm not terribly broken up about it, though, because this mod is player-oriented. NPCs can't get captured unless the player is. EDIT: Alright, got the follower to end up where I wanted it. As for unlocking the animation of a resurrected spider, still got to figure that out. Using the RecycleActor command in the console resets the position and animations of the resurrected spider. If I can figure out the scripting equivalent of that, then I might be back in business. EDIT 2: Looks like I might be able to call a Spider.Reset. I'll give that a shot.
bleeb Posted March 12, 2014 Posted March 12, 2014 aha, so they can't get webbed ever? or only the first time? unless the player is caught? yeah, whatever works. good to hear! you could be back to back in business! good luck, watching this progress has been fun!
Kazyn Posted March 12, 2014 Posted March 12, 2014 The reset command worked. Clearing the cave for the first time will make your subsequent escapes easier for now. I'm going to do some finishing touches and push an early beta. Expect to hear something on that soon.
bleeb Posted March 12, 2014 Posted March 12, 2014 awesome!! I can't wait, sounds great to me, and I'm eager to test it, though you might not hear my feedback on it until tomorrow, as it's late here now and I'll probably faceplant into my pillow after I download it
Kazyn Posted March 12, 2014 Posted March 12, 2014 http://www.loverslab.com/files/file/845-arachnophobia-expansion/There's the first beta. Let me know when you find that it's broken. lol
bleeb Posted March 12, 2014 Posted March 12, 2014 awesome! thanks, I'll let you know all feedback ASAP. eager to test this.
Princessity Posted March 12, 2014 Author Posted March 12, 2014 I put a linky to your expansion in my first post Kazyn! Mebe now people will stop asking me to expand it and I won't be remembered as Miss Spiders anymore! XD I'm still so confused why people like this "mod" but I'm happy I could start something worthwhile! Now you'll be known as the spider mod person: have funs! ^^
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now