TinTin++问答

  1. tintin++有没有活跃的讨论群或者社区。

    discord的tintin++ 频道

  2. 养老群里的map文件需要放到哪个文件夹地图数据才会生效,我用#load和#map载入不了。

    放在哪里都可以,load的时候指定路径

  3. 你们普遍用的tintin++还是paotin++。

    tintin++

  4. 养老群里的tintinplusplus是个什么东西。

    vscode代码高亮插件

  5. tintin++里的入口配置文件是哪个,比如我想知道在哪个文件定义的.map在哪个文件读取。

为什么要用TinTin++

  1. tintin++可以在windows、linux、android、ios里运行。特别是云服务上linux的优势非常明显,占用少速度快。

    你可以把它安装在电视、电视盒、路由器、工况机、安卓手机、Macos、汽车大屏等等。

  2. tintin++语法是专门为mud制作的,很多在lua里非常复杂的实现过程在tintin++中可以用一个命令轻松实现。

  3. tintin++文字非常漂亮使用256位真彩色,让习惯了16位像素显示的眼前一亮。

2核4G云服务器在windows 2012 r2使用Lordstar的资源占用比较高,内存消耗惊人。这是我的云服务器资源占用

img

书剑TT脚本使用指南(使用指南部分由killunix和小马哥友情提供)

1 安装TT

1.1 Window环境

WinTin++解压至磁盘,然后将其下bin目录加入Path环境变量即可。

我的电脑属性->高级系统设置

image-20250303221452626

img

img

新建一个条目并输入解压目录下的bin路径保存即可。

1.2 Linux环境

将WinTin++\bin下的tt++文件拷贝至linux系统,并将该文件加入到PATH环境变量。具体操作请自行百度,既然你能自己安装linux,相信这个不在话下。

2 配置账号

2.1 基本结构

下面所述的各文件的文件夹结构不是必须如此,你可以根据自己的习惯另外组织,但是必须保证相关文件内容加载路径的一致。

2.1.1 账号配置

脚本的账号配置文件在chars/conf目录下,每个账号均有两个文件,里面默认的char_example_conf.tin和char_example.tin为模板文件。文件名规则不是必须要如此,你可以根据自己的习惯进行命名,但是其相关文件下的内容一定要对应。

char_example_conf.tin

该文件为实际账号配置文件,所有账号相关的配置均在此文件内,具体详见下或内部注释。

char_example.tin

账号配置的加载入口文件,其内部定义了一个initconf,用于加载账号具体配置的文件char_example_con.tin。游戏启动时均是通过tt加载该文件启动脚本。

2.1.2 会话文件

在chars/sess目录下有每个账号对应的会话文件sess_example.tin

其内容就是通过#session指令启动一个tt会话。

#session sessionid 123.57.149.222 5555 ./shujian/chars/conf/char_example.tin;

注意会话里面的账号入口文件是相对路径,具体原因见下面的bat。

2.1.3 执行文件(批处理)

chars目录下有对应各个账号的批处理文件(win系统),双击文件启动tt加载账号信息登录游戏。

@echo off

cd ..

cd ..

mintty.exe -c mintty.con -i tt++.ico -t WinTin++ -e tt++.exe -r ./shujian/chars/sess/ss_example.tin

两个cd后当前脚本环境路径即为shujian的父目录(以下称SJROOT),所有后续用到的脚本的目录环境即为此目录。bat文件内容即为调用tt程序加载会话文件,解析其内部脚本通过#session创建会话连接服务器加载账号信息进行登录。

2.2 多会话模式

前面所述方式每个账号均会起开一个TT窗口,这样的好处是各账号可以随时通过窗口切换,但是较为消耗资源。TT支持在一个进程下维持多个会话的功能,用户可以随时将其中一个会话切换到前台。

在SJROOT目录下有一个ss_ids.tin,其内容模式和单个用户会话类似,你可以在ss_ids.tin里面填写多个账号的会话条目,通过bat加载即可。

