Can't Be Taken

Post » Mon Nov 19, 2012 2:42 pm

I feel like I've been posting just a little too much lately :biggrin: but this has been bothering me for awhile. :wallbash:

It seems the "Can't be taken" flag for books is broken. I have a few examples of some books that serve as a written guide to the features and layout of my player home. The major design paradigm is that they can't be taken or moved, only read.

Despite checking the box I find myself still able to take possession of the books.

Is this a known bug? Can anyone suggest any workarounds? I'm struggling to find a solution that doesn't involve spawning a new book each time the player tries to take it.
User avatar
FITTAS
 
Posts: 3381
Joined: Sat Jan 13, 2007 4:53 pm

Post » Mon Nov 19, 2012 9:12 pm

http://www.creationkit.com/BlockActivation_-_ObjectReference should do it. I'm pretty sure that flag for BOOK forms has never worked, but haven't tried recently,
User avatar
Hayley O'Gara
 
Posts: 3465
Joined: Wed Nov 22, 2006 2:53 am

Post » Mon Nov 19, 2012 12:51 pm

http://www.creationkit.com/BlockActivation_-_ObjectReference should do it. I'm pretty sure that flag for BOOK forms has never worked, but haven't tried recently,

Thanks. I'll give this a shot, but I'm not too hopeful.

It worked just fine in Oblivion. I'm pretty much porting an unreleased mod (of mine) to Skyrim and going for the exact same guide-book functionality.
User avatar
ZzZz
 
Posts: 3396
Joined: Sat Jul 08, 2006 9:56 pm

Post » Mon Nov 19, 2012 10:32 am

Blockactivation shoudn't work here, you need to activate the book in order to read it. What needed to be avoided is the taking, not the activation.

What about dropping from player's inventory and repositionning the book each time it's taken? (with the http://www.creationkit.com/DropObject_-_ObjectReferencefunction)
User avatar
Myles
 
Posts: 3341
Joined: Sun Oct 21, 2007 12:52 pm

Post » Mon Nov 19, 2012 3:21 pm

Just checked and the "Can't be taken" flag *seems to be working. Sure, the book can be grabbed/moved, but then all you've to do is make it static with http://www.creationkit.com/SetMotionType_-_ObjectReference. Formerly, when that flag didn't work, BlockActivation work-around did work seamlessly, as I recall, by activating another reference of the same book with a script attached directly to that reference.

*Skyrim version?
User avatar
Janeth Valenzuela Castelo
 
Posts: 3411
Joined: Wed Jun 21, 2006 3:03 am

Post » Mon Nov 19, 2012 2:07 pm

Latest Version of Skyrim + Creation Kit from Steam. Also I usually go for the beta participation when its available.

This is what I'm working with:
http://i101.photobucket.com/albums/m57/will_cuthill/CantBeTaken.png?t=1349420608

Seems pretty broken to me.
User avatar
CArlos BArrera
 
Posts: 3470
Joined: Wed Nov 21, 2007 3:26 am

Post » Mon Nov 19, 2012 11:00 am

Funky. I'd just tried with 1.7.7.0 and "Take" was shown when reading the book REFR but, aptly, nothing happened if attempting to take it.

If it just won't budge, place another reference to the book and script both references, the seen one with BlockActivation/SetMotionType/Activation of other book and the other book with DropObject OnContainerChanged. If the second book is 0 scale, it won't need to be moved back to its original position as it'll be innocuous.
User avatar
Stay-C
 
Posts: 3514
Joined: Sun Jul 16, 2006 2:04 am

Post » Mon Nov 19, 2012 12:57 pm

I was going to ask if "Take" was still shown for you. It is for me.

Is the book a existing reference that you are appending the "Can't be taken" flag or are you creating a new form? Interior or exterior cell?

Thanks, I'll be sure to implement something like that if I can't get that checkbox working.

Am I the only one with this problem/ is JustinOther the only one without it??
User avatar
TASTY TRACY
 
Posts: 3282
Joined: Thu Jun 22, 2006 7:11 pm

Post » Mon Nov 19, 2012 10:12 am

Was a preexisting BOOK form in an interior.
User avatar
Ray
 
Posts: 3472
Joined: Tue Aug 07, 2007 10:17 am

Post » Mon Nov 19, 2012 8:47 am

Same. This is strange.

*EDIT:Well your solution works excellently. So thank you for the tip, it would have taken me quite some time to engineer something similar myself.
User avatar
M!KkI
 
Posts: 3401
Joined: Sun Jul 16, 2006 7:50 am

Post » Mon Nov 19, 2012 9:55 am

Cool :) Also, try rolling back the beta Skyrim to 1.7.7.0. Might be a bug with the beta build in which case it needs to be reported.
User avatar
Esther Fernandez
 
