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

📄 configmerchant.pas

📁 原版翎风(LF)引擎(M2)源码(Delphi)
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit ConfigMerchant;

interface

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

type
  TfrmConfigMerchant = class(TForm)
    ListBoxMerChant: TListBox;
    Label1: TLabel;
    GroupBoxNPC: TGroupBox;
    Label2: TLabel;
    EditScriptName: TEdit;
    Label3: TLabel;
    EditMapName: TEdit;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    EditShowName: TEdit;
    Label7: TLabel;
    Label8: TLabel;
    CheckBoxOfCastle: TCheckBox;
    ComboBoxDir: TComboBox;
    EditImageIdx: TSpinEdit;
    EditX: TSpinEdit;
    EditY: TSpinEdit;
    GroupBoxScript: TGroupBox;
    MemoScript: TMemo;
    ButtonScriptSave: TButton;
    GroupBox3: TGroupBox;
    CheckBoxBuy: TCheckBox;
    CheckBoxSell: TCheckBox;
    CheckBoxStorage: TCheckBox;
    CheckBoxGetback: TCheckBox;
    CheckBoxMakedrug: TCheckBox;
    CheckBoxUpgradenow: TCheckBox;
    CheckBoxGetbackupgnow: TCheckBox;
    CheckBoxRepair: TCheckBox;
    CheckBoxS_repair: TCheckBox;
    ButtonReLoadNpc: TButton;
    ButtonSave: TButton;
    CheckBoxDenyRefStatus: TCheckBox;
    Label9: TLabel;
    EditPriceRate: TSpinEdit;
    Label10: TLabel;
    EditMapDesc: TEdit;
    CheckBoxSendMsg: TCheckBox;
    CheckBoxAutoMove: TCheckBox;
    Label11: TLabel;
    EditMoveTime: TSpinEdit;
    ButtonClearTempData: TButton;
    ButtonViewData: TButton;
    procedure ListBoxMerChantClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ButtonSaveClick(Sender: TObject);
    procedure CheckBoxDenyRefStatusClick(Sender: TObject);
    procedure EditXChange(Sender: TObject);
    procedure EditYChange(Sender: TObject);
    procedure EditShowNameChange(Sender: TObject);
    procedure EditImageIdxChange(Sender: TObject);
    procedure CheckBoxOfCastleClick(Sender: TObject);
    procedure CheckBoxBuyClick(Sender: TObject);
    procedure CheckBoxSellClick(Sender: TObject);
    procedure CheckBoxGetbackClick(Sender: TObject);
    procedure CheckBoxStorageClick(Sender: TObject);
    procedure CheckBoxUpgradenowClick(Sender: TObject);
    procedure CheckBoxGetbackupgnowClick(Sender: TObject);
    procedure CheckBoxRepairClick(Sender: TObject);
    procedure CheckBoxS_repairClick(Sender: TObject);
    procedure CheckBoxMakedrugClick(Sender: TObject);
    procedure EditPriceRateChange(Sender: TObject);
    procedure ButtonScriptSaveClick(Sender: TObject);
    procedure ButtonReLoadNpcClick(Sender: TObject);
    procedure EditScriptNameChange(Sender: TObject);
    procedure EditMapNameChange(Sender: TObject);
    procedure ComboBoxDirChange(Sender: TObject);
    procedure MemoScriptChange(Sender: TObject);
    procedure CheckBoxSendMsgClick(Sender: TObject);
    procedure CheckBoxAutoMoveClick(Sender: TObject);
    procedure EditMoveTimeChange(Sender: TObject);
    procedure ButtonClearTempDataClick(Sender: TObject);
  private
    SelMerchant:TMerchant;
    boOpened:Boolean;
    boModValued:Boolean;
    procedure ModValue();
    procedure uModValue();
    procedure RefListBoxMerChant();
    procedure ClearMerchantData();
    procedure LoadScriptFile();
    procedure ChangeScriptAllowAction();
    { Private declarations }
  public
    procedure Open();
    { Public declarations }
  end;

var
  frmConfigMerchant: TfrmConfigMerchant;

implementation

uses UsrEngn, M2Share;

{$R *.dfm}

{ TfrmConfigMerchant }
procedure TfrmConfigMerchant.ModValue;
begin
  ButtonSave.Enabled:=True;
  ButtonScriptSave.Enabled:=True;
end;

procedure TfrmConfigMerchant.uModValue;
begin
  ButtonSave.Enabled:=False;
  ButtonScriptSave.Enabled:=False;
end;

procedure TfrmConfigMerchant.Open;
begin
  boOpened:=False;
  uModValue();
  CheckBoxDenyRefStatus.Checked:=False;
  SelMerchant:=nil;
  RefListBoxMerChant;

  boOpened:=True;
  ShowModal;
end;

procedure TfrmConfigMerchant.ButtonClearTempDataClick(Sender: TObject);
begin
  if Application.MessageBox(PChar('是否确认清除NPC临时数据?'),'确认信息',MB_YESNO + MB_ICONQUESTION) = mrYes then begin
    ClearMerchantData();
  end;
end;

procedure TfrmConfigMerchant.ButtonSaveClick(Sender: TObject);
var
  I:Integer;
  SaveList:TStringList;
  Merchant:TMerchant;
  sMerchantFile:String;
  sIsCastle:String;
  sCanMove:String;
