| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| ##@package GameWorldAlineInvade  | 
| #  | 
| # @todo:ÒìÊÞÈëÇÖ  | 
| # @author hxp  | 
| # @date 2024-05-16  | 
| # @version 1.0  | 
| #  | 
| # ÏêϸÃèÊö: ÒìÊÞÈëÇÖ  | 
| #  | 
| #-------------------------------------------------------------------------------  | 
| #"""Version = 2024-05-16 16:00"""  | 
| #-------------------------------------------------------------------------------  | 
|   | 
| import GameWorld  | 
| import ShareDefine  | 
| import PlayerCompensation  | 
| import IpyGameDataPY  | 
|   | 
| def DoOnDay():  | 
|     GiveDayHurtAward()  | 
|     return  | 
|   | 
| def GiveDayHurtAward():  | 
|     GameWorld.Log("ÒìÊÞÈëÇÖÿÈÕ½áËã½±Àø")  | 
|     billBoard = GameWorld.GetBillboard().FindBillboard(ShareDefine.Def_BT_AlineInvade)  | 
|     if not billBoard:  | 
|         return  | 
|     billboradAwardDict = IpyGameDataPY.GetFuncEvalCfg("AlineInvade", 2, {})  | 
|       | 
|     orderList = []  | 
|     for orderStr in billboradAwardDict.keys():  | 
|         orderList.append(int(orderStr))  | 
|     orderList.sort()  | 
|     GameWorld.Log("    ½±ÀøÃû´ÎÁбí: %s" % orderList)  | 
|       | 
|     awardOrder = orderList[0]  | 
|     billboardCount, billboardMaxCount = billBoard.GetCount(), billBoard.GetMaxCount()  | 
|     GameWorld.Log("    °ñµ¥Êý¾ÝÊý! billboardCount=%s,billboardMaxCount=%s" % (billboardCount, billboardMaxCount))  | 
|     for index in xrange(billboardCount):  | 
|         billBoardData = billBoard.At(index)  | 
|         if not billBoardData:  | 
|             continue  | 
|         order = index + 1  | 
|           | 
|         if order > awardOrder:  | 
|             nextOrderIndex = orderList.index(awardOrder) + 1  | 
|             if nextOrderIndex >= len(orderList):  | 
|                 break  | 
|             awardOrder = orderList[nextOrderIndex]  | 
|               | 
|         playerID = billBoardData.GetID()  | 
|         #GameWorld.DebugLog("order=%s,playerID=%s,awardOrder=%s" % (order, playerID, awardOrder))  | 
|         if playerID < 10000:  | 
|             continue  | 
|           | 
|         awardList = billboradAwardDict[str(awardOrder)]  | 
|         PlayerCompensation.SendMailByKey("AlineInvadeHurtRank", [playerID], awardList, [order])  | 
|           | 
|     billBoard.Clear()  | 
|     return  | 
|   |