#nop vim: set filetype=tt:; /* 模块名称:几个常用的别名 模块说明:本文件属于框架代码的一部分,不建议修改。如有需求请在 GitHub 发 issue 或者 PR 版权声明:本文件属于 PaoTin++ 的一部分 =========== PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp ) 享有并保留一切法律权利 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。 =========== */ #var login[session] {}; #var login[user] {}; #var login[autoexec] {}; #alias {login} { #var login[session] {%1}; #var login[user] {%2}; #var login[autoexec] {%3}; #session {$session[name]} {$session[host]} {$session[port]}; }; #event {SESSION CONNECTED} { #if { "%0" !== "$login[session][name]" } { #return; }; login.auto-login; }; #alias {login.login-success} { #local type {%1}; #class login.auto-login kill; #undelay login.login-success; #showme 登录成功。; #nop 如果角色设置了 MXP 支持,则在建连之后主动向服务器发起 MXP 协商。; #nop 否则需要主动回车以放弃 MXP 协商。; #if { "$user[MXP]" == "true" } { load-lib mxp; #if { @existsAlias{mxp.Enable} } { mxp.Enable; }; #else { #cr; }; }; #else { #cr; }; #if { @isFalse{$login[user][manual]} } { login.online $type; #return; }; #class login.finger open; #action {^%u目前正在连线中。$} { #var login[user][name] {%%1}; #delay login.finger.done {login.finger.done} 0; }; #alias {login.finger.done} { #class login.finger kill; login.write-id-file; login.init-game; login.online; }; #delay login.finger.fail {login.finger.done} 5; #class login.finger close; finger $login[user][id]; }; #alias {login.online} { #local type {%1}; #local handler $login[autoexec]; kill-module login; $handler; #if { "$user[GMCP]" == "true" } { #delay 1 { load-module gmcp; gmcp.${gCurrentMUDLIB}.Enable; }; }; }; #alias {login.init-game} { #if { "$login[user][id]" == "" || "$user[id]" != "" } { #return; }; #var user[id] {$login[user][id]}; #var user[passwd] {$login[user][passwd]}; #gts #var user[id] {$login[user][id]}; #gts #var user[passwd] {$login[user][passwd]}; #local path {$user[id]}; #if { "$session[log_path]" != "" } { #local path {$session[log_path]}; }; #if { !@InitLog{$path} } { #echo {<119>创建日志目录 $gLog[PATH]/$path 时遇到错误。<299>}; #echo {<139>请检查你的安装环境,或者参考使用手册重新安装本软件。<299>}; #return; }; log.Open; #screen set title GAME-$user[id]; }; #alias {login.write-id-file} { #if { "$login[user][id]" == "" || "$user[id]" != "" } { #return; }; #local id-file {ids/$login[user][id]}; #if { @existsDir{var/ids} } { #local id-file {var/$id-file}; }; #if { !@existsFile{$id-file} } { #scan {file} {ids/$gCurrentMUDLIB} {login.write-id-file.do {$id-file} {&1}}; }; #if { "@uname{}" == "Windows_NT" } { windows-terminal-setup {$login[user][id]} {$id-file}; #local menu {$login[user][id]@$gCurrentMUDLIB}; NOTE 菜单已更新,请重启 Windows Terminal 并选择 $menu 进入游戏。交流请加 QQ 群: 951665549 暗号:「PaoTin++ for Windows」。; }; #else { NOTE 启动配置文件已生成,下次你可以直接 start $login[user][id] 进入游戏。; }; }; #nop 因为 #scan 命令和 #replace 命令都要用 &1,会存在冲突,因此需要分开两个 #alias 来写。; #alias {login.write-id-file.do} { #local file {%1}; #local content {%2}; #replace {content} {#var user[id] %s \x7b%*\x7d;} {#var user[id] &1 {$login[user][id]};}; #replace {content} {#var user[name] %s \x7b%*\x7d;} {#var user[name] &1 {$login[user][name]};}; #replace {content} {#var user[passwd] %s \x7b%*\x7d;} {#var user[passwd] &1 {$login[user][passwd]};}; #replace {content} {#nop 上面三处修改完毕之后,请删除下面这行文字:;\n} {}; #replace {content} {#var user[manual] %s \x7b%*\x7d;\n} {}; #line quiet #log remove $file; #line log $file {$content\}; }; #alias {windows-terminal-setup} { #local id {%1}; #local id-file {%2}; load-config windows; #local json {\x7b\r \x20\x20"profiles":\r \x20\x20{\r \x20\x20\x20\x20"defaults": {},\r \x20\x20\x20\x20"list": \r \x20\x20\x20\x20[\r \x20\x20\x20\x20\x20\x20{\r \x20\x20\x20\x20\x20\x20\x20\x20"commandline": "$gPaoTinPath/bin/tt++.exe $id-file",\r \x20\x20\x20\x20\x20\x20\x20\x20"hidden": false,\r \x20\x20\x20\x20\x20\x20\x20\x20"name": "$id@$gCurrentMUDLIB",\r \x20\x20\x20\x20\x20\x20\x20\x20"startingDirectory": "$gPaoTinPath"\r \x20\x20\x20\x20\x20\x20}\r \x20\x20\x20\x20]\r \x20\x20}\r \x7d\r }; #local appdata {@getenv{LOCALAPPDATA}}; #local file {$appdata/Microsoft/Windows Terminal/Fragments/PaoTin++/${id}.json}; #line quiet #line remove {$file}; #line log {$file} {$json}; };