#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package Player.RemoteQuery.GY_Query_SetPlayerAttr
|
#
|
# @todo:ÉèÖÃÍæ¼ÒÊôÐÔ
|
# @author hxp
|
# @date 2018-12-21
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ÉèÖÃÍæ¼ÒÊôÐÔ
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2018-12-21 18:00"""
|
#-------------------------------------------------------------------------------
|
|
import GameWorld
|
import PlayerControl
|
import CrossRealmPlayer
|
|
## Ö´Ðнá¹û
|
# @param curPlayer ·¢³öÇëÇóµÄÍæ¼Ò
|
# @param callFunName ¹¦ÄÜÃû³Æ
|
# @param funResult ²éѯµÄ½á¹û
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoResult(curPlayer, callFunName, funResult, tick):
|
if not funResult:
|
return
|
setInfo = eval(funResult)
|
if not isinstance(setInfo, list) or len(setInfo) < 2:
|
return
|
|
attrName, value = setInfo[:2]
|
if hasattr(curPlayer, attrName):
|
# ÒªÔÚ¸üÐÂֵ֮ǰ´¦Àí
|
if attrName == "SetExAttr5" and not GameWorld.IsCrossServer():
|
if value:
|
CrossRealmPlayer.DoEnterCrossRealm(curPlayer)
|
elif PlayerControl.GetCrossMapID(curPlayer):
|
CrossRealmPlayer.DoExitCrossRealm(curPlayer)
|
|
callObj = getattr(curPlayer, attrName)
|
callObj(value)
|
GameWorld.Log("SetPlayerAttr curPlayer.%s, value=%s" % (attrName, value), curPlayer.GetPlayerID())
|
|
elif hasattr(PlayerControl, attrName):
|
callObj = getattr(PlayerControl, attrName)
|
callObj(curPlayer, value)
|
GameWorld.Log("SetPlayerAttr PlayerControl.%s, value=%s" % (attrName, value), curPlayer.GetPlayerID())
|
|
return
|
|
|
|
|
|