吾不禁英俊地笑了起来

Inky 自定义玩家名字

Inky JavaScript

Inky 是一种适于编写游戏的脚本语言。以下内容关于如何绕过程序限制,允许玩家在游戏中使用自定义名称。

实用链接

具体操作

.ink 文件

在文件开头开始定义玩家名称变量及默认名称,此处以 playerCharname 为例,并在后续代码中通过 {player} 使用此名称。

VAR player = "Charname"

index.html 文件

<div class="header">
	<h1>game</h1>
	<h2 class="byline"></h2>
</div>

在以上代码后加入输入框:

<div class="input">
	<input type="text" placeholder="Name, please." />
	<input type="button" value="Go!" />
</div>

style.css 文件

根据需要设定样式,可在最后加入如下示例代码:

.input {
	text-align: center;
	height: 1.5em;
	overflow: hidden;
	transition: .5s height ease-in-out;
}
.input.hidden {
	height: 0;
}
input:placeholder-shown + input {
	opacity: .5;
	pointer-events: none;
}
input[type="button"] {
	cursor: pointer;
}

main.js 文件

如在 .ink 文件中 player 为第一个全局变量,在当前版本 19 下可直接套用如下方案:

将第一行 (function(storyContent) { 改为 function game(storyContent) {

将最后一行 })(storyContent); 改为 };

在最开始插入:

const input = document.querySelector(".input");
input.lastElementChild.addEventListener("click", () => {
	storyContent["root"][2]["global decl"][2] = `^${input.firstElementChild.value}`;
	input.classList.add("hidden");
	setTimeout(() => {game(storyContent)}, 500);
});
Feed me some comments!
姓名、邮箱必填;支持基础 Markdown 语法。