⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 return_type.pl

📁 这个社区是虚拟社区使用的程序
💻 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 + -