Difference between revisions of "Talk:OnContainerChanged - ObjectReference"

From the CreationKit Wiki
Jump to navigation Jump to search
imported>David Brasher
(Sample script added.)
imported>David Brasher
(Added a sample script.)
Line 2: Line 2:


Does anyone have any suggestions as to how to summarize that for the wiki page? - [[User:Chesko|Chesko]]
Does anyone have any suggestions as to how to summarize that for the wiki page? - [[User:Chesko|Chesko]]
== Sample Script for Quest-Coding ==
Here is a sample script using the OnContainerChanged block type:
<source lang="papyrus">
; Quest stage advances when the player finds the quest item:
Scriptname AAFoundTheQuestItem extends ObjectReference 
Event OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer)
        if (akNewContainer == Game.GetPlayer())
                AAQuest.SetStage (15)
        endif
EndEvent
Quest Property AAQuest  Auto
</source>
--[[User:David Brasher|David Brasher]] 19:17, 27 April 2012 (EDT)


== Script for Quest-Coding ==
== Script for Quest-Coding ==

Revision as of 18:17, 27 April 2012

I have a long discussion on potential bugs related to using this function on stacked items. See the discussion thread here: http://forums.bethsoft.com/topic/1349382-event-in-script-attached-to-misc-item-only-firing-once/

Does anyone have any suggestions as to how to summarize that for the wiki page? - Chesko

Sample Script for Quest-Coding

Here is a sample script using the OnContainerChanged block type:

; Quest stage advances when the player finds the quest item:
Scriptname AAFoundTheQuestItem extends ObjectReference  

Event OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer)
        if (akNewContainer == Game.GetPlayer())
                AAQuest.SetStage (15)
        endif
EndEvent

Quest Property AAQuest  Auto

--David Brasher 19:17, 27 April 2012 (EDT)


Script for Quest-Coding

Here is a script that can use an Event OnActivate block instead of an Event OnContainerChanged block:

; Quest stage advances when the player finds the quest item:
Scriptname AAFoundTheObject extends ObjectReference  

Event OnActivate (ObjectReference akActionRef)
        AAQuest.SetStage (15) 
EndEvent  

Quest Property AAQuest Auto

Note that the quest stage advances when the player activates the item, not when the player takes it and adds it to inventory. The player could forget to take an item like a book and could leave it in the dungeon. Then the player would walk all the way back to the quest-giver and realize that he or she didn't have the item and needed to go back to the dungeon and get it.

--David Brasher 18:47, 27 April 2012 (EDT)