From 12392320a13113f580f75c314e74c952b7a9ab7d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 14 十一月 2019 10:31:05 +0800
Subject: [PATCH] 8338 【主干】【后端】女娲的祝福等buff物品的类型分配(新增类型18效果与类型9相同)
---
ServerPython/CoreServerGroup/GameServer/Script/Player/CreateRole.py | 66 ++++++++++++++-------------------
1 files changed, 28 insertions(+), 38 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/CreateRole.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/CreateRole.py
index ac6c503..2692310 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/CreateRole.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/CreateRole.py
@@ -83,6 +83,10 @@
PlayerControl.NotifyCode(curPlayer, "CreatSuccess")
return
+ if CheckIsServerCreateRoleLimit(curPlayer):
+ PlayerControl.NotifyCode(curPlayer, "ServerCreateRoleLimit")
+ return
+
# CD保护
createSafeTick = 3000
accID = curPlayer.GetAccID()
@@ -188,7 +192,7 @@
#GameWorld.DebugLog("SendToDBPlayerCreate dataMapID=%s,lineID=%s,posX=%s,posY=%s,mapID=%s,copyMapID=%s"
# % (dataMapID, lineID, posX, posY, mapID, copyMapID))
#根据职业获得默认的属性, #STR//力量 ,PNE//智力,PHY//敏捷,CON//体力
- baseSTR, basePNE, basePHY, baseCON = __GetPlayerBasePoint(sendPack_Job)
+ baseSTR, basePNE, basePHY, baseCON = 0, 0, 0, 0
curPlayer.SendToDBPlayerCreate(
curPlayerID, #PlayerID,
@@ -242,44 +246,20 @@
# 创角流向
#DataRecordPack.DR_CreateRole(curPlayer.GetAccID(), sendPack_Name, sendPack_Job)
return
+#---------------------------------------------------------------------
+def CheckIsServerCreateRoleLimit(curPlayer):
+ ## 服务器是否创角限制
+ groupID = GameWorld.GetServerGroupID()
+ ipyDataMgr = IpyGameDataPY.IPY_Data()
+ for i in xrange(ipyDataMgr.GetCreateRoleLimitServerCount()):
+ ipyData = ipyDataMgr.GetCreateRoleLimitServerByIndex(i)
+ if groupID in ipyData.GetLimitServerGroupIDList():
+ return True
+ for idA, idB in ipyData.GetLimitServerGroupIDRangeList():
+ if idA <= groupID <= idB:
+ return True
+ return False
-#---------------------------------------------------------------------
-## 获取玩家基础属性点
-# @param sendPack_Job 职业类型
-# @return baseSTR, basePNE, basePHY, baseCON
-# @remarks 函数详细说明.
-def __GetPlayerBasePoint(sendPack_Job):
- baseSTR, basePNE, basePHY, baseCON = (0, 0, 0, 0)
- #{ 职业 : { key : value } }
-
- jobDict = IpyGameDataPY.GetFuncEvalCfg("CreatRolePoint%s" % sendPack_Job, 1)
-
- if not jobDict:
- GameWorld.ErrLog('CreatRoleErr RoleBasePoint, job = %s' % (sendPack_Job))
- return baseSTR, basePNE, basePHY, baseCON
-
- for key, value in jobDict.items():
-
- if type(key) == str:
- key = key.upper()
-
- if key in ['STR', ShareDefine.Def_Effect_STR]:
- baseSTR = value
-
- elif key in ['PNE', ShareDefine.Def_Effect_PNE]:
- basePNE = value
-
- elif key in ['PHY', ShareDefine.Def_Effect_PHY]:
- basePHY = value
-
- elif key in ['CON', ShareDefine.Def_Effect_CON]:
- baseCON = value
-
- else:
- GameWorld.ErrLog('CreatRoleErr RoleBasePoint, key = %s' % (key))
-
- return baseSTR, basePNE, basePHY, baseCON
-#---------------------------------------------------------------------
## 检查玩家名字是否合法(这里的PlayerName为过滤完空格的名字)
# @param curPlayer 当前玩家
# @param playerName 玩家名称
@@ -320,6 +300,11 @@
if createRoleDataMapID not in mapShuntInfoDict:
return createRoleDataMapID, 0, posX, posY # 默认1线
+ activityLineIndex = 0 # 活动线默认1线
+ activityMapLineDict = IpyGameDataPY.GetFuncEvalCfg("MapLine", 2, {})
+ if createRoleDataMapID in activityMapLineDict:
+ activityLineIndex = max(0, activityMapLineDict[createRoleDataMapID] - 1)
+
lineMaxPlayerCount = mapShuntInfoDict[createRoleDataMapID]
emptyLineID = None
heavyLineList = []
@@ -348,6 +333,11 @@
if dataMapID != createRoleDataMapID:
continue
+ #创角不分配到非一线的活动线路
+ if lineID != 0 and lineID == activityLineIndex:
+ #GameWorld.DebugLog("创角不分配到活动线!lineID=%s" % lineID)
+ continue
+
#GameWorld.DebugLog(" lineIndex=%s,lineID=%s,playerCnt=(%s/%s)" % (lineIndex, lineID, curPlayerCnt, maxPlayerCnt))
if curPlayerCnt >= lineMaxPlayerCount:
heavyLineList.append([curPlayerCnt, lineID])
--
Gitblit v1.8.0