void GetSkillItems() { TaskerItem item11101 = ComponentFactory.CreateWithId <TaskerItem>(IdGenerater.GenerateId()); TaskerItem item21101 = ComponentFactory.CreateWithId <TaskerItem>(IdGenerater.GenerateId()); TaskerItem item31101 = ComponentFactory.CreateWithId <TaskerItem>(IdGenerater.GenerateId()); TaskerItem item41101 = ComponentFactory.CreateWithId <TaskerItem>(IdGenerater.GenerateId()); //item11101.AddComponent<NumericComponent>().Set(NumericType.ManageAdd, 10); item11101.AddComponent <NumericComponent>().Set(NumericType.ValuationAdd, 10); item21101.AddComponent <NumericComponent>().Set(NumericType.ValuationAdd, 12); item21101.AddComponent <NumericComponent>().Set(NumericType.ValuationAdd, 12); //item31101.AddComponent<NumericComponent>().Set(NumericType.MeasureAdd, 10); item31101.AddComponent <NumericComponent>().Set(NumericType.ValuationAdd, 10); item41101.AddComponent <NumericComponent>().Set(NumericType.CaseAdd, 14); item41101.AddComponent <NumericComponent>().Set(NumericType.ValuationAdd, 14); idTaskerItems.Add(item11101.Id, item11101); idTaskerItems.Add(item21101.Id, item21101); idTaskerItems.Add(item31101.Id, item31101); idTaskerItems.Add(item41101.Id, item41101); }
//从现在起 等待N毫秒后 public ETTask WaitAsync(long time) { ETTaskCompletionSource tcs = new ETTaskCompletionSource(); //创建Timer 并且生成ID 设定触发时间=当前时间+等待的时间 缓存ETTaskCompletionSource对象tcs Timer timer = new Timer { Id = IdGenerater.GenerateId(), Time = TimeHelper.Now() + time, tcs = tcs }; //管理所有timer对象的字典 this.timers[timer.Id] = timer; //管理所有时间相关的事件 key:时间 value:timerid 通过timerid可以找到以上的Timer对象 //然后获取它的tcs ... this.timeId.Add(timer.Time, timer.Id); //这个事件的时间跟当前最近要触发的时间进行比较 如果小于 那么最近要触发的事件是这个 timer.Time if (timer.Time < this.minTime) { //则进行更新最近要触发的time this.minTime = timer.Time; } //返回tcs.Task 而非tcs,所以等待的是其内部的Task对象 return(tcs.Task); }
public override void EndInit() { try { this.InstanceId = IdGenerater.GenerateId(); this.componentDict.Clear(); if (this.components != null) { foreach (Component component in this.components) { component.Parent = this; this.componentDict.Add(component.GetType(), component); } } } catch (Exception e) { Log.Error(e); } }
// accept public KChannel(uint localConn, uint remoteConn, Socket socket, IPEndPoint remoteEndPoint, KService kService) : base(kService, ChannelType.Accept) { this.InstanceId = IdGenerater.GenerateId(); this.LocalConn = localConn; this.RemoteConn = remoteConn; this.remoteEndPoint = remoteEndPoint; this.socket = socket; this.kcp = Kcp.KcpCreate(this.RemoteConn, new IntPtr(this.LocalConn)); Kcp.KcpSetoutput( this.kcp, (bytes, len, k, user) => { KService.Output(bytes, len, user); return(len); } ); Kcp.KcpNodelay(this.kcp, 1, 10, 1, 1); Kcp.KcpWndsize(this.kcp, 256, 256); Kcp.KcpSetmtu(this.kcp, 470); this.isConnected = true; this.isRecvFirstKcpMessage = false; this.lastRecvTime = kService.TimeNow; }
public static Scene CreateScene(long id, string name, SceneType sceneType, Scene parent = null) { Scene scene = (Scene)Game.ObjectPool.Fetch(typeof(Scene)); scene.Id = id; Game.EventSystem.Remove(scene.InstanceId); // 高14位是进程id scene.InstanceId = IdGenerater.GenerateSceneInstanceId(id); Game.EventSystem.RegisterSystem(scene); if (parent != null) { scene.Parent = parent; } scene.Domain = scene; scene.Name = name; scene.SceneType = sceneType; return(scene); }
public virtual async Task <Session> Accept() { AChannel channel = await this.Service.AcceptChannel(); Session session = ComponentFactory.CreateWithId <Session, NetworkComponent, AChannel>(IdGenerater.GenerateId(), this, channel); session.Parent = this; channel.ErrorCallback += (c, e) => { this.Remove(session.Id); }; this.sessions.Add(session.Id, session); return(session); }
/// <summary> /// 创建一个新Session /// </summary> public virtual Session Create(IPEndPoint ipEndPoint) { try { AChannel channel = this.Service.ConnectChannel(ipEndPoint); Session session = ComponentFactory.CreateWithId <Session, NetworkComponent, AChannel>(IdGenerater.GenerateId(), this, channel); session.Parent = this; channel.ErrorCallback += (c, e) => { this.Remove(session.Id); }; this.sessions.Add(session.Id, session); return(session); } catch (Exception e) { Log.Error(e); return(null); } }
public TService() { this.InstanceId = IdGenerater.GenerateId(); }
public ActorMessageSender Get(long actorId) { if (actorId == 0) { throw new Exception($"actor id is 0"); } IPEndPoint ipEndPoint = StartConfigComponent.Instance.GetInnerAddress(IdGenerater.GetAppIdFromId(actorId)); ActorMessageSender actorMessageSender = new ActorMessageSender(actorId, ipEndPoint); return(actorMessageSender); }
private async ETTask DetectAndCreateNewScript() { List <ComponentWithId> components = await db.GetJson(typeof(DBUpgradeScript).Name, allFindCondition); List <int> steps = new List <int>(); allUpgradingInfo = components.OfType <DBUpgradeScript>().ToList(); foreach (Type type in Game.EventSystem.GetTypes(typeof(DBUpgradeScriptAttribute)) .Where(myType => myType.IsClass && !myType.IsAbstract && myType.IsSubclassOf(typeof(DBUpgradeScriptBase)))) { DBUpgradeScriptBase script = (DBUpgradeScriptBase)Activator.CreateInstance(type); if (!steps.Contains(script.step)) { steps.Add(script.step); } else { throw new Exception($"To create upgrading script is failed! Reason: repeated step: {script.step}"); } string scriptName = script.scriptName.ToLower(); if (!allUpgradingInfo.Any(e => e.step == script.step)) { DBUpgradeScript newScript = ComponentFactory.CreateWithId <DBUpgradeScript>(IdGenerater.GenerateId()); newScript.step = script.step; newScript.scriptName = scriptName; newScript.isChecked = false; newScript.createAt = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); allUpgradingInfo.Add(newScript); newScriptCount++; } allScriptTable.Add(scriptName, script); } if (allUpgradingInfo.Count != totalScriptCount) { throw new Exception($"Database upgrading scripts count is not consistent with table {typeof(DBUpgradeScript).Name}"); } await db.AddBatch(allUpgradingInfo.OfType <ComponentWithId>().ToList(), typeof(DBUpgradeScript).Name); Console.WriteLine($"to create database upgrading script is finished"); Console.WriteLine($"new script count : {newScriptCount}, total script count : {totalScriptCount}"); }
public static async ETTask Add(long uid, ReservationAllData allData) { if (await IsExist(uid)) { Log.Error($"AddReservationDB 失敗! uid : {uid} 已經存在!"); return; } ReservationDB reservationDB = ComponentFactory.CreateWithId <ReservationDB>(IdGenerater.GenerateId()); reservationDB.uid = uid; reservationDB.allData = new MongoDB.Bson.BsonBinaryData(allData.ToByteArray()); await dbProxy.Save(reservationDB); }
protected Component() { this.InstanceId = IdGenerater.GenerateId(); }
protected Entity() { this.InstanceId = IdGenerater.GenerateId(); }
protected Entity() { this.Id = IdGenerater.GenerateId(); this.components = new HashSet <Component>(); this.componentDict = new Dictionary <Type, Component>(); }
protected Component() { this.InstanceId = IdGenerater.GenerateId(); Game.EventSystem.Add(this); }
public void Awake() { otherPlayers = new List <Unit>(); Game.Scene.GetComponent <GlobalConfigComponent>().networkPlayMode = false; Game.EventSystem.Run(EventIdType.LoadAssets); { UnitData playerData = new UnitData(); playerData.groupIndex = GroupIndex.Player; playerData.layerMask = UnitLayerMask.ALL; playerData.unitLayer = UnitLayer.Character; playerData.unitTag = UnitTag.Player; //创建主角 Unit v = UnitFactory.Create(IdGenerater.GenerateId(), 1001, playerData); v.Position = new UnityEngine.Vector3(-10, 0, -10); UnitComponent.Instance.MyUnit = v; v.AddComponent <CameraComponent>(); v.AddComponent <CommandComponent>(); var input = v.AddComponent <InputComponent>(); var list = v.GetComponent <ActiveSkillComponent>().skillList.Keys.ToArray(); input.AddSkillToHotKey("Q", list[0]); input.AddSkillToHotKey("W", list[1]); input.AddSkillToHotKey("E", list[2]); BattleEventHandler.LoadAssets(v); } UnitData monsterData = new UnitData(); monsterData.groupIndex = GroupIndex.Monster; monsterData.layerMask = UnitLayerMask.ALL; monsterData.unitLayer = UnitLayer.Character; monsterData.unitTag = UnitTag.Monster; { //创建怪物 Unit v = UnitFactory.Create(IdGenerater.GenerateId(), 1001, monsterData); v.Position = new UnityEngine.Vector3(4.2f, 4, -15); v.Rotation = UnityEngine.Quaternion.LookRotation(v.Position - UnitComponent.Instance.MyUnit.Position, Vector3.up); //v.AddComponent<PDynamicBodyComponent, Shape>(new CircleShape() { Radius = 0.5f }); BattleEventHandler.LoadAssets(v); otherPlayers.Add(v); } { //创建怪物 Unit v = UnitFactory.Create(IdGenerater.GenerateId(), 1001, monsterData); v.Position = new UnityEngine.Vector3(-10, 0, 11); v.Rotation = UnityEngine.Quaternion.LookRotation(v.Position - UnitComponent.Instance.MyUnit.Position, Vector3.up); //v.AddComponent<PDynamicBodyComponent, Shape>(new CircleShape() { Radius = 0.5f }); BattleEventHandler.LoadAssets(v); otherPlayers.Add(v); } { //创建怪物 Unit v = UnitFactory.Create(IdGenerater.GenerateId(), 1001, monsterData); v.Position = new UnityEngine.Vector3(-10, 0, 15); v.Rotation = UnityEngine.Quaternion.LookRotation(v.Position - UnitComponent.Instance.MyUnit.Position, Vector3.up); //v.AddComponent<PDynamicBodyComponent, Shape>(new CircleShape() { Radius = 0.5f }); BattleEventHandler.LoadAssets(v); otherPlayers.Add(v); } //这里准备其他角色施放技能的参数 }
protected AChannel(AService service, ChannelType channelType) { this.Id = IdGenerater.GenerateId(); this.ChannelType = channelType; this.service = service; }
private async void InsertGameData() { try { List <ComponentWithId> gameInfoList = new List <ComponentWithId>(); ETModel.GameInfo DouDiZhukWar = ComponentFactory.CreateWithId <ETModel.GameInfo>(IdGenerater.GenerateId()); DouDiZhukWar.GameId = 1; DouDiZhukWar.GameName = "斗地主"; gameInfoList.Add(DouDiZhukWar); await DBSaveHelper.SaveBatch(dbProxy, gameInfoList); DBHelper <GameInfo> .QureySingleTableAllData("GameInfo", gameList); } catch (System.Exception e) { Log.Debug($"插入游戏列表失败 信息 {e}!!!"); } }