ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -105,6 +105,7 @@
import PlayerNewFairyCeremony
import PlayerFeastRedPacket
import PlayerLuckyTreasure
import Item_ResetAttrPoint
import CrossRealmPlayer
import ChNetSendPack
import FamilyRobBoss
@@ -116,6 +117,7 @@
import PlayerCoat
import PlayerQuDaoDoubleBill
import PlayerFB
import SkillShell
import datetime
import time
@@ -548,14 +550,8 @@
    #PKģʽ
    SyncPKModel(curPlayer)
        
    #通用强化星级信息
    ChEquip.NotifyEquipPartPlusLV(curPlayer)
    ChEquip.NotifyEquipPartStar(curPlayer)
    Operate_EquipWash.OnEquipWashLogin(curPlayer)
    #通知套装信息
    #ChEquip.SyncAllEquipAttrActiveInfo(curPlayer)
    #装备位宝石镶嵌通知
    Operate_EquipStone.OnLogin(curPlayer)
    #装备相关信息
    ChEquip.OnPlayerEquipLoginLogic(curPlayer)
    
    #大师
    PlayerGreatMaster.MasterOnLogin(curPlayer)
@@ -769,6 +765,8 @@
    #缥缈仙域
    PlayerFairyDomain.OnLogin(curPlayer)
    PlayerFB.OnLogin(curPlayer)
    #技能专精信息
    SkillShell.NotifyElementSkillInfo(curPlayer)
    
    curPlayer.SetState(0)   # 脱机挂恢复为正常上线
    curPlayer.SetFacePic(0) # 通知数据库是否保存还是下线,做一次恢复,1为保存 0为正常下线
@@ -1091,8 +1089,6 @@
        PlayerGameEvent.TakeoffFishermanEquipment(curPlayer)
    #切地图要清除的buff
    __CheckClearBuffOnMapChange(curPlayer, tick)
    #上线和切地图加有限无敌Buff
    SkillCommon.AddBuffBySkillType_NoRefurbish(curPlayer, ChConfig.Def_SkillID_LimitSuperBuff, tick)
            
    #刷新玩家的视野
    if not GameWorld.IsCrossServer() and PlayerControl.GetCrossMapID(curPlayer):
@@ -1443,6 +1439,11 @@
    #if not __CheckGMCanLoadMapOK(curPlayer):
    #    return
    
    #上线和切地图加有限无敌Buff, 移到切换地图成功,太早发包客户端不显示
    if curPlayer.GetLV() > 50:
        SkillCommon.AddBuffBySkillType_NoRefurbish(curPlayer, ChConfig.Def_SkillID_LimitSuperBuff, tick)
    #检测账号是否锁定
    if not __CheckForbidLogin(curPlayer):
        return
@@ -1771,6 +1772,37 @@
    playerControl.RefreshPlayerAttrState()
    return
#// B2 07 重置加点 #tagCMResetAttrPoint
#struct    tagCMResetAttrPoint
#{
#    tagHead         Head;
#};
def OnResetAttrPoint(index, clientData, tick):
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    ipyDataMgr = IpyGameDataPY.IPY_Data()
    canResetIDList = [ipyDataMgr.GetRolePointByIndex(index).GetAttrID() for index in xrange(ipyDataMgr.GetRolePointCount())]
    canReset = False
    for attrID in canResetIDList:
        curPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AddPointValue % attrID)
        if curPoint:
            canReset = True
            break
    if not canReset:
        GameWorld.DebugLog('重置加点 没有点数需要重置')
        return
    isFree = curPlayer.GetLV() < IpyGameDataPY.GetFuncCfg('LVUPAddPoint', 4)
    if not isFree:
        needItemID = IpyGameDataPY.GetFuncCfg('LVUPAddPoint', 5)
        itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
        hasEnough, itemList = ItemCommon.GetItem_FromPack_ByID(needItemID, itemPack, 1)
        if not hasEnough:
            GameWorld.DebugLog("重置加点 item(%s) isn't enough" % (needItemID))
            return
        ItemCommon.ReduceItem(curPlayer, itemPack, itemList, 1, False, ChConfig.ItemDel_ResetAttrPoint)
    Item_ResetAttrPoint.DoResetAttrPoint(curPlayer, 0, 0, 0)
    return
def NotifyPlayerBasePoint(curPlayer, syncAttrIDList=[]):
    # 通知基础属性点,已分配的自由点数