Ejemplo n.º 1
0
        public void CreateNpc()
        {
            Utils.Assert(curChapConfig == null, "Chapter Configdata is null.");

            if (reader.loadSceneConfig(curChapConfig.scene_config))
            {
                NPCInSceneData[] npcInScene = reader.GetSceneEditorElementData <NPCInSceneData>();
                if (npcInScene != null && npcInScene.Length > 0)
                {
                    int       len      = npcInScene.Length;
                    CrtHero[] toClient = new CrtHero[len];

                    for (int i = 0; i < len; i++)
                    {
                        NPCInSceneData sceneD = npcInScene [i];
                        ServerNPC      npc    = virNpcLoader.Load(sceneD.npcID, sceneD.camp, WarPoint);
                        if (npc == null)
                        {
                            ConsoleEx.DebugWarning("Create npc fail!!!!!!!!!   id::  " + sceneD.npcID);
                            continue;
                        }

                        npc.transform.localPosition    = new Vector3(sceneD.pos [0], sceneD.pos [1], sceneD.pos [2]);
                        npc.transform.localScale       = new Vector3(sceneD.scale [0], sceneD.scale [1], sceneD.scale [2]);
                        npc.transform.localEulerAngles = new Vector3(sceneD.rotation [0], sceneD.rotation [1], sceneD.rotation [2]);

                        npc.spawnPos = npc.transform.position;
                        npc.spawnRot = npc.transform.rotation;

                        npc.dataInScene     = sceneD;
                        npc.data.btData.way = sceneD.way;

                        //初始化buff
                        InitBuff(npc);
                        //初始化AI
                        InitAi(npc);

                        toClient[i] = new CrtHero()
                        {
                            npcID    = sceneD.npcID,
                            uniqueId = npc.UniqueID,
                            pos      = VectorWrap.ToVector(npc.transform.position),
                            rotation = VectorWrap.ToVector(npc.transform.eulerAngles),
                            camp     = (int)npc.Camp,
                        };
                    }
                    //send creating npc message to client
                    IpcCreateNpcMsg msg = new IpcCreateNpcMsg()
                    {
                        npclist = toClient,
                    };
                    WarSMgr.realServer.proxyCli.CtorNpc(msg);
                }
            }
            else
            {
                ConsoleEx.DebugWarning(curChapConfig.scene_config + " scene config is not find.");
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 创建Npc
 /// </summary>
 public void CtorNpc(IpcCreateNpcMsg msg)
 {
     ConsoleEx.DebugLog(war.Side.ToString() + " Sub Received : CtorNpc.", ConsoleEx.YELLOW);
     if (CtorNPC != null)
     {
         AsyncTask.QueueOnMainThread(
             () => {
             CtorNPC(msg);
         }
             );
     }
 }
Ejemplo n.º 3
0
        public override void OnAwake()
        {
            loader          = Core.ResEng.getLoader <VirtualNpcLoader>();
            mWarPoint       = GameObject.FindGameObjectWithTag("WarServer");
            freshGroupModel = Core.Data.getIModelConfig <FreshGroupModel>();
            freshPoolModel  = Core.Data.getIModelConfig <FreshPoolModel>();
            AiLoader        = Core.ResEng.getLoader <AILoader>();

            myHero  = gameObject.GetComponent <BNPC>();
            curPool = freshPoolModel.GetNPCFreshPool(myHero.dataInScene.freshParam.freshPoolID);

            crtMsg            = new IpcCreateNpcMsg();
            crtMsg.npclist    = new CrtHero[1];
            crtMsg.npclist[0] = new CrtHero();

            hpMsg = new IpcNpcHpMsg();
        }
Ejemplo n.º 4
0
        void SendCrtBulletMsg(ServerNPC npc)
        {
            IpcCreateNpcMsg msg = new IpcCreateNpcMsg();

            msg.npclist             = new CrtHero[1];
            msg.npclist[0]          = new CrtHero();
            msg.npclist[0].npcID    = npc.data.configData.ID;
            msg.npclist[0].uniqueId = npc.UniqueID;
            msg.npclist[0].camp     = (int)npc.Camp;
            msg.npclist[0].pos      = VectorWrap.ToVector(npc.transform.position);
            msg.npclist[0].rotation = VectorWrap.ToVector(npc.transform.eulerAngles);
            WarServerManager mgr = WarServerManager.Instance;

            if (mgr != null)
            {
                mgr.realServer.proxyCli.CtorNpc(msg);
            }
        }
Ejemplo n.º 5
0
        public void CreateNpc(IpcCreateNpcMsg msg)
        {
            int len = msg.npclist.Length;

            for (int i = 0; i < len; i++)
            {
                CrtHero   hero = msg.npclist[i];
                ClientNPC npc  = Npcloader.Load(hero.npcID, hero.uniqueId, (CAMP)hero.camp, WarPoint);
//                Debug.Log(fastJSON.JSON.Instance.ToJSON(msg));
                if (npc == null)
                {
                    ConsoleEx.DebugWarning("Create npc fail!!!!!!!!!   id::  " + hero.npcID);
                    continue;
                }

                npc.transform.localPosition    = new Vector3(hero.pos.x, hero.pos.y, hero.pos.z);
                npc.transform.localScale       = Vector3.one;
                npc.transform.localEulerAngles = new Vector3(hero.rotation.x, hero.rotation.y, hero.rotation.z);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 所有消息的处理地方
        /// </summary>
        /// <param name="msg">Message.</param>
        void HandleIpcMsg(IpcMsg msg)
        {
            if (msg != null)
            {
                switch (msg.op)
                {
                case OP.CtorMap:
                    IpcCreateMapMsg ctor = msg as IpcCreateMapMsg;
                    MapInfo         amap = new MapInfo()
                    {
                        ID   = ctor.MapId,
                        type = (ConfigType)Enum.ToObject(typeof(ConfigType), ctor.MapType),
                    };
                    CtorEnv(amap);
                    break;

                case OP.CtorNpc:
                    IpcCreateNpcMsg ctorNpc = msg as IpcCreateNpcMsg;
                    CtorNpc(ctorNpc);
                    break;

                case OP.CtorHero:
                    IpcCreateHeroMsg crtHero = msg as IpcCreateHeroMsg;
                    CtorHero(crtHero);
                    break;

                case OP.NpcMove:
                    IpcNpcMoveMsg moveMsg = msg as IpcNpcMoveMsg;
                    NPCMove(moveMsg);
                    break;

                case OP.NpcHp:
                    IpcNpcHpMsg hpMsg = msg as IpcNpcHpMsg;
                    NPChp(hpMsg);
                    break;

                case OP.NpcAnim:
                    IpcNpcAnimMsg animMsg = msg as IpcNpcAnimMsg;
                    NPCAnim(animMsg);
                    break;

                case OP.NpcStatus:
                    IpcNpcStatusMsg statusMsg = msg as IpcNpcStatusMsg;
                    NPCStatus(statusMsg);
                    break;

                case OP.ServerReady:
                    IpcServerReadyMsg SerInfo = msg as IpcServerReadyMsg;
                    ServerInfo        server  = new ServerInfo(SerInfo);
                    ServerReady(server);
                    break;

                case OP.AsyncClient:
                    IpcSyncClientMsg Sync = msg as IpcSyncClientMsg;
                    SyncClient(Sync);
                    break;

                case OP.EnterWar:
                    IpcEnterWar enter   = msg as IpcEnterWar;
                    ServerInfo  aserver = new ServerInfo()
                    {
                        ServerName = enter.ServerName,
                        ServerID   = enter.ServerID,
                    };
                    MapInfo map = new MapInfo()
                    {
                        ID   = enter.MapId,
                        type = (ConfigType)Enum.ToObject(typeof(ConfigType), enter.MapType),
                    };
                    EnterWar(aserver, map);
                    break;

                case OP.ServerQuit:
                    IpcServerQuitMsg quit = msg as IpcServerQuitMsg;
                    ServerQuit(quit.ServerID);
                    break;

                case OP.DestroyNpc:
                    IpcDestroyNpcMsg des = msg as IpcDestroyNpcMsg;
                    NpcDestroy(des);
                    break;

                case OP.SkillCD:
                    IpcSkillMsg skMsg = msg as IpcSkillMsg;
                    NpcSkillCD(skMsg);
                    break;
                }
            }
        }
Ejemplo n.º 7
0
 /// <summary>
 /// 创建Npc
 /// </summary>
 public void CtorNpc(IpcCreateNpcMsg msg)
 {
     publisher.send(msg);
 }