📄 return_type.pl
字号:
###############################################################
sub return_type {
do "$home_dir/write_mess.pl";
if ($FORM{'oldroom'}) {
$oldroom = "$FORM{'oldroom'}";
$oldroom =~ s/\n//g;
}
if ($FORM{'newroom'}) {
$newroom = "$FORM{'newroom'}";
$newroom =~ s/\n//g;
$newroom =~ s/<!--(.|\n)*-->//g;
$newroom =~ s/<([^>]|\n)*>//g;
$newroom =~ s/"|\?|$| |;|‖|\&|\*//g;
$newroom =~ s/<//g;
$newroom =~ s/>//g;
}
if (($command eq "create") && ($newroom)){
open(DATA,">$homedir/temp/$info.txt") || &error("无法打开文件$info.txt");
print DATA $now_sec."=".$newroom."\n";
close(DATA);
$userinfo ="&username=$username&usersex=$usersex&userpassword=$userpassword&userlevel=$userlevel&room=$newroom&id=$id";
$userinfo=~s/\n//g;
}else{
open(DATA,">$homedir/temp/$info.txt") || &error("无法打开文件$info.txt");
print DATA $now_sec."=".$room."\n";
close(DATA);
}
########### 开房 ###############
open (Create,"<$homedir/createroom.txt") || &error("无法打开文件createroom.txt");
@create=<Create>;
close (Create);
chop(@create);
foreach $create (@create) {
($chkroom,$chkusername,$chknow_sec,$chkclose) = split(/=/, $create);
if ($chkusername eq $username) {
do "$home_dir/check_time.pl";
&check_time;
open(DATA,">$homedir/temp/$info.txt") || &error("无法打开文件$info.txt");
print DATA $now_sec."=".$oldroom."\n";
close(DATA);
$userinfo ="&username=$username&usersex=$usersex&userpassword=$userpassword&userlevel=$userlevel&room=$oldroom&id=$id";
$userinfo=~s/\n//g;
}
}
if (($command eq "create") && ($newroom)) {
if ($userlevel >= $level_create) {
unless(-e "$homedir/temp/rooms/$newroom"){ #如果房间不存在
open (MESS,">>$homedir/temp/rooms/$newroom") || &error("无法打开文件$newroom");
close(MESS);
chmod 0666,"$homedir/temp/rooms/$newroom";
open (Create,">>$homedir/createroom.txt") || &error("无法打开文件createroom.txt");
print Create $newroom."=".$username."=".$now_sec."=open\n";
close (Create);
opendir(STAT,"$homedir/temp/rooms") || &error("无法打开目录rooms");
@dir = readdir(STAT);
closedir(STAT);
foreach $allroom (sort @dir){
if ($allroom ne '.' && $allroom ne '..'){
$allroom =~ s/\n//;
&write_mess(create,$newroom,$allroom);
}
}
do "$home_dir/type.pl";
&type;
}else{
print "<script Language=\"JavaScript\">\n";
print "alert(\"对不起,你想开的房间已经有主人了!\");\n";
print "</script\n";
}
}else{
print "<script Language=\"JavaScript\">\n";
print "alert(\"对不起你暂时还没有开房间的级别!...\");\n";
print "</script>\n";
}
################## 换房 #######################
}elsif ($command eq "chang") {
if ($userlevel >= $level_createroom) {
if ($room eq $oldroom) {
do "$home_dir/type.pl";
&type;
} #取消重复操作
if (-e "$homedir/temp/rooms/$room"){ #该聊室存在就执行
foreach $key (@rooms){
if ($key eq $room ) {
&write_mess(change,$room,$room,"悠闲的来到了\"$room\"","四处看了看...");
opendir(STAT,"$homedir/temp/rooms") || &error("无法打开目录$homedir/temp/rooms");
@dir = readdir(STAT);
closedir(STAT);
foreach $allroom (sort @dir){
if ($allroom ne '.' && $allroom ne '..'){
$allroom =~ s/\n//;
if ($allroom ne $room) { &write_mess(change,$room,$allroom,"离开\"$oldroom\"","并说:\"谁要找我就到\"$room\"来吧!\""); }
}
}
do "$home_dir/type.pl";
&type;
}
}
open(TIME,"<$homedir/createroom.txt")|| &error("无法打开文件$homedir/createroom.txt");
@list=<TIME>;
close(TIME);
chop(@list);
foreach $list_line (@list) {
($chkroom,$chkusername,$chknow_sec,$chkclose) = split(/=/, $list_line);
if($check==0) {
if (($chkroom eq $room) && ($chkclose eq "close") && ($chkusername ne $username)) {
$check=1;
}else{
$check=0;
}
}
}
if ($check==1) {
opendir(STAT,"$homedir/temp/rooms") || &error("无法打开目录$homedir/temp/rooms");
@dir = readdir(STAT);
closedir(STAT);
foreach $allroom (sort @dir){
if ($allroom ne '.' && $allroom ne '..'){
$allroom =~ s/\n//;
if ($allroom ne $room) { &write_mess(change,$room,$allroom,"推了推\"$room\"","的门,可门上了锁"); }
}
}
&write_mess(change,$room,$room,"敲了敲你们的门,","问\"我可以进来吗?我想和你们一起聊聊!\"");
$room=$oldroom;
do "$home_dir/check_time.pl";
&check_time;
open(DATA,">$homedir/temp/$info.txt") || &error("无法打开文件$info.txt");
print DATA $now_sec."=".$oldroom."\n";
close(DATA);
$userinfo ="&username=$username&usersex=$usersex&userpassword=$userpassword&userlevel=$userlevel&room=$oldroom&id=$id";
$userinfo=~s/\n//g;
do "$home_dir/type.pl";
&type;
}else{
&write_mess(change,$room,$room,"悠闲的来到了\"$room\"","四处看了看...");
opendir(STAT,"$homedir/temp/rooms") || &error("无法打开目录$homedir/temp/rooms");
@dir = readdir(STAT);
closedir(STAT);
foreach $allroom (sort @dir){
if ($allroom ne '.' && $allroom ne '..'){
$allroom =~ s/\n//;
if ($allroom ne $room) { &write_mess(change,$room,$allroom,"离开\"$oldroom\"","并说:\"谁要找我就到\"$room\"来吧!\""); }
}
}
do "$home_dir/type.pl";
&type;
}
}else{
do "$home_dir/check_time.pl";
&check_time;
open(DATA,">$homedir/temp/$info.txt") || &error("无法打开文件$info.txt");
print DATA $now_sec."=".$oldroom."\n";
close(DATA);
$userinfo ="&username=$username&usersex=$usersex&userpassword=$userpassword&userlevel=$userlevel&room=$oldroom&id=$id";
$userinfo=~s/\n//g;
}
}else{
print "<script Language=\"JavaScript\">\n";
print "alert(\"对不起你暂时还没有开房间的级别...\");\n";
print "</script>\n";
}
##################### 关门 #########################
}elsif ($command eq "close") {
foreach $key (@rooms){
if ($key eq $room ) {
do "$home_dir/type.pl";
&type;
}
}
open(paSS,"<$homedir/createroom.txt") || &error("无法打开文件$homedir/createroom.txt");
@pass = <paSS>;
close(paSS);
chop(@pass);
open (DATA,">$homedir/createroom.txt")|| &error("无法打开文件$homedir/createroom.txt");
foreach $pass_line (@pass) {
($chkroom,$chkusername,$chknow_sec,$chkclose) = split(/=/, $pass_line);
if (($chkroom eq $room) && ($chkusername eq $username)) {
$userdata=$chkroom."=".$chkusername."=".$now_sec."=close\n";
&write_mess(change,$room,$room,"起身将你们的包厢","门关上了,回头神秘的笑笑...");
opendir(STAT,"$homedir/temp/rooms") || &error("无法打开目录$homedir/temp/rooms");
@dir = readdir(STAT);
closedir(STAT);
foreach $allroom (sort @dir){
if ($allroom ne '.' && $allroom ne '..'){
$allroom =~ s/\n//;
if ($allroom ne $room) { &write_mess(change,$room,$allroom,"将\"$room包厢\"","的门关上了,并说\"找我有事的话请多敲几次门!\""); }
}
}
} else {
$userdata=$chkroom."=".$chkusername."=".$chknow_sec."=".$chkclose."\n";
}
print DATA $userdata ;
}
close (DATA);
do "$home_dir/type.pl";
&type;
##################### 开门 ###########################
}elsif ($command eq "open") {
foreach $key (@rooms){
if ($key eq $room ) {
$check=1;
do "$home_dir/type.pl";
&type;
}else{
$check=0;
}
}
if ($check == 0) {
open(paSS,"<$homedir/createroom.txt") || &error("无法打开文件$homedir/createroom.txt");
@pass = <paSS>;
close(paSS);
chop(@pass);
open (DATA,">$homedir/createroom.txt")|| &error("无法打开文件$homedir/createroom.txt");
foreach $pass_line (@pass) {
($chkroom,$chkusername,$chknow_sec,$chkclose) = split(/=/, $pass_line);
if (($chkroom eq $room) && ($chkusername eq $username)) {
&write_mess(change,$room,$room,"起身将你们的包厢","门打开,伸出头去看了看...");
$userdata=$chkroom."=".$chkusername."=".$now_sec."=open\n";
opendir(STAT,"$homedir/temp/rooms") || &error("无法打开目录$homedir/temp/rooms");
@dir = readdir(STAT);
closedir(STAT);
foreach $allroom (sort @dir){
if ($allroom ne '.' && $allroom ne '..'){
$allroom =~ s/\n//;
if ($allroom ne $room) { &write_mess(change,$room,$allroom,"将\"$room包厢\"","的门打开了,手舞足蹈的叫道:\"欢迎欢迎!热烈欢迎!\""); }
}
}
} else {
$userdata=$chkroom."=".$chkusername."=".$chknow_sec."=".$chkclose."\n";
}
print DATA $userdata ;
}
close (DATA);
}
}
do "$home_dir/type.pl";
&type;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -