Ejemplo n.º 1
0
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