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

📄 viewlist.pas

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

procedure TfrmViewList.GridItemBindCharNameClick(Sender: TObject);
var
  nIndex:Integer;
  ItemBind:pTItemBind;
begin

  nIndex:=GridItemBindCharName.Row - 1;
  if nIndex < 0 then exit;

  g_ItemBindCharName.Lock;
  try
    if nIndex >= g_ItemBindCharName.Count then exit;
    ItemBind:=pTItemBind(g_ItemBindCharName.Items[nIndex]);
    EditItemBindCharNameItemName.Text:=UserEngine.GetStdItemName(ItemBind.nItemIdx);
    EditItemBindCharNameItemIdx.Value:=ItemBind.nItemIdx;
    EditItemBindCharNameItemMakeIdx.Value:=ItemBind.nMakeIdex;
    EditItemBindCharNameName.Text:=ItemBind.sBindName;
  finally
    g_ItemBindCharName.UnLock;
  end;
  ButtonItemBindCharNameDel.Enabled:=True;
end;

procedure TfrmViewList.EditItemBindCharNameItemIdxChange(Sender: TObject);
begin
  if EditItemBindCharNameItemIdx.Text = '' then begin
    EditItemBindCharNameItemIdx.Text:='0';
    exit;
  end;
  EditItemBindCharNameItemName.Text:=UserEngine.GetStdItemName(EditItemBindCharNameItemIdx.Value);
  ButtonItemBindCharNameMod.Enabled:=True;
end;

procedure TfrmViewList.EditItemBindCharNameItemMakeIdxChange(
  Sender: TObject);
begin
  if EditItemBindCharNameItemMakeIdx.Text = '' then begin
    EditItemBindCharNameItemMakeIdx.Text:='0';
    exit;
  end;
  ButtonItemBindCharNameMod.Enabled:=True;
end;

procedure TfrmViewList.EditItemBindCharNameNameChange(Sender: TObject);
begin
  ButtonItemBindCharNameMod.Enabled:=True;
end;

procedure TfrmViewList.ButtonItemBindCharNameAddClick(Sender: TObject);
var
  I:Integer;
  nMakeIdex:Integer;
  nItemIdx :Integer;
  sBindName:String;
  ItemBind:pTItemBind;
begin
  nItemIdx:=EditItemBindCharNameItemIdx.Value;
  nMakeIdex:=EditItemBindCharNameItemMakeIdx.Value;
  sBindName:=Trim(EditItemBindCharNameName.Text);

  if (nItemIdx <= 0) or (nMakeIdex < 0) or (sBindName = '') then begin
    Application.MessageBox('输入的信息不正确!!!','提示信息',MB_OK + MB_ICONERROR);
    exit;
  end;

  g_ItemBindCharName.Lock;
  try
    for I := 0 to g_ItemBindCharName.Count - 1 do begin
      ItemBind:=g_ItemBindCharName.Items[I];
      if (ItemBind.nItemIdx = nItemIdx) and (ItemBind.nMakeIdex = nMakeIdex) then begin
        Application.MessageBox('此物品已经绑定到其他的角色上了!!!','提示信息',MB_OK + MB_ICONERROR);
        exit;
      end;
    end;
    New(ItemBind);
    ItemBind.nItemIdx:=nItemIdx;
    ItemBind.nMakeIdex:=nMakeIdex;
    ItemBind.sBindName:=sBindName;
    g_ItemBindCharName.Insert(0,ItemBind);
  finally
    g_ItemBindCharName.UnLock;
  end;
  SaveItemBindCharName();
  RefItemBindCharName();
end;

procedure TfrmViewList.ButtonItemBindCharNameModClick(Sender: TObject);
var
  nSelIndex:Integer;
  nMakeIdex:Integer;
  nItemIdx :Integer;
  sBindName:String;
  ItemBind:pTItemBind;
