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

📄 gmain.pas

📁 传奇服务端代码 GameCenter.rar通讯部分
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    exit;
  end;
  if (nServerPort < 0) or (nServerPort > 65535) then begin
    Application.MessageBox('通讯端口设置错误!!!','错误信息',MB_OK + MB_ICONERROR);
    EditDBServerServerPort.SetFocus;
    exit;
  end;
  g_nDBServer_Config_GatePort         := nGatePort;
  g_nDBServer_Config_ServerPort       := nServerPort;
  g_sDBServer_DBName                  := g_sHeroDBName;
  PageControl3.ActivePageIndex:=6;
end;

procedure TfrmMain.ButtonNext7Click(Sender: TObject);
var
  nPort:Integer;
begin
  nPort:=Str_ToInt(Trim(EditLogServerPort.Text),-1);
  if (nPort < 0) or (nPort > 65535) then begin
    Application.MessageBox('端口设置错误!!!','错误信息',MB_OK + MB_ICONERROR);
    EditLogServerPort.SetFocus;
    exit;
  end;
  g_nLogServer_Port:=nPort;
  PageControl3.ActivePageIndex:=7;
end;
procedure TfrmMain.ButtonNext8Click(Sender: TObject);
var
  nGatePort,nMsgSrvPort:Integer;
begin
  nGatePort:=Str_ToInt(Trim(EditM2ServerGatePort.Text),-1);
  nMsgSrvPort:=Str_ToInt(Trim(EditM2ServerMsgSrvPort.Text),-1);
  if (nGatePort < 0) or (nGatePort > 65535) then begin
    Application.MessageBox('网关端口设置错误!!!','错误信息',MB_OK + MB_ICONERROR);
    EditM2ServerGatePort.SetFocus;
    exit;
  end;
  if (nMsgSrvPort < 0) or (nMsgSrvPort > 65535) then begin
    Application.MessageBox('通讯端口设置错误!!!','错误信息',MB_OK + MB_ICONERROR);
    EditM2ServerMsgSrvPort.SetFocus;
    exit;
  end;
  g_nM2Server_GatePort:=nGatePort;
  g_nM2Server_MsgSrvPort:=nMsgSrvPort;
  PageControl3.ActivePageIndex:=8;
end;

procedure TfrmMain.ButtonPrv4Click(Sender: TObject);
begin
  PageControl3.ActivePageIndex:=2;
end;

procedure TfrmMain.ButtonPrv5Click(Sender: TObject);
begin
  PageControl3.ActivePageIndex:=3;
end;

procedure TfrmMain.ButtonPrv6Click(Sender: TObject);
begin
  PageControl3.ActivePageIndex:=4;
end;

procedure TfrmMain.ButtonPrv7Click(Sender: TObject);
begin
  PageControl3.ActivePageIndex:=5;
end;

procedure TfrmMain.ButtonPrv8Click(Sender: TObject);
begin
  PageControl3.ActivePageIndex:=6;
end;


procedure TfrmMain.ButtonPrv9Click(Sender: TObject);
begin
  PageControl3.ActivePageIndex:=7;
end;
procedure TfrmMain.ButtonSaveClick(Sender: TObject);
begin
//  ButtonSave.Enabled:=False;
  g_IniConf.WriteInteger('GameConf','dwStopTimeOut',g_dwStopTimeOut);
  g_IniConf.WriteString('GameConf','GameDirectory',g_sGameDirectory);
  g_IniConf.WriteString('GameConf','HeroDBName',g_sHeroDBName);
  g_IniConf.WriteString('GameConf','GameName',g_sGameName);
  g_IniConf.WriteString('GameConf','ExtIPaddr',g_sExtIPaddr);

  g_IniConf.WriteBool('GameConf','DynamicIPMode',g_boDynamicIPMode);

  g_IniConf.WriteString('DBServer','RegKey',g_sDBServer_Config_RegKey);
  g_IniConf.WriteString('DBServer','RegServerAddr',g_sDBServer_Config_RegServerAddr);
  g_IniConf.WriteInteger('DBServer','RegServerPort',g_nDBServer_Config_RegServerPort);
  g_IniConf.WriteInteger('DBServer','MainFormX',g_nDBServer_MainFormX);
  g_IniConf.WriteInteger('DBServer','MainFormY',g_nDBServer_MainFormY);
  g_IniConf.WriteInteger('DBServer','GatePort',g_nDBServer_Config_GatePort);
  g_IniConf.WriteInteger('DBServer','ServerPort',g_nDBServer_Config_ServerPort);
  g_IniConf.WriteBool('DBServer','GetStart',g_boDBServer_GetStart);
  g_IniConf.WriteBool('DBServer','AutoBackup',g_boDBServer_AutoBackup);
  g_IniConf.WriteBool('DBServer','BackupClearData',g_boDBServer_BackupClearData);
  g_IniConf.WriteInteger('DBServer','BackupTime',g_dwDBServer_BackupTime);
  g_IniConf.WriteString('DBServer','DBName',g_sDBServer_DBName);
  g_IniConf.WriteBool('DBServer','ShowItemName',g_boDBServer_ShowItemName);



  g_IniConf.WriteString('M2Server','RegKey',g_sM2Server_RegKey);
  g_IniConf.WriteString('M2Server','RegServerAddr',g_sM2Server_Config_RegServerAddr);
  g_IniConf.WriteInteger('M2Server','RegServerPort',g_nM2Server_Config_RegServerPort);
  g_IniConf.WriteInteger('M2Server','MainFormX',g_nM2Server_MainFormX);
  g_IniConf.WriteInteger('M2Server','MainFormY',g_nM2Server_MainFormY);
  g_IniConf.WriteInteger('M2Server','TestLevel',g_nM2Server_TestLevel);
  g_IniConf.WriteInteger('M2Server','TestGold',g_nM2Server_TestGold);

  g_IniConf.WriteInteger('M2Server','GatePort',g_nM2Server_GatePort);
  g_IniConf.WriteInteger('M2Server','MsgSrvPort',g_nM2Server_MsgSrvPort);
  g_IniConf.WriteBool('M2Server','GetStart',g_boM2Server_GetStart);


  g_IniConf.WriteString('RunGate','RegKey',g_sRunGate_RegKey);
  g_IniConf.WriteString('RunGate','RegServerAddr',g_sRunGate_Config_RegServerAddr);
  g_IniConf.WriteInteger('RunGate','RegServerPort',g_nRunGate_Config_RegServerPort);
  g_IniConf.WriteInteger('RunGate','GatePort1',g_nRunGate_GatePort);
  g_IniConf.WriteInteger('RunGate','GatePort2',g_nRunGate1_GatePort);
  g_IniConf.WriteInteger('RunGate','GatePort3',g_nRunGate2_GatePort);
  g_IniConf.WriteInteger('RunGate','GatePort4',g_nRunGate3_GatePort);
  g_IniConf.WriteInteger('RunGate','GatePort5',g_nRunGate4_GatePort);
  g_IniConf.WriteInteger('RunGate','GatePort6',g_nRunGate5_GatePort);
  g_IniConf.WriteInteger('RunGate','GatePort7',g_nRunGate6_GatePort);
  g_IniConf.WriteInteger('RunGate','GatePort8',g_nRunGate7_GatePort);

  g_IniConf.WriteInteger('LoginGate','MainFormX',g_nLoginGate_MainFormX);
  g_IniConf.WriteInteger('LoginGate','MainFormY',g_nLoginGate_MainFormY);
  g_IniConf.WriteBool('LoginGate','GetStart',g_boLoginGate_GetStart);
  g_IniConf.WriteInteger('LoginGate','GatePort',g_nLoginGate_GatePort);


  g_IniConf.WriteInteger('SelGate','MainFormX',g_nSelGate_MainFormX);
  g_IniConf.WriteInteger('SelGate','MainFormY',g_nSelGate_MainFormY);
  g_IniConf.WriteBool('SelGate','GetStart',g_boSelGate_GetStart);

  g_IniConf.WriteInteger('SelGate','GatePort',g_nSelGate_GatePort);
  g_IniConf.WriteInteger('SelGate','GatePort1',g_nSelGate_GatePort1);


  g_IniConf.WriteInteger('RunGate','Count',g_nRunGate_Count);

  g_IniConf.WriteInteger('LoginServer','MainFormX',g_nLoginServer_MainFormX);
  g_IniConf.WriteInteger('LoginServer','MainFormY',g_nLoginServer_MainFormY);
  g_IniConf.WriteString('LoginServer','GateAddr',g_sLoginServer_GateAddr);
  g_IniConf.WriteInteger('LoginServer','GatePort',g_nLoginServer_GatePort);
  g_IniConf.WriteString('LoginServer','ServerAddr',g_sLoginServer_ServerAddr);
  g_IniConf.WriteInteger('LoginServer','ServerPort',g_nLoginServer_ServerPort);
  g_IniConf.WriteString('LoginServer','MonAddr',g_sLoginServer_MonAddr);
  g_IniConf.WriteInteger('LoginServer','MonPort',g_nLoginServer_MonPort);
  g_IniConf.WriteBool('LoginServer','GetStart',g_boLoginServer_GetStart);

  g_IniConf.WriteBool('LoginServer','EnableGetbackPassword',g_boLoginServer_EnableGetbackPassword);
  g_IniConf.WriteBool('LoginServer','EnableMakingID',g_boLoginServer_EnableMakingID);
  g_IniConf.WriteBool('LoginServer','TestServer',g_boLoginServer_TestServer);
  g_IniConf.WriteBool('LoginServer','AutoClear',g_boLoginServer_AutoClear);
  g_IniConf.WriteInteger('LoginServer','AutoClearTime',g_dwLoginServer_AutoClearTime);
  g_IniConf.WriteInteger('LoginServer','ReadyServers',g_nLoginServer_ReadyServers);



  g_IniConf.WriteInteger('LogServer','MainFormX',g_nLogServer_MainFormX);
  g_IniConf.WriteInteger('LogServer','MainFormY',g_nLogServer_MainFormY);

  g_IniConf.WriteInteger('LogServer','Port',g_nLogServer_Port);
  g_IniConf.WriteBool('LogServer','GetStart',g_boLogServer_GetStart);


  Application.MessageBox('配置文件已经保存完毕...','提示信息',MB_OK + MB_ICONINFORMATION);
  if Application.MessageBox('是否生成新的游戏服务器配置文件...','提示信息',MB_YESNO + MB_ICONQUESTION) = mrYes then begin
    ButtonGenGameConfigClick(ButtonGenGameConfig);
  end;
  PageControl3.ActivePageIndex:=0;
  PageControl1.ActivePageIndex:=0;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
  m_boOpen:=False;
  EditSkin.MaxValue:=SkinStore.Store.Count -1;

  g_nFormIdx:=g_IniConf.ReadInteger('Setup','FormID',g_nFormIdx);
  EditSkin.Value:=g_nFormIdx;
  if g_nFormIdx >= 0 then begin
    SkinData.LoadFromCollection(SkinStore,g_nFormIdx);
    if not SkinData.Active then SkinData.Active:=True;
  end else begin
    SkinData.Active:=False;
  end;
//  Application.OnMessage:=ProcessMessage;
  PageControl1.ActivePageIndex:=0;
  PageControl3.ActivePageIndex:=0;
  m_nStartStatus:=0;
  MemoLog.Clear;
  LoadConfig();
  if not StartService() then exit;
  RefGameConsole();
  TabSheetDebug.TabVisible:=False;
  if g_boShowDebugTab then begin
    TabSheetDebug.TabVisible:=True;
    TimerCheckDebug.Enabled:=True;
  end;
  m_boOpen:=True;
  MainOutMessage('翎风游戏控制器启动成功...');
//  SetWindowPos(Self.Handle,HWND_TOPMOST,Self.Left,Self.Top,Self.Width,Self.Height,$40);
end;

procedure TfrmMain.ButtonGenGameConfigClick(Sender: TObject);
begin
//  ButtonGenGameConfig.Enabled:=False;
  GenGameConfig();
  RefGameConsole();
  Application.MessageBox('游戏配置文件已经生成完毕...','提示信息',MB_OK + MB_ICONINFORMATION);
end;
procedure TfrmMain.GenGameConfig;
begin
  GenDBServerConfig();
  GenLoginServerConfig();
  GenLogServerConfig();
  GenM2ServerConfig();
  GenLoginGateConfig();
  GenSelGateConfig();
  GenRunGateConfig();
end;
procedure TfrmMain.GenDBServerConfig;
ResourceString
  sRunGate1 = '%s %s %d';
  sRunGate2 = '%s %s %d %s %d';
  sRunGate3 = '%s %s %d %s %d %s %d';
  sRunGate4 = '%s %s %d %s %d %s %d %s %d';
  sRunGate5 = '%s %s %d %s %d %s %d %s %d %s %d';
  sRunGate6 = '%s %s %d %s %d %s %d %s %d %s %d %s %d';
  sRunGate7 = '%s %s %d %s %d %s %d %s %d %s %d %s %d %s %d';
  sRunGate8 = '%s %s %d %s %d %s %d %s %d %s %d %s %d %s %d %s %d';
var
  IniGameConf:TIniFile;
  sIniFile:String;
  SaveList:TStringList;
begin
  sIniFile:=g_sGameDirectory + g_sDBServer_Directory;
  if not DirectoryExists(sIniFile) then begin
    CreateDir(sIniFile);
  end;

  IniGameConf:=TIniFile.Create(sIniFile + g_sDBServer_ConfigFile);

  IniGameConf.WriteString('Reg','Key',g_sDBServer_Config_RegKey);
  IniGameConf.WriteString('Reg','ServerAddr',g_sDBServer_Config_RegServerAddr);
  IniGameConf.WriteInteger('Reg','ServerPort',g_nDBServer_Config_RegServerPort);

  IniGameConf.WriteString('Setup','ServerName',g_sGameName);
  IniGameConf.WriteString('Setup','ServerAddr',g_sDBServer_Config_ServerAddr);
  IniGameConf.WriteInteger('Setup','ServerPort',g_nDBServer_Config_ServerPort);
  IniGameConf.WriteString('Setup','MapFile',g_sDBServer_Config_MapFile);
  IniGameConf.WriteBool('Setup','ViewHackMsg',g_boDBServer_Config_ViewHackMsg);
  IniGameConf.WriteBool('Setup','DynamicIPMode',g_boDynamicIPMode);
  IniGameConf.WriteString('Setup','GateAddr',g_sDBServer_Config_GateAddr);
  IniGameConf.WriteInteger('Setup','GatePort',g_nDBServer_Config_GatePort);

  IniGameConf.WriteBool('Setup','BackupClearData',g_boDBServer_BackupClearData);
  IniGameConf.WriteString('Setup','DBName',g_sDBServer_DBName);
  IniGameConf.WriteBool('Setup','ShowItemName',g_boDBServer_ShowItemName);


  IniGameConf.WriteBool('Backup','AutoBackup',g_boDBServer_AutoBackup);
  IniGameConf.WriteInteger('Backup','BackupTime',g_dwDBServer_BackupTime);


  IniGameConf.WriteString('Server','IDSAddr',g_sLoginServer_ServerAddr);  //登录服务器IP
  IniGameConf.WriteInteger('Server','IDSPort',g_nLoginServer_ServerPort); //登录服务器端口


  IniGameConf.WriteInteger('DBClear','Interval',g_nDBServer_Config_Interval);
  IniGameConf.WriteInteger('DBClear','Level1',g_nDBServer_Config_Level1);
  IniGameConf.WriteInteger('DBClear','Level2',g_nDBServer_Config_Level2);
  IniGameConf.WriteInteger('DBClear','Level3',g_nDBServer_Config_Level3);
  IniGameConf.WriteInteger('DBClear','Day1',g_nDBServer_Config_Day1);
  IniGameConf.WriteInteger('DBClear','Day2',g_nDBServer_Config_Day2);
  IniGameConf.WriteInteger('DBClear','Day3',g_nDBServer_Config_Day3);
  IniGameConf.WriteInteger('DBClear','Month1',g_nDBServer_Config_Month1);
  IniGameConf.WriteInteger('DBClear','Month2',g_nDBServer_Config_Month2);
  IniGameConf.WriteInteger('DBClear','Month3',g_nDBServer_Config_Month3);

  IniGameConf.WriteString('DB','Dir',sIniFile + g_sDBServer_Config_Dir);
  IniGameConf.WriteString('DB','IdDir',sIniFile + g_sDBServer_Config_IdDir);
  IniGameConf.WriteString('DB','HumDir',sIniFile + g_sDBServer_Config_HumDir);
  IniGameConf.WriteString('DB','FeeDir',sIniFile + g_sDBServer_Config_FeeDir);
  IniGameConf.WriteString('DB','BackupDir',sIniFile + g_sDBServer_Config_BackupDir);
  IniGameConf.WriteString('DB','ConnectDir',sIniFile + g_sDBServer_Config_ConnectDir);
  IniGameConf.WriteString('DB','LogDir',sIniFile + g_sDBServer_Config_LogDir);
  IniGameConf.WriteString('DB','ClearLogDir',sIniFile + g_sDBServer_ClearLogDir);



  IniGameConf.Free;

  SaveList:=TStringList.Create;
  SaveList.Add(g_sLocalIPaddr);
  SaveList.Add(g_sExtIPaddr);
  SaveList.SaveToFile(sIniFile + g_sDBServer_AddrTableFile);

  SaveList.Clear;
  case g_nRunGate_Count of
    1: SaveList.Add(format(sRunGate1,[g_sLocalIPaddr,
                                      g_sExtIPaddr,g_nRunGate_GatePort]));
    2: SaveList.Add(format(sRunGate2,[g_sLocalIPaddr,
                                      g_sExtIPaddr,g_nRunGate_GatePort,
                                      g_sExtIPaddr,g_nRunGate1_GatePort]));
    3: SaveList.Add(format(sRunGate3,[g_sLocalIPaddr,
                                      g_sExtIPaddr,g_nRunGate_GatePort,
                                      g_sExtIPaddr,g_nRunGate1_GatePort,
                                      g_sExtIPaddr,g_nRunGate2_GatePort]));
    4: SaveList.Add(format(sRunGate4,[g_sLocalIPaddr,
                                      g_sExtIPaddr,g_nRunGate_GatePort,
                                      g_sExtIPaddr,g_nRunGate1_GatePort,
                                      g_sExtIPaddr,g_nRunGate2_GatePort,
                                      g_sExtIPaddr,g_nRunGate3_GatePort]));
    5: SaveList.Add(format(sRunGate5,[g_sLocalIPaddr,
                                      g_sExtIPaddr,g_nRunGate1_GatePort,

⌨️ 快捷键说明

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