//进入场景 public void EnterScene(ObjDropItem _this, Scene scene, int delayTime = 0) { if (delayTime < 50) { scene.EnterScene(_this); return; } _this.mEnterSceneTrigger = SceneServerControl.Timer.CreateTrigger(DateTime.Now.AddMilliseconds(delayTime), () => { scene.EnterScene(_this); _this.mEnterSceneTrigger = null; }); }
public ObjRetinue CreateRetinue(Scene _this, int dataId, ObjCharacter owner, Vector2 pos, Vector2 dir, int camp, int level = -1) { if (Table.GetNpcBase(dataId) == null) { Logger.Error("CreateRetinue retinue = {0},objId={1}", dataId, owner.ObjId); return(null); } var npc = new ObjRetinue(); npc.Init(_this.GenerateNextId(), dataId, owner); npc.SetPosition(pos.X, pos.Y); npc.SetDirection(dir); if (level > 0) { npc.SetLevel(level); npc.InitData(level); } else { npc.InitData(level); } npc.SetCamp(camp); _this.EnterScene(npc); return(npc); }
public ObjBoss CreateBoss(Scene _this, int dataId, Vector2 pos, Vector2 dir, string name = "", int level = -1) { var npc = new ObjBoss(); npc.Init(_this.GenerateNextId(), dataId, level); if (!string.IsNullOrEmpty(name)) { npc.SetName(name); } //if (level > 0) //{ // npc.SetLevel(level); //} if (!_this.ValidPosition(pos)) { Logger.Warn("Npc postion is invalid. DataId={2},name={0},pos={1},scene={3}", npc.GetName(), pos, dataId, _this.TypeId); } npc.SetPosition(pos.X, pos.Y); npc.SetDirection(dir); npc.BornPosition = pos; npc.BornDirection = dir; _this.EnterScene(npc); return(npc); }
public ObjNPC CreateNpc(Scene _this, SceneNpcRecord sceneNpcRecord, int dataId, Vector2 pos, Vector2 dir, string name = "", int level = -1) { if (Math.Abs(pos.X + 1) < 0.0001f && Math.Abs(pos.Y + 1) < 0.0001f) { return(null); } if (dataId != 999 && dataId != 998) { if (!_this.ValidPosition(pos)) { Logger.Warn("Npc postion is invalid. DataId={0},pos={1},scene={2}", dataId, pos, _this.TypeId); var temp = _this.FindNearestValidPosition(pos, 10); if (null != temp) { pos = temp.Value; } else { Logger.Error("null==FindNearestValidPosition. DataId={0},pos={1},scene={2}", dataId, pos, _this.TypeId); return(null); } } } var npc = new ObjNPC(); npc.tbSceneNpc = sceneNpcRecord; npc.Init(_this.GenerateNextId(), dataId, level); npc.mBornTime = DateTime.Now; if (!string.IsNullOrEmpty(name)) { npc.SetName(name); } //if (level > 0)840824 //{ // npc.SetLevel(level); //} npc.SetPosition(pos.X, pos.Y); npc.SetDirection(dir); npc.BornPosition = pos; npc.BornDirection = dir; _this.EnterScene(npc); return(npc); }
public AutoPlayer CreateAutoPlayer(Scene _this, int RobotId, Vector2 pos, Vector2 dir) { var autoPlayer = new AutoPlayer(); autoPlayer.InitByRobot(_this.GenerateNextId(), RobotId); if (!_this.ValidPosition(pos)) { Logger.Error("Npc postion is invalid. RobotId={2},name={0}, pos={1}", autoPlayer.GetName(), pos, RobotId); } autoPlayer.SetPosition(pos.X, pos.Y); autoPlayer.SetDirection(dir); _this.EnterScene(autoPlayer); return(autoPlayer); }
public ObjDropItem CreateDropItem(Scene _this, int type, List <ulong> ownerList, ulong teamId, int itemId, int count, Vector2 pos) { if (count <= 0) { return(null); } var item = new ObjDropItem(type, ownerList, teamId, itemId, count); item.InitBase(_this.GenerateNextId(), itemId); PlayerLog.WriteLog((int)LogType.DropItem, "CreateDropItem Id ={0} SceneId={1} pos={2},{3}", item.ObjId, _this.TypeId, pos.X, pos.Y); var randomRadian = MyRandom.Random() * 2 * Math.PI; const float MaxDistance = 10f; const float MinDistance = 6f; var distance = MyRandom.Random((int)MinDistance, (int)MaxDistance) / 10.0f; var targetPos = pos + new Vector2(distance * (float)Math.Cos(randomRadian), distance * (float)Math.Sin(randomRadian)); if (SceneObstacle.ObstacleValue.Obstacle == _this.GetObstacleValue(targetPos.X, targetPos.Y)) { item.SetPosition(pos); } else { item.SetPosition(targetPos); } item.OrginPos = pos; _this.EnterScene(item); return(item); }
public AutoPlayer CreateAutoPlayer(Scene _this, LogicSimpleData logic, SceneSimpleData scene, Vector2 pos, Vector2 dir) { var autoPlayer = new AutoPlayer(); autoPlayer.Init(_this.GenerateNextId(), logic, scene); if (!_this.ValidPosition(pos)) { Logger.Error("CreateAutoPlayer postion is invalid. PlayerId={2},name={0}, pos={1}", autoPlayer.GetName(), pos, logic.Id); } autoPlayer.SetPosition(pos.X, pos.Y); autoPlayer.SetDirection(dir); _this.EnterScene(autoPlayer); return(autoPlayer); }