begin

  nItemIdx:=EditItemBindCharNameItemIdx.Value;
  nMakeIdex:=EditItemBindCharNameItemMakeIdx.Value;
  sBindName:=Trim(EditItemBindCharNameName.Text);
  nSelIndex:=GridItemBindCharName.Row -1;
  if nSelIndex < 0 then exit;

  g_ItemBindCharName.Lock;
  try
    if nSelIndex >= g_ItemBindCharName.Count then exit;
    ItemBind:=g_ItemBindCharName.Items[nSelIndex];
    ItemBind.nItemIdx:=nItemIdx;
    ItemBind.nMakeIdex:=nMakeIdex;
    ItemBind.sBindName:=sBindName;
  finally
    g_ItemBindCharName.UnLock;
  end;

  SaveItemBindCharName();
  RefItemBindCharName();
  
end;

procedure TfrmViewList.ButtonItemBindCharNameDelClick(Sender: TObject);
var
  ItemBind:pTItemBind;
  nSelIndex:Integer;
begin

  nSelIndex:=GridItemBindCharName.Row -1;
  if nSelIndex < 0 then exit;
  g_ItemBindCharName.Lock;
  try
    if nSelIndex >= g_ItemBindCharName.Count then exit;
    ItemBind:=g_ItemBindCharName.Items[nSelIndex];
    Dispose(ItemBind);
    g_ItemBindCharName.Delete(nSelIndex);
  finally
    g_ItemBindCharName.UnLock;
  end;
  SaveItemBindCharName();
  RefItemBindCharName();
end;

procedure TfrmViewList.ButtonItemBindCharNameRefClick(Sender: TObject);
begin
  RefItemBindCharName();
end;


procedure TfrmViewList.RefItemBindIPaddr;
var
  I:Integer;
  ItemBind:pTItemBind;
begin
  GridItemBindIPaddr.RowCount:=2;
  GridItemBindIPaddr.Cells[0,1]:='';
  GridItemBindIPaddr.Cells[1,1]:='';
  GridItemBindIPaddr.Cells[2,1]:='';
  GridItemBindIPaddr.Cells[3,1]:='';
  ButtonItemBindIPaddrMod.Enabled:=False;
  ButtonItemBindIPaddrDel.Enabled:=False;
  g_ItemBindIPaddr.Lock;
  try
    GridItemBindIPaddr.RowCount:=g_ItemBindIPaddr.Count + 1;
    for I := 0 to g_ItemBindIPaddr.Count - 1 do begin
      ItemBind:=g_ItemBindIPaddr.Items[I];
      if ItemBind <> nil then begin
        GridItemBindIPaddr.Cells[0,I + 1]:=UserEngine.GetStdItemName(ItemBind.nItemIdx);
        GridItemBindIPaddr.Cells[1,I + 1]:=IntToStr(ItemBind.nItemIdx);
        GridItemBindIPaddr.Cells[2,I + 1]:=IntToStr(ItemBind.nMakeIdex);
        GridItemBindIPaddr.Cells[3,I + 1]:=ItemBind.sBindName;
      end;
    end;
  finally
    g_ItemBindIPaddr.UnLock;
  end;
end;
procedure TfrmViewList.GridItemBindIPaddrClick(Sender: TObject);
var
  nIndex:Integer;
  ItemBind:pTItemBind;
begin

  nIndex:=GridItemBindIPaddr.Row - 1;
  if nIndex < 0 then exit;

  g_ItemBindIPaddr.Lock;
  try
    if nIndex >= g_ItemBindIPaddr.Count then exit;
    ItemBind:=pTItemBind(g_ItemBindIPaddr.Items[nIndex]);
    EditItemBindIPaddrItemName.Text:=UserEngine.GetStdItemName(ItemBind.nItemIdx);
    EditItemBindIPaddrItemIdx.Value:=ItemBind.nItemIdx;
    EditItemBindIPaddrItemMakeIdx.Value:=ItemBind.nMakeIdex;
    EditItemBindIPaddrName.Text:=ItemBind.sBindName;
  finally
    g_ItemBindIPaddr.UnLock;
  end;
  ButtonItemBindIPaddrDel.Enabled:=True;
end;

procedure TfrmViewList.EditItemBindIPaddrItemIdxChange(Sender: TObject);
begin
  if EditItemBindIPaddrItemIdx.Text = '' then begin
    EditItemBindIPaddrItemIdx.Text:='0';
    exit;
  end;
  EditItemBindIPaddrItemName.Text:=UserEngine.GetStdItemName(EditItemBindIPaddrItemIdx.Value);
  ButtonItemBindIPaddrMod.Enabled:=True;
end;

procedure TfrmViewList.EditItemBindIPaddrItemMakeIdxChange(
  Sender: TObject);
begin
  if EditItemBindIPaddrItemMakeIdx.Text = '' then begin
    EditItemBindIPaddrItemMakeIdx.Text:='0';
    exit;
  end;
  ButtonItemBindIPaddrMod.Enabled:=True;
end;

procedure TfrmViewList.EditItemBindIPaddrNameChange(Sender: TObject);
begin
  ButtonItemBindIPaddrMod.Enabled:=True;
end;

procedure TfrmViewList.ButtonItemBindIPaddrAddClick(Sender: TObject);
var
  I:Integer;
  nMakeIdex:Integer;
  nItemIdx :Integer;
  sBindName:String;
  ItemBind:pTItemBind;
begin
  nItemIdx:=EditItemBindIPaddrItemIdx.Value;
  nMakeIdex:=EditItemBindIPaddrItemMakeIdx.Value;
  sBindName:=Trim(EditItemBindIPaddrName.Text);

  if not IsIPaddr(sBindName) then begin
    Application.MessageBox('IP地址格式输入不正确!!!','提示信息',MB_OK + MB_ICONERROR);
    EditItemBindIPaddrName.SetFocus;
    exit;
  end;


  if (nItemIdx <= 0) or (nMakeIdex < 0) then begin
    Application.MessageBox('输入的信息不正确!!!','提示信息',MB_OK + MB_ICONERROR);
    exit;
  end;

  g_ItemBindIPaddr.Lock;
  try
    for I := 0 to g_ItemBindIPaddr.Count - 1 do begin
      ItemBind:=g_ItemBindIPaddr.Items[I];
      if (ItemBind.nItemIdx = nItemIdx) and (ItemBind.nMakeIdex = nMakeIdex) then begin
        Application.MessageBox('此物品已经绑定到其他的IP地址上了!!!','提示信息',MB_OK + MB_ICONERROR);
        exit;
      end;
    end;
    New(ItemBind);
    ItemBind.nItemIdx:=nItemIdx;
    ItemBind.nMakeIdex:=nMakeIdex;
    ItemBind.sBindName:=sBindName;
    g_ItemBindIPaddr.Insert(0,ItemBind);
  finally
    g_ItemBindIPaddr.UnLock;
  end;
  SaveItemBindIPaddr();
  RefItemBindIPaddr();
end;

procedure TfrmViewList.ButtonItemBindIPaddrModClick(Sender: TObject);
var
  nSelIndex:Integer;
  nMakeIdex:Integer;
  nItemIdx :Integer;
  sBindName:String;
  ItemBind:pTItemBind;