Posts: 3415
Joined: Wed Sep 27, 2006 11:52 am

Post » Mon Nov 19, 2012 3:54 pm

I'm pretty sure it's not on beta at the moment because none are available to me (to opt in or out). Skyrim is 1.7.7.0.6 and CK is 1.6.89.0.
Also running SKSE 1.5.11 r27.

*EDIT: I don't have Dawnguard or Hearthfire either.
User avatar
ZzZz
 
Posts: 3396
Joined: Sat Jul 08, 2006 9:56 pm

Post » Mon Nov 19, 2012 5:43 pm

Ok, having a bit of a freak out right now about this.

Initially the methodology stated above (JustinOther) worked perfectly. I don't know how or what's changed but now BlockActivation() does not seem to work properly on the very first activation. All subsequent activations work flawlessly.

This is a major problem.

Initial tests were conducted by COC into cell from main menu. Current tests involve the same thing + using existing clean save (my actual game save).

Script 1:
Spoiler

Scriptname MDHYouCannotTakeMeHahaScript extends ObjectReference{Prevents Player from taking scummy broken Guide book that they shouldn't be able to anyway}ObjectReference Property GuideStatic AutoObjectReference Property GuideRead AutoEvent OnLoad()SetMotionType(GuideStatic.Motion_Keyframed)  BlockActivation()EndEventEvent OnActivate(ObjectReference akActionRef)  If akActionRef == game.getPlayer()   GuideRead.Activate(akActionRef)  endifEndEvent


Script 2:
Spoiler

Scriptname MDHYouCannotTakeMeHahaScript02 extends ObjectReference{Dictates seconday part of non-book-taking}Event OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer)DropObject(akNewContainer)  SetScale(0.0)EndEvent

Please excuse naming convention haha.

The only thing that has changed that I can possibly think of as relevant, is that another object nearby now also uses BlockActivation. Both objects conform to the same problematic behaviour.


*EDIT: Got it sorted. All I had to do was change where BlockActivation() was called. Changed to OnLoad event.
Updated posted script.
User avatar
Mylizards Dot com
 
Posts: 3379
Joined: Fri May 04, 2007 1:59 pm

Post » Mon Nov 19, 2012 3:45 pm

Script 2: I'd imagine you want to drop a BOOK form rather than a CONT or _NPC? Currently, DropObject's akObject is akNewContainer from OnContainerChanged.
User avatar
sas
 
Posts: 3435
Joined: Thu Aug 03, 2006 8:40 am

Post » Mon Nov 19, 2012 4:31 pm

Oh, I thought that was where it was going to be dropped from. Thats probably pretty obvious, where else can it get dropped from?

Seems to work though.
User avatar
jadie kell
 
Posts: 3497
Joined: Sat Jul 29, 2006 3:54 pm

Post » Mon Nov 19, 2012 3:09 pm

akItem is the item you want to drop, so you'd want to put the BOOK form in there (or the ObjectReference to the book provided it's persistent might work). Gotta run...
User avatar
Catharine Krupinski
 
Posts: 3377
Joined: Sun Aug 12, 2007 3:39 pm


Return to V - Skyrim