xgg 发表于 2020-11-9 20:54:15

全平台 MUD 客户端 TinTin++ 之安卓篇

本帖最后由 xgg 于 2022-9-19 08:50 PM 编辑

全平台 MUD 客户端 TinTin++ 之安卓篇   

========== 关于 TinTin++ 客户端 ==================

TinTin++(以下简称tt)是一个纯命令行的 MUD 客户端

对比其他客户端有以下优点:

1)跨平台、轻量化、开源。

支持:macOS,iOS,Android,Linux,Windows。

脚本文件只需写一遍,到处运行。

作为一个 MUD 客户端,TinTin++ 主要有如下特性:

* 支持 PCRE 的触发器、别名、gag(文本消除)、高亮、
替换、按键宏、定时器、延迟响应、事件
* 支持关联数组(类比别的语言的 table 或者 map)
* 丰富的文本格式化功能
* 可搜索的滚动缓冲区
* 64 位浮点数 逻辑运算和算术运算
* 自动画地图并可通过 VT100 来显示地图
* 多会话支持
* 加载和解析任何文件
* 执行命令行脚本
* 透过 ssh/sftp 等客户端来运行命令行程序,
并可以通过 TinTin++ 脚本语言全面控制
* 切分屏幕以区分客户端输入和 MUD 输出
* 用 VT100 控制字符来绘制状态条
* 基于滚动缓冲区的 tab 补全
* xterm 256 色、真彩色
* MUD 用到的大多数 TELNET 选项
* MCCP(MUD 客户端压缩协议)、MMCP(MUD 聊天协议)
* GMCP(MUD 带外数据协议)、MSLP(Mud 服务器链接协议)

2)TinTin++ 有一门专门面对 MUD 场景的 DSL(领域特定的编程语言)

该语言灵活,高效,强大。

MUD 客户端除了提供玩家与 MUD 服务器交互的人机界面之外,
有一个重要的作用就是制作并使用机器人。

有人说,开发一个 MUD客户端很容易,
但设计一门适合编写机器人的编程语言,就不那么容易了。

这也是为什么早期有许多客户端都借鉴 TinTin++ 语法的原因了,
在那个脚本语言匮乏的年代,
TinTin++ 的语法实际上成为了 MUD 客户端事实上的标准。

随着新世纪的到来,脚本语言越来越丰富,陆续就有客户端将 VB Script、JavaScript、Lua、Python、PHP等脚本语言集成进来,以吸引那些本就会这些语言的玩家,或者是弥补自身脚本语言功能上的不足。

由于这些脚本语言资料相对比较丰富,功能强大,因此逐渐受到越来越多的欢迎。近年来逐渐成为开发机器人的主流。

然而,写 MUD 机器人毕竟不是开发软件。

新脚本语言看似满足需求,实则南辕北辙。

用它们开发的机器人噪音代码太多,
干扰了正常的 MUD 流程,随着代码量的增多,也日益变得难以维护。

而且 MUD 游玩过程中,
并不始终都是盯着屏幕上的机器人干活,自己在一边发呆。

有时候也需要亲自操作才行。

这时候一门简洁、高效、灵活、强大的 MUD 编程语言就可以让你如鱼得水。

压缩包内提供了 《TINTIN++ 中文手册》 pdf 版本。
历经多次修订,排版清晰,语言简练,示例一目了然。
手册中快速上手部分可以帮助您更快入门使用。

3)作为一款老牌客户端,tt 至今仍在活跃更新。

TinTin++ 诞生于 1992 年,至今已有 30 年历史。

作为最古老的 MUD 客户端,
它的语法设计影响了许多后续客户端的语法。

但 TinTin++ 至今仍在更新,仅 2019~2022 就有 16 次版本发布。

新版本带来的一些新特性比如 GBK 编码和 UTF-8 编码转换让这款古老的 MUD 客户端即使是在今天也仍然不落后于时代。

而一些新秀则缺乏经年累月的沉淀,还在补足特性奋起直追当中。

社区强大,去论坛或 discord 发帖必有回应。

注:以上部分内容节选自《TinTin++编程书》,地址:https://dzp.gitbook.io/tt1book/

对初接触者不友好的则是:
1)没有图形 UI ;
2)输入全靠指令。

实际上在某种程度上这些也不算上什么问题,
高度可自定义的 prompt 显示插件,
热键关联,事件触发,可点击的 MSLP 标签,
TinTin++ 能做出比常用图形客户端更加复杂的功能。

建议初接触者先学习一下 linux shell 基础知识。

=================安 装 说 明   ==================

压缩包内有:
Termux 主程序、Termux样式插件、逍遥行、调色板、Prompt 等插件。

注意:Prompt 插件使用 GMCP 协议传输数据。
请在游戏内使用 gmcp 命令打开相关频道,并重新连接即可使用。

用户提示状态 Prompt 插件特性如下:
支持丰富的自定义选项。
支持定制自己的 UI 界面。
支持定制输入模式。
自动适应宽度。
字段拥有自动隐藏,自动过期等强大特性。
可以开启、停止插件,并使用鲜明的主题进行提示。

详情请查看 plugin/prompt.tin 文件。

请将解压出的 tintin 文件夹放入内存卡(内部存储)根目录,
也就是手机自带文件管理器能进入到的第一级目录。

并提供了两种初始化安装方式:
1)一键安装:
按顺序安装 Termux 主程序、Termux 样式插件。
然后打开 Termux,复制下列命令粘贴并回车执行:

bash <(curl -s -L https://raw.fastgit.org/zixijian/shell/master/shell/tt4t.sh)

如果安装途中暂停要求选择,请直接按回车键。

此过程会联网下载软件,建议连接 wifi 后进行。

为防止网络异常,压缩包内也带了此脚本,
首先需要执行下列命令获取内部存储权限:
termux-setup-storage
在弹出的请求中点击允许,然后执行:
bash ~/storage/shared/tintin/tt4t.sh

然后参照手动安装部分内容缩放屏幕,选择字体和主题,就安装完成了。

2)手动安装:

以下步骤相当于上面自动初始化脚本的分解操作:

2.1)按顺序安装 Termux 主程序、Style 样式插件。

由于市面主流手机都是 arm64 架构,
所以此处主程序仅提供该架构版本,
如需其他版本可访问 termux 官网等途径获取。

两个 app 均重新进行了签名,

对比官方版增加:
"微软雅黑consolas"及"新宋"字体。

如需自己更新软件版本需要使用 "MT管理器" 签名。

2.2)默认软件源修改为国内清华源:(复制粘贴)

sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list
sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list
pkg up -y

0.118 版本以上的 Termux 可以使用 termux-change-repo 修改源,
箭头选择,空格选定,回车确定(选择 china 源即可)。

2.3)更改字体为微软雅黑

长按屏幕选择:
more->style->choose font->yahei.consolas

2.4)缩放屏幕

双指捏合,将屏幕调整到合适大小。

2.5)安装 tintin++

输入并执行:
pkg install tintin++ screen vim git -y

2.6)插件脚本

先获取内部存储权限:
输入下列命令并在弹出的要求中点击允许:

termux-setup-storage

建立软链接,输入并执行:
ln -s storage/shared/tintin tt

验证脚本列表,应该可以看到 tintin 目录结构:
ls ~/tt

脚本通常以 .tin、.tt 为后缀,
编写游戏脚本建议多学习《TINTIN++中文手册》。

2.7)个性化设置

输入:vim ~/.bashrc

按 i 键开启编辑模式,输入:

export PS1='[\w]\$ '
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
alias tt='cd ~/tt && screen tt++ init.tt'
alias ck='vim ~/.termux/termux.properties'

然后按工具栏 esc 键,或大写模式按两下 ZZ 键保存。

2.8)转码设置

仅使用GBK编码需要做此步骤:

echo defencoding GBK > ~/.screenrc
echo mousetrack off >> ~/.screenrc

因种种历史采用了 GBK 编码,实际推荐 UTF8 编码。

2.9)开始游戏

"tt "在个性化设置中已经被设为启动游戏的别名。
输入:tt
或者输入:cd ~/tt && screen tt++ init.tt

然后就可以愉快的进行游戏了。

===============================================
更多内容访问:
tt 官网:http://tintin.mudhalla.net
tt 论坛:https://tintin.sourceforge.io/forum
tt github:https://github.com/scandum/tintin
tt Discord 频道:https://discord.com/invite/gv7a37n
小乖乖的个人仓库:https://github.com/zixijian/tt
中文手册最新地址:https://github.com/zixijian/tt/Wiki.md
tt 编程书(正在撰写):https://dzp.gitbook.io/tt1book/
tt 技术交流讨论群:951665549
===============================================

附件:北侠主页下载

预览图:










xgg 发表于 2020-11-9 21:11:21

本帖最后由 xgg 于 2020-11-11 06:32 PM 编辑

Termux 另可调用浏览器实现fullme,fullme时输入 mxp 即可。
另外我写了一个一键安装脚本,安装termux后直接输入指令即可部署全部环境:
bash <(curl -s -L https://raw.githubusercontent.com/zixijian/shell/master/shell/tt4t.sh)

xgg 发表于 2020-11-10 12:49:30

derkran 发表于 2020-11-10 10:21 AM
这玩意体积怎么那么大

tt实际很小,termux只是tt的载体。termux为了节省服务器流量把部分内容写到了app中,不然装了几百k的app还是要联网再次把那些集成的内容再下载一遍。

mysayo 发表于 2020-11-21 03:07:40

termux里git clone下来的tt文件中文是乱码,file一下发现是啥编码忘了,用iconv还转不成UTF-8,然后用termux里proot的kali装了enca终于转身了UTF-8正常显示了。screen那个转码是?我现在直接连接然后选UTF-8。
----------
新人。我是接触了taptap上的mud,然后知道了北大侠客行。

xgg 发表于 2020-11-21 09:05:32

本帖最后由 xgg 于 2020-11-21 09:29 AM 编辑

mysayo 发表于 2020-11-21 03:07 AM
termux里git clone下来的tt文件中文是乱码,file一下发现是啥编码忘了,用iconv还转不成UTF-8,然后用termu ...

我暂时用的gb18030编码,vim也可以转码。

现在北侠有utf8编码,screen无需转码,tintin直接设置utf8编码即可。

xgg 发表于 2021-3-4 10:54:28

本帖最后由 xgg 于 2021-3-4 11:06 AM 编辑

xgg 发表于 2020-11-9 09:11 PM
Termux 另可调用浏览器实现fullme,fullme时输入 mxp 即可。
另外我写了一个一键安装脚本,安装termux后直 ...
无法访问github也可以执行:
bash <(curl -s -L https://raw.fastgit.org/zixijian/shell/master/shell/tt4t.sh)

vajra 发表于 2023-3-17 11:32:48

必须顶大佬,安卓的利器。
页: [1]
查看完整版本: 全平台 MUD 客户端 TinTin++ 之安卓篇