def forwarding(key, dynamicId, data): """ """ if localservice._targets.has_key(key): return localservice.callTarget(key, dynamicId, data) else: user = UsersManager().getUserByDynamicId(dynamicId) if not user: return if not user.isLoginCharacter(): return if user.isCharacterLocked(): return if not user.CheckEffective(): return global scene_protocol if key in scene_protocol: scene = user.getSceneNode() if scene: GlobalObject().root.callChild(scene, 3, key, dynamicId, user.characterId, data) return global chat_protocol if key in chat_protocol: GlobalObject().root.callChild("chat", 3, key, dynamicId, user.characterId, data) return global combat_protocol if key in combat_protocol: GlobalObject().root.callChild("combat", 3, key, dynamicId, user.characterId, data) return node = user.getNode() return GlobalObject().root.callChild(node, 3, key, dynamicId, user.characterId, data)
def selectrole_276(key, dynamicId, request_proto): argument = netutil.c2s_buf2data("C2S_LOGIN_SELECTROLE", request_proto) rid = argument['rid'] user = UsersManager().getUserByDynamicId(dynamicId) if not user: response = {} response["msg"] = "you haven't login" buf = netutil.s2c_data2buf("S2C_NOTIFY_FLOAT", response) GlobalObject().root.callChild("net", "pushObject", ProtocolDesc.S2C_NOTIFY_FLOAT, buf, [dynamicId]) return if user.characterId == 0: response = {} response["msg"] = "you haven't character" buf = netutil.s2c_data2buf("S2C_NOTIFY_FLOAT", response) GlobalObject().root.callChild("net", "pushObject", ProtocolDesc.S2C_NOTIFY_FLOAT, buf, [dynamicId]) return if user.characterId != rid: response = {} response["msg"] = "error characterId %d %d" % (rid, user.characterId) buf = netutil.s2c_data2buf("S2C_NOTIFY_FLOAT", response) GlobalObject().root.callChild("net", "pushObject", ProtocolDesc.S2C_NOTIFY_FLOAT, buf, [dynamicId]) return if user.isCharacterLocked(): return if not user.CheckEffective(): response = {} response["msg"] = "account is banned" buf = netutil.s2c_data2buf("S2C_NOTIFY_FLOAT", response) GlobalObject().root.callChild("net", "pushObject", ProtocolDesc.S2C_NOTIFY_FLOAT, buf, [dynamicId]) return if user.isLoginCharacter(): response = {} response["msg"] = "character is already login" buf = netutil.s2c_data2buf("S2C_NOTIFY_FLOAT", response) GlobalObject().root.callChild("net", "pushObject", ProtocolDesc.S2C_NOTIFY_FLOAT, buf, [dynamicId]) return user.loginCharacter() nownode = GameSerManager().getBsetSvrNodeId() d = GlobalObject().root.callChild(nownode, 1, dynamicId, rid) user.setNode(nownode) GameSerManager().addClient(nownode, dynamicId) scenenode = SceneSerManager().getBsetScenNodeId() d = GlobalObject().root.callChild(scenenode, 1, dynamicId, rid) user.setSceneNode(scenenode) SceneSerManager().addClient(scenenode, dynamicId) GlobalObject().root.callChild("chat", 1, dynamicId, rid) GlobalObject().root.callChild("combat", 1, dynamicId, rid) response = {} buf = netutil.s2c_data2buf("S2C_LOGIN_SELECTROLE", response) GlobalObject().root.callChild("net", "pushObject", ProtocolDesc.S2C_LOGIN_SELECTROLE, buf, [dynamicId]) return