Exemplo n.º 1
0
    private bool CreateBuild(ObjectBase obj, ArrayList param)
    {
        if (param == null || param.Count < 1 || param.Count > 2)
        {
            return(false);
        }

        if (obj == null)
        {
            return(false);
        }

        BaseScene scn = SceneManager.Instance.GetCurScene();

        if (scn == null)
        {
            return(false);
        }

        BuildInitParam initParam = new BuildInitParam();

        initParam.build_res_id = System.Convert.ToInt32(param[0]);
        initParam.init_pos     = obj.GetPosition();
        initParam.init_dir     = obj.GetDirection();

        if (param.Count > 1)
        {
            initParam.build_barrier = System.Convert.ToBoolean(param[1]);
        }

        return(scn.CreateSprite(initParam) != null);
    }
Exemplo n.º 2
0
    private bool CreateBuild(ObjectBase obj, respond_msg_gm respond)
    {
        if (respond == null)
        {
            return(false);
        }

        if (obj == null)
        {
            return(false);
        }

        BaseScene scn = SceneManager.Instance.GetCurScene();

        if (scn == null)
        {
            return(false);
        }

        BuildInitParam initParam = new BuildInitParam();

        initParam.build_res_id  = System.Convert.ToInt32(respond.param1);
        initParam.init_pos      = obj.GetPosition();
        initParam.init_dir      = obj.GetDirection();
        initParam.build_barrier = System.Convert.ToInt32(respond.param2) != 0;

        return(scn.CreateSprite(initParam) != null);
    }
Exemplo n.º 3
0
    override public bool Init(ObjectInitParam param)
    {
        BuildInitParam buildParam = (BuildInitParam)param;

        if (!DataManager.BuildTable.ContainsKey(buildParam.build_res_id))
        {
            return(false);
        }
        mRes = DataManager.BuildTable[buildParam.build_res_id] as BuildTableItem;

        if (mRes == null)
        {
            GameDebug.LogError("未找到buildobj id = " + buildParam.build_res_id.ToString());
            return(false);
        }

        mModelResID = mRes.modelId;
        SetLeague(mRes.league);
        mDestroyWaiting       = true;
        mMaxWaitDisappearTime = mRes.die_time;
        mMaxDisappearTime     = 0.0f;
        mBarrier = buildParam.build_barrier;

        param.init_shape       = new SceneShapeParam();
        param.init_shape.mType = mRes.shapeType;
        param.init_shape.mParams.Add(mRes.shapeParam1);
        param.init_shape.mParams.Add(mRes.shapeParam2);

        if (!base.Init(param))
        {
            return(false);
        }

        InitProperty();

        return(true);
    }
Exemplo n.º 4
0
    private bool doSlowCreate(bool killAll)
    {
        if (slowCreateIds.Count < 1)
        {
            return(false);
        }

        GrowthTriggerInfo info = slowCreateIds[0] as GrowthTriggerInfo;

        if (info.type == "NPC")
        {
            NpcInitParam npcParam = new NpcInitParam();
            npcParam.npc_res_id = info.resId;
            float y = mScene.GetHeight(info.x, info.z);
            npcParam.init_pos = new Vector3(info.x, y, info.z);
            npcParam.init_dir = info.dir;
            npcParam.alias    = info.alias;
            npcParam.talk_id  = info.talkID;

            ObjectBase obj = mScene.CreateSprite(npcParam);
            if (obj == null)
            {
                GameDebug.LogError("创建Npc失败。npcId:" + info.resId);
                return(false);
            }

            if ("ghost" == info.alias)
            {
                mScene.GhostObjects().Add(info);
            }

            if (obj != null)
            {
                if (killAll)
                {
                    cacheIdKillAll.Add(obj.InstanceID);
                }
                else
                {
                    cacheId.Add(obj.InstanceID);
                }
            }
        }
        else if (info.type == "PICK")
        {
            PickGrowthTriggerInfo pickinfo = info as PickGrowthTriggerInfo;

            List <PickInitParam> paramList = new List <PickInitParam>();
            if (SceneObjManager.CreatePickInitParam((Pick.PickType)(System.Enum.Parse(typeof(Pick.PickType), pickinfo.picktype.ToString())),
                                                    pickinfo.resId, pickinfo.content, new Vector3(info.x, mScene.GetHeight(info.x, info.z), info.z), info.dir, out paramList, false,
                                                    Pick.FlyType.FLY_OUT, pickinfo.picktype != (int)Pick.PickType.SUPER_WEAPON))
            {
                foreach (PickInitParam param in paramList)
                {
                    param.init_pos.y = mScene.GetHeight(param.init_pos.x, param.init_pos.z);
                    param.alias      = info.alias;
                    ObjectBase obj = mScene.CreateSprite(param);
                    if (obj == null)
                    {
                        GameDebug.LogError("创建Pick失败。pickId:" + info.resId);
                        return(false);
                    }

                    if (obj != null)
                    {
                        if (killAll)
                        {
                            cacheIdKillAll.Add(obj.InstanceID);
                        }
                        else
                        {
                            cacheId.Add(obj.InstanceID);
                        }
                    }
                }
            }
        }
        else if (info.type == "BUILD")
        {
            BuildGrowthTriggerInfo buildinfo = info as BuildGrowthTriggerInfo;

            BuildInitParam buildParam = new BuildInitParam();
            buildParam.build_res_id = info.resId;
            float y = mScene.GetHeight(info.x, info.z);
            buildParam.init_pos      = new Vector3(info.x, y, info.z);
            buildParam.init_dir      = info.dir;
            buildParam.build_barrier = buildinfo.barrier > 0;
            buildParam.alias         = info.alias;

            ObjectBase obj = mScene.CreateSprite(buildParam);
            if (obj == null)
            {
                GameDebug.LogError("创建Building失败。buildId:" + info.resId);
                return(false);
            }

            if (obj != null)
            {
                if (killAll)
                {
                    cacheIdKillAll.Add(obj.InstanceID);
                }
                else
                {
                    cacheId.Add(obj.InstanceID);
                }
            }
        }
        else if (info.type == "PARTICLE")
        {
            Vector3 pos = new Vector3(info.x, mScene.GetHeight(info.x, info.z), info.z);
            mScene.CreateEffect(info.resId, Vector3.one, pos, info.dir, info.alias);
        }

        slowCreateIds.RemoveAt(0);

        if (slowCreateIds.Count < 1)
        {
            return(false);
        }

        return(true);
    }