Esempio n. 1
0
    /// <summary>
    /// 非经过我同意禁用本接口  by吴江
    /// </summary>
    /// <param name="_info"></param>
    /// <param name="_callBack"></param>
    /// <returns></returns>
    public bool TryPreviewSingelNPC(int _npcTypeID, System.Action <PreviewNPC> _callBack)
    {
        NPCTypeRef refData = ConfigMng.Instance.GetNPCTypeRef(_npcTypeID);

        if (refData != null)
        {
            PreviewNPC pp = PreviewNPC.CreateDummy(refData);
            pp.mutualExclusion = false;
            pp.StartAsyncCreate(_callBack);
            return(true);
        }
        return(false);
    }
Esempio n. 2
0
    public NPCInfo(NPCTypeRef _refData)
    {
        serverData = new NpcData();
        serverData.serverInstanceID = -1;
        serverData.prof             = _refData.id;
        serverData.startPosX        = -10000;
        serverData.startPosY        = -10000;
        serverData.startPosZ        = -10000;
        serverData.dir  = 0;
        serverData.camp = 0;

        ProcessServerData(serverData);
    }
Esempio n. 3
0
    public bool TryPreviewSingelNPC(int _npcTypeID, UITexture _showLabel, PreviewConfigType _previewType)
    {
        curShowLabel = _showLabel;
        CancelAllDownLoad();
        NPCTypeRef refData = ConfigMng.Instance.GetNPCTypeRef(_npcTypeID);

        if (refData != null)
        {
            PreviewNPC pp = PreviewNPC.CreateDummy(refData);
            pp.previewConfigType = _previewType;
            pp.StartAsyncCreate(CreateNPCCallBack);
            return(true);
        }
        return(false);
    }
Esempio n. 4
0
    /// <summary>
    /// 创建NPC的净数据对象 by吴江
    /// </summary>
    /// <param name="_info"></param>
    /// <returns></returns>
    public static PreviewNPC CreateDummy(NPCTypeRef _refData)
    {
        GameObject newGO = null;
        NPCInfo    info  = new NPCInfo(_refData);

        if (GameCenter.instance.dummyMobPrefab != null)
        {
            newGO      = Instantiate(GameCenter.instance.dummyNpcPrefab) as GameObject;
            newGO.name = "Dummy Preview NPC [" + info.ServerInstanceID + "]";
        }
        else
        {
            newGO = new GameObject("Dummy Preview NPC[" + info.ServerInstanceID + "]");
        }
        newGO.tag = "NPC";
        PreviewNPC npc = newGO.AddComponent <PreviewNPC>();

        npc.actorInfo = info;
        npc.isDummy_  = true;
        return(npc);
    }
Esempio n. 5
0
    //public static void UnloadRace(int _id)
    //{
    //    PlayerConfig playerConfig = ConfigMng.Instance.GetPlayerConfig(_id);
    //    if (playerConfig != null)
    //    {
    //        AssetMng.instance.UnloadUrl(AssetMng.GetPathWithExtension("Player/" + playerConfig.res_name, (AssetPathType)playerConfig.path_type));
    //    }
    //}

    public static AssetMng.DownloadID GetNPC(int _id, System.Action <GameObject, EResult> _onComplete)
    {
        NPCTypeRef npcRef = ConfigMng.Instance.GetNPCTypeRef(_id);

        if (npcRef != null)
        {
            string[]            strs    = npcRef.res_name.Split('/');
            string              resName = strs[strs.Length - 1];
            AssetMng.DownloadID downloadID
                = AssetMng.instance.LoadAsset <GameObject>(AssetMng.GetPathWithExtension(npcRef.res_name, (AssetPathType)npcRef.path_type),
                                                           resName,
                                                           _onComplete,
                                                           true);
            return(downloadID);
        }
        else
        {
            GameSys.LogError("Unknown type " + _id);
            _onComplete(null, EResult.NotFound);
            return(null);
        }
    }
Esempio n. 6
0
    public override bool Exec(Actor _actor)
    {
        if (target == null)
        {
            return(true);
        }

        if (target.isDummy)
        {
            return(false);
        }
        if (GameCenter.curGameStage == null || !GameCenter.sceneMng.EnterSucceed)
        {
            return(false);
        }

        Vector3 targetPos = target.transform.position;
        Vector3 diff      = _actor.transform.position - targetPos;

        if (diff.sqrMagnitude <= minDistance * minDistance)
        {
            GameCenter.curMainPlayer.CurTarget = target;
            target.InteractionSound();
            switch (target.typeID)
            {
            case ObjectType.Unknown:
                break;

            case ObjectType.Player:
                break;

            case ObjectType.PreviewPlayer:
                break;

            case ObjectType.Mount:
                break;

            case ObjectType.MOB:
                break;

            case ObjectType.NPC:
                if (GameCenter.uIMng.HaveBigWnd())
                {
                    return(true);
                }
                List <NPC> npcs = GameCenter.curGameStage.GetNPCs();
                for (int i = 0; i < npcs.Count; i++)
                {
                    npcs[i].CancelBubble();
                }
                NPC npc = target as NPC;

                if (npc != null)
                {
                    npc.BeClick();
                }
                NPCTypeRef npcType = ConfigMng.Instance.GetNPCTypeRef(npc.id);
                if (npcType.function1 != 0)
                {
                    NewFunctionRef newFunction = ConfigMng.Instance.GetNewFunctionRef(npcType.function1);
                    if (GameCenter.mainPlayerMng.FunctionIsOpen((FunctionType)newFunction.Function_type))
                    {
                        if (newFunction.NPC_UI_type == 1)
                        {
                            GameCenter.uIMng.SwitchToUI((GUIType)Enum.Parse(typeof(GUIType), newFunction.NPC_UI_name));
                        }
                        else if (newFunction.NPC_UI_type == 2)
                        {
                            GameCenter.uIMng.SwitchToSubUI((SubGUIType)Enum.Parse(typeof(SubGUIType), newFunction.NPC_UI_name));
                        }
                    }
                    else
                    {
                        GameCenter.uIMng.SwitchToUI(GUIType.NPCDIALOGUE);
                    }
                }
                else if (npcType.function2 != 0)
                {
                    NewFunctionRef newFunction = ConfigMng.Instance.GetNewFunctionRef(npcType.function2);
                    if (GameCenter.mainPlayerMng.FunctionIsOpen((FunctionType)newFunction.Function_type))
                    {
                        if (newFunction.NPC_UI_type == 1)
                        {
                            GameCenter.uIMng.SwitchToUI((GUIType)Enum.Parse(typeof(GUIType), newFunction.NPC_UI_name));
                        }
                        else if (newFunction.NPC_UI_type == 2)
                        {
                            GameCenter.uIMng.SwitchToSubUI((SubGUIType)Enum.Parse(typeof(SubGUIType), newFunction.NPC_UI_name));
                        }
                    }
                    else
                    {
                        GameCenter.uIMng.SwitchToUI(GUIType.NPCDIALOGUE);
                    }
                }
                else
                {
                    GameCenter.uIMng.SwitchToUI(GUIType.NPCDIALOGUE);                            //走到NPC身边,打开NPC对话UI
                }
                break;

            case ObjectType.SceneItem:
                SceneItem sceneitem = target as SceneItem;
                if (sceneitem != null && sceneitem.IsTouchType == TouchType.TOUCH)
                {
                    if (GameCenter.mainPlayerMng.MainPlayerInfo.CurMountInfo != null && GameCenter.mainPlayerMng.MainPlayerInfo.CurMountInfo.IsRiding)    //下坐骑
                    {
                        GameCenter.newMountMng.C2S_ReqRideMount(ChangeMount.DOWNRIDE, GameCenter.mainPlayerMng.MainPlayerInfo.CurMountInfo.ConfigID, MountReqRideType.AUTO);
                    }
                }
                if (GameCenter.mainPlayerMng.MainPlayerInfo.CurSceneUiType == SceneUiType.RAIDERARK)
                {
                    if (GameCenter.activityMng.rewardId != 0)    //已携带宝珠错误提示
                    {
                        GameCenter.messageMng.AddClientMsg(456);
                        return(true);
                    }
                    if (Time.time > 15 && Time.time - GameCenter.activityMng.coldGetTime < 15)
                    {
                        MessageST msg = new MessageST();
                        msg.messID = 459;
                        msg.words  = new string[1] {
                            (15 - (int)(Time.time - GameCenter.activityMng.coldGetTime)).ToString()
                        };
                        GameCenter.messageMng.AddClientMsg(msg);
                        return(true);
                    }
                }
                if (sceneitem != null)
                {
                    sceneitem.BeClicked();
                }
                GameCenter.mainPlayerMng.C2S_TouchSceneItem(target.id);
                break;

            case ObjectType.Entourage:
                break;

            case ObjectType.DropItem:
                break;

            case ObjectType.FlyPoint:
                break;

            case ObjectType.CGObject:
                break;

            case ObjectType.Trap:
                break;

            case ObjectType.Model:
                //Model model = target as Model;
//                    if (model.Camp == GameCenter.mainPlayerMng.MainPlayerInfo.Camp)//走到雕像 如果阵营相同 请求能否膜拜并开窗
//                    GameCenter.campMng.C2S_CanWorship();
                GameCenter.uIMng.SwitchToUI(GUIType.NPCMORSHIP);
                break;

            default:
                break;
            }
            return(true);
        }
        return(false);
    }
Esempio n. 7
0
 public override bool Exec(Actor _actor)
 {
     if (firstTime)
     {
         if (targetScene == 0)
         {
             GameCenter.mainPlayerMng.C2S_Fly_Pint(GameCenter.mainPlayerMng.MainPlayerInfo.SceneID, (int)targetPos.x, (int)targetPos.z);
         }
         else
         {
             GameCenter.mainPlayerMng.C2S_Fly_Pint(targetScene, (int)targetPos.x, (int)targetPos.z);
         }
         firstTime = false;
     }
     if (targetScene != 0 && targetScene != GameCenter.mainPlayerMng.MainPlayerInfo.SceneID)
     {
         return(false);
     }
     if ((targetScene != 0 && targetScene == GameCenter.mainPlayerMng.MainPlayerInfo.SceneID && GameCenter.sceneMng.EnterSucceed) || targetScene == 0)
     {
         Vector3 delta = targetPos - _actor.transform.position;
         delta.y = 0f;
         if (targetID == 0)
         {
             if (delta.sqrMagnitude < minDistance * minDistance)
             {
                 GameCenter.curMainPlayer.PlayFlyOverEffect();
                 return(true);
             }
         }
         else
         {
             if (delta.sqrMagnitude < minDistance * minDistance)
             {
                 InteractiveObject obj = GameCenter.curGameStage.GetInterActiveObj(targetID);
                 if (obj != null && !obj.isDummy)
                 {
                     switch (obj.typeID)
                     {
                     case ObjectType.NPC:
                         NPC npc = obj as NPC;
                         GameCenter.curMainPlayer.CurTarget = npc;
                         if (npc != null)
                         {
                             npc.BeClick();
                         }
                         NPCTypeRef npcType = ConfigMng.Instance.GetNPCTypeRef(npc.id);
                         if (npcType.function1 != 0)
                         {
                             NewFunctionRef newFunction = ConfigMng.Instance.GetNewFunctionRef(npcType.function1);
                             if (GameCenter.mainPlayerMng.FunctionIsOpen((FunctionType)newFunction.Function_type))
                             {
                                 if (newFunction.NPC_UI_type == 1)
                                 {
                                     GameCenter.uIMng.SwitchToUI((GUIType)Enum.Parse(typeof(GUIType), newFunction.NPC_UI_name));
                                 }
                                 else if (newFunction.NPC_UI_type == 2)
                                 {
                                     GameCenter.uIMng.SwitchToSubUI((SubGUIType)Enum.Parse(typeof(SubGUIType), newFunction.NPC_UI_name));
                                 }
                             }
                             else
                             {
                                 GameCenter.uIMng.SwitchToUI(GUIType.NPCDIALOGUE);
                             }
                         }
                         else if (npcType.function2 != 0)
                         {
                             NewFunctionRef newFunction = ConfigMng.Instance.GetNewFunctionRef(npcType.function2);
                             if (GameCenter.mainPlayerMng.FunctionIsOpen((FunctionType)newFunction.Function_type))
                             {
                                 if (newFunction.NPC_UI_type == 1)
                                 {
                                     GameCenter.uIMng.SwitchToUI((GUIType)Enum.Parse(typeof(GUIType), newFunction.NPC_UI_name));
                                 }
                                 else if (newFunction.NPC_UI_type == 2)
                                 {
                                     GameCenter.uIMng.SwitchToSubUI((SubGUIType)Enum.Parse(typeof(SubGUIType), newFunction.NPC_UI_name));
                                 }
                             }
                             else
                             {
                                 GameCenter.uIMng.SwitchToUI(GUIType.NPCDIALOGUE);
                             }
                         }
                         else
                         {
                             GameCenter.uIMng.SwitchToUI(GUIType.NPCDIALOGUE);                                //走到NPC身边,打开NPC对话UI
                         }
                         break;
                     }
                     GameCenter.curMainPlayer.PlayFlyOverEffect();
                     return(true);
                 }
             }
         }
     }
     return(false);
 }