public static void SendMarkMessage(Contexts contexts, Vector2 markPos) { SimpleProto loginSucess = FreePool.Allocate(); if (Vector2.Distance(markPos, lastAddMarkPos) > 10 / rate) { loginSucess.Key = FreeMessageConstant.MarkPos; loginSucess.Fs.Add(markPos.x); loginSucess.Fs.Add(markPos.y); loginSucess.Fs.Add(1); //add mark lastAddMarkPos = markPos; } else { loginSucess.Key = FreeMessageConstant.MarkPos; loginSucess.Fs.Add(markPos.x); loginSucess.Fs.Add(markPos.y); loginSucess.Fs.Add(0); //remove mark lastAddMarkPos = Vector2.zero; } if (contexts.session.clientSessionObjects.NetworkChannel != null) { contexts.session.clientSessionObjects.NetworkChannel.SendReliable((int)EClient2ServerMessage.FreeEvent, loginSucess); } }
public static ILInstanceHolderPoolItem Alloc(Type Type, object Value = null) { lock (TypePools) { if (!TypePools.ContainsKey(Type)) { TypePools[Type] = new List <ILInstanceHolderPool>(); } var PoolsType = TypePools[Type]; var FreePool = PoolsType.Where(Pool => Pool.HasAvailable).FirstOrDefault(); if (FreePool == null) { int NextPoolSize = 1 << (PoolsType.Count + 2); //if (NextPoolSize < 2048) NextPoolSize = 2048; #if DEBUG_ILINSTANCEHOLDERPOOL_TIME Console.BackgroundColor = ConsoleColor.DarkRed; Console.Error.Write("Create ILInstanceHolderPool({0})[{1}]...", Type, NextPoolSize); var Start = DateTime.UtcNow; #endif PoolsType.Add(FreePool = new ILInstanceHolderPool(Type, NextPoolSize)); #if DEBUG_ILINSTANCEHOLDERPOOL_TIME var End = DateTime.UtcNow; Console.Error.WriteLine("Ok({0})", End - Start); Console.ResetColor(); #endif } var Item = FreePool.Alloc(); Item.Value = Value; return(Item); } }
private void SendCmd(PlayerEntity player) { SimpleProto proto = FreePool.Allocate(); proto.Key = FreeMessageConstant.PlayerCmd; proto.Ks.Add(0); FreeMessageSender.SendMessage(player, proto); }
public override SimpleProto CreateChildren(IEventArgs args) { SimpleProto b = FreePool.Allocate(); FreeUICreateAction.Build(b, args, "0", "", false, false, list.AsIterable()); return(b); }
public override SimpleProto CreateChildren(IEventArgs args) { SimpleProto b = FreePool.Allocate(); b.Key = 1; return(b); }
public override SimpleProto CreateChildren(IEventArgs args) { SimpleProto proto = FreePool.Allocate(); proto.Key = 1; return(proto); }
public void SendSplitMessage(int number, string itemKey) { SimpleProto data = FreePool.Allocate(); data.Key = FreeMessageConstant.SplitItem; data.Ins.Add(number); data.Ss.Add(itemKey); _contexts.session.clientSessionObjects.NetworkChannel.SendReliable((int)EClient2ServerMessage.FreeEvent, data); }
public void Setup() { test = new FakeTest1(); vf = new ValueFactoryTest1("none:"); pool = new FreePool(); src = new MyMessageSource(this); stub = new StubTest1(src, test, pool, pool); xreplyMon.Set(null); }
private void StartCounter(IEventArgs args, int time, FreeData fd, bool start) { SimpleProto data = FreePool.Allocate(); data.Key = FreeMessageConstant.CountDown; data.Bs.Add(start); data.Fs.Add(time); fd.Player.network.NetworkChannel.SendReliable((int)EServer2ClientMessage.FreeData, data); }
public override void DoAction(IEventArgs args) { SimpleProto builder = FreePool.Allocate(); builder.Key = FreeMessageConstant.GroupTechStatUI; builder.Ins.Add(args.GameContext.player.count); List <TechStat> list = new List <TechStat>(); int index = 0; bool needSort = true; foreach (PlayerEntity p in args.GameContext.player.GetInitializedPlayerEntities()) { TechStat ts = new TechStat(p, index++); builder.Ps.Add(ts.ToMessage()); list.Add(ts); if (!p.statisticsData.Statistics.DataCollectSwitch) { needSort = false; } } if (needSort) { list.Sort(KillComparater); if (list.Count > 0 && list[0].kill > 0) { TechStat ts = list[0]; builder.Ps[ts.index].Ins[2] |= (1 << (int)EUIGameTitleType.Ace); } if (list.Count > 1 && list[1].kill > 0) { TechStat ts = list[1]; builder.Ps[ts.index].Ins[2] |= (1 << (int)EUIGameTitleType.Second); } if (list.Count > 2 && list[2].kill > 0) { TechStat ts = list[2]; builder.Ps[ts.index].Ins[2] |= (1 << (int)EUIGameTitleType.Third); } list.Sort(KdComparater); if (list.Count > 0 && list[0].kd > 0) { TechStat ts = list[0]; builder.Ps[ts.index].Ins[2] |= (1 << (int)EUIGameTitleType.KdKing); } } foreach (PlayerEntity p in args.GameContext.player.GetInitializedPlayerEntities()) { FreeMessageSender.SendMessage(p, builder); } }
public static void DoNothing(PlayerEntity player) { SimpleProto proto = FreePool.Allocate(); proto.Key = FreeMessageConstant.PlayerCmd; proto.Ks.Add((int)PlayerActEnum.CmdType.Idle); proto.Ks.Add(player.entityKey.Value.EntityId); FreeMessageSender.SendMessage(player, proto); }
private void HandleFrame(IEventArgs args) { if (code == "RecordFrame") { SimpleProto message = FreePool.Allocate(); message.Key = FreeMessageConstant.TestFrame; SendMessageAction.sender.SendMessage(args, message, 4, string.Empty); } }
public static void ClickItem(string key, bool right) { SimpleProto data = FreePool.Allocate(); data.Key = FreeMessageConstant.ClickImage; data.Ss.Add(GetBagKey(key)); data.Bs.Add(right); data.Bs.Add(Input.GetKey(KeyCode.LeftControl)); SingletonManager.Get <FreeUiManager>().Contexts1.session.clientSessionObjects.NetworkChannel.SendReliable((int)EClient2ServerMessage.FreeEvent, data); }
public static void AttackPlayer(PlayerEntity player, int targetId) { SimpleProto proto = FreePool.Allocate(); proto.Key = FreeMessageConstant.PlayerCmd; proto.Ks.Add((int)PlayerActEnum.CmdType.Attack); proto.Ks.Add(player.entityKey.Value.EntityId); proto.Ks.Add(targetId); FreeMessageSender.SendMessage(player, proto); }
public void Handle(ServerRoom room, PlayerEntity player, SimpleProto message) { FreeData fd = (FreeData)player.freeData.FreeData; room.ContextsWrapper.FreeArgs.TempUse(PARA_PLAYER_CURRENT, fd); string key = message.Ss[0]; int count = message.Ins[0]; if (key.StartsWith(ChickenConstant.BagDefault)) { ItemPosition ip = FreeItemManager.GetItemPosition(room.ContextsWrapper.FreeArgs, key, fd.GetFreeInventory().GetInventoryManager()); FreeItemInfo info = FreeItemConfig.GetItemInfo(ip.key.GetKey()); if (ip.GetCount() > count) { if (info.cat == (int)ECategory.Weapon && SingletonManager.Get <WeaponResourceConfigManager>().GetConfigById(info.id).Type == (int)EWeaponType_Config.ThrowWeapon) { CarryClipUtil.DeleteGrenade(count, info.id, fd, room.ContextsWrapper.FreeArgs); for (int i = 0; i < count; i++) { player.WeaponController().RemoveGreande(info.id); } } else { ip.SetCount(ip.GetCount() - count); ip.GetInventory().GetInventoryUI().ReDraw((ISkillArgs)room.ContextsWrapper.FreeArgs, ip.GetInventory(), true); } } else { ip.GetInventory().RemoveItem((ISkillArgs)room.ContextsWrapper.FreeArgs, ip); } room.RoomContexts.session.entityFactoryObject.SceneObjectEntityFactory.CreateSimpleObjectEntity( (ECategory)info.cat, info.id, count, fd.Player.position.Value); if (info.cat == (int)ECategory.GameItem && SingletonManager.Get <GameItemConfigManager>().GetConfigById(info.id).Type == (int)GameItemType.Bullet) { player.WeaponController().SetReservedBullet((EBulletCaliber)info.id, CarryClipUtil.GetClipCount(info.id, fd, room.ContextsWrapper.FreeArgs)); } SimpleProto sp = FreePool.Allocate(); sp.Key = FreeMessageConstant.PlaySound; sp.Ks.Add(2); sp.Ins.Add(5017); sp.Bs.Add(false); FreeMessageSender.SendMessage(fd.Player, sp); } room.ContextsWrapper.FreeArgs.Resume(PARA_PLAYER_CURRENT); }
public override void DoAction(IEventArgs args) { PlayerEntity playerEntity = GetPlayerEntity(args); if (null != playerEntity) { playerEntity.statisticsData.Battle.Reset(); SimpleProto sp = FreePool.Allocate(); sp.Key = FreeMessageConstant.ResetBattleData; FreeMessageSender.SendMessage(playerEntity, sp); } }
public override void DoAction(IEventArgs args) { PlayerEntity player = GetPlayerEntity(args); SimpleProto msg = FreePool.Allocate(); msg.Key = FreeMessageConstant.PlayerPressKey; msg.Bs.Add(args.GetBool(press)); msg.Ss.Add(key); msg.Ins.Add(args.GetInt(time)); FreeMessageSender.SendMessage(player, msg); }
private void SendCmd(PlayerEntity player, Vector3 v) { SimpleProto proto = FreePool.Allocate(); proto.Key = FreeMessageConstant.PlayerCmd; proto.Ks.Add(1); proto.Fs.Add(v.x); proto.Fs.Add(v.y); proto.Fs.Add(v.z); FreeMessageSender.SendMessage(player, proto); }
public static bool CanExchangeAttachment(ServerRoom room, FreeData fd, FreeItemInfo fromPart, FreeItemInfo toPart, WeaponBaseAgent fromAgent, WeaponBaseAgent toAgent) { double capacity = Math.Round(GetCapacity(fd) - GetWeight(fd), 3); int toBullet = SingletonManager.Get <WeaponPartsConfigManager>().GetConfigById(WeaponPartUtil.GetWeaponFstMatchedPartId(toPart.id, fromAgent.ConfigId)).Bullet; int fromBullet = SingletonManager.Get <WeaponPartsConfigManager>().GetConfigById(WeaponPartUtil.GetWeaponFstMatchedPartId(fromPart.id, toAgent.ConfigId)).Bullet; if (toBullet == fromBullet) { return(true); } int overBulletFrom = fromAgent.BaseComponent.Bullet - fromAgent.WeaponConfigAssy.PropertyCfg.Bullet - toBullet; int overBulletTo = toAgent.BaseComponent.Bullet - toAgent.WeaponConfigAssy.PropertyCfg.Bullet - fromBullet; float bulletWeight = 0f; if (overBulletFrom > 0) { bulletWeight += SingletonManager.Get <GameItemConfigManager>().GetConfigById((int)fromAgent.Caliber).Weight *overBulletFrom; } if (overBulletTo > 0) { bulletWeight += SingletonManager.Get <GameItemConfigManager>().GetConfigById((int)toAgent.Caliber).Weight *overBulletTo; } if (capacity < bulletWeight) { SimpleProto msg = FreePool.Allocate(); msg.Key = FreeMessageConstant.ChickenTip; msg.Ss.Add("word79"); FreeMessageSender.SendMessage(fd.Player, msg); return(false); } if (overBulletFrom > 0) { fromAgent.BaseComponent.Bullet = fromAgent.WeaponConfigAssy.PropertyCfg.Bullet + toBullet; CarryClipUtil.AddClip(overBulletFrom, (int)fromAgent.Caliber, fd, room.ContextsWrapper.FreeArgs); fd.Player.WeaponController().SetReservedBullet(fromAgent.Caliber, CarryClipUtil.GetClipCount((int)fromAgent.Caliber, fd, room.ContextsWrapper.FreeArgs)); } if (overBulletTo > 0) { toAgent.BaseComponent.Bullet = toAgent.WeaponConfigAssy.PropertyCfg.Bullet + fromBullet; CarryClipUtil.AddClip(overBulletTo, (int)toAgent.Caliber, fd, room.ContextsWrapper.FreeArgs); fd.Player.WeaponController().SetReservedBullet(toAgent.Caliber, CarryClipUtil.GetClipCount((int)toAgent.Caliber, fd, room.ContextsWrapper.FreeArgs)); } return(true); }
private void handleToGround(string from, string to, ServerRoom room, FreeData fd) { PlayerStateUtil.AddPlayerState(EPlayerGameState.InterruptItem, fd.Player.gamePlay); FreeItemManager.DragItem(from, fd, room.ContextsWrapper.FreeArgs, ChickenConstant.BagGround); SimpleProto sp = FreePool.Allocate(); sp.Key = FreeMessageConstant.PlaySound; sp.Ks.Add(2); sp.Ins.Add(5017); sp.Bs.Add(false); FreeMessageSender.SendMessage(fd.Player, sp); }
public override void DoAction(IEventArgs args) { PlayerEntity playerEntity = GetPlayerEntity(args); if (null != playerEntity) { SimpleProto sp = FreePool.Allocate(); sp.Key = FreeMessageConstant.PlayerVisibility; sp.Ins.Add(playerEntity.entityKey.Value.EntityId); sp.Bs.Add(visibility); SendMessageAction.sender.SendMessage(args, sp, 4, string.Empty); } }
private void OnPointerClickDelegate(PointerEventData eventData) { SimpleProto data = FreePool.Allocate(); data.Key = FreeMessageConstant.ClickImage; ItemComponent item = eventData.pointerPress.GetComponent <ItemComponent>(); data.Ss.Add(item.EventKey); data.Bs.Add(eventData.button == PointerEventData.InputButton.Right); data.Bs.Add(Input.GetKey(KeyCode.LeftControl)); SingletonManager.Get <FreeUiManager>().Contexts1.session.clientSessionObjects.NetworkChannel.SendReliable((int)EClient2ServerMessage.FreeEvent, data); }
public void Observe() { SimpleProto data = FreePool.Allocate(); data.Key = FreeMessageConstant.ObservePlayer; data.Ins.Add(_contexts.player.flagSelfEntity.entityKey.Value.EntityId); SingletonManager.Get <FreeUiManager>().Contexts1.session.clientSessionObjects.NetworkChannel.SendReliable((int)EClient2ServerMessage.FreeEvent, data); data = FreePool.Allocate(); data.Key = FreeUIEvent.EVENT_CLICK; data.Ss.Add("ObservePlayer"); SingletonManager.Get <FreeUiManager>().Contexts1.session.clientSessionObjects.NetworkChannel.SendReliable((int)EClient2ServerMessage.FreeEvent, data); }
public static void PressKeys(PlayerEntity player, int key, int time) { SimpleProto proto = FreePool.Allocate(); proto.Key = FreeMessageConstant.PlayerCmd; proto.Ks.Add((int)PlayerActEnum.CmdType.PressKey); proto.Ks.Add(player.entityKey.Value.EntityId); proto.Ins.Add(time); proto.Ins.Add(key); FreeMessageSender.SendMessage(player, proto); }
public static CompositeGameModule CreateRobotCompositeGameModule(Contexts contexts) { var motors = MotorsFactory.CraeteMotors(contexts, SingletonManager.Get <CameraConfigManager>().Config); var sessionObjects = contexts.session.commonSession; var gameModule = new CompositeGameModule(); IHitBoxEntityManager hitBoxEntityManager = new HitBoxEntityManager(contexts, false); ICompensationWorldFactory factory = new ClientCompensationWorldFactory(contexts.session.commonSession.GameContexts, hitBoxEntityManager); GameModule cmdModule = new UserCmdGameModule(contexts, factory, new BulletHitHandler(contexts, sessionObjects.EntityIdGenerator, null), new MeleeHitHandler(null), new ThrowingHitHandler(null), contexts.session.commonSession, motors); // cmdModule.AddSystem(new PlayerAddMarkSystem(contexts)); gameModule.AddModule(cmdModule); // gameModule.AddModule(new BulletModule(contexts)); // gameModule.AddModule(new ThrowingModule(contexts)); // gameModule.AddModule(new ClientEffectModule(contexts)); // gameModule.AddModule(new ClientVehicleModule(contexts)); // gameModule.AddModule(new ClientPlayerModule(contexts)); if (SharedConfig.IsRobot) { gameModule.AddModule(new ClientRobotModule(contexts)); } // gameModule.AddModule(new ClientSceneObjectModule(contexts, sessionObjects)); // gameModule.AddModule(new ClientSoundModule(contexts)); gameModule.AddModule(new ClientGamePlayModule(contexts)); gameModule.AddModule(new ClientFreeMoveModule(contexts)); gameModule.AddModule(new ConfigurationRefreshModule(contexts)); SimpleProto loginSucess = FreePool.Allocate(); loginSucess.Key = FreeMessageConstant.ClientLoginSucess; if (contexts.session.clientSessionObjects.NetworkChannel != null) { contexts.session.clientSessionObjects.NetworkChannel.SendReliable((int)EClient2ServerMessage.FreeEvent, loginSucess); } SingletonManager.Get <FreeUiManager>().Contexts1 = contexts; SimpleMessageManager.Instance.Init(contexts.session.entityFactoryObject.SoundEntityFactory); return(gameModule); }
public override void DoAction(IEventArgs args) { PlayerEntity player = GetPlayerEntity(args); if (player != null && player.gamePlay.CameraEntityId != 0) { player.gamePlay.CameraEntityId = 0; SimpleProto sp = FreePool.Allocate(); sp.Key = FreeMessageConstant.PlayerObserveTrigger; sp.Bs.Add(false); FreeMessageSender.SendMessage(player, sp); } }
private void HandleAuto(string from, string to, ServerRoom room, FreeData fd) { SimpleItemInfo info = PickupItemUtil.GetGroundItemInfo(room, fd, from); if (PickupItemUtil.AddItemToPlayer(room, fd.Player, info.entityId, info.cat, info.id, info.count, to)) { SimpleProto sp = FreePool.Allocate(); sp.Key = FreeMessageConstant.PlaySound; sp.Ks.Add(2); sp.Ins.Add(5018); sp.Bs.Add(false); FreeMessageSender.SendMessage(fd.Player, sp); } }
public static void WalkTo(PlayerEntity player, Vector3 v) { SimpleProto proto = FreePool.Allocate(); proto.Key = FreeMessageConstant.PlayerCmd; proto.Ks.Add((int)PlayerActEnum.CmdType.Walk); proto.Ks.Add(player.entityKey.Value.EntityId); proto.Fs.Add(v.x); proto.Fs.Add(v.y); proto.Fs.Add(v.z); FreeMessageSender.SendMessage(player, proto); }
public override void DoAction(IEventArgs args) { PlayerEntity playerEntity = GetPlayerEntity(args); int index = FreeUtil.ReplaceInt(weaponKey, args); EWeaponSlotType st = FreeWeaponUtil.GetSlotType(index); playerEntity.WeaponController().PureSwitchIn(st); SimpleProto message = FreePool.Allocate(); message.Key = FreeMessageConstant.ChangeWeapon; message.Ins.Add(index); FreeMessageSender.SendMessage(playerEntity, message); }
public override void DoAction(IEventArgs args) { if (string.IsNullOrEmpty(player)) { player = "current"; } FreeRuleEventArgs fr = (FreeRuleEventArgs)args; PlayerEntity playerEntity = (PlayerEntity)fr.GetEntity(player); IParable item = args.GetUnit("item"); if (playerEntity != null && item != null) { EWeaponSlotType type = FreeWeaponUtil.GetSlotType(FreeUtil.ReplaceInt(weaponKey, args)); SimpleProto message = FreePool.Allocate(); message.Key = FreeMessageConstant.ChangeAvatar; int itemId = FreeUtil.ReplaceInt("{item.itemId}", args); if (!delete) { playerEntity.WeaponController().SetWeaponPart(type, itemId); message.Ins.Add((int)type); message.Ins.Add(itemId); message.Ks.Add(3); FreeMessageSender.SendMessage(playerEntity, message); //playerEntity.network.NetworkChannel.SendReliable((int)EServer2ClientMessage.FreeData, message); } else { var part = SingletonManager.Get <WeaponPartsConfigManager>().GetPartType(SingletonManager.Get <WeaponPartSurvivalConfigManager>().GetDefaultPartBySetId(itemId)); playerEntity.WeaponController().DeleteWeaponPart(type, part); message.Ins.Add((int)type); message.Ins.Add((int)part); message.Ks.Add(4); FreeMessageSender.SendMessage(playerEntity, message); //playerEntity.network.NetworkChannel.SendReliable((int)EServer2ClientMessage.FreeData, message); } } }