Kurzusseus Posted August 5, 2014 Share Posted August 5, 2014 (edited) Hello, I have fun just messing around with scripts on skyrim's creation kit and apply certain aspects to my own modssometimes. But I was delving into some Skyrim exploits and wondered how I can do the following script A script where Actor 1 is alive and well, but if actor 2 begins using an object, after a select amount of timeactor 1 will die. However, is actor 2 stops using the object, actor 1 will be fine as the script would cancel itself out. So I guess the simplest way to ask would be:How would I make a script that kills an actorafter a select time when in use? And whenits no longer in use- the script cancels. Edited August 5, 2014 by Kurzusseus Link to comment Share on other sites More sharing options...
Mattiewagg Posted August 5, 2014 Share Posted August 5, 2014 You'd have to tell me what object is being activated. If it's like a door, then I'm not sure how to do it since it only takes a second (or far, far less) to activate the door. However, if it's something with a trigger around it like a pressure plate, then I can show you a script. Link to comment Share on other sites More sharing options...
Kurzusseus Posted August 5, 2014 Author Share Posted August 5, 2014 An object like a chair, or lay target, something that is constantly in use until you manually stop using it. Link to comment Share on other sites More sharing options...
Mattiewagg Posted August 5, 2014 Share Posted August 5, 2014 (edited) Okay. Let's say it's a chair. Here's the script: Scriptname MyKillActor1Script Extends Actor {Attach this to Actor2} Actor Property Actor1 Auto; be sure to fill this ObjectReference Property MyChair Auto; be sure to fill this Event OnSit(ObjectReference akFurniture) If akFurniture == MyChair Utility.Wait(5.0); replace 5.0 with your number of choice If Self.GetSitState() == 3||4; if actor2 is still sitting Actor1.Kill() EndIf EndIf EndEvent If that doesn't work, you could try the following, though it's a bit convoluted: Scriptname MyKillActor1Script Extends Actor {Attach this to Actor2} Actor Property Actor1 Auto; be sure to fill this ObjectReference Property MyChair Auto; be sure to fill this Int SitTime = 0 Event OnSit(ObjectReference akFurniture) If akFurniture == MyChair While SitTime < 5 && Self.GetSitState() == 3||4; replace 5 with how long actor ;2 must be sitting before actor1s death Utility.Wait(1.0) SitTime += 1 EndWhile If SitTime == 5; replace 5 with the number you used above Actor1.Kill();kill actor1 EndIf If Self.GetSitState() != 3||4; if actor2 is no longer sitting SitTime = 0; restart the SitTimer EndIf EndIf EndEvent Edited August 5, 2014 by Matthiaswagg Link to comment Share on other sites More sharing options...
Kurzusseus Posted August 5, 2014 Author Share Posted August 5, 2014 The first script kills him, but when the actor2 is no longer on the chair- he still dies anyway.I tried messing around with it myself adding a bool completed = false and completed stagebut It just made him die the second the chair was activated. Script 2 doesn't work at all. Link to comment Share on other sites More sharing options...
Mattiewagg Posted August 5, 2014 Share Posted August 5, 2014 Ah, sorry. I was really tired last night. I'll give you some working ones in a bit. Link to comment Share on other sites More sharing options...
Mattiewagg Posted August 5, 2014 Share Posted August 5, 2014 OK. This one should work. Also, the script I gave you earlier (Script 1) - I'm surprised it even worked. I made a stupid mistake leaving out an EndIf. Scriptname MyKillActor1Script Extends Actor {Attach this to Actor2} Actor Property Actor1 Auto; fill this property ObjectReference Property MyChair Auto; fill this property Int SitTime = 0 Event OnSit(ObjectReference akFurniture) If akFurniture == MyChair While SitTime < 5 && Self.GetSitState() == 3||4; replace 5 with number of choice Utility.Wait(1.0) SitTime += 1 EndWhile If SitTime = 5 Actor1.Kill() SitTime += 1 EndIf EndIf EndEvent Event OnGetUp(ObjectReference akFurniture) If akFurniture == MyChair && SitTime < 5 SitTime = 0 EndIf EndEvent Link to comment Share on other sites More sharing options...
Kurzusseus Posted August 7, 2014 Author Share Posted August 7, 2014 ok finally got around to testing it. Now he wont die, plus I had to fix the time variable output. You had it set as SitTime = 5 not SitTime == 5. I have to say I thought this would be much more simpler lol I'll continue to mess around with the script and see if I can get it to work, unless you want to give itanother go. Thanks for helping. Link to comment Share on other sites More sharing options...
Mattiewagg Posted August 7, 2014 Share Posted August 7, 2014 ok finally got around to testing it. Now he wont die, plus I had to fix the time variable output. You had it set as SitTime = 5 not SitTime == 5. I have to say I thought this would be much more simpler lol I'll continue to mess around with the script and see if I can get it to work, unless you want to give itanother go. Thanks for helping. Try adding a Debug.Notification in between If SitTime == 5 and Actor1.Kill() to check if that is ever being received. Link to comment Share on other sites More sharing options...
Mattiewagg Posted August 8, 2014 Share Posted August 8, 2014 Ok, back again to help. Me and my faulty scripts. This one should work though, and I mean it this time. Scriptname MyKillAct1Script Extends Actor {Poor Actor 1} Actor Property Actor1 Auto ObjectReference Property MyChair Auto Int SitTime = 0 Event OnSit(ObjectReference AkFurniture) If AkFurniture == MyChair RegisterForUpdate(1.0) EndIf EndEvent Event OnUpdate() While SitTime < 5;replace 5 with number of choice SitTime += 1 RegisterForSingleUpdate(1.0) EndWhile If SitTime >= 5;replace 5 with your numbers UnregisterForUpdate() Actor1.Kill() EndIf EndEvent Event OnGetUp(ObjectReference AkFurniture) If AkFurniture == MyChair If SitTime < 5 UnregisterForUpdate() SitTime = 0 EndIf EndIf EndEvent I haven't tested it yet but it should work. Get back to me once you've tested it. Link to comment Share on other sites More sharing options...
Recommended Posts