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

📄 dbshare.pas

📁 乐都SQL版传奇全套代码,绝对可编译
💻 PAS
📖 第 1 页 / 共 2 页
字号:
begin
  ServerIPList.Clear;
  try
    ServerIPList.LoadFromFile(sServerIPConfFileNmae);
  except
    OutMainMessage('加载IP列表文件 ' + sServerIPConfFileNmae + ' 出错!!!');
  end;
end;

procedure LoadConfig();
var
  Conf                                  : TIniFile;
  LoadInteger                           : Integer;

  function LoadConfigInteger(sSection, sIdent: string; nDefault: Integer):
    Integer;
  var
    nLoadInteger                        : Integer;
  begin
    nLoadInteger := Conf.ReadInteger(sSection, sIdent, -1);
    if nLoadInteger < 0 then
    begin
      Conf.WriteInteger(sSection, sIdent, nDefault);
      Result := nDefault;
    end
    else
    begin
      Result := nLoadInteger;
    end;
  end;

  function LoadConfigString(sSection, sIdent, sDefault: string): string;
  var
    sString                             : string;
  begin
    sString := Conf.ReadString(sSection, sIdent, '');
    if sString = '' then
    begin
      Conf.WriteString(sSection, sIdent, sDefault);
      Result := sDefault;
    end
    else
    begin
      Result := sString;
    end;
  end;
begin
  Conf := TIniFile.Create(sConfFileName);
  if Conf <> nil then
  begin




    DataBaseConfig.IP:=LoadConfigString('DATASETUP','IP','127.0.0.1');
    DataBaseConfig.DatabaseName:=LoadConfigString('DATASETUP','DataServer' ,'(LOCAL)');
    DataBaseConfig.DataTableName:=LoadConfigString('DATASETUP','DataBase' ,'');
    DataBaseConfig.DataUserName:=LoadConfigString('DATASETUP','DataAccount' ,'sa');
    DataBaseConfig.DAtaPassWord:=LoadConfigString('DATASETUP','DataPassWord' ,'');



    sDataDBFilePath := Conf.ReadString('DB', 'Dir', sDataDBFilePath);
    sHumDBFilePath := Conf.ReadString('DB', 'HumDir', sHumDBFilePath);
    sFeedPath := Conf.ReadString('DB', 'FeeDir', sFeedPath);
    sBackupPath := Conf.ReadString('DB', 'Backup', sBackupPath);
    sConnectPath := Conf.ReadString('DB', 'ConnectDir', sConnectPath);
    sLogPath := Conf.ReadString('DB', 'LogDir', sLogPath);

    nServerPort := Conf.ReadInteger('Setup', 'ServerPort', nServerPort);
    sServerAddr := Conf.ReadString('Setup', 'ServerAddr', sServerAddr);

    g_nGatePort := Conf.ReadInteger('Setup', 'GatePort', g_nGatePort);
    g_sGateAddr := Conf.ReadString('Setup', 'GateAddr', g_sGateAddr);

    g_nRemotPort:=Conf.ReadInteger('Setup','RemotePort',g_nRemotPort);
    g_SRemotAddr:=Conf.ReadString('Setup','RemoteAddr',g_SRemotAddr);

    sIDServerAddr := Conf.ReadString('Server', 'IDSAddr', sIDServerAddr);
    nIDServerPort := Conf.ReadInteger('Server', 'IDSPort', nIDServerPort);

    boViewHackMsg := Conf.ReadBool('Setup', 'ViewHackMsg', boViewHackMsg);
    sServerName := Conf.ReadString('Setup', 'ServerName', sServerName);
    {
    boClearLevel1:=Conf.ReadBool('DBClear','ClearLevel1',boClearLevel1);
    boClearLevel2:=Conf.ReadBool('DBClear','ClearLevel2',boClearLevel2);
    boClearLevel3:=Conf.ReadBool('DBClear','ClearLevel3',boClearLevel3);
    }
    dwInterval := Conf.ReadInteger('DBClear', 'Interval', dwInterval);
    nLevel1 := Conf.ReadInteger('DBClear', 'Level1', nLevel1);
    nLevel2 := Conf.ReadInteger('DBClear', 'Level2', nLevel2);
    nLevel3 := Conf.ReadInteger('DBClear', 'Level3', nLevel3);
    nDay1 := Conf.ReadInteger('DBClear', 'Day1', nDay1);
    nDay2 := Conf.ReadInteger('DBClear', 'Day2', nDay2);
    nDay3 := Conf.ReadInteger('DBClear', 'Day3', nDay3);
    nMonth1 := Conf.ReadInteger('DBClear', 'Month1', nMonth1);
    nMonth2 := Conf.ReadInteger('DBClear', 'Month2', nMonth2);
    nMonth3 := Conf.ReadInteger('DBClear', 'Month3', nMonth3);

    LoadInteger := Conf.ReadInteger('Setup', 'DynamicIPMode', -1);
    if LoadInteger < 0 then
    begin
      Conf.WriteBool('Setup', 'DynamicIPMode', g_boDynamicIPMode);
    end
    else
      g_boDynamicIPMode := LoadInteger = 1;

    Conf.Free;
  end;
  LoadIPTable();
  LoadGateID();
end;

function GetCodeMsgSize(X: Double): Integer;
begin
  if INT(X) < X then
    Result := TRUNC(X) + 1
  else
    Result := TRUNC(X)
end;

function CheckChrName(sChrName: string): Boolean;
//0x0045BE60
var
  i                                     : Integer;
  Chr                                   : Char;
  boIsTwoByte                           : Boolean;
  FirstChr                              : Char;
begin
  Result := True;
  boIsTwoByte := False;
  FirstChr := #0;
  for i := 1 to Length(sChrName) do
  begin
    Chr := (sChrName[i]);
    if boIsTwoByte then
    begin
      //if Chr < #$A1 then Result:=False; //如果小于就是非法字符
//      if Chr < #$81 then Result:=False; //如果小于就是非法字符

      if not ((FirstChr <= #$F7) and (Chr >= #$40) and (Chr <= #$FE)) then
        if not ((FirstChr > #$F7) and (Chr >= #$40) and (Chr <= #$A0)) then
          Result := False;




      boIsTwoByte := False;
    end
    else
    begin                                                   //0045BEC0
      //if (Chr >= #$B0) and (Chr <= #$C8) then begin
      if (Chr >= #$81) and (Chr <= #$FE) then
      begin
        boIsTwoByte := True;
        FirstChr := Chr;
      end
      else
      begin                                                 //0x0045BED2
        if not ((Chr >= '0' {#30}) and (Chr <= '9' {#39})) and
          not ((Chr >= 'a' {#61}) and (Chr <= 'z') {#7A}) and
          not ((Chr >= 'A' {#41}) and (Chr <= 'Z' {#5A})) then
          Result := False;
      end;
    end;
    if not Result then
      break;
  end;

end;



procedure OutMainMessage(sMsg: string);
begin
  WriteLogMsg(sMsg);
  FrmDBSrv.MemoLog.Lines.Add(sMsg);
end;

procedure WriteLogMsg(sMsg: string);
begin
  LogMemstream.Add(sMsg);
  LogMemstream.SaveToFile(sLogFileName);
end;

function CheckServerIP(sIP: string): Boolean;
var
  i                                     : Integer;
begin
  Result := False;
  for i := 0 to ServerIPList.Count - 1 do
  begin
    if CompareText(sIP, ServerIPList.Strings[i]) = 0 then
    begin
      Result := True;
      break;
    end;
  end;
end;

procedure SendGameCenterMsg(wIdent: Word; sSendMsg: string);
var
  SendData          : TCopyDataStruct;
  nParam            : Integer;
begin
  nParam := MakeLong(Word(tDBServer), wIdent);
  SendData.cbData := Length(sSendMsg) + 1;
  GetMem(SendData.lpData, SendData.cbData);
  StrCopy(SendData.lpData, PChar(sSendMsg));
  SendMessage(g_dwGameCenterHandle, WM_COPYDATA, nParam, Cardinal(@SendData));
  FreeMem(SendData.lpData);
end;
initialization
  begin
    InitializeCriticalSection(HumDB_CS);
    DenyChrNameList := TStringList.Create;
    ServerIPList := TStringList.Create;
    GateIDList := TStringList.Create;
    LogMemstream:=TStringList.Create;
  end;
finalization
  begin
    DenyChrNameList.Free;
    ServerIPList.Free;
    GateIDList.Free;
    LogMemstream.Free;

  end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -