Exemplo n.º 1
0
        // ------------------------------------------------------------------------------------
        public MainForm()
        {
            InitializeComponent();

            // リソース節約のためのコード
            ms_meiryo_Ke_P_9pt = new Font("MeiryoKe_PGothic", 9F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(128)));

            m_Btn_connect.Font     = ms_meiryo_Ke_P_9pt;
            m_Btn_postMsg.Font     = ms_meiryo_Ke_P_9pt;
            m_Btn_Chg_RmLimit.Font = ms_meiryo_Ke_P_9pt;
            m_Btn_timer_JSON.Font  = ms_meiryo_Ke_P_9pt;

            m_TBox_PostMsg.Font      = ms_meiryo_Ke_P_9pt;
            m_Lbl_timer_elapsed.Font = ms_meiryo_Ke_P_9pt;
            label1.Font = ms_meiryo_Ke_P_9pt;

            m_btn_test_1.Font = ms_meiryo_Ke_P_9pt;
            m_btn_test_2.Font = ms_meiryo_Ke_P_9pt;
            m_btn_test_3.Font = ms_meiryo_Ke_P_9pt;

            ms_meiryo_Ke_P_8pt = new Font("MeiryoKe_PGothic", 8.25F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(128)));

            m_TBox_uname.Font    = ms_meiryo_Ke_P_8pt;
            m_TBox_roomname.Font = ms_meiryo_Ke_P_8pt;
            label2.Font          = ms_meiryo_Ke_P_8pt;
            label3.Font          = ms_meiryo_Ke_P_8pt;
            label4.Font          = ms_meiryo_Ke_P_8pt;

            ms_meiryo_8pt = new Font("メイリオ", 8.25F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(128)));

            m_RBox_usrMsg.Font = ms_meiryo_8pt;
            m_RBox_status.Font = ms_meiryo_8pt;

            m_CmbBox_str_icon.Font = ms_meiryo_8pt;

            // --------------------------------------------

            m_Timer_getJSON                     = new System.Timers.Timer(m_timer_interval_msec);
            m_Timer_getJSON.Elapsed            += OnTimer_GetJSON;
            m_Timer_getJSON.AutoReset           = true;
            m_Timer_getJSON.SynchronizingObject = this;

/*
 *                      m_Timer_delayBAN = new System.Timers.Timer(MSEC_timer_intvl_delayBAN);
 *                      m_Timer_delayBAN.Elapsed += OnTimer_delayBAN;
 *                      m_Timer_delayBAN.AutoReset = true;
 *                      m_Timer_delayBAN.SynchronizingObject = this;
 */
            ms_RBox_status = m_RBox_status;
            m_RBox_status.SelectionTabs  = new int[] { 30 };
            m_RBox_status.LanguageOption = RichTextBoxLanguageOptions.UIFonts;              // 行間を狭くする

            ms_RBox_usrMsg = m_RBox_usrMsg;
            ms_RBox_usrMsg.SelectionTabs  = new int[] { 30 };
            ms_RBox_usrMsg.LanguageOption = RichTextBoxLanguageOptions.UIFonts;              // 行間を狭くする

            // BanCtrl を生成
            BanCtrls_Ctrlr.Init();
            // BanCtrl の GUI を生成
            this.Create_BanCtrls_GUI();

            // encip の記録ファイルを読み込む
            DB_static.Load_fromFile();

            MainForm.WriteStatus("--- 起動しました\r\n");
        }
Exemplo n.º 2
0
        // GetJSON() の後にコールされる
        void Update_BanCtrls()
        {
            int     c_num_on_room = Math.Min(NUM_Btn_BAN, UInfo_onRoom.msa_uinfo.Count);
            BanCtrl ban_ctrl      = BanCtrls_Ctrlr.ms_BanCtrl_top;

            for (int idx = 0; idx < c_num_on_room; idx++)
            {
                UInfo       uinfo        = UInfo_onRoom.msa_uinfo[idx];
                BanCtrl_GUI ban_ctrl_GUI = msa_BanCtrl_GUIs[idx];

                // uinfo、ban_ctrl、ban_ctrl_GUI の3つを lead_id_this_session を軸として結びつけていく
                int lead_id_this_session = uinfo.m_id_this_session;

                if (ban_ctrl_GUI.m_id_this_session != lead_id_this_session)
                {
                    ban_ctrl = BanCtrls_Ctrlr.Update_RoomUsr(ban_ctrl, lead_id_this_session, ban_ctrl_GUI, uinfo);
                    ban_ctrl_GUI.m_id_this_session = lead_id_this_session;
                    ban_ctrl_GUI.m_ban_ctrl        = ban_ctrl;
                }

                if (ban_ctrl.mb_Rgst_ban && ban_ctrl.mb_Exec_Ban == false)
                {
                    ma_btn_idx_to_ban[m_tmnt_btn_idx_to_ban] = idx;
                    m_tmnt_btn_idx_to_ban++;
                }
                ban_ctrl = ban_ctrl.m_next;
            }

            int idx_tmnt;

            {
                int idx_eusr = ExitEip_onTalks.msa_encip_on_talks.Count;
                idx_tmnt = Math.Min(NUM_Btn_BAN, c_num_on_room + idx_eusr);
                idx_eusr--;                  // eusr は、後方から処理をしていく(時間的順序を考慮)

                for (int idx_GUI = c_num_on_room; idx_GUI < idx_tmnt; idx_eusr--, idx_GUI++)
                {
                    BanCtrl_GUI ban_ctrl_GUI = msa_BanCtrl_GUIs[idx_GUI];

                    // exit_user、ban_ctrl、ban_ctrl_GUI の3つを lead_id_this_session を軸として結びつけていく
                    int lead_id_this_session = ExitEip_onTalks.msa_id_this_session[idx_eusr];

                    if (ban_ctrl_GUI.m_id_this_session != lead_id_this_session)
                    {
                        ban_ctrl = BanCtrls_Ctrlr.Update_ExitUsr(ban_ctrl, lead_id_this_session, ban_ctrl_GUI, idx_eusr);

                        ban_ctrl_GUI.m_id_this_session = lead_id_this_session;
                        ban_ctrl_GUI.m_ban_ctrl        = ban_ctrl;
                    }
                    ban_ctrl = ban_ctrl.m_next;
                }
            }

            // 非使用の ban_ctrl_GUI の id_this_session をクリア
            for (int idx_GUI = idx_tmnt; idx_GUI < NUM_Btn_BAN; idx_GUI++)
            {
                BanCtrl_GUI ban_ctrl_GUI = msa_BanCtrl_GUIs[idx_GUI];
                if (ban_ctrl_GUI.m_id_this_session == 0)
                {
                    break;
                }

                ban_ctrl_GUI.m_Btn_AI_talk.Text    = "---";
                ban_ctrl_GUI.m_Btn_AI_talk.Enabled = false;

                ban_ctrl_GUI.m_Btn_ban.Text    = " ---";
                ban_ctrl_GUI.m_Btn_ban.Enabled = false;

                ban_ctrl_GUI.m_TBox_info.Visible = false;
                ban_ctrl_GUI.m_id_this_session   = 0;
            }

            // 非使用の ban_ctrl の id_this_session をクリア
            while (ban_ctrl != null)
            {
                if (ban_ctrl.m_id_this_session == 0)
                {
                    break;
                }

                ban_ctrl.m_id_this_session = 0;
                ban_ctrl = ban_ctrl.m_next;
            }

            // BanCtrl の表示更新を終えたタイミングで、即時 BAN 対象者がいたら BAN を実行する
            for (int i = 0; i < m_tmnt_btn_idx_to_ban; i++)
            {
                msa_BanCtrl_GUIs[ma_btn_idx_to_ban[i]].m_ban_ctrl.OnClk_Btn_BAN();
            }
            m_tmnt_btn_idx_to_ban = 0;

            // AI_talk 対応ユーザがいたら、AI_talk に対応させる
            if (DB_cur.msb_to_appear_AI_talk)
            {
                AI_talk.Talk_toTgt();
                DB_cur.msb_to_appear_AI_talk = false;
            }
        }