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