在char_example.tin中定义了一个定时器reloadticker,用来定时加载会话集合保证账号会持续登录。注意#READ指令读取的内容为ss_ids.tin,因为命令行的当前目录为SJROOT。

2.3 如何新增一个账号

复制账号配置文件

将chars/conf下的模板文件各复制一份并修改名称,我现在以sjtt这个id为例。那么修改后的文件名为char_sjtt.tin和char_sjtt_conf.tin。

目录结构如下

img

char_sjtt.tin内容如下,注意看initconf内的账号配置文件路径和名称。

img

char_sjtt_conf.tin里面账号信息部分配置如下,注意user_session(会话id)和user_char(账号)一般保持一致即可,而且必须与此后的会话入口中的一致。user_profile变量内容即为配置入口文件char_sjtt,不带扩展名,在实际应用该变量时脚本会自行组织其完整路径和文件名。

img

复制会话文件

将chars/sess下的ss_example.tin复制出来修改名称,目录结构如下

img

其内容如下,注意箭头sessionid和char_sjtt_conf内user_session变量一致。会话加载的文件即为账号配置入口文件char_sjtt.tin(相对路径)。

img

如果该账号无需单独登录,那么会话文件可以不用新增,你可以直接在ss_ids.tin里面增加一个会话条目即可,增加的内容即为会话文件的内容

img

复制批处理文件

将chars下的char_example.bat复制并修改名称后如下

img

注意批处理中加载文件就是账号的会话文件。

img

​ 双击运行char_sjtt.bat,搞定!

如果将bat中会话文件修改为ss_ids.tin,那么该窗口会陆续登录集合文件中的所有账号。

img

2.4 在linux下使用

在Linux下使用一般是采用会话集合的方式,你可以通过ftp软件ssh方式管理脚本,例如下方的目录结构。

img

Linux下可以通过MobaXterm,XShel等终端工具连接,然后通过tmux或者screen来创建驻留内存的tt进程,个人体验screen更好。具体操作如下图:

img

img

下次连接进来可以输入screen -ls查看,并通过screen -r xxx来附加。

3 账号配置项

3.1 账号信息

下面所述的各项目均为账号配置文件中的变量,具体变量类型请参考TT++文档。一般#LIST开头的变量为列表,其变量内容各元素需以分号(英文)隔开。

user_session

会话ID,一般与账号一致,会话文件或者会话集合文件中的相关内容也必须一致,详见上。

user_char

账号。

user_gender

性别,m:男性,f:女性,新注册时会用到。

use_name

账号名称,必须为游戏允许的名称。

user_nick

别名,可为空。

user_passwd

账号密码,非加密内容,请注册保护资料安全。

user_profile

账号配置入口文件,内容规则详见上。

user_killmsg

叫杀描述信息,可为空。

user_gift

用户天赋,具体是否支持和站点有关。

3.2 武器配置

img

各字段意义如下:

primary

主武器

secondary

副武器,主武器掉落后会优先使用副武器进行战斗,战斗结束再捡起。

chop

砍树用武器,默认为changjian。

wuxing

学习领悟时可以增加悟性的武器,其实领悟时并无卵用,速度只和先天悟性和读书识字有关。

userweapons

打造的武器,如果前面所述武器中有打造的武器,请务必再此配置,否则爆了不能怨我。其下是一个结构:

{武器类型} {武器1;武器2…}

多个同类型武器用分号(英文,以下不在重复)隔开。

3.3 护甲配置

暂时没用

3.4 任务配置

extrememode

急速模式,默认1。

neilithreshold

任务前需要打坐打到的百分数,默认120即1.2倍的最大内力。

role

用户角色,固定为job。

limitzone

受限区域,列表变量,其内容需用分号隔开。已配置的区域肯定不会去,如果未配置会按照系统默认设置的条件逐步开放区域,具体参考common模块中的common[limitezone]变量内容。

joblist

任务组合,各任务以分号隔开。具体支持的任务和任务名称请参考jobs目录下的文件和job.tin中jobgo命令。

waitkiller

送信1是否需要等待杀手。

fangqiskill

武当和送信任务需要放弃的技能。

fangqidesc

武当或送信任务需要放弃的NPC等级描述。

fangqiguard

雪山大内需要放弃的技能,内容为门派+武器,如果大理天龙寺,少林长鞭。

extendjob

扩展任务。游戏中长CD或不定时发布的任务可以在此进行设置,比如官府,炼毒,护镖等。在CD已过或者条件满足时插入执行该任务。

guanfulv

在官府任务揭榜时,如果描述的评价与自身的攻、防、躲的平均评价超过该参数则放弃。具体评价等级参考common模块中的common[leveldesc]。

guanfudesc

找到官府NPC时会先compare,如果其对比评价高于参数内容则放弃。具体compare评价参考common模块中comparedes。

team

组队设置,当前仅支持双人组队。

leader

队长:1,队员0

partner

队友id,双方均须配置为对方。

3.5 携带物品配置

这里不再赘述,详见demo模板文件。

3.6 学习领悟配置

allowdiff

脱节配置。用于控制技能、内力和精力允许的脱节数值。

potpurpose

潜能用途。如果是从零开始的号设置learn,成品号(>=220)的设置为lingwu。通常learn时如果所有技能均无法学习时会自动切换至lingwu模式。

ignoreskills

需要忽略的技能列表。列表中技能不会参与领悟和学习。

primaryforce

主要内功。如果在同时练习多个内功,那么指定一个主内功,领悟练习完后准备任务时会激发该内功。具体参考kungfu.tin中的prepareforce。

wuxingforce

在学习或领悟时会激发该内功,用以增加功法悟性。其实没啥用处,可以不用设置,领悟时不起作用。具体各内功的悟性功法指令参考common模块中的common[wuxingforce]。

autoquest

是否自动解谜。默认为1,0则不进行任何解谜活动。

displaysuccess

是否在右边栏UI显示已完成的解谜。默认为0。

subcribequests

参与解谜的列表。如果未配置则默认所有满足条件的解谜均会参与,该参数优先级高于ignorequests。

ignorequests

不参与的解谜列表。

3.7 服务配置

services

服务是脚本中设计的一个账号向其他账号提供某项支持的逻辑(大米),提供服务的账号在此配置提供的服务列表

funds

资金响应,全自动无人值守流程中会通过该服务向大米获取自动资金。

guard

护卫服务,呼叫保镖来护卫自己,当前应用在宝藏解谜苗家庄黑衣人、宝藏入口高手和射雕金兵场景。

killer

杀手服务,呼叫杀手来杀死某个NPC。呼叫后即可离开,无需等待。

library

书籍服务,主要用来奇门八卦书籍(所以需要是挑花岛大米),也可以支持其他公共且可以保存的书籍,如kejin jijie,douzhen dinglun,she jing等。

zhanbu

占卜服务,用处不大,主要用于自动解谜三无三不手和鹰蛇生死搏。占卜服务需要两个人来实现。

assist

占卜助手,协助zhanbu号进行占卜。

nanny

保姆配置。对应上面的服务器,账号如果需要大米的服务需在此配置提供服务器的账号。

banker

funds服务账号。

killer

killer服务账号。

guard

guard服务账号。

zhanbu

zhanbu服务账号。

library

library服务账号。

3.9 向导配置

向导是脚本提供的一种新手无人值守傻瓜模式。设置好拜师门派,脚本会处理拜师、学习、切换师傅和各阶段任务组合的所有事项。

newbie

拜师的门派,当前已支持部分门派,未支持的门派可参考guides目录下已有门派的模板自行添加。

3.10 技能配置

pfm[bei]

技能准备指令,一般状态下的jifa和空手bei。

pfm[wuxing]

增加悟性的指令,在学习、领悟、读书时会执行。

pfm[normalbuff]

非战斗增幅指令,会在接到任务寻找NPC前执行。

pfm[fightbuff]

战斗增幅指令,指令会合并到wimpycmd。

pfm[attack]

攻击指令,指令会合并到wimpycmd。

pfm[alias]

pfm的预设配置,可以在这里预定义一些pfm的准备指令和攻击指令。这些预设的alias可以应用到下面具体任务场景中。

3.11 任务场景配置

在这里可以定义各任务需要使用的pfm alias(3.10)中预定义好的,此后不在说明),未配置的任务默认使用conf[pfm][attack]配置。

3.12 特定NPC配置

在这里可以定义指定任务中的特定NPC所使用的pfm alias,具体的配置需结合任务脚本。

3.13 切换触发配置

特定场景下战斗时需要根据特定触发来确定下一步需要使用的pfm,可以在conf[pfm][trigger]中添加个若干(最多5个)触发内容及其对应要使用的pfm alias。一般需要配置切换触发和复位触发。

4 脚本模块说明

所谓模块即为一些列功能相近相关的ALIAS、FUNCTION集合。

guides

门派新手向导,目录下为各门派向导文件。

jobs

任务模块文件夹,目录下为各任务文件。

quests

解谜模块文件夹,目录下为各解谜文件。

services

服务模块文件夹,目录下为各服务的请求和响应文件。

book.tin

读书模块,内部提供各种有关读书学习的方法。

common.tin

通用模块,内部提供大量公用方法。

connect.tin

连接模块,处理连接时的账号密码输入。如是新注册账号最好自行修改里面的注册邮箱。此模块很少调整。

festival.tin

礼物模块,部分站点不支持。

fight.tin

战斗模块,处理战斗逻辑。

guide.tin

向导模块,处理新手向导逻辑。如自己新增门派向导需在此文件顶部添加门派向导文件引用。

job.tin

主任务模块,提供任务入口,任务地点解析等任务相关的公共功能。

kungfu.tin

技能捕捉,学习、领悟,补技能相关功能。

map.tin

地图模块,提供与快速行走、定位、地址解析功能。

matrix.tin

迷宫处理模块,定义各种迷宫的处理方法。

night.tin

晚上关门的处理模块。

procedure.tin

通用函数模块。

quest.tin

解谜模块,定义通用解谜逻辑和解谜元数据。

river.tin

过河模块。

service.tin

服务模块,定义服务逻辑,如自行添加新的服务需在此添加相关文件引用。

sjmap.tin

书剑地图。

status.tin

通用状态抓取,如hp,score,jobtimes,hp等等。

ui.tin

右边栏,显示账号基本信息和配置信息以及解谜数据。

walk.tin

快速行走模块,定义快速行走相关的内功。

5 常用指令

5.1 脚本控制

sta

停止脚本执行,可以多输入几次。如果带参数(任意非空内容)那么脚本会处于暂停状态,右边栏会有相关红字提示。事情处理完记住输入rest恢复脚本挂起状态,否则可能导致发呆退出。然后执行walk继续未完成的操作。

rest

恢复脚本暂停状态,暂停状态下不会进行发呆检查。

tss

多会话模式下,切下一个会话。带参数的话切换至指定会话。

5.2 快速行走

walk

执行快速行走,脚本行走模式为指定目的地和目的指令,然后执行walk执行。

gotodo

去某地区房间干某事,gotodo {区域} {房间} {动作}

参数1

区域名称,具体参考书剑区域

参数2

房间名称

参数3

到达后要执行的指令,可为空。

gotoroom

去某个房间干某事,gotoroom {房间名或者房间编号} {动作}

参数1

房间名称或者房间编号,如果仅指定房间名称且不唯一会有相关提示。

参数2

到达后执行的指令,可为空。

gotonpc

去指定NPC房间,gotonpc {xxx}。

参数1

NPC名称,必须已经在sjmap.tin中维护。

gomaster

去师傅房间,无参数。

各区域快捷指令

walk.tin中定义了书剑各区域的快捷指令,基本为拼音首字母,详情查看文件内容。

5.3 任务相关

preparestart

准备开始并挂机。

startjob

开始任务挂机。

jobcheck

检查自身状态开始任务,每次任务完成均会执行该指令。

5.4 技能相关

golearn

去学习,golearn {后续指令} {指定学习的技能}

参数1

后续指令。

参数2

指定要学习的技能,只有在特定场景下才会有第二个参数,基本由脚本自行发起。

golingwu

去领悟,golingwu {后续指令},技能全部领悟完会尝试去练习技能。

golian

去练习技能,所有技能练习完成会尝试领悟技能。

learnbase

补基础技能0~101级,learnbase {基础技能} {后续指令}

参数1

基础技能名称,当前支持的有hand,cuff,strike,claw。

参数2

后续指令。

5.5 杂项相关

reboot

设置需要重新加载脚本,脚本会在当前任务结束后重新加载所有脚本。一般是更新了文件后才会重新加载。

initconf

重新加载用户配置,当修改了用户配置应执行该指令重新加载。

loadmap

重新加载书剑地图文件sjmap.tin。当在地图中新增了NPC,注意查看所在房间编号,NPC是在map.tin中初始化的,如果编号超过了这个参数请修改。

img

reload

重新加载某个模块文件,reload {模块名称}。不需要带.tin扩展名,可以有路径,比如reload {jobs/job_shoumu}。

logbuff

将缓冲区内容保存为日志,logbuff {日志名称},文件格式为html,可直接打开浏览。

dohalt

等待busy结束,dohalt {后续指令}。此指令应用非常广泛。

wwp

装备武器,wwp {要装备武器},默认装备配置的主武器。

uwwp

卸载当前装备的武器。

wcwp

装备chop武器。

goshen

转换神,goshen {药品标识} {需要到达的值} {后续指令}

参数1

zhengqi dan:转为正神。

xieqi wan:转为负神

参数2

要到达的神数值(绝对值)。

参数3

后续指令。

buymedicine

购买药品,buymedicine {药品名称} {购买数量} {后续指令}

tbbuy

通宝购买物品,tbbuy {物品} {购买数量} {后续指令}

localwithdraw

就近取钱,localwithdraw {gold} {silver} {后续指令}。

参数1

gold数量,为空时忽略判定gold数量。

参数2

silver数量,为空时忽略判定silver数量。

参数3

后续指令。

doheal

疗伤,doheal {后续指令},其具体疗伤方式取决于受伤情况。

checkdazuopoint

获取最佳打坐吐纳点数,checkdazuopoint {后续指令}。

6 其他

该脚本由小马哥@养老院和Killunix@养老院共同开发维护,此版为公版,你可根据自己的需求进行调整,丰富修复门派和解谜模块。小问题尝试自己调整吧,最好不要找我。

以上内容由小马哥@书剑养老院

7 学习过程:

7.1 内容美化

可以替代系统反馈中的内容,比如:

img

图中的(☆代表核心技能)和 (pfm taiji连招增加,挤诀群控敌,采诀信手来,其他诀消耗大幅减少,自带宗师效果)是自己加上去的,
这样每次输入jueji就会显示是不是核心绝技和绝技效果。

实现过程:
在beauty.tin里修改如下:

1
2
#SUBSTITUTE {你目前掌握的绝技如下:}{你目前掌握的绝技如下:<130>(☆代表核心技能)};
#SUBSTITUTE {^太极篇$} {%%1太极篇☆ <120> (pfm taiji连招增加,挤诀群控敌,采诀信手来,其他诀消耗大幅减少,自带宗师效果) };