Difference between revisions of "Talk:GetDialogueTarget - Actor"

From the CreationKit Wiki
Jump to navigation Jump to search
imported>Zartar
imported>Zartar
Line 45: Line 45:
EndFunction
EndFunction


; Print a message if the player is in dialogue with Bob.
Event SomeEvent()
if (GetPlayerDialogueTarget() == Bob)
        ; Print a message if the player is in dialogue with Bob.
  Debug.Trace("The player is in dialogue with Bob!")
        if (GetPlayerDialogueTarget() == Bob)
endIf
                Debug.Trace("The player is in dialogue with Bob!")
        endIf
EndEvent
</source>
</source>



Revision as of 21:12, 9 February 2013

Obtains the actor the player is currently in dialogue with.

Syntax

Actor Function GetPlayerDialogueTarget() non-native

Source:

Actor Function GetPlayerDialogueTarget()
	Actor kPlayerDialogueTarget
        Actor kPlayerRef = Game.GetPlayer()
	Int iLoopCount = 10
	While iLoopCount > 0
		iLoopCount -= 1
		kPlayerDialogueTarget = Game.FindRandomActorFromRef(kPlayerRef , 200.0)
		If kPlayerDialogueTarget != kPlayerRef && kPlayerDialogueTarget.IsInDialogueWithPlayer() 
			Return kPlayerDialogueTarget
		EndIf
	EndWhile
        Return None
EndFunction

Parameters

None.

Return Value

The actor the player is currently in dialogue with (if any).

Examples

;This is a custom function so you have to include it in your script.
Actor Function GetPlayerDialogueTarget()
	Actor kPlayerDialogueTarget
        Actor kPlayerRef = Game.GetPlayer()
	Int iLoopCount = 10
	While iLoopCount > 0
		iLoopCount -= 1
		kPlayerDialogueTarget = Game.FindRandomActorFromRef(kPlayerRef , 200.0)
		If kPlayerDialogueTarget != kPlayerRef && kPlayerDialogueTarget.IsInDialogueWithPlayer() 
			Return kPlayerDialogueTarget
		EndIf
	EndWhile
        Return None
EndFunction

Event SomeEvent()
        ; Print a message if the player is in dialogue with Bob.
        if (GetPlayerDialogueTarget() == Bob)
                Debug.Trace("The player is in dialogue with Bob!")
        endIf
EndEvent

Notes

This usually finds the actor the player is in dialogue with but more testing is required. It works very well for me, so far... I tend to modify this by passing in the player's reference and lowering iLoopCount but the version I posted is safe and convenient.

See Also