Difference between revisions of "Talk:IsSneaking - Actor"
Jump to navigation
Jump to search
imported>MaboroshiDaikon |
imported>MaboroshiDaikon |
||
Line 89: | Line 89: | ||
Replacing IsSneaking() with IsWeaponDrawn() works. | Replacing IsSneaking() with IsWeaponDrawn() works. | ||
:UPDATE- In case things weren't weird enough... this works just fine: | |||
<source lang="papyrus">Scriptname PlayerHorseScript extends ReferenceAlias | |||
bool IsPlayerSneaking | |||
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 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 | |||
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</source> |
Revision as of 10:12, 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:
Scriptname PlayerHorseScript extends ReferenceAlias
bool IsPlayerSneaking
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 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
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