Jump to content

Arachnophobia by Miss Leeches (OBSOLETE!)


Recommended Posts

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.

Link to comment

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

Link to comment

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?

Link to comment

"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.

 

Link to comment

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.

Link to comment

 

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.

Link to comment
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[]
EndFunction
Trying to give you a more complete function for future use.
Link to comment

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

Link to comment

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.

Link to comment

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.

Link to comment

 

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.

Link to comment
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!

Link to comment

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.

Link to comment

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.

Link to comment

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! ^^

Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use