begin
  sMerchantFile:=g_Config.sEnvirDir + 'Merchant.txt';
  SaveList:=TStringList.Create;
  UserEngine.m_MerchantList.Lock;
  try
    for I := 0 to UserEngine.m_MerchantList.Count - 1 do begin
      Merchant:=TMerchant(UserEngine.m_MerchantList.Items[I]);
      if Merchant.m_sMapName = '0' then Continue;
        
      if Merchant.m_boCastle then sIsCastle:='1'
      else sIsCastle:='0';
      if Merchant.m_boCanMove then sCanMove:='1'
      else sCanMove:='0';
        
      SaveList.Add(Merchant.m_sScript + #9 +
                   Merchant.m_sMapName + #9 +
                   IntToStr(Merchant.m_nCurrX) + #9 +
                   IntToStr(Merchant.m_nCurrY) + #9 +
                   Merchant.m_sCharName + #9 +
                   IntToStr(Merchant.m_nFlag) + #9 +
                   IntToStr(Merchant.m_wAppr) + #9 +
                   sIsCastle + #9 +
                   sCanMove + #9 +
                   IntToStr(Merchant.m_dwMoveTime)
                   )
    end;
    SaveList.SaveToFile(sMerchantFile);
  finally
    UserEngine.m_MerchantList.UnLock;
  end;
  SaveList.Free;
  uModValue();  
end;

procedure TfrmConfigMerchant.ClearMerchantData;
var
  I: Integer;
  Merchant:TMerchant;
begin
  UserEngine.m_MerchantList.Lock;
  try
    for I := 0 to UserEngine.m_MerchantList.Count - 1 do begin
      Merchant:=TMerchant(UserEngine.m_MerchantList.Items[I]);
      Merchant.ClearData();
    end;
  finally
    UserEngine.m_MerchantList.UnLock;
  end;
end;

procedure TfrmConfigMerchant.RefListBoxMerChant;
var
  I: Integer;
  Merchant:TMerchant;
begin
  UserEngine.m_MerchantList.Lock;
  try
    for I := 0 to UserEngine.m_MerchantList.Count - 1 do begin
      Merchant:=TMerchant(UserEngine.m_MerchantList.Items[I]);
      if (Merchant.m_sMapName = '0') and (Merchant.m_nCurrX = 0) and (Merchant.m_nCurrY = 0) then Continue;
      ListBoxMerChant.Items.AddObject(Merchant.m_sCharName + ' - ' + Merchant.m_sMapName + ' (' + IntToStr(Merchant.m_nCurrX) + ':' + IntToStr(Merchant.m_nCurrY) + ')',Merchant );
    end;
  finally
    UserEngine.m_MerchantList.UnLock;
  end;

end;

procedure TfrmConfigMerchant.ListBoxMerChantClick(Sender: TObject);
var
  nSelIndex:Integer;
begin
  CheckBoxDenyRefStatus.Checked:=False;
  uModValue();
  boOpened:=False;
  nSelIndex:=ListBoxMerChant.ItemIndex;
  if nSelIndex < 0 then exit;
  SelMerchant:=TMerchant(ListBoxMerChant.Items.Objects[nSelIndex]);
  EditScriptName.Text:=SelMerchant.m_sScript;
  EditMapName.Text:=SelMerchant.m_sMapName;
  EditMapDesc.Text:=SelMerchant.m_PEnvir.sMapDesc;
  EditX.Value:=SelMerchant.m_nCurrX;
  EditY.Value:=SelMerchant.m_nCurrY;
  EditShowName.Text:=SelMerchant.m_sCharName;
  ComboBoxDir.ItemIndex:=SelMerchant.m_nFlag;
  EditImageIdx.Value:=SelMerchant.m_wAppr;
  CheckBoxOfCastle.Checked:=SelMerchant.m_boCastle;
  CheckBoxAutoMove.Checked:=SelMerchant.m_boCanMove;
  EditMoveTime.Value:=SelMerchant.m_dwMoveTime;
  
  CheckBoxBuy.Checked:=SelMerchant.m_boBuy;
  CheckBoxSell.Checked:=SelMerchant.m_boSell;
  CheckBoxGetback.Checked:=SelMerchant.m_boGetback;
  CheckBoxStorage.Checked:=SelMerchant.m_boStorage;
  CheckBoxUpgradenow.Checked:=SelMerchant.m_boUpgradenow;
  CheckBoxGetbackupgnow.Checked:=SelMerchant.m_boGetBackupgnow;
  CheckBoxRepair.Checked:=SelMerchant.m_boRepair;
  CheckBoxS_repair.Checked:=SelMerchant.m_boS_repair;
  CheckBoxMakedrug.Checked:=SelMerchant.m_boMakeDrug;
  CheckBoxSendMsg.Checked:=SelMerchant.m_boSendmsg;


  EditPriceRate.Value:=SelMerchant.m_nPriceRate;
  MemoScript.Clear;
  ButtonReLoadNpc.Enabled:=False;
  LoadScriptFile();

  GroupBoxNPC.Enabled:=True;
  GroupBoxScript.Enabled:=True;

  boOpened:=True;
end;

procedure TfrmConfigMerchant.FormCreate(Sender: TObject);
begin
  ComboBoxDir.Items.Add('0');
  ComboBoxDir.Items.Add('1');
  ComboBoxDir.Items.Add('2');
  ComboBoxDir.Items.Add('3');
  ComboBoxDir.Items.Add('4');
  ComboBoxDir.Items.Add('5');
  ComboBoxDir.Items.Add('6');
  ComboBoxDir.Items.Add('7');
end;


procedure TfrmConfigMerchant.CheckBoxDenyRefStatusClick(Sender: TObject);

⌨️ 快捷键说明

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