elona的聊天包含普通聊天同死亡信息。
从elona原版到各种MOD都系度用官方的服务器,唔知仲有冇人记得3DM的汉化导致日本玩家看大量乱码果件事。
最近elonaplus的汉化同样要面对呢个问题,删咗网络功能静系选择咗自建服务器,答案自然是后者。
先讲下前提条件,本文假设你已经识HSP、CGI编程,反编译,有个支持PERL网站空间和相关网络经验,所以唔会有任何基础同点解要咁的讲解,而且本文只讲相应的关键点。
唔废话了,开始。
一,elona 客户端修改
1,start.hsp
搜索“net_read 4”,得一处,注释掉。
再向下睇7行,“dialog "" + var_1057”,同样注释掉。
2,server.txt
将
1 |
noaneko.squares.net%elona.squares.net% |
修改为
1 |
aaa.bbb.com%elona.squares.net% |
第一个是聊天,第二个是投票。
要注意客户端内读的网址是加www的,即 www.aaa.bbb.com
二,服务器端配置
聊天程序是使用“WebTalk v1.6”
应用路径是 http://www.aaa.bbb.com/cgi-bin/wtalk/wtalk.cgi,程序同文件的权限、其它设置自己解决。
1,init.cgi
1 2 3 |
$logfile = "../../log.txt"; $max = 30; |
2,wtalk2.cgi
要修改两个函数,自己参考我下边改的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
sub regist { ... ... ... $i=0; $match=0; @temp=(); $besti=1; foreach (@lines) { chop($_); if ($match) { $i++; push(@temp,"$_\n"); } elsif ($_ eq '<!--START-->') { $match=1; } if ($i > $max-2 || $_ eq '<!--END-->') { last; } if ( 0 == $i ) { ($thisi, $nouse) = split(/<C>/, $_); if ( $thisi > $besti ) { $besti = $thisi; } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
sub renew_log { open(OUT,">$logfile") || &error("Write Error : $logfile"); #print OUT "<html><head>\n"; #print OUT "<STYLE TYPE=\"text/css\"><!-- body,tr,td,th{font-size:$b_size} --></STYLE>\n"; #print OUT "<META HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">\n"; #print OUT "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=zh-CN\">\n"; #print OUT "<META HTTP-EQUIV=\"refresh\" CONTENT=\"$resec; URL=$chat_log\"></head>\n$body\n"; # 参加者表示 #print OUT "参加者($num):$member<hr>\n<!--START-->\n"; $newbest = $besti+1; print OUT "$newbest<C>\n<!--START-->\n"; # 発言本文 #print OUT "<font color=\"$color\"><B>$n_name</B> > $in{'comment'}</font> <small>($date)</small><!--$host--><!--$date--><hr>\n"; $tempdate = sprintf("%s\/%02d(%02d)",$mon+1,$mday,$hour); print OUT "$besti%$tempdate%$in{'comment'}%$ENV{'REMOTE_ADDR'}%\n"; print OUT @temp; # 著作権表示:削除禁止 #print OUT "<!--END-->\n<!-- $ver --><center><small><a href='http://www.kent-web.com/' target='_top'>WebTalk</a></small></center>\n</body>\n</html>\n"; print OUT "<!--END-->\n<!-- $ver --><center><small><a href=\"http://www.kent-web.com/\" target='_top'>Web TALK</a></small></center>"; close(OUT); } |
3,网站根目录
新建一个空的log.txt
可以被读取 http://www.aaa.bbb.com/log.txt
4,针对英文版
由于做汉化的话应该冇人去玩英文的了,你想完美的话可以复制一份,再改下。
http://www.aaa.bbb.com/cgi-bin/wtalken/
$logfile = "../../logen.txt";
http://www.aaa.bbb.com/logen.txt
或者费事烦用SFTP登陆做两个SSH的连接,一个目录连接和log文件的连接。
三,测试
请先自行保证服务端程序能正常运行。
运行重新编译过的elona主程序,按“TAB”键打开聊天,输入聊天内容(你钟意去送死都得的),之后可以直接系 http://www.aaa.bbb.com/log.txt 睇到。