银龙斩月
本帖最后由 银龙斩月 于 2019-3-21 04:20 编辑

想做个地图,一个类似于魔塔的rpg地图
战斗方式和游戏本身的战斗系统没有关系
而是基于一个变量
比如我想给玩家赋值攻防体,然后让玩家触碰到由方块组成的怪物身上的按钮,按钮触动怪物里的命令方块,触发远处由命令方块组成的计算系统
怪物也是有攻防体的三项数值,但是这三项数值该怎么去记,记完之后又该怎么去算
我定义的公式很简单,是回合制,
首先是玩家攻减怪物防得到变量A(怪物所收到的一次性伤害)
然后是怪物攻减玩家防得到变量B(玩家所受到的一次性伤害)
然后是怪物血除以变量A得变量C(回合数)
最后是玩家血减回合数乘以变量B的结果直接返回玩家后的剩余体力(目前我已经知道怎么给玩家自己增加计分项目)
但是我不知道怎么去计算
而且怎么记录怪物的积分项也是个问题,虽然我知道给盔甲架等实体的命名方式
但是实体上限的事情要怎么解决,而且实体过多是否会卡顿,又要怎么解决实体可能自己消失的问题(我遇到过被命名的溺尸在没开启和平模式连续消失两次的情况。)
我也想过先记录在某木板或什么奇怪的东西上,然后通过某命令去读取,但我wiki翻了好久都没翻到个能用到的命令
总之
预计怪物数量是240个最多
每次战斗需要用到的变量有
怪物攻击、怪物防御、怪物体力、和上述公式的ABC变量
而且玩家攻防体我想以包裹中红石、青金石的方法去计算,也就是说最好还要有个准确检测包裹中物品的命令
0-0全部的金粒都在这了,坐等神仙来解答

下图是关于战斗公式的三套计算方案,用于验证此公式的可行性,因为计算这种事不能让别人一边开着计算器一边在游戏里玩吧,影响体验。





Chelover_C60
本帖最后由 CHElover_C60 于 2019-3-21 07:17 编辑

java版可以做到
可以借助计分板,将怪物的攻防血都记录在里面,然后利用计分板进行计算。
红石和青金石的数量判断可以使用stats配合clear 0(1.12及之前)或者execute store配合clear 0(1.13)来记录。
具体命令可能需要你给出具体版本后我才能写出来
我看到溺尸了,正在试写

银龙斩月
CHElover_C60 发表于 2019-3-21 07:13
java版可以做到
可以借助计分板,将怪物的攻防血都记录在里面,然后利用计分板进行计算。
红石和青金石的数 ...

嗯对就是1.13.2的java版本

Chelover_C60
本帖最后由 CHElover_C60 于 2019-3-23 11:18 编辑
  1. /scoreboard objectives add attack dummy
  2. /scoreboard objectives add defense dummy
  3. /scoreboard objectives add health dummy
复制代码

设置3个计分板,用于保存玩家与怪物的三个属性。同时health也可以保存玩家的血量。
设置多个盔甲架,用于保存怪物的属性值,并添加对应的标签。示例:


设置一个盔甲架,添加标签fighting,用于获取正在战斗的怪物的属性
然后按顺序执行以下命令(已添加注释,考虑文本较长,已折叠)


对涉及到的一些命令语法做出一些解释



除了第一个命令方块以外,其他的命令方块均使用连锁需要条件保持激活,并确保每一个命令方块都指向下一个命令方块。

已知此系统的一个bug,当怪物的生命值能够被数值A整除时,怪物会在实际上多攻击一回合。比如怪物血量是50,玩家每回合能够对怪物造成10伤害,那么怪物应该只能攻击4回合,但实际上怪物攻击了5回合。解决此问题的方法是将怪物的health分数设定为设定值减1的值,比如此处可以设定怪物的health为49

下一页 最后一页