コード例 #1
0
ファイル: DialogCore.cs プロジェクト: kimch2/PackageClient
 bool SpecialDialog(Obj_NPC obj)
 {
     if (obj && (obj.BaseAttr.RoleBaseID == GlobeVar.MARRY_NPCID ||
                 obj.BaseAttr.RoleBaseID == GlobeVar.DIVORCE_NPCID ||
                 obj.BaseAttr.RoleBaseID == GlobeVar.PARADE_NPCID)
         )
     {
         MarryRootLogic.ShowMarryDialogUI(obj.BaseAttr.RoleBaseID);
         return(true);
     }
     //如果开关关闭,奖励NPC就按照普通NPC一样对话
     if (obj && obj.BaseAttr.RoleBaseID == GlobeVar.AWARD_NPCID)
     {
         if (!GameManager.gameManager.PlayerDataPool.IsServerFlagOpen(SERVER_FLAGS_ENUM.FLAG_CYFANS))
         {
             return(false);
         }
     }
     //显示带选项的对话框(可选)
     if (obj.DefaultDialogID != -1)
     {
         Tab_NpcDialog _npcDialogInfo = TableManager.GetNpcDialogByID(obj.DefaultDialogID, 0);
         if (_npcDialogInfo != null && _npcDialogInfo.OptionDialogId != -1)
         {
             OptionDialogLogic.ShowOptionDialogUI(obj.DefaultDialogID);
             return(true);
         }
         else
         {
             //LogModule.ErrorLog("Can not find npcDialogInfo: {0} or OptionDialogId == -1", obj.DefaultDialogID);
         }
     }
     return(false);
 }
コード例 #2
0
        void AutoShowNPCDialogNear()
        {
            if (m_mainPlayer == null)
            {
                return;
            }
            //当前距离NPC的距离
            float nDis2MainPlayer = Vector3.Distance(Position, m_mainPlayer.Position);

            if (IsAutoShowOptionDialog())
            {
                if (nDis2MainPlayer <= 2.0 && m_fLastDis2MainPlayer > 2.0) //来到离黑市商人2码内的距离 自动弹出对话框
                {
                    if (m_mainPlayer.IsMoving)                             //等停下来再进行操作
                    {
                        return;
                    }
                    if (OptionDialogLogic.Instance() == null) //没有弹出对话(有选项)
                    {
                        Singleton <DialogCore> .GetInstance().Show(this);
                    }
                }
            }
            //是帮会NPC
            else if (BaseAttr.RoleBaseID == GlobeVar.GUILDDATAID_SUZHOU)
            {
                if (nDis2MainPlayer <= 2.0 && m_fLastDis2MainPlayer > 2.0) //来到离帮会NPC2码内的距离 自动弹出对话框
                {
                    if (m_mainPlayer.IsMoving)                             //等停下来再进行操作
                    {
                        return;
                    }
                    if (MissionInfoController.Instance() == null) //没有弹出对话(无选项)
                    {
                        Singleton <DialogCore> .GetInstance().Show(this);
                    }
                }
            }

            m_fLastDis2MainPlayer = nDis2MainPlayer;
        }