Difference between revisions of "Bug list"
imported>Black RL |
imported>Black RL |
||
Line 23: | Line 23: | ||
[[File:CKTUTLoadBug04.jpg]] | [[File:CKTUTLoadBug04.jpg]] | ||
Put the following script into the doors, safe object is the bucket, one door has to have 1 in TravelTo and the other has to have 2: | Put the following script into the doors, edit properties (NOT in the script, in CK), safe object is the bucket, one door has to have 1 in TravelTo and the other has to have 2: | ||
<source lang="papyrus"> | <source lang="papyrus"> | ||
Scriptname ACHSafeLoadScript extends ObjectReference | Scriptname ACHSafeLoadScript extends ObjectReference | ||
Line 49: | Line 49: | ||
EndEvent | EndEvent | ||
</source> | </source> | ||
Put this script in our awesome bucket, edit properties, select the the global, then press auto fill, it will fill all your objectives if you name them like I said: | |||
<source lang="papyrus"> | |||
Scriptname ACHSafeLoadCHILDScript extends ObjectReference | |||
;Written by Black RL, I'm no expert so don't bash | |||
;Called it CHILD but it isn't a real child, works with script ACHSafeLoadScript | |||
ObjectReference PlaceToGo | |||
Float GlobalValue | |||
GlobalVariable Property SafeLoadGlobal Auto | |||
{The global that controls travel objective} | |||
ObjectReference Property Objective001 Auto | |||
{Our objective, you can extend this} | |||
ObjectReference Property Objective001A Auto | |||
ObjectReference Property Objective002 Auto | |||
ObjectReference Property Objective002A Auto | |||
Actor ClosestActor | |||
Event OnLoad() | |||
debug.Notification("I'm loaded!") | |||
TravelTo() | |||
ClosestActor = Game.FindClosestActorFromRef(Self, 300.0) | |||
ClosestActor.MoveTo(PlaceToGo) | |||
EndEvent | |||
Function TravelTo() | |||
GlobalValue = SafeLoadGlobal.GetValue() | |||
If GlobalValue == 1 | |||
PlaceToGo = Objective001 | |||
ElseIf GlobalValue == 2 | |||
PlaceToGo = Objective001A | |||
ElseIf GlobalValue == 3 | |||
PlaceToGo = Objective002 | |||
ElseIf GlobalValue == 4 | |||
PlaceToGo = Objective002A | |||
;ElseIf | |||
;Extend here | |||
EndIf | |||
EndFunction | |||
</source> | |||
Done! Go test ingame! ^^ |
Revision as of 17:51, 17 June 2012
Version 1.6.89.0
You can check the discussion in the official forum here
- Interior cell has a static rm limit
- Load door in interior cell that connects to load door in exterior cell causes ctd
- Cow same exterior cell causes blue screen
- Video showcasing the bug
- Forum discussion
- Solution for this problem:
Create a new global variable (Object window -> global), see picture:
Create a new small cell (duplicate interior cell), this is important, make it small and put a bucket in the middle, that's right, a bucket!
Put the load doors as you normally do but don't check the teleport flag, put a XMarkerHeading in front of the doors (object window -> static), name one XMarkerHeading Objective001 and the other one Objective001A (that way you know that they are connected). Another set of load doors should be called for example Objective002 and Objective002A. See pictures:
Put the following script into the doors, edit properties (NOT in the script, in CK), safe object is the bucket, one door has to have 1 in TravelTo and the other has to have 2:
Scriptname ACHSafeLoadScript extends ObjectReference
;Written by Black RL, I'm no expert so don't bash
;Works with script ACHSafeLoadCHILDScript
;TravelTo defines objective and writes into the global, you can expand to suite your needs
;Objective001 is the first objective for the load door, Objective001A it's the way back so you keep track of things
;You can expand objective to suite your needs
GlobalVariable Property SafeLoadGlobal Auto
{The global that controls travel objective}
Float Property TravelTo Auto
{1 = Objective001, 2 = Objective001A, 3 = Objective002, 4 = Objective002A, etc....}
ImageSpaceModifier Property ImageSpaceToApply Auto
{Use FAdeToBlackBackImod}
ObjectReference Property SafeObject Auto
{Our object in the safe cell, I use a bucket}
Event OnActivate(ObjectReference akActionRef)
Debug.Notification("Activated by " + akActionRef)
SafeLoadGlobal.SetValue(TravelTo)
ImageSpaceToApply.Apply()
akActionRef.MoveTo(SafeObject)
EndEvent
Put this script in our awesome bucket, edit properties, select the the global, then press auto fill, it will fill all your objectives if you name them like I said:
Scriptname ACHSafeLoadCHILDScript extends ObjectReference
;Written by Black RL, I'm no expert so don't bash
;Called it CHILD but it isn't a real child, works with script ACHSafeLoadScript
ObjectReference PlaceToGo
Float GlobalValue
GlobalVariable Property SafeLoadGlobal Auto
{The global that controls travel objective}
ObjectReference Property Objective001 Auto
{Our objective, you can extend this}
ObjectReference Property Objective001A Auto
ObjectReference Property Objective002 Auto
ObjectReference Property Objective002A Auto
Actor ClosestActor
Event OnLoad()
debug.Notification("I'm loaded!")
TravelTo()
ClosestActor = Game.FindClosestActorFromRef(Self, 300.0)
ClosestActor.MoveTo(PlaceToGo)
EndEvent
Function TravelTo()
GlobalValue = SafeLoadGlobal.GetValue()
If GlobalValue == 1
PlaceToGo = Objective001
ElseIf GlobalValue == 2
PlaceToGo = Objective001A
ElseIf GlobalValue == 3
PlaceToGo = Objective002
ElseIf GlobalValue == 4
PlaceToGo = Objective002A
;ElseIf
;Extend here
EndIf
EndFunction
Done! Go test ingame! ^^