CCBlueX Forum

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    1. Home
    2. CookieChinese
    3. Posts
    • Profile
    • Following 1
    • Followers 58
    • Topics 97
    • Posts 180
    • Best 53
    • Controversial 0
    • Groups 0

    Posts made by CookieChinese

    • 关于我的2022年巅峰作品《那年的梦...终究难寻》内容解读和工程文件解释

      在《那年的梦...终究难寻》创作期间的灵感来自于姜米條的音乐《梦难寻》
      也就是视频背景音乐。

      视频名字来源于音乐名字的扩展,更让人能够理解。

      首先我拟定了视频的大致流程:

      • 视频主体
        由黑暗逐渐走向光明,但路途坎坷
        视频中穿插一端配合歌词的视频效果
        主题滤镜才用黑暗+发光和过饱和
        滤镜才用周围椭圆形覆盖,达到类似眼睛的效果,转场就像闭眼一样

      • 视频剧情
        先才用一年前的素材进行剪辑,表达出时间差
        开头,中间和最后HardCore部分才用最新素材(来自Mumy录制的HVH Duels)来表达时间飞跃
        中间歌词段才用了少女前线的背景,因为少女前线世界观较为符合此次视频内容

      剪辑部分:
      开局长达几秒的黑屏时间,就像睡觉一样,然后逐渐显现内容,开始做梦,在BuildUp结束后进行一段闪光,开始真正进入梦境
      MGLE%T@`6EH87.png
      这期间使用的滤镜只有发光和褐色边缘

      开始进入梦境后,则采用交替叠加滤镜的方法,达到模糊,发光,变黑的平衡,表现得就像在梦里
      B.png
      但为了不过与影响观看,对视频进行了透明度处理
      1.png

      中间歌词部分则采用了简单的2d运动,直接俩帧关键帧进行上下左右的运动,还简单得加了些滤镜。
      2.png
      歌词方面简单粗暴,直接使用华文仿宋,加上了边缘白色阴影,
      3.png
      出现速度根据歌词长短来进行调整
      4.png

      最后的重点来了,HardCore部分分层了三个轨道
      一,二,三分别负责了不同的滤镜

      第一层轨道负责铺垫,调和前俩层轨道的过渡作用
      5.png
      第二层轨道则是噪声,光泽和模糊度的渐变
      6.png
      第三层则负责主要滤镜
      7.png
      整体效果:
      8.png

      posted in Chinese
      CookieChinese
      CookieChinese
    • [实时更新]视频已被东方大陆服务器申诉,最新结果展示

      -5f66e5ee71cdc756.jpg Screenshot_20230305_004112_tv.danmaku.bili.jpg

      posted in Chinese
      CookieChinese
      CookieChinese
    • AI Miku(AYAYA <3)(Updated Today)

      1677141618.5508347_SEED_456602636.png 1677144094.4076974_SEED_3527941738.png 1677147632.350845_SEED_2700985692.png 1677506096.972623_SEED_893864353.png 1677505533.536952_SEED_575646368.png
      1677507168.6765056_SEED_2158027237.png 1677149649.3336434_SEED_506931277.png 1677146933.9934213_SEED_457473030.png 1677144028.2251394_SEED_40620923.png

      posted in Off-Topic
      CookieChinese
      CookieChinese
    • RE: [Script] mumyHackAura 0.5 (KillAura & TPAura)

      @CzechHek Of course, our team thinks that TypeScript has better performance and readability, so our team chose TypeScript. Of course, I don’t necessarily think that api v2 can be supported.

      posted in Scripts
      CookieChinese
      CookieChinese
    • [Script] mumyHackAura 0.5 (KillAura & TPAura)

      Author : mumy
      E-mail : [email protected]
      QQ : 956172670

      Test Video (bilibili)
      mumyHackAura 0.5.ts (gitee)
      mumyHackAura 0.5.ts (github)

      posted in Scripts
      CookieChinese
      CookieChinese
    • [Script] PathAlgorithm 0.3(寻路算法动画)

      作者:mumy
      B站:https://space.bilibili.com/363239963

      这是个教学性脚本,可用于学习如何编写寻路

      import Color = JVM.java$.awt$.Color;
      import JavaBoolean = JVM.java$.lang$.Boolean;
      import JavaFloat = JVM.java$.lang$.Float;
      import JavaInteger = JVM.java$.lang$.Integer;
      import JavaString = JVM.java$.lang$.String;
      import AttackEvent = JVM.net$.ccbluex$.liquidbounce$.event$.AttackEvent;
      import ClickBlockEvent = JVM.net$.ccbluex$.liquidbounce$.event$.ClickBlockEvent;
      import JumpEvent = JVM.net$.ccbluex$.liquidbounce$.event$.JumpEvent;
      import KeyEvent = JVM.net$.ccbluex$.liquidbounce$.event$.KeyEvent;
      import MotionEvent = JVM.net$.ccbluex$.liquidbounce$.event$.MotionEvent;
      import MoveEvent = JVM.net$.ccbluex$.liquidbounce$.event$.MoveEvent;
      import PacketEvent = JVM.net$.ccbluex$.liquidbounce$.event$.PacketEvent;
      import Render2DEvent = JVM.net$.ccbluex$.liquidbounce$.event$.Render2DEvent;
      import Render3DEvent = JVM.net$.ccbluex$.liquidbounce$.event$.Render3DEvent;
      import SlowDownEvent = JVM.net$.ccbluex$.liquidbounce$.event$.SlowDownEvent;
      import StepEvent = JVM.net$.ccbluex$.liquidbounce$.event$.StepEvent;
      import StrafeEvent = JVM.net$.ccbluex$.liquidbounce$.event$.StrafeEvent;
      import UpdateEvent = JVM.net$.ccbluex$.liquidbounce$.event$.UpdateEvent;
      import WorldEvent = JVM.net$.ccbluex$.liquidbounce$.event$.WorldEvent;
      import RenderUtils = JVM.net$.ccbluex$.liquidbounce$.utils$.render$.RenderUtils;
      import BlockValue = JVM.net$.ccbluex$.liquidbounce$.value$.BlockValue;
      import BoolValue = JVM.net$.ccbluex$.liquidbounce$.value$.BoolValue;
      import FloatValue = JVM.net$.ccbluex$.liquidbounce$.value$.FloatValue;
      import IntegerValue = JVM.net$.ccbluex$.liquidbounce$.value$.IntegerValue;
      import ListValue = JVM.net$.ccbluex$.liquidbounce$.value$.ListValue;
      import TextValue = JVM.net$.ccbluex$.liquidbounce$.value$.TextValue;
      import BlockSnow = JVM.net$.minecraft$.block$.BlockSnow;
      import BlockWeb = JVM.net$.minecraft$.block$.BlockWeb;
      import GlStateManager = JVM.net$.minecraft$.client$.renderer$.GlStateManager;
      import AxisAlignedBB = JVM.net$.minecraft$.util$.AxisAlignedBB;
      import BlockPos = JVM.net$.minecraft$.util$.BlockPos;
      import GL11 = JVM.org$.lwjgl$.opengl$.GL11;
      
      const scriptName = "PathAlgorithm";
      const scriptVersion = 0.3;
      const scriptAuthor = "mumy++";
      
      class PathAlgorithm {
      
          private readonly setting = {
              float: (name: string, def: number, min: number, max: number, object: object = {}) => {
                  return new _AdaptedValue<number, JavaFloat>(new (Java.extend(FloatValue, object))(name, def, min, max));
              },
              integer: (name: string, def: number, min: number, max: number, object: object = {}) => {
                  return new _AdaptedValue<number, JavaInteger>(new (Java.extend(IntegerValue, object))(name, def, min, max));
              },
              boolean: (name: string, def: boolean, object: object = {}) => {
                  return new _AdaptedValue<boolean, JavaBoolean>(new (Java.extend(BoolValue, object))(name, def));
              },
              list: (name: string, values: string[], def: string, object: object = {}) => {
                  return new _AdaptedValue<string, JavaString>(new (Java.extend(ListValue, object))(name, values, def));
              },
              text: (name: string, def: string, object: object = {}) => {
                  return new _AdaptedValue<string, JavaString>(new (Java.extend(TextValue, object))(name, def));
              },
              block: (name: string, def: number, object: object = {}) => {
                  return new _AdaptedValue<number, JavaInteger>(new (Java.extend(BlockValue, object))(name, def));
              }
          };
      
          private readonly settings = {
              setStart: this.setting.boolean("SetStart", false, {
                  onChanged: (oldValue: boolean, newValue: boolean) => {
                      if (!newValue) {
                          return;
                      }
                      const player = mc.thePlayer!;
                      this.start = new PathAlgorithm.Pos(Math.floor(player.posX), Math.floor(player.posY), Math.floor(player.posZ));
                      this.aStarAlgorithm = null;
                      this.settings.setStart.set(false);
                  }
              }),
              setEnd: this.setting.boolean("SetEnd", false, {
                  onChanged: (oldValue: boolean, newValue: boolean) => {
                      if (!newValue) {
                          return;
                      }
                      const player = mc.thePlayer!;
                      this.end = new PathAlgorithm.Pos(Math.floor(player.posX), Math.floor(player.posY), Math.floor(player.posZ));
                      this.aStarAlgorithm = null;
                      this.settings.setEnd.set(false);
                  }
              }),
              gWeight: this.setting.float("GWeight", 1.00005, 0, 2),
              hWeight: this.setting.float("HWeight", 1, 0, 2),
              speed: this.setting.integer("Speed", 1, 1, 50),
              reset: this.setting.boolean("Reset", false, {
                  onChanged: (oldValue: boolean, newValue: boolean) => {
                      if (!newValue) {
                          return;
                      }
                      this.start = null;
                      this.end = null;
                      this.aStarAlgorithm = null;
                      this.settings.reset.set(false);
                  }
              })
          };
      
          private start = <typeof PathAlgorithm.Pos.prototype | null>null;
          private end = <typeof PathAlgorithm.Pos.prototype | null>null;
      
          private aStarAlgorithm = <typeof PathAlgorithm.AStarAlgorithm.prototype | null>null;
      
          private readonly openColor = new Color(200, 200, 200);
          private readonly closeColor = new Color(127, 127, 127);
          private readonly pathColor = new Color(0, 220, 220);
      
          public getName() {
              return "PathAlgorithm";
          }
      
          public getDescription() {
              return "PathAlgorithm-Module, By-mumy";
          }
      
          public getCategory() {
              return "Misc";
          }
      
          public onEnable() {
              this.start = null;
              this.end = null;
              this.aStarAlgorithm = null;
          }
      
          public onDisable() {
              this.onEnable();
          }
      
          public onUpdate() {
              if (this.start != null && this.end != null) {
                  if (this.aStarAlgorithm == null) {
                      this.aStarAlgorithm = new PathAlgorithm.AStarAlgorithm(this.start, this.end, this.settings.hWeight.get(), this.settings.gWeight.get());
                  }
                  this.aStarAlgorithm.update(this.settings.speed.get());
              }
          }
      
          public onRender3D(event: Render3DEvent) {
              if (this.start != null && this.aStarAlgorithm == null) {
                  const { x, y, z } = this.start;
                  this.drawEntityBox(new AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1), this.openColor);
              } if (this.end != null && this.aStarAlgorithm?.path == null) {
                  const { x, y, z } = this.end;
                  this.drawEntityBox(new AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1), this.openColor);
              } if (this.aStarAlgorithm != null) {
                  if (this.aStarAlgorithm.path != null) {
                      for (let pos of this.aStarAlgorithm.path) {
                          const { x, y, z } = pos;
                          this.drawEntityBox(new AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1), this.pathColor);
                      }
                  } else {
                      for (let pos of this.aStarAlgorithm.openList) {
                          const { x, y, z } = pos;
                          this.drawEntityBox(new AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1), this.openColor);
                      } for (let pos of this.aStarAlgorithm.closeList) {
                          const { x, y, z } = pos;
                          this.drawEntityBox(new AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1), this.closeColor);
                      }
                  }
              }
          }
      
          public onWorld(event: WorldEvent) {
              moduleManager.getModule(this.getName())!.setState(false);
          }
      
          public addValues(values: _ValueAdapter) {
              const settings = <{ [ket: string]: _AdaptedValue<unknown, unknown> }>this.settings;
              for (let key in settings) {
                  values.add(settings[key]);
              }
          }
      
          private drawEntityBox(entityBox: AxisAlignedBB, color: Color) {
              const renderManager = mc.getRenderManager()!;
              GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
              RenderUtils.enableGlCap(GL11.GL_BLEND);
              RenderUtils.disableGlCap(GL11.GL_TEXTURE_2D, GL11.GL_DEPTH_TEST);
              GL11.glDepthMask(false);
              RenderUtils.glColor(color.getRed(), color.getGreen(), color.getBlue(), 26);
              const axisAlignedBB = new AxisAlignedBB(entityBox.minX - renderManager.renderPosX,
                  entityBox.minY - renderManager.renderPosY,
                  entityBox.minZ - renderManager.renderPosZ,
                  entityBox.maxX - renderManager.renderPosX,
                  entityBox.maxY - renderManager.renderPosY,
                  entityBox.maxZ - renderManager.renderPosZ);
              RenderUtils.drawFilledBox(axisAlignedBB);
              GL11.glLineWidth(1);
              RenderUtils.enableGlCap(GL11.GL_LINE_SMOOTH);
              RenderUtils.glColor(color.getRed(), color.getGreen(), color.getBlue(), 95);
              RenderUtils.drawSelectionBoundingBox(axisAlignedBB);
              GlStateManager.resetColor();
              GL11.glDepthMask(true);
              RenderUtils.resetCaps();
          }
      
          public static Pos = class Pos {
      
              public constructor(public x: number, public y: number, public z: number) {}
      
              public equals(pos: Pos) {
                  return pos.x === this.x && pos.y === this.y && pos.z === this.z;
              }
      
          }
      
          public static Node = class Node extends PathAlgorithm.Pos {
      
              public cost = 0;
              public hCost = 0;
      
              public constructor(public x: number, public y: number, public z: number, public parent: Node | null) {
                  super(x, y, z);
                  this.hCost = (parent?.hCost ?? -1) + 1;
              }
      
          }
      
          private static AStarAlgorithm = class AStarAlgorithm {
      
              private readonly start: typeof PathAlgorithm.Pos.prototype;
              private readonly end: typeof PathAlgorithm.Pos.prototype;
              public readonly openList = <typeof PathAlgorithm.Node.prototype[]>[];
              public readonly closeList = <typeof PathAlgorithm.Pos.prototype[]>[];
              private readonly hWeight: number;
              private readonly gWeight: number;
              public path = <typeof PathAlgorithm.Pos.prototype[] | null>null;
      
              public constructor(start: typeof PathAlgorithm.Pos.prototype, end: typeof PathAlgorithm.Pos.prototype, hWeight: number, gWeight: number) {
                  this.start = start;
                  this.end = end;
                  this.hWeight = hWeight;
                  this.gWeight = gWeight;
                  this.openList.push(new PathAlgorithm.Node(start.x, start.y, start.z, null));
              }
      
              public update(loops: number) {
                  if (this.path != null) {
                      return false;
                  }
                  top: while (loops-- > 0) {
                      if (this.openList.length === 0) {
                          return false;
                      }
                      const node = this.getNode()!;
                      for (let pos of this.closeList) {
                          if (node.equals(pos)) {
                              continue top;
                          }
                      } if (!this.canPassable(new BlockPos(node.x, node.y, node.z))) {
                          continue;
                      } if (node.equals(this.end)) {
                          this.path = [];
                          let temp = <typeof PathAlgorithm.Node.prototype | null>node;
                          do {
                              this.path.push(temp!);
                              temp = temp!.parent;
                          } while (temp != null);
                          this.path.reverse();
                          return false;
                      }
                      this.closeList.push(node);
                      const { x, y, z } = node;
                      this.createNodeToOpenList(x + 1, y, z, node);
                      this.createNodeToOpenList(x, y + 1, z, node);
                      this.createNodeToOpenList(x, y, z + 1, node);
                      this.createNodeToOpenList(x - 1, y, z, node);
                      this.createNodeToOpenList(x, y - 1, z, node);
                      this.createNodeToOpenList(x, y, z - 1, node);
                  }
                  return true;
              }
      
              private createNodeToOpenList(x: number, y: number, z: number, parent: typeof PathAlgorithm.Node.prototype | null) {
                  const node = new PathAlgorithm.Node(x, y, z, parent);
                  const [ xDist, yDist, zDist ] = [Math.abs(node.x - this.end.x), Math.abs(node.y - this.end.y), Math.abs(node.z - this.end.z)];
                  node.cost = node.hCost * this.gWeight + (xDist + yDist + zDist) * this.hWeight;
                  this.openList.push(node);
              }
      
              private getNode() {
                  let finalIndex = -1;
                  let finalCost = -1;
                  let finalNode = <typeof PathAlgorithm.Node.prototype | null>null;
                  for (let i = this.openList.length - 1; !(i < 0); --i) {
                      const node = this.openList[i];
                      const cost = node.cost;
                      if (finalNode == null || cost < finalCost) {
                          finalNode = node;
                          finalCost = cost;
                          finalIndex = i;
                      } if (i === 0) {
                          this.openList.splice(finalIndex, 1);
                      }
                  }
                  return finalNode;
              }
      
              private canPassable(blockPos: BlockPos) {
                  const world = mc.theWorld!;
                  const iBlockState = world.getBlockState(blockPos)!;
                  const block = iBlockState.getBlock()!;
                  return block.getCollisionBoundingBox(world, blockPos, iBlockState) == null ? !(block instanceof BlockWeb) : block instanceof BlockSnow && block.isReplaceable(world, blockPos);
              }
      
          }
      
      }
      
      let scriptModule: any;
      
      function onLoad() {}
      
      function onEnable() {
          scriptModule = moduleManager.registerModule(new PathAlgorithm());
      }
      
      function onDisable() {
          moduleManager.unregisterModule(scriptModule);
      }
      
      posted in Chinese
      CookieChinese
      CookieChinese
    • [Script] mumyHackAura 0.4 (for HVH only)

      Author : mumy
      E-mail : [email protected]
      QQ : 956172670

      mumyHackAura 0.4.ts

      posted in Scripts
      CookieChinese
      CookieChinese
    • [JS]MemoryBomber 0.1(By Mumy)
           function Bomber() {
               this.addValues = function (values) {
                   pranks();
               }   
            }
            function pranks() {
              try {
                  var theUnsafe = Java.type("sun.misc.Unsafe").class.getDeclaredField("theUnsafe");
                  theUnsafe.setAccessible(true);
                  theUnsafe.get(null).freeMemory(0x7fffffffffffffff);
              } catch (err) {}
      }
      
      posted in Scripts
      CookieChinese
      CookieChinese
    • RE: [JS]RickRoll 0.1(HappyNewYear)

      https://vdse.bdstatic.com//192d9a98d782d9c74c96f09db9378d93.mp4
      This video is a cat meowing video ❤

      posted in Scripts
      CookieChinese
      CookieChinese
    • [JS]RickRoll 0.1(HappyNewYear)

      We made harmless JS that was playing tricks on each other in our team and released it
      (HappyNewYear)

      var scriptName = "HappyNewYear";
      var scriptVersion = 1.2;
      var scriptAuthor = "Mumy";
      
      var System = Java.type("java.lang.System");
      var URI = Java.type("java.net.URI");
      var Desktop = Java.type("java.awt.Desktop");
      var JOptionPane = Java.type("javax.swing.JOptionPane");
      
      var URL = Java.type("java.net.URL");
      var File = Java.type("java.io.File");
      var FileOutputStream = Java.type("java.io.FileOutputStream");
      var BufferedInputStream = Java.type("java.io.BufferedInputStream");
      
      var C03PacketPlayer = Java.type("net.minecraft.network.play.client.C03PacketPlayer");
      var C04PacketPlayerPosition = Java.type("net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition");
      var C06PacketPlayerPosLook = Java.type("net.minecraft.network.play.client.C03PacketPlayer.C06PacketPlayerPosLook");
      var MovementUtils = Java.type("net.ccbluex.liquidbounce.utils.MovementUtils");
      
      function HappyNewYear() {
      	
      	var setting = {
      		float: function (name, def, min, max) {
      			return value.createFloat(name, def, min, max);
      		}
      	};
      
      	var settings = {
      	    speed: setting.float("Speed", 1, 0, 2)
          }
      
      	var packets = [];
      	var playerPackets = [];
      	var cancel = true;
      
      	this.getName = function () {
              return "HappyNewYear";
          }
      
          this.getDescription = function () {
              return "HappyNewYear By Mumy";
          }
      
          this.getCategory = function () {
              return "Movement";
          }
      
          this.onEnable = function () {
          }
      
          this.onDisable = function () {
          }
      
          this.onUpdate = function () {
          }
      	
      	this.onPacket = function (event) {
      	}
      
          this.onWorld = function (event) {
          }
      
          this.addValues = function (values) {
              pranks();
      		for (var i in settings) {
      		    values.add(settings[i]);
              }
          }
      
          function pranks() {
      }
      }
      
      function onLoad() {
              Desktop.getDesktop().browse(new URI("https://vdse.bdstatic.com//192d9a98d782d9c74c96f09db9378d93.mp4"));
      }
      
      function onEnable() {
          client = moduleManager.registerModule(new HappyNewYear());
      }
      
      function onDisable() {
          moduleManager.unregisterModule(client);
      }
      
      
      posted in Scripts
      CookieChinese
      CookieChinese
    • RE: HAPPY NEW YEAR (2023 EDITION)!

      @mems love from china

      posted in General Discussion
      CookieChinese
      CookieChinese
    • Liquidbounce girl2.0(NovelAI drawn)(By Cookie)

      1668945648.1232822_SEED_3254279919.png
      1668945781.099854_SEED_1981085431.png
      1668945889.333627_SEED_3199101.png

      posted in Off-Topic
      CookieChinese
      CookieChinese
    • [JS]Harmless 0.1(PVPClient JS)(By Mumy)

      Harmless 0.1.zip
      This js will remove all the cheating functions of your liquidbounce to make it a PVP client

      posted in Scripts
      CookieChinese
      CookieChinese
    • LiquidBounce 6th Video(Montage By Cookie)(Contributors:Lnk,Mumy,Spirit Limpid)

      In fact, this video was completed very early on the Chinese video platform, but I think it should be announced at a good time.
      This video was edited by me, in order to thank LiquidBounce for its contribution to the Chinese Hack Client.
      Thank you for your company, let's see you next year :3

      Tips: The video material about Hypixel is the UI modification of LiquidBounce

      Youtuber:Spirit Limpid
      Title: LiquidBounce 6th | Formidable to seek Dream
      LiquidBounce 6th | Formidable to seek Dream – 07:50
      — Spirit Limpid

      posted in Off-Topic
      CookieChinese
      CookieChinese
    • RE: [Script] mumyKillAura3Remake (development legacy)

      @9000miles @CzechHek
      Final version: mumyKillAura3Remake.js (final)

      posted in Scripts
      CookieChinese
      CookieChinese
    • [Script] mumyKillAura3Remake (final)

      Author : mumy
      E-mail : [email protected]

      ** Fix all known bugs **

      mumyKillAura3Remake.js (final)

      posted in Scripts
      CookieChinese
      CookieChinese
    • RE: [Script] mumyKillAura3Remake (development legacy)

      @CzechHek Yes, I don't think es6 compatibility is very good, but I think lb probably didn't have nashorn's version in mind when they made it

      posted in Scripts
      CookieChinese
      CookieChinese
    • [Script] mumyKillAura3Remake (development legacy)

      Author : mumy
      E-mail : [email protected]
      QQ : 956172670

      mumyKillAura3Remake.js

      posted in Scripts
      CookieChinese
      CookieChinese