#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # #------------------------------------------------------------------------------- # ##@package DataRecordPack # # @todo: ¶¨Òåʼþ¼Ç¼º¯Êý£¬·¢Ë͸øEventShell.exeµÄ·â°ü.ÓÃÓÚ0SSͳ¼ÆµÈ # @author whx # @date 2012-03-24 19:00 # @version 2.3 # # ÏêϸÃèÊö: º¯ÊýÃüÃû¹æÔòÒÔDR_¿ªÍ·. Êý¾Ý¼Ç¼DR = data record # ¾¯¸æ£ºÕâÀïÌáµ½µÄEventShell, ²»ÊÇÖ¸ÈÎÎñʼþ£¬Ö»ÊÇͬÃû¶øÒÑ # # ²¿·Ö×ÖµäkeyµÄÃüÃûͳһ, ±ãÓÚ¹¤¾ß½âÎöʹÓà # PlayerID:Íæ¼ÒID # PlayerName:Íæ¼ÒÃû×Ö # AccID:Õ˺ÅID # PlayerLV:Íæ¼ÒµÈ¼¶ # VIPLv:vipµÈ¼¶ # PlayerExp:Íæ¼Òµ±Ç°¾­Ñé # LVRequireExp # FightPower:Õ½¶·Á¦ # Prestige:ÍþÍû # MoneyType:½ðÇ®ÀàÐÍ # MoneyCount:½ðÇ®ÊýÁ¿ # WarehouseMoneyCount:²Ö¿â½ðÇ®ÊýÁ¿ # PlayerMoneyCount:Íæ¼ÒÉíÉϽðÇ®ÊýÁ¿ # MissionID:ÈÎÎñID # PetID:³èÎïID # NPCID:npcµÄID # NPCName:npcÃû×Ö # ItemID:ÎïÆ·ID # ItemCount:ÎïÆ·ÊýÁ¿ # IsBind:ÊÇ·ñ°ó¶¨ # ItemGUID:ÎïÆ·µÄGUID # MapID:µØÍ¼ID # IP:ipµØÖ· # FamilyLV:¼Ò×åµÈ¼¶ # FamilyID:¼Ò×åID # FamilyName:¼Ò×åÃû×Ö #TotalPoint:×Ü·Ö,×ܵã... # @change: "2012-10-22 10:00" linyonggui Ìí¼Ó×¢ÊÍ,ÈçÓÐеÄÊý¾ÝÁ÷Ïò,ÇëÔÚGameServerÏÂSaveDataConfig.pyÖнøÐÐÌí¼Ó # @change: "2012-10-25 14:30" linyonggui Ìí¼Ó×¢ÊÍ # @change: "2013-12-26 20:20" Alee ¼õÉÙÁ÷Ïò¼Ç¼ # @change: "2014-09-18 15:00" xmnathan Ôö¼Ó½»Ò×ËùÁ÷Ïò # @change: "2014-09-28 17:30" hxp Ôö¼Ó·¢ËͳäÖµÅÅÐаñÌØ»Ý»î¶¯½±ÀøÓʼþ¼Ç¼Á÷Ïò # @change: "2014-12-08 19:00" hxp Ôö¼Ó´´½ÇÁ÷Ïò # @change: "2015-02-03 14:30" xmnathan Ìí¼Ó²¹³¥Ê±Ôö¼ÓÁ÷Ïò # @change: "2015-06-17 14:30" hxp ÅÅÐаñÁ÷ÏòÔö¼Ó±È½ÏÖµÐÅÏ¢ # @change: "2015-07-13 14:00" hxp Ôö¼ÓpidÐÅÏ¢ # @change: "2015-11-05 12:00" hxp Ôö¼Ó»Ö¸´¿ç·þÁ¬Ê¤Á÷Ïò #------------------------------------------------------------------------------ """Version = 2016-09-12 16:00""" import GameWorld import datetime import ShareDefine import ChConfig #=============================================================================== ##·¢ËÍʼþ¼Ç¼¸øEventShell # @param eventTypeStr: ʼþÀàÐͱêʶ # @param dataDict: ʼþ×Öµä # @return None def SendEventPack(eventTypeStr, dataDict, curPlayer=None): if curPlayer: pid = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_PlayerFromPID) dataDict["pid"] = pid dataDict["fightPower"] = curPlayer.GetFightPower() dataDict["time"] = str(datetime.datetime.today()).split(".")[0] dataStr = str(dataDict) GameWorld.GetGameWorld().EventShell_SendEventEx(eventTypeStr, len(eventTypeStr), dataStr, len(dataStr)) return ## ¼Ò×åÕù°ÔÕ½½á¹û # @param attackID: ¹¥»÷·½¼Ò×åID # @param defenceID: ·ÀÊØ·½¼Ò×åID # @param result: ½á¹û # @param battleID: ³¡´Î # @return None def DR_FamilyBattleResult(attackID, defenceID, result, battleID): dataDict = {'AttackID':attackID, 'DefenceID':defenceID, 'BattleID':battleID, 'Result':result} #·¢ËÍ·â°ü SendEventPack("FamilyBattleResult", dataDict) return ## ´´½Ç # @param accID: Õ˺ÅID # @param playerName: ½ÇÉ«Ãû×Ö # @param job: Ñ¡ÔñÖ°Òµ # @return None def DR_CreateRole(accID, playerName, job): dataDict = {'AccID':accID, "PlayerName":playerName, 'Job':job} #·¢ËÍ·â°ü SendEventPack("CreateRole", dataDict) return ## ´´½¨°ï»á # @param accID: Õ˺ÅID # @param playerID: ½ÇÉ«ID # @param playerName: ½ÇÉ«Ãû×Ö # @param familyName: ¼Ò×åÃû # @param familyID: ¼Ò×åID # @return None def DR_CreateFamily(accID, playerID, playerNaem, familyName, familyID, creatFamilyTimes): dataDict = {'AccID':accID, 'PlayerID':playerID, "PlayerName":playerNaem, 'FamilyName':familyName, 'FamilyID':familyID, 'creatFamilyTimes':creatFamilyTimes} #·¢ËÍ·â°ü SendEventPack("CreateFamily", dataDict) return ## Íæ¼Ò×ÔÐнâÉ¢°ï»á # @param accID: Õ˺ÅID # @param dismissPlayerID: ½ÇÉ«ID # @param playerName: ½ÇÉ«Ãû×Ö # @param familyName: ¼Ò×åÃû # @param familyID: ¼Ò×åID # @param familyMoney: ¼Ò×å½ðÇ® # @param familyLv: ¼Ò×åµÈ¼¶ # @param bossFood: ¼Ò×åÊÞÁ¸ # @param point: »ý·Ö # @return None def DR_DismissFamilyByPlayer(accID, dismissPlayerID, playerName, familyName, familyID, familyMoney, familyLv, bossFood, point): dataDict = {'AccID':accID, 'PlayerID':dismissPlayerID, 'PlayerName':playerName, 'FamilyName':familyName, 'FamilyID':familyID, 'FamilyMoney':familyMoney, 'FamilyLv':familyLv, 'BossFood':bossFood, 'Point':point} #·¢ËÍ·â°ü SendEventPack("DismissFamilyByPlayer", dataDict) return ## ϵͳ½âÉ¢°ï»á # @param familyName: ¼Ò×åÃû # @param familyID: ¼Ò×åID # @param familyMoney: ¼Ò×å½ðÇ® # @param familyLv: ¼Ò×åµÈ¼¶ # @param bossFood: ¼Ò×åÊÞÁ¸ # @param point: »ý·Ö # @return None def DR_DismissFamilyBySystem(familyName, familyID, familyMoney, familyLv, bossFood, point): dataDict = {'FamilyName':familyName, 'FamilyID':familyID, 'FamilyMoney':familyMoney, 'FamilyLv':familyLv, 'BossFood':bossFood, 'Point':point} #·¢ËÍ·â°ü SendEventPack("DismissFamilyBySystem", dataDict) return ## °ï»áÉý¼¶ # @param familyName: ¼Ò×åÃû # @param familyID: ¼Ò×åID # @param newUpLv: µÈ¼¶ # @return None def DR_FamilyLvUp(familyName, familyID, newUpLv): dataDict = {'FamilyName':familyName, 'FamilyID':familyID, 'NewUpLv':newUpLv} #·¢ËÍ·â°ü SendEventPack("FamilyLvUp", dataDict) return ## °ï»áÔö¼Ó¹±Ï׵ļÒ×åÐÅÏ¢ # @param familyName: ¼Ò×åÃû # @param familyID: ¼Ò×åID # @param familyLv: ¼Ò×åµÈ¼¶ # @param familyMoney: ¼Ò×å½ðÇ® # @param familyAddMoney: ¼Ò×åÔö¼Ó½ðÇ® # @param familyHornor: ¼Ò×åÈÙÓþ # @param familyAddHornor: ¼Ò×åÔö¼ÓÈÙÓþ # @param leaderValue: ͳÁìÖµ # @param leaderAddValue: Ôö¼ÓͳÁìÖµ # @return None def DR_AddFamilyDetail(familyName, familyID, familyLv, familyMoney, familyAddMoney, familyActiveValue, addFamilyActiveValue): dataDict = {'FamilyName':familyName, 'FamilyID':familyID, 'FamilyLv':familyLv, 'FamilyMoney':familyMoney, 'FamilyAddMoney':familyAddMoney, 'familyActiveValue':familyActiveValue, 'addFamilyActiveValue':addFamilyActiveValue} #·¢ËÍ·â°ü SendEventPack("AddFamilyDetail", dataDict) return ## ·þÎñÆ÷ÔÚÏßÈËÊý # @param playerCount: ÈËÊý # @return None def DR_OnLinePlayerCount(playerCount, platformOLDict, tjgOnlineCnt): dataDict = {'OnLinePlayerCount':playerCount, "platformOLDict":platformOLDict, "tjgOnlineCnt":tjgOnlineCnt} #·¢ËÍ·â°ü SendEventPack("OnLinePlayerCount", dataDict) return ## # µØÍ¼·þÎñÆ÷ÔÚÏßÈËÊý # @param ip: µØÍ¼ID # @param gameMapIndex: µØÍ¼Ë÷Òý # @param playerCount: ÈËÊý # @return None def DR_GameMapOnLinePlayerCnt(ip, gameMapIndex, playerCount): dataDict = {'IP':ip, 'GameMapIndex':gameMapIndex, 'OnLinePlayerCount':playerCount} #·¢ËÍ·â°ü SendEventPack("GameMapOnLinePlayerCnt", dataDict) return ## ÿÌì¼Ç¼ÅÅÐаñÊý¾Ý # @param billboardType: ÅÅÐаñÀàÐÍ # @return: None def DR_BillboardDataByDay(billboardType): DR_BillboardData(billboardType, "BillboardDataByDay") return ## ¼Ç¼ÅÅÐаñÊý¾Ý # @param billboardType: ÅÅÐаñÀàÐÍ # @return: None def DR_BillboardData(billboardType, eventName, addDataDict={}): billBoard = GameWorld.GetBillboard().FindBillboard(billboardType) if not billBoard: #ÕÒ²»µ½ÅÅÐаñ return for index in range(0, billBoard.GetCount()): billBoardData = billBoard.At(index) if not billBoardData: continue objID = billBoardData.GetID() objID2 = billBoardData.GetID2() name1 = billBoardData.GetName1() name2 = billBoardData.GetName2() type2 = billBoardData.GetType2() value1 = billBoardData.GetValue1() value2 = billBoardData.GetValue2() cmpValue = billBoardData.GetCmpValue() cmpValue2 = billBoardData.GetCmpValue2() cmpValue3 = billBoardData.GetCmpValue3() dataDict = {"BillboardType":billboardType, "Place":index, "ObjID":objID, "ObjID2":objID2, "Name1":name1, "Name2":name2, "Type2":type2, "Value1":value1, "Value2":value2, "CmpValue":cmpValue, "CmpValue2":cmpValue2, "CmpValue3":cmpValue3, } dataDict.update(addDataDict) #·¢ËÍ·â°ü SendEventPack(eventName, dataDict) return ## GMÖ´ÐÐÃüÁî²Ù×÷ # @param playerID: Íæ¼ÒID # @param playerName:Íæ¼ÒÃû×Ö # @param accID: Íæ¼ÒÕ˺Š# @param gmToolCmd:gmÃüÁî # @param msg:¸½¼ÓÃüÁî # @return: None def DR_ToolGMOperate(playerID, playerName, accID, gmToolCmd, msg=''): dataDict = {"PlayerID":playerID, "PlayerName":playerName, 'AccID':accID, 'GMOperate':gmToolCmd, 'Msg':msg} #·¢ËÍ·â°ü SendEventPack("GMToolOperate", dataDict) return ## Íæ¼Ò¼ÓÈë¼Ò×å # @param curPlayer: Íæ¼ÒʵÀý # @param familyID: ¼Ò×åID # @param familyName: ¼Ò×åÃû×Ö # @param familyCnt: ¼Ò×åÈËÊý # @return: def DR_PlayerJoinFamily(curPlayer, familyID, familyName, familyCnt): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'AccID':curPlayer.GetAccID(), "PlayerName":curPlayer.GetName(), "FamilyID":familyID, "FamilyName":familyName, "Count":familyCnt} #·¢ËÍ·â°ü SendEventPack("PlayerJoinFamily", dataDict, curPlayer) return ## Íæ¼ÒÍ˳ö¼Ò×å # @param curPlayer: ÌßÈËÕßʵÀý # @param familyID: ¼Ò×åID # @param familyName: ¼Ò×åÃû×Ö # @param familyCnt: ¼Ò×åÈËÊý # @param familyLV: ÌßÈËÕßְλ # @param tagPlayerID: ±»ÌßÕßID # @param tagPlayerName: ±»ÌßÕßÃû×Ö # @param tagFamilyLV: ±»ÌßÕßְλ # @return: def DR_PlayerLeaveFamily(curPlayer, familyID, familyName, familyCnt, familyLV, tagPlayerID, tagPlayerName, tagFamilyLV, leaveFamilyTime=0): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'AccID':curPlayer.GetAccID(), "PlayerName":curPlayer.GetName(), "FamilyID":familyID, "FamilyName":familyName, "Count":familyCnt, "FamilyJob":familyLV, "tagPlayerID":tagPlayerID, "tagPlayerName":tagPlayerName, "tagFamilyJob":tagFamilyLV} if leaveFamilyTime: dataDict['leaveFamilyTime'] = leaveFamilyTime #·¢ËÍ·â°ü SendEventPack("PlayerLeaveFamily", dataDict, curPlayer) return ## Íæ¼Ò¼Ò×åְλ±ä¸ü # @param curPlayer: Íæ¼ÒʵÀý # @param familyID: ¼Ò×åID # @param familyName: ¼Ò×åÃû×Ö # @param tagPlayerID: ְλ±ä¸üÕßID # @param tagPlayerName: ְλ±ä¸üÕßÃû×Ö # @param tagFamilyLV: ±ä¸üºóְλ # @return: def DR_PlayerChangeFamilyJob(curPlayer, familyID, familyName, tagPlayerID, tagPlayerName, tagFamilyLV, isGMOP=False): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'AccID':curPlayer.GetAccID(), "PlayerName":curPlayer.GetName(), "isGMOP":isGMOP, "FamilyID":familyID, "FamilyName":familyName, "tagPlayerID":tagPlayerID, "tagPlayerName":tagPlayerName, "FamilyJob":tagFamilyLV} #·¢ËÍ·â°ü SendEventPack("PlayerChangeFamilyJob", dataDict, curPlayer) return ## OnWeekʱ¼Ç¼±¾ÖܼÒ×å»îÔ¾¶È # @param familyID: ¼Ò×åID # @param familyName: ¼Ò×åÃû×Ö # @param value: ¼Ò×åID # @return: def DR_FamilyActiveValueByOnWeek(familyID, familyName, value): dataDict = {"FamilyID":familyID, "FamilyName":familyName, "ActiveValue":value} #·¢ËÍ·â°ü SendEventPack("FamilyActiveValueByOnWeek", dataDict) return def DR_FamilyStore(curPlayer, familyID, index, eventName, drDict={}): ## Õ½Ã˲ֿâ²Ù×÷¼Ç¼ dataDict = {"FamilyID":familyID, "Index":index, "PlayerID":curPlayer.GetPlayerID(), "AccID":curPlayer.GetAccID(), "PlayerName":curPlayer.GetName(), "EventName":eventName} dataDict.update(drDict) #·¢ËÍ·â°ü SendEventPack("FamilyStore", dataDict) return ## ×òÌì(Íæ¼ÒµÇÈëÊýÁ¿£¬³äÖµÊý)ͳ¼Æ¼Ç¼Êý¾Ý¸Ä±ä # @param YdayLoginCnt: ¼Ò×åID # @param YdayNewCoinCnt: ¼Ò×åÃû×Ö # @param value: ¼Ò×åID # @return: def DR_ResetGameDataRecord(YdayLoginCnt, YdayNewCoinCnt): dataDict = {"YdayLoginCnt":YdayLoginCnt, "YdayNewCoinCnt":YdayNewCoinCnt} #·¢ËÍ·â°ü SendEventPack("ResetGameDataRecord", dataDict) return ## ¸´ÖƵÄÅÅÐаñ¼Ç¼ # @param Place: Ãû´Î # @param playerID: Íæ¼ÒID # @param playerName: Íæ¼ÒÃû×Ö # @param playerLV: Íæ¼ÒµÈ¼¶ # @param playerJob: Íæ¼ÒÖ°Òµ # @param totalPoint: »ý·Ö # @return: None def DR_BillboardCopy(billboardType): DR_BillboardData(billboardType, "BillboardCopy") return ## µ¯ÛÀÍæ¼Ò¼Ò×åְλ±ä¸ü # @param familyID: ¼Ò×åID # @param familyName: ¼Ò×åÃû×Ö # @param tagPlayerID: ְλ±ä¸üÕßID # @param tagPlayerName: ְλ±ä¸üÕßÃû×Ö # @param tagFamilyLV: ±ä¸üºóְλ # @return: def DR_ImpeachChangeFamilyJob(familyID, familyName, tagPlayerID, tagPlayerName, tagFamilyLV): dataDict = {"FamilyID":familyID, "FamilyName":familyName, "tagPlayerID":tagPlayerID, "tagPlayerName":tagPlayerName, "FamilyJob":tagFamilyLV} #·¢ËÍ·â°ü SendEventPack("ImpeachChangeFamilyJob", dataDict) return ## µ¯ÛÀÍæ¼ÒÌß³ö°ï»á # @param familyID: ¼Ò×åID # @param familyName: ¼Ò×åÃû×Ö # @param tagPlayerID: ְλ±ä¸üÕßID # @param tagPlayerName: ְλ±ä¸üÕßÃû×Ö # @return: def DR_ImpeachLeaveFamily(familyID, familyName, tagPlayerID, tagPlayerName): dataDict = {"FamilyID":familyID, "FamilyName":familyName, "tagPlayerID":tagPlayerID, "tagPlayerName":tagPlayerName} #·¢ËÍ·â°ü SendEventPack("ImpeachLeaveFamily", dataDict) return ## Ê×ÖÜÊÇ·ñÓмÒ×åÕù°ÔÈü¶ÔÕ½ # @param joinBattleFamilyCnt: ¿É²ÎÕ½µÄ°ï»á # @param hasBattle: ÊÇ·ñ¿ªÆôÕ½¶· def DR_FirstWeekHasFamilyBattle(joinBattleFamilyCnt, hasBattle): dataDict = {"JoinBattleFamilyCnt":joinBattleFamilyCnt, "HasBattle":hasBattle} #·¢ËÍ·â°ü SendEventPack("FirstWeekHasFamilyBattle", dataDict) return ## ½ÇÉ«¸ÄÃû # @param curPlayer: Íæ¼ÒʵÀý # @param oldName: ¾ÉÃû×Ö # @return: None def DR_UpdatePlayerName(curPlayer, oldName): dataDict = {'AccID':curPlayer.GetAccID(), 'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetName(),"OldName":oldName} #·¢ËÍ·â°ü SendEventPack("UpdatePlayerName", dataDict, curPlayer) return #------------------------------------- #¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý½»Ò×Ëù¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý¡ý ## Ìí¼Ó½»Ò×ËùÎïÆ·Êý¾Ýµ½Á÷Ïò¼Ç¼ÓÃ×Öµä # @param dataDict, BourseItem # @return: None def AddBourseItemToDataDict(dataDict, BourseItem): curRoleItemData = BourseItem.GetBourseRoleItem() dataDict['GUID'] = BourseItem.GetItemGUID() dataDict['ItemID'] = curRoleItemData.ItemID dataDict['ItemCount'] = curRoleItemData.Count dataDict['UserData'] = curRoleItemData.UserData dataDict['EquipGS'] = BourseItem.GetEquipGS() return ## Ìí¼Ó½»Ò×ËùÎïÆ·Á÷Ïò # @param sellPlayerID, bourseItem # @return: None def DR_BourseAddItem(sellPlayerID, curBourseItem): dataDict = {'SellPlayerID':sellPlayerID, 'PriceType':curBourseItem.GetPriceType(), 'PriceCount':curBourseItem.GetPriceCount()} AddBourseItemToDataDict(dataDict, curBourseItem) #·¢ËÍ·â°ü SendEventPack("BourseAddItem", dataDict) return ## ϼܽ»Ò×ËùÎïÆ·Á÷Ïò # @param sellPlayerID, bourseItem # @return: None def DR_BourseCancelItem(sellPlayerID, curBourseItem): dataDict = {'SellPlayerID':sellPlayerID} AddBourseItemToDataDict(dataDict, curBourseItem) #·¢ËÍ·â°ü SendEventPack("BourseCancelItem", dataDict) return ## ¹ºÂò½»Ò×ËùÎïÆ·Á÷Ïò # @param curPlayerID, bourseItem # @return: None def DR_BourseBuyItem(curPlayerID, sellPlayerID, curBourseItem): dataDict = {'BuyPlayerID':curPlayerID, 'SellPlayerID':sellPlayerID, 'PriceType':curBourseItem.GetPriceType(), 'PriceCount':curBourseItem.GetPriceCount() } AddBourseItemToDataDict(dataDict, curBourseItem) #·¢ËÍ·â°ü SendEventPack("BourseBuyItem", dataDict) return ## »ñÈ¡½»Ò×ËùÊÕÒæÁ÷Ïò # @param sellPlayerID, bourseItem # @return: None def DR_BourseGiveGains(sellPlayerID, dataDict, giveMoney, taxMoney): dataDict['SellPlayerID'] = sellPlayerID dataDict['giveMoney'] = giveMoney dataDict['taxMoney'] = taxMoney #dataDict = {'SellPlayerID':sellPlayerID, 'PriceType':curBourseItem.GetPriceType(), 'PriceCount':curBourseItem.GetPriceCount(), 'taxMoney':taxMoney} #AddBourseItemToDataDict(dataDict, curBourseItem) #·¢ËÍ·â°ü SendEventPack("BourseGiveGains", dataDict) return ##ɾ³ýʱ¼ä¾ÃÔ¶µÄϼÜÎïÆ· # @param sellPlayerID, GUID, curBourseItem # @return None def DR_BourseDeleteOverTimeLongItem(sellPlayerID, GUID, curBourseItem): dataDict = {'SellPlayerID':sellPlayerID} AddBourseItemToDataDict(dataDict, curBourseItem) #·¢ËÍ·â°ü SendEventPack("BourseDeleteOverTimeLongItem", dataDict) return #¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü½»Ò×Ëù¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü¡ü #------------------------------------- ## ·¢·Å²¹³¥Á÷Ïò # @param curPlayerID, GUID # @return: None def DR_GiveCompensationSuccess(curPlayerID, GUID): dataDict = {'PlayerID':curPlayerID, 'GUID':GUID} #·¢ËÍ·â°ü SendEventPack("CompensationGiveSuccess", dataDict) return ## Ìí¼Ó¸öÈ˲¹³¥Á÷Ïò # @param curPlayerID, GUID, ItemDictList # @return: None def DR_AddPersonalCompensation(curPlayerIDList, GUID, ItemDictList, addDict={}): dataDict = {'PlayerIDList':curPlayerIDList, 'GUID':GUID, 'ItemList':ItemDictList} dataDict.update(addDict) #·¢ËÍ·â°ü SendEventPack("CompensationPersonal", dataDict) return ## Ìí¼ÓÈ«·þ²¹³¥Á÷Ïò # @param GUID, ItemDictList # @return: None def DR_EntireCompensation(GUID, eventName, addDict={}): dataDict = {'GUID':GUID, "eventName":eventName} dataDict.update(addDict) SendEventPack("CompensationEntire", dataDict) return