Esempio n. 1
0
    /// <summary>
    /// 从库中读完数据后(做数据的补充解析)(onNewCreate后也会调用一次)(主线程)
    /// </summary>
    public override void afterReadData()
    {
        // if(!ShineSetting.isOfficial)
        // {
        //  GameC.clientGm.setServerCmdSet(_d.gmCommandSet);
        // }

        if (isOnline())
        {
            DateControl.setCurrentTime(_d.serverTime);

            if (CommonSetting.useOfflineGame)
            {
                GameC.offline.getExData().serverOffTime = DateControl.getOffTime();
            }
        }
        else
        {
            if (CommonSetting.useOfflineGame)
            {
                DateControl.setOffTime(GameC.offline.getExData().serverOffTime);
            }
        }

        refreshGMType(_d.gmType);
    }
Esempio n. 2
0
    /// <summary>
    /// 设置服务器时间
    /// </summary>
    public void serServerTime(long serveTime)
    {
        _d.serverTime = serveTime;
        DateControl.setCurrentTime(serveTime);

        me.dispatch(GameEventType.RefreshServerOffTime);
    }
Esempio n. 3
0
        public static void initDataBase()
        {
            //在数据库中创建表,每一周的数据保存在一个表中
            string tableName = ConstYXYH.TABLE_NAME_PREFIX + DateControl.GetYearWeek(DateTime.Now);

            if (tableName != ConstYXYH.CurrentTable)
            {
                CreateTable(tableName);
            }
        }
Esempio n. 4
0
    public override void onNewCreate()
    {
        long time = me.getTimeMillis();

        _d.loginDate     = time;
        _d.logoutDate    = time;
        _d.nextDailyTime = DateControl.getNextDailyTime();

        _d.clientRandomSeedIndex = 0;
        _d.clientRandomSeeds     = ObjectUtils.EmptyIntArr;
    }
Esempio n. 5
0
    /** 创建ActionLog信息 */
    protected LogInfo createActionLogInfo(String type)
    {
        LogInfo info = new LogInfo("action");

        //当前区ID
        info.put("areaID", GameC.main.areaID);
        //unix时间戳
        info.put("time", DateControl.getTimeMillis());
        //类型
        info.put("action", "type");

        return(info);
    }
Esempio n. 6
0
    /// <summary>
    /// 检查是否到了每天间隔
    /// </summary>
    public void checkDaily()
    {
        if (me.getTimeMillis() >= _d.nextDailyTime)
        {
            long nextDailyTimeT = DateControl.getNextDailyTime();

            if (_d.nextDailyTime != nextDailyTimeT)
            {
                _d.nextDailyTime = nextDailyTimeT;

                //每天调用
                me.onDaily();
            }
        }
    }
Esempio n. 7
0
    /** 每秒间隔 */
    public virtual void onSecond(int delay)
    {
        if (!_d.applyDic.isEmpty())
        {
            long tt = DateControl.getTimeMillis() - _config.applyEnableTime * 1000;

            foreach (PlayerApplyRoleGroupData v in _d.applyDic)
            {
                if (tt > v.time)
                {
                    _d.applyDic.remove(v.data.showData.playerID);
                }
            }
        }
    }
Esempio n. 8
0
    /** 添加离线事务 */
    public void addOfflineWork(ClientOfflineWorkData data)
    {
        data.workIndex = ++_currentIndex;
        data.workTime  = DateControl.getTimeMillis();

        ThreadControl.addAssistFunc(() =>
        {
            _offlineWorkListData.index = data.workIndex;
            _offlineWorkListData.list.add(data);
        });

        //当前在线
        if (GameC.player.system.isOnline())
        {
            SendClientOfflineWorkRequest.create(data).send();
        }
    }