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

📄 gameconfig.pas

📁 FIR引擎最新源码+注册
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  ModValue();
end;


procedure TfrmGameConfig.CheckBoxShowExceptionMsgClick(Sender: TObject);
begin
  if not boOpened then Exit;
  g_Config.boShowExceptionMsg := CheckBoxShowExceptionMsg.Checked;
  ModValue();
end;

procedure TfrmGameConfig.CheckBoxCanOldClientLogonClick(Sender: TObject);
begin
  if not boOpened then Exit;
  g_Config.boCanOldClientLogon := CheckBoxCanOldClientLogon.Checked;
  ModValue();
end;

procedure TfrmGameConfig.CheckBoxSendOnlineCountClick(Sender: TObject);
var
  boStatus: Boolean;
begin
  boStatus := CheckBoxSendOnlineCount.Checked;
  EditSendOnlineCountRate.Enabled := boStatus;
  EditSendOnlineTime.Enabled := boStatus;
  if not boOpened then Exit;
  g_Config.boSendOnlineCount := boStatus;
  ModValue();
end;

procedure TfrmGameConfig.EditSendOnlineCountRateChange(Sender: TObject);
begin
  if not boOpened then Exit;
  g_Config.nSendOnlineCountRate := EditSendOnlineCountRate.Value;
  ModValue();
end;

procedure TfrmGameConfig.EditSendOnlineTimeChange(Sender: TObject);
begin
  if not boOpened then Exit;
  g_Config.dwSendOnlineTime := EditSendOnlineTime.Value * 1000;
  ModValue();
end;
procedure TfrmGameConfig.EditMonsterPowerRateChange(Sender: TObject);
begin
  if not boOpened then Exit;
  g_Config.nMonsterPowerRate := EditMonsterPowerRate.Value;
  ModValue();
end;

procedure TfrmGameConfig.EditEditItemsPowerRateChange(Sender: TObject);
begin
  if not boOpened then Exit;
  g_Config.nItemsPowerRate := EditEditItemsPowerRate.Value;
  ModValue();
end;

procedure TfrmGameConfig.EditItemsACPowerRateChange(Sender: TObject);
begin
  if not boOpened then Exit;
  g_Config.nItemsACPowerRate := EditItemsACPowerRate.Value;
  ModValue();
end;
procedure TfrmGameConfig.CheckBoxDisableStruckClick(Sender: TObject);
begin
  EditStruckTime.Enabled := not CheckBoxDisableStruck.Checked;
  if not boOpened then Exit;
  g_Config.boDisableStruck := CheckBoxDisableStruck.Checked;
  ModValue();
end;
procedure TfrmGameConfig.CheckBoxDisableSelfStruckClick(Sender: TObject);
begin
  if not boOpened then Exit;
  g_Config.boDisableSelfStruck := CheckBoxDisableSelfStruck.Checked;
  ModValue();
end;
procedure TfrmGameConfig.EditStruckTimeChange(Sender: TObject);
begin
  if not boOpened then Exit;
  g_Config.dwStruckTime := EditStruckTime.Value;
  ModValue();
end;

procedure TfrmGameConfig.RefGameVarConf;
begin
  EditSoftVersionDate.Text := IntToStr(g_Config.nSoftVersionDate);
  EditConsoleShowUserCountTime.Value := g_Config.dwConsoleShowUserCountTime div 1000;
  EditShowLineNoticeTime.Value := g_Config.dwShowLineNoticeTime div 1000;
  ComboBoxLineNoticeColor.ItemIndex := _MAX(0, _MIN(3, g_Config.nLineNoticeColor));
  EditLineNoticePreFix.Text := g_Config.sLineNoticePreFix;

  CheckBoxShowMakeItemMsg.Checked := g_Config.boShowMakeItemMsg;
  CbViewHack.Checked := g_Config.boViewHackMessage;
  CkViewAdmfail.Checked := g_Config.boViewAdmissionFailure;
  CheckBoxShowExceptionMsg.Checked := g_Config.boShowExceptionMsg;

  CheckBoxSendOnlineCount.Checked := g_Config.boSendOnlineCount;
  EditSendOnlineCountRate.Value := g_Config.nSendOnlineCountRate;
  EditSendOnlineTime.Value := g_Config.dwSendOnlineTime div 1000;
  CheckBoxSendOnlineCountClick(CheckBoxSendOnlineCount);

  EditMonsterPowerRate.Value := g_Config.nMonsterPowerRate;
  EditEditItemsPowerRate.Value := g_Config.nItemsPowerRate;
  EditItemsACPowerRate.Value := g_Config.nItemsACPowerRate;
  CheckBoxCanOldClientLogon.Checked := g_Config.boCanOldClientLogon;
end;

procedure TfrmGameConfig.ButtonGeneralSaveClick(Sender: TObject);
var
  SoftVersionDate: Integer;
