DragonCore
功能介绍
- 加密材质包文件,保护你的模型文件
- 自定义物品贴图,模型,支持多匹配模式
- 自定义怪物模型,可使用JSON,OBJ模型,自定义你的生物,NPC,支持动作设定
- 颠覆物品信息,高度自定义的ItemTip功能
- 按键执行指令
- 替换某个文字为指定图片,支持GIF
- 修改物品附魔颜色,让你的附魔武器拥有各种颜色
- 使用1.16才有的RPG文字颜色
- 自定义世界贴图,利用API可做到更多效果,如动态魂环等
- 可高度自定义的UI功能,可修改背包,HUD,ESC,箱子等界面
2.5.8.4更新
【序号. 后面的内容是星球用户的更新需求】
【-> 后面的是更新的内容】
1.自动更新功能开关
-> 服务端config.yml增加 SyncResource: false 即可关闭同步,对于使用了幻白的技能包的可能要注意一下
2.模型实体阴影开关
-> EntityModel.yml 对模型配置增加 shadow: false 即可隐藏阴影
3.除去play stop 开始和停止模型动作以外
再新增一个 replace 替换 替换自触发动作
例如行走时自动使用walk BOSS二阶段改成飞行时
用replace替换成fly_walk 自触发
-> controller{f=界面变量.移动动画='fly_walk'}
-> 注意,修改walk和idle动画时,一定要保证名称任存在idle和walk关键字
4.可使用指令停止播放sound
播放sound的指令设置一个是否可重叠播放
-> /core runfunction <玩家> default 方法.播放音乐1('key','xxx.ogg');
-> /core runfunction <玩家> default 方法.停止音乐('key');
-> key就是音乐的id,播放同一id会覆盖上一个,停止也需要填入这个key
5.按键cd,该冷却数据会在玩家退出游戏时移除,不会进行保存
重进游戏时cd重置, 因此无法用于长时间冷却判断
-> KeyConfig.yml
U:
# 冷却时间(秒)
cooldown: 1
commands:
- "[op]say 我是笨蛋"
6.
->服务端config.yml增加玩家tag判断名设置,该选项仅对真实玩家有效,对于npc和ady不会启用
PlayerTag: "玩家"
启用后对HeadTag的match填入 玩家 即可为玩家显示HeadTag
====修复内容====
1.修复了label组件使用scale时,离屏幕范围内太远会导致文字无法显示
2.修复异步同时初始化界面脚本时产生的异常
3.可能修复了动画名不为idle和walk时播放异常的bug?
2.5.8.5更新
【序号. 后面的内容是星球用户的更新需求】
【-> 后面的是更新的内容】
1.EntityModel精确到什么类型的生物才能替换模型
->为EntityModel.yml节点下新增配置项
-> type:
-> - "zombie"
-> 可用类型发在了龙核星球qq群: 实体ID列表.txt
2.模型加密
-> 新增了指令/core encrypt 该指令输入后会加密客户端 resourcepacks/DragonCore下所有文件
-> 同时为模型文件进行二次加密,使模型文件无法逆向获取出可读文件
-> 其他非模型文件则会以服务端config.yml中的压缩包密码进行加密
-> 【注意事项: 不提供解密功能,因此请注意备份文件后再使用该指令】
3.tag增加个是否发光glow
-> HeadTag的label和texture组件增加属性
-> glow: true
4.盔甲贴图的发光贴图
-> ArmorLayer.yml配置节点增加属性
-> glow: true
5.基岩物品播放动画指令
-> /core itemanim <玩家> <动作名>
6.headtag的文本组件的font替换字体项
-> HeadTag的label组件增加属性
-> font: "xxx.ttf"
7.icon可附加外显特效
-> 新增文件ItemEffect.yml
极品背景:
# 当物品的 lore 或 name 或 某个nbt【包含】测试材质
match: "极品背景"
# 0是背景,1是前景
mode: 1
# 图片,需要放在resourcepacks/DragonCore/icon内
texture: "ccc.png"
# width,height默认为16,图片会居中绘制
width: 16
height: 16
# 指定物品ID为167,并且匹配match的物品才会修改贴图
type: 167
8.基岩版物品替换动画idle
-> 实际上你给播放一个loop的其他动画就好了
-> 目前mod内效果是只有当其他动画播放完成后才会播放默认的idle动画
-> 也就是你loop的动画实际上是无限循环的,因此不会再播放idle动画
9.暴雪粒子更新与修复
-> 修复了暴雪粒子的mm技能选项 rotation存在异常的问题
-> 新增了选项 trans=1,1,1 对粒子的位置进行额外偏移
====修复内容====
1.修复了label的texts属性设置length或使用分行符\n时
第二行没有继承第一行的颜色加粗等属性
2.修复了暴雪粒子的mm技能选项 rotation存在异常的问题
3.再次修复了动画名不为idle和walk时无法播放的bug
2.5.8.6更新
1.修复了基岩粒子报错的bug
2.修复了Label组件调整scale时, 悬浮消息位置错误的bug
3.增加了实体发光功能,当实体命名为glow-block时,将会作为发光源照亮周围【与动态光源冲突,安装动态光源则本功能失效】
4.修改了代码格式以兼容某些优化mod 不会导致一同安装直接崩端
5.修复了ItemEffect的显示变暗等问题
2.5.8.7更新
1.更改了实体模型的移动判定代码
2.优化了Label组件对于多行渲染的问题,渲染位置超出限制区域的文字将不会进行计算【可能有BUG】
3.修复了上个版本导致mobends无法播放攻击动画的bug
4.修复了FontConfig所修改的文字,在聊天栏无法自动淡化的问题
5.界面Functions增加触发器 keyRelease 按键松开时触发
2.5.8.8更新
1.优化了实体模型的移动判定代码
2.5.8.9更新
1.对于贴图选项如 texture: "xxx"的选项
可修改格式为 "aaa.png,100|bbb.png,100|ccc.png,100"
图片则会按顺序播放,其中数字为持续时间,也就是每个图片轮询播放100毫秒
2.原版物品json模型支持了发光贴图,只需要额外放置一张与原贴图同名并加上_e的图片
如原贴图名为 xxx.png 发光贴图则为xxx_e.png
3.对于盔甲贴图ArmorLayer.yml增加了更多选项,并删除了原来的glow选项
随便一个名称啦:
# 当盔甲的 lore 或 name 或 某个nbt【包含】测试材质 -> 穿在身上的盔甲外壳就会显示为xxx材质
match: "阿巴阿巴"
# 贴图名称,需要在客户端放置盔甲贴图 armor/11.png armor/22.png
layer1: "11.png"
layer2: "22.png"
# 发光贴图,不需要使用的则直接把这两个选项删了
glowLayer1: "huanbai_layer_1 (1).gif"
glowLayer2: ""
4.修复了物品附魔后的显示附魔效果不太正常的问题(可能有bug需测试)
5.修复了obj模型有时候会读取异常的问题
2.5.9.0更新
1.修复了2.5.8.9的第一项更新的问题
2.修改了ItemEffect文件位置,现在不需要放置在icon目录了
2.修复了暴雪粒子的gif问题
2.5.9.1更新
1.修复了使用FontConfig.yml修改字体且长度大于一定值时,有可能出现的bug
2.5.9.2更新
1.为gui的texture组件增加了裁剪模板功能,指定底图之后,texture组件绘制出来的效果只有底图有的部分会显示
stencil: "底图文件名.png" # 可使用龙核自带的剪切圆形(精度为256) circle_角度 如stencil: "circle_180"
stencilWidth: 100 指定底图的宽高,如果这俩选项不写则是默认使用本组件的width和height属性
stencilHeight: 100
2.鼠标左右键将会触发插件的KeyPressEvent和KeyReleaseEvent
名称分别为 MOUSE_LEFT MOUSE_RIGHT MOUSE_MIDDLE
2.5.9.3更新
1.修复了HeadTag不显示的bug
2.修复了gui的entity组件的hideName: true不生效的问题
3.增加了界面方法
1. 方法.设置剪切板('阿巴巴') 设置系统剪切板的内容
2. 方法.取剪切板() 获取系统剪切板的内容
2.5.9.4更新
1.修改了HeadTag的渲染优先级以防止被其他mod取消
2.为gui的Functions增加了tickEnd 每tick执行一次
【可用于计时判断,如果一秒内超过了20tick即可能使用了变速软件或作弊mod】
2.5.9.5更新
1.修复了文字宽度错误问题
2.修复暴雪粒子使用gif崩端问题
3.修改了默认的实体控制器文件 next: "界面变量.静止动画"
4.龙核的音乐播放将在退出服务器后自动关闭
4.修复了几项小bug
5.新增mm技能 partvisibility{part=骨骼名;visible=true/false} 设置骨骼可视
6.玩家播放动画新增参数
/core player_start <玩家> <动作名> <播放速度(默认为1,越小越慢)(可忽略)>
7.mm技能 animation增加参数speed=1 效果同上
2.5.9.6更新
1.修复了可能出现的partvisibility无效的问题
2.5.9.7更新
1.修复了盔甲贴图错误的问题
2.5.9.8更新
1.修复了使用龙核播放ogg音乐文件时,如果同时播放过多会导致客户端卡死的问题
2.增加了方法.取世界屏幕坐标对启用了行走摇晃的对抗使其计算位置比较平稳
2.5.9.9更新
1.对播放ogg音乐,修复了音乐文件不存在会导致卡端的问题
2.客户端资源文件夹DragonCore下新增sounds文件夹,可以在里面放ogg音乐
2.6.0更新
1.增加了方法.播放音乐2(key,sound,音量频道)
2.增加了PacketSender.sendSound的音量频道参数
2.6.0.1更新
1.增加了对基岩模型动画格式的配置格式兼容
2.优化了ItemTip的匹配,并修复了有时候对§颜色字符匹配失败的bug
3.增加了HeadTag的display选项 distance_x x为整数数字,意思是与玩家实体距离x米内才会显示血条
2.6.0.2更新
1.对各位置图片兼容了mcmeta序列帧格式
2.修复了实体使用序列帧图片时,打开optifine的优化动态材质会导致崩端的问题
3.客户端config.yml增加配置HidePlayerKey: true 打开后可在游戏的按键内看到【隐藏其他玩家按钮】,如果实体名字带有§则不会隐藏
4.支持了EntityModel.yml内使用model: "xxx.bbmodel"配置,同时需要填写texture选项,但animation选项可以不用写【不推荐使用这个东东】
2.6.0.3更新
1.增加了客户端打开任意界面时,会触发插件 KeyReleaseEvent("All") 的功能
2.6.0.4更新
1.优化了物品基岩模型的动画衔接
2.增加了 方法.设置鼠标贴图('默认贴图.png', '按下时贴图.png');
3.增加了头颅模型替换功能,文件为BlockModel.yml
2.6.0.5更新
1.修复了方块模型崩端的问题
2.6.0.6更新
1.优化了基岩物品模型的渲染速度
2.修复了基岩物品模型无法使用发光贴图的问题,目前可使用texture_e.png作为发光贴图
3.增加了基岩物品模型 transform.yml 的不同状态下的旋转节点
thirdPersonLeftHand 第三人称左手
thirdPersonRightHand 第三人称右手
firstPersonLeftHand 第一人称左手
firstPersonRightHand 第一人称右手
head 头
ground 掉落物【对于该状态下,将translation的x和z设置为0.5就是居中旋转了】
gui Gui界面内
fixed 展示框
如果节点缺失,则是默认使用hand节点
4.修复了玩家替换模型后,持有物品时会一直触发attack动画的问题
5.修复了ModelAPI.setEntityModel对于开启requireColor的模型可能会失效的问题
6.修复了使用序列帧图片时,按OP重载后会导致客户端刷opengl报错的问题
7.支持了播放网链的ogg音乐文件
2.6.0.7更新
修复了当hud的currentItemSize与gui的不一致时导致的物品重叠问题
修复方案是hud不会再渲染鼠标所持有物品,仅gui会渲染
2.6.0.8更新
1.TextBox组件新增了color属性 用于修改文字颜色
如color: "85,255,85"可以改变文字颜色为绿色
2.优化了物品模型的渲染速度
3.修复了BlockManager替换的头颅方块,如果启用了lightValue,离开区块再回来亮度不显示的问题
2.6.0.9-2.6.1.1更新
1.BlockModel.yml新增属性 scale: 1.0 为缩放大小,默认值为1
2.修复了手机端可能出现的鼠标贴图替换导致游戏崩溃问题
3.增加了播放mp4的功能,使用texture组件,在其texture属性内填写 "xxx.mp4" 即可(不支持网链)
视频开始播放时会触发actions内的mediaStart 视频结束后会触发mediaStop
注意事项:仅支持windows64,其他的系统库我没塞进去,不然太大了)
2.6.1.2更新
1.修复了视频播放中途直接关闭界面可能存在的内存未被回收的问题
2.删除了测试时写的K键打开界面,2.6.1.1发布的时候忘记删了
3.可能修复了实体死亡动画无法正常播放,反而在实体死亡瞬间直接移除实体的问题
2.6.1.3更新【公开版无方块模型及视频功能】
1.新增了版本提示,客户端加入服务器后,后台会输出mod版本
2.新增了ui语法 `xx` 效果同 'xxx',但内部支持读取变量或写脚本 如
Functions:
open: "界面变量.测试='手枪'; 界面变量.小数=999.5"
测试组件:
type: label
texts: "`我有一把小${界面变量.测试}`"
#texts: "`转整数为${方法.到整数(界面变量.测试)}`"
3.修复了一个容易被小学生利用的获取压缩包密码的bug
该修复需要更新插件,且会导致2.6.1.3之前版本的客户端的龙核mod无效化
【因此如果你要更新插件,则一定得让玩家把客户端的龙核mod也更新】
【建议是先更新客户端mod,等玩家全都换完了再更新服务端插件】
4.KeyConfig.yml增加格式
猫喵咪的:
cooldown: 1
cooldownMessage: "§c指令冷却中:{second}秒"
conditions:
# papi变量,判断值,不满足的提示
- "%player_level%,>=10,等级不足十级"
commands:
- "xx"
# 可用判断值有
# 如果是数学数值判断,则有 1to10,>=10,>10,<=10,<10,=10 ,其中【1to10】代表>=1且<=10
# 如果是文本的判断,则需要写成 ==法师,如 【%skillapi_玩家职业%,==法师,你的职业不是法师,不能执行哟】
2.6.1.4-2.6.1.5更新【Mod部分】
1.支持了基岩模型绑定定位器,从而使动作在指定位置播放基岩粒子的功能【暂不支持脚本和定位器的旋转】
2.修复了textarea组件崩溃问题
3.修复了ogg音乐大量播放时会导致之前播放的音乐停止的问题
4.修复了一个内存泄露问题
5.默认将关闭龙核界面打开JEI合成列表的界面,如需要打开需在界面文件内加入enableJei: true
6.修复了方块动画无法播放的问题
7.修复了鼠标点击物品持有时的显示问题
8.修复了基岩粒子播放如果绑定了实体UUID 但客户端不存在该实体时产生的报错信息问题
9.修复了使用压缩包时,文件路径存在中文导致文件无法读取的问题【未测试】
10.texture组件增加了调用 组件名.resetMedia=1; 即可使视频重播
11.新增了实体绑定功能,可将实体A绑定到实体B的坐标以及绑定yaw和pitch【仅客户端渲染生效,在服务端那边实体依然在原来的位置】
2.6.1.4更新【插件部分】
1.由于存在安全隐患,因此删除了文件同步功能,请务必更新该版本!!!
2.移除了玩家进服时的版本提示
2.6.1.5更新【插件部分】
1.新增了指令 /core bindentity <实体UUID> <绑定到的实体UUID> <前后偏移> <上下偏移> <左右偏移> <是否绑定yaw(true/false) <是否绑定pitch(true/false)>
可将实体A绑定到实体B的坐标以及绑定yaw和pitch【仅客户端渲染生效,在服务端那边实体依然在原来的位置,碰撞箱也一样在原位置】
2.6.1.6更新
1.修复了一个客户端崩溃问题
2.6.1.7更新
1.修复了一个客户端崩溃问题
模组 2.6.1.7 版本
更新时间 2023-02-04
1.修复了一个客户端崩溃问题
2.6.1.8更新
1.优化了部分代码
2.修复了自定义头颅方块在网易客户端下会导致加载卡顿问题
3.新增了UI组件,类型为hit,作用是识别图片像素来判断鼠标是否悬浮组件
原先的texture组件只能做到长方体形的碰撞箱,该组件可做到任意形状
注意事项:不能使用gif或网链
碰撞组件:
type: hit
x: 5
y: 5
width: 100
height: 100
texture: "测试hit组件图片.png"
# 是否显示图片
render: true
actions:
enter: "方法.消息('进入')"
leave: "方法.消息('离开')"
2.6.1.9更新
1.新增了界面配置语法 if(){}else{} if(){}elseif(){}else if(){}
2.新增了界面配置语法 $xxx 等同于 变量.xxx
但存在设定需知晓: 当前语句内如果已存在 局部变量.xxx
那么$xxx实际访问的是局部变量
其他情况下$将会指定到界面变量
3.新增了二级Gui界面,可在当前界面为龙核界面的情况下
额外在界面上覆盖一个新的界面,且两个界面的 界面变量 是互通的
使用方法为 方法.打开二级界面('gui文件名,不用.yml')
当二级界面被关闭时,会触发主界面function的sub_close
4.新增方法
方法.打开二级界面('gui文件名,不用.yml')
方法.关闭主界面
方法.跨界面执行方法('subgui', 'function名称');
2.6.2.0更新【公开版暂无方块模型和视频播放功能】
1.修复了无法设置/获取hit组件属性的问题
2.修复了由于2.6.1.9修改的界面语法,会导致当语法格式错误时崩端的问题
3.修复了由于2.6.1.9导致的方法.打开gui存在部分失效的问题
3.EntityModel添加设置eye: 2 用于修改玩家模型时修改视角高度
2.6.2.1更新【公开版暂无方块模型和视频播放功能】
1.修复了播放音乐时有可能导致客户端未响应的问题
2.修复了界面语句解析时存在科学计数数值时的提示:错误的方法名: e
2.6.2.2更新
1.为界面增加属性 allowMove: true
当该值为true时,打开界面时允许玩家移动
2.新增方法
方法.取当前界面名 可以获取当前界面的名字,当未打开界面时将返回 none
方法.创建控制按键('组名', '按键名称', '按键如K'); 创建一个mc控制按键里的按键
方法.获取控制按键名('按键名称'); 获取mc控制按键里所设置的键盘按键
方法.控制按键是否按下('按键名称'); 判断按键是否按下
3.通过创建控制按键添加的按键,玩家在按下时也会发包按键给插件触发KeyPressEvent
另外需要注意的是,控制按键仅在没有打开GUI的情况下生效
2.6.2.3更新
1.修复了异步执行方法时,某些操作将失效或崩端的问题【如方法.打开gui 方法.关闭界面】
2.优化了点代码
3.修复了鼠标按下的贴图不生效问题
2.6.2.4更新
1.修复了label组件分行时存在的显示问题
2.支持替换玩家动作,需要额外插件 DragonAnimation
3.移除了实体结束动画的过渡时间【可能会产生显示问题,待测试】
4.好像还有啥,不过我忘了ovo
2.6.2.7
1. 支持了从文本解析出组件添加到界面内
Ps: ``效果同''和"",但``有额外的功能->2.6.1.3更新内容
open: |-
loop(36,{
局部变量.index = 方法.到整数(局部变量.index);
方法.添加组件(
`
背包槽位背景_${局部变量.index}:
type: texture
x: 0+${局部变量.index}%9*18-1
y: 0+方法.到整数(${局部变量.index}/9)*18-1
width: 18
height: 18
texture: "xx.png"
背包槽位_${局部变量.index}:
type: slot
x: 0+${局部变量.index}%9*18
y: 0+方法.到整数(${局部变量.index}/9)*18
identifier: "'container_' & 方法.到整数(${局部变量.index}+9)"
actions:
click: |-
方法.消息('我是' & 局部变量.当前组件.name);
方法.消息('我的id是${局部变量.index}');
`
);
局部变量.index = 局部变量.index+1;
});
2. 新增了一个特殊组件foreach,该组件并不是真的组件,而是在界面创建的时候
在当前位置循环创建出内部的组件
Ps: 如果是通过方法新建出的组件,需要执行 方法.重载界面 才会生效
循环组件:
type: foreach
# 返回数组或者整数,会按数组大小或者整数值
# 重复创建body内的组件,其中{index}将从0递增, {data}则是数组的遍历值
data: 36
# data: "方法.分割('猫猫好可爱')"
# 该处需要写成正确的yml结构,会被解析成组件插入到当前位置
body:
背包_{index}:
type: slot
x: 背景.x+10+{index}%9*18
y: 背景.y+10+方法.到整数({index}/9)*18
identifier: "'container_' & 方法.到整数({index}+9)"
actions:
click: |-
方法.消息('我是' & 局部变量.当前组件.name);
方法.消息('我的id是{index}');
文字_{index}:
type: label
x: 背景.x+200
y: 背景.y+10+{index}*10
texts: "{data}"
actions:
click: |-
方法.消息('我是{data}');
方法.消息('我的id是{index}');
3.新增了一个特殊组件import,该组件并不是真的组件,而是在界面创建的时候
在当前位置插入src所指定的界面文件内的组件【不包含Functions】
src属性包含两种写法
Ps: 如果是通过方法新建出的组件,需要执行 方法.重载界面 才会生效
导入组件:
type: import
#src: "界面文件名(不包含.yml)"
src:
文字:
type: label
x: 背景.x+200
y: 背景.y+10+{index}*10
texts: "嘿嘿"
4.新增了一个组件embed,该组件为真实的组件,效果为在当前界面嵌入另一个界面
其他界面:
type: embed
#src: "界面文件名(不包含.yml)"
src:
文字:
type: label
x: 背景.x+200
y: 背景.y+10+{index}*10
texts: "嘿嘿"
5.新增语法await,等待一定毫秒数后再执行内部方法【注意前面是没有方法.的】
await({
if(方法.界面是否已关闭){
方法.消息('执行勒,但界面被关了');
}else{
方法.消息('执行勒,界面还没关');
}
},2000);
6. 新增动画方法
# 针对组件的
方法.播放动画('背包_1', 'fscale', 1, 5, 1000, false, 2000, 500, 'EASE_IN_OUT');
方法.播放动画('背包_1.fscale', 1, 5, 1000, false, 2000, 500, 'EASE_IN_OUT');
# 针对某个变量的
方法.播放动画('界面变量.xx', 1, 5, 1000, false, 2000, 500, 'EASE_IN_OUT');
# 针对整个界面的(注意只是动画效果,鼠标依然需要指到原来的位置才能和组件交互)
方法.播放动画('x', 1, 50, 1000, false, 2000, 500, 'EASE_IN_OUT');
方法.播放动画('y', 1, 50, 1000, false, 2000, 500, 'EASE_IN_OUT');
方法.播放动画('scale', 1, 5, 1000, false, 2000, 500, 'EASE_IN_OUT');
方法.播放动画('rotatez', 1, 5, 1000, false, 2000, 500, 'EASE_IN_OUT');
参数分别为:
组件 变化属性 初始值 最终值 最终值保持时间 结束后是否固定在最终值 等待执行时间 过渡时间 曲线类型
曲线类型分别为:
LINEAR EASE_IN EASE_OUT EASE_IN_OUT
7.新增方法,可利用 /core runfunction <player> default 方法.xxx('xxx') 进行使用
方法.拉远视角(4,500,1000,100); 距离 过渡时间 持续时间 拉回过渡时间
方法.拉远视角(90, 4,500,1000,100); pitch视角 距离 过渡时间 持续时间 拉回过渡时间
方法.屏幕抖动(3,100,10,10); 抖动角度 过渡时间 回撤时间 总次数
方法.设置角视场(1.5, 1000) 乘积 持续毫秒数 就是速度药水那个屏幕效果
方法.重载界面 可以令当前界面重新读取,同时foreach和import组件也会重新生成【组件已有的自定义属性会保留】
方法.移动鼠标(100,50) 可以修改鼠标位置到指定坐标(注意这个坐标的大小和屏幕大小是不一致的,可通过以下方法获取屏幕大小)
方法.Display_Window_Width 获取游戏宽度
方法.Display_Window_Height 获取游戏高度
方法.Display_Window_X 获取鼠标x
方法.Display_Window_Y 获取鼠标y
8.优化了ItemEffect造成的掉fps问题
9.修复了与Optifine冲突导致的optifine的发光贴图不生效的问题
10.优化了模型的载入速度
2.6.2.8
1.修复了2.6.2.7的崩溃问题
2.删除了方法.import和方法.unimport
【序号. 后面的内容是星球用户的更新需求】
【-> 后面的是更新的内容】
1.自动更新功能开关
-> 服务端config.yml增加 SyncResource: false 即可关闭同步,对于使用了幻白的技能包的可能要注意一下
2.模型实体阴影开关
-> EntityModel.yml 对模型配置增加 shadow: false 即可隐藏阴影
3.除去play stop 开始和停止模型动作以外
再新增一个 replace 替换 替换自触发动作
例如行走时自动使用walk BOSS二阶段改成飞行时
用replace替换成fly_walk 自触发
-> controller{f=界面变量.移动动画='fly_walk'}
-> 注意,修改walk和idle动画时,一定要保证名称任存在idle和walk关键字
4.可使用指令停止播放sound
播放sound的指令设置一个是否可重叠播放
-> /core runfunction <玩家> default 方法.播放音乐1('key','xxx.ogg');
-> /core runfunction <玩家> default 方法.停止音乐('key');
-> key就是音乐的id,播放同一id会覆盖上一个,停止也需要填入这个key
5.按键cd,该冷却数据会在玩家退出游戏时移除,不会进行保存
重进游戏时cd重置, 因此无法用于长时间冷却判断
-> KeyConfig.yml
U:
# 冷却时间(秒)
cooldown: 1
commands:
- "[op]say 我是笨蛋"
6.
->服务端config.yml增加玩家tag判断名设置,该选项仅对真实玩家有效,对于npc和ady不会启用
PlayerTag: "玩家"
启用后对HeadTag的match填入 玩家 即可为玩家显示HeadTag
====修复内容====
1.修复了label组件使用scale时,离屏幕范围内太远会导致文字无法显示
2.修复异步同时初始化界面脚本时产生的异常
3.可能修复了动画名不为idle和walk时播放异常的bug?
2.5.8.5更新
【序号. 后面的内容是星球用户的更新需求】
【-> 后面的是更新的内容】
1.EntityModel精确到什么类型的生物才能替换模型
->为EntityModel.yml节点下新增配置项
-> type:
-> - "zombie"
-> 可用类型发在了龙核星球qq群: 实体ID列表.txt
2.模型加密
-> 新增了指令/core encrypt 该指令输入后会加密客户端 resourcepacks/DragonCore下所有文件
-> 同时为模型文件进行二次加密,使模型文件无法逆向获取出可读文件
-> 其他非模型文件则会以服务端config.yml中的压缩包密码进行加密
-> 【注意事项: 不提供解密功能,因此请注意备份文件后再使用该指令】
3.tag增加个是否发光glow
-> HeadTag的label和texture组件增加属性
-> glow: true
4.盔甲贴图的发光贴图
-> ArmorLayer.yml配置节点增加属性
-> glow: true
5.基岩物品播放动画指令
-> /core itemanim <玩家> <动作名>
6.headtag的文本组件的font替换字体项
-> HeadTag的label组件增加属性
-> font: "xxx.ttf"
7.icon可附加外显特效
-> 新增文件ItemEffect.yml
极品背景:
# 当物品的 lore 或 name 或 某个nbt【包含】测试材质
match: "极品背景"
# 0是背景,1是前景
mode: 1
# 图片,需要放在resourcepacks/DragonCore/icon内
texture: "ccc.png"
# width,height默认为16,图片会居中绘制
width: 16
height: 16
# 指定物品ID为167,并且匹配match的物品才会修改贴图
type: 167
8.基岩版物品替换动画idle
-> 实际上你给播放一个loop的其他动画就好了
-> 目前mod内效果是只有当其他动画播放完成后才会播放默认的idle动画
-> 也就是你loop的动画实际上是无限循环的,因此不会再播放idle动画
9.暴雪粒子更新与修复
-> 修复了暴雪粒子的mm技能选项 rotation存在异常的问题
-> 新增了选项 trans=1,1,1 对粒子的位置进行额外偏移
====修复内容====
1.修复了label的texts属性设置length或使用分行符\n时
第二行没有继承第一行的颜色加粗等属性
2.修复了暴雪粒子的mm技能选项 rotation存在异常的问题
3.再次修复了动画名不为idle和walk时无法播放的bug
2.5.8.6更新
1.修复了基岩粒子报错的bug
2.修复了Label组件调整scale时, 悬浮消息位置错误的bug
3.增加了实体发光功能,当实体命名为glow-block时,将会作为发光源照亮周围【与动态光源冲突,安装动态光源则本功能失效】
4.修改了代码格式以兼容某些优化mod 不会导致一同安装直接崩端
5.修复了ItemEffect的显示变暗等问题
2.5.8.7更新
1.更改了实体模型的移动判定代码
2.优化了Label组件对于多行渲染的问题,渲染位置超出限制区域的文字将不会进行计算【可能有BUG】
3.修复了上个版本导致mobends无法播放攻击动画的bug
4.修复了FontConfig所修改的文字,在聊天栏无法自动淡化的问题
5.界面Functions增加触发器 keyRelease 按键松开时触发
2.5.8.8更新
1.优化了实体模型的移动判定代码
2.5.8.9更新
1.对于贴图选项如 texture: "xxx"的选项
可修改格式为 "aaa.png,100|bbb.png,100|ccc.png,100"
图片则会按顺序播放,其中数字为持续时间,也就是每个图片轮询播放100毫秒
2.原版物品json模型支持了发光贴图,只需要额外放置一张与原贴图同名并加上_e的图片
如原贴图名为 xxx.png 发光贴图则为xxx_e.png
3.对于盔甲贴图ArmorLayer.yml增加了更多选项,并删除了原来的glow选项
随便一个名称啦:
# 当盔甲的 lore 或 name 或 某个nbt【包含】测试材质 -> 穿在身上的盔甲外壳就会显示为xxx材质
match: "阿巴阿巴"
# 贴图名称,需要在客户端放置盔甲贴图 armor/11.png armor/22.png
layer1: "11.png"
layer2: "22.png"
# 发光贴图,不需要使用的则直接把这两个选项删了
glowLayer1: "huanbai_layer_1 (1).gif"
glowLayer2: ""
4.修复了物品附魔后的显示附魔效果不太正常的问题(可能有bug需测试)
5.修复了obj模型有时候会读取异常的问题
2.5.9.0更新
1.修复了2.5.8.9的第一项更新的问题
2.修改了ItemEffect文件位置,现在不需要放置在icon目录了
2.修复了暴雪粒子的gif问题
2.5.9.1更新
1.修复了使用FontConfig.yml修改字体且长度大于一定值时,有可能出现的bug
2.5.9.2更新
1.为gui的texture组件增加了裁剪模板功能,指定底图之后,texture组件绘制出来的效果只有底图有的部分会显示
stencil: "底图文件名.png" # 可使用龙核自带的剪切圆形(精度为256) circle_角度 如stencil: "circle_180"
stencilWidth: 100 指定底图的宽高,如果这俩选项不写则是默认使用本组件的width和height属性
stencilHeight: 100
2.鼠标左右键将会触发插件的KeyPressEvent和KeyReleaseEvent
名称分别为 MOUSE_LEFT MOUSE_RIGHT MOUSE_MIDDLE
2.5.9.3更新
1.修复了HeadTag不显示的bug
2.修复了gui的entity组件的hideName: true不生效的问题
3.增加了界面方法
1. 方法.设置剪切板('阿巴巴') 设置系统剪切板的内容
2. 方法.取剪切板() 获取系统剪切板的内容
2.5.9.4更新
1.修改了HeadTag的渲染优先级以防止被其他mod取消
2.为gui的Functions增加了tickEnd 每tick执行一次
【可用于计时判断,如果一秒内超过了20tick即可能使用了变速软件或作弊mod】
2.5.9.5更新
1.修复了文字宽度错误问题
2.修复暴雪粒子使用gif崩端问题
3.修改了默认的实体控制器文件 next: "界面变量.静止动画"
4.龙核的音乐播放将在退出服务器后自动关闭
4.修复了几项小bug
5.新增mm技能 partvisibility{part=骨骼名;visible=true/false} 设置骨骼可视
6.玩家播放动画新增参数
/core player_start <玩家> <动作名> <播放速度(默认为1,越小越慢)(可忽略)>
7.mm技能 animation增加参数speed=1 效果同上
2.5.9.6更新
1.修复了可能出现的partvisibility无效的问题
2.5.9.7更新
1.修复了盔甲贴图错误的问题
2.5.9.8更新
1.修复了使用龙核播放ogg音乐文件时,如果同时播放过多会导致客户端卡死的问题
2.增加了方法.取世界屏幕坐标对启用了行走摇晃的对抗使其计算位置比较平稳
2.5.9.9更新
1.对播放ogg音乐,修复了音乐文件不存在会导致卡端的问题
2.客户端资源文件夹DragonCore下新增sounds文件夹,可以在里面放ogg音乐
2.6.0更新
1.增加了方法.播放音乐2(key,sound,音量频道)
2.增加了PacketSender.sendSound的音量频道参数
2.6.0.1更新
1.增加了对基岩模型动画格式的配置格式兼容
2.优化了ItemTip的匹配,并修复了有时候对§颜色字符匹配失败的bug
3.增加了HeadTag的display选项 distance_x x为整数数字,意思是与玩家实体距离x米内才会显示血条
2.6.0.2更新
1.对各位置图片兼容了mcmeta序列帧格式
2.修复了实体使用序列帧图片时,打开optifine的优化动态材质会导致崩端的问题
3.客户端config.yml增加配置HidePlayerKey: true 打开后可在游戏的按键内看到【隐藏其他玩家按钮】,如果实体名字带有§则不会隐藏
4.支持了EntityModel.yml内使用model: "xxx.bbmodel"配置,同时需要填写texture选项,但animation选项可以不用写【不推荐使用这个东东】
2.6.0.3更新
1.增加了客户端打开任意界面时,会触发插件 KeyReleaseEvent("All") 的功能
2.6.0.4更新
1.优化了物品基岩模型的动画衔接
2.增加了 方法.设置鼠标贴图('默认贴图.png', '按下时贴图.png');
3.增加了头颅模型替换功能,文件为BlockModel.yml
2.6.0.5更新
1.修复了方块模型崩端的问题
2.6.0.6更新
1.优化了基岩物品模型的渲染速度
2.修复了基岩物品模型无法使用发光贴图的问题,目前可使用texture_e.png作为发光贴图
3.增加了基岩物品模型 transform.yml 的不同状态下的旋转节点
thirdPersonLeftHand 第三人称左手
thirdPersonRightHand 第三人称右手
firstPersonLeftHand 第一人称左手
firstPersonRightHand 第一人称右手
head 头
ground 掉落物【对于该状态下,将translation的x和z设置为0.5就是居中旋转了】
gui Gui界面内
fixed 展示框
如果节点缺失,则是默认使用hand节点
4.修复了玩家替换模型后,持有物品时会一直触发attack动画的问题
5.修复了ModelAPI.setEntityModel对于开启requireColor的模型可能会失效的问题
6.修复了使用序列帧图片时,按OP重载后会导致客户端刷opengl报错的问题
7.支持了播放网链的ogg音乐文件
2.6.0.7更新
修复了当hud的currentItemSize与gui的不一致时导致的物品重叠问题
修复方案是hud不会再渲染鼠标所持有物品,仅gui会渲染
2.6.0.8更新
1.TextBox组件新增了color属性 用于修改文字颜色
如color: "85,255,85"可以改变文字颜色为绿色
2.优化了物品模型的渲染速度
3.修复了BlockManager替换的头颅方块,如果启用了lightValue,离开区块再回来亮度不显示的问题
2.6.0.9-2.6.1.1更新
1.BlockModel.yml新增属性 scale: 1.0 为缩放大小,默认值为1
2.修复了手机端可能出现的鼠标贴图替换导致游戏崩溃问题
3.增加了播放mp4的功能,使用texture组件,在其texture属性内填写 "xxx.mp4" 即可(不支持网链)
视频开始播放时会触发actions内的mediaStart 视频结束后会触发mediaStop
注意事项:仅支持windows64,其他的系统库我没塞进去,不然太大了)
2.6.1.2更新
1.修复了视频播放中途直接关闭界面可能存在的内存未被回收的问题
2.删除了测试时写的K键打开界面,2.6.1.1发布的时候忘记删了
3.可能修复了实体死亡动画无法正常播放,反而在实体死亡瞬间直接移除实体的问题
2.6.1.3更新【公开版无方块模型及视频功能】
1.新增了版本提示,客户端加入服务器后,后台会输出mod版本
2.新增了ui语法 `xx` 效果同 'xxx',但内部支持读取变量或写脚本 如
Functions:
open: "界面变量.测试='手枪'; 界面变量.小数=999.5"
测试组件:
type: label
texts: "`我有一把小${界面变量.测试}`"
#texts: "`转整数为${方法.到整数(界面变量.测试)}`"
3.修复了一个容易被小学生利用的获取压缩包密码的bug
该修复需要更新插件,且会导致2.6.1.3之前版本的客户端的龙核mod无效化
【因此如果你要更新插件,则一定得让玩家把客户端的龙核mod也更新】
【建议是先更新客户端mod,等玩家全都换完了再更新服务端插件】
4.KeyConfig.yml增加格式
猫喵咪的:
cooldown: 1
cooldownMessage: "§c指令冷却中:{second}秒"
conditions:
# papi变量,判断值,不满足的提示
- "%player_level%,>=10,等级不足十级"
commands:
- "xx"
# 可用判断值有
# 如果是数学数值判断,则有 1to10,>=10,>10,<=10,<10,=10 ,其中【1to10】代表>=1且<=10
# 如果是文本的判断,则需要写成 ==法师,如 【%skillapi_玩家职业%,==法师,你的职业不是法师,不能执行哟】
2.6.1.4-2.6.1.5更新【Mod部分】
1.支持了基岩模型绑定定位器,从而使动作在指定位置播放基岩粒子的功能【暂不支持脚本和定位器的旋转】
2.修复了textarea组件崩溃问题
3.修复了ogg音乐大量播放时会导致之前播放的音乐停止的问题
4.修复了一个内存泄露问题
5.默认将关闭龙核界面打开JEI合成列表的界面,如需要打开需在界面文件内加入enableJei: true
6.修复了方块动画无法播放的问题
7.修复了鼠标点击物品持有时的显示问题
8.修复了基岩粒子播放如果绑定了实体UUID 但客户端不存在该实体时产生的报错信息问题
9.修复了使用压缩包时,文件路径存在中文导致文件无法读取的问题【未测试】
10.texture组件增加了调用 组件名.resetMedia=1; 即可使视频重播
11.新增了实体绑定功能,可将实体A绑定到实体B的坐标以及绑定yaw和pitch【仅客户端渲染生效,在服务端那边实体依然在原来的位置】
2.6.1.4更新【插件部分】
1.由于存在安全隐患,因此删除了文件同步功能,请务必更新该版本!!!
2.移除了玩家进服时的版本提示
2.6.1.5更新【插件部分】
1.新增了指令 /core bindentity <实体UUID> <绑定到的实体UUID> <前后偏移> <上下偏移> <左右偏移> <是否绑定yaw(true/false) <是否绑定pitch(true/false)>
可将实体A绑定到实体B的坐标以及绑定yaw和pitch【仅客户端渲染生效,在服务端那边实体依然在原来的位置,碰撞箱也一样在原位置】
2.6.1.6更新
1.修复了一个客户端崩溃问题
2.6.1.7更新
1.修复了一个客户端崩溃问题
模组 2.6.1.7 版本
更新时间 2023-02-04
1.修复了一个客户端崩溃问题
2.6.1.8更新
1.优化了部分代码
2.修复了自定义头颅方块在网易客户端下会导致加载卡顿问题
3.新增了UI组件,类型为hit,作用是识别图片像素来判断鼠标是否悬浮组件
原先的texture组件只能做到长方体形的碰撞箱,该组件可做到任意形状
注意事项:不能使用gif或网链
碰撞组件:
type: hit
x: 5
y: 5
width: 100
height: 100
texture: "测试hit组件图片.png"
# 是否显示图片
render: true
actions:
enter: "方法.消息('进入')"
leave: "方法.消息('离开')"
2.6.1.9更新
1.新增了界面配置语法 if(){}else{} if(){}elseif(){}else if(){}
2.新增了界面配置语法 $xxx 等同于 变量.xxx
但存在设定需知晓: 当前语句内如果已存在 局部变量.xxx
那么$xxx实际访问的是局部变量
其他情况下$将会指定到界面变量
3.新增了二级Gui界面,可在当前界面为龙核界面的情况下
额外在界面上覆盖一个新的界面,且两个界面的 界面变量 是互通的
使用方法为 方法.打开二级界面('gui文件名,不用.yml')
当二级界面被关闭时,会触发主界面function的sub_close
4.新增方法
方法.打开二级界面('gui文件名,不用.yml')
方法.关闭主界面
方法.跨界面执行方法('subgui', 'function名称');
2.6.2.0更新【公开版暂无方块模型和视频播放功能】
1.修复了无法设置/获取hit组件属性的问题
2.修复了由于2.6.1.9修改的界面语法,会导致当语法格式错误时崩端的问题
3.修复了由于2.6.1.9导致的方法.打开gui存在部分失效的问题
3.EntityModel添加设置eye: 2 用于修改玩家模型时修改视角高度
2.6.2.1更新【公开版暂无方块模型和视频播放功能】
1.修复了播放音乐时有可能导致客户端未响应的问题
2.修复了界面语句解析时存在科学计数数值时的提示:错误的方法名: e
2.6.2.2更新
1.为界面增加属性 allowMove: true
当该值为true时,打开界面时允许玩家移动
2.新增方法
方法.取当前界面名 可以获取当前界面的名字,当未打开界面时将返回 none
方法.创建控制按键('组名', '按键名称', '按键如K'); 创建一个mc控制按键里的按键
方法.获取控制按键名('按键名称'); 获取mc控制按键里所设置的键盘按键
方法.控制按键是否按下('按键名称'); 判断按键是否按下
3.通过创建控制按键添加的按键,玩家在按下时也会发包按键给插件触发KeyPressEvent
另外需要注意的是,控制按键仅在没有打开GUI的情况下生效
2.6.2.3更新
1.修复了异步执行方法时,某些操作将失效或崩端的问题【如方法.打开gui 方法.关闭界面】
2.优化了点代码
3.修复了鼠标按下的贴图不生效问题
2.6.2.4更新
1.修复了label组件分行时存在的显示问题
2.支持替换玩家动作,需要额外插件 DragonAnimation
3.移除了实体结束动画的过渡时间【可能会产生显示问题,待测试】
4.好像还有啥,不过我忘了ovo
2.6.2.7
1. 支持了从文本解析出组件添加到界面内
Ps: ``效果同''和"",但``有额外的功能->2.6.1.3更新内容
open: |-
loop(36,{
局部变量.index = 方法.到整数(局部变量.index);
方法.添加组件(
`
背包槽位背景_${局部变量.index}:
type: texture
x: 0+${局部变量.index}%9*18-1
y: 0+方法.到整数(${局部变量.index}/9)*18-1
width: 18
height: 18
texture: "xx.png"
背包槽位_${局部变量.index}:
type: slot
x: 0+${局部变量.index}%9*18
y: 0+方法.到整数(${局部变量.index}/9)*18
identifier: "'container_' & 方法.到整数(${局部变量.index}+9)"
actions:
click: |-
方法.消息('我是' & 局部变量.当前组件.name);
方法.消息('我的id是${局部变量.index}');
`
);
局部变量.index = 局部变量.index+1;
});
2. 新增了一个特殊组件foreach,该组件并不是真的组件,而是在界面创建的时候
在当前位置循环创建出内部的组件
Ps: 如果是通过方法新建出的组件,需要执行 方法.重载界面 才会生效
循环组件:
type: foreach
# 返回数组或者整数,会按数组大小或者整数值
# 重复创建body内的组件,其中{index}将从0递增, {data}则是数组的遍历值
data: 36
# data: "方法.分割('猫猫好可爱')"
# 该处需要写成正确的yml结构,会被解析成组件插入到当前位置
body:
背包_{index}:
type: slot
x: 背景.x+10+{index}%9*18
y: 背景.y+10+方法.到整数({index}/9)*18
identifier: "'container_' & 方法.到整数({index}+9)"
actions:
click: |-
方法.消息('我是' & 局部变量.当前组件.name);
方法.消息('我的id是{index}');
文字_{index}:
type: label
x: 背景.x+200
y: 背景.y+10+{index}*10
texts: "{data}"
actions:
click: |-
方法.消息('我是{data}');
方法.消息('我的id是{index}');
3.新增了一个特殊组件import,该组件并不是真的组件,而是在界面创建的时候
在当前位置插入src所指定的界面文件内的组件【不包含Functions】
src属性包含两种写法
Ps: 如果是通过方法新建出的组件,需要执行 方法.重载界面 才会生效
导入组件:
type: import
#src: "界面文件名(不包含.yml)"
src:
文字:
type: label
x: 背景.x+200
y: 背景.y+10+{index}*10
texts: "嘿嘿"
4.新增了一个组件embed,该组件为真实的组件,效果为在当前界面嵌入另一个界面
其他界面:
type: embed
#src: "界面文件名(不包含.yml)"
src:
文字:
type: label
x: 背景.x+200
y: 背景.y+10+{index}*10
texts: "嘿嘿"
5.新增语法await,等待一定毫秒数后再执行内部方法【注意前面是没有方法.的】
await({
if(方法.界面是否已关闭){
方法.消息('执行勒,但界面被关了');
}else{
方法.消息('执行勒,界面还没关');
}
},2000);
6. 新增动画方法
# 针对组件的
方法.播放动画('背包_1', 'fscale', 1, 5, 1000, false, 2000, 500, 'EASE_IN_OUT');
方法.播放动画('背包_1.fscale', 1, 5, 1000, false, 2000, 500, 'EASE_IN_OUT');
# 针对某个变量的
方法.播放动画('界面变量.xx', 1, 5, 1000, false, 2000, 500, 'EASE_IN_OUT');
# 针对整个界面的(注意只是动画效果,鼠标依然需要指到原来的位置才能和组件交互)
方法.播放动画('x', 1, 50, 1000, false, 2000, 500, 'EASE_IN_OUT');
方法.播放动画('y', 1, 50, 1000, false, 2000, 500, 'EASE_IN_OUT');
方法.播放动画('scale', 1, 5, 1000, false, 2000, 500, 'EASE_IN_OUT');
方法.播放动画('rotatez', 1, 5, 1000, false, 2000, 500, 'EASE_IN_OUT');
参数分别为:
组件 变化属性 初始值 最终值 最终值保持时间 结束后是否固定在最终值 等待执行时间 过渡时间 曲线类型
曲线类型分别为:
LINEAR EASE_IN EASE_OUT EASE_IN_OUT
7.新增方法,可利用 /core runfunction <player> default 方法.xxx('xxx') 进行使用
方法.拉远视角(4,500,1000,100); 距离 过渡时间 持续时间 拉回过渡时间
方法.拉远视角(90, 4,500,1000,100); pitch视角 距离 过渡时间 持续时间 拉回过渡时间
方法.屏幕抖动(3,100,10,10); 抖动角度 过渡时间 回撤时间 总次数
方法.设置角视场(1.5, 1000) 乘积 持续毫秒数 就是速度药水那个屏幕效果
方法.重载界面 可以令当前界面重新读取,同时foreach和import组件也会重新生成【组件已有的自定义属性会保留】
方法.移动鼠标(100,50) 可以修改鼠标位置到指定坐标(注意这个坐标的大小和屏幕大小是不一致的,可通过以下方法获取屏幕大小)
方法.Display_Window_Width 获取游戏宽度
方法.Display_Window_Height 获取游戏高度
方法.Display_Window_X 获取鼠标x
方法.Display_Window_Y 获取鼠标y
8.优化了ItemEffect造成的掉fps问题
9.修复了与Optifine冲突导致的optifine的发光贴图不生效的问题
10.优化了模型的载入速度
2.6.2.8
1.修复了2.6.2.7的崩溃问题
2.删除了方法.import和方法.unimport