| | |
| | | #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,
|
| | |
| | | # 创角流向
|
| | | #DataRecordPack.DR_CreateRole(curPlayer.GetAccID(), sendPack_Name, sendPack_Job)
|
| | | return
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | ## 获取玩家基础属性点
|
| | | # @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 当前玩家
|
| | |
| | | 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 = []
|
| | |
| | | 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])
|