2023-12-04 15:02:58 +00:00
|
|
|
Scriptname PlayerBookShelfTriggerSCRIPT extends ObjectReference
|
2023-12-06 15:31:10 +00:00
|
|
|
{This script has been overhauled to fix several issues listed in USLEEP 3.0.1 - Bug #19515. This overhaul was contributed by Adria.}
|
2023-12-04 15:02:58 +00:00
|
|
|
|
|
|
|
import debug
|
|
|
|
import utility
|
|
|
|
|
|
|
|
ObjectReference Property ShelfContainer auto hidden
|
|
|
|
|
|
|
|
Bool Property AlreadyLoaded = FALSE Auto Hidden
|
|
|
|
|
|
|
|
|
|
|
|
EVENT OnCellLoad()
|
|
|
|
if AlreadyLoaded == FALSE
|
|
|
|
ShelfContainer = GetLinkedRef()
|
|
|
|
AlreadyLoaded = TRUE
|
|
|
|
endif
|
|
|
|
endEVENT
|
|
|
|
|
|
|
|
|
|
|
|
auto STATE WaitForBooks
|
|
|
|
|
|
|
|
EVENT OnBeginState()
|
|
|
|
;Trace(self + " BOOKTRIGGER - Waiting For Books!")
|
|
|
|
endEVENT
|
|
|
|
|
|
|
|
EVENT OnTriggerEnter(ObjectReference TriggerRef)
|
|
|
|
;Trace("DARYL - " + self + " Reference " + TriggerRef + " has ENTERED")
|
|
|
|
|
|
|
|
endEvent
|
|
|
|
|
|
|
|
EVENT OnTriggerLeave(ObjectReference TriggerRef)
|
|
|
|
; Reference has left this trigger
|
|
|
|
if GetParentCell().IsAttached()
|
|
|
|
;Trace("DARYL - " + self + " Reference " + TriggerRef + " has EXITED")
|
|
|
|
if (TriggerRef == Game.GetPlayerGrabbedRef())
|
|
|
|
; Check to see if the player is holding it
|
|
|
|
;Trace("DARYL - " + self + " Player has a hold of this reference, do nothing")
|
|
|
|
else
|
|
|
|
; Player isnt' grabbing this reference, check to see if it's in the container.
|
2023-12-06 15:31:10 +00:00
|
|
|
;Trace("BookShelfFix Trigger - Trying to pick up " + TriggerRef)
|
|
|
|
;if Shelfcontainer.GetItemCount(TriggerRef.GetBaseObject()) >= 1
|
|
|
|
;USLEEP 3.0.1 - Bug #19515
|
|
|
|
(Shelfcontainer as PlayerBookShelfContainerScript).PickUp(TriggerRef)
|
|
|
|
;(Shelfcontainer as PlayerBookShelfContainerScript).CurrentBookAmount = (Shelfcontainer as PlayerBookShelfContainerScript).CurrentBookAmount - 1
|
|
|
|
;(ShelfContainer as PlayerBookShelfContainerScript).RemoveBooks((TriggerRef.GetBaseObject()), 1)
|
|
|
|
;else
|
2023-12-04 15:02:58 +00:00
|
|
|
; There is no book based on this form in the container
|
|
|
|
;Trace("DARYL - " + self + " Container doesn't contain this book")
|
2023-12-06 15:31:10 +00:00
|
|
|
;endif
|
2023-12-04 15:02:58 +00:00
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endEvent
|
|
|
|
|
|
|
|
|
|
|
|
endSTATE
|
|
|
|
|
|
|
|
|
|
|
|
STATE IgnoreBooks
|
|
|
|
Event OnBeginState()
|
|
|
|
;Trace(self + " BOOKTRIGGER - Ignoring Books!")
|
|
|
|
endEVENT
|
|
|
|
endSTATE
|
|
|
|
|
|
|
|
|
|
|
|
int Property testint Auto
|