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