| | |
| | | import IpyGameDataPY
|
| | | import PyGameData
|
| | | import OpenServerActivity
|
| | | import PlayerActLunhuidian
|
| | | import PlayerActivity
|
| | | import ChNetSendPack
|
| | | import PlayerState
|
| | |
| | |
|
| | |
|
| | | def OnPlayerLogin(curPlayer):
|
| | | DoGMForbidenTalkOnLogin(curPlayer)
|
| | | #DoGMForbidenTalkOnLogin(curPlayer)
|
| | | curPlayer.SetDict(ChConfig.Def_PDict_DayOnlineCalcTime, int(time.time()))
|
| | | return
|
| | |
|
| | |
| | | elif type_Price == IPY_GameWorld.TYPE_Price_Silver_Paper:
|
| | | __PayMoneyAfterBySilverPaper(curPlayer, price)
|
| | |
|
| | | if type_Price == ShareDefine.TYPE_Price_Xiantao:
|
| | | # 仅算使用技能的
|
| | | if type_Price == ShareDefine.TYPE_Price_Xiantao and costType == "UseSkill":
|
| | | # 累加未结算战锤 - 经验
|
| | | unXiantaoCntExp = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_UnXiantaoCntExp)
|
| | | NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_UnXiantaoCntExp, unXiantaoCntExp + price)
|
| | |
| | |
|
| | | TurnAttack.GetMainFightMgr(curPlayer).useZhanchui += price
|
| | |
|
| | | # 除GM扣除的以外
|
| | | if costType != ChConfig.Def_Cost_GM:
|
| | | #轮回殿
|
| | | PlayerActLunhuidian.AddLunhuidianValue(curPlayer, PlayerActLunhuidian.AwardType_PayMoney, type_Price, price)
|
| | | |
| | | unitPrice = price if quantity == 1 else int(math.ceil(price * 1.0 / quantity)) # 单价
|
| | | #reason_name = "Unknown" if not costType else costType
|
| | | reason_name = costType
|
| | |
| | | totalExpRate = GetPlayerExpRate(curPlayer)
|
| | | fightExpRate = curPlayer.GetFightExpRate() # 系统及功能累加
|
| | |
|
| | | actExpRateInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_ExpRate, {})# 多倍经验活动加成
|
| | | if actExpRateInfo.get(ShareDefine.ActKey_State):
|
| | | actExpIpyData = IpyGameDataPY.GetIpyGameData("ActExpRate", actExpRateInfo.get(ShareDefine.ActKey_CfgID))
|
| | | if actExpIpyData and curPlayer.GetLV() >= actExpIpyData.GetLVLimit():
|
| | | fightExpRate += actExpIpyData.GetAddExpRate()
|
| | | |
| | | #if curPlayer.GetMapID() not in [ChConfig.Def_FBMapID_FamilyInvade]: #守卫人皇不加组队加成
|
| | | # fightExpRate += curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_TeamExpRate) # 组队
|
| | |
|
| | |
| | | GameWorld.DebugLog("SetPlayerAccState %s" % (accState), curPlayer.GetPlayerID())
|
| | | return
|
| | |
|
| | | def DoGMForbidenTalkOnLogin(curPlayer):
|
| | | ## 离线时被禁言,此时DB的账号状态值为禁言状态,但是GMOper暂时没有禁言操作命令,故上线时检查设置下离线禁言状态
|
| | | ## 目前离线时被禁言的,暂时只处理AccState ExAttr17, GMOper命令暂不处理,所以为永久禁言
|
| | | |
| | | if curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalkDevice):
|
| | | GameWorld.Log("上线时角色为被设备禁言状态!", curPlayer.GetPlayerID())
|
| | | __SetGMForbidenTalkValue(curPlayer, 2)
|
| | | __SetGMForbidenTalkValue(curPlayer, 1)
|
| | | elif curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalk):
|
| | | GameWorld.Log("上线时角色为被禁言状态!", curPlayer.GetPlayerID())
|
| | | __SetGMForbidenTalkValue(curPlayer, 1)
|
| | | else:
|
| | | SendPropertyRefresh(curPlayer, ShareDefine.CDBPlayerRefresh_ForbidenTalk, 0)
|
| | | return
|
| | | #GM命令支持离线玩家上线后处理,且 PlayerGMOper 也有上线触发逻辑处理,故暂屏蔽
|
| | | #def DoGMForbidenTalkOnLogin(curPlayer):
|
| | | # ## 离线时被禁言,此时DB的账号状态值为禁言状态,但是GMOper暂时没有禁言操作命令,故上线时检查设置下离线禁言状态
|
| | | # ## 目前离线时被禁言的,暂时只处理AccState ExAttr17, GMOper命令暂不处理,所以为永久禁言
|
| | | # |
| | | # if curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalkDevice):
|
| | | # GameWorld.Log("上线时角色为被设备禁言状态!", curPlayer.GetPlayerID())
|
| | | # __SetGMForbidenTalkValue(curPlayer, 2)
|
| | | # __SetGMForbidenTalkValue(curPlayer, 1)
|
| | | # elif curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalk):
|
| | | # GameWorld.Log("上线时角色为被禁言状态!", curPlayer.GetPlayerID())
|
| | | # __SetGMForbidenTalkValue(curPlayer, 1)
|
| | | # else:
|
| | | # SendPropertyRefresh(curPlayer, ShareDefine.CDBPlayerRefresh_ForbidenTalk, 0)
|
| | | # return
|
| | |
|
| | | def IsMainLevelPass(curPlayer, lvID):
|
| | | ## 判断玩家是否过关某个主线关卡ID
|
| | |
| | | PlayerTask.UpdTaskValue(curPlayer, ChConfig.TaskType_MainLevel)
|
| | | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_MainLevel, lvID)
|
| | | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_OSAMainLevel, lvID)
|
| | | if OpenServerActivity.GetOSAState(curPlayer, ShareDefine.Def_BT_OSA_MainLevel) == 1:
|
| | | PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_OSA_MainLevel, lvID)
|
| | | OpenServerActivity.UpdOSA_MainLevelBillboard(curPlayer, lvID)
|
| | | DataRecordPack.DR_MainLevelPass(curPlayer, lvID)
|
| | | return value
|
| | | def GetMainLevelPassInfo(curPlayer):
|
| | |
| | | NetPackCommon.SendFakePack(curPlayer, clientPack)
|
| | | return
|
| | |
|
| | | ## 魅力等级
|
| | | def GetCharmLV(curPlayer): return curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CharmLV)
|
| | | def SetCharmLV(curPlayer, charmLV):
|
| | | NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CharmLV, charmLV)
|
| | | SendPropertyRefresh(curPlayer, ShareDefine.CDBPlayerRefresh_CharmLV, charmLV)
|
| | | return
|
| | |
|
| | | def GetTotalLingGenPoint(curPlayer):
|
| | | # 总灵根点数(金木水火土+自由点数)
|
| | | return 0
|
| | |
|
| | | # 灵根 - 金木水火土
|
| | | def GetMetal(curPlayer): return 0
|
| | | def GetWood(curPlayer): return 0
|
| | |
| | | def GetReduceSkillCDPer(curPlayer): return 0
|
| | | def SetReduceSkillCDPer(curPlayer, reducePer): return
|
| | |
|
| | | # 血瓶恢复效果
|
| | | def GetHPCureEnhance(curPlayer): return 0
|
| | |
|
| | | # 仙盟职位,使用 GetReceivedSalary,因为FamilyMemberLV没有入库
|
| | | def GetFamilyMemberLV(curPlayer): return curPlayer.GetReceivedSalary()
|
| | | def SetFamilyMemberLV(curPlayer, fmLV):
|
| | |
| | | curPlayer.SetReceivedSalary(fmLV)
|
| | | curPlayer.SetFamilyMemberLV(fmLV) # 也同步设置该值,防止有些地方直接调用 curPlayer.GetFamilyMemberLV()
|
| | | return
|
| | |
|
| | | #---当前防护值,需存DB----
|
| | | def GetProDef(curPlayer): return 0
|
| | | def SetProDef(curPlayer, value): return
|
| | |
|
| | | #---最大防护值----
|
| | | def GetMaxProDef(curPlayer): return 0
|
| | | def SetMaxProDef(curPlayer, value): return
|
| | |
|
| | | # 每X秒自动消失一个印记, 毫秒记录
|
| | | def GetLostYinjiTime(curPlayer): return 0
|
| | | def SetLostYinjiTime(curPlayer, value): return
|
| | |
|
| | | # 当前印记数
|
| | | def GetYinjiCnt(curPlayer): return 0
|
| | | def SetYinjiCnt(curPlayer, value): return
|
| | |
|
| | | # 减少指定技能组CD XX%
|
| | | def GetTheFBSkillsCD(curPlayer): return 0
|
| | | def SetTheFBSkillsCD(curPlayer, value): return
|
| | | # 灼烧固定伤害
|
| | | def GetBurnValue(curPlayer): return 0
|
| | | def SetBurnValue(curPlayer, value): return
|
| | | # 延长灼烧时间百分比
|
| | | def GetBurnTimePer(curPlayer): return 0
|
| | | def SetBurnTimePer(curPlayer, value): return
|
| | | # 减移动速度百分比
|
| | | def GetSubSpeedPer(curPlayer): return 0
|
| | | def SetSubSpeedPer(curPlayer, value): return
|
| | |
|
| | | #-------------------------------------------------------------------------------
|
| | |
|