🎒背包界面

【点击下载背包界面教材】

将素材解压成文件夹放入本地客户端材质文件夹中的Dragoncore

这是一张背包的槽位图

我们想要自定义这个界面之前首先需要了解每个槽位的对应数字

在服务端Dragoncore/Gui中创建 背包.yml

开始配置

match: "GuiInventory"

必填项,否则配置不会生效

  • "hud"为自动开启,一般用于功能性快捷键提示,血条等

  • "GuiInventory"代表背包界面

  • "GuiIngameMenu"代表ESC界面

    allowEscClose: "false"

选填项,不写默认为true

选项为false时,界面开启后按ESC将无法退出界面

需要配合Functions的按键监听才能关闭界面

Functions:  #该处的方法可利用【方法.执行方法('xxx')】或【方法.异步执行方法('xxx')】来执行

  keyPress: "(方法.取当前按下键=='E' || 方法.取当前按下键=='ESCAPE')?{方法.关闭界面}:0"   
 #keyPress: 在这个界面开启时按下E或ESC都可以触发关闭界面的方法,也可以用于其他方法,关闭界面的方法主要是用于**allowEscClose**为**false**时

  open: |-      #界面打开时,会自动触发open方法
    方法.异步执行方法('每秒更新变量');
  每秒更新变量: |-
    方法.更新变量值('vault_eco_balance');
    方法.更新变量值('playerpoints_points');
    方法.延时(1000);
    方法.异步执行方法('每秒更新变量');

只有在异步方法里才可以用延时方法

open 的下面可以添加 方法.播放声音 ('xxx.ogg') 来提升逼格

教材中将会附上一些ogg格式的音频文件

变量使用的插件是PlaceholderAPI

变量值可以随意增加,它可以显示该界面中的文本变量值,如果没有更新项,则变量无效. 更新变量值在界面中没有变量时是一个可选项

可以修改延时来改变动作周期

我们在背包配置中常用的组件有:

  • 图片/texture

  • 文本/label

  • 槽位/slot

组件拥有优先值设定,在配置中的位置越靠下的组件优先值越高

教材中提供了几个可选项,如果要使用,可以自己重新排版

现在开始第一个组件:背包界面的背景

因为是教学,所以不做排版讲解

bagbg:                             #组件的名字
  type: "texture"                #这是一个图片组件
  x: "(w-bagbg.width)/2"     #x方向坐标 游戏窗口从左往右的方向
  y: "(h-bagbg.height)/2"      #y方向坐标 游戏窗口从上往下的方向
  width: "500"                   #图片的长度
  height: "260"                  #图片的高度
  texture: "教材/bagbg2.png"    #图片的客户端位置

组件名可以包涵组件类别,也可以不包含

测试组件_textrue:

测试组件_t:

测试组件:
  type: "texture"

这三种都可以作为图片组件,

因为这里图上的格子已经排好了,就可以直接开始写入背包槽位了

1-1_slot:                       #这是第一行第一个格子,slot代表格子
  x: "bagbg.x+138.5"            #这里可以直接使用算法,详细的算法可以参照WIKI
  y: "bagbg.y-104.5"
 identifier: "container_9"  

bagbg.x代表组件名为bagbg的组件的x值

这时候一个槽位就算是添加完成了,但是为什么看起来这么难受呢?

是不是觉得格子好像跟图片大小不太匹配

这时候我们就要用到一个组件值 scale,这是一个跟 identifier 同级的组件值

  scale: 1.55    #这个组件值可以按比例修改组件的大小,几乎所有的组件都可以使用,很常用

这下舒服多了

就按照这样的格式,把其他格子都写出来

还剩下合成栏和装备栏,也用同样的方法,不过因为之前没有提前摆好格子,所以每个栏位需要额外多一个配套的背景贴图

合成栏

像背包背景一样设置栏位背景图片

合成栏0_texture:
  x: "bagbg.x+320"
  y: "bagbg.y+15"
  width: 30
  height: 30
  texture: "教材/slot.png"

设置5个背景图片,然后设置栏位

合成栏0_slot:
  x: "bagbg.x+422.5"
  y: "bagbg.y+37.5"
  identifier: "container_0"
  scale: 1.55

位置请自行调整,完成后大概是这样

看起来有些突兀,加个装饰~

合成栏装饰_texture:
  x: "bagbg.x+396"
  y: "bagbg.y+33"
  texture: "教材/装饰1.png"
  width: 20
  height: 32

看起来还不错

还有装备栏没有做

跟背包栏一样先添加背景框,在背景框加上装饰传达信息

但是我如果不想加装饰,玩家要怎么才能知道这是什么栏位呢?

这时候我们就要在slot组件中加一个tip

头盔_slot:
  x: "bagbg.x+15+2.5"
  y: "bagbg.y+24+2.5"
  scale: 1.55
  identifier: "container_5"
  tip:
    - "§c§l头盔"
    - "这里可以无限向下添加tip"

回到背包,最后我们加上人物模型,画龙点睛

玩家模型_entity:
  x: "bagbg.x+70"
  y: "bagbg.y+220"
  entity: "owner"  #这里的意思是实体的拥有者,也就是自己,还可以写aim,代表指针瞄准的实体,对方血条的hud模型就是用的aim
  scale: 1.5

额外槽位

但是中间那块好像有些空旷

我们来加上金币和点券的文本吧

金币变量_label:
  x: "bagbg.x+168"
  y: "bagbg.y+33"
  texts: 
    - "方法.取变量('vault_eco_balance')"
  tip:
    - "金币"
#如果不想要小数,可以写作 方法.到整数(方法.取变量('vault_eco_balance'))

Last updated