| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
|   | 
| ##@package SetFreePoint  | 
| # ÉèÖàָ¶¨ÕʺÅ<Íæ¼ÒID>µÄδ·ÖÅäµãÊý<δ·ÖÅäµãÊý>  | 
| #  | 
| # @author ifo  | 
| # @date 2010-4-23  | 
| # @version 1.0  | 
| #  | 
| # ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ  | 
| # VER = "2010-05-12 18:30" zhengyang Ìí¼Ó×¢ÊÍ  | 
| #  | 
| # Ä£¿éÏêϸ˵Ã÷  | 
|   | 
| import OpenServerCampaign  | 
| import GameWorld  | 
| import PlayerControl  | 
| import IpyGameDataPY  | 
| import ChPlayer  | 
| import ChConfig  | 
|   | 
| ## GMÃüÁîÖ´ÐÐÈë¿Ú  | 
| #  @param curPlayer µ±Ç°Íæ¼Ò  | 
| #  @param playerList ²ÎÊýÁбí [pointCount]  | 
| #  @return None  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def OnExec(curPlayer, paramList):  | 
|     if not paramList:  | 
|         GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÁé¸ùµã: SetFreePoint ×ÔÓɵã [ÎåÐмӵãÊý]")  | 
|         return  | 
|     value = paramList[0]  | 
|     curPlayer.SetFreePoint(value)  | 
|     GameWorld.DebugAnswer(curPlayer, "ÉèÖÃ×ÔÓɵã: %s" % value)  | 
|     # ¸üпª·þ»î¶¯Áé¸ùÊý¾Ý  | 
|     OpenServerCampaign.UpdOpenServerCampaignLingGenData(curPlayer)  | 
|       | 
|     if len(paramList) > 1:  | 
|         setPoint = paramList[1]  | 
|         vIndex = 0  | 
|         setAddPointList = []  | 
|         ipyDataMgr = IpyGameDataPY.IPY_Data()  | 
|         for index in range(ipyDataMgr.GetRolePointCount()):  | 
|             vIndex += 1  | 
|             attrID = ipyDataMgr.GetRolePointByIndex(index).GetAttrID()  | 
|             setPoint = paramList[vIndex] if len(paramList) > vIndex else setPoint  | 
|             PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_AddPointValue % attrID, setPoint)  | 
|             setAddPointList.append(setPoint)  | 
|         GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÎåÐеã: %s" % setAddPointList)  | 
|         ChPlayer.NotifyPlayerBasePoint(curPlayer)  | 
|         playerControl = PlayerControl.PlayerControl(curPlayer)  | 
|         playerControl.RefreshPlayerAttrState()  | 
|     return  |