begin
  SoftVersionDate := Str_ToInt(Trim(EditSoftVersionDate.Text), -1);
  if (SoftVersionDate < 0) or (SoftVersionDate > High(Integer)) then begin
    Application.MessageBox('客户端版号设置错误!!!', '错误信息', MB_OK + MB_ICONERROR);
    EditSoftVersionDate.SetFocus;
    Exit;
  end;
  g_Config.nSoftVersionDate := SoftVersionDate;
{$IF SoftVersion <> VERDEMO}
  Config.WriteInteger('Setup', 'SoftVersionDate', g_Config.nSoftVersionDate);
  Config.WriteInteger('Setup', 'ConsoleShowUserCountTime', g_Config.dwConsoleShowUserCountTime);
  Config.WriteInteger('Setup', 'ShowLineNoticeTime', g_Config.dwShowLineNoticeTime);
  Config.WriteInteger('Setup', 'LineNoticeColor', g_Config.nLineNoticeColor);
  StringConf.WriteString('String', 'LineNoticePreFix', g_Config.sLineNoticePreFix);
  Config.WriteBool('Setup', 'ShowMakeItemMsg', g_Config.boShowMakeItemMsg);
  Config.WriteString('Server', 'ViewHackMessage', BoolToStr(g_Config.boViewHackMessage));
  Config.WriteString('Server', 'ViewAdmissionFailure', BoolToStr(g_Config.boViewAdmissionFailure));
  Config.WriteBool('Setup', 'ShowExceptionMsg', g_Config.boShowExceptionMsg);

  Config.WriteBool('Setup', 'SendOnlineCount', g_Config.boSendOnlineCount);
  Config.WriteInteger('Setup', 'SendOnlineCountRate', g_Config.nSendOnlineCountRate);
  Config.WriteInteger('Setup', 'SendOnlineTime', g_Config.dwSendOnlineTime);

  Config.WriteInteger('Setup', 'MonsterPowerRate', g_Config.nMonsterPowerRate);
  Config.WriteInteger('Setup', 'ItemsPowerRate', g_Config.nItemsPowerRate);
  Config.WriteInteger('Setup', 'ItemsACPowerRate', g_Config.nItemsACPowerRate);
  Config.WriteBool('Setup', 'CanOldClientLogon', g_Config.boCanOldClientLogon);
{$IFEND}
  uModValue();
end;





procedure TfrmGameConfig.EditKillMonExpMultipleChange(Sender: TObject);
begin
  if EditKillMonExpMultiple.Text = '' then begin
    EditKillMonExpMultiple.Text := '0';
    Exit;
  end;
  if not boOpened then Exit;
  g_Config.dwKillMonExpMultiple := EditKillMonExpMultiple.Value;
  ModValue();
end;

procedure TfrmGameConfig.CheckBoxHighLevelKillMonFixExpClick(
  Sender: TObject);
begin
  if not boOpened then Exit;
  g_Config.boHighLevelKillMonFixExp := CheckBoxHighLevelKillMonFixExp.Checked;
  ModValue();
end;

procedure TfrmGameConfig.GridLevelExpSetEditText(Sender: TObject; ACol,
  ARow: Integer; const Value: string);
begin
  if not boOpened then Exit;
  ModValue();
end;
procedure TfrmGameConfig.ComboBoxLevelExpClick(Sender: TObject);
var
  I: Integer;
  LevelExpScheme: TLevelExpScheme;
  dwOneLevelExp: LongWord;
  dwExp: LongWord;
begin
  if not boOpened then Exit;
  if Application.MessageBox('升级经验计划设置的经验将立即生效,是否确认使用此经验计划?', '确认信息', MB_YESNO + MB_ICONQUESTION) = IDNO then begin
    Exit;
  end;

  LevelExpScheme := TLevelExpScheme(ComboBoxLevelExp.Items.Objects[ComboBoxLevelExp.ItemIndex]);
  case LevelExpScheme of //
    s_OldLevelExp: g_Config.dwNeedExps := g_dwOldNeedExps;
    s_StdLevelExp: begin
        g_Config.dwNeedExps := g_dwOldNeedExps;
        dwOneLevelExp := 4000000000 div High(g_Config.dwNeedExps);
        for I := 1 to MAXCHANGELEVEL do begin
          if (26 + I) > MAXCHANGELEVEL then Break;
          dwExp := dwOneLevelExp * LongWord(I);
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[26 + I] := dwExp;
        end;
      end;
    s_2Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 2;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_5Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 5;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_8Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 8;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_10Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 10;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_20Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 20;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_30Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 30;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_40Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 40;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_50Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 50;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_60Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 60;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_70Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 70;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_80Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 80;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_90Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 90;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_100Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 100;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_150Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 150;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_200Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 200;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_250Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 250;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
    s_300Mult: begin
        for I := 1 to MAXCHANGELEVEL do begin
          dwExp := g_Config.dwNeedExps[I] div 300;
          if dwExp = 0 then dwExp := 1;
          g_Config.dwNeedExps[I] := dwExp;
        end;
      end;
  end;
  for I := 1 to GridLevelExp.RowCount - 1 do begin
    GridLevelExp.Cells[1, I] := IntToStr(g_Config.dwNeedExps[I]);
  end;
  ModValue();
end;
procedure TfrmGameConfig.ButtonExpSaveClick(Sender: TObject);
var
  I: Integer;
  dwExp: LongWord;
  NeedExps: TLevelNeedExp;
begin
  for I := 1 to GridLevelExp.RowCount - 1 do begin
    dwExp := Str_ToInt(GridLevelExp.Cells[1, I], 0);
    if (dwExp <= 0) or (dwExp > High(LongWord)) then begin
      Application.MessageBox(PChar('等级 ' + IntToStr(I) + ' 升级经验设置错误!!!'), '错误信息', MB_OK + MB_ICONERROR);
      GridLevelExp.Row := I;
      GridLevelExp.Se

⌨️ 快捷键说明

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