コード例 #1
0
    private void Start()
    {
        myScript = transform.parent.parent.GetComponent <CPlayerCtrl>();
        hitBoxes = transform.gameObject.GetComponentsInChildren <ColliderInfo>();

        for (int i = 0; i < hitBoxes.Length; i++)
        {
            hitBoxes[i].myScript = this.myScript;
        }
    }
コード例 #2
0
        public void SendWarReward(string name, WarRewordConf conf)
        {
            uint xbCount1 = conf.count1;
            uint xbCount2 = conf.count2;
            uint xbCount3 = conf.count3;
            uint xbCount4 = conf.count4;
            uint xbCount5 = conf.count5;
            uint xbId1    = conf.id1;
            uint xbId2    = conf.id2;
            uint xbId3    = conf.id3;
            uint xbId4    = conf.id4;
            uint xbId5    = conf.id5;

            if (xbId1 == 0)
            {
                xbId1    = 1;
                xbCount1 = 0;
            }
            if (xbId2 == 0)
            {
                xbId2    = 1;
                xbCount2 = 0;
            }
            if (xbId3 == 0)
            {
                xbId3    = 1;
                xbCount3 = 0;
            }
            if (xbId4 == 0)
            {
                xbId4    = 1;
                xbCount4 = 0;
            }
            if (xbId5 == 0)
            {
                xbId5    = 1;
                xbCount5 = 0;
            }
            string cmd = "INSERT INTO " + "sanvt_hcsg" + @".dbo.vitem (Account,Disable,Card,Login_time,Get_time,SName,CharName,Type,"
                         + "DataID1,Number1,DataID2,Number2,DataID3,Number3,DataID4,Number4,DataID5,Number5)"
                         + "values ('" + CPlayerCtrl.GetAccByName(name) + "',0,CONVERT(varchar(100), GETDATE(), 21),getdate(),getdate(),0,0,0,"
                         + xbId1 + "," + xbCount1 + "," + xbId2 + "," + xbCount2 + "," + xbId3 + "," + xbCount3 + "," + xbId4 + "," + xbCount4 + "," + xbId5 + "," + xbCount5 + ")";
            string ret = CSGHelper.SqlCommand(cmd);
        }
コード例 #3
0
ファイル: WarHandle.cs プロジェクト: napatkung/qysg
        public void SendWarReward(string name, WarRewordConf conf)
        {
            uint xbCount1 = conf.count1;
            uint xbCount2 = conf.count2;
            uint xbCount3 = conf.count3;
            uint xbCount4 = conf.count4;
            uint xbCount5 = conf.count5;
            uint xbId1    = conf.id1;
            uint xbId2    = conf.id2;
            uint xbId3    = conf.id3;
            uint xbId4    = conf.id4;
            uint xbId5    = conf.id5;

            if (xbId1 == 0)
            {
                xbId1    = 1;
                xbCount1 = 0;
            }
            if (xbId2 == 0)
            {
                xbId2    = 1;
                xbCount2 = 0;
            }
            if (xbId3 == 0)
            {
                xbId3    = 1;
                xbCount3 = 0;
            }
            if (xbId4 == 0)
            {
                xbId4    = 1;
                xbCount4 = 0;
            }
            if (xbId5 == 0)
            {
                xbId5    = 1;
                xbCount5 = 0;
            }

            CSGHelper.InsertSanvtItem(CPlayerCtrl.GetAccByName(name)
                                      , (uint)xbId1, (uint)xbCount1, (uint)xbId2, (uint)xbCount2, (uint)xbId3, (uint)xbCount3
                                      , (uint)xbId4, (uint)xbCount4, (uint)xbId5, (uint)xbCount5);
        }
コード例 #4
0
    public float groundCollisionMass = 1; //캐릭터 사이 콜라이더 질량

    private void Start()
    {
        myScript = transform.parent.parent.gameObject.GetComponent <CPlayerCtrl>();
        boxes    = transform.gameObject.GetComponentsInChildren <ColliderInfo>();

        for (int i = 0; i < boxes.Length; i++)
        {
            boxes[i].myScript = this.myScript;
        }

        if (myScript.mirror == -1)
        {
            moveMirror = -1;
        }
        else
        {
            moveMirror = 1;
        }
    }
