#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # #------------------------------------------------------------------------------- # ##@package EventReport # # @todo:ʼþ»ã±¨ # @author hxp # @date 2015-1-14 # @version 2.4 # @Note£º EventReport_EventReportÓ÷¨ µÚÒ»¸ö²ÎÊý´«postÄÚÈÝurlencode£¬µÚ2,3,4²»Ó㻵ÚÎå¸ö²ÎÊý0´ú±íget£¬1Ϊpost£»µÚÁù¸ö²ÎÊýΪurl # # @change: "2015-01-28 22:30" hxp ¹Ø±Õʼþ»ã±¨ # @change: "2015-02-06 20:40" Alee ʼþ»ã±¨·¢ËÍÖÁºÏ·þÖ÷·þ # @change: "2015-06-08 20:30" hxp Ôö¼ÓchannelCode # @change: "2015-07-13 14:00" hxp Ôö¼ÓpidÐÅÏ¢ # @change: "2016-07-18 19:00" hxp 9377¶À´úʼþ»ã±¨°æ # @change: "2016-07-27 20:00" Alee Ð޸Ĵò¿ªÎļþ³¬Ê±¹Ø±Õ # @change: "2016-07-30 11:30" hxp ¹Ø±ÕÎïÆ·¸ú×Ù # @change: "2016-08-18 16:30" hxp ×Ô¶¨ÒåÈÎÎñʼþ # @change: "2016-08-30 23:00" hxp ÁÄÌì¼à¿Ø # @change: "2016-09-10 11:00" hxp ÁÄÌìÄÚÈÝÌæ»»»»ÐÐ # @change: "2016-11-09 20:00" hxp Ôö¼Ó×Ô¶¨Òå¼Ç¼(×øÆï¡¢³á°ò¡¢³èÎï¡¢»õ±Ò½ø³ö¡¢³È×°) # @change: "2017-06-08 19:30" hxp Ôö¼Ó×Ô¶¨Òå¼Ç¼(µãȯ¡¢Éñ±ø¡¢·ûÓ¡¡¢¸ÄÃû¡¢ÕæÆø) # @change: "2017-07-01 15:30" hxp ƽ̨¸ÄΪ´ÓÍæ¼ÒÕ˺ÅÖÐÈ¡£¬Ö§³Ö»ì·þģʽ # @change: "2017-07-04 15:00" hxp Ôö¼Ó»ì·þģʽÏ¿ÉÇø·Ö¸÷ƽ̨×ÔÉíÇø·þºÏ·þºóµÄƽ̨Ö÷·þID # ÏêϸÃèÊö: ʼþ»ã±¨ # #--------------------------------------------------------------------- #"""Version = 2017-07-04 15:00""" #--------------------------------------------------------------------- import IpyGameDataPY import IPY_GameWorld import DataRecordPack import PlayerControl import ReadChConfig import ShareDefine import GameWorld import ChConfig import CommFunc import PlayerTJG import datetime import random import time import md5 import os import re import json import urllib EventFilepath = "D:\\EventServer\\PythonScribe\\EventLog\\" g_wFileName = "" g_writeHandle = None # ²»¿ÉÖ±½Óµ÷Óà Def_Custom_Events_Bug = "Bug" # ÓÎÏ·Bug Def_Custom_Events_Suggest = "suggest" # ÓÎÏ·½¨Òé Def_Custom_Events_Item = "Item" # ÎïÆ·¸ú×Ù Def_Custom_Events_GetMail = "GetMail" # ÓʼþÁìÈ¡ Def_Custom_Events_CommonCard = "CommonCard_%s" # ͨÓÃÐÂÊÖ¿¨ÂëʹÓÃ, ²ÎÊýΪͨÓÃÂ뿨ºÅ Def_Custom_Events_NewbieCard = "NewbieCard_%s" # ³£¹æÐÂÊÖ¿¨Ê¹ÓÃ, ²ÎÊýΪÀñ°üÀàÐÍ Def_Custom_Events_MediaCard = "MediaCard_%s" # ÐÂýÌ忨ʹÓÃ, ²ÎÊýΪ¿¨ÀàÐÍ g_whStartTime = 0 # ´´½¨Îļþʱ¼ä Def_WriteTime = 2 # Îļþ³ÖÐøÐ´Èëʱ¼ä£º·ÖÖÓ def OnTimeCloseScribeTxt(): global g_whStartTime global g_writeHandle global g_wFileName try: if g_whStartTime == 0: return #Îļþ´´½¨³¬¹ý if time.time() - g_whStartTime < 60*(Def_WriteTime + 1): return if g_writeHandle == None: return g_writeHandle.close() g_wFileName = "" g_whStartTime = 0 except: GameWorld.ErrLog("OnTimeCloseScribeTxt ³ö´í") ## ³õʼ»¯Ê¼þ # @param None # @return ÎÞ·µ»ØÖµ def InitDllAppID(): appID = "mobile" key = "mobile" GameWorld.GetGameWorld().EventReport_SetEventReportParam(appID, key) GameWorld.Log("³õʼ»¯Ê¼þ±¨¸æ: appID=%s,key=%s OK!" % (appID, key)) return ## ʼþ±¨¸æ¼Ç¼ # @param eventActionID ʼþid # @param eventParam ʼþ²ÎÊý # @param curPlayer # @return None def EventReport(eventActionID, eventParam, curPlayer=None, OperatorID=""): # ×é³ÉÀý×Ó eventParam µÄ¸ñʽ±ØÐëÊÇ xx=yy&zz=cc # "http://192.168.0.249:12000/event_receiver?EventID=3099&OperatorID=test&PlayerCount=102&Time=2018-02-08 18:30:30&ProductID=snxxz&RegionName=s1" reportActionIDList = IpyGameDataPY.GetFuncEvalCfg("EventReport", 3) if reportActionIDList and eventActionID not in reportActionIDList: #GameWorld.DebugLog("·ÇÐèÒª»ã±¨µÄʼþID! %s" % eventActionID) return if eventActionID in IpyGameDataPY.GetFuncEvalCfg("EventReport", 1): #GameWorld.DebugLog("²»ÐèÒª»ã±¨µÄʼþ! %s" % eventActionID) return if not curPlayer and not OperatorID: return ProductID = ReadChConfig.GetPyMongoConfig("EventReport", "ProductID") ReportUrl = ReadChConfig.GetPyMongoConfig("EventReport", "ReportUrl") playerInfo = "" if curPlayer: if not GameWorld.IsNormalPlayer(curPlayer): return #UTF8 ÐèҪת³Éurl±àÂë²Å¿ÉÓà playerInfo = urllib.urlencode({"RoleID": curPlayer.GetName(), "AccountID": GameWorld.GetPlatformAccID(curPlayer.GetAccID()), "IP": curPlayer.GetIP(), "Level": curPlayer.GetLV(), "DeviceFlag": curPlayer.GetAccountData().GetDeviceFlag(), "Job": curPlayer.GetJob(), "PlayerID": curPlayer.GetPlayerID(), "CreateRoleTime": curPlayer.GetCreateRoleTime(), }) OperatorID = GameWorld.GetPlayerPlatform(curPlayer) RegionName = GameWorld.GetPlayerServerSID(curPlayer) playerInfo = "&%s"%playerInfo else: # ºÏ·þÇé¿ö£¬Íæ¼ÒÈ¡×Ô¼º·þ·¢ËÍ£¬·ÇÍæ¼ÒÊý¾Ý°´Ö¸¶¨Æ½Ì¨ÅäÖ÷¢ sid = GameWorld.GetPlayerMainServerID(OperatorID) if not sid: GameWorld.ErrLog("GetPlayerMainServerID: %s-%s"%(OperatorID, sid)) return RegionName = 's%s'%sid if eventParam: eventParam = "&%s"%eventParam getUrl = "%s?ProductID=%s&OperatorID=%s&RegionName=%s&EventID=%s%s&Time=%s%s"%(\ ReportUrl, ProductID, OperatorID, RegionName, eventActionID, playerInfo, urllib.quote_plus(str(datetime.datetime.today()).split('.')[0]), eventParam) GameWorld.DebugLog("EventReport: %s"%getUrl) # µÚÎå¸ö²ÎÊý0´ú±íget·¢ËÍ 1´ú±ípost GameWorld.GetGameWorld().EventReport_EventReport("", "", "", "", 0, getUrl) return ## дʼþ±¨¸æÎļþ # @param eventClass # @return None def WriteEvent(eventClass): return if GameWorld.IsCrossServer(): return if eventClass.GetScribeEventName() not in ReadChConfig.GetEvalChConfig("EventReportID"): return if not os.path.isdir(EventFilepath): os.makedirs(EventFilepath) #³¢ÊÔдµ½Í¬Ò»¸öÎļþµ«ÊÇwindow »áÓÐbug£¬Ö»Äܸ÷×Ô³ÌÐò·Ö¿ªÐ´Èë fp_w = GetWriteIO() fp_w.write("%s\t%s\n"%(eventClass.GetScribeEventName(), eventClass.GetCurEventStr())) fp_w.flush() return # ·ÖÖÓ×¼µãУ׼ def FixTime(): curTime = datetime.datetime.today() curTime = curTime + datetime.timedelta(minutes=Def_WriteTime-curTime.minute%Def_WriteTime) tmp = str(curTime).split(".")[0][:-3].replace(':', '-') return tmp.replace(" ", "_") def GetLogFileName(fileStr): sessionid = md5.md5(str(random.random()) + str(time.time())).hexdigest() return EventFilepath + sessionid + fileStr + '.log' def GetWriteIO(): global g_wFileName global g_writeHandle global g_whStartTime fileTime = FixTime() if g_wFileName and fileTime in g_wFileName: #µ±Ç°ÎļþÖ±½Ó·µ»Ø return g_writeHandle curFileName = GetLogFileName(fileTime) if g_writeHandle != None: #¹Ø±Õ¾ÉÎļþ g_writeHandle.close() g_wFileName = curFileName g_writeHandle = open(g_wFileName, 'a+') g_whStartTime = time.time() return g_writeHandle ## ================================================================================================= # ÿ¸ö×ֶζ¼Ó¦¸ÃתΪ×Ö·û´®£¬²»È»join»á±¨´í class ScribeEvent(object): def __init__(self): #±ØÐë×Ö¶Î self.product_slug = 'yhlz' # ÓÎÏ·±êÖ¾ self.agent_name = ReadChConfig.GetPyMongoConfig("platform", "PlatformName") # ƽ̨±êÖ¾ self.gameserver_no = ReadChConfig.GetPyMongoConfig("platform", "ServerID")[1:] # Çø·þ self.time = "" #GameWorld.GetCurrentDataTimeStr() def SetEventAgentInfo(self, accIDPlatform): # ÉèÖôúÀíÔËÓªÉÌÐÅÏ¢ # @param accIDPlatform: ÕâÀïÈ¡Õ˺ÅËùÊôƽ̨£¬Ö§³Ö»ì·þ, Èç¹ûÈ¡²»µ½£¬ÔòÓÃĬÈÏÅäÖõÄÔËÓªÉÌÐÅÏ¢ if not accIDPlatform: return self.agent_name = accIDPlatform self.gameserver_no = str(GameWorld.GetPlayerMainServerID(self.agent_name)) return #¼´Ê¹ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' #±ÜÃâÐ޸ĸñʽµÄÇé¿ö£¬ÕâÀïͳһÐ޸ļ´¿É def GetEventStr(self, tmpList): return '\"%s\"'%'","'.join(tmpList) # 3.3.1. entry£¨ÐÂÍæ¼Òµ¼È룩 class entry(ScribeEvent): Def_EntryStep_CreatRole = 3 Def_EntryStep_FirstLogin = 4 def __init__(self): #±ØÐë×Ö¶Î super(entry, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.step = 0 # ²½ÖèÖµ #·Ç±ØÐë×Ö¶Î self.ip = "" # IP µØÖ· self.account_name = "" # Õ˺ŵǼÃû self.account_type = 0 # Õ˺ÅÀàÐÍ self.browser = "" # Íæ¼ÒʹÓõÄä¯ÀÀÆ÷ self.resolution = "" # Íæ¼ÒµÄ×ÀÃæ·Ö±æÂÊ£¬¸ñʽΪ¡¸¿í*¸ß¡¹ self.os = "" # Íæ¼ÒʹÓõIJÙ×÷ϵͳ #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): tmpList = [self.product_slug, self.agent_name, self.ip, self.gameserver_no, self.account_id, self.account_name, str(self.account_type), self.browser, self.resolution, self.os, str(self.step)] return super(entry, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_CreateRole # 3.3.2. login£¨µÇ¼£© class login(ScribeEvent): def __init__(self): #±ØÐë×Ö¶Î super(login, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.session_id = "" # »á»°ID #·Ç±ØÐë×Ö¶Î self.ip = "" # IP µØÖ· self.account_name = "" # Õ˺ŵǼÃû self.account_type = 0 # Õ˺ÅÀàÐÍ self.browser = "" # Íæ¼ÒʹÓõÄä¯ÀÀÆ÷ self.resolution = "" # Íæ¼ÒµÄ×ÀÃæ·Ö±æÂÊ£¬¸ñʽΪ¡¸¿í*¸ß¡¹ self.os = "" # Íæ¼ÒʹÓõIJÙ×÷ϵͳ self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.chr_level = 0 # Íæ¼Ò½ÇÉ«µÈ¼¶ #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.ip, self.gameserver_no, self.account_id, self.account_name, str(self.account_type), self.browser, self.resolution, self.os, self.time, self.chr_name, str(self.chr_level), self.session_id] return super(login, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_Login # 3.3.3. session£¨»á»°¼Ç¼£© # Íæ¼ÒµÇ³ö¡¢ÀëÏßµÄÊý¾Ý£¬ÅäºÏµÇ¼Êý¾ÝÊý¾ÝÖÐÐÄ¿Éͳ¼Æ³öÍæ¼ÒÔÚÏßʱ³¤ class session(ScribeEvent): def __init__(self): #±ØÐë×Ö¶Î super(session, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.session_id = "" # »á»°ID #·Ç±ØÐë×Ö¶Î self.ip = "" # IP µØÖ· self.account_name = "" # Õ˺ŵǼÃû self.account_type = 0 # Õ˺ÅÀàÐÍ self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.chr_level = 0 # Íæ¼Ò½ÇÉ«µÈ¼¶ #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.ip, self.gameserver_no, self.account_id, self.account_name, str(self.account_type), self.time, self.chr_name, str(self.chr_level), self.session_id] return super(session, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_Session # 3.3.5. virtual©\cost£¨ÐéÄâ±ÒÏû·Ñ£© # Íæ¼Ò²úÉúÏû·Ñ¼Ç¼¼´ÊÕ¼¯£» class virtual_cost(ScribeEvent): def __init__(self): #±ØÐë×Ö¶Î super(virtual_cost, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.quantity = 0 # Ïû·ÑÊýÁ¿ self.price = 0 # Ïû·ÑµãµÄÐéÄâ±Òµ¥¼Û self.reason_name = "" # Ïû·ÑµãÃû³Æ #·Ç±ØÐë×Ö¶Î self.ip = "" # IP µØÖ· self.account_name = "" # Õ˺ŵǼÃû self.account_type = 0 # Õ˺ÅÀàÐÍ self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.chr_level = 0 # Íæ¼Ò½ÇÉ«µÈ¼¶ self.balance = 0 # Íæ¼ÒÊ£ÓàÐéÄâ±Ò #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.ip, self.gameserver_no, self.account_id, self.account_name, str(self.account_type), self.time, self.chr_name, str(self.chr_level), str(self.quantity), str(self.price), str(self.balance), self.reason_name] return super(virtual_cost, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_VirtualCost # 3.3.6. virtual©\reward£¨ÐéÄâ±ÒÔùËÍ£© # Íæ¼Ò»ñµÃÐéÄâ±ÒÔùËÍʱ¼´ÊÕ¼¯£» # ³ýÁËÕæÊµ³äÖµ¶©µ¥²úÉúµÄÐéÄâ±ÒÔö¼Ó¶¼Ó¦¸Ã¼ÆÈëµ½ÐéÄâ±ÒÔùËÍ class virtual_reward(ScribeEvent): def __init__(self): #±ØÐë×Ö¶Î super(virtual_reward, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.virtual_amount = 0 # Ôö¼ÓµÄÐéÄâ±ÒÊýÁ¿ #·Ç±ØÐë×Ö¶Î self.ip = "" # IP µØÖ· self.account_name = "" # Õ˺ŵǼÃû self.account_type = 0 # Õ˺ÅÀàÐÍ self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.chr_level = 0 # Íæ¼Ò½ÇÉ«µÈ¼¶ self.balance = 0 # Íæ¼ÒÊ£ÓàÐéÄâ±Ò self.source = "" # »ñµÃ½±ÀøµÄ;¾¶ #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.ip, self.gameserver_no, self.account_id, self.account_name, str(self.account_type), self.time, self.chr_name, str(self.chr_level), str(self.virtual_amount), str(self.balance), self.source] return super(virtual_reward, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_VirtualReward # 3.3.12. virtual©\resource£¨ÐéÄâ×ÊÔ´²ú³öÓëÏûºÄ£© # ²úÉúÏàÓ¦ÐéÄâ×ÊÔ´µÄÏû·Ñ¡¢Éú²ú¼Ç¼ʱ¼´ÊÕ¼¯¡£ # ÓÃÓÚͳ¼ÆÈκÎÐéÄâ×ÊÔ´Èç¸÷Àà¶þ¼¶»õ±ÒµÄ²ú³öÓëÏûºÄ class virtual_resource(ScribeEvent): def __init__(self): #±ØÐë×Ö¶Î super(virtual_resource, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.type_name = "" # ÐéÄâ×ÊÔ´ÀàÐÍÃû³Æ self.reason_name = "" # ×ÊÔ´µãÃû³Æ self.quantity = 0 # ÐéÄâ×ÊÔ´²ú³ö/ÏûºÄµÄ´ÎÊý self.price = 0 # ÐéÄâ×ÊÔ´²ú³ö/ÏûºÄµÄÊýÁ¿£¬Çø·ÖÕý¸º£¬ÕýֵΪ²ú³ö£¬¸ºÖµÎªÏûºÄ #·Ç±ØÐë×Ö¶Î self.ip = "" # IP µØÖ· self.account_name = "" # Õ˺ŵǼÃû self.account_type = 0 # Õ˺ÅÀàÐÍ self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.chr_level = 0 # Íæ¼Ò½ÇÉ«µÈ¼¶ #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.ip, self.gameserver_no, self.account_id, self.account_name, str(self.account_type), self.time, self.chr_name, str(self.chr_level), self.type_name, self.reason_name, str(self.quantity), str(self.price)] return super(virtual_resource, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_VirtualResource # 3.3.9. custom©\events£¨×Ô¶¨Òåʼþ£© # ÓÃÓÚͳ¼ÆÈÎºÎÆÚÍûÈ¥¸ú×ÙµÄÊý¾Ý class custom_events(ScribeEvent): def __init__(self): #±ØÐë×Ö¶Î super(custom_events, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.event_name = "" # ʼþÃû³Æ self.session_id = "" # »á»°ID #·Ç±ØÐë×Ö¶Î self.ip = "" # IP µØÖ· self.account_name = "" # Õ˺ŵǼÃû self.account_type = 0 # Õ˺ÅÀàÐÍ self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.chr_level = 0 # Íæ¼Ò½ÇÉ«µÈ¼¶ self.comments = "" # ±¸×¢»ò¸½¼ÓÐÅÏ¢ char(255) #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.ip, self.gameserver_no, self.account_id, self.account_name, str(self.account_type), self.time, self.chr_name, str(self.chr_level), self.event_name, self.comments, self.session_id] return super(custom_events, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_CustomEvents # 3.3.10. mission©\log£¨ÈÎÎñ¼Ç¼£© # ¸ú×ÙÍæ¼ÒÈÎÎñ½ÓÈ¡¡¢Íê³É¡¢Ê§°ÜÇé¿ö£¬ÒÔ¼°ÓÃÓÚÁ÷Ê§Íæ¼ÒµÄÈÎÎñ·ÖÎöµÈͳ¼Æ¡£ # ÈÎÎñ½Óȡʱ¼´ÊÕ¼¯ type=0 µÄÊý¾Ý£¬ÈÎÎñ½áÊøÇҳɹ¦Ê±¼´ÊÕ¼¯ type=1¡¢mission_result=1 µÄÊý¾Ý£¬ÈÎÎñ½áÊøÇÒʧ°Üʱ¼´ÊÕ¼¯ type=1¡¢mission_result=0 µÄÊý¾Ý¡£ class missionlog(ScribeEvent): def __init__(self): #±ØÐë×Ö¶Î super(missionlog, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_level = 0 # Íæ¼Ò½ÇÉ«µÈ¼¶ self.type = 0 # 0 ÈÎÎñ¿ªÊ¼ 1 ÈÎÎñ½áÊø self.mission_name = "" # ÈÎÎñÃû self.session_id = "" # »á»°ID #·Ç±ØÐë×Ö¶Î self.ip = "" # IP µØÖ· self.account_name = "" # Õ˺ŵǼÃû self.account_type = 0 # Õ˺ÅÀàÐÍ self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.mission_result = 0 # µ±ÈÎÎñ½áÊø£¬ÈÎÎñ½á¹û 0£ºÊ§°Ü 1£º³É¹¦ self.mission_reason = "" # µ±ÈÎÎñ½áÊøÇÒÈÎÎñʧ°ÜʱµÄÔ­Òò #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' self.scribeEventName = ShareDefine.Def_UserAction_MissionLog return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.ip, self.gameserver_no, self.account_id, self.account_name, str(self.account_type), self.time, self.chr_name, str(self.chr_level), str(self.type), self.mission_name, str(self.mission_result), self.mission_reason, self.session_id] return super(missionlog, self).GetEventStr(tmpList) def GetScribeEventName(self): return self.scribeEventName # 3.3.11. level©\up£¨Éý¼¶¼Ç¼£© # ÓÃÓÚÍæ¼ÒÉý¼¶Ê±³¤µÈµÈ¼¶Ïà¹ØÍ³¼Æ¡£ # µÈ¼¶·¢Éú±ä»¯Ê±¼´ÊÕ¼¯£» # Ҫͳ¼Æ 2 ¼¶µÄÉý¼¶Ê±³¤±ØÐëÒªÓÐ 1 ¼¶µÄÉý¼¶Êý¾Ý£¬Òò´Ë¸Õ´´½¨Íê½ÇɫʱµÄ 1 ¼¶µÄÊý¾ÝÒ²ÐèÒªÊÕ¼¯¡£ class levelup(ScribeEvent): def __init__(self): #±ØÐë×Ö¶Î super(levelup, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_level = 0 # Íæ¼Ò½ÇÉ«µÈ¼¶ self.session_id = "" # »á»°ID #·Ç±ØÐë×Ö¶Î self.ip = "" # IP µØÖ· self.account_name = "" # Õ˺ŵǼÃû self.account_type = 0 # Õ˺ÅÀàÐÍ self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.ip, self.gameserver_no, self.account_id, self.account_name, str(self.account_type), self.time, self.chr_name, str(self.chr_level), self.session_id] return super(levelup, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_LVUP # 3.3.13. chat-log £¨ÁÄÌìÏûÏ¢£© # ÓÃÓÚ¼à¿ØÍæ¼ÒÁÄÌì class chat_log(ScribeEvent): def __init__(self): #±ØÐë×Ö¶Î super(chat_log, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.content = "" # ÁÄÌìÄÚÈÝ self.cmc_name = "" # ÁÄÌìÆµµÀ±êʶ #·Ç±ØÐë×Ö¶Î self.ip = "" # IP µØÖ· self.account_name = "" # Õ˺ŵǼÃû self.account_type = 0 # Õ˺ÅÀàÐÍ self.chr_level = 0 # Íæ¼Ò½ÇÉ«µÈ¼¶ self.object = "" # ˽ÁĶÔÏó self.addinfo = "" # ¶îÍâÐÅÏ¢ #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.ip, self.gameserver_no, self.account_id, self.account_name, str(self.account_type), self.time, self.chr_name, str(self.chr_level), self.object, self.content, self.addinfo, self.cmc_name] return super(chat_log, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_ChatLog ## ================================================================================================= #=============================================================================== # def WriteEvent_entry_firstlogin(curPlayer, browser, resolution, pcOS): # entryEvent = entry() # entryEvent.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # entryEvent.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # entryEvent.step = entryEvent.Def_EntryStep_FirstLogin # entryEvent.ip = curPlayer.GetIP() # entryEvent.account_name = entryEvent.account_id # entryEvent.account_type = GameWorld.GetAccountType(curPlayer) # entryEvent.browser = browser # entryEvent.resolution = resolution # entryEvent.os = pcOS # WriteEvent(entryEvent) # return #=============================================================================== def WriteEvent_login(curPlayer): if curPlayer.GetIP() == "127.0.0.1": return version = urllib.quote_plus(curPlayer.GetAccountData().GetClientVersion()) EventReport(ShareDefine.Def_UserAction_Login, "Job=%s&SessionID=%s&Version=%s"%( curPlayer.GetJob(), GameWorld.GetSessionID(curPlayer), version), curPlayer) return # ÀëÏßÊý¾Ý def WriteEvent_session(curPlayer): seconds = 0 if PlayerTJG.GetIsTJG(curPlayer): return else: logoffTimeStr = curPlayer.GetLogoffTime().strip() loginTimeStr = curPlayer.GetLoginTime().strip() if logoffTimeStr and loginTimeStr: passTimes = GameWorld.GetDateTimeByStr(logoffTimeStr) - GameWorld.GetDateTimeByStr(loginTimeStr) seconds = passTimes.seconds EventReport(ShareDefine.Def_UserAction_Session, "OnlineTime=%s&SessionID=%s"%(seconds, GameWorld.GetSessionID(curPlayer)), curPlayer) #=========================================================================== # sessionEvent = session() # sessionEvent.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # sessionEvent.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # sessionEvent.session_id = GameWorld.GetSessionID(curPlayer) # sessionEvent.ip = curPlayer.GetIP() # sessionEvent.account_name = sessionEvent.account_id # sessionEvent.account_type = GameWorld.GetAccountType(curPlayer) # sessionEvent.chr_name = curPlayer.GetPlayerName() # sessionEvent.chr_level = GetScribeEvent_chr_level(curPlayer) # WriteEvent(sessionEvent) #=========================================================================== return ## дÐéÄâÔª±¦Ïû·Ñ¼Ç¼ # @param quantity: Ïû·ÑÊýÁ¿ # @param price: Ïû·ÑµãµÄÐéÄâ±Òµ¥¼Û # @param reason_name: Ïû·ÑµãÃû³Æ def WriteEvent_virtual_cost(curPlayer, quantity, price, reason_name): ''' ÎÊ£ºÐéÄâÏû·ÑµãµÄÁ£¶È¼¸´óºÃ£¿ ´ð£ºÊý¾Ý±¨±í¶ÔÐéÄâÏû·ÑµÄͳ¼ÆÖ§³ÖÁ½¼¶£¬¼´Ïû·Ñµã¼°Æä¸¸ÀàÏû·Ñµã·Ö×飬¾Ý´Ë£º ¡ñ ½¨ÒéÊÇÏû·Ñ;¾¶¼ÓÉÏÏû·Ñ¶ÔÏ󣬱ÈÈ硸É̵깺Âò£ºÈýʬÄÔÉñµ¤¡¹£¬¶øºó½«¸ÃÏû·ÑµãÔÚÏû·Ñµã·Ö×éÀï¹éΪ¡¸É̵깺Âò¡¹£» ¡ñ ²»Òª¼ÓÉÏÏû·ÑÕßÈ硸Ҷ¹Âº®£ºÉ̵깺Âò£ºÈýʬÄÔÉñµ¤¡¹£» ¡ñ ²»Òª¼ÓÉÏÏû·Ñ¶ÔÏóµÈ¼¶È硸ǿ»¯£ºÁøÒ¶µ¶ [9¼¶]¡¹¡£ ''' #=========================================================================== # virtualCostEvent = virtual_cost() # virtualCostEvent.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # virtualCostEvent.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # virtualCostEvent.quantity = quantity # virtualCostEvent.price = price # virtualCostEvent.balance = curPlayer.GetGold() # virtualCostEvent.reason_name = reason_name # virtualCostEvent.ip = curPlayer.GetIP() # virtualCostEvent.account_name = virtualCostEvent.account_id # virtualCostEvent.account_type = GameWorld.GetAccountType(curPlayer) # virtualCostEvent.chr_name = curPlayer.GetPlayerName() # virtualCostEvent.chr_level = GetScribeEvent_chr_level(curPlayer) # WriteEvent(virtualCostEvent) #=========================================================================== return ## дÐéÄâÔª±¦ÔùËÍ»ñµÃ¼Ç¼,º¬³äÖµ¿É²éµ½Õ˶һ»³ÉÐéÄâ±Òʱ¼ä # @param virtual_reward: Ôö¼ÓµÄÐéÄâ±ÒÊýÁ¿ # @param source: »ñµÃ½±ÀøµÄ;¾¶ def WriteEvent_virtual_reward(curPlayer, virtual_amount, source): #=========================================================================== # virtualRewardEvent = virtual_reward() # virtualRewardEvent.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # virtualRewardEvent.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # virtualRewardEvent.virtual_amount = virtual_amount # virtualRewardEvent.balance = curPlayer.GetGold() # virtualRewardEvent.source = source # virtualRewardEvent.ip = curPlayer.GetIP() # virtualRewardEvent.account_name = virtualRewardEvent.account_id # virtualRewardEvent.account_type = GameWorld.GetAccountType(curPlayer) # virtualRewardEvent.chr_name = curPlayer.GetPlayerName() # virtualRewardEvent.chr_level = GetScribeEvent_chr_level(curPlayer) # WriteEvent(virtualRewardEvent) #=========================================================================== return ## д¶þ¼¶»õ±ÒµÄ²ú³öÓëÏûºÄ¼Ç¼ # @param type_name: ÐéÄâ×ÊÔ´ÀàÐÍÃû³Æ, Èç½ð±Ò # @param reason_name: ×ÊÔ´µãÃû³Æ, ÈçË¢ÐÂÈÙÓþÉ̵ê # @param quantity: ÐéÄâ×ÊÔ´²ú³ö/ÏûºÄµÄ´ÎÊý # @param price: ÐéÄâ×ÊÔ´²ú³ö/ÏûºÄµÄÊýÁ¿µ¥¼Û£¬Çø·ÖÕý¸º£¬ÕýֵΪ²ú³ö£¬¸ºÖµÎªÏûºÄ # @param flow 0 ´ú±íÏû·Ñ 1 ´ú±í²ú³ö def WriteEvent_virtual_resource(curPlayer, type_name, reason_name, quantity, price, flow, extraDict={}): #±ÜÃâ¼Ç¼̫¶àÐÅÏ¢ if type_name in [IPY_GameWorld.TYPE_Price_Silver_Money] and abs(quantity * price) < ChConfig.Def_DRRecord_Min_Silver: return if type_name not in IpyGameDataPY.GetFuncEvalCfg("EventReport", 2): #GameWorld.DebugLog("¸Ã»õ±ÒÀàÐͲ»ÐèÒª»ã±¨! type_name=%s" % type_name) return # ±êʶ´Ë»õ±ÒÊÇ·ñÊÇÒ»¼¶»õ±Ò£¨³äÖµ£© Recharged = 1 if type_name == IPY_GameWorld.TYPE_Price_Gold_Money else 0 #=========================================================================== # virtualResourceEvent = virtual_resource() # virtualResourceEvent.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # virtualResourceEvent.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # virtualResourceEvent.type_name = str(type_name) # virtualResourceEvent.reason_name = reason_name # virtualResourceEvent.quantity = quantity # virtualResourceEvent.price = price # virtualResourceEvent.ip = curPlayer.GetIP() # virtualResourceEvent.account_name = virtualResourceEvent.account_id # virtualResourceEvent.account_type = GameWorld.GetAccountType(curPlayer) # virtualResourceEvent.chr_name = curPlayer.GetPlayerName() # virtualResourceEvent.chr_level = GetScribeEvent_chr_level(curPlayer) # WriteEvent(virtualResourceEvent) #=========================================================================== # OperatorExtra json ¸ñʽ Ïû·Ñ¾ßÌåÔ­Òò EventReport(ShareDefine.Def_UserAction_VirtualResource, "Price=%s&Quantity=%s&OperateType=%s&CurrencyType=%s&Recharged=%s&Flow=%s&Balance=%s&OperatorExtra=%s"%( price, quantity, reason_name, type_name, Recharged, flow, PlayerControl.GetMoneyReal(curPlayer, type_name), json.dumps(extraDict, ensure_ascii=False)), curPlayer) return ## дÈÎÎñʼþ¼Ç¼ # @param startType: 0 ÈÎÎñ¿ªÊ¼ 1 ÈÎÎñ½áÊø # @param isFinish: µ±ÈÎÎñ½áÊø£¬ÈÎÎñ½á¹û 0£ºÊ§°Ü 1£º³É¹¦ # @param failReason: µ±ÈÎÎñ½áÊøÇÒÈÎÎñʧ°ÜʱµÄÔ­Òò def WriteEvent_mission_log(curPlayer, missionData, startType, isFinish=0, failReason=""): if startType not in [0, 1] or isFinish not in [0, 1]: return if not missionData: return #missionName = "0%s%s" % (missionData.ID, missionData.Name) missionName = missionData.ID __WriteEvent_mission_log(curPlayer, startType, missionName, isFinish, failReason) return def WriteFuncCMEAcceptable(curPlayer, funcID): return if funcID not in ChConfig.FuncCMEDict: return WriteEvent_custom_mission_log(curPlayer, ChConfig.FuncCMEDict[funcID], ChConfig.CME_Log_Acceptable) return True def WriteEvent_MWSuccess(curPlayer, mwID, succID, logType, isFinish=0): '''д×Ô¶¨ÒåÈÎÎñ - ·¨±¦³É¾Íʼþ, ʼþID¸ñʽ: 91+·¨±¦ID+ÖÁÉÙ4λµÄ³É¾ÍID ''' cmeType = "91%d%04d" % (mwID, succID) WriteEvent_custom_mission_log(curPlayer, cmeType, logType, isFinish) return def WriteEvent_FB(curPlayer, mapID, funcLineID, logType, joinType=0, isFinish=0, failReason=""): '''д×Ô¶¨ÒåÈÎÎñ - ¸±±¾Ê¼þ, ʼþID¸ñʽ: 90+mapID+joinType+funcLineID @param joinType: 0-ĬÈÏÎÞ; 1-µ¥ÈË; 2-¶àÈË; 3-ÖúÕ½; ×¢Òâµ¥È˶ÓÎéËãµ¥ÈË ''' cmeType = "90%d%d%02d" % (mapID, joinType, funcLineID) WriteEvent_custom_mission_log(curPlayer, cmeType, logType, isFinish, failReason=failReason) return ## д×Ô¶¨ÒåÈÎÎñʼþ¼Ç¼ # @param cmeType: ×Ô¶¨ÒåÀàÐÍ, ¶ÔÓ¦ ChConfig.CME_Type_List # @param logType: ¼Ç¼ÀàÐÍ, ¶ÔÓ¦ ChConfig.CME_Log_Type_List # @param cmeInfoEx: À©Õ¹×Ô¶¨ÒåÐÅÏ¢, Ò»°ãÓÃÓÚÐèÒª·Ö×ÓÏî¼Ç¼µÄÀàÐÍ # @param isFinish: µ±Ê¼þ½áÊøÊ±½á¹û 0£ºÊ§°Ü 1£º³É¹¦ # @param failReason: µ±Ê¼þ½áÊøÊ±Ê§°ÜµÄÔ­Òò def WriteEvent_custom_mission_log(curPlayer, cmeType, logType, isFinish=0, failReason="", cmeInfoEx=None): #if cmeType not in ChConfig.CME_Type_List: # return if logType not in ChConfig.CME_Log_Type_List: return startType = 1 if logType == ChConfig.CME_Log_End else 0 #=========================================================================== # missionName = ChConfig.CME_Type_Dict.get(cmeType, "δ֪") # if cmeInfoEx != None: # missionName = "%s:%s" % (missionName, cmeInfoEx) # if logType == ChConfig.CME_Log_Acceptable: # missionName = "%s_¿ÉÌôÕ½" % missionName #=========================================================================== missionName = cmeType __WriteEvent_mission_log(curPlayer, startType, missionName, isFinish, failReason, cmeType in ChConfig.CME_Ex_Log_List) return ## дÈÎÎñʼþ¼Ç¼ # @param startType: 0 ÈÎÎñ¿ªÊ¼ 1 ÈÎÎñ½áÊø # @param missionName: ÈÎÎñÃû # @param isFinish: µ±ÈÎÎñ½áÊø£¬ÈÎÎñ½á¹û 0£ºÊ§°Ü 1£º³É¹¦ # @param failReason: µ±ÈÎÎñ½áÊøÇÒÈÎÎñʧ°ÜʱµÄÔ­Òò def __WriteEvent_mission_log(curPlayer, startType, missionName, isFinish, failReason, isExLog=False): isFinish = 1 if isFinish else 0 exDict = {"Fail":failReason} resultMsg = json.dumps(exDict, ensure_ascii=False) EventReport(ShareDefine.Def_UserAction_MissionLog, "MissionStep=%s&MissionID=%s&MissionResult=%s&MissionExtra=%s"%(startType, missionName, isFinish, resultMsg), curPlayer) #=========================================================================== # missionlogEvent = missionlog() # missionlogEvent.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # missionlogEvent.scribeEventName = ShareDefine.Def_UserAction_ExMissionLog if isExLog else \ # ShareDefine.Def_UserAction_MissionLog # missionlogEvent.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # missionlogEvent.chr_level = GetScribeEvent_chr_level(curPlayer) # missionlogEvent.type = startType # missionlogEvent.mission_name = missionName # missionlogEvent.session_id = GameWorld.GetSessionID(curPlayer) # # missionlogEvent.ip = curPlayer.GetIP() # missionlogEvent.account_name = missionlogEvent.account_id # missionlogEvent.account_type = GameWorld.GetAccountType(curPlayer) # missionlogEvent.chr_name = curPlayer.GetPlayerName() # missionlogEvent.mission_result = isFinish # missionlogEvent.mission_reason = failReason # WriteEvent(missionlogEvent) #=========================================================================== return def WriteEvent_level_up(curPlayer): EventReport(ShareDefine.Def_UserAction_LVUP, "", curPlayer) #=========================================================================== # levelupEvent = levelup() # levelupEvent.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # levelupEvent.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # levelupEvent.session_id = GameWorld.GetSessionID(curPlayer) # levelupEvent.ip = curPlayer.GetIP() # levelupEvent.account_name = levelupEvent.account_id # levelupEvent.account_type = GameWorld.GetAccountType(curPlayer) # levelupEvent.chr_name = curPlayer.GetPlayerName() # levelupEvent.chr_level = GetScribeEvent_chr_level(curPlayer) # WriteEvent(levelupEvent) #=========================================================================== return def WriteEvent_chat_log(curPlayer, content, cmc_name, tagName="", addinfo=""): return #=========================================================================== # ''' # @todo: дÁÄÌì¼à¿Ø¼Ç¼ # @param content: ÁÄÌìÄÚÈÝ # @param cmc_name: ÁÄÌìÆµµÀ±êʶ # @param tagName: ˽ÁĶÔÏó # @param addinfo: ¶îÍâÐÅÏ¢ # ''' # chatlogEvent = chat_log() # chatlogEvent.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # chatlogEvent.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # chatlogEvent.chr_name = curPlayer.GetName() # chatlogEvent.content = __GetEventChatContent(content) # chatlogEvent.cmc_name = cmc_name # chatlogEvent.ip = curPlayer.GetIP() # chatlogEvent.account_name = chatlogEvent.account_id # chatlogEvent.account_type = GameWorld.GetAccountType(curPlayer) # chatlogEvent.chr_level = GetScribeEvent_chr_level(curPlayer) # chatlogEvent.object = tagName # chatlogEvent.addinfo = addinfo # WriteEvent(chatlogEvent) #=========================================================================== return def __GetEventChatContent(content): ''' [µØÍ¼:ĺ¹âÖ®³Ç(74,60)] [ÉñÊ¥µÄ°ÁÊÀÖ®¹­ +40] ''' tempMatch = re.search(".*?", content) if tempMatch: tempStr = tempMatch.group() markIndex = tempStr.index(">") + 1 repStr = tempStr[markIndex:tempStr.index("<", markIndex)] content = content.replace(tempStr, repStr) tempMatch = re.search(".*?", content) if tempMatch: tempStr = tempMatch.group() markIndex = tempStr.index(">") + 1 repStr = tempStr[markIndex:tempStr.index("<", markIndex)] content = content.replace(tempStr, repStr) # Ìæ»»»»ÐÐ content = content.replace("\r", "") content = content.replace("\n", "") return content ## д×Ô¶¨Òåʼþ¼Ç¼ # @param event_name: ʼþÃû³Æ # @param comments: ±¸×¢»ò¸½¼ÓÐÅÏ¢ def WriteEvent_custom_events(curPlayer, event_name, comments): #=========================================================================== # customEvent = custom_events() # customEvent.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # customEvent.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # customEvent.event_name = event_name # customEvent.session_id = GameWorld.GetSessionID(curPlayer) # # customEvent.ip = curPlayer.GetIP() # customEvent.account_name = customEvent.account_id # customEvent.account_type = GameWorld.GetAccountType(curPlayer) # customEvent.chr_name = curPlayer.GetPlayerName() # customEvent.chr_level = GetScribeEvent_chr_level(curPlayer) # customEvent.comments = CommFunc.GetStrCutoff(comments, 255) # WriteEvent(customEvent) #=========================================================================== return #// A1 01 Íæ¼ÒµçÄÔÐÅÏ¢ #tagCMPCInfo # #struct tagCMPCInfo #{ # tagHead Head; # BYTE PCOSLen; # char PCOS[PCOSLen]; // ²Ù×÷ϵͳ # BYTE ResolutionLen; # char Resolution[ResolutionLen]; // ·Ö±æÂÊ # BYTE BrowserLen; # char Browser[BrowserLen]; // ä¯ÀÀÆ÷ # BYTE ScribeTypeLen; # char ScribeType[ScribeTypeLen]; // ¼Ç¼ÀàÐÍ # BYTE ScribeDataLen; # char ScribeData[ScribeDataLen]; // ¼Ç¼À©Õ¹ÐÅÏ¢ #}; def ReceiveClientPCInfo(index, clientData, tick): #=========================================================================== # curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) # PCOS = clientData.PCOS # Resolution = clientData.Resolution # Browser = clientData.Browser # ScribeType = clientData.ScribeType # #ScribeData = clientData.ScribeData # # GameWorld.DebugLog("ReceiveClientPCInfo %s" % ScribeType) # GameWorld.DebugLog(" PCOS=%s" % PCOS) # GameWorld.DebugLog(" Resolution=%s" % Resolution) # GameWorld.DebugLog(" Browser=%s" % Browser) # # # ת»¯Îª¶Ô·½ËùÐè¸ñʽ # if PCOS and "Windows" in PCOS: # PCOS = " ".join(PCOS.split(" ")[:2]) # # # ת»¯Îª¶Ô·½ËùÐè¸ñʽ # if Resolution: # Resolution = "%s*%s" % eval(Resolution) # # if ScribeType == ShareDefine.Def_UserAction_Login: # firstLogin = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FirstLogin) # if not firstLogin: # PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FirstLogin, 1) # WriteEvent_entry_firstlogin(curPlayer, Browser, Resolution, PCOS) # if curPlayer.GetLV() == 1: # WriteEvent_level_up(curPlayer) # Ê׵Ƿ¢ËÍÒ»´Î1¼¶Êý¾Ý # GameWorld.DebugLog(" entry_firstlogin") # # WriteEvent_login(curPlayer, Browser, Resolution, PCOS) #=========================================================================== return #// A2 19 ÓÎÏ·½¨ÒéÊÕ¼¯ #tagCMAdviceSubmit # #struct tagCMAdviceSubmit #{ # tagHead Head; # BYTE Type; //Ìá½»ÀàÐÍ # WORD Len; # char Content[Len]; //size = Len #}; def OnSubmitBugSuggest(index, clientData, tick): #=========================================================================== # curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) # subType = clientData.Type # content = clientData.Content # eventName = Def_Custom_Events_Bug if subType == 0 else Def_Custom_Events_Suggest # WriteEvent_custom_events(curPlayer, eventName, content) # DataRecordPack.DR_BugSuggest(curPlayer, eventName, content) #=========================================================================== return def GetScribeEvent_chr_level(curPlayer): transCnt, showLV = GameWorld.GetClientLV(curPlayer) return transCnt * 1000 + showLV ## -------------------------------------- À©Õ¹×Ô¶¨Òå --------------------------------------- class horse_class(ScribeEvent): # ×øÆï½ø½×¼Ç¼ def __init__(self): #±ØÐë×Ö¶Î super(horse_class, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.bef_class_lv = 0 # ´Ë´Î½ø½×²Ù×÷ǰµÄ×øÆïµÈ½×, 0´ú±í1½× self.bef_exp = 0 # ´Ë´Î½ø½×²Ù×÷ǰµÄ×øÆïµÈ½×ÐÇÊýµÄ¾­ÑéÖµ self.cost_item_cnt = 0 # ´Ë´Î½ø½×ÏûºÄµÄ½ø½×µÀ¾ßÊýÁ¿ self.aft_class_lv = 0 # ´Ë´Î½ø½×²Ù×÷ºóµÄ×øÆïµÈ½×, 0´ú±í1½× self.aft_exp = 0 # ´Ë´Î½ø½×²Ù×÷ºóµÄ×øÆïµÈ½×ÐÇÊýµÄ¾­ÑéÖµ #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, str(self.bef_class_lv), str(self.bef_exp), str(self.cost_item_cnt), str(self.aft_class_lv), str(self.aft_exp), self.time] return super(horse_class, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_HorseClass def WriteEvent_horse_class(curPlayer, befClassLV, befExp, costCnt, aftClassLV, aftExp): ## Ð´×øÆï½ø½×¼Ç¼ #=========================================================================== # horseClass = horse_class() # horseClass.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # horseClass.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # horseClass.chr_name = curPlayer.GetPlayerName() # horseClass.bef_class_lv = befClassLV # horseClass.bef_exp = befExp # horseClass.cost_item_cnt = costCnt # horseClass.aft_class_lv = aftClassLV # horseClass.aft_exp = aftExp # WriteEvent(horseClass) #=========================================================================== return class wing_class(ScribeEvent): # ³á°ò½ø½×¼Ç¼ def __init__(self): #±ØÐë×Ö¶Î super(wing_class, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.bef_class_lv = 0 # µ±Ç°³á°òµÈ½×, 0´ú±í1½× self.bef_exp = 0 # ½ø½×²Ù×÷ǰµÄ×£¸£Öµ self.cost_item_cnt = 0 # ´Ë´Î½ø½×ÏûºÄµÄ½ø½×µÀ¾ßÊýÁ¿ self.aft_class_lv = 0 # ´Ë´Î½ø½×²Ù×÷ºó³á°òµÄµÈ½×, 0´ú±í1½× self.aft_exp = 0 # ½ø½×²Ù×÷ºóµÄ×£¸£Öµ #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, str(self.bef_class_lv), str(self.bef_exp), str(self.cost_item_cnt), str(self.aft_class_lv), str(self.aft_exp), self.time] return super(wing_class, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_WingClass def WriteEvent_wing_class(curPlayer, befClassLV, befExp, costCnt, aftClassLV, aftExp): ## д³á°ò½ø½×¼Ç¼ #=========================================================================== # wingClass = wing_class() # wingClass.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # wingClass.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # wingClass.chr_name = curPlayer.GetPlayerName() # wingClass.bef_class_lv = befClassLV # wingClass.bef_exp = befExp # wingClass.cost_item_cnt = costCnt # wingClass.aft_class_lv = aftClassLV # wingClass.aft_exp = aftExp # WriteEvent(wingClass) #=========================================================================== return class pet_lv(ScribeEvent): # ³èÎïÉý¼¶¼Ç¼ def __init__(self): #±ØÐë×Ö¶Î super(pet_lv, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.bef_lv = 0 # Éý¼¶Ç°µÈ¼¶, 0´ú±í1ÐÇ self.aft_lv = 0 # ´Ë´ÎÉý¼¶²Ù×÷ºóµÈ¼¶ self.bef_exp = 0 ## ´Ë´Î½ø½×²Ù×÷ǰµÄ¾­ÑéÖµ self.aft_exp = 0 ## ´Ë´Î½ø½×²Ù×÷ºóµÄ¾­ÑéÖµ #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, str(self.bef_lv), str(self.aft_lv), str(self.bef_exp), str(self.aft_exp), self.time] return super(pet_lv, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_PetLV def WriteEvent_pet_lv(curPlayer, befLV, aftLV, befExp, aftExp): ## д³èÎïÉý¼¶¼Ç¼ #=========================================================================== # petLV = pet_lv() # petLV.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # petLV.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # petLV.chr_name = curPlayer.GetPlayerName() # petLV.bef_lv = befLV # petLV.aft_lv = aftLV # petLV.bef_exp = befExp # petLV.aft_exp = aftExp # WriteEvent(petLV) #=========================================================================== return class pet_class(ScribeEvent): # ³èÎï½ø½×¼Ç¼ def __init__(self): #±ØÐë×Ö¶Î super(pet_class, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.pet_name = "" # ³èÎïÃû³Æ self.bef_class_lv = 0 # ²Ù×÷ǰµÄµÈ½×, 0´ú±í1½× self.bef_exp = 0 # ²Ù×÷ǰµÄ×£¸£Öµ self.aft_class_lv = 0 # ´Ë´Î½ø½×²Ù×÷ºóµÄµÈ½× self.aft_exp = 0 # ½ø½×²Ù×÷ºóµÄ×£¸£Öµ #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, self.pet_name, str(self.bef_class_lv), str(self.bef_exp), str(self.aft_class_lv), str(self.aft_exp), self.time] return super(pet_class, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_PetClass def WriteEvent_pet_class(curPlayer, petName, befClassLV, befExp, aftClassLV, aftExp): ## д³èÎï½ø½×¼Ç¼ #=========================================================================== # petLV = pet_class() # petLV.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # petLV.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # petLV.chr_name = curPlayer.GetPlayerName() # petLV.pet_name = petName # petLV.bef_class_lv = befClassLV # petLV.bef_exp = befExp # petLV.aft_class_lv = aftClassLV # petLV.aft_exp = aftExp # WriteEvent(petLV) #=========================================================================== return class give_money(ScribeEvent): # »õ±Ò²ú³ö¼Ç¼ def __init__(self): #±ØÐë×Ö¶Î super(give_money, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.source = "" # À´Ô´ self.type_name = "" # »õ±ÒÃû³Æ self.addMoney = 0 # ²ú³öÊýÁ¿ self.total_money = 0 # Ê£Óà»õ±Ò×ÜÁ¿ #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, self.source, self.type_name, str(self.addMoney), str(self.total_money), self.time] return super(give_money, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_GiveMoney def WriteEvent_give_money(curPlayer, source, typeName, addMoney, totalMoney): ## д»õ±Ò²ú³ö¼Ç¼ #=========================================================================== # giveMoney = give_money() # giveMoney.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # giveMoney.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # giveMoney.chr_name = curPlayer.GetPlayerName() # giveMoney.source = source # giveMoney.type_name = typeName # giveMoney.addMoney = addMoney # giveMoney.total_money = totalMoney # WriteEvent(giveMoney) #=========================================================================== return class pay_money(ScribeEvent): # »õ±ÒÏûºÄ¼Ç¼ def __init__(self): #±ØÐë×Ö¶Î super(pay_money, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.reason_name = "" # Ïû·Ñµã self.type_name = "" # »õ±ÒÃû³Æ self.costmoney = 0 # ÏûºÄÊýÁ¿ self.total_money = 0 # Ê£Óà»õ±Ò×ÜÁ¿ #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, self.reason_name, self.type_name, str(self.costmoney), str(self.total_money), self.time] return super(pay_money, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_PayMoney def WriteEvent_pay_money(curPlayer, reasonName, typeName, costMoney, totalMoney): ## д»õ±ÒÏûºÄ¼Ç¼ #=========================================================================== # payMoney = pay_money() # payMoney.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # payMoney.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # payMoney.chr_name = curPlayer.GetPlayerName() # payMoney.reason_name = reasonName # payMoney.type_name = typeName # payMoney.costmoney = costMoney # payMoney.total_money = totalMoney # WriteEvent(payMoney) #=========================================================================== return class equip_item(ScribeEvent): # Íæ¼Ò×°±¸Í³¼Æ def __init__(self): #±ØÐë×Ö¶Î super(equip_item, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.equip_place = 0 # ×°±¸Î» self.class_lv = 0 # ×°±¸½×Êý, 0ÐÂÊÖ½×, 1-1½× self.item_quality = 0 # Æ·ÖÊ #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, str(self.equip_place), str(self.class_lv), str(self.item_quality), self.time] return super(equip_item, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_EquipItem def WriteEvent_orange_equip(curPlayer, place, classLV, quality): ## Ð´Íæ¼Ò×°±¸Í³¼Æ #=========================================================================== # equipItem = equip_item() # equipItem.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # equipItem.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # equipItem.chr_name = curPlayer.GetPlayerName() # equipItem.equip_place = place # equipItem.class_lv = classLV # equipItem.item_quality = quality # WriteEvent(equipItem) #=========================================================================== return class item_record(ScribeEvent): # ÎïÆ·Á÷Ë®¼Ç¼ def __init__(self): #±ØÐë×Ö¶Î super(item_record, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.rec_type = 0 # »ñµÃ¡¢Ê§È¥ self.event_name = "" # ʼþµãÃû³Æ self.item_name = "" # ÎïÆ·Ãû self.item_count = 0 # ÎïÆ·ÊýÁ¿ self.guid = "" # ÎïÆ·Î¨Ò»ID #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, str(self.rec_type), self.event_name, self.item_name, str(self.item_count), self.guid, self.time] return super(item_record, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_ItemRecord def WriteEvent_item_record(curPlayer, recType, operateType, itemData, operatorExtra): EventReport(ShareDefine.Def_UserAction_ItemRecord, "Flow=%s&OperateType=%s&ItemData=%s&OperatorExtra=%s" % (recType, operateType, json.dumps(itemData, ensure_ascii=False), json.dumps(operatorExtra, ensure_ascii=False)), curPlayer) return #=============================================================================================== # ''' @todo: ÎïÆ·Á÷Ë®¼Ç¼ # @param recType: 1-»ñµÃ£»-1-ʧȥ # ''' # itemRecord = item_record() # itemRecord.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # itemRecord.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # itemRecord.chr_name = curPlayer.GetPlayerName() # itemRecord.rec_type = recType # itemRecord.event_name = eventName # itemRecord.item_name = itemName # itemRecord.item_count = itemCount # itemRecord.guid = guid # WriteEvent(itemRecord) # return #=============================================================================================== class coin_to_gold(ScribeEvent): # ¶Ò»»µãȯ def __init__(self): #±ØÐë×Ö¶Î super(coin_to_gold, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.order_id = "" # ¶©µ¥ID self.event_name = "" # ʼþµãÃû³Æ self.coin = 0 # ¶Ò»»µãȯ self.coin_prize = 0 # ½±Àøµãȯ self.gold = 0 # »ñµÃ×êʯ self.total_gold = 0 # µ±Ç°×Ü×êʯÊý #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, self.order_id, self.event_name, str(self.coin), str(self.coin_prize), str(self.gold), str(self.total_gold), self.time] return super(coin_to_gold, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_CoinToGold def WriteEvent_coin_to_gold(curPlayer, orderID, eventName, coin, prizeCoin, addGold): return #=========================================================================== # coinToGold = coin_to_gold() # coinToGold.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # coinToGold.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # coinToGold.chr_name = curPlayer.GetPlayerName() # coinToGold.order_id = orderID # coinToGold.event_name = eventName # coinToGold.coin = coin # coinToGold.coin_prize = prizeCoin # coinToGold.gold = addGold # coinToGold.total_gold = curPlayer.GetGold() # WriteEvent(coinToGold) #=========================================================================== return class god_weapon_lv(ScribeEvent): # Éñ±øÉý¼¶¼Ç¼ def __init__(self): #±ØÐë×Ö¶Î super(god_weapon_lv, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.god_weapon_name = "" # Éñ±øÃû³Æ self.bef_lv = 0 # ´Ë´Î²Ù×÷ǰµÄµÈ¼¶, 0´ú±í0¼¶, 1´ú±í+1¼¶ self.bef_exp = 0 # ´Ë´Î²Ù×÷ǰµÄ¾­ÑéÖµ self.cost_item_cnt = 0 # ´Ë´ÎÏûºÄµÄµÀ¾ßÊýÁ¿ self.aft_lv = 0 # ´Ë´Î²Ù×÷ºóµÄµÈ¼¶, 0´ú±í0¼¶, 1´ú±í+1¼¶ self.aft_exp = 0 # ´Ë´Î½ø½×²Ù×÷ºóµÄ¾­ÑéÖµ #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, self.god_weapon_name, str(self.bef_lv), str(self.bef_exp), str(self.cost_item_cnt), str(self.aft_lv), str(self.aft_exp), self.time] return super(god_weapon_lv, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_GodWeaponLV def WriteEvent_god_weapon_lv(curPlayer, godWeaponName, befLV, befExp, costCnt, aftLV, aftExp): ## дÉñ±øÉý¼¶¼Ç¼ #=========================================================================== # godWeaponLV = god_weapon_lv() # godWeaponLV.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # godWeaponLV.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # godWeaponLV.chr_name = curPlayer.GetPlayerName() # godWeaponLV.god_weapon_name = godWeaponName # godWeaponLV.bef_lv = befLV # godWeaponLV.bef_exp = befExp # godWeaponLV.cost_item_cnt = costCnt # godWeaponLV.aft_lv = aftLV # godWeaponLV.aft_exp = aftExp # WriteEvent(godWeaponLV) #=========================================================================== return class rune_lv(ScribeEvent): # ·ûÓ¡Éý¼¶¼Ç¼ def __init__(self): #±ØÐë×Ö¶Î super(rune_lv, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.rune_name = "" # ·ûÓ¡Ãû³Æ self.cost_rune_money = 0 # ´Ë´ÎÏûºÄµÄ·ûÓ¡¾«»ª self.aft_lv = 0 # ´Ë´Î²Ù×÷ºóµÄµÈ¼¶, 0´ú±í1¼¶ self.aft_rune_money = 0 # ´Ë´Î²Ù×÷ºóµÄ·ûÓ¡¾«»ª #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, self.rune_name, str(self.cost_rune_money), str(self.aft_lv), str(self.aft_rune_money), self.time] return super(rune_lv, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_RuneLV def WriteEvent_rune_lv(curPlayer, runeName, costruneMoney, aftLV, aftruneMoney): ## д·ûÓ¡Éý¼¶¼Ç¼ #=========================================================================== # runeLV = rune_lv() # runeLV.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # runeLV.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # runeLV.chr_name = curPlayer.GetPlayerName() # runeLV.rune_name = runeName # runeLV.cost_rune_money = costruneMoney # runeLV.aft_lv = aftLV # runeLV.aft_rune_money = aftruneMoney # WriteEvent(runeLV) #=========================================================================== return class change_name(ScribeEvent): # ¸ÄÃû¼Ç¼ def __init__(self): #±ØÐë×Ö¶Î super(change_name, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.old_name = "" # Ô­À´µÄÃû×Ö self.new_name = "" # еÄÃû×Ö #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, self.old_name, self.new_name, self.time] return super(change_name, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_ChangeName def WriteEvent_change_name(curPlayer, oldName, newName): ## ¸ÄÃû¼Ç¼ #=========================================================================== # changeName = change_name() # changeName.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # changeName.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # changeName.chr_name = curPlayer.GetPlayerName() # changeName.old_name = oldName # changeName.new_name = newName # WriteEvent(changeName) #=========================================================================== return class add_zhenqi(ScribeEvent): # ÕæÆø²ú³ö¼Ç¼ def __init__(self): #±ØÐë×Ö¶Î super(add_zhenqi, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.eventName = "" # À´Ô´ self.eventData = "" # À´Ô´¸½¼ÓÐÅÏ¢ self.addValue = 0 # ²ú³öÊýÁ¿ self.totalValue = 0 # Ê£Óà×ÜÁ¿ #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, self.eventName, str(self.eventData), str(self.addValue), str(self.totalValue), self.time] return super(add_zhenqi, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_AddZhenqi def WriteEvent_add_zhenqi(curPlayer, eventName, eventData, addValue, totalValue): ## ÕæÆø²ú³ö¼Ç¼ #=========================================================================== # if eventData: # eventData = str(eventData) # eventData = eventData.replace("\"", "'") # eventData = eventData.replace(",", "|") # # addZhenQi = add_zhenqi() # addZhenQi.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # addZhenQi.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # addZhenQi.chr_name = curPlayer.GetPlayerName() # addZhenQi.eventName = eventName # addZhenQi.eventData = eventData # addZhenQi.addValue = addValue # addZhenQi.totalValue = totalValue # WriteEvent(addZhenQi) #=========================================================================== return class lost_zhenqi(ScribeEvent): # ÕæÆøÏûºÄ¼Ç¼ def __init__(self): #±ØÐë×Ö¶Î super(lost_zhenqi, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.eventName = "" # ÏûºÄµã self.eventData = "" # ÏûºÄµã¸½¼ÓÐÅÏ¢ self.lostValue = 0 # ÏûºÄÊýÁ¿ self.totalValue = 0 # Ê£Óà×ÜÁ¿ #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, self.eventName, str(self.eventData), str(self.lostValue), str(self.totalValue), self.time] return super(lost_zhenqi, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_LostZhenqi def WriteEvent_lost_zhenqi(curPlayer, eventName, eventData, lostValue, totalValue): ## ÕæÆøÏûºÄ¼Ç¼ #=========================================================================== # if eventData: # eventData = str(eventData) # eventData = eventData.replace("\"", "'") # eventData = eventData.replace(",", "|") # # lostZhenQi = lost_zhenqi() # lostZhenQi.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # lostZhenQi.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # lostZhenQi.chr_name = curPlayer.GetPlayerName() # lostZhenQi.eventName = eventName # lostZhenQi.eventData = eventData # lostZhenQi.lostValue = lostValue # lostZhenQi.totalValue = totalValue # WriteEvent(lostZhenQi) #=========================================================================== return class coat_lv(ScribeEvent): # ʱװÉý¼¶¼Ç¼ def __init__(self): #±ØÐë×Ö¶Î super(coat_lv, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.coat_name = "" # ʱװÃû³Æ self.bef_lv = 0 # ´Ë´Î½ø½×²Ù×÷ǰµÄµÈ¼¶ self.bef_exp = 0 # ´Ë´Î½ø½×²Ù×÷ǰµÄ¾­ÑéÖµ self.cost_item_cnt = 0 # ´Ë´ÎÏûºÄµÄµÀ¾ßÊýÁ¿ self.aft_lv = 0 # ´Ë´Î²Ù×÷ºóµÄµÈ¼¶, 0´ú±í0¼¶, 1´ú±í+1¼¶ self.aft_exp = 0 #´Ë´Î½ø½×²Ù×÷ºóµÄ¾­ÑéÖµ #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, self.coat_name, str(self.bef_lv), str(self.bef_exp), str(self.cost_item_cnt), str(self.aft_lv), str(self.aft_exp), self.time] return super(coat_lv, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_CoatLV def WriteEvent_coat_lv(curPlayer, coatName, befLV, befExp, costItemCnt, aftLV, aftExp): return ## дʱװÉý¼¶¼Ç¼ #=========================================================================== # coatLV = coat_lv() # coatLV.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # coatLV.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # coatLV.chr_name = curPlayer.GetPlayerName() # coatLV.coat_name = coatName # coatLV.bef_lv = befLV # coatLV.bef_exp = befExp # coatLV.cost_item_cnt = costItemCnt # coatLV.aft_lv = aftLV # coatLV.aft_exp = aftExp # WriteEvent(coatLV) #=========================================================================== class wingskin_lv(ScribeEvent): # ʱװÉý¼¶¼Ç¼ def __init__(self): #±ØÐë×Ö¶Î super(wingskin_lv, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.skin_name = "" # »Ã»¯³á°òÃû³Æ self.bef_lv = 0 # ´Ë´Î½ø½×²Ù×÷ǰµÄµÈ¼¶ self.bef_exp = 0 # ´Ë´Î½ø½×²Ù×÷ǰµÄ¾­ÑéÖµ self.cost_item_cnt = 0 # ´Ë´ÎÏûºÄµÄµÀ¾ßÊýÁ¿ self.aft_lv = 0 # ´Ë´Î²Ù×÷ºóµÄµÈ¼¶, 0´ú±í0¼¶, 1´ú±í+1¼¶ self.aft_exp = 0 #´Ë´Î½ø½×²Ù×÷ºóµÄ¾­ÑéÖµ #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, self.skin_name, str(self.bef_lv), str(self.bef_exp), str(self.cost_item_cnt), str(self.aft_lv), str(self.aft_exp), self.time] return super(wingskin_lv, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_WingSkinLV def WriteEvent_wingskin_lv(curPlayer, skinName, befLV, befExp, costItemCnt, aftLV, aftExp): ## д»Ã»¯³á°òÉý¼¶¼Ç¼ #=========================================================================== # wingskinLV = wingskin_lv() # wingskinLV.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # wingskinLV.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # wingskinLV.chr_name = curPlayer.GetPlayerName() # wingskinLV.skin_name = skinName # wingskinLV.bef_lv = befLV # wingskinLV.bef_exp = befExp # wingskinLV.cost_item_cnt = costItemCnt # wingskinLV.aft_lv = aftLV # wingskinLV.aft_exp = aftExp # WriteEvent(wingskinLV) #=========================================================================== return class horseskin_lv(ScribeEvent): # ʱװÉý¼¶¼Ç¼ def __init__(self): #±ØÐë×Ö¶Î super(horseskin_lv, self).__init__() self.account_id = "" # Õ˺ŠID£¬Æ½Ì¨ÏÂΨһ£¬ÇÒÖÕÉú²»±ä self.chr_name = "" # Íæ¼Ò½ÇÉ«Ãû self.skin_name = "" # »Ã»¯×øÆïÃû³Æ self.bef_lv = 0 # ´Ë´Î½ø½×²Ù×÷ǰµÄµÈ¼¶ self.bef_exp = 0 # ´Ë´Î½ø½×²Ù×÷ǰµÄ¾­ÑéÖµ self.cost_item_cnt = 0 # ´Ë´ÎÏûºÄµÄµÀ¾ßÊýÁ¿ self.aft_lv = 0 # ´Ë´Î²Ù×÷ºóµÄµÈ¼¶, 0´ú±í0¼¶, 1´ú±í+1¼¶ self.aft_exp = 0 #´Ë´Î½ø½×²Ù×÷ºóµÄ¾­ÑéÖµ #·Ç±ØÐë×Ö¶Î #¼´Ê±ÊǷDZØÐë×Ö¶ÎÒ²Ó¦¸Ã´«ËÍ£¬¸÷×Ö¶ÎÓÃ,·Ö¸ô£¬²¢ÇÒÓÃË«ÒýºÅ°üº¬£¬²Î¿¼¸ñʽ'"1","","","12314"' return def GetCurEventStr(self): if not self.time: self.time = GameWorld.GetCurrentDataTimeStr() tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name, self.skin_name, str(self.bef_lv), str(self.bef_exp), str(self.cost_item_cnt), str(self.aft_lv), str(self.aft_exp), self.time] return super(horseskin_lv, self).GetEventStr(tmpList) def GetScribeEventName(self): return ShareDefine.Def_UserAction_HorseSkinLV def WriteEvent_horseskin_lv(curPlayer, skinName, befLV, befExp, costItemCnt, aftLV, aftExp): ## д»Ã»¯×øÆïÉý¼¶¼Ç¼ #=========================================================================== # horseSkinLV = horseskin_lv() # horseSkinLV.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID())) # horseSkinLV.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID()) # horseSkinLV.chr_name = curPlayer.GetPlayerName() # horseSkinLV.skin_name = skinName # horseSkinLV.bef_lv = befLV # horseSkinLV.bef_exp = befExp # horseSkinLV.cost_item_cnt = costItemCnt # horseSkinLV.aft_lv = aftLV # horseSkinLV.aft_exp = aftExp # WriteEvent(horseSkinLV) #=========================================================================== return ## --------------------------------------------------------------------------------------- #------------------------2018-02-09 еÄÊý¾Ýͳ¼Æ-------------------------------- def WriteEvent_Entry(curPlayer, step): EventReport(ShareDefine.Def_UserAction_LostModel, "Step=%s&Flag=%s"%(step, ShareDefine.Def_UserAction_CreateRole), curPlayer) def WriteEvent_VIP(curPlayer): EventReport(ShareDefine.Def_UserAction_VIPLvUP, "VIPLevel=%s"%curPlayer.GetVIPLv(), curPlayer) def WriteEvent_FightPower(curPlayer): EventReport(ShareDefine.Def_UserAction_FightPower, "FightPower=%s"%PlayerControl.GetFightPower(curPlayer), curPlayer)