public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; if (items != null) { foreach (FreeItem fi in items) { if (!FreeItemManager.ContainsItem(args.Rule.FreeType, FreeUtil.ReplaceVar(fi.GetKey(), args))) { FreeGameItem gi = (FreeGameItem)fi.Clone(); gi.SetItemStack(FreeUtil.ReplaceVar(gi.GetItemStackVar(), args)); gi.SetKey(FreeUtil.ReplaceVar(gi.GetKey(), args)); gi.SetImg(FreeUtil.ReplaceVar(gi.GetImg(), args)); gi.SetName(FreeUtil.ReplaceVar(gi.GetName(), args)); gi.SetDesc(FreeUtil.ReplaceVar(gi.GetDesc(), args)); gi.SetCat(FreeUtil.ReplaceVar(gi.GetCat(), args)); gi.SetIconSize(FreeUtil.ReplaceVar(gi.GetIconSize(), args)); gi.SetWidth(FreeUtil.ReplaceNumber(gi.GetWidth(), args)); gi.SetHeight(FreeUtil.ReplaceNumber(gi.GetHeight(), args)); gi.Created(fr); FreeItemManager.AddItem(args, args.Rule.FreeType, gi); } } } }
public override void DoAction(IEventArgs args) { fr = (FreeRuleEventArgs)args; PlayerEntity playerEntity = (PlayerEntity)fr.GetEntity(player); _playerEntity = playerEntity; if (playerEntity != null) { FreeData fd = (FreeData)playerEntity.freeData.FreeData; _ground = fd.freeInventory.GetInventoryManager().GetInventory(ChickenConstant.BagGround); _ground.Clear(); var bin2Ds = args.GameContext.session.serverSessionObjects.Bin2dManager.GetBin2Ds(); foreach (var bin2DState in bin2Ds) { bin2DState.Bin2D.Retrieve( new Rect(playerEntity.position.Value.x - 100, playerEntity.position.Value.z - 100, 200, 200), onFind); } _ground.GetInventoryUI().ReDraw(fr, _ground, true); } }
public static void UseItem(ItemPosition ip, FreeData fd, FreeRuleEventArgs fr) { if (ip != null) { fr.TempUse(PARA_ITEM, ip.GetKey()); if (ip.GetKey().Effect(fr)) { if (!ip.GetKey().IsGoods()) { if (ip.GetKey().IsUseClose()) { CloseInventory(ip.GetInventory(), fr); } ip.GetInventory().UseItem(fr, ip); if (ip.GetCount() <= 0 && ip.GetKey().IsConsume()) { RemoveUI(ip, fr); } } } fr.Resume(PARA_ITEM); if (!ip.GetKey().IsGoods()) { fd.freeInventory.SetCurrentItem(ip, fr); } ip.GetKey().GetParameters().AddPara(new IntPara(PARA_ITEM_USE_TIME, fr.GameContext.session.currentTimeObject.CurrentTime)); } }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; PlayerEntity player = (PlayerEntity)fr.GetEntity(target); if (player != null) { if (player.gamePlay.IsDead()) { return; } PlayerEntity sourcePlayer = null; if (!string.IsNullOrEmpty(source)) { sourcePlayer = (PlayerEntity)fr.GetEntity(source); } if (string.IsNullOrEmpty(part)) { part = ((int)EBodyPart.Chest).ToString(); } PlayerDamageInfo damageInfo = new PlayerDamageInfo(FreeUtil.ReplaceFloat(damage, args), FreeUtil.ReplaceInt(type, args), FreeUtil.ReplaceInt(part, args), 0, false, false, FreeUtil.ReplaceBool(dead, args)); BulletPlayerUtility.DoProcessPlayerHealthDamage(args.GameContext, (IGameRule)fr.Rule, sourcePlayer, player, damageInfo, null); } }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; if (StringUtil.IsNullOrEmpty(count) || count.Equals("0")) { count = INI_COUNT; } int c = FreeUtil.ReplaceInt(count, args); FreeItem item = FreeItemManager.GetItem(fr, FreeUtil.ReplaceVar(key, args), c); if (item != null) { if (!StringUtil.IsNullOrEmpty(time)) { ((FreeGameItem)item).SetTime(time); } item.Drop(fr, pos.Select(args)); if (action != null) { args.TempUse(ParaConstant.PARA_ITEM, item); action.Act(args); args.Resume(ParaConstant.PARA_ITEM); } } }
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) { } /*SimpleProto message = FreePool.Allocate(); * message.Key = FreeMessageConstant.ChangeAvatar; * * int itemId = FreeUtil.ReplaceInt("{item.itemId}", args); * * playerEntity.WeaponController().PickUpWeapon(WeaponUtil.CreateScan(itemId)); * //playerEntity.bag.Bag.SetWeaponBullet(30); * //playerEntity.bag.Bag.SetReservedCount(100); * * message.Ins.Add(itemId); * * message.Ks.Add(2); * * playerEntity.network.NetworkChannel.SendReliable((int)EServer2ClientMessage.FreeData, message);*/ }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; IGameUnit player = GetPlayer(args); if (StringUtil.IsNullOrEmpty(count) || count.Equals("0")) { count = "0"; } method = new SelectMethod(FreeUtil.ReplaceVar(exp, args)); if (player != null) { FreeData fd = (FreeData)player; ItemPosition[] currentItems = fd.freeInventory.Select(method); fr.TempUse("current", fd); int c = FreeUtil.ReplaceInt(count, args); for (int i = 0; i < currentItems.Length; i++) { ItemPosition ip = currentItems[i]; ip.SetCount(c); ip.GetKey().SetCount(c); ip.GetInventory().GetInventoryUI().UpdateItem(fr, ip.GetInventory(), ip); } fr.Resume("current"); } }
public static void UseItem(string key, FreeData fd, ISkillArgs args) { if (fd.Player.stateInterface.State.GetCurrentPostureState() == PostureInConfig.Climb) { return; } FreeRuleEventArgs fr = (FreeRuleEventArgs)args; ItemPosition ip = GetItemPosition(args, key, fd.freeInventory.GetInventoryManager()); if (ip != null && ip.key.IsConsume() && FreeItemConfig.GetSing(ip.key) > 0) { args.TempUse("current", fd); args.TempUse("item", ip); if (ip.key.CanUse(args)) { FreeItemConfig.UseAnimation(args.GameContext, fd, ip.key.GetKey()); fd.freeInventory.StartUseItem(args, fd, ip, FreeItemConfig.GetSing(ip.key), FreeItemConfig.GetSound(ip.key.GetKey())); } args.Resume("current"); args.Resume("item"); } else { UseItem(ip, fd, fr); } }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; IGameUnit unit = GetPlayer(args); if (unit != null) { PlayerEntity p = ((FreeData)unit).Player; int index = FreeUtil.ReplaceInt(weaponKey, args); EWeaponSlotType currentSlot = p.GetBagLogicImp().GetCurrentWeaponSlot(); if (index > 0) { currentSlot = FreeWeaponUtil.GetSlotType(index); } Debug.LogFormat("remove weapon: " + index); p.playerAction.Logic.DropWeapon(currentSlot); //SimpleProto message = new SimpleProto(); //message.Key = FreeMessageConstant.ChangeAvatar; //message.Ins.Add((int)currentSlot); //message.Ks.Add(6); //p.network.NetworkChannel.SendReliable((int)EServer2ClientMessage.FreeData, message); } }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; if (!StringUtil.IsNullOrEmpty(entity)) { object obj = fr.GetEntity(FreeUtil.ReplaceVar(entity, args)); if (obj is FreeMoveEntity) { fr.TempUse("entity", (FreeEntityData)((FreeMoveEntity)obj).freeData.FreeData); action.Act(args); fr.Resume("entity"); } } else { foreach (FreeMoveEntity free in ((Contexts)(fr.GameContext)).freeMove.GetEntities()) { if (free.hasFreeData && free.freeData.FreeData != null) { fr.TempUse("entity", (FreeEntityData)free.freeData.FreeData); if (condition == null || condition.Meet(args)) { if (action != null) { action.Act(args); } } fr.Resume("entity"); } } } }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; IGameUnit player = GetPlayer(args); if (player != null) { IParable pa = fr.GetUnit(item); if (pa is ItemPosition) { ItemPosition ip = (ItemPosition)pa; FreeData fd = (FreeData)player; ItemInventory toInv = fd.freeInventory.GetInventoryManager().GetInventory(FreeUtil.ReplaceVar(toInventory, args)); if (toInv != null) { int toX = 0; int toY = 0; if (string.IsNullOrEmpty(x) && string.IsNullOrEmpty(y)) { int[] next = toInv.GetNextEmptyPosition(ip.GetKey()); toX = next[0]; toY = next[1]; } else { toX = FreeUtil.ReplaceInt(x, args); toY = FreeUtil.ReplaceInt(y, args); } ItemInventoryUtil.MovePosition(ip, toInv, toX, toY, fr); } } } }
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) { SimpleProto message = FreePool.Allocate(); message.Key = FreeMessageConstant.ChangeAvatar; int itemId = FreeUtil.ReplaceInt("{item.itemId}", args); if (takeoff) { TakeOff(playerEntity, itemId); } else { PutOn(playerEntity, itemId); } ReduceDamageUtil.UpdateArmorAndHelmet((FreeData)playerEntity.freeData.FreeData); } }
public override UnitPosition Select(IEventArgs args) { IniCon(); UnitPosition up = new UnitPosition(); FreeRuleEventArgs fr = (FreeRuleEventArgs)args; if (!string.IsNullOrEmpty(player)) { object obj = fr.GetEntity(player); if (obj != null) { if (obj is PlayerEntity) { PlayerEntity playerEntity = (PlayerEntity)obj; fr.TempUse("current", (FreeData)playerEntity.freeData.FreeData); UnityPositionUtil.SetPlayerToUnitPosition(playerEntity, up); if (fromEye) { up.SetY(up.GetY() + 1.7f); } fr.Resume("current"); } if (obj is FreeMoveEntity) { FreeMoveEntity playerEntity = (FreeMoveEntity)obj; fr.TempUse("current", (FreeEntityData)playerEntity.freeData.FreeData); UnityPositionUtil.SetEntityToUnitPosition(playerEntity.position, up); fr.Resume("current"); } } } else if (!string.IsNullOrEmpty(condition)) { if (con == null || con.Meet(args)) { foreach (PlayerEntity unit in args.GameContext.player.GetInitializedPlayerEntities()) { if (unit.hasFreeData) { fr.TempUse("current", (FreeData)unit.freeData.FreeData); UnityPositionUtil.SetPlayerToUnitPosition(unit, up); fr.Resume("current"); } } } } return(GetPosition(args, up, FreeUtil.ReplaceFloat(angle, args) + up.GetYaw())); }
protected override void ExecuteUserCmd(PlayerEntity playerEntity, IUserCmd cmd) { playerEntity.stage.Value = EPlayerLoginStage.Running; playerEntity.isInitialized = true; FreeRuleEventArgs args = (FreeRuleEventArgs)contexts.session.commonSession.FreeArgs; IGameRule rule = (IGameRule)args.Rule; rule.PlayerEnter(contexts, playerEntity); }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; PlayerEntity playerEntity = (PlayerEntity)fr.GetEntity(player); int index = FreeUtil.ReplaceInt(weaponKey, args); EWeaponSlotType st = FreeWeaponUtil.GetSlotType(index); WeaponToHand(playerEntity, st); }
public void Start(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; args.TempUse("entity", this); args.TempUse(name, this); if (createAction != null) { createAction.Act(args); } FreeData creator = (FreeData)args.GetUnit("creator"); if (creator != null) { CreatorId = creator.Player.playerInfo.EntityId; } if (skills != null && skills.Count > 0) { skill = new UnitSkill(this); foreach (ISkill sk in skills) { skill.AddSkill(sk); } } move.Start(fr, _entity); xPara.SetValue(_entity.position.Value.x); yPara.SetValue(_entity.position.Value.y); zPara.SetValue(_entity.position.Value.z); if (effect != null) { AutoPositionValue auto = new AutoPositionValue(); auto.SetId(_entity.entityKey.Value.EntityId.ToString()); auto.SetField("pos"); effect.AddAuto(auto); AutoScaleValue scale = new AutoScaleValue(); scale.SetId(_entity.entityKey.Value.EntityId.ToString()); scale.SetField("scale"); effect.AddAuto(scale); effect.SetSelector(new PosAssignSelector(_entity.position.Value.x.ToString(), _entity.position.Value.y.ToString(), _entity.position.Value.z.ToString())); //Debug.LogFormat("start pos {0}", _entity.position.Value.ToString()); effect.Act(args); } args.Resume(name); args.Resume("entity"); }
public static void MovePosition(ItemPosition ip, ItemInventory toIn, int x, int y, ISkillArgs args) { ItemInventory fromIn = ip.GetInventory(); IInventoryUI fromUI = fromIn.GetInventoryUI(); IInventoryUI toUI = toIn.GetInventoryUI(); FreeRuleEventArgs fr = (FreeRuleEventArgs)args; Move(fromIn, toIn, ip, x, y, args, fr, fromUI, toUI); }
public override bool Frame(FreeRuleEventArgs args, FreeMoveEntity entity, int interval) { if (dynamic) { tempPosition = targetPos.Select(args); } float speedMeter = GetSpeed(args, entity).GetSpeed(args, interval); float dis = speedMeter * (float)interval / 1000f; if (tempPosition.Distance(GetEntityPosition(entity)) < dis) { UnityPositionUtil.SetUnitPositionToEntity(entity.position, tempPosition); if (action != null && !firstTime) { args.TempUsePara(new FloatPara("x", entity.position.Value.x)); args.TempUsePara(new FloatPara("y", entity.position.Value.y)); args.TempUsePara(new FloatPara("z", entity.position.Value.z)); action.Act(args); args.ResumePara("x"); args.ResumePara("y"); args.ResumePara("z"); firstTime = true; } if (!stayTarget) { return(true); } } else { Vector3 from = entity.position.Value; UnitPosition ep = GetEntityPosition(entity); UnityPositionUtil.Move(ep, tempPosition, dis); entity.position.Value = new Vector3(ep.GetX(), ep.GetY(), ep.GetZ()); if (hitType > 0) { bool hit = CheckHit(args, (FreeEntityData)entity.freeData.FreeData, from, entity.position.Value, dis); if (hit) { return(true); } } } return(false); }
public override void StartMove(FreeRuleEventArgs args, FreeMoveEntity entity) { tempPosition = targetPos.Select(args); if (!string.IsNullOrEmpty(useTime)) { realTime = FreeUtil.ReplaceFloat(useTime, args); } UnityPositionUtil.SetUnitPositionToEntity(entity.position, startPos.Select(args)); }
public virtual void Start(FreeRuleEventArgs args, FreeMoveEntity entity) { startTime = args.Rule.ServerTime; UnitPosition up = startPos.Select(args); entity.position.Value = new Vector3(up.GetX(), up.GetY(), up.GetZ()); StartMove(args, entity); }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; IGameUnit unit = GetPlayer(args); if (unit != null) { PlayerEntity p = ((FreeData)unit).Player; int itemId = FreeUtil.ReplaceInt(weaponId, args); int index = FreeUtil.ReplaceInt(weaponKey, args); EWeaponSlotType st = FreeWeaponUtil.GetSlotType(index); WeaponBaseAgent agent = null; if (index == 0) { agent = p.WeaponController().HeldWeaponAgent; } else { agent = p.WeaponController().GetWeaponAgent(st); } if (agent != null && agent.IsValid() && !FreeUtil.ReplaceBool(replace, args)) { return; } var scan = WeaponUtil.CreateScan(itemId); if (FreeUtil.ReplaceBool(fullAmmo, args)) { var weaponAllConfig = SingletonManager.Get <WeaponConfigManagement>().FindConfigById(itemId); scan.Bullet = weaponAllConfig.PropertyCfg.Bullet; scan.ReservedBullet = weaponAllConfig.PropertyCfg.Bulletmax; } if (index == 0) { p.WeaponController().PickUpWeapon(scan); } else { p.WeaponController().ReplaceWeaponToSlot(st, scan); if (p.stateInterface.State.CanDraw() && p.WeaponController().HeldSlotType == EWeaponSlotType.None) { p.WeaponController().TryArmWeaponImmediately(st); } } SimpleProto message = new SimpleProto(); message.Key = FreeMessageConstant.PlaySound; message.Ks.Add(2); message.Ins.Add((int)EAudioUniqueId.PickupWeapon); message.Bs.Add(true); FreeMessageSender.SendMessage(p, message); } }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; IGameUnit unit = GetPlayer(args); if (unit != null) { PlayerEntity p = ((FreeData)unit).Player; int itemId = FreeUtil.ReplaceInt(weaponId, args); int index = FreeUtil.ReplaceInt(weaponKey, args); EWeaponSlotType st = FreeWeaponUtil.GetSlotType(index); Debug.LogFormat("add weapon: " + itemId + "," + index); Logger.Debug("add weapon to team " + p.playerInfo.Camp + " player " + p.playerInfo.PlayerName); SimpleProto message = new SimpleProto(); if (index == 0) { p.WeaponController().PickUpWeapon(WeaponUtil.CreateScan(itemId)); //p.bag.Bag.SetWeaponBullet(30); //p.bag.Bag.SetReservedCount(100); } else { p.WeaponController().ReplaceWeaponToSlot(st, WeaponUtil.CreateScan(itemId)); if (p.stateInterface.State.CanDraw() && p.WeaponController().HeldSlotType == EWeaponSlotType.None) { p.WeaponController().TryArmWeapon(st); } //SwitchWeaponAction.WeaponToHand(p, st); } message.Ins.Add(itemId); if (index > 0) { message.Ins.Add((int)st); } else { message.Ins.Add(-1); } message.Ks.Add(2); message.Key = FreeMessageConstant.ChangeAvatar; FreeMessageSender.SendMessage(p, message); //p.network.NetworkChannel.SendReliable((int)EServer2ClientMessage.FreeData, message); } }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; object obj = fr.GetEntity(FreeUtil.ReplaceVar(entity, args)); if (obj is FreeMoveEntity) { FreeEntityData data = (FreeEntityData)((FreeMoveEntity)obj).freeData.FreeData; data.SetMove(args, move); } }
public void Frame(IEventArgs args, int interval) { if (_entity.isFlagDestroy) { return; } args.TempUse("entity", this); args.TempUse(name, this); FreeRuleEventArgs fr = (FreeRuleEventArgs)args; move.Frame(fr, _entity, interval); xPara.SetValue(_entity.position.Value.x); yPara.SetValue(_entity.position.Value.y); zPara.SetValue(_entity.position.Value.z); foreach (PlayerEntity player in follows) { Vector3 v = _entity.position.Value; //v.y = v.y + 20; player.position.Value = v; } if (gameObject != null) { gameObject.transform.position = _entity.position.Value; } if (skill != null) { skill.Frame((FreeRuleEventArgs)args); } if (frameAction != null) { frameAction.Act(args); } if (effect != null && args.Rule.ServerTime - lastEffectTime > 1000L) { foreach (PlayerEntity player in args.GameContext.player.GetInitializedPlayerEntities()) { if (!effect.GetPlayerIds().Contains(player.entityKey.Value.EntityId)) { effect.Act(args); effect.AddPlayerId(player.entityKey.Value.EntityId); lastEffectTime = args.Rule.ServerTime; break; } } } args.Resume(name); args.Resume("entity"); }
public override void DoAction(IEventArgs args) { if (addtimePara == null) { addtimePara = new IntPara(ParaConstant.PARA_ITEM_ADD_TIME, 0); } FreeRuleEventArgs fr = (FreeRuleEventArgs)args; if (StringUtil.IsNullOrEmpty(count)) { count = INI_COUNT; } FreeItem fi = FreeItemManager.GetItem(fr, FreeUtil.ReplaceVar(key, args), FreeUtil.ReplaceInt(count, args)); if (StringUtil.IsNullOrEmpty(name)) { name = InventoryManager.DEFAULT; } IGameUnit player = GetPlayer(args); if (player != null) { FreeData fd = (FreeData)player; args.TempUse(ParaConstant.PARA_PLAYER_CURRENT, fd); args.TempUse(ParaConstant.PARA_ITEM, fi); args.TempUsePara(new StringPara("from", ChickenConstant.BagGround)); if (action != null) { action.Act(args); } if (fd.freeInventory.GetInventoryManager().GetInventory(FreeUtil.ReplaceVar(name, args)).AddItem((ISkillArgs)args, fi, true)) { //addtimePara.setValue(fr.room.getServerTime()); fi.GetParameters().AddPara(addtimePara); } else { if (failAction != null) { fr.TempUse(ParaConstant.PARA_ITEM, fi); failAction.Act(args); fr.Resume(ParaConstant.PARA_ITEM); } } fr.ResumePara("from"); fr.Resume(ParaConstant.PARA_PLAYER_CURRENT); fr.Resume(ParaConstant.PARA_ITEM); } }
private void CallBulletFires(PlayerWeaponController controller, WeaponSideCmd cmd, Contexts contexts) { foreach (var bulletfire in _bulletFires) { bulletfire.OnBulletFire(controller, cmd); } if (SharedConfig.IsServer) { FreeRuleEventArgs args = contexts.session.commonSession.FreeArgs as FreeRuleEventArgs; (args.Rule as IGameRule).HandleWeaponFire(contexts, contexts.player.GetEntityWithEntityKey(controller.Owner), controller.GetWeaponAgent().ResConfig); } }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; IParable pe = args.GetUnit(item); if (pe != null && pe is FreeItem) { FreeItem fi = (FreeItem)pe; if (!StringUtil.IsNullOrEmpty(time)) { ((FreeGameItem)fi).SetTime(time); } fi.Drop(fr, pos.Select(args)); } }
protected override void ExecuteUserCmd(PlayerEntity playerEntity, IUserCmd cmd) { playerEntity.stage.Value = GameRules.IsChicken(contexts.session.commonSession.RoomInfo.ModeId) ? EPlayerLoginStage.WaitStart : EPlayerLoginStage.Running; playerEntity.isInitialized = true; playerEntity.gamePlay.CoverInit = true; FreeRuleEventArgs args = (FreeRuleEventArgs)contexts.session.commonSession.FreeArgs; IGameRule rule = (IGameRule)args.Rule; rule.PlayerEnter(contexts, playerEntity); _logger.InfoFormat("PlayerEnter :{0}", playerEntity.entityKey); }
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); } } }
private void HandleItem(ItemPosition ip, FreeRuleEventArgs fr) { if (action != null) { if ("true".Equals(FreeUtil.ReplaceVar(usePosition, fr))) { fr.TempUse(item, ip); } else { fr.TempUse(item, ip.GetKey()); } action.Act(fr); fr.Resume(item); } }