login.tin 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. #nop vim: set filetype=tt:;
  2. /*
  3. 模块名称:几个常用的别名
  4. 模块说明:本文件属于框架代码的一部分,不建议修改。如有需求请在 GitHub 发 issue 或者 PR
  5. 版权声明:本文件属于 PaoTin++ 的一部分
  6. ===========
  7. PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
  8. 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
  9. ===========
  10. */
  11. #var login[session] {};
  12. #var login[user] {};
  13. #var login[autoexec] {};
  14. #alias {login} {
  15. #var login[session] {%1};
  16. #var login[user] {%2};
  17. #var login[autoexec] {%3};
  18. #session {$session[name]} {$session[host]} {$session[port]};
  19. };
  20. #event {SESSION CONNECTED} {
  21. #if { "%0" !== "$login[session][name]" } {
  22. #return;
  23. };
  24. login.auto-login;
  25. };
  26. #alias {login.login-success} {
  27. #local type {%1};
  28. #class login.auto-login kill;
  29. #undelay login.login-success;
  30. #showme 登录成功。;
  31. load-lib ga;
  32. load-lib sync;
  33. ga.Sync;
  34. #if { @isFalse{$login[user][manual]} } {
  35. login.online $type;
  36. #return;
  37. };
  38. #class login.finger open;
  39. #action {^%u目前正在连线中。$} {
  40. #var login[user][name] {%%1};
  41. #delay login.finger.done {login.finger.done} 0;
  42. };
  43. #alias {login.finger.done} {
  44. #class login.finger kill;
  45. login.write-id-file;
  46. login.init-game;
  47. login.online;
  48. };
  49. #delay login.finger.fail {login.finger.done} 5;
  50. #class login.finger close;
  51. finger $login[user][id];
  52. };
  53. #alias {login.online} {
  54. #local type {%1};
  55. #local handler $login[autoexec];
  56. kill-module login;
  57. $handler;
  58. #if { "$user[GMCP]" == "true" } {
  59. #delay 1 {
  60. load-module gmcp;
  61. gmcp.${gCurrentMUDLIB}.Enable;
  62. };
  63. };
  64. };
  65. #alias {login.init-game} {
  66. #if { "$login[user][id]" == "" || "$user[id]" != "" } {
  67. #return;
  68. };
  69. #var user[id] {$login[user][id]};
  70. #var user[passwd] {$login[user][passwd]};
  71. #gts #var user[id] {$login[user][id]};
  72. #gts #var user[passwd] {$login[user][passwd]};
  73. #local path {$user[id]};
  74. #if { "$session[log_path]" != "" } {
  75. #local path {$session[log_path]};
  76. };
  77. #if { !@InitLog{$path} } {
  78. #echo {<119>创建日志目录 $gLog[PATH]/$path 时遇到错误。<299>};
  79. #echo {<139>请检查你的安装环境,或者参考使用手册重新安装本软件。<299>};
  80. #return;
  81. };
  82. log.Open;
  83. #screen set title GAME-$user[id];
  84. };
  85. #alias {login.write-id-file} {
  86. #if { "$login[user][id]" == "" || "$user[id]" != "" } {
  87. #return;
  88. };
  89. #local id-file {ids/$login[user][id]};
  90. #if { @existsDir{var/ids} } {
  91. #local id-file {var/$id-file};
  92. };
  93. #if { !@existsFile{$id-file} } {
  94. #scan {file} {ids/$gCurrentMUDLIB} {login.write-id-file.do {$id-file} {&1}};
  95. };
  96. #if { "@uname{}" == "Windows_NT" } {
  97. windows-terminal-setup {$login[user][id]} {$id-file};
  98. #local menu {$login[user][id]@$gCurrentMUDLIB};
  99. NOTE 菜单已更新,请重启 Windows Terminal 并选择 $menu 进入游戏。交流请加 QQ 群: 951665549 暗号:「PaoTin++ for Windows」。;
  100. };
  101. #else {
  102. NOTE 启动配置文件已生成,下次你可以直接 start $login[user][id] 进入游戏。;
  103. };
  104. };
  105. #nop 因为 #scan 命令和 #replace 命令都要用 &1,会存在冲突,因此需要分开两个 #alias 来写。;
  106. #alias {login.write-id-file.do} {
  107. #local file {%1};
  108. #local content {%2};
  109. #replace {content} {#var user[id] %s \x7b%*\x7d;} {#var user[id] &1 {$login[user][id]};};
  110. #replace {content} {#var user[name] %s \x7b%*\x7d;} {#var user[name] &1 {$login[user][name]};};
  111. #replace {content} {#var user[passwd] %s \x7b%*\x7d;} {#var user[passwd] &1 {$login[user][passwd]};};
  112. #replace {content} {#nop 上面三处修改完毕之后,请删除下面这行文字:;\n} {};
  113. #replace {content} {#var user[manual] %s \x7b%*\x7d;\n} {};
  114. #line quiet #log remove $file;
  115. #line log $file {$content\};
  116. };
  117. #alias {windows-terminal-setup} {
  118. #local id {%1};
  119. #local id-file {%2};
  120. load-config windows;
  121. #local json {\x7b\r
  122. \x20\x20"profiles":\r
  123. \x20\x20{\r
  124. \x20\x20\x20\x20"defaults": {},\r
  125. \x20\x20\x20\x20"list": \r
  126. \x20\x20\x20\x20[\r
  127. \x20\x20\x20\x20\x20\x20{\r
  128. \x20\x20\x20\x20\x20\x20\x20\x20"commandline": "$gPaoTinPath/bin/tt++.exe $id-file",\r
  129. \x20\x20\x20\x20\x20\x20\x20\x20"hidden": false,\r
  130. \x20\x20\x20\x20\x20\x20\x20\x20"name": "$id@$gCurrentMUDLIB",\r
  131. \x20\x20\x20\x20\x20\x20\x20\x20"startingDirectory": "$gPaoTinPath"\r
  132. \x20\x20\x20\x20\x20\x20}\r
  133. \x20\x20\x20\x20]\r
  134. \x20\x20}\r
  135. \x7d\r
  136. };
  137. #local appdata {@getenv{LOCALAPPDATA}};
  138. #local file {$appdata/Microsoft/Windows Terminal/Fragments/PaoTin++/${id}.json};
  139. #line quiet #line remove {$file};
  140. #line log {$file} {$json};
  141. };