From aad1382a82aecd2acc312bf81727882c9eadbdd6 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 04 十一月 2025 15:43:18 +0800
Subject: [PATCH] 237 【福利内容】每日任务/每周任务/章节奖励-服务端(修复有配置任务条件的任务无法取到任务值的bug;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/EventReport.py |  719 -----------------------------------------------------------
 1 files changed, 5 insertions(+), 714 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/EventReport.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/EventReport.py
index 6fdfaca..81e7648 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/EventReport.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/EventReport.py
@@ -41,7 +41,6 @@
 import GameWorld
 import ChConfig
 import CommFunc
-import PlayerTJG
 
 import datetime
 import random
@@ -601,14 +600,11 @@
 # 离线数据
 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
+    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()
@@ -711,102 +707,6 @@
                 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)
     #===========================================================================
@@ -823,252 +723,11 @@
     #===========================================================================
     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):
-    '''
-    <a color="255,255,0" href="GOTO 10000,74,60">[地图:暮光之城(74,60)]</a>
-    <A color="205,0,0" onmouseover="ShowInfo ITEM,55986" DATA="07 04 01 00 B2 DA 00 00 00 01 00 01 
-        28 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-        00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 3C 00 00 00 7B 27 32 38 27 3A 5B 
-        27 31 30 32 33 34 27 5D 2C 27 31 39 27 3A 5B 27 33 35 34 27 2C 27 38 35 36 27 2C 27 33 35 
-        34 27 2C 27 37 35 38 27 2C 27 39 35 31 27 2C 27 31 30 35 32 27 5D 7D 04 00 00 00 00 00 00 
-        00 00 00 00 00 00 00 00 00 00 ">[神圣的傲世之弓 +40]</a>
-    '''
-    tempMatch = re.search("<a color=.*?>.*?</a>", content)
-    if tempMatch:
-        tempStr = tempMatch.group()
-        markIndex = tempStr.index(">") + 1
-        repStr = tempStr[markIndex:tempStr.index("<", markIndex)]
-        content = content.replace(tempStr, repStr)
-        
-    tempMatch = re.search("<A color=.*?>.*?</a>", 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 # 此次进阶操作后的坐骑等阶星数的经验值
-        
-        #非必须字段
-
-        #即时是非必须字段也应该传送,各字段用,分隔,并且用双引号包含,参考格式'"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 # 进阶操作后的祝福值
-        
-        #非必须字段
-
-        #即时是非必须字段也应该传送,各字段用,分隔,并且用双引号包含,参考格式'"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):
     # 宠物升级记录
@@ -1384,374 +1043,6 @@
     # 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 # 此次进阶操作后的经验值
-        
-        #非必须字段
-
-        #即时是非必须字段也应该传送,各字段用,分隔,并且用双引号包含,参考格式'"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 # 此次操作后的符印精华
-        
-        #非必须字段
-        
-        #即时是非必须字段也应该传送,各字段用,分隔,并且用双引号包含,参考格式'"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 = "" # 新的名字
-        #非必须字段
-        
-        #即时是非必须字段也应该传送,各字段用,分隔,并且用双引号包含,参考格式'"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 # 剩余总量
-        
-        #非必须字段
-
-        #即时是非必须字段也应该传送,各字段用,分隔,并且用双引号包含,参考格式'"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 # 剩余总量
-        
-        #非必须字段
-
-        #即时是非必须字段也应该传送,各字段用,分隔,并且用双引号包含,参考格式'"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 #此次进阶操作后的经验值
-        #非必须字段
-        
-        #即时是非必须字段也应该传送,各字段用,分隔,并且用双引号包含,参考格式'"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 #此次进阶操作后的经验值
-        #非必须字段
-        
-        #即时是非必须字段也应该传送,各字段用,分隔,并且用双引号包含,参考格式'"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 #此次进阶操作后的经验值
-        #非必须字段
-        
-        #即时是非必须字段也应该传送,各字段用,分隔,并且用双引号包含,参考格式'"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):

--
Gitblit v1.8.0