begin

  nItemIdx:=EditItemBindIPaddrItemIdx.Value;
  nMakeIdex:=EditItemBindIPaddrItemMakeIdx.Value;
  sBindName:=Trim(EditItemBindIPaddrName.Text);
  if not IsIPaddr(sBindName) then begin
    Application.MessageBox('IP地址格式输入不正确!!!','提示信息',MB_OK + MB_ICONERROR);
    EditItemBindIPaddrName.SetFocus;
    exit;
  end;
  nSelIndex:=GridItemBindIPaddr.Row -1;
  if nSelIndex < 0 then exit;

  g_ItemBindIPaddr.Lock;
  try
    if nSelIndex >= g_ItemBindIPaddr.Count then exit;
    ItemBind:=g_ItemBindIPaddr.Items[nSelIndex];
    ItemBind.nItemIdx:=nItemIdx;
    ItemBind.nMakeIdex:=nMakeIdex;
    ItemBind.sBindName:=sBindName;
  finally
    g_ItemBindIPaddr.UnLock;
  end;
  SaveItemBindIPaddr();
  RefItemBindIPaddr();
end;

procedure TfrmViewList.ButtonItemBindIPaddrDelClick(Sender: TObject);
var
  ItemBind:pTItemBind;
  nSelIndex:Integer;
begin

  nSelIndex:=GridItemBindIPaddr.Row -1;
  if nSelIndex < 0 then exit;
  g_ItemBindIPaddr.Lock;
  try
    if nSelIndex >= g_ItemBindIPaddr.Count then exit;
    ItemBind:=g_ItemBindIPaddr.Items[nSelIndex];
    Dispose(ItemBind);
    g_ItemBindIPaddr.Delete(nSelIndex);
  finally
    g_ItemBindIPaddr.UnLock;
  end;
  SaveItemBindIPaddr();
  RefItemBindIPaddr();
end;

procedure TfrmViewList.ButtonItemBindIPaddrRefClick(Sender: TObject);
begin
  RefItemBindIPaddr();
end;

procedure TfrmViewList.RefItemCustomNameList;
var
  I:Integer;
  ItemName:pTItemName;
begin
//  GridItemNameList.RowCount:=2;
  GridItemNameList.Cells[0,1]:='';
  GridItemNameList.Cells[1,1]:='';
  GridItemNameList.Cells[2,1]:='';

  ButtonItemNameMod.Enabled:=False;
  ButtonItemNameDel.Enabled:=False;
  ItemUnit.m_ItemNameList.Lock;
  try
    GridItemNameList.RowCount:=ItemUnit.m_ItemNameList.Count + 1;
    for I := 0 to ItemUnit.m_ItemNameList.Count - 1 do begin
      ItemName:=ItemUnit.m_ItemNameList.Items[I];
      if ItemName <> nil then begin
        GridItemNameList.Cells[0,I + 1]:=UserEngine.GetStdItemName(ItemName.nItemIndex);
        GridItemNameList.Cells[1,I + 1]:=IntToStr(ItemName.nMakeIndex);
        GridItemNameList.Cells[2,I + 1]:=ItemName.sItemName;
      end;
    end;
  finally
    ItemUnit.m_ItemNameList.UnLock;
  end;
end;

procedure TfrmViewList.GridItemNameListClick(Sender: TObject);
var
  nIndex:Integer;
  ItemName:pTItemName;
begin
  nIndex:=GridItemNameList.Row - 1;
  if nIndex < 0 then exit;

  ItemUnit.m_ItemNameList.Lock;
  try
    if nIndex >= ItemUnit.m_ItemNameList.Count then exit;
    ItemName:=pTItemName(ItemUnit.m_ItemNameList.Items[nIndex]);
    EditItemNameOldName.Text:=UserEngine.GetStdItemName(ItemName.nItemIndex);
    EditItemNameIdx.Value:=ItemName.nItemIndex;
    EditItemNameMakeIndex.Value:=ItemName.nMakeIndex;
    EditItemNameNewName.Text:=ItemName.sItemName;
  finally
    ItemUnit.m_ItemNameList.UnLock;
  end;
  ButtonItemNameDel.Enabled:=True;
end;

procedure TfrmViewList.EditItemNameIdxChange(Sender: TObject);
begin
  EditItemNameOldName.Text:=UserEngine.GetStdItemName(EditItemNameIdx.Value);
  ButtonItemNameMod.Enabled:=True;
end;

