📄 gameconfig.pas
字号:
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('升级经验计划设置的经验将立即生效,是否确认使用此经验计划?','Reset?',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 High(g_Config.dwNeedExps) do begin
if (26 + I) > High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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 High(g_Config.dwNeedExps) 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; //nicky
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('Level ' + IntToStr(I) + ' 升级经验设置错误!!!'),'Error!',MB_OK + MB_ICONERROR);
GridLevelExp.Row:=I;
GridLevelExp.SetFocus;
exit;
end;
// NeedExps[I]:=dwExp;
end;
// g_Config.dwNeedExps:=NeedExps;
ExpConf.WriteInteger('Exp','KillMonExpMultiple',g_Config.dwKillMonExpMultiple);
ExpConf.WriteBool('Exp','HighLevelKillMonFixExp',g_Config.boHighLevelKillMonFixExp);
for I := 1 to high(g_Config.dwNeedExps) do begin
ExpConf.WriteString('Exp','Level' + IntToStr(I),IntToStr(g_Config.dwNeedExps[I]));
end;
uModValue();
end;
procedure TfrmGameConfig.EditRepairDoorPriceChange(Sender: TObject);
begin
if EditRepairDoorPrice.Text = '' then begin
EditRepairDoorPrice.Text:='0';
exit;
end;
if not boOpened then exit;
g_Config.nRepairDoorPrice:=EditRepairDoorPrice.Value;
ModValue();
end;
procedure TfrmGameConfig.EditRepairWallPriceChange(Sender: TObject);
begin
if EditRepairWallPrice.Text = '' then begin
EditRepairWallPrice.Text:='0';
exit;
end;
if not boOpened then exit;
g_Config.nRepairWallPrice:=EditRepairWallPrice.Value;
ModValue();
end;
procedure TfrmGameConfig.EditHireArcherPriceChange(Sender: TObject);
begin
if EditHireArcherPrice.Text = '' then begin
EditHireArcherPrice.Text:='0';
exit;
end;
if not boOpened then exit;
g_Config.nHireArcherPrice:=EditHireArcherPrice.Value;
ModValue();
end;
procedure TfrmGameConfig.EditHireGuardPriceChange(Sender: TObject);
begin
if EditHireGuardPrice.Text = '' then begin
EditHireGuardPrice.Text:='0';
exit;
end;
if not boOpened then exit;
g_Config.nHireGuardPrice:=EditHireGuardPrice.Value;
ModValue();
end;
procedure TfrmGameConfig.EditCastleGoldMaxChange(Sender: TObject);
begin
if EditCastleGoldMax.Text = '' then begin
EditCastleGoldMax.Text:='0';
exit;
end;
if not boOpened then exit;
g_Config.nCastleGoldMax:=EditCastleGoldMax.Value;
ModValue();
end;
procedure TfrmGameConfig.EditCastleOneDayGoldChange(Sender: TObject);
begin
if EditCastleOneDayGold.Text = '' then begin
EditCastleOneDayGold.Text:='0';
exit;
end;
if not boOpened then exit;
g_Config.nCastleOneDayGold:=EditCastleOneDayGold.Value;
ModValue();
end;
procedure TfrmGameConfig.EditCastleHomeMapChange(Sender: TObject);
begin
if not boOpened then exit;
g_Config.sCastleHomeMap:=Trim(EditCastleHomeMap.Text);
ModValue();
end;
procedure TfrmGameConfig.EditCastleHomeXChange(Sender: TObject);
begin
if EditCastleHomeX.Text = '' then begin
EditCastleHomeX.Text:='0';
exit;
end;
if not boOpened then exit;
g_Config.nCastleHomeX:=EditCastleHomeX.Value;
ModValue();
end;
procedure TfrmGameConfig.EditCastleHomeYChange(Sender: TObject);
begin
if EditCastleHomeY.Text = '' then begin
EditCastleHomeY.Text:='0';
exit;
end;
if not boOpened then exit;
g_Config.nCastleHomeY:=EditCastleHomeY.Value;
ModValue();
end;
procedure TfrmGameConfig.EditCastleNameChange(Sender: TObject);
begin
if not boOpened then exit;
g_Config.sCastleName:=Trim(EditCastleName.Text);
ModValue();
end;
procedure TfrmGameConfig.EditWarRangeXChange(Sender: TObject);
begin
if EditWarRangeX.Text = '' then begin
EditWarRangeX.Text:='0';
exit;
end;
if not boOpened then exit;
g_Config.nCastleWarRangeX:=EditWarRangeX.Value;
ModValue();
end;
procedure TfrmGameConfig.EditWarRangeYChange(Sender: TObject);
begin
if EditWarRangeY.Text = '' then begin
EditWarRangeY.Text:='0';
exit;
end;
if not boOpened then exit;
g_Config.nCastleWarRangeY:=EditWarRangeY.Value;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxGetAllNpcTaxClick(Sender: TObject);
begin
if not boOpened then exit;
g_Config.boGetAllNpcTax:=CheckBoxGetAllNpcTax.Checked;
ModValue();
end;
procedure TfrmGameConfig.EditTaxRateChange(Sender: TObject);
begin
if EditTaxRate.Text = '' then begin
EditTaxRate.Text:='0';
exit;
end;
if not boOpened then exit;
g_Config.nCastleTaxRate:=EditTaxRate.Value;
ModValue();
end;
procedure TfrmGameConfig.EditCastleMemberPriceRateChange(Sender: TObject);
begin
if EditCastleMemberPriceRate.Text = '' then begin
EditCastleMemberPriceRate.Text:='0';
exit;
end;
if not boOpened then exit;
g_Config.nCastleMemberPriceRate:=EditCastleMemberPric
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -