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

📄 fsrvvalue.pas

📁 传世源码可编译的,功能齐全.是学习的好模版,会DELPHI的朋友们也可以自己修改,弄个自己的引擎.
💻 PAS
字号:
unit FSrvValue;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, Spin, M2Share;

type
  TFrmServerValue = class(TForm)
    BitBtn1: TBitBtn;
    CbViewHack: TCheckBox;
    CkViewAdmfail: TCheckBox;
    GroupBox1: TGroupBox;
    Label8: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    EGateLoad: TSpinEdit;
    EAvailableBlock: TSpinEdit;
    ECheckBlock: TSpinEdit;
    ESendBlock: TSpinEdit;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    EHum: TSpinEdit;
    EMon: TSpinEdit;
    EZen: TSpinEdit;
    ESoc: TSpinEdit;
    ENpc: TSpinEdit;
    EDec: TSpinEdit;
    GroupBox3: TGroupBox;
    Label15: TLabel;
    EditZenMonRate: TSpinEdit;
    Label16: TLabel;
    EditProcessTime: TSpinEdit;
    EditZenMonTime: TSpinEdit;
    Label17: TLabel;
    Label18: TLabel;
    ButtonDefault: TButton;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure EditZenMonRateChange(Sender: TObject);
    procedure EditZenMonTimeChange(Sender: TObject);
    procedure EditProcessTimeChange(Sender: TObject);
    procedure ESendBlockChange(Sender: TObject);
    procedure ECheckBlockChange(Sender: TObject);
    procedure EGateLoadChange(Sender: TObject);
    procedure EHumChange(Sender: TObject);
    procedure EMonChange(Sender: TObject);
    procedure EZenChange(Sender: TObject);
    procedure ESocChange(Sender: TObject);
    procedure ENpcChange(Sender: TObject);
    procedure EAvailableBlockChange(Sender: TObject);
    procedure CbViewHackClick(Sender: TObject);
    procedure CkViewAdmfailClick(Sender: TObject);
    procedure ButtonDefaultClick(Sender: TObject);
  private
    boOpened:Boolean;
    boModValued:Boolean;
    procedure ModValue();
    procedure uModValue();
    procedure RefShow();
    { Private declarations }
  public
    function AdjuestServerConfig():Boolean;
    { Public declarations }
  end;

var
  FrmServerValue: TFrmServerValue;

implementation

uses HUtil32;

{$R *.dfm}

{ TFrmServerValue }

procedure TFrmServerValue.ModValue;
begin
  boModValued:=True;
  BitBtn1.Enabled:=True;
end;

procedure TFrmServerValue.uModValue;
begin
  boModValued:=False;
  BitBtn1.Enabled:=False;
end;

function TFrmServerValue.AdjuestServerConfig: Boolean;
begin
  boOpened:=False;
  uModValue();
  RefShow();
  boOpened:=True;
  ShowModal;
  Result:=True;
end;

procedure TFrmServerValue.BitBtn1Click(Sender: TObject);
var
  tBool:String;
begin
    Config.WriteInteger('Server','HumLimit',g_dwHumLimit);
    Config.WriteInteger('Server','MonLimit',g_dwMonLimit);
    Config.WriteInteger('Server','ZenLimit',g_dwZenLimit);
    Config.WriteInteger('Server','SocLimit',g_dwSocLimit);
    Config.WriteInteger('Server','DecLimit',nDecLimit);
    Config.WriteInteger('Server','NpcLimit',g_dwNpcLimit);
    Config.WriteInteger('Server','SendBlock',g_Config.nSendBlock);
    Config.WriteInteger('Server','CheckBlock',g_Config.nCheckBlock);
    Config.WriteInteger('Server','GateLoad',g_Config.nGateLoad);
    if g_Config.boViewHackMessage then
      tBool:='TRUE'
    else tBool:='FLASE';
    Config.WriteString('Server','ViewHackMessage',tBool);
    if g_Config.boViewAdmissionFailure then
      tBool:='TRUE'
    else tBool:='FLASE';
    Config.WriteString('Server','ViewAdmissionFailure',tBool);

  Config.WriteInteger('Setup','GenMonRate',g_Config.nMonGenRate);
  Config.WriteInteger('Server','ProcessMonstersTime',g_Config.dwProcessMonstersTime);
  Config.WriteInteger('Server','RegenMonstersTime',g_Config.dwRegenMonstersTime);
  uModValue();  
end;

procedure TFrmServerValue.FormCreate(Sender: TObject);
begin
  ESendBlock.Hint:='与网关之间一次传输数据块大小(字节)。';
  ECheckBlock.Hint:='与网关之间传输指定大小数据后,进行一次自检。';
  EGateLoad.Hint:='设置与网关传输负载测试数据量大小。';

  EHum.Hint:='处理人物数据分配时间。';
  EMon.Hint:='处理怪物数据分配时间。';
  EZen.Hint:='刷新怪物数据分配时间。';
  ESoc.Hint:='处理网关数据分配时间。';
  ENpc.Hint:='处理NPC数据分配时间。';

  EditZenMonRate.Hint:='刷怪倍率,倍率除以10为实际倍率(设置为10则为1:1),此倍率以刷怪文件设置为准,数字越大,刷怪数量越小。';
  EditZenMonTime.Hint:='刷怪间隔控制,数字越大,刷怪速度越慢。';
  EditProcessTime.Hint:='处理怪物间隔时间,此设置数字越大,怪物行动越慢。';
end;



procedure TFrmServerValue.EditZenMonRateChange(Sender: TObject);
begin
  if not boOpened then exit;
  g_Config.nMonGenRate:=EditZenMonRate.Value;
  ModValue();
end;

procedure TFrmServerValue.EditZenMonTimeChange(Sender: TObject);
begin
  if not boOpened then exit;
  g_Config.dwRegenMonstersTime:=EditZenMonTime.Value;
  ModValue();
end;

procedure TFrmServerValue.EditProcessTimeChange(Sender: TObject);
begin
  if not boOpened then exit;
  g_Config.dwProcessMonstersTime:=EditProcessTime.Value;
  ModValue();
end;

procedure TFrmServerValue.ESendBlockChange(Sender: TObject);
begin
  if not boOpened then exit;
  g_Config.nSendBlock:=_MAX(10,ESendBlock.Value);
  ModValue();
end;

procedure TFrmServerValue.ECheckBlockChange(Sender: TObject);
begin
  if not boOpened then exit;
  g_Config.nCheckBlock:=_MAX(10,ECheckBlock.Value);
  ModValue();
end;

procedure TFrmServerValue.EGateLoadChange(Sender: TObject);
begin
  if not boOpened then exit;
  g_Config.nGateLoad:=EGateLoad.Value;
  ModValue();
end;

procedure TFrmServerValue.EHumChange(Sender: TObject);
begin
  if not boOpened then exit;
  g_dwHumLimit:=_MIN(150,EHum.Value);
  ModValue();
end;

procedure TFrmServerValue.EMonChange(Sender: TObject);
begin
  if not boOpened then exit;
  g_dwMonLimit:=_MIN(150,EMon.Value);
  ModValue();
end;

procedure TFrmServerValue.EZenChange(Sender: TObject);
begin
  if not boOpened then exit;
  g_dwZenLimit:=_MIN(150,EZen.Value);
  ModValue();
end;

procedure TFrmServerValue.ESocChange(Sender: TObject);
begin
  if not boOpened then exit;
  g_dwSocLimit:=_MIN(150,ESoc.Value);
  ModValue();
end;

procedure TFrmServerValue.ENpcChange(Sender: TObject);
begin
  if not boOpened then exit;
  g_dwNpcLimit:=_MIN(150,ENpc.Value);
  ModValue();
end;

procedure TFrmServerValue.EAvailableBlockChange(Sender: TObject);
begin
  if not boOpened then exit;
  g_Config.nAvailableBlock:=_MAX(10,EAvailableBlock.Value);
  ModValue();
end;

procedure TFrmServerValue.CbViewHackClick(Sender: TObject);
begin
  if not boOpened then exit;
  g_Config.boViewHackMessage:=CbViewHack.Checked;
  ModValue();
end;

procedure TFrmServerValue.CkViewAdmfailClick(Sender: TObject);
begin
  if not boOpened then exit;
  g_Config.boViewAdmissionFailure:=CkViewAdmfail.Checked;
  ModValue();
end;

procedure TFrmServerValue.RefShow;
begin
  EHum.Value:=g_dwHumLimit;
  EMon.Value:=g_dwMonLimit;
  EZen.Value:=g_dwZenLimit;
  ESoc.Value:=g_dwSocLimit;
  EDec.Value:=nDecLimit;
  ENpc.Value:=g_dwNpcLimit;
  ESendBlock.Value:=g_Config.nSendBlock;
  ECheckBlock.Value:=g_Config.nCheckBlock;
  EAvailableBlock.Value:=g_Config.nAvailableBlock;
  EGateLoad.Value:=g_Config.nGateLoad;
  CbViewHack.Checked:=g_Config.boViewHackMessage;
  CkViewAdmfail.Checked:=g_Config.boViewAdmissionFailure;

  EditZenMonRate.Value:=g_Config.nMonGenRate;
  EditZenMonTime.Value:=g_Config.dwRegenMonstersTime;
  EditProcessTime.Value:=g_Config.dwProcessMonstersTime;
end;

procedure TFrmServerValue.ButtonDefaultClick(Sender: TObject);
begin
  if Application.MessageBox('是否确认恢复默认设置?', '确认信息', MB_YESNO + MB_ICONQUESTION) <> IDYES then begin
    exit;
  end;
  g_dwHumLimit:=30;
  g_dwMonLimit:=10;
  g_dwZenLimit:=5;
  g_dwSocLimit:=10;
  nDecLimit:=20;
  g_dwNpcLimit:=5;
  g_Config.nSendBlock:=1024;
  g_Config.nCheckBlock:=8000;
  g_Config.nAvailableBlock:=8000;
  g_Config.nGateLoad:=0;;
  g_Config.boViewHackMessage:=False;
  g_Config.boViewAdmissionFailure:=False;

  g_Config.nMonGenRate:=10;
  g_Config.dwRegenMonstersTime:=200;
  g_Config.dwProcessMonstersTime:=50;
  RefShow();
end;

end.

⌨️ 快捷键说明

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