procedure TfrmViewList.EditItemNameMakeIndexChange(Sender: TObject);
begin
  ButtonItemNameMod.Enabled:=True;
end;

procedure TfrmViewList.EditItemNameNewNameChange(Sender: TObject);
begin
  ButtonItemNameMod.Enabled:=True;
end;

procedure TfrmViewList.ButtonItemNameAddClick(Sender: TObject);
var
  I:Integer;
  nMakeIdex:Integer;
  nItemIdx :Integer;
  sNewName:String;
  ItemName:pTItemName;
begin
  nItemIdx:=EditItemNameIdx.Value;
  nMakeIdex:=EditItemNameMakeIndex.Value;
  sNewName:=Trim(EditItemNameNewName.Text);

  if (nItemIdx <= 0) or (nMakeIdex < 0) or (sNewName = '') then begin
    Application.MessageBox('输入的信息不正确!!!','提示信息',MB_OK + MB_ICONERROR);
    exit;
  end;

  ItemUnit.m_ItemNameList.Lock;
  try
    for I := 0 to ItemUnit.m_ItemNameList.Count - 1 do begin
      ItemName:=ItemUnit.m_ItemNameList.Items[I];
      if (ItemName.nItemIndex = nItemIdx) and (ItemName.nMakeIndex = nMakeIdex) then begin
        Application.MessageBox('此物品已经自定义过名称了!!!','提示信息',MB_OK + MB_ICONERROR);
        exit;
      end;
    end;
    New(ItemName);
    ItemName.nItemIndex:=nItemIdx;
    ItemName.nMakeIndex:=nMakeIdex;
    ItemName.sItemName:=sNewName;
    ItemUnit.m_ItemNameList.Insert(0,ItemName);
  finally
    ItemUnit.m_ItemNameList.UnLock;
  end;
  ItemUnit.SaveCustomItemName();
  RefItemCustomNameList();
end;

procedure TfrmViewList.ButtonItemNameModClick(Sender: TObject);
var
  nSelIndex:Integer;
  nMakeIdex:Integer;
  nItemIdx :Integer;
  sNewName:String;
  ItemName:pTItemName;
begin
  nItemIdx:=EditItemNameIdx.Value;
  nMakeIdex:=EditItemNameMakeIndex.Value;
  sNewName:=Trim(EditItemNameNewName.Text);
  nSelIndex:=GridItemNameList.Row -1;
  if nSelIndex < 0 then exit;
  ItemUnit.m_ItemNameList.Lock;
  try
    if nSelIndex >= ItemUnit.m_ItemNameList.Count then exit;
    ItemName:=ItemUnit.m_ItemNameList.Items[nSelIndex];
    ItemName.nItemIndex:=nItemIdx;
    ItemName.nMakeIndex:=nMakeIdex;
    ItemName.sItemName:=sNewName;
  finally
    ItemUnit.m_ItemNameList.UnLock;
  end;
  ItemUnit.SaveCustomItemName();
  RefItemCustomNameList();
end;

procedure TfrmViewList.ButtonItemNameDelClick(Sender: TObject);
var
  ItemName:pTItemName;
  nSelIndex:Integer;
begin

  nSelIndex:=GridItemNameList.Row -1;
  if nSelIndex < 0 then exit;
  ItemUnit.m_ItemNameList.Lock;
  try
    if nSelIndex >= ItemUnit.m_ItemNameList.Count then exit;
    ItemName:=ItemUnit.m_ItemNameList.Items[nSelIndex];
    Dispose(ItemName);
    ItemUnit.m_ItemNameList.Delete(nSelIndex);
  finally
    ItemUnit.m_ItemNameList.UnLock;
  end;
  ItemUnit.SaveCustomItemName();
  RefItemCustomNameList();
end;


procedure TfrmViewList.ButtonItemNameRefClick(Sender: TObject);
begin
  RefItemCustomNameList();
end;

end.

⌨️ 快捷键说明

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