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); }
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; }