def doOldRemoteCallNew(userId, msgline): ''' 必须要返回dict的实例 ''' try: ftlog.debug('doOldRemoteCallNew->msgline=', msgline) msg = MsgPack() msg.unpack(msgline) action = msg.getAction() gameId = msg.getParam('gameId', -1) userId = msg.getParam('userId', -1) userBag = hallitem.itemSystem.loadUserAssets(userId).getUserBag() clientId = sessiondata.getClientId(userId) if pkgamedata.setnxGameAttr(userId, HALL_GAMEID, 'flag.item.trans', 1) == 1: hallitem._tranformItems(gameId, userId, clientId, userBag) mo = MsgPack() mo.setResult('action', action) if action == 'getUserItem': kindId = msg.getParam('itemId', -1) val = getUserItem(userId, gameId, kindId, userBag) mo.setResult('item', val) elif action == 'getUserItemList': result = getUserItemList(userId, gameId, userBag) mo.setResult('item', result) elif action == 'addUserItem': kindId = msg.getParam('itemId', -1) count = msg.getParam('count', -1) eventId = msg.getParam('eventId', -1) eventId = eventIdToString(eventId) ftlog.debug('addUserItem itemId=', kindId, 'count=', count, 'eventId=', eventId) val = addUserItem(userId, gameId, kindId, count, eventId, userBag) mo.setResult('item', val) elif action == 'addUserItems': pass elif action == 'consumeUserItem': kindId = msg.getParam('itemId', -1) count = msg.getParam('count', -1) eventId = msg.getParam('eventId', -1) eventId = eventIdToString(eventId) ftlog.debug('consumeUserItem itemId=', kindId, 'count=', count, 'eventId=', eventId) val = consumeUserItem(userId, gameId, kindId, count, eventId, userBag) mo.setResult('item', val) elif action == 'useUserItem': kindId = msg.getParam('itemId', -1) val = useUserItem(userId, gameId, kindId, userBag) mo.setResult('item', val) elif action == 'updateTimingUserItems': isDayFirst = msg.getParam('isDayFirst', False) val = updateTimingUserItems(userId, gameId, isDayFirst, userBag) mo.setResult('item', val) elif action == 'loadUserDecroation': val = loadUserDecroation(userId, gameId, userBag) mo.setResult('item', val) else: ftlog.error('doOldRemoteCallNew unknown rpc action action=', action, 'gameId=', gameId, 'userId=', userId) ftlog.debug('doOldRemoteCallNew->mo=', mo._ht) mo.setResult('code', 0) return mo._ht except TYItemException: mo = MsgPack() mo.setResult('code', -1) return mo._ht except: ftlog.error() mo = MsgPack() mo.setResult('code', -1) return mo._ht