#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # #------------------------------------------------------------------------------- # ##@package DataRecordPack # # @todo: ¶¨Òåʼþ¼Ç¼º¯Êý£¬·¢Ë͸øEventShell.exeµÄ·â°ü.ÓÃÓÚ0SSͳ¼ÆµÈ # @author Alee # @date 2012-03-03 20:30 # @version 4.2 # # ÏêϸÃèÊö: º¯ÊýÃüÃû¹æÔòÒÔDR_¿ªÍ·. Êý¾Ý¼Ç¼DR = data record # ¾¯¸æ£ºÕâÀïÌáµ½µÄEventShell, ²»ÊÇÖ¸ÈÎÎñʼþ£¬Ö»ÊÇͬÃû¶øÒÑ # # ²¿·Ö×ÖµäkeyµÄÃüÃûͳһ, ±ãÓÚ¹¤¾ß½âÎöʹÓà # PlayerID:Íæ¼ÒID # PlayerName:Íæ¼ÒÐÕÃû # AccID:Õ˺ÅID # PlayerLV:Íæ¼ÒµÈ¼¶ # VIPLv:vipµÈ¼¶ # PlayerExp:Íæ¼Òµ±Ç°¾­Ñé # LVRequireExp # MoneyType:½ðÇ®ÀàÐÍ # MoneyCount:½ðÇ®ÊýÁ¿ # TotalMoney:×ܽðÇ®ÊýÁ¿ # WarehouseMoneyCount:²Ö¿â½ðÇ®ÊýÁ¿ # PlayerMoneyCount:Íæ¼ÒÉíÉϽðÇ®ÊýÁ¿ # MemberFamilyLV:Íæ¼ÒÔÚ¼Ò×åÖеÄְλ # MissionID:ÈÎÎñID # PetID:³èÎïID # NPCID:npcµÄID # NPCName:npcÃû×Ö # PackType:±³°üÀàÐÍ # SrcPackType: Æðʼ±³°üÀàÐÍ # DescPackType: Ä¿±ê±³°üÀàÐÍ # ItemKind:ÎïÆ·ÖÖÀà # ItemID:ÎïÆ·ID # ItemCount:ÎïÆ·ÊýÁ¿ # IsBind:ÊÇ·ñ°ó¶¨ # ItemGUID:ÎïÆ·µÄGUID # IsPutIn:ÊÇ·ñ¸øÓè³É¹¦ # MapID:µØͼID # IP:ipµØÖ· # FamilyID:¼Ò×åID # FamilyLV:¼Ò×åµÈ¼¶ # FamilyName:¼Ò×åÃû×Ö #EquipUpStarLV:×°±¸Ç¿»¯ #EquipMagic:×°±¸ÁéÎÆ #SearchPrecious:Ñ°±¦¹ºÂò #RefreshFB:¸±±¾Ë¢Ð #EfficientBattle:¸ßЧս¶·£¬¶à±¶¾­Ñé #PetRewashTalent:³èÎïÏ´×ÊÖÊ #PetRewashSkill:³èÎïÏ´¼¼ÄÜ #OpenIndex: ¿ªÍ¨¶ÓÁÐË÷Òý #ClearIndex: Çå³ý¶ÓÁÐcdʱ¼ä #CDTime:cdʱ¼ä #SkilliD: ¼¼ÄÜID #StarLV:ÐǼ¶ #------------------------------------------------------------------------------------------------------------ # # @change: "2012-03-24 22:20" Alee Ð޸ĵ¼Èë³ö´í£¬º¯Êý´ÓPlayerControlתGameWorld # @change: "2012-08-21 16:30" Alee ³äÖµ¼Ç¼Ìí¼Ó²éѯ¶©µ¥ºÅ±ãÓÚ¶ÔÕË # @change: "2012-08-22 11:30" jiang Ö÷ÌâÖܻ½±ÀøÁìÈ¡¼Ç¼Ôö¼Ó»î¶¯»ý·Ö¼Ç¼ # @change: "2012-08-24 13:59" whx »¶ÀÖËͻÐ޸ļǼË÷Òý # @change: "2012-09-17 10:30" whx Ôö¼Ó¸£Àû»î¶¯½±ÀøÁìÈ¡¼Ç¼ # @change: "2012-09-21 17:00" jiang Íæ¼ÒËÀÍöÁ÷Ïò¼Ç¼ # @change: "2012-10-22 10:00" linyonggui Ìí¼Ó×¢ÊÍ,ÈçÓÐеÄÊý¾ÝÁ÷Ïò,ÇëÔÚGameServerÏÂSaveDataConfig.pyÖнøÐÐÌí¼Ó # @change: "2012-09-25 14:30" linyonggui Ìí¼Ó×¢ÊÍ # @change: "2012-12-07 18:00" hyx Ìí¼ÓÉÏÏÂÏßÁ÷Ïò¼Ç¼ # @change: "2013-01-24 14:40" Alee pythonµÄboolֵתÊý×Ö·½±ãÈë¿â # @change: "2013-10-16 17:00" hxp Ìí¼Ó³äÖµºÀÀñÁì½±Á÷Ïò¼Ç¼ # @change: "2013-11-05 19:00" Alee ×¢ÊͲ¿·Ö¼Ç¼ # @change: "2013-12-26 20:20" Alee ¼õÉÙÁ÷Ïò¼Ç¼ # @change: "2013-12-26 20:20" Alee ¼õÉÙÁ÷Ïò¼Ç¼ # @change: "2014-06-10 21:00" hxp Ìí¼ÓÌØÊâ²É¼¯ÎïÁ÷Ïò¼Ç¼£¬¶àÑ¡ÎïÆ·Àñ°üÁ÷Ïò # @change: "2014-06-21 15:20" hxp Ìí¼ÓÍæ¼ÒÁìÈ¡³äÖµÌػݻ½±Àø # @change: "2014-10-11 15:00" hxp Ôö¼ÓÁìȡͶ×ʻر¨Ê¼þ¼Ç¼ # @change: "2014-12-01 19:10" ljd Ôö¼ÓÁìÈ¡ºÏ·þ»î¶¯µÇ½½±Àøʼþ¼Ç¼ # @change: "2014-12-21 23:00" hxp Ôö¼Ó¹¦Äܽ±ÀøÎïÆ· # @change: "2014-12-23 00:30" hxp ³äֵǰ/Ïû·ÑʱÁ÷ÏòÐÅÏ¢À©Õ¹(Ôö¼Ó¸÷´ó¹¦ÄÜÐÅÏ¢) # @change: "2015-02-05 15:00" hxp ³äÖµËÍÀñÁ÷ÏòÀ©Õ¹ÐÅÏ¢×Öµä # @change: "2015-02-27 21:00" hxp Ôö¼Ó´óʦµÈ¼¶Éý¼¶Á÷Ïò; ÖØпªÆô¼¼ÄÜѧϰÁ÷Ïò # @change: "2015-03-30 14:00" hxp Ôö¼Ó»÷ɱNPCÁ÷Ïò # @change: "2015-04-03 12:00" hxp Ñ°±¦ÈÕÖ¾Á÷Ïò # @change: "2015-04-28 16:00" hxp ¿ªÆôBuyItemÁ÷Ïò£»Ñ°±¦Á÷ÏòÔö¼ÓÀ©Õ¹Êý¾Ý; ¸øÎïÆ·Á÷ÏòÐÞ¸Ä # @change: "2015-05-20 21:00" hxp Ôö¼Ó×°±¸³Ô¾­ÑéÁ÷Ïò # @change: "2015-06-08 20:30" hxp ÐÂÊÖ¿¨Á÷ÏòÔö¼ÓµÈ¼¶¼°´´½Çʱ¼äÐÅÏ¢ # @change: "2015-07-03 15:30" ljd Éý½×ϵͳͳһÁ÷Ïò¼Ç¼ # @change: "2015-07-07 10:30" zqx ¶ñħ¾«»ªÁ÷Ïò¼Ç¼ # @change: "2015-07-13 14:00" hxp Ôö¼ÓpidÐÅÏ¢ # @change: "2015-09-21 20:30" hxp Ôö¼Ó×Ô¶¨Òå»õ±ÒÁ÷Ïò # @change: "2015-10-19 12:00" ljd Ôö¼ÓÇ¿»¯Á÷Ïò¼Ç¼ #------------------------------------------------------------------------------ #"""Version = 2015-10-19 12:00""" #------------------------------------------------------------------------------ import GameWorld import datetime import IPY_GameWorld import ChConfig import ShareDefine import PlayerControl import PyGameData #=============================================================================== ##·¢ËÍʼþ¼Ç¼¸øEventShell # @param eventTypeStr: ʼþÀàÐͱêʶ # @param dataDict: ʼþ×Öµä # @return None def SendEventPack(eventTypeStr, dataDict, curPlayer=None): if curPlayer: pid = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_PlayerFromPID) dataDict["pid"] = pid dataDict["fightPower"] = PlayerControl.GetFightPower(curPlayer) dataDict["PlayerLV"] = curPlayer.GetLV() dataDict["IP"] = curPlayer.GetIP() dataDict["time"] = str(datetime.datetime.today()).split(".")[0] dataStr = str(dataDict) GameWorld.GetGameWorld().EventShell_SendEventEx(eventTypeStr, len(eventTypeStr), dataStr, len(dataStr)) return ## ¶þ´Î·ÇͬÌìµÇ½ # @param accID: Õ˺ÅID # @param ip: ip # @return: None def DR_OtherDayLogin(accID, ip, curPlayer): dataDict = {'AccID':accID, 'IP':ip} #·¢ËÍ·â°ü SendEventPack("OtherDayLogin", dataDict, curPlayer) return ## µÇ½ # @param curPlayer Íæ¼ÒʵÀý # @return: None def DR_PlayerLogin(curPlayer): accID = curPlayer.GetAccID() ip = curPlayer.GetIP() loginTime = curPlayer.GetLoginTime() name = curPlayer.GetName() mapID = GameWorld.GetMap().GetMapID() lineID = GameWorld.GetGameWorld().GetLineID() dataDict = {'Type':'login', 'IP':str(ip), 'AccID':accID, 'mapID':mapID, 'lineID':lineID, 'Name':name, 'LoginTime':str(loginTime), 'LogoutTime':'', 'MFPFightPower':GetMFPFightPowerInfo(curPlayer), 'LV':curPlayer.GetLV(), 'TotalExp':PlayerControl.GetPlayerTotalExp(curPlayer)} if GameWorld.IsCrossServer(): regCrossZoneID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ReqCrossFBZoneID) regCrossMapID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ReqCrossFBMapID) regCrossLineID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ReqCrossFBFuncLine) dataDict.update({"RegCrossZoneID":regCrossZoneID, "RegCrossMapID":regCrossMapID, "RegCrossLineID":regCrossLineID}) #·¢ËÍ·â°ü SendEventPack("LogInOut", dataDict, curPlayer) return ## Íæ¼ÒÏÂÏß # @param curPlayer: Íæ¼ÒʵÀý # @return: None def DR_PlayerDisconnect(curPlayer): accID = curPlayer.GetAccID() ip = curPlayer.GetIP() name = curPlayer.GetName() logoutTime = curPlayer.GetLogoffTime() loginTime = curPlayer.GetLoginTime() lv = curPlayer.GetLV() vipLV = curPlayer.GetVIPLv() gold = curPlayer.GetGold() goldPaper = curPlayer.GetGoldPaper() dataDict = {'Type':'logout', 'IP':ip, 'AccID':accID, 'LV':lv, 'VipLV':vipLV, 'Name':name, 'LoginTime':str(loginTime), 'Gold':gold, 'GoldPaper':goldPaper, 'LogoutTime':str(logoutTime), 'MFPFightPower':GetMFPFightPowerInfo(curPlayer), 'TotalExp':PlayerControl.GetPlayerTotalExp(curPlayer)} #·¢ËÍ·â°ü SendEventPack("LogInOut", dataDict, curPlayer) return def GetMFPFightPowerInfo(curPlayer): #¼Ç¼ģ¿éÕ½Á¦ dataDict = {} for mfpType in ShareDefine.ModuleFightPowerTypeList: fightPower = PlayerControl.GetMFPFightPower(curPlayer, mfpType) dataDict[mfpType] = fightPower return dataDict ## ÐÂÔöÓÐЧµÇ½ # @param accID: Õ˺ÅID # @param ip: ip # @return: None def DR_LoginValid(accID, ip, curPlayer): dataDict = {'AccID':accID, 'IP':ip} #·¢ËÍ·â°ü SendEventPack("LoginValid", dataDict, curPlayer) return ## ÐÂÔöµÚÒ»´ÎµÇ½ # @param accID: Õ˺ÅID # @param ip: ip # @return: None def DR_FirstLogin(accID, ip, curPlayer): dataDict = {'AccID':accID, 'IP':ip} #·¢ËÍ·â°ü SendEventPack("FirstLogin", dataDict, curPlayer) return ## ·ÅÉú³èÎï # @param curPlayer: Íæ¼ÒʵÀý # @param petID: ³èÎïID # @param petNPCID: ³èÎïNPCID # @param petNPCName: ³èÎïNPCÃû×Ö # @return: None def DR_FreePet(curPlayer, petID, petNPCID, petNPCName): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'PetID':petID, 'NPCID':petNPCID, 'NPCName':petNPCName} #·¢ËÍ·â°ü SendEventPack("FreePet", dataDict, curPlayer) return ## ¸±±¾½±ÀøÎïÆ· # @param curPlayer: Íæ¼ÒʵÀý # @param mapID: µØͼID # @param itemID: ÎïÆ·ID # @param itemCnt: ÎïÆ·ÊýÁ¿ # @param isBind: ÊÇ·ñ°ó¶¨ # @return: None def DR_FBGiveItem(curPlayer, mapID, itemID, itemCnt, isBind): #MySql²»Ê¶±ð True False,¸Ä³É1ºÍ0 isBind = 1 if isBind else 0 dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'MapID':mapID, 'ItemID':itemID, 'ItemCount':itemCnt, 'IsBind':isBind} #·¢ËÍ·â°ü SendEventPack("FBGiveItem", dataDict, curPlayer) return ## ¹¦Äܽ±ÀøÎïÆ· # @param curPlayer: Íæ¼ÒʵÀý # @param funcName: ¹¦ÄÜÃû # @param addDataDict: # @return: None def DR_FuncGiveItem(curPlayer, funcName, addDataDict): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID()} dataDict.update(addDataDict) #·¢ËÍ·â°ü SendEventPack("GiveItem_%s" % funcName, dataDict, curPlayer) return ## »ñµÃÈÎÎñ # @param curPlayer: Íæ¼ÒʵÀý # @param missionID: ÈÎÎñID # @return: None def DR_AddNewMission(curPlayer, missionID): return dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'MissionID':missionID} #·¢ËÍ·â°ü SendEventPack("AddNewMission", dataDict, curPlayer) return ## Íê³ÉÈÎÎñ # @param curPlayer: Íæ¼ÒʵÀý # @param missionID: ÈÎÎñID # @return: None def DR_DeleteMission(curPlayer, missionID): return dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'MissionID':missionID} #·¢ËÍ·â°ü SendEventPack("DeleteMission", dataDict, curPlayer) return ## ²Ö¿â´æÈë½ðÇ® # @param curPlayer: Íæ¼ÒʵÀý # @param moneyType: ½ðÇ®ÀàÐÍ # @param moneyCount: ½ðÇ®ÊýÁ¿ # @return: None def DR_SetMoneyInWarehouse(curPlayer, moneyType, moneyCount): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'MoneyType':moneyType, 'MoneyCount':moneyCount, 'WarehouseMoneyCount':PlayerControl.GetWarehouseMoney(curPlayer, moneyType), 'PlayerMoneyCount':PlayerControl.GetMoney(curPlayer, moneyType)} #·¢ËÍ·â°ü SendEventPack("SetMoneyInWarehouse", dataDict, curPlayer) return ## ²Ö¿âÈ¡³ö½ðÇ® # @param curPlayer: Íæ¼ÒʵÀý # @param moneyType: ½ðÇ®ÀàÐÍ # @param moneyCount: ½ðÇ®ÊýÁ¿ # @return: None def DR_GetMoneyInWarehouse(curPlayer, moneyType, moneyCount): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'MoneyType':moneyType, 'MoneyCount':moneyCount, 'WarehouseMoneyCount':PlayerControl.GetWarehouseMoney(curPlayer, moneyType), 'PlayerMoneyCount':PlayerControl.GetMoney(curPlayer, moneyType)} #·¢ËÍ·â°ü SendEventPack("GetMoneyInWarehouse", dataDict, curPlayer) return ## ³öÊÛÎïÆ·»ñµÃ½ðÇ® # @param curPlayer: Íæ¼ÒʵÀý # @param moneyType: ½ðÇ®ÀàÐÍ # @param moneyCount: ½ðÇ®ÊýÁ¿ # @return: None def DR_GetMoneyBySellPackItem(curPlayer, moneyType, moneyCount): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'MoneyType':moneyType, 'MoneyCount':moneyCount, 'PlayerMoneyCount':PlayerControl.GetMoney(curPlayer, moneyType)} #·¢ËÍ·â°ü SendEventPack("GetMoneyBySellPackItem", dataDict, curPlayer) return def DR_CTGError(curPlayer, errorInfo, addDict): ## CTGÒì³£ÐÅÏ¢ dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'ErrorInfo':errorInfo} dataDict.update(addDict) #·¢ËÍ·â°ü SendEventPack("CTGError", dataDict, curPlayer) GameWorld.ErrLog("%s. %s" % (errorInfo, addDict), curPlayer.GetPlayerID()) if addDict.get('orderID'): GameWorld.SendGameError("GameWarning", "CTGError:%s - %s"%(errorInfo, dataDict)) return def DR_CTGOK(curPlayer, addDict): ## CTG³É¹¦¼Ç¼ dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'LV':curPlayer.GetLV()} dataDict.update(addDict) #·¢ËÍ·â°ü SendEventPack("CTGOK", dataDict, curPlayer) return ## Íæ¼Ò³äÖµºóµÄÔª±¦ÐÅÏ¢ # @param curPlayer: Íæ¼ÒʵÀý # @param addGold: ÔöÖµÔª±¦ # @param totalGold: Ê£ÓàÔª±¦ # @return: None def DR_PlayerGoldAfterCharge(curPlayer, addGold, totalGold): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'AddGold':addGold, 'TotalGold':totalGold} #·¢ËÍ·â°ü SendEventPack("PlayerGoldAfterCharge", dataDict, curPlayer) return ## Íæ¼Ò³äֵǰµÄÏà¹ØÐÅÏ¢ # @param curPlayer: Íæ¼ÒʵÀý # @param infoDict: ¶îΪÔùËÍÊý # @return: None def DR_PlayerInfoBeforeCharge(curPlayer, infoDict={}): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'VIPLV':curPlayer.GetVIPLv(), 'PlayerLV':curPlayer.GetLV(), 'TotalGold':curPlayer.GetGold(), } dataDict.update(__GetFuncDRDict(curPlayer)) dataDict.update(infoDict) #·¢ËÍ·â°ü SendEventPack("PlayerInfoBeforeCharge", dataDict, curPlayer) return ## ¹¦ÄÜÁ÷ÏòÐÅÏ¢ # @param curPlayer: Íæ¼ÒʵÀý # @return: {} def __GetFuncDRDict(curPlayer): drDict = {} # ¹Ù¾ô½×¼¶¡¢×£¸£Öµ offBlessValue = 0 offRank = curPlayer.GetOfficialRank() drDict["Official"] = [offRank, offBlessValue] return drDict ## Íæ¼Ò³äÖµºóµÄµãȯÐÅÏ¢¼°vipµÈ¼¶ # @param curPlayer: Íæ¼ÒʵÀý # @param changeCoin: ¶Ò»»µÄµãȯÊý # @param totaChangelCoin: ×ܶһ»µãȯÊý # @param prizeCoin: ÔùË͵ãȯÊý # @param totalPrizeCoin: ×ÜÔùË͵ãȯÊý # @param playerVIPLV: vipµÈ¼¶ # @param crazyCoin: ¶îΪÔùËÍÊý # @return: None def DR_PlayerCoinAfterCharge(curPlayer, changeCoin, totaChangelCoin, prizeCoin, totalPrizeCoin, playerVIPLV, crazyCoin, orderID): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'ChangeCoin':changeCoin, 'TotaChangelCoin':totaChangelCoin, 'PrizeCoin':prizeCoin, 'TotalPrizeCoin':totalPrizeCoin, 'VIPLv':playerVIPLV, "CrazyCoin":crazyCoin, 'QueryOrderID':orderID} #·¢ËÍ·â°ü SendEventPack("PlayerCoinAfterCharge", dataDict, curPlayer) return ## Íæ¼ÒÉý¼¶ # @param curPlayer: Íæ¼ÒʵÀý # @param playerLV: Íæ¼ÒµÈ¼¶ # @param playerTotalExp: Íæ¼Ò×ܾ­ÑéÖµ # @param curLVRequireExp: µ±Ç°µÈ¼¶Éý¼¶ÐèÒª¾­ÑéÖµ # @return: None def DR_PlayerUpgrade(curPlayer, playerLV, playerTotalExp, curLVRequireExp): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'PlayerLV':playerLV, 'PlayerTotalExp':playerTotalExp, 'CurLVRequireExp':curLVRequireExp, 'IP':curPlayer.GetIP()} #·¢ËÍ·â°ü SendEventPack("PlayerUpgrade", dataDict, curPlayer) return ## Íæ¼Ò´óʦµÈ¼¶±ä¸ü # @param curPlayer: Íæ¼ÒʵÀý # @param totalMasterExp: µ±Ç°×Ü´óʦ¾­Ñé # @param eventName: ±ä¸üʼþÃû # @return: None def DR_PlayerMasterLVChange(curPlayer, totalMasterExp, addDataDict={}): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'PlayerLV':curPlayer.GetLV(), 'TotalExp':curPlayer.GetTotalExp(), 'MasterLV':curPlayer.GetLV2(), 'TotalExpMaster':totalMasterExp} dataDict.update(addDataDict) #·¢ËÍ·â°ü SendEventPack("PlayerMasterLVChange", dataDict, curPlayer) return ##³äÖµËÍÎïÆ· def DR_BillingGiveItem(curPlayer, itemID, itemCnt): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), "ItemID":itemID, 'ItemCount':itemCnt } SendEventPack("BillingGiveItem", dataDict, curPlayer) return ##³äÖµÁìºÀÀñ def DR_GoldGiftGiveItem(curPlayer, giftNum, infoDict={}): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), "GiftNum":giftNum } dataDict.update(infoDict) SendEventPack("GoldGiftGiveItem", dataDict, curPlayer) return ##ÀۼƵǽÀñ°ü def DR_LoginDayAward(curPlayer, dayIndex): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), "DayIndex":dayIndex } SendEventPack("LoginDayAward", dataDict, curPlayer) return ##µÈ¼¶Àñ°ü def DR_LVAward(curPlayer, awardID): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), "AwardID":awardID } SendEventPack("LVAward", dataDict, curPlayer) return ## ʹÓÃÐÂÊÖýÌ忨 # @param curPlayer: Íæ¼ÒʵÀý # @param cardStr: ¿¨ºÅ # @param cardType: ¿¨µÄkey # @param itemID: ¸øÓèÎïÆ·ID # @param itemCnt: ¸øÓèÎïÆ·ÊýÁ¿ # @return: None def DR_UseNewGuyCard(curPlayer, cardStr, cardType, itemID, itemCnt): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'LV':curPlayer.GetLV(), 'CreateRoleTime':curPlayer.GetCreateRoleTime(), 'CardStr':cardStr, 'CardType':cardType, "ItemID":itemID, 'ItemCount':itemCnt } SendEventPack("UseNewGuyCard", dataDict, curPlayer) return def DR_UseMediaCard(curPlayer, cardCode, cardType, awardItemList, addDataDict={}): # ʹÓÃÐÂýÌ忨 dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'LV':curPlayer.GetLV(), 'CardCode':cardCode, 'CardType':cardType, "AwardItemList":awardItemList, } dataDict.update(addDataDict) SendEventPack("UseMediaCard", dataDict, curPlayer) return ## ¿ª·þ»î¶¯½±ÀøÁìÈ¡Çé¿ö # @param curPlayer: Íæ¼ÒʵÀý # @param dataDict: ¼Ç¼ÐÅÏ¢×Öµä # @return: None def DR_OpenServerAward(curPlayer, dataDict): dataDict["PlayerID"] = curPlayer.GetPlayerID() dataDict["AccID"] = curPlayer.GetAccID() dataDict["PlayerName"] = curPlayer.GetPlayerName() SendEventPack("OpenServerAward", dataDict, curPlayer) 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} #·¢ËÍ·â°ü curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID) SendEventPack("GMToolOperate", dataDict, curPlayer) return ## ³öÊÛÖ¸¶¨±³°üÎïÆ· # @param curPlayer: Íæ¼ÒʵÀý # @param dataDict: ¼Ç¼ÐÅÏ¢×Öµä # @return: def DR_SellPackItem(curPlayer, dataDict): dataDict.update({"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID()}) SendEventPack("SellPackItem", dataDict, curPlayer) return ## ɾ³ý±³°üÎïÆ· # @param curPlayer: Íæ¼ÒʵÀý # @param dataDict: ¼Ç¼ÐÅÏ¢×Öµä # @return: def DR_DeleteItemInRecycle(curPlayer, dataDict): dataDict.update({"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID()}) SendEventPack("DeleteItemInRecycle", dataDict, curPlayer) return ## ¹ºÂòÎïÆ· # @param curPlayer: Íæ¼ÒʵÀý # @param itemId: ÎïÆ·ID # @param buyCount: ÎïÆ·ÊýÁ¿ # @param itemGuid: ÎïÆ·GUID # @return: def DR_BuyItem(curPlayer, eventName, itemId, buyCount, itemGuid, addDataDict={}): dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(), "ItemID":itemId, "ItemCount":buyCount, "ItemGUID":itemGuid} dataDict.update(addDataDict) SendEventPack("BuyItem_%s" % eventName, dataDict, curPlayer) return ## ÈÎÎñ¸øÓè½ðÇ® # @param curPlayer: Íæ¼ÒʵÀý # @param eventName: ʼþÀàÐÍ # @param missionID: ÈÎÎñID # @param moneyType: ½ðÇ®ÀàÐÍ # @param moneyCount: ½ðÇ®ÊýÁ¿ # @return: def DR_EventAddMoney(curPlayer, eventName, missionID, moneyType, moneyCount): return dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(), "MissionID":missionID, "MoneyType":moneyType, "MoneyCount":moneyCount, 'PlayerMoneyCount':PlayerControl.GetMoney(curPlayer, moneyType)} SendEventPack("EventAddMoney_%s"%eventName, dataDict, curPlayer) return ## ÈÎÎñ¸øÓè¾­Ñé def DR_EventAddExp(curPlayer, missionID, exp): return dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(), "MissionID":missionID, "GiveExp":exp, "PlayerExp":curPlayer.GetTotalExp()} SendEventPack("EventAddExp", dataDict, curPlayer) return ## ɾ³ýÎïÆ· # @param curPlayer: Íæ¼ÒʵÀý # @param eventName: ¹¦ÄÜʼþÃû # @param dataDict: ¼Ç¼ÏûÏ¢ # @return: None def DR_DeleteItem(curPlayer, eventName, delItemInfoDict, extraDict={}): dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID()} dataDict.update(delItemInfoDict) dataDict.update(extraDict) SendEventPack("DeleteItem_%s"%eventName, dataDict, curPlayer) return ## »î¶¯ÆÚ¼äÈÎÒâÖØÖøøÓèÎïÆ· # @param cyrPlayer: Íæ¼ÒʵÀý # @param giveItemInfoDict: ÎïÆ·ÐÅÏ¢×Öµä # @return def DR_RandCoinGiveItem(curPlayer, giveItemInfoDict): dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID()} dataDict.update(giveItemInfoDict) SendEventPack("RandCoinGiveItem", dataDict, curPlayer) return ## »î¶¯Æڼ䵥´Î³äÖµ¸øÓèÎïÆ· # @param cyrPlayer: Íæ¼ÒʵÀý # @param giveItemInfoDict: ÎïÆ·ÐÅÏ¢×Öµä # @return def DR_OnTimeCoinGiveItem(curPlayer, giveItemInfoDict): dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID()} dataDict.update(giveItemInfoDict) SendEventPack("OnTimeCoinGiveItem", dataDict, curPlayer) return ## ÀۼƳäÖµ¸øÓèÎïÆ· # @param cyrPlayer: Íæ¼ÒʵÀý # @param giveItemInfoDict: ÎïÆ·ÐÅÏ¢×Öµä # @return def DR_TotalCoinGiveItem(curPlayer, giveItemInfoDict): dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID()} dataDict.update(giveItemInfoDict) SendEventPack("TotalCoinGiveItem", dataDict, curPlayer) return ## Êͷż¼ÄÜÏûºÄÎïÆ· # @param curPlayer: Íæ¼ÒʵÀý # @param itemID: ÎïÆ·ID # @param itemCnt: ÎïÆ·ÊýÁ¿ # @param itemGuid: Íæ¼ÒGUID # @param skillID: ¼¼ÄÜID # @return: def DR_UseSkilLostItem(curPlayer, itemID, itemCnt, itemGuid, skillID): return dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(), "ItemID":itemID, "ItemCount":itemCnt, "ItemGUID":itemGuid, "SkillID":skillID} SendEventPack("UseSkilLostItem", dataDict, curPlayer) return ## ±³°üÎïÆ·½»»» # @param curPlayer: Íæ¼ÒʵÀý # @param itemID: ÎïÆ·ID # @param itemCnt: Íæ¼ÒÊýÁ¿ # @param itemGuid: Íæ¼ÒGUID # @param srcPackType: Æðʼ±³°üÀàÐÍ # @param descPackType: Ä¿±ê±³°üÀàÐÍ # @return: None def DR_ChangePackItem(curPlayer, itemID, itemCnt, itemGuid, srcPackType, descPackType): return dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(), "ItemID":itemID, "ItemCount":itemCnt, "ItemGUID":itemGuid, "SrcPackType":srcPackType, "DescPackType":descPackType} SendEventPack("ChangePackItem", dataDict, curPlayer) return ## ÉèÖòֿâÃÜÂë # @param curPlayer: Íæ¼ÒʵÀý # @param OldPsw: ¾ÉÃÜÂë # @param NewPsw: ÐÂÃÜÂë # @return: def DR_SetWarehousePsw(curPlayer, oldPsw, newPsw): dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(), "OldPsw":oldPsw, "NewPsw":newPsw} SendEventPack("SetWarehousePsw", dataDict, curPlayer) return ## ÏûºÄ½ðÇ® # @param curPlayer: Íæ¼ÒʵÀý # @param eventName: ¹¦ÄÜʼþÃû # @param moneyType: ½ðÇ®ÀàÐÍ # @param moneyCount: ½ðÇ®ÊýÁ¿ # @param addDataDict: ¸½¼ÓÐÅÏ¢ # @return: def DR_UseMoney(curPlayer, eventName, moneyType, moneyCount, addDataDict={}): if moneyCount <= 0: return #±ÜÃâ¼Ç¼̫¶àÐÅÏ¢ if moneyType in [IPY_GameWorld.TYPE_Price_Silver_Money] and moneyCount < ChConfig.Def_DRRecord_Min_Silver: return dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), "eventName":eventName, 'MoneyType':moneyType, 'MoneyCount':moneyCount, 'PlayerMoneyCount':PlayerControl.GetMoneyReal(curPlayer, moneyType), 'VIPLV':curPlayer.GetVIPLv(), 'PlayerLV':curPlayer.GetLV()} dataDict.update(addDataDict) dataDict.update(__GetFuncDRDict(curPlayer)) #½ð×Ó if moneyType == IPY_GameWorld.TYPE_Price_Gold_Money: SendEventPack("UseGold", dataDict, curPlayer) #½ðƱ elif moneyType == IPY_GameWorld.TYPE_Price_Gold_Paper: SendEventPack("UseGoldPaper", dataDict, curPlayer) #Òø×Ó elif moneyType == IPY_GameWorld.TYPE_Price_Silver_Money: SendEventPack("UseSilver", dataDict, curPlayer) #ÒøƱ elif moneyType == IPY_GameWorld.TYPE_Price_Silver_Paper: SendEventPack("UseSilverPaper", dataDict, curPlayer) #´ú±Ò elif moneyType == ShareDefine.TYPE_Price_PayCoin: SendEventPack("UsePayCoin", dataDict, curPlayer) #×Ô¶¨Òå»õ±Ò elif moneyType in ShareDefine.TYPE_Price_CurrencyDict: SendEventPack("UseCurrency_%s" % moneyType, dataDict, curPlayer) #Õ½Ã˹±Ï× elif moneyType == ShareDefine.TYPE_Price_Family_Contribution: SendEventPack("UseFamilyContribution", dataDict, curPlayer) return ## »ñµÃ½ðÇ® # @param curPlayer: Íæ¼ÒʵÀý # @param eventName: ¹¦ÄÜʼþÃû # @param moneyType: ½ðÇ®ÀàÐÍ # @param moneyCount: ½ðÇ®ÊýÁ¿ # @param addDataDict: ¸½¼ÓÐÅÏ¢ # @return: def DR_GiveMoney(curPlayer, eventName, moneyType, moneyCount, addDataDict={}): if moneyCount <= 0: return #±ÜÃâ¼Ç¼̫¶àÐÅÏ¢ if moneyType in [IPY_GameWorld.TYPE_Price_Silver_Money] and moneyCount < ChConfig.Def_DRRecord_Min_Silver: return dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), "eventName":eventName, 'MoneyType':moneyType, 'MoneyCount':moneyCount, 'PlayerMoneyCount':PlayerControl.GetMoneyReal(curPlayer, moneyType), 'VIPLV':curPlayer.GetVIPLv(), 'PlayerLV':curPlayer.GetLV()} dataDict.update(addDataDict) dataDict.update(__GetFuncDRDict(curPlayer)) #½ð×Ó if moneyType == IPY_GameWorld.TYPE_Price_Gold_Money: SendEventPack("GiveGold", dataDict, curPlayer) #½ðƱ elif moneyType == IPY_GameWorld.TYPE_Price_Gold_Paper: SendEventPack("GiveGoldPaper", dataDict, curPlayer) #Òø×Ó elif moneyType == IPY_GameWorld.TYPE_Price_Silver_Money: SendEventPack("GiveSilver", dataDict, curPlayer) #ÒøƱ elif moneyType == IPY_GameWorld.TYPE_Price_Silver_Paper: SendEventPack("GiveSilverPaper", dataDict, curPlayer) #´ú±Ò elif moneyType == ShareDefine.TYPE_Price_PayCoin: SendEventPack("GivePayCoin", dataDict, curPlayer) #×Ô¶¨Òå»õ±Ò elif moneyType in ShareDefine.TYPE_Price_CurrencyDict: SendEventPack("GiveCurrency_%s" % moneyType, dataDict) return ## »ñµÃ½ðǮʧ°Ü def DR_GiveMoneyError(curPlayer, priceType, value, giveType, addDataDict): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), "GiveType":giveType, "GiveValue":value, "AddDataDict":addDataDict} SendEventPack("GiveMoneyError_%s" % priceType, dataDict, curPlayer) return ## »ñµÃÎïÆ· # @param curPlayer: Íæ¼ÒʵÀý # @param eventName: ¹¦ÄÜʼþÃû # @param itemID: ÎïÆ·ID # @param curPlayer: ÎïÆ·ÊýÁ¿ # @param addDataDict: ¸½¼ÓÐÅÏ¢ # @return: def DR_SetPlayerItem(curPlayer, eventName, itemDataDict, addDataDict={}): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID()} dataDict.update(itemDataDict) dataDict.update(addDataDict) SendEventPack("GivePlayerItem_%s"%eventName, dataDict, curPlayer) return ## ×°±¸¼Ó¹¤ # @param curPlayer: Íæ¼ÒʵÀý # @param eventName: ¹¦ÄÜʼþÃû # @param addDataDict: ¸½¼ÓÐÅÏ¢ # @return: def DR_EquipMachining(curPlayer, eventName, addDataDict): dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID()} dataDict.update(addDataDict) SendEventPack("EquipMachining_%s"%eventName, dataDict, curPlayer) return def DR_StoneItemChange(curPlayer, eventName, addDict={}): # ¼Ç¼±¦Ê¯ÎïÆ·±ä¸ü dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID()} dataDict.update(addDict) SendEventPack("StoneChange_%s"%eventName, dataDict, curPlayer) Cache_FightPowerChangeInfo(curPlayer, ChConfig.PowerDownType_StoneChange, addDict) return def DR_VIPChange(curPlayer, eventName, addDict={}): dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID()} dataDict.update(addDict) SendEventPack("VIPTimeChange_%s"%eventName, dataDict, curPlayer) return ## ѧϰºÍÉý¼¶¼¼ÄÜ # @param curPlayer: Íæ¼ÒʵÀý # @param SkillID: ¼¼ÄÜID # @param skillLV: ¼¼Äܵȼ¶ # @return: def DR_LearnORUPSkill(curPlayer, skillID, skillLV): dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(), "skillID":skillID, "LV":skillLV} SendEventPack("LearnORUPSkill", dataDict, curPlayer) return ## ËéƬºÏ³É¸øÓèÎïÆ· # @param curPlayer: Íæ¼ÒʵÀý # @param itemID: ÎïÆ·ID # @param itemCnt: ÎïÆ·ÊýÁ¿ # @param isBind: ÊÇ·ñ°ó¶¨ # @return: def DR_StuffMachining(curPlayer, itemID, itemCnt, isBind): return #MySql²»Ê¶±ð True False,¸Ä³É1ºÍ0 isBind = 1 if isBind else 0 dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(), "ItemID":itemID, "ItemCount":itemCnt, "IsBind":isBind} SendEventPack("StuffMachining", dataDict, curPlayer) return ## ±³°ü¸ñ×ÓÊýÁ¿¹ºÂò # @param curPlayer: Íæ¼ÒʵÀý # @param packType: ±³°üÀàÐÍ # @param buyCnt: ¹ºÂò¸ñ×ÓÊý # @param totalCnt: ×ܹºÂòÊý # @return: def DR_OpenPackCount(curPlayer, packType, buyCnt, tatleCnt): dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(), "PackType":packType, "Count":buyCnt, "TotalCount":tatleCnt} SendEventPack("OpenPackCount", dataDict, curPlayer) return ## Ц¶÷¼µãÊý¸Ä±ä # @param curPlayer: Íæ¼ÒʵÀý # @param changePoint: ¸Ä±äµãÊý # @param resultPoint: ½á¹ûµãÊý # @return: def DR_EventXELPoint(curPlayer, changePoint, resultPoint): dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(), "ChangePoing":changePoint, "Point":resultPoint} SendEventPack("EventXELPoint", dataDict, curPlayer) return ## Ìí¼Ó³ÆºÅ # @param curPlayer: Íæ¼ÒʵÀý # @param eventName: À´Ô´Ê¼þÃû # @param titleID: ³ÆºÅID # @param addDataDict: ¸½¼ÓÊôÐÔ # @return def DR_AddTitle(curPlayer, eventName, titleID, addDataDict={}): dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(), "ItemID":titleID} dataDict.update(addDataDict) SendEventPack("AddTitle_%s"%eventName, dataDict, curPlayer) return ## Íæ¼ÒÊ£ÓàÊôÐÔµã # @param curPlayer: Íæ¼ÒʵÀý # @param eventName: À´Ô´Ê¼þÃû # @param point: µãÊý # @param addDataDict: ¸½¼ÓÊôÐÔ def DR_Freepoint(curPlayer, eventName, point, addDataDict={}): return dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(), "Point":point, "TotalPoint":curPlayer.GetFreePoint()} dataDict.update(addDataDict) SendEventPack("Freepoint_%s"%eventName, dataDict, curPlayer) return ## ÕæÆø¸Ä±ä # @param curPlayer: Íæ¼ÒʵÀý # @param eventName: ʼþÀàÐÍ # @param value: ÊýÖµ # @param addDataDict: ¸½¼ÓÊôÐÔ def DR_ChangeZhenQi(curPlayer, eventName, value, addDataDict={}): return dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(), "Value":value, "TotalValue":curPlayer.GetExAttr5()} dataDict.update(addDataDict) SendEventPack("ChangeZhenQi_%s"%eventName, dataDict, curPlayer) return ## ʹÓóèÎïÂú»ê£¬µÃµ½³èÎï # @param curPlayer: Íæ¼ÒʵÀý # @param itemID: ÎïÆ·ID # @param itemGUID: ÎïÆ·GUID # @param petNpcName: ³èÎïNPCÃû×Ö # @param petNpcID: ³èÎïNPC # @return: def DR_UsePetSoul(curPlayer, itemID, itemGUID, petNpcName, petNpcID): dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(), "ItemID":itemID, "ItemGUID":itemGUID, "NPCID":petNpcID, "NPCName":petNpcName} SendEventPack("UsePetSoul", dataDict, curPlayer) return ## ïÚ³µ # @param curPlayer: Íæ¼ÒʵÀý # @param eventName: ʼþÃû # @param addDataDict: ¸½¼ÓÊôÐÔ # @return: def DR_Truck(curPlayer, eventName, addDataDict): dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID()} dataDict.update(addDataDict) SendEventPack("Truck_%s"%eventName, dataDict, curPlayer) return ## ÉèÖÃÍæ¼ÒSB״̬ # @param curPlayer: Íæ¼ÒʵÀý # @param state: ״̬ # @return: def SetPlayerSBState(curPlayer, state): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), "State":state} SendEventPack("SetPlayerSBState", dataDict, curPlayer) return ## Íæ¼Ò¼Ò×åÐÅÏ¢ # @param curPlayer: Íæ¼ÒʵÀý # @param eventName: ʼþÃû # @param addDataDict: ¸½¼ÓÊôÐÔ # @return: def DR_PlayerFamily(curPlayer, eventName, addDataDict): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID()} dataDict.update(addDataDict) SendEventPack("PlayerFamily_%s"%eventName, dataDict, curPlayer) return ## »ñµÃÍþÍûÖµ # @param curPlayer Íæ¼ÒʵÀý # @param addPrestige Ìí¼ÓÖµ # @param addType Ô­Òò # @return def DR_GetPrestigeValue(curPlayer, addPrestige, addType): return dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), "Prestige":addPrestige, "TotalPrestige":PlayerControl.GetPrestige(curPlayer), "Type":addType} SendEventPack("GetPrestigeValue", dataDict, curPlayer) return ## ʧȥÍþÍûÖµ # @param curPlayer Íæ¼ÒʵÀý # @param addPrestige Ìí¼ÓÖµ # @param addType Ô­Òò # @return def DR_LostPrestigeValue(curPlayer, addPrestige, addType): return dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), "Prestige":addPrestige, "TotalPrestige":PlayerControl.GetPrestige(curPlayer), "Type":addType} SendEventPack("LostPrestigeValue", dataDict, curPlayer) return ## ¼Ç¼´íÎóÐÅÏ¢ # @param info: ´íÎóÐÅÏ¢ # @param playerID: Íæ¼ÒID # @param playerName: Íæ¼ÒÃû×Ö # @param accID: Õ˺ÅID # @return def DR_ErrorInfo(info, playerID, playerName, accID): curMapID = GameWorld.GetMap().GetMapID() dataDict = {"errInfo":info, "mapID":curMapID, "playerID":playerID, "PlayerName":playerName, "accID":accID} SendEventPack("ErrorInfo", dataDict) return ## Íæ¼ÒÒ»´ÎÐÔ¶Ò»»µã¾íËÍÔª±¦ # @param curPlayer: Íæ¼ÒʵÀý # @param useCoin: ¶Ò»»µãȯÊý # @param giveGold:¸øÓèÔª±¦ # @return def DR_OneTimeCoinGiveGold(curPlayer, useCoin, giveGold): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'UseCoin':useCoin, 'GiveGold':giveGold, 'TotalGold':curPlayer.GetGold()} #·¢ËÍ·â°ü SendEventPack("OneTimeCoinGiveGold", dataDict, curPlayer) return ## Ôö¼ÓÍæ¼Ò¼Ò×å»îÔ¾¶È # @param curPlayer: Íæ¼ÒʵÀý # @param addValue: Ôö¼ÓÖµ # @param curValue: Ôö¼ÓºóÖµ # @param reason:Ôö¼ÓÔ­Òò # @return def DR_AddPlayerFamilyActiveValue(curPlayer, addValue, curValue, reason): return dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'addValue':addValue, 'FamilyActiveValue':curValue, 'Reason':reason} #·¢ËÍ·â°ü SendEventPack("AddPlayerFamilyActiveValue", dataDict, curPlayer) return ## ³èÎï¼Óµã # @param curPlayer: Íæ¼ÒʵÀý # @param petID: ³èÎïid # @param refreshType: ÔöµãÀàÐÍ # @param addPoint: Ôö¼ÓµãÊý # @param npcID: ³èÎïnpcid # @return def DR_PetAddPoint(curPlayer, petID, refreshType, addPoint, npcID): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'PetID':petID, 'AttrType':refreshType, 'AddPoint':addPoint, 'NPCID':npcID} #·¢ËÍ·â°ü SendEventPack("PetAddPoint", dataDict, curPlayer) return ## ³èÎï¼ÓÇ×ÃÜ¶È # @param curPlayer: Íæ¼ÒʵÀý # @param petID: ³èÎïid # @param addValue: Ôö¼ÓµãÊý # @param npcID: ³èÎïnpcid # @param curFriendliness: ÔöµãÀàÐÍ # @return def DR_AddFriendliness(curPlayer, petID, addValue, petNPCID, curFriendliness): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'PetID':petID, 'AddValue':addValue, 'Friendliness':curFriendliness, 'NPCID':petNPCID} #·¢ËÍ·â°ü SendEventPack("AddFriendliness", dataDict, curPlayer) return ## Íæ¼ÒÉýÐÇ # @param curPlayer: Íæ¼ÒʵÀý # @param itemID: ÎïÆ·ID # @param starLV: ÎïÆ·ÐǼ¶ # @param addDataDict: ¸½¼Ó²ÄÁϵÄ×Öµä # @return def DR_UpStarLVSuccess(curPlayer, exp, starLV): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), "StarLV":starLV, "Exp":exp} #·¢ËÍ·â°ü SendEventPack("UpStarLVSuccess", dataDict, curPlayer) return ## Íæ¼ÒËÀÍö # @param tagObjType: ¹¥»÷·½ÀàÐÍ # @param tagObj: ¹¥»÷·½ID # @param mapID: ËÀÍöÍæ¼ÒËùÔÚµØͼID # @return def DR_PlayerDead(atkObjType, atkObjID, curPlayer, mapID): return dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'MapID':mapID, 'AtkObjType':atkObjType, "ObjID":atkObjID} #·¢ËÍ·â°ü SendEventPack("PlayerDead", dataDict, curPlayer) return ## ¸ø´æ½±Àø±íÎïÆ· # @param curPlayer: Íæ¼Ò # @param rewardType: ½±ÀøÀàÐÍ # @param itemID: ÎïÆ·ID # @param itemCnt: ÎïÆ·¸öÊý # @return def DR_PlayerGetReward(curPlayer, rewardType, itemID, itemCnt): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'itemID':itemID, 'itemCnt':itemCnt, 'rewardType':rewardType} #·¢ËÍ·â°ü SendEventPack("PlayerGetReward", dataDict, curPlayer) return ## ÉêÇë¼ÓÈë¹ó±ö¾ãÀÖ²¿ # @param curPlayer # @param hasRegister: ֮ǰÊÇ·ñÒѱ¨Ãû # @param moneyType: ÏûºÄ½ðÇ®ÀàÐÍ # @param money: ÏûºÄ½ðÇ®ÊýÁ¿ # @return def DR_ApplyVIPClub(curPlayer, name, sex, tel, mail, addr, qq, birthday, postalcode, serverID, giveItemOK): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "QQ":qq, 'AccID':curPlayer.GetAccID(), 'Name':name, "Sex":sex, "Tel":tel, "Mail":mail, "Address":addr, "Birthday":birthday, "Postalcode":postalcode, "ServerID":serverID, "GiveItemOK":giveItemOK} #·¢ËÍ·â°ü SendEventPack("ApplyVIPClub", dataDict, curPlayer) return ## ¿ç·þÈü±¨Ãû # @param curPlayer # @param hasRegister: ֮ǰÊÇ·ñÒѱ¨Ãû # @param moneyType: ÏûºÄ½ðÇ®ÀàÐÍ # @param money: ÏûºÄ½ðÇ®ÊýÁ¿ # @return def DR_MergeWarRegister(curPlayer, hasRegisterCnt, moneyType, money): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'HasRegisterCnt':hasRegisterCnt, 'MoneyType':moneyType, "MoneyCnt":money} #·¢ËÍ·â°ü SendEventPack("MergeWarRegister", dataDict, curPlayer) return ## ¿ç·þÈü±¨Ãû½á¹û # @param curPlayer # @param hasRegister: ֮ǰÊÇ·ñÒѱ¨Ãû # @param moneyType: ÏûºÄ½ðÇ®ÀàÐÍ # @param money: ÏûºÄ½ðÇ®ÊýÁ¿ # @return def DR_MergeWarRegisterResult(curPlayer, result, errorMsg, newAccount): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'Result':result, "ErrorMsg":errorMsg, "NewAccount":newAccount} #·¢ËÍ·â°ü SendEventPack("MergeWarRegisterResult", dataDict, curPlayer) return #Supernatural------------------------------------------------------------------------------- ## ½»Ò׳öÊÛÎïÆ· # @param curPlayer: Íæ¼ÒʵÀý # @param tagPlayer: ÎïÆ·ID # @param itemID: ÎïÆ·ID # @param itemCnt: ÎïÆ·ÊýÁ¿ # @param itemData: ÎïÆ·ÐÅÏ¢ # @return def DR_TradeLostItem(curPlayer, tagPlayer, itemID, itemCnt, itemData): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'TagPlayer':tagPlayer.GetPlayerID(), "ItemID":itemID, "ItemCnt":itemCnt} dataDict.update(itemData) #·¢ËÍ·â°ü SendEventPack("TradeLostItem", dataDict, curPlayer) return ## ½»Ò×¹ºµÃÎïÆ· # @param curPlayer: Íæ¼ÒʵÀý # @param tagPlayer: ÎïÆ·ID # @param itemID: ÎïÆ·ID # @param itemCnt: ÎïÆ·ÊýÁ¿ # @return def DR_TradeGetItem(curPlayer, tagPlayer, itemID, itemCnt, itemData): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'TagPlayer':tagPlayer.GetPlayerID(), "ItemID":itemID, "ItemCnt":itemCnt} dataDict.update(itemData) #·¢ËÍ·â°ü SendEventPack("TradeGetItem", dataDict, curPlayer) return ## ½»Ò×ÖнðÇ®±ä»¯ # @param curPlayer: Íæ¼ÒʵÀý # @param tagPlayer: Ä¿±êÍæ¼Ò # @param goldEx: ½»Ò×Ç°Ôª±¦ # @param silverEx:½»Ò×Ç° Òø×Ó # @param gPaperEx: ½»Ò×Ç°½ðƱ # @param sPaperEx: ½»Ò×Ç°ÒøƱ # @return def DR_TradeMoney(curPlayer, tagPlayer, goldEx, silverEx, gPaperEx, sPaperEx): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'TagPlayer':tagPlayer.GetPlayerID(), "Gold":curPlayer.GetGold(), "Silver":PlayerControl.GetSilver(curPlayer), "GoldPaper":curPlayer.GetGoldPaper(), "SilverPaper":curPlayer.GetSilverPaper(), "GoldEx":goldEx, "SilverEx":silverEx, "GPaperEx":gPaperEx, "SPaperEx":sPaperEx} #·¢ËÍ·â°ü SendEventPack("TradeMoney", dataDict, curPlayer) return ## Íæ¼ÒÂíÆ¥½ø½× # @param curPlayer: Íæ¼ÒʵÀý # @param classLV: ½×¼¶ # @param horseID: ÐÂÂíÆ¥id # @return: None def DR_NewHorseByClassUp(curPlayer, classLV, horseID): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'ClassLV':classLV, 'HorseID':horseID, } SendEventPack("NewHorseByClassUp", dataDict, curPlayer) return ## ×øÆï»Ã»¯Æ¤·ôɾ³ý def DR_HorseSkinDel(curPlayer, skinID): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'skinID':skinID,} SendEventPack("HorseSkinDel", dataDict, curPlayer) return ## Íæ¼Ò½ø½×ʽϵͳÁ÷Ïò¼Ç¼ # @param curPlayer # @param classLV ½×¼¶ # @param extraInfoDict Ô¤ÁôÐÅÏ¢×Öµä # @return: None def DR_ClassUpSystem(curPlayer, drKey, classLV, extraInfoDict={}): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'ClassLV':classLV, } dataDict.update(extraInfoDict) SendEventPack(drKey, dataDict, curPlayer) return ## ×°±¸ºÏ³ÉÎïÆ· # @param curPlayer: Íæ¼ÒʵÀý # @param itemID: ÎïÆ·id # @param itemCnt: ÎïÆ·ÊýÁ¿ # @param itemData: ÎïÆ·Êý¾Ý # @return: None def DR_EquipCompound(curPlayer, recordName, itemID, itemCnt, itemData): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), "ItemID":itemID, "ItemCnt":itemCnt} dataDict.update(itemData) #·¢ËÍ·â°ü SendEventPack(recordName, dataDict, curPlayer) return ## ²É¼¯ÌØÊâNPC # @param curPlayer: Íæ¼ÒʵÀý # @param npcID: npcID # @return: None def DR_CollectNPCOK(curPlayer, npcID, giveMoney, giveExp, giveZhenQi, giveItemList): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'PlayerLV':curPlayer.GetLV(), 'GiveMoney':giveMoney, 'GiveExp':giveExp, 'GiveZhenQi':giveZhenQi, 'GiveItemList':str(giveItemList), 'NPCID':npcID} #·¢ËÍ·â°ü SendEventPack("CollectNPCOK", dataDict, curPlayer) return ## ÁìȡͶ×ʻر¨ # @param curPlayer: Íæ¼ÒʵÀý # @return: None def DR_GetGoldInvestReward(curPlayer, investType, rewardIndex, itemList): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'PlayerLV':curPlayer.GetLV(), 'InvestType':investType, 'RewardIndex':rewardIndex, 'itemList':itemList} #·¢ËÍ·â°ü SendEventPack("GetGoldInvestReward", dataDict, curPlayer) return ## »÷ɱNPCÁ÷Ïò # @param curPlayer: Íæ¼ÒʵÀý # @param eventName: # @param npcID: npcID # @return: None def DR_KillNPC(curPlayer, eventName, npcID, extendDict={}): mapID = GameWorld.GetMap().GetMapID() dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'PlayerLV':curPlayer.GetLV(), 'MapID':mapID, 'NPCID':npcID} dataDict.update(extendDict) #·¢ËÍ·â°ü SendEventPack("KillNPC_%s" % eventName, dataDict, curPlayer) return def DR_TreasureResult(curPlayer, actionType, successCnt, extendDict={}): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'PlayerLV':curPlayer.GetLV(), "ActionType":actionType, "successCnt":successCnt} dataDict.update(extendDict) #·¢ËÍ·â°ü SendEventPack("TreasureResult", dataDict, curPlayer) return ## Íæ¼ÒÌá½»bug¼°½¨Òé def DR_BugSuggest(curPlayer, eventName, content): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'content':content} #·¢ËÍ·â°ü SendEventPack("PlayerSubmit_%s" % eventName, dataDict, curPlayer) return ## ×ÊÔ´ÕһؼǼ # @param curPlayer # @return: None def DR_PlayerRecover(curPlayer, recoverWay, recoverCntDict, totalExp, totalMoney, totalSP, totalItemDict): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'recoverWay':recoverWay, 'recoverCntDict':recoverCntDict, 'totalExp':totalExp, 'totalMoney':totalMoney, 'totalSP':totalSP, 'totalItemDict':totalItemDict} #·¢ËÍ·â°ü SendEventPack("PlayerRecover", dataDict, curPlayer) return def DR_GlobalDropCD(curPlayer, npcID, itemID): # È«¾ÖµôÂäCDµôÂä¼Ç¼ dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'PlayerLV':curPlayer.GetLV(), 'NPCID':npcID, 'ItemID':itemID} #·¢ËÍ·â°ü SendEventPack("GlobalDropCD", dataDict, curPlayer) return def DR_GlobalDropRate(curPlayer, npcID, itemID, killedCnt, dropRate): # È«¾Ö»÷ɱµôÂä¸ÅÂʵôÂä¼Ç¼ dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'PlayerLV':curPlayer.GetLV(), 'NPCID':npcID, 'ItemID':itemID, 'KilledCnt':killedCnt, 'DropRate':dropRate} #·¢ËÍ·â°ü SendEventPack("GlobalDropRate", dataDict, curPlayer) return def DR_MagicWeaponExp(curPlayer, mwID, succID, newExp, needExp): # ·¨±¦¼¤»î¾­Ñé»ñµÃ¼Ç¼ dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'mwID':mwID, 'succID':succID, 'newExp':newExp, 'needExp':needExp} #·¢ËÍ·â°ü SendEventPack("MagicWeaponExp", dataDict, curPlayer) return def DR_MagicWeaponActive(curPlayer, mwID, mwLV): # ·¨±¦µÈ¼¶Éý¼¶¼Ç¼ dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'PlayerName':curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'mwID':mwID, 'mwLV':mwLV} #·¢ËÍ·â°ü SendEventPack("MagicWeaponActive", dataDict, curPlayer) return ## Íæ¼ÒÉÏÏ߳ɾͼì²é # @return def DR_CheckOldPlayerSuccess(curPlayer): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID()} #·¢ËÍ·â°ü SendEventPack("CheckOldPlayerSuccess", dataDict, curPlayer) return ## Íæ¼Ò¾³½çÉý¼¶ # @return def DR_RealmLVUp(curPlayer, realmlv): dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 'AccID':curPlayer.GetAccID(), 'realmlv':realmlv, 'playerlv':curPlayer.GetLV(), 'power':PlayerControl.GetFightPower(curPlayer)} #·¢ËÍ·â°ü SendEventPack("RealmLVUp", dataDict, curPlayer) return def Cache_FightPowerChangeInfo(curPlayer, dotype, dataDict): ##ÔÝ´æ¿ÉÄܵ¼ÖÂÕ½Á¦½µµÍµÄÐÐΪÐÅÏ¢ dataDict['dotime'] = str(datetime.datetime.today()).split(".")[0] eventName = ChConfig.FightPowerDownRecordDict.get(dotype, 'Unknown') if eventName in PyGameData.g_fightpowerChangeDataRecordDict: PyGameData.g_fightpowerChangeDataRecordDict[eventName].append(dataDict) else: PyGameData.g_fightpowerChangeDataRecordDict[eventName] = [dataDict] return def DR_FightPowerChangeInfo(curPlayer, beforePower): ##¼Ç¼սÁ¦½µµÍµÄÐÐΪÐÅÏ¢ dataDict = {'beforePower':beforePower, 'PlayerID':curPlayer.GetPlayerID(), 'AccID':curPlayer.GetAccID()} for dotype, dateList in PyGameData.g_fightpowerChangeDataRecordDict.items(): rList = [] for dateInfo in dateList: dateTimeStr = dateInfo['dotime'] if GameWorld.GetPastSeconds(dateTimeStr) >10: continue rList.append(dateInfo) dataDict[dotype] = rList PyGameData.g_fightpowerChangeDataRecordDict = {} #·¢ËÍ·â°ü SendEventPack("FightPowerChangeInfo", dataDict, curPlayer) return ## Íæ¼ÒÖÜ¿ñ»¶£¨ÆßÌìѲÀñ£© # @return def DR_WeekPartyPoint(curPlayer, dayIndex, point): dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'AccID':curPlayer.GetAccID(), 'dayIndex':dayIndex, 'point':point} #·¢ËÍ·â°ü SendEventPack("WeekPartyPoint", dataDict, curPlayer) return def DR_FeastWeekPartyPoint(curPlayer, dayIndex, point): ##½ÚÈÕѲÀñ dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'AccID':curPlayer.GetAccID(), 'dayIndex':dayIndex, 'point':point} #·¢ËÍ·â°ü SendEventPack("FeastWeekPartyPoint", dataDict, curPlayer) return