怪物json文件各项属性介绍

来自QQTWIKI

"name": 没什么实际意义。当需要调用某个怪物时,调用的是其json文件名。

"chs_name": 怪物在游戏内显示的名字。

"character": 怪物的模型json文件名。

"elite": 值为true时,怪物在游戏内的姓名牌将表现为紫底且带有一个镶着蓝宝石的王冠,以表示这是一个精英怪。若未写出该属性,则默认值为false。

"boss": 值为true时,怪物在游戏内的姓名牌将表现为红底且带有一个红色王冠,以表示这是一个首领。若未写出该属性,则默认值为false。(当elite和boss都为true时,boss优先)

"ally": 值为true时,怪物在游戏内的姓名牌将表现为绿底,以表示这是玩家方的队友。若未写出该属性,则默认值为false。

"blood_bar": 值为true时,怪物在游戏内将会在画面上方显示血条及头像。若未写出该属性,则默认值为false。

"show_name": 值为false时,怪物的姓名牌将隐藏(并无法通过按F7显示)。若未写出该属性,则默认值为true。

"blood": 怪物的血量。

"self_damage_blood": 怪物的临界值。当怪物首次“受伤或受到回血效果”时触发。若首次受到的是伤害效果且伤害量没有超过临界值,则将实际扣血量提高至与临界值相等;若首次受到的是回血效果,则怪物将直接扣除相当于临界值的血量。临界值大于等于怪物血量的情形,触发临界值可直接致死。若未写出该属性,则默认值为0。

"speed": 怪物的移动速度,单位为格/秒。

"contact": 怪物的近身伤害。

"defense": 怪物的防御力。

"max_energy_amount": 怪物的最大电量。怪物出生时的电量即为最大电量。20230909版本后一些技能会涉及耗电量。若未写出该属性,则默认值为0,即此怪物没有电量机制。

"flying": 值为true时,怪物不受减速地板的减速效果影响。20231111版本后某些地板可带有减速效果。若未写出该属性,则默认值为false。

"is_target":20231214(械汽城实验所DLC版本)更新了此新属性。值为false时,技能"CustomGunFireSkew3x3"在随机选取瞄准目标时,此怪物总是拥有(除技能使用者以外的)最低优先级。若未写出该属性,则默认值为true。

"resent_dist": 怪物的视野范围。若玩家的中心点与怪物的中心点在水平和竖直方向的距离均小于该值,怪物就会看到玩家。

   值得一提的是,术语解释中对视野的解释与此处看似不同,但在视野r≥1时是完全等价的。实际上当r>0.5时,对于视野的理解,以下三种都是正确的:
   1.若玩家身体的任一部分位于以怪物为中心、边长为2r-1的正方形,则怪物就会看到玩家;
   2.若玩家的中心点位于以怪物为中心、边长为2r的正方形,则怪物就会看到玩家;
   3.若玩家身体的全部部分位于以怪物为中心、边长为2r+1的正方形,则怪物就会看到玩家。
   然而当视野r≤0.5时,第1种理解将不再适用。本词条采用了第2种理解。

"skills": 怪物拥有的技能集合。

对于一般的技能,其格式为:{"name": "技能名", "init": ~, "interval": ~, "max": ~}

其中init表示怪物从看到玩家到首次使用技能的时间间隔(单位为毫秒),interval表示技能冷却时间(单位为毫秒),怪物将一直使用此技能直到使用次数达到max值。

部分带有参数的技能拥有独特的格式,详见自创参数技能自创参数召唤技能


"gifts": 怪物被杀死后的掉落集合。

格式为:{"name": "掉落物品名", "possibility": 掉落概率}


"death": 怪物被杀死后的召唤怪集合。

有两种不同的死后召唤形式。

当格式为:{"name":"A"}时,此怪物死后将召唤一个正常的A。

当格式为:{"name": "B","ghost":{"time": ~,"speed": ~,"contact": ~}}时,此怪物死后将召唤一个持续时间有限的幽灵形态的B。处于幽灵形态的怪物可以穿过任何墙和糖泡。其中time表示该幽灵的持续时间(单位为毫秒),speed表示该幽灵的移动速度(单位为格/秒),contact表示该幽灵的近身伤害。


玩家基本属性

