本篇仅包含杀戮尖塔控制台的使用翻译。
关于控制台的两个事实:
1.目前loadout mod已经基本上能代替控制台。
2.控制台只有在运行basemod后后才能使用。
控制台
开启
使用`按键打开控制台。控制台必须在BaseMod的游戏内置mod配置中启用。按键捆绑也可以在mod配置中更改。
指令
(注:下面的“[]”表示自定义内容,实际上在控制台并不需要输入“[]”!记得加空格就行)
_________________________________________
卡组修改
deck add [名称] {卡牌数量} {升级}
添加卡牌到卡组 (可选项1: 你想要添加这张卡的整数次) (可选项2: 卡牌升级的整数次)
deck remove [名称]
从卡组删牌
deck remove all
删掉卡组里的所有牌
_________________________________________
战斗中
draw [数量]
抽牌
energy add [数量]
获得能量
energy inf
无限能量
energy remove [数量]
失去能量
hand add [名称] {卡牌数量} {升级}
添加牌到手牌中 (可选项1: 你想要添加这张卡的整数次) (可选项2: 卡牌升级的整数次)
hand remove all
消耗所有手牌(恶魔火)
hand remove [名称]
消耗手牌中的指定牌
kill all
干掉所有敌人
kill self
干掉你的角色
power [名称] [数量]
生成一个瞄准线(指的是你出攻击牌时的那种红色的箭头),对玩家或怪物施加一系列效果(注:小提一嘴,这里用到的power包括很多效果,例如:毒效果,易伤,无惧疼痛,黑暗之拥等等)
_________________________________________
战斗外
fight [怪物名称]
进入一场指定怪物名称的战斗
event [事件名称]
开始一场指定名称的事件
_________________________________________
任何时候
gold add [数量]
增加金币
gold lose [数量]
失去金币
info toggle
设置信息切换?
potion [位置] [名称]
在指定槽位(0,1或2)添加指定药水
hp add [数量]
回血
hp lose [数量]
扣血
maxhp add [数量]
加血上限
maxhp remove [数量]
扣血上限
debug [true/false]
设置是否调试
_________________________________________
遗物
relic add [名称]
添加遗物
relic list
列出所有遗物
relic remove [名称]
失去遗物
_________________________________________
解锁
unlock always
死亡时总是获得一次解锁
unlock level [level]
设置获得指定等级的解锁
_________________________________________
行动
act boss
直接传送到当前层的BOSS房
act [行动名称]
直接到指定层的开始位置
_________________________________________
进入四层打心脏的钥匙
key add [指定颜色 或者 all]
将相应的钥匙添加到当前一局中
key lose [指定颜色 或者 all]
从当前一局中删除相应的钥匙
_________________________________________
历史
history random
随机给你一个过去胜利一局的遗物和卡组
history last
给你当前角色最后成功一局的遗物和卡组的
_________________________________________
添加你的指令
完成它需要两个东西:一个处理你的指令的类,和一个在控制台中触发它的空键位。
java类
所有命令都必须是抽象类basemod.devcommands.ConsoleCommand的扩展。该类有一些参数,你可以在构造函数中设置这些参数来处理你的命令。请注意,这些都不是强制性的,所有的这些都有默认值。
-----------------------------------
public class YourCommand extends ConsoleCommand {
public YourCommand() {
maxExtraTokens = 2; //这个单词后面还能有多少单词?如果未指定,maxExtraTokens = 1。
minExtraTokens = 0; //这句话后面还有多少词呢?如果未指定,minExtraTokens = 0。
requiresPlayer = true; //如果为true,则表示该命令只能在运行期间执行。如果未指定,则requiresplayer = false。
simplecheck = true;
/**
* 如果这个标志为真,并且您没有实现重写命令语法检查方法自己的逻辑,它将检查所输入的内容是否在您所说的命令具有的选项中。
* 注意,这只适用于控制台的自动补全功能,与执行命令时的操作无关!
* 如果未指定,simplecheck = false。
*/
followup.put("whateveryouwantmetobebaby", YourSecondCommand.class);
/**
* 这样做可能会将这个单词作为当前面命令的后续,并将其传递给YourSecondCommand。
* 你可以随心所欲地添加这些东西。
*/
}
...
}
-----------------------------------
每个指令都必须使用该方法
void execute(String[] tokens, int depth).
字符是开发控制台的全部输入,由/\s/(空格)分开。
深度可以标记中当前位置的索引。例如:tokens[depth] 会成为你指令的第一个词。
该方法包含语法检查命令,以及它的实际功能。对于过渡性命令,execute(…)通常只调用errorMsg();
你还可以重写以下方法:
- ArrayList<String> extraOptions(String[] tokens, int depth)
- void errorMsg(String[]? tokens)
额外选项返回的内容将显示在控制台的自动完成特性中,以及你在构造函数中添加到followup的内容中。
-----------------------------------
...
public ArrayList extraOptions(String[] tokens, int depth) {
ArrayList result = new ArrayList<>();
result.add("add");
result.add("lose");
if(tokens[depth].equals("add") || tokens[depth].equals("lose")) {
complete = true;
/**
* 将complete设置为true会在自动完成窗口中显示“命令已完成”。
* 如果构造函数中有"simplecheck = true",并且你没有额外的逻辑策略,那么这就不必要!
*/
}
return result;
}
...
-----------------------------------
当控制台识别到您想要访问指令时,这将显示添加和丢失自动补全选项。
errorMsg()是一种显示错误消息的标准化方法
execute(...).一种显示选项的错误消息
extraOptions(...)
以下为上述内容的例子:
-----------------------------------
@Override
public void errorMsg() {
DevConsole.couldNotParse();
DevConsole.log("options are:");
DevConsole.log("* add [amt]");
DevConsole.log("* lose [amt]");
}
-----------------------------------
注意,这个方法必须在执行过程中被专门调用。
注册你的指令
在你的mod主文件中的receivePostInitialize中,调用下面的静态方法:
-----------------------------------
public void receivePostInitialize() {
...
ConsoleCommand.addCommand("yourphrasehere", YourCommand.class);
...
}
-----------------------------------
这里使用的关键字只能包含字母和冒号。 如果关键字已经被占用或无效, basemod将不会注册你的指令,并在basemod日志窗口中打印错误信息,但它不会让游戏崩溃。
#杀戮尖塔# #mod# #翻译#