Difference between revisions of "Talk:IsSneaking - Actor"
Jump to navigation
Jump to search
imported>MaboroshiDaikon |
imported>MaboroshiDaikon |
||
Line 90: | Line 90: | ||
Replacing IsSneaking() with IsWeaponDrawn() works. | Replacing IsSneaking() with IsWeaponDrawn() works. | ||
:UPDATE- In case things weren't weird enough... this works just fine: | :UPDATE- In case things weren't weird enough... this works just fine: EDIT- NOT! | ||
<source lang="papyrus">Scriptname PlayerHorseScript extends ReferenceAlias | <source lang="papyrus">Scriptname PlayerHorseScript extends ReferenceAlias | ||
bool IsPlayerSneaking | bool IsPlayerSneaking | ||
Event OnActivate(ObjectReference akActionRef) | Event OnActivate(ObjectReference akActionRef) | ||
Line 128: | Line 112: | ||
EndIf | EndIf | ||
EndEvent | EndEvent</source> | ||
Okay, if you activate the horse just as the player's feet touch the ground (and the player had been sneaking when mounting previously), it will work. Wait a second and no dice. Not sure what's going on here... |
Revision as of 11:25, 11 February 2012
Syntax
I can get the following to work as expected:
If (Game.GetPlayer().IsWeaponDrawn() == 1)
;Do Something
EndIf
But the following does not:
If (Game.GetPlayer().IsSneaking() == 1)
;Do Something
EndIf
Tried the following syntax and still no luck:
If (Game.GetPlayer().IsSneaking())
;Do Something
EndIf
- This script worked exactly as I expected:
Scriptname CodeTestScript extends Quest
Event OnInit()
RegisterForUpdate(3)
EndEvent
Event OnUpdate()
if (Game.GetPlayer().IsSneaking())
Debug.Notification("Player is sneaking")
else
Debug.Notification("Player is not sneaking")
endif
EndEvent
- As a side note, this function returns a bool, so why are you comparing it with 1? It's more semantically correct, but just as superfluous, to compare it with true
- -- Cipscis 23:11, 10 February 2012 (EST)
- I was originally using just as you did, but when that didn't work, I switched to the comparison with 1. I'm wondering if this is an issue with the ReferenceAlias type script instead of the command itself. Here's the complete code I'm having issues with:
Scriptname PlayerHorseScript extends ReferenceAlias
Event OnDeath(Actor akKiller)
MySelf = GetActorReference()
EndEvent
Event OnUnload()
If MySelf.IsDead() == 1
; disable the dead horse if it is unloaded
MySelf.Disable()
MySelf.Delete()
; added a new horse that can be bought at the stables
Myself = StablesPosition.PlaceActorAtMe(LvlHorseSaddled)
Alias_HorseRef.ForceRefTo(MySelf)
Alias_HorseRef.GetRef().SetFactionOwner(StablesFaction)
EndIf
EndEvent
Event OnActivate(ObjectReference akActionRef)
If (akActionRef == Game.GetPlayer())
If Game.GetPlayer().IsSneaking()
Debug.MessageBox("Sneak Activate Horse!!")
HorseChest.Activate(Game.GetPlayer(), true)
Else
Debug.MessageBox("Normal Activate Horse!! " + HorseChest)
;HorseChest.Activate(Game.GetPlayer(), true)
EndIf
EndIf
EndEvent
Actor Property MySelf Auto
ObjectReference Property StablesPosition Auto
ActorBase Property LvlHorseSaddled Auto
ReferenceAlias Property Alias_HorseRef Auto
Faction Property StablesFaction Auto
ObjectReference Property HorseChest Auto
Replacing IsSneaking() with IsWeaponDrawn() works.
- UPDATE- In case things weren't weird enough... this works just fine: EDIT- NOT!
Scriptname PlayerHorseScript extends ReferenceAlias
bool IsPlayerSneaking
Event OnActivate(ObjectReference akActionRef)
If Game.GetPlayer().IsSneaking()
IsPlayerSneaking = true
Else
IsPlayerSneaking = false
EndIf
If (akActionRef == Game.GetPlayer() && IsPlayerSneaking)
Debug.MessageBox("Sneak Activate Horse!!")
HorseChest.Activate(Game.GetPlayer(), true)
Else
Debug.MessageBox("Normal Activate Horse!! " + HorseChest)
;HorseChest.Activate(Game.GetPlayer(), true)
EndIf
EndEvent
Okay, if you activate the horse just as the player's feet touch the ground (and the player had been sneaking when mounting previously), it will work. Wait a second and no dice. Not sure what's going on here...