コード例 #5
0
    //private MoveSetScript myMoveSetScript;

    public void Start()
    {
        myControlsScript = GetComponent <CPlayerCtrl>();

        if (myControlsScript.myCharacterInfo == null)
        {
            myControlsScript.myCharacterInfo = GetComponent <CCharacterInfo>();
        }

        appliedGravity = myControlsScript.myCharacterInfo.physics.weight * CSceneManager.Instance.gravity;

        groundLayer = LayerMask.NameToLayer("Floor");
        groundMask  = 1 << groundLayer;

        horizontalForce = 0;

        gravity_      = 0.42f;
        airHitGravity = 0.37f;
    }
コード例 #6
0
 //初期化関数
 void Awake()
 {
     mPlayer = GameObject.FindGameObjectWithTag("Player").GetComponent<CPlayerCtrl>();
 }
コード例 #7
0
ファイル: SGExHandle.cs プロジェクト: napatkung/qysg
        private void Game_QA_Thread(object obj)
        {
            while (true)
            {
                if (!m_QAStop)
                {
                    //check time
                    if (IsTaskTime())
                    {
                        answerResult.Clear();
                        while (m_QACount < m_MaxQuesNum)
                        {
                            if (m_QACount == 0)
                            {
                                SendWorldWords("三国知识竞答即将开始!请各位玩家做好答题准备,找个安静的地图或者关闭不需要的频道");
                                Thread.Sleep(10 * 1000);
                                SendWorldWords("最先给出正确答案者获得积分,答题需在军团或者军团互通中,发送且仅发送正确选项,否则答题将会被认为无效而过滤。");
                                Thread.Sleep(20 * 1000);
                                SendWorldWords("答题开始!");
                                Thread.Sleep(2 * 1000);
                            }
                            SingleAQHandle(1, m_PlayerDat);
                        }

                        //遍历参与者列表排名
                        answerResult.Sort(new Comparison <AnswerResult_S>(AnswerResultCompare));
                        if (answerResult.Count <= 0)
                        {
                            string msg = "很遗憾,本次答题无人优胜!";
                            LogHelper.WriteLog(DateTime.Now.ToString("yyyy-MM-dd") + @"答题日志.txt", msg);
                            SendWorldWords(msg);
                        }
                        else
                        {
                            int num = 0;
                            List <AnswerResult_S> ff  = new List <AnswerResult_S>();
                            AnswerResult_S        tmp = new AnswerResult_S();
                            tmp.score = 0;
                            for (int i = 0; i < answerResult.Count; i++)
                            {
                                if (tmp.score == answerResult[i].score)
                                {
                                    tmp.name   += "," + answerResult[i].name;
                                    ff[num - 1] = tmp;
                                }
                                else
                                {
                                    tmp = answerResult[i];
                                    ff.Add(tmp);
                                    num++;
                                }
                            }

                            int best = ff.Count > 3 ? 3 : ff.Count;
                            for (int i = 0; i < best; i++)
                            {
                                string msg = "第" + (i + 1) + "名 总得分:" + ff[i].score + " 玩家 " + ff[i].name + "。";
                                LogHelper.WriteLog(DateTime.Now.ToString("yyyy-MM-dd") + @"答题日志.txt", msg);

                                //公告
                                SendWorldWords(msg);
                            }
                            for (int i = 0; i < best; i++)
                            {
                                //发放虚宝
                                CPlayerCtrl.PlayersAttrListClear();
                                CPlayerCtrl.LoadPlayerInfos(m_PlayerDat, true);
                                var players = ff[i].name.Split(',');
                                foreach (var player in players)
                                {
                                    if (!string.IsNullOrEmpty(player))
                                    {
                                        string account = CPlayerCtrl.GetAccByName(player);
                                        if (m_TaskRewardString.Count > 0)
                                        {
                                            int      vtid1    = 0;
                                            int      vtid2    = 0;
                                            int      vtid3    = 0;
                                            int      vtid4    = 0;
                                            int      vtid5    = 0;
                                            int      vtcount1 = 0;
                                            int      vtcount2 = 0;
                                            int      vtcount3 = 0;
                                            int      vtcount4 = 0;
                                            int      vtcount5 = 0;
                                            string[] rewards  = m_TaskRewardString[i].Split(';'); //1,木剑,1
                                            for (int ii = 0; ii <= rewards.Length; ii++)
                                            {
                                                var detials = rewards[ii].Split(',');
                                                if (ii == 0)
                                                {
                                                    vtid1    = int.Parse(detials[0]);
                                                    vtcount1 = int.Parse(detials[2]);
                                                }
                                                else if (ii == 1)
                                                {
                                                    vtid2    = int.Parse(detials[0]);
                                                    vtcount2 = int.Parse(detials[2]);
                                                }
                                                else if (ii == 2)
                                                {
                                                    vtid3    = int.Parse(detials[0]);
                                                    vtcount3 = int.Parse(detials[2]);
                                                }
                                                else if (ii == 3)
                                                {
                                                    vtid4    = int.Parse(detials[0]);
                                                    vtcount4 = int.Parse(detials[2]);
                                                }
                                                else if (ii == 4)
                                                {
                                                    vtid5    = int.Parse(detials[0]);
                                                    vtcount5 = int.Parse(detials[2]);
                                                }
                                            }

                                            if (vtid1 != 0 || vtid2 != 0 || vtid3 != 0 || vtid4 != 0 || vtid5 != 0)
                                            {
                                                bool vtret = CSGHelper.InsertSanvtItem(account
                                                                                       , (uint)vtid1, (uint)vtcount1, (uint)vtid2, (uint)vtcount2, (uint)vtid3, (uint)vtcount3, (uint)vtid4, (uint)vtcount4, (uint)vtid5, (uint)vtcount5);
                                                if (vtret)
                                                {
                                                    string answerEx = "角色:" + player + " 答题奖励已经发放,请注意查收(虚宝)!";
                                                    //日志
                                                    LogHelper.WriteLog(DateTime.Now.ToString("yyyy-MM-dd") + "答题日志.txt", answerEx);
                                                }
                                            }
                                        }
                                        else
                                        {
                                            //发放虚宝
                                            bool vtret = CSGHelper.InsertSanvtItem(account, (uint)m_AnswerVtId, 1, 0, 0, 0, 0, 0, 0, 0, 0);
                                            if (vtret)
                                            {
                                                string answerEx = "角色:" + player + " 答题奖励已经发放,请注意查收(虚宝)!";
                                                //日志
                                                LogHelper.WriteLog(DateTime.Now.ToString("yyyy-MM-dd") + "答题日志.txt", answerEx);
                                            }
                                        }
                                    }
                                }
                            }
                            //公告
                            SendWorldWords("排名奖励已经发放,请注意查收(虚宝)!");

                            answerResult.Clear();
                        }
                    }
                    else
                    {
                        if (m_SleepCount >= m_AskNormalInterval)//60 *
                        {
                            m_SleepCount = 0;
                            SingleAQHandle(0, m_PlayerDat);
                        }
                        Thread.Sleep(1000);
                        m_SleepCount++;
                    }
                }
                else
                {
                    m_QAARE.WaitOne();
                }
            }
        }
