login.tin 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. #nop vim: filetype=tt
  2. #var login[session] {};
  3. #var login[user] {};
  4. #var login[autoexec] {};
  5. #alias {login} {
  6. #var login[session] {%1};
  7. #var login[user] {%2};
  8. #var login[autoexec] {%3};
  9. #session {$session[name]} {$session[host]} {$session[port]};
  10. };
  11. #event {SESSION CONNECTED} {
  12. #if { "%0" !== "$login[session][name]" } {
  13. #return;
  14. };
  15. login.auto-login;
  16. };
  17. #alias {login.auto-login} {
  18. #class login.auto-login open;
  19. #config {IAC GA} {OFF};
  20. #nop 如果角色设置了 GMCP 支持,则积极回应服务器的 GMCP 协商请求。;
  21. #if { "$user[GMCP]" == "true" } {
  22. load-lib gmcp;
  23. gmcp.Enable;
  24. };
  25. #if { "$session[UTF8]" == "true" } {
  26. #config {charset} {UTF-8};
  27. };
  28. #else {
  29. #config {charset} {GBK1TOUTF8};
  30. };
  31. #line oneshot #action {^%sWelcome to Xi You Ji! Select GB or BIG5 (gb/big5):$} {
  32. #line oneshot #event {CATCH VT100 ERASE SCREEN ALL} {#0;#buffer end};
  33. xtt.Answer gb;
  34. };
  35. #line oneshot #action {^您是否是中小学学生或年龄更小?(yes/no)$} {
  36. #delay 0 #send no;
  37. };
  38. #line oneshot #action {^您的英文名字:(新玩家请键入 new 注册)$} {
  39. #if { "$login[user][id]" != "" } {
  40. xtt.Answer {$login[user][id]};
  41. };
  42. #else {
  43. #line oneshot #macro {\n} {
  44. #cursor get {login[user][id]};
  45. #cursor clear;
  46. #if { "$login[user][id]" == "#%*" } {
  47. #var login[user][id] {};
  48. };
  49. #if { "$login[user][id]" != "" } {
  50. xtt.Answer {$login[user][id]};
  51. };
  52. };
  53. };
  54. };
  55. #action {^请输入相应密码:$} {
  56. #if { "$login[user][passwd]" != "" } {
  57. xtt.Answer {$login[user][passwd]};
  58. #delay {login.check} {look} 1;
  59. };
  60. #else {
  61. #cursor flag echo on;
  62. #line oneshot #macro {\n} {
  63. #cursor get {login[user][passwd]};
  64. #cursor clear;
  65. #if { "$login[user][passwd]" != "" } {
  66. xtt.Answer {$login[user][passwd]};
  67. };
  68. };
  69. };
  70. };
  71. #line oneshot #action {^您要将另一个连线中的相同人物赶出去,取而代之吗?(y/n)$} {
  72. xtt.Answer y;
  73. };
  74. #line oneshot #action {^重新连线完毕。$} {
  75. #delay {login.auto-login.success} {login.auto-login.success 断线重连} 0;
  76. };
  77. #alias {login.auto-login.success} {
  78. #local type {%%1};
  79. #if { @isTrue{$login[user][manual]} } {
  80. login.write-id-file;
  81. login.init-game;
  82. };
  83. #showme 登录成功。;
  84. #local handler $login[autoexec];
  85. #class login.auto-login kill;
  86. #undelay login.auto-login.success;
  87. kill-module login;
  88. $handler;
  89. };
  90. #class login.auto-login close;
  91. };
  92. #alias {login.init-game} {
  93. #if { "$login[user][id]" == "" || "$user[id]" != "" } {
  94. #return;
  95. };
  96. #var user[id] {$login[user][id]};
  97. #var user[passwd] {$login[user][passwd]};
  98. #gts #var user[id] {$login[user][id]};
  99. #gts #var user[passwd] {$login[user][passwd]};
  100. #local path {$user[id]};
  101. #if { "$session[log_path]" != "" } {
  102. #local path {$session[log_path]};
  103. };
  104. #if { !@InitLog{$path} } {
  105. #echo {<119>创建日志目录 $gLog[PATH]/$path 时遇到错误。<299>};
  106. #echo {<139>请检查你的安装环境,或者参考使用手册重新安装本软件。<299>};
  107. #return;
  108. };
  109. log.Open;
  110. #screen set title GAME-$user[id];
  111. NOTE 启动配置文件已生成,下次你可以直接 start $login[user][id] 进入游戏。;
  112. };
  113. #alias {login.write-id-file} {
  114. #if { "$login[user][id]" == "" || "$user[id]" != "" } {
  115. #return;
  116. };
  117. #local id-file {ids/$login[user][id]};
  118. #local output {};
  119. #script output {test -d var/ids && echo true || echo false};
  120. #if { "$output[1]" == "true" } {
  121. #local id-file {var/$id-file};
  122. };
  123. #if { @existsFile{$id-file} } {
  124. #return;
  125. };
  126. #script output {cp ids/thuxyj $id-file};
  127. #script output {sed -i.bak 's/^#var user\[id\] {.*};$/#var user[id] {$login[user][id]};/' $id-file};
  128. #script output {sed -i.bak 's/^#var user\[name\] {.*};$/#var user[name] {};/' $id-file};
  129. #script output {sed -i.bak 's/^#var user\[passwd\] {.*};$/#var user[passwd] {$login[user][passwd]};/' $id-file};
  130. #script output {sed -i.bak '/^#nop 上面三处修改完毕之后,请删除下面这行文字:;$/d' $id-file};
  131. #script output {sed -i.bak '/^#var user\[manual\] {true};$/d' $id-file};
  132. #script output {rm ${id-file}.bak};
  133. };