📄 global.asax.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Web;
using System.Web.SessionState;
using System.Configuration;
using System.Net;
namespace xajh
{
/// <summary>
/// Global 的摘要说明。
/// </summary>
public class Global : System.Web.HttpApplication
{
public Global()
{
InitializeComponent();
}
protected void Application_Start(object sender, EventArgs e)
{
CheckSN chksn = new CheckSN();
string back = chksn.Decrypt3DES(ConfigurationSettings.AppSettings["AppKey"]);
string[] backs = back.Split('|');
System.Net.IPAddress addr = new System.Net.IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList[0].Address);
if (back == "无效的认证码")
{
var.system_reged = "许可证错误";
return;
}
else if (backs[0] != "127.0.0.1" && addr.ToString() != backs[0])
{
var.system_reged = "本许可证的注册IP(" + backs[0] + ")不是本服务器的IP(" + addr.ToString() + ")";
return;
}
else if (DateTime.Parse(backs[2]) < DateTime.Now)
{
var.system_reged = "本许可证已经过期";
return;
}
else
{
var.system_reged = "合法用户";
}
var.public_apppath = backs[1];
var.public_user = backs[3];
var.public_sn = backs[4];
var.public_logs = ConfigurationSettings.AppSettings["Logs"];
var.public_conn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + backs[1] + ConfigurationSettings.AppSettings["DataBase"];
int j;
DataSet ds = new DataSet();
OleDbConnection MyConn = new OleDbConnection(var.public_conn);
MyConn.Open();
OleDbDataAdapter MyAdapter = new OleDbDataAdapter();
MyAdapter.SelectCommand = new OleDbCommand();
MyAdapter.SelectCommand.Connection = MyConn;
MyAdapter.SelectCommand.CommandText = @"select * from [房间列表]";
MyAdapter.Fill(ds, "房间列表");
MyAdapter.SelectCommand.CommandText = @"select * from [系统参数]";
MyAdapter.Fill(ds, "系统参数");
MyAdapter.SelectCommand.CommandText = @"select * from [随机事件]";
MyAdapter.Fill(ds, "随机事件");
MyAdapter.SelectCommand.CommandText = @"select * from [街市信息]";
MyAdapter.Fill(ds, "街市信息");
MyAdapter.SelectCommand.CommandText = @"select * from [马匹列表]";
MyAdapter.Fill(ds, "马匹列表");
MyAdapter.SelectCommand.CommandText = @"select * from [待售物品]";
MyAdapter.Fill(ds, "待售物品");
MyConn.Close();
MyConn.Dispose();
this.Application.Lock();
foreach (DataRow dr in ds.Tables["房间列表"].Rows)
{
string[] saveinfo = new string[4];
saveinfo[0] = dr["不是会员"].ToString();
saveinfo[1] = dr["一级会员"].ToString();
saveinfo[2] = dr["二级会员"].ToString();
saveinfo[3] = dr["三级会员"].ToString();
x.RoomInfo roominfo = new x.RoomInfo();
roominfo.RoomName = dr["房间名称"].ToString();
roominfo.AutoMan = dr["机器人名"].ToString();
roominfo.MaxOnline = (int) dr["最大在线"];
roominfo.MinGrade = (int) dr["等级最小"];
roominfo.MaxGrade = (int) dr["等级最大"];
roominfo.MinFGrade = (int) dr["战级最小"];
roominfo.MaxFGrade = (int) dr["战级最大"];
roominfo.MinGGrade = (int) dr["会员最小"];
roominfo.MaxGGrade = (int) dr["会员最大"];
roominfo.CheckSex = dr["性别限制"].ToString();
string othercheck = dr["其他限制"].ToString();
if (othercheck == null || othercheck == "" || othercheck == "(无)")
{
roominfo.CheckIn = "(无)";
}
else
{
roominfo.CheckIn = othercheck;
}
roominfo.CanUseWG = (bool) dr["允许动武"];
roominfo.CanUseThing = (bool) dr["允许物品"];
roominfo.CanManage = (bool) dr["允许管理"];
this.Application["byts_xajh_chat_saveinfo_" + dr["id"]] = saveinfo;
this.Application["byts_xajh_chat_roominfo_" + dr["id"]] = roominfo;
this.Application["byts_xajh_chat_ranthing_" + dr["id"]] = (int) dr["随机事件"];
this.Application["byts_xajh_chat_line_" + dr["id"]] = 0;
this.Application["byts_xajh_chat_online_" + dr["id"]] = new ArrayList();
ArrayList words = new ArrayList();
for (j = 0; j < 30; j ++)
{
words.Add(new string[9]);
}
this.Application["byts_xajh_chat_words_" + dr["id"]] = words;
var.public_roomlist.Add(dr["id"].ToString());
}
string[] tq;
xajh.x CheckFormat = new xajh.x();
foreach (DataRow dr in ds.Tables["系统参数"].Rows)
{
switch (dr["参数名称"].ToString())
{
case "江湖名称":
var.public_name = dr["参数数值"].ToString();
break;
case "进入公告":
var.public_add = dr["参数数值"].ToString();
break;
case "退出公告":
var.public_del = dr["参数数值"].ToString();
break;
case "进入房间":
var.public_addroom = dr["参数数值"].ToString();
break;
case "退出房间":
var.public_delroom = dr["参数数值"].ToString();
break;
case "掉线公告":
var.public_down = dr["参数数值"].ToString();
break;
case "超时公告":
var.public_timeout = dr["参数数值"].ToString();
break;
case "存档间隔":
var.public_savespan = int.Parse(dr["参数数值"].ToString());
break;
case "赛马间隔":
var.public_horsespan = int.Parse(dr["参数数值"].ToString());
break;
case "上限参考":
var.public_maxfor = dr["参数数值"].ToString();
break;
case "PBC等级":
var.public_pbc = int.Parse(dr["参数数值"].ToString());
break;
case "标题等级":
var.public_title = int.Parse(dr["参数数值"].ToString());
break;
case "HTML等级":
var.public_html = int.Parse(dr["参数数值"].ToString());
break;
case "呼叫参数":
var.public_webicq = CheckFormat.MakeCheck(dr["参数数值"].ToString());
break;
case "点歌参数":
var.public_song = CheckFormat.MakeCheck(dr["参数数值"].ToString());
break;
case "战级参考":
var.public_fightgrade = int.Parse(dr["参数数值"].ToString());
break;
case "不是会员":
var.public_goldmax[0] = dr["参数数值"].ToString();
break;
case "一级会员":
var.public_goldmax[1] = dr["参数数值"].ToString();
break;
case "二级会员":
var.public_goldmax[2] = dr["参数数值"].ToString();
break;
case "三级会员":
var.public_goldmax[3] = dr["参数数值"].ToString();
break;
case "执政偷盗":
tq = dr["参数数值"].ToString().Split('|');
for (int i = 0; i < 4; i ++)
{
var.public_t1[i] = int.Parse(tq[i]);
}
break;
case "在野偷盗":
tq = dr["参数数值"].ToString().Split('|');
for (int i = 0; i < 4; i ++)
{
var.public_t2[i] = int.Parse(tq[i]);
}
break;
case "执政偷钱":
tq = dr["参数数值"].ToString().Split('|');
for (int i = 0; i < 4; i ++)
{
var.public_t3[i] = int.Parse(tq[i]);
}
break;
case "在野偷钱":
tq = dr["参数数值"].ToString().Split('|');
for (int i = 0; i < 4; i ++)
{
var.public_t4[i] = int.Parse(tq[i]);
}
break;
case "街市分类":
var.public_streettype = dr["参数数值"].ToString();
break;
case "物品分类":
var.public_shoptype = dr["参数数值"].ToString();
break;
case "传音参数":
var.public_fly = CheckFormat.MakeCheck(dr["参数数值"].ToString());
break;
case "赌博参数":
var.public_bet = CheckFormat.MakeCheck(dr["参数数值"].ToString());
break;
case "SMTP地址":
var.public_mailServer = dr["参数数值"].ToString();
break;
case "使用邮件":
if (dr["参数数值"].ToString().ToLower() == "true")
{
var.public_mailUse = true;
}
else
{
var.public_mailUse = false;
}
break;
case "发件地址":
var.public_mailFrom = dr["参数数值"].ToString();
break;
case "发件人名":
var.public_mailFromName = dr["参数数值"].ToString();
break;
case "回复地址":
var.public_mailReplyTo = dr["参数数值"].ToString();
break;
case "提问等级":
var.public_question = int.Parse(dr["参数数值"].ToString());
break;
case "管理门派":
var.public_adminclass = dr["参数数值"].ToString();
break;
case "开放竞争":
if (dr["参数数值"].ToString().ToLower() == "true")
{
var.public_adminfree = true;
}
else
{
var.public_adminfree = false;
}
break;
default:
break;
}
}
string[] randominfo;
foreach (DataRow dr in ds.Tables["随机事件"].Rows)
{
randominfo = new string[7];
randominfo[0] = dr["提示"].ToString();
randominfo[1] = dr["图片"].ToString();
randominfo[2] = dr["随机开始"].ToString();
randominfo[3] = dr["随机结束"].ToString();
randominfo[4] = dr["操作字段"].ToString();
randominfo[5] = dr["运算符号"].ToString();
randominfo[6] = dr["显示语句"].ToString();
var.public_randomhappen.Add(randominfo);
}
var.public_street = ds.Tables["街市信息"];
DataColumn[] mycol = new DataColumn[1];
mycol[0] = var.public_street.Columns["id"];
var.public_street.PrimaryKey = mycol;
var.public_horseinfo = ds.Tables["马匹列表"];
mycol = new DataColumn[1];
mycol[0] = var.public_horseinfo.Columns["id"];
var.public_horseinfo.PrimaryKey = mycol;
var.public_shopthing = ds.Tables["待售物品"];
mycol = new DataColumn[1];
mycol[0] = var.public_shopthing.Columns["id"];
var.public_shopthing.PrimaryKey = mycol;
ds.Dispose();
if (var.public_horseinfo.Rows.Count != 0 && var.public_horsespan != 0)
{
new xajh.horse_start();
}
var.public_starttime = DateTime.Now;
this.Application.UnLock();
if (var.log_system == true)
{
if (!Directory.Exists(var.public_apppath + var.public_logs))
{
Directory.CreateDirectory(var.public_apppath + var.public_logs);
}
StreamWriter SW;
if (File.Exists(var.public_apppath + var.public_logs + "System.cs"))
{
SW = File.AppendText(var.public_apppath + var.public_logs + "System.cs");
}
else
{
SW = File.CreateText(var.public_apppath + var.public_logs + "System.cs");
}
SW.WriteLine(DateTime.Now + "\t正在载入 \"" + var.public_apppath + "bin\\xajh.dll\"......\r\n\t\t\t笑傲江湖服务器端程序启动成功!");
SW.Close();
}
}
protected void Session_Start(object sender, EventArgs e)
{
this.Session.Timeout = 2;
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
this.Response.Cache.SetExpires (DateTime.Now);
this.Response.Cache.AppendCacheExtension("no-cache");
this.Response.Write ("<!-- 离开你不是我要的结局,爱你是我一生的选择。 -- 变异天使(Zhou Yangsi) -->\r");
if (var.system_reged != "合法用户")
{
this.Response.Write (var.system_reged + ",禁止使用!请联系作者喳喳鸟(变异天使)购买正版产品!byts@msn.com");
this.Response.End();
}
}
protected void Application_EndRequest(object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
protected void Application_Error(object sender, EventArgs e)
{
if (var.log_error == true)
{
if (!Directory.Exists(var.public_apppath + var.public_logs))
{
Directory.CreateDirectory(var.public_apppath + var.public_logs);
}
StreamWriter SW;
if (File.Exists(var.public_apppath + var.public_logs + "Error.cs"))
{
SW = File.AppendText(var.public_apppath + var.public_logs + "Error.cs");
}
else
{
SW = File.CreateText(var.public_apppath + var.public_logs + "Error.cs");
}
SW.WriteLine(DateTime.Now + "\t\"" + this.Request.Path + "\"发生未知错误......\r\n 错误类型:" + this.Server.GetLastError().Message + "\r\n 错误信息:\r\n " + this.Server.GetLastError().InnerException + "\r\n================================================================================================");
SW.Close();
}
}
protected void Session_End(object sender, EventArgs e)
{
if (this.Session["info"] != null)
{
this.Application.Lock();
x.UserInfo info = (x.UserInfo) this.Session["info"];
var.public_onlineinfo.Remove(info.UserName);
var.public_online --;
if (info.RoomID != "false")
{
((ArrayList) this.Application["byts_xajh_chat_online_" + info.RoomID]).Remove(info.UserName);
var.public_inchat --;
string[] aword = new string[9];
aword[0] = "del";
aword[1] = info.UserName;
aword[2] = "";
aword[3] = "";
aword[4] = "";
aword[5] = "";
aword[6] = var.public_down;
aword[7] = "掉线";
aword[8] = DateTime.Now.ToLongTimeString();
ArrayList words = (ArrayList) this.Application["byts_xajh_chat_words_" + info.RoomID];
words.Add(aword);
words.RemoveAt(0);
this.Application["byts_xajh_chat_line_" + info.RoomID] = (int) this.Application["byts_xajh_chat_line_" + info.RoomID] + 1;
}
this.Application.UnLock();
}
}
protected void Application_End(object sender, EventArgs e)
{
if (var.log_system == true)
{
if (!Directory.Exists(var.public_apppath + var.public_logs))
{
Directory.CreateDirectory(var.public_apppath + var.public_logs);
}
StreamWriter SW;
if (File.Exists(var.public_apppath + var.public_logs + "System.cs"))
{
SW = File.AppendText(var.public_apppath + var.public_logs + "System.cs");
}
else
{
SW = File.CreateText(var.public_apppath + var.public_logs + "System.cs");
}
SW.WriteLine(DateTime.Now + "\t正在释放 \"" + var.public_apppath + "bin\\xajh.dll\"所占用的资源......\r\n\t\t\t笑傲江湖服务器端程序关闭!");
SW.Close();
}
}
#region Web Form Designer generated code
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -