private void OnChangeFace(IPlayerEntity player, ChangeFaceEventArgs e) { var worldConfiguration = DependencyContainer.Instance.Resolve <WorldConfiguration>(); if (!e.UseCoupon) { if (player.PlayerData.Gold < worldConfiguration.Customization.ChangeFaceCost) { WorldPacketFactory.SendDefinedText(player, DefineText.TID_GAME_LACKMONEY); } else { player.PlayerData.Gold -= (int)worldConfiguration.Customization.ChangeFaceCost; player.VisualAppearance.FaceId = (int)e.FaceId; WorldPacketFactory.SendUpdateAttributes(player, DefineAttributes.GOLD, player.PlayerData.Gold); WorldPacketFactory.SendChangeFace(player, e.FaceId); } } else { var couponItem = player.Inventory.GetItemById(DefineItem.II_SYS_SYS_SCR_FACEOFFFREE); if (couponItem == null) { WorldPacketFactory.SendDefinedText(player, DefineText.TID_GAME_WARNNING_COUPON); return; } player.Inventory.RemoveItems(couponItem.Data.Id); WorldPacketFactory.SendItemUpdate(player, UpdateItemType.UI_NUM, couponItem.UniqueId, couponItem.Quantity); WorldPacketFactory.SendChangeFace(player, e.FaceId); } }