示例#1
0
    def callTarget(self, targetKey, *args, **kw):
        target = self.getTarget(targetKey)
        if not target:
            logger.error('command %s not Found on service' % str(targetKey))
            print self._targets
            return None
        # if targetKey not in self.unDisplay:
        #     logger.info("call method %s on service[%s]" %
        #                 (target.__name__, self._name))

        t = time.time()
        try:
            dynamic_id = args[0]
            # logger.debug('key and dynamic_id,%s,%s', dynamic_id, targetKey)
            if targetKey != 'enter_scene_remote':
                _player = PlayersManager().get_player_by_dynamic_id(dynamic_id)
                # print 'find player:', _player
                if not _player:
                    return {'result': False, 'result_no': 1, 'message': u''}
                args = args[1:]
                kw['player'] = _player
                response = target(*args, **kw)
            else:
                response = target(*args, **kw)

        except Exception, e:
            logger.exception(e)
            return None
示例#2
0
def pvp_award_tick():
    tick_time = game_configs.base_config.get('arena_shorttime_points_time')
    reactor.callLater(tick_time, pvp_award_tick)
    try:
        pvp_award()
    except Exception, e:
        logger.exception(e)
示例#3
0
def pvp_award_tick():
    tick_time = game_configs.base_config.get('arena_shorttime_points_time')
    reactor.callLater(tick_time, pvp_award_tick)
    try:
        pvp_award()
    except Exception, e:
        logger.exception(e)
示例#4
0
    def callTarget(self, targetKey, *args, **kw):
        target = self.getTarget(targetKey)
        logger.info("call method begin %s on service[%s]",
                    target.__name__, self._name)
        if not target:
            print 'targetKey', targetKey
            logger.error('command %s not Found on service' % str(targetKey))
            return None
        # if targetKey not in self.unDisplay:
        #     logger.info("call method %s on service[%s]" %
        #                 (target.__name__, self._name))

        t = time.time()
        dynamic_id = args[0]
        try:
            #logger.debug('key and dynamic_id,%s,%s', dynamic_id, targetKey)

            if targetKey != 'enter_scene_remote':
                _player = PlayersManager().get_player_by_dynamic_id(dynamic_id)
                # print 'find player:', _player
                if not _player:
                    logger.error('cantfind player dynamic id:%s', dynamic_id)
                    return {'result': False, 'result_no': 1, 'message': u''}
                args = args[1:]
                kw['player'] = _player
                response = target(*args, **kw)
            else:
                response = target(*args, **kw)

        except AuthError, e:
            logger.exception(e)
            remote_gate.disconnect_remote(dynamic_id)
            return None
示例#5
0
 def __write_data(self, connection, topic_id, msg):
     # connection_id = connection.dynamic_id
     try:
         connection.safeToWriteData(topic_id, msg)
     except Exception, e:
         logger.exception(e)
         e = "%s, %s:%s" % (e, topic_id, msg)
         logger.error(e)
示例#6
0
def getAllPkByFkInDB(tablename, pkname, prere, conn=None):
    """根据所有的外键获取主键ID
    """
    prere = FormatCondition(prere)
    sql = """Select `%s` from `%s` where %s""" % (pkname, tablename, prere)
    cursor = conn.cursor()
    try:
        cursor.execute(sql)
    except Exception, e:
        logger.exception(e)
        logger.error(sql)
示例#7
0
def getAllPkByFkInDB(tablename, pkname, prere, conn=None):
    """根据所有的外键获取主键ID
    """
    prere = FormatCondition(prere)
    sql = """Select `%s` from `%s` where %s""" % (pkname, tablename, prere)
    cursor = conn.cursor()
    try:
        cursor.execute(sql)
    except Exception, e:
        logger.exception(e)
        logger.error(sql)
示例#8
0
def UpdateWithDict(tablename, props, prere, conn=None):
    """更新记录
    """
    sql = forEachUpdateProps(tablename, props, prere)
    cursor = conn.cursor()
    count = 0
    try:
        count = cursor.execute(sql)
        conn.commit()
    except Exception, e:
        logger.exception(e)
        logger.error(sql)
示例#9
0
def GetSomeRecordInfo(tablename, preres, props=None, conn=None):
    """获取单条数据的信息"""
    if props:
        caret = ','
        props_format = caret.join(str(_) for _ in props)
        sql = """Select %s from `%s` where %s""" % (props_format, tablename, preres)
    else:
        sql = """Select * from `%s` where %s""" % (tablename, preres)
    cursor = conn.cursor(cursor=DictCursor)
    try:
        cursor.execute(sql)
    except Exception, e:
        logger.exception(e)
        logger.error(sql)
示例#10
0
def GetSomeRecordInfo(tablename, preres, props=None, conn=None):
    """获取单条数据的信息"""
    if props:
        caret = ','
        props_format = caret.join(str(_) for _ in props)
        sql = """Select %s from `%s` where %s""" % (props_format, tablename, preres)
    else:
        sql = """Select * from `%s` where %s""" % (tablename, preres)
    cursor = conn.cursor(cursor=DictCursor)
    try:
        cursor.execute(sql)
    except Exception, e:
        logger.exception(e)
        logger.error(sql)
示例#11
0
def UpdateWithDict(tablename, props, prere, conn=None):
    """更新记录
    """
    sql = forEachUpdateProps(tablename, props, prere)
    cursor = conn.cursor()
    count = 0
    try:
        count = cursor.execute(sql)
        conn.commit()
    except Exception, e:
        logger.exception(e)
        logger.error(sql)
        cursor.close()
        return False
示例#12
0
def InsertIntoDB(tablename, data, conn=None):
    """写入数据库
    """
    for _ in data.values():
        if _ == 'None':
            raise Exception('None value')
    sql = forEachPlusInsertProps(tablename, data)
    cursor = conn.cursor()
    count = 0
    try:
        count = cursor.execute(sql)
        conn.commit()
    except Exception, e:
        logger.exception(e)
        logger.error(sql)
示例#13
0
def InsertIntoDB(tablename, data, conn=None):
    """写入数据库
    """
    for _ in data.values():
        if _ == 'None':
            raise Exception('None value')
    sql = forEachPlusInsertProps(tablename, data)
    cursor = conn.cursor()
    count = 0
    try:
        count = cursor.execute(sql)
        conn.commit()
    except Exception, e:
        logger.exception(e)
        logger.error(sql)
示例#14
0
def DeleteFromDB(tablename, props=None, conn=None):
    """从数据库中删除"""
    if props:
        prers = FormatCondition(props)
        sql = """DELETE FROM %s WHERE %s ;""" % (tablename, prers)
    else:
        sql = """DELETE FROM %s ;""" % tablename
    cursor = conn.cursor()
    count = 0
    try:
        count = cursor.execute(sql)
        conn.commit()
    except Exception, e:
        logger.exception(e)
        logger.error(sql)
示例#15
0
def DeleteFromDB(tablename, props=None, conn=None):
    """从数据库中删除"""
    if props:
        prers = FormatCondition(props)
        sql = """DELETE FROM %s WHERE %s ;""" % (tablename, prers)
    else:
        sql = """DELETE FROM %s ;""" % tablename
    cursor = conn.cursor()
    count = 0
    try:
        count = cursor.execute(sql)
        conn.commit()
    except Exception, e:
        logger.exception(e)
        logger.error(sql)
示例#16
0
 def get_drop_items(self):
     """获取大包内物品"""
     drop_items = []
     try:
         for small_bag_id, small_bag_times, is_uniq in \
                 zip(self.big_bag.small_packages, self.big_bag.small_package_times, self.big_bag.is_uniq_list):
             small_bag = SmallBag(small_bag_id)
             items = small_bag.get_drop_items()
             if is_uniq:
                 ids = random_multi_pick_without_repeat(items, small_bag_times)
             else:
                 ids = random_multi_pick(items, small_bag_times)
             for drop_id in ids:
                 drop_items.append(small_bag.get_drop_item(drop_id))
     except Exception, e:
         logger.exception(e)
示例#17
0
    def _run(self):
        """
        """
        self.connectionMade()
        try:
            while True:
                data = self.transport.recv(1024)
                if not data:
                    break


#                 gevent.spawn(self.dataReceived,data)
                self.dataReceived(data)
        except Exception, e:
            if not isinstance(e, socket.error):
                logger.exception(e)
            self.connectionLost(reason=e)
示例#18
0
 def get_drop_items(self):
     """获取大包内物品"""
     drop_items = []
     try:
         for small_bag_id, small_bag_times, is_uniq in \
                 zip(self.big_bag.small_packages, self.big_bag.small_package_times, self.big_bag.is_uniq_list):
             small_bag = SmallBag(small_bag_id)
             items = small_bag.get_drop_items()
             if is_uniq:
                 ids = random_multi_pick_without_repeat(
                     items, small_bag_times)
             else:
                 ids = random_multi_pick(items, small_bag_times)
             for drop_id in ids:
                 drop_items.append(small_bag.get_drop_item(drop_id))
     except Exception, e:
         logger.exception(e)
示例#19
0
    def __write_data(self, connection_id, topic_id, msg):
        connection = self.getConnectionByID(connection_id)
        if not connection:
            connection = self._queue_conns.get(connection_id, None)

        if not connection:
            return

        try:
            connection.safeToWriteData(topic_id, msg)
        except Exception, e:
            e = "%s, %s:%s" % (e, topic_id, msg)
            logger.exception(e)
            self.dropConnectionByID(connection_id)
            dynamic_id = connection.transport.sessionno
            if dynamic_id != 0:
                remote_gate = GlobalObject().remote['gate']
                remote_gate.net_conn_lost_remote_noresult(dynamic_id)
示例#20
0
 def callTarget(self, target_key, *args, **kw):
     """call Target by Single
     @param conn: client connection
     @param target_key: target ID
     @param data: client data
     """
     target = self.getTarget(target_key)
     if not target:
         logger.error('the command %s not Found on service:[%s]' % (target_key, self._name))
         return None
     # if target_key not in self.unDisplay:
     #     logger.info("call method %s on service:[%s]" % (target.__name__, self._name))
     t = time.time()
     try:
         response = target(target_key, *args, **kw)
     except Exception, e:
         logger.exception(e)
         return None
示例#21
0
 def callTarget(self, targetKey, *args, **kw):
     """call Target
     @param conn: client connection
     @param targetKey: target ID
     @param data: client data
     """
     target = self.getTarget(targetKey)
     if not target:
         logger.error('command %s not Found on service' % str(targetKey))
         return None
     # if targetKey not in self.unDisplay:
     #     logger.info("call method %s on service[%s]" %
     #                 (target.__name__, self._name))
     t = time.time()
     try:
         response = target(*args, **kw)
     except Exception, e:
         logger.exception(e)
         return None
示例#22
0
def do_pvp_daily_award_tick():
    # reactor.callLater(60*60*24, do_pvp_daily_award_tick)
    try:
        pvp_daily_award()
    except Exception, e:
        logger.exception(e)
示例#23
0
def do_pvp_daily_award_tick():
    # reactor.callLater(60*60*24, do_pvp_daily_award_tick)
    try:
        pvp_daily_award()
    except Exception, e:
        logger.exception(e)