From 8a3b39e2b66ab9f7d1f1ac65082980d1de8a9582 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期三, 31 十月 2018 14:52:30 +0800
Subject: [PATCH] 4498 【后端】【1.2.0】增加【助战特定副本】的任务接口
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 89 +++++++++++++++++++++++++++++++++++++++-----
1 files changed, 78 insertions(+), 11 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index 66c355b..69dbdd4 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -75,7 +75,7 @@
import Operate_EquipSuitCompose
import PlayerEquipDecompose
import PlayerCoat
-import PlayerQQ
+import PlayerGreatMaster
import PlayerCostVIP
import PlayerMergeKing
import PlayerMergePK
@@ -328,7 +328,7 @@
Operate_EquipStone.OnLogin(curPlayer)
#大师
- #PlayerGreatMaster.MasterOnLogin(curPlayer)
+ PlayerGreatMaster.MasterOnLogin(curPlayer)
#通知VIP
PlayerVip.DoOnLogin(curPlayer, tick)
@@ -550,6 +550,8 @@
PlayerWishingWell.OnLogin(curPlayer)
# 上线查询一次充值订单
curPlayer.SendDBQueryRecharge()
+ # 小助手
+ SyncLittleHelper(curPlayer)
curPlayer.SetState(0) # 脱机挂恢复为正常上线
curPlayer.SetFacePic(0) # 通知数据库是否保存还是下线,做一次恢复,1为保存 0为正常下线
@@ -923,14 +925,23 @@
#这里只做初始化逻辑
#在玩家切换场景的时候, 不会调用到这里
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- InitLoginPlayer(curPlayer, tick)
- DoPlayerLogin(curPlayer, tick)
+ try:
+ InitLoginPlayer(curPlayer, tick)
+ DoPlayerLogin(curPlayer, tick)
+
+ #锁住玩家, 等到读取地图成功, 再解锁
+ curPlayer.SetCanMove(False)
+
+ #登陆发图形验证码
+ PlayerAutoCheckOnline.PlayerLoginCaptcha(curPlayer, tick)
+ except:
+ curPlayer.Kick(IPY_GameWorld.disWaitForPlayerLoinError)
+ import traceback
+ GameWorld.ErrLog("玩家上线逻辑错误~~~~~\r\n%s" % traceback.format_exc())
+ if GameWorld.GetGameWorld().GetDebugLevel():
+ raise Exception("玩家上线逻辑错误~~~~\r\n%s" % traceback.format_exc())
+ return
- #锁住玩家, 等到读取地图成功, 再解锁
- curPlayer.SetCanMove(False)
-
- #登陆发图形验证码
- PlayerAutoCheckOnline.PlayerLoginCaptcha(curPlayer, tick)
#---------------------------------------------------------------------
##C++封包触发, 玩家切换地图的时候, 在本地图登录
@@ -2418,7 +2429,7 @@
import traceback
GameWorld.ErrLog("玩家下线逻辑错误~~~~~\r\n%s" % traceback.format_exc())
if GameWorld.GetGameWorld().GetDebugLevel():
- raise Exception("玩家下线~~~~~\r\n%s" % traceback.format_exc())
+ raise Exception("玩家下线逻辑错误~~~~~\r\n%s" % traceback.format_exc())
#调用底层使玩家下线
curPlayer.DoDisconnect(tick)
@@ -2516,6 +2527,60 @@
return
curPlayer.SetSetting(setting)
+ return
+
+#// A2 29 设置小助手 #tagCMSetLittleHelper
+#
+#struct tagCMSetLittleHelper
+#{
+# tagHead Head;
+# BYTE SetNum; // 托管功能设置编号1~20,每个编号对应的托管功能前端自定义
+# DWORD Value1; // 自定义值1
+# DWORD Value2; // 自定义值2
+# DWORD Value3; // 自定义值3
+# DWORD Value4; // 自定义值4
+# DWORD Value5; // 自定义值5
+# DWORD Value6; // 自定义值6
+#};
+def OnSetLittleHelper(index, clientData, tick):
+ curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+ setNum = clientData.SetNum
+ if setNum > ChConfig.LittleHelperSetNumCount:
+ GameWorld.ErrLog("小助手不支持该设置编号! setNum=%s" % setNum, curPlayer.GetPlayerID())
+ return
+ for i in xrange(1, ChConfig.LittleHelperValueCount + 1):
+ if not hasattr(clientData, "Value%s" % i):
+ GameWorld.ErrLog("小助手不支持该值编号设置! setNum=%s,value%s" % (setNum, i), curPlayer.GetPlayerID())
+ continue
+ value = getattr(clientData, "Value%s" % i)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_LittleHelperValue % (setNum, i), value)
+ GameWorld.DebugLog("小助手值设置: setNum=%s,value%s=%s" % (setNum, i, value), curPlayer.GetPlayerID())
+ return
+
+def SyncLittleHelper(curPlayer):
+ ## 同步小助手设置,仅有值的同步
+ funcSetList = []
+ for setNum in xrange(ChConfig.LittleHelperSetNumCount + 1):
+ funcSet = None
+ for i in xrange(1, ChConfig.LittleHelperValueCount + 1):
+ value = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_LittleHelperValue % (setNum, i))
+ if not value:
+ continue
+ if not funcSet:
+ funcSet = ChPyNetSendPack.tagMCLittleHelperFuncSet()
+ funcSet.SetNum = setNum
+ if hasattr(funcSet, "Value%s" % i):
+ setattr(funcSet, "Value%s" % i, value)
+ if funcSet:
+ funcSetList.append(funcSet)
+
+ if not funcSetList:
+ return
+
+ setPack = ChPyNetSendPack.tagMCLittleHelperSet()
+ setPack.FuncSetList = funcSetList
+ setPack.FuncSetCount = len(setPack.FuncSetList)
+ NetPackCommon.SendFakePack(curPlayer, setPack)
return
#// A2 22 设置引导成功 #tagCMSetGuideOK
@@ -4985,7 +5050,9 @@
# 领取许愿池奖励
elif rewardType == ChConfig.Def_RewardType_WishingWell:
PlayerWishingWell.DoGetWishingAward(curPlayer)
-
+ # 功能开启奖励
+ elif rewardType == ChConfig.Def_RewardType_OpenFunc:
+ GameFuncComm.GetFuncOpenAward(curPlayer, dataEx)
#
# # 充值豪礼奖励
# elif rewardType == ShareDefine.Def_RewardType_GoldGift:
--
Gitblit v1.8.0