属性名     介绍    
血量(blood) 原版中最低为300,满级为4500
防御(defense) 原版默认为0;部分改图中会做微调
速度(speed) 默认满级为5.83333
糖泡数(bomb) 短时间内可同时放置的最大糖泡数
恢复速度(restore) 每恢复一个可放置糖泡的毫秒数
威力(power) 爆炸糖浆的长度格数(原版全部默认为3)
伤害(damage) 单个糖泡爆炸的基础伤害
道具(skills) 血瓶/复活卡等


怪物基本属性

属性名     介绍    
血量(blood) 为正数,否则怪物会自动消失
临界值(self_damage_blood) 怪物在第一次受伤或治疗时的最低血量(减少)变化量(且与是否仇恨无关)
防御(defense) 可正数可负数
速度(speed) 大部分怪物速度在2.4到3.6之间
近身伤害(contact) 碰到玩家时对玩家造成的伤害
视野(resent_dist) 视野值,说明见游戏原理教程(或正式定义见:视野)
技能(skills) 各种技能,包含参数(首次发动时间,发动间隔,最大发动数量)


地图特殊属性

鬼屋机制(单机版):

1. 地图map.json全局设置(在开头"basic":{}里加入,和"music"等同级):

   "haunted": true,   # 是否开启鬼屋模式
   "bg_light": 60,      # 黑暗处地图光照(0全黑~255正常光照)
   "player_light": 9,  # 玩家光圈大小(0~9)

2. 怪物发光npc.json设置

   "light": 6,              # 同玩家光圈大小

3. 障碍物发光frame/obstacle.json设置

   "LIGHT": 6,              # 同玩家光圈大小


——————


传送门功能,可在map.json的前面几行设置添加(和scroll啥的同级),示例:

         "portal": {
                 "[8,2]": {"type": "level", "target": [25,6]},
                 "[6,2]": {"type": "map", "target": 6},
                 "[4,4]": {"type": "map_set", "target": "Mo2"},
                 "[8,4]": {"type": "insert", "target": "Mo2_3"}
             }
     其中"[8,2]"表示传送入口坐标,"type"表示传送类型,"target"表示传送终点
     例子中4个"type"从上到下依次表示:本单关内传送;大地图跳关;换大地图;在后方插入一个单关


——————


水下系统(单机版):

   "ambience": "ocean.mp3",             # 环境音效
   "underwater": true,                  # 是否在水下
   "water_damping": 20,                 # 调水阻
   "rgb_light": [140,170,210],          # 调滤镜


——————


赋予游戏玩家额外特殊属性,示例:

防御不变、伤害不变,速度为1.05倍,糖泡数量增加3

"special" : {"defense": 0, "damage": 0, "speed": 1.05, "bomb": 3}


——————


巡逻游荡:

可在地图map的json文件中,指定某个怪物在发现玩家之前的游荡巡逻路径

通过额外的"patrol"参数即可设置,"patrol"的内容为一个列表[],其中按顺序存放了怪物实际的单元移动逻辑

单元逻辑会按顺序依次执行并循环,目前支持两种单元逻辑:

["move",[x,y]] # 走到(x,y)坐标处

["stop", t] # 原地停止t毫秒


示例

{"name": "LuminousVeilAGhostWizard", "y": 4, "x": 19, "patrol": [["move",[10,4]], ["stop",3000], ["move",[29,4]], ["stop",3000]]}


——————

障碍物特殊属性

1. 爆炸物示例:

   {
 "TYPE": "machine",
 "NAME": "elem30000",
 "WIDTH": 1,
 "HEIGHT": 1,
 "BLOCK": [[[1, 1]], [[1], [1]]],          # 碰撞生效位置
 "BLOCK_FLAME": [[[1, 1]], [[1], [1]]],    # 糖浆可穿过位置
 "BREAKABLE": true,                        # 能否炸毁
 "EXPLODE": 30000,                         # 爆炸伤害
 "CAN_HIDE": false,
 "INTERVAL": 100,
 "STAND": {
   "IMG": [
     "elem30000_stand_0_0.png"
   ],
   "CX": [-1],
   "CY": [-6]
 },
 "DIE": {
   "IMG": [
     "elem30000_die_0_0.png"
   ],
   "CX": [-40],
   "CY": [-42]
 }
 }


2. 可躲避仇恨的障碍物:

"CAN_HIDE"为true的障碍物也可追加设置新的 "BLOCK_SIGHT": true 参数,此时玩家躲在里面一定不会引到怪物仇恨