login.tin 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  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. #showme 登录成功。;
  29. #nop 如果角色设置了 MXP 支持,则在建连之后主动向服务器发起 MXP 协商。;
  30. #nop 否则需要主动回车以放弃 MXP 协商。;
  31. #if { "$user[MXP]" == "true" } {
  32. load-lib mxp;
  33. #if { @existsAlias{mxp.Enable} } {
  34. mxp.Enable;
  35. };
  36. #else {
  37. #cr;
  38. };
  39. };
  40. #else {
  41. #cr;
  42. };
  43. #if { @isFalse{$login[user][manual]} } {
  44. login.online;
  45. #return;
  46. };
  47. #line oneshot #action {^%u目前正在连线中。$} {
  48. #var login[user][name] {%%1};
  49. #delay 0 {
  50. login.write-id-file;
  51. login.init-game;
  52. login.online;
  53. };
  54. };
  55. finger $login[user][id];
  56. };
  57. #alias {login.online} {
  58. #local handler $login[autoexec];
  59. #class login.auto-login kill;
  60. #undelay login.login-success;
  61. kill-module login;
  62. $handler;
  63. #if { "$user[GMCP]" == "true" } {
  64. #delay 1 {
  65. load-module gmcp;
  66. gmcp.${gCurrentMUDLIB}.Enable;
  67. };
  68. };
  69. };
  70. #alias {login.init-game} {
  71. #if { "$login[user][id]" == "" || "$user[id]" != "" } {
  72. #return;
  73. };
  74. #var user[id] {$login[user][id]};
  75. #var user[passwd] {$login[user][passwd]};
  76. #gts #var user[id] {$login[user][id]};
  77. #gts #var user[passwd] {$login[user][passwd]};
  78. #local path {$user[id]};
  79. #if { "$session[log_path]" != "" } {
  80. #local path {$session[log_path]};
  81. };
  82. #if { !@InitLog{$path} } {
  83. #echo {<119>创建日志目录 $gLog[PATH]/$path 时遇到错误。<299>};
  84. #echo {<139>请检查你的安装环境,或者参考使用手册重新安装本软件。<299>};
  85. #return;
  86. };
  87. log.Open;
  88. #screen set title GAME-$user[id];
  89. NOTE 启动配置文件已生成,下次你可以直接 start $login[user][id] 进入游戏。;
  90. };
  91. #alias {login.write-id-file} {
  92. #if { "$login[user][id]" == "" || "$user[id]" != "" } {
  93. #return;
  94. };
  95. #local id-file {ids/$login[user][id]};
  96. #if { @existsDir{var/ids} } {
  97. #local id-file {var/$id-file};
  98. };
  99. #if { @existsFile{$id-file} } {
  100. #return;
  101. };
  102. #scan {file} {ids/$gCurrentMUDLIB} {login.write-id-file.do {$id-file} {&1}};
  103. };
  104. #nop 因为 #scan 命令和 #replace 命令都要用 &1,会存在冲突,因此需要分开两个 #alias 来写。;
  105. #alias {login.write-id-file.do} {
  106. #local file {%1};
  107. #local content {%2};
  108. #replace {content} {#var user[id] %s \x7b%*\x7d;} {#var user[id] &1 {$login[user][id]};};
  109. #replace {content} {#var user[name] %s \x7b%*\x7d;} {#var user[name] &1 {$login[user][name]};};
  110. #replace {content} {#var user[passwd] %s \x7b%*\x7d;} {#var user[passwd] &1 {$login[user][passwd]};};
  111. #replace {content} {#nop 上面三处修改完毕之后,请删除下面这行文字:;\n} {};
  112. #replace {content} {#var user[manual] %s \x7b%*\x7d;\n} {};
  113. #line quiet #log remove $file;
  114. #line log $file {$content\};
  115. };