コード例 #8
0
ファイル: SGExHandle.cs プロジェクト: napatkung/qysg
        private bool SingleAQHandle(int flag, string player_dat)
        {
            long            tick = DateTime.Now.Ticks;
            Random          ran  = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32));
            List <BankItem> list = bankHandle.GetBankItemList();

            int n = ran.Next(0, bankHandle.GetBankItemCount());

            BankItem item;
            bool     ret = bankHandle.GetItem(n, out item);

            string tmp      = "";
            string nextQues = "";

            if (flag == 0)//普通
            {
                tmp      = "在线问答题:";
                nextQues = " 约" + m_AskNormalInterval / 60 + "分钟后开始下一题,请关注公屏提问!";
            }
            else //系列
            {
                m_QACount++;
                tmp      = "第" + m_QACount + "题:";
                nextQues = " 十秒后开始下一题,请做好准备!";
            }

            string t_start, t_end;

            SendWorldWords(tmp + item.question);
            //记录发题时间 //2017-01-02 13:01:47.000 System.DateTime.Now.ToString("f"); //2008-4-24 16:30:15
            t_start = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            Thread.Sleep(m_QuesInterval * 1000);
            //记录结尾时间
            t_end = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            //查询数据库
            List <LogSearch> logList = CSGHelper.SearchLogMsg(item.answer, t_start, t_end);

            string answerEx = "";

            if (logList.Count > 0)
            {
                LogSearch firtItem = logList[0];
                answerEx = "恭喜 " + firtItem.name + " 抢答成功";

                if (flag == 0)
                {
                    CPlayerCtrl.PlayersAttrListClear();
                    CPlayerCtrl.LoadPlayerInfos(player_dat, true);
                    string account = CPlayerCtrl.GetAccByName(firtItem.name);
                    //发放虚宝

                    if (m_NormalRewardItems.Count() > 0)
                    {
                        int    rewardIdex   = ran.Next(0, m_NormalRewardItems.Count());
                        int    AnswerVtId   = int.Parse(m_NormalRewardItems[rewardIdex].id);
                        string AnswerVtName = m_NormalRewardItems[rewardIdex].name;
                        bool   vtret        = CSGHelper.InsertSanvtItem(account, (uint)AnswerVtId, 1, 0, 0, 0, 0, 0, 0, 0, 0);
                        if (vtret)
                        {
                            answerEx += " 答题奖励 " + AnswerVtName + " 已经发放,请注意查收(虚宝)!";
                        }
                        //日志
                        LogHelper.WriteLog(DateTime.Now.ToString("yyyy-MM-dd") + "答题日志.txt", answerEx);
                    }
                    else
                    {
                        int    AnswerVtId   = m_AnswerVtId;
                        string AnswerVtName = m_AnswerVtName;
                        bool   vtret        = CSGHelper.InsertSanvtItem(account, (uint)AnswerVtId, 1, 0, 0, 0, 0, 0, 0, 0, 0);
                        if (vtret)
                        {
                            answerEx += " 答题奖励 " + AnswerVtName + " 已经发放,请注意查收(虚宝)!";
                        }
                        //日志
                        LogHelper.WriteLog(DateTime.Now.ToString("yyyy-MM-dd") + "答题日志.txt", answerEx);
                    }
                }
                else
                {
                    //日志
                    LogHelper.WriteLog(DateTime.Now.ToString("yyyy-MM-dd") + "答题日志.txt", answerEx);

                    //遍历参与者列表
                    AnswerResult_S newNode;
                    bool           found = false;

                    for (int i = 0; i < answerResult.Count; i++)
                    {
                        if (answerResult[i].name == firtItem.name)
                        {
                            newNode = answerResult[i];
                            newNode.score++;
                            answerResult[i] = newNode;
                            found           = true;
                            break;
                        }
                    }
                    if (!found)//未找到
                    {
                        //add
                        newNode.name  = firtItem.name;
                        newNode.score = 1;
                        answerResult.Add(newNode);
                    }
                }
            }
            else
            {
                answerEx = "很遗憾,无人能正确答对此题";
            }

            SendWorldWords("答案是:" + item.answer + " " + answerEx + nextQues);
            Thread.Sleep(10 * 1000);

            return(true);
        }
コード例 #9
0
ファイル: SGDataPlus.cs プロジェクト: napatkung/qysg
        private void btn_SavePlus_Click(object sender, EventArgs e)
        {
            //保证数据库已经连接
            if (!sqlConn)
            {
                MessageBox.Show("请先链接数据库!");
                return;
            }

            if (!subDirSet || !mainDirSet)
            {
                MessageBox.Show("请先选择主、副档路径!");
                return;
            }

            if (!sqlPlus)
            {
                MessageBox.Show("请合并数据库!");
                return;
            }
            lbl_SavePlusStatus.Text = "正在合并..";

            bool ret = false;

            //合并player.dat
            m_MainCPlayerCtrl.LoadPlayerInfos();
            m_SubCPlayerCtrl.LoadPlayerInfos();
            m_MainCUidCtrl.LoadInfo();

            //List<AccAttr> mainList = m_MainCPlayerCtrl.GetPlayersAttrList();
            List <AccAttr> subList    = m_SubCPlayerCtrl.GetPlayersAttrList();
            UInt32         startIndex = 0;
            UInt32         startUid   = 0;
            UInt32         starAccId  = 0;

            startIndex = m_MainCPlayerCtrl.GetLastIndex();
            startUid   = m_MainCUidCtrl.GetLastUid();
            //最好从数据库获取
            starAccId = m_MainCUidCtrl.GetLastAccId();


            if (startIndex < 0 || startUid < 0 || starAccId < 0)
            {
                lbl_SavePlusStatus.Text = "正在失败..";
                MessageBox.Show("发送错误!");
                return;
            }

            try
            {
                foreach (var acc in subList)
                {
                    AccAttr newAcc = new AccAttr();
                    newAcc = acc;

                    //重新计算nIndex
                    startIndex    = startIndex + 1;
                    newAcc.nIndex = startIndex;

                    //查询当前账户是否已经存在
                    bool    accountExit = false;
                    AccAttr player;
                    accountExit = m_MainCPlayerCtrl.AccountExit(newAcc.Account, out player);
                    if (accountExit)
                    {//如果当前账户已经存在,则添加uid的账户指向
                        //遍历uid列表,找到该数据,将此nIndex加入对应的角色位
                        m_MainCUidCtrl.AddSubPlayer(player.nAccId, startIndex);
                        newAcc.nAccId = player.nAccId;
                    }
                    else
                    {
                        //如果不存在 则添加uid 并且acc_id插入数据库
                        startUid      = startUid + 1;
                        starAccId     = starAccId + 1;
                        newAcc.nAccId = starAccId;
                        //uid列表添加, 使能第一角色位, uid index + 1, 生成的acc_id对应加入且加入数据库
                        m_MainCUidCtrl.AddPlayerUid(newAcc.nAccId, startUid, startIndex);

                        //starAccId插入数据库
                        string sqlLine    = "";
                        string sqlAccount = System.Text.Encoding.ASCII.GetString(newAcc.Account);
                        sqlAccount = sqlAccount.Replace("\0", "");
                        sqlLine    = @"set identity_insert " + txt_MainSqlAccount.Text + @".dbo.game_acc_id ON
  insert into " + txt_MainSqlAccount.Text + ".dbo.game_acc_id(id,account) values (" + starAccId + ",'" + sqlAccount + @"')
  set identity_insert " + txt_MainSqlAccount.Text + ".dbo.game_acc_id OFF";
                        ret        = m_MainSQLConn.SqlCommand(sqlLine);
                        if (!ret)
                        {
                            btn_SavePlus.Enabled    = false;
                            lbl_SavePlusStatus.Text = "正在失败..";
                            MessageBox.Show("Acc_Id插入数据库失败!,请恢复数据库和档案后重启工具重试");
                            return;
                        }
                    }

                    //判断当前角色名字是否被使用
                    ret = m_MainCPlayerCtrl.NameExit(newAcc.Name);
                    if (ret)
                    {//存在,则修改此名字
                        //这里需要保证长度问题
                        newAcc.Name = CPlayerCtrl.ReName(newAcc.Name);
                    }

                    //可装备次数 + 1
                    newAcc = CPlayerCtrl.DoAddEquipIimes(newAcc);

                    //添加
                    m_MainCPlayerCtrl.AddPlayer(newAcc);
                }

                ret = m_MainCPlayerCtrl.SavePlayerInfos();
                m_MainCUidCtrl.SaveInfos();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                ret = false;
            }

            try
            {
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                ret = false;
            }

            if (!ret)
            {
                btn_SavePlus.Enabled    = false;
                lbl_SavePlusStatus.Text = "合并失败..";
                MessageBox.Show("合并Player.dat失败!请恢复数据库和档案后重启工具重试");
            }
            else
            {
                btn_SavePlus.Enabled    = false;
                lbl_SavePlusStatus.Text = "合并成功..";
                MessageBox.Show("合并Player.dat成功,生成的player.dat和uid.dat保存在new目录下!");
            }
        }
コード例 #10
0
 void Awake()
 {
     //Gizmos.color = Color.yellow;
     //Gizmos.DrawSphere(mAttackPos, mRadius);
     mAttackPos = mAttackPosObj.transform.position;
     mPlayer = GameObject.FindGameObjectWithTag("Player").GetComponent<CPlayerCtrl>();
 }