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

📄 viewlist.pas

📁 原版翎风(LF)引擎(M2)源码(Delphi)
💻 PAS
📖 第 1 页 / 共 4 页
字号:
var
  I: Integer;
begin
  ListBoxDisableTakeOffList.Items.Clear;
  for I := 0 to ListBoxItemList3.Items.Count - 1 do begin
    ListBoxDisableTakeOffList.Items.AddObject(IntToStr(I) + '  ' +  ListBoxItemList3.Items.Strings[I],TObject(I));
  end;
  ModValue();
end;

procedure TfrmViewList.ButtonDisableTakeOffDelAllClick(Sender: TObject);
begin
  ListBoxDisableTakeOffList.Items.Clear;
  ButtonDisableTakeOffDel.Enabled:=False;
  ModValue();
end;

procedure TfrmViewList.ButtonDisableTakeOffSaveClick(Sender: TObject);
var
  I: Integer;
  sItemIdx:String;
begin
  g_DisableTakeOffList.Lock;
  try
    g_DisableTakeOffList.Clear;
    for I := 0 to ListBoxDisableTakeOffList.Items.Count - 1 do begin
      g_DisableTakeOffList.AddObject(Trim(GetValidStr3(ListBoxDisableTakeOffList.Items.Strings[I], sItemIdx, [' ','/',',',#9])),ListBoxDisableTakeOffList.Items.Objects[I]);
    end;
  finally
    g_DisableTakeOffList.UnLock;
  end;
  SaveDisableTakeOffList();
  uModValue();
end;
procedure TfrmViewList.RefAdminList();
var
  I         :Integer;
  AdminInfo :pTAdminInfo;
begin
  ListBoxAdminList.Clear;
  EditAdminName.Text            := '';
  EditAdminIPaddr.Text          := '';
  EditAdminPremission.Value     := 0;
  ButtonAdminListChange.Enabled := False;
  ButtonAdminListDel.Enabled    := False;
  UserEngine.m_AdminList.Lock;
  try
    for I := 0 to UserEngine.m_AdminList.Count - 1 do begin
      AdminInfo:=pTAdminInfo(UserEngine.m_AdminList.Items[I]);
{$IF VEROWNER = WL}
      ListBoxAdminList.Items.Add(AdminInfo.sChrName + ' - ' + IntToStr(AdminInfo.nLv) + ' - ' + AdminInfo.sIPaddr)
{$ELSE}
      ListBoxAdminList.Items.Add(AdminInfo.sChrName + ' - ' + IntToStr(AdminInfo.nLv))
{$IFEND}
    end;
  finally
    UserEngine.m_AdminList.UnLock;
  end;
end;
procedure TfrmViewList.RefNoClearMonList;
var
  MonInfo:pTMonInfo;
  I:Integer;
begin
  EnterCriticalSection(ProcessHumanCriticalSection);
  try
    for I := 0 to UserEngine.MonsterList.Count - 1 do begin
      MonInfo:=UserEngine.MonsterList.Items[I];
      ListBoxMonList.Items.AddObject(MonInfo.sName,TObject(MonInfo));
    end;
  finally
    LeaveCriticalSection(ProcessHumanCriticalSection);
  end;

  g_NoClearMonList.Lock;
  try
    for I := 0 to g_NoClearMonList.Count - 1 do begin
      ListBoxNoClearMonList.Items.Add(g_NoClearMonList.Strings[I]);
    end;
  finally
    g_NoClearMonList.UnLock;
  end;
end;

procedure TfrmViewList.ButtonNoClearMonAddClick(Sender: TObject);
var
  I: Integer;
begin
  if ListBoxMonList.ItemIndex >=0 then begin
    for I := 0 to ListBoxNoClearMonList.Items.Count - 1 do begin
      if ListBoxNoClearMonList.Items.Strings[I] = ListBoxMonList.Items.Strings[ListBoxMonList.ItemIndex] then begin
        Application.MessageBox('此物品已在列表中!!!','错误信息',MB_OK + MB_ICONERROR);
        exit;
      end;
    end;
    ListBoxNoClearMonList.Items.Add(ListBoxMonList.Items.Strings[ListBoxMonList.ItemIndex]);
    ModValue();
  end;
end;

procedure TfrmViewList.ButtonNoClearMonDelClick(Sender: TObject);
begin
  if ListBoxNoClearMonList.ItemIndex >=0 then begin
    ListBoxNoClearMonList.Items.Delete(ListBoxNoClearMonList.ItemIndex);
    ModValue();
  end;
  if ListBoxNoClearMonList.ItemIndex < 0 then
    ButtonNoClearMonDel.Enabled:=False;
end;

procedure TfrmViewList.ButtonNoClearMonAddAllClick(Sender: TObject);
var
  I: Integer;
begin
  ListBoxNoClearMonList.Items.Clear;
  for I := 0 to ListBoxMonList.Items.Count - 1 do begin
    ListBoxNoClearMonList.Items.Add(ListBoxMonList.Items.Strings[I]);
  end;
  ModValue();
end;

procedure TfrmViewList.ButtonNoClearMonDelAllClick(Sender: TObject);
begin
  ListBoxNoClearMonList.Items.Clear;
  ButtonNoClearMonDel.Enabled:=False;
  ModValue();
end;

procedure TfrmViewList.ButtonNoClearMonSaveClick(Sender: TObject);
var
  I: Integer;
begin
  g_NoClearMonLIst.Lock;
  try
    g_NoClearMonLIst.Clear;
    for I := 0 to ListBoxNoClearMonList.Items.Count - 1 do begin
      g_NoClearMonLIst.Add(ListBoxNoClearMonList.Items.Strings[I]);
    end;
  finally
    g_NoClearMonLIst.UnLock;
  end;
  SaveNoClearMonLIst();
  uModValue();
end;

procedure TfrmViewList.ListBoxNoClearMonListClick(Sender: TObject);
begin
  if not boOpened then exit;
  if ListBoxNoClearMonList.ItemIndex >=0 then
    ButtonNoClearMonDel.Enabled:=True;
end;

procedure TfrmViewList.ListBoxMonListClick(Sender: TObject);
begin
  if not boOpened then exit;
  if ListBoxMonList.ItemIndex >=0 then
    ButtonNoClearMonAdd.Enabled:=True;
end;

procedure TfrmViewList.ButtonAdminLitsSaveClick(Sender: TObject);
begin
  FrmDB.SaveAdminList();
  ButtonAdminLitsSave.Enabled:=False;
end;

procedure TfrmViewList.ListBoxAdminListClick(Sender: TObject);
var
  nIndex    :Integer;
  AdminInfo :pTAdminInfo;
begin
  nIndex:=ListBoxAdminList.ItemIndex;
  UserEngine.m_AdminList.Lock;
  try
    if (nIndex < 0) and (nIndex >= UserEngine.m_AdminList.Count) then exit;
    ButtonAdminListChange.Enabled := True;
    ButtonAdminListDel.Enabled    := True;
    AdminInfo                     := UserEngine.m_AdminList.Items[nIndex];
    EditAdminName.Text            := AdminInfo.sChrName;
    EditAdminIPaddr.Text          := AdminInfo.sIPaddr;
    EditAdminPremission.Value     := AdminInfo.nLv;
  finally
    UserEngine.m_AdminList.UnLock;
  end;
end;

procedure TfrmViewList.ButtonAdminListAddClick(Sender: TObject);
var
  I                : Integer;
  sAdminName       :String;
  sAdminIPaddr     :String;
  nAdminPerMission :Integer;
  AdminInfo        :pTAdminInfo;
begin
  sAdminName       := Trim(EditAdminName.Text);
  sAdminIPaddr     := Trim(EditAdminIPaddr.Text);
  nAdminPerMission := EditAdminPremission.Value;
  if (nAdminPerMission < 1) or (sAdminName = '') or  not (nAdminPerMission in [0..10]) then begin
    Application.MessageBox('输入不正确!!!','提示信息',MB_OK + MB_ICONERROR);
    EditAdminName.SetFocus;
    exit;
  end;
{$IF VEROWNER = WL}
  if (sAdminIPaddr = '') then begin
    Application.MessageBox('登录IP输入不正确!!!','提示信息',MB_OK + MB_ICONERROR);
    EditAdminIPaddr.SetFocus;
    exit;
  end;
{$IFEND}

  UserEngine.m_AdminList.Lock;
  try
    for I := 0 to UserEngine.m_AdminList.Count - 1 do begin
      if CompareText(pTAdminInfo(UserEngine.m_AdminList.Items[I]).sChrName,sAdminName) = 0 then begin
        Application.MessageBox('输入的角色名已经在GM列表中!!!','提示信息',MB_OK + MB_ICONERROR);
        exit;
      end;
    end;
    New(AdminInfo);
    AdminInfo.nLv      := nAdminPerMission;
    AdminInfo.sChrName := sAdminName;
    AdminInfo.sIPaddr  := sAdminIPaddr;
    UserEngine.m_AdminList.Add(AdminInfo);
  finally
    UserEngine.m_AdminList.UnLock;
  end;
  RefAdminList();
  ButtonAdminLitsSave.Enabled:=True;
end;

procedure TfrmViewList.ButtonAdminListChangeClick(Sender: TObject);
var
  nIndex           :Integer;
  sAdminName       :String;
  sAdminIPaddr     :String;
  nAdminPerMission :Integer;
  AdminInfo        :pTAdminInfo;
begin
  nIndex:=ListBoxAdminList.ItemIndex;
  if nIndex < 0 then exit;

  sAdminName       := Trim(EditAdminName.Text);
  sAdminIPaddr     := Trim(EditAdminIPaddr.Text);
  nAdminPerMission := EditAdminPremission.Value;
  if (nAdminPerMission < 1) or (sAdminName = '') or not (nAdminPerMission in [0..10]) then begin
    Application.MessageBox('输入不正确!!!','提示信息',MB_OK + MB_ICONERROR);
    EditAdminName.SetFocus;
    exit;
  end;
{$IF VEROWNER = WL}  
  if (sAdminIPaddr = '') then begin
    Application.MessageBox('登录IP输入不正确!!!','提示信息',MB_OK + MB_ICONERROR);
    EditAdminIPaddr.SetFocus;
    exit;
  end;
{$IFEND}
  UserEngine.m_AdminList.Lock;
  try
    if (nIndex < 0) and (nIndex >= UserEngine.m_AdminList.Count) then exit;
    AdminInfo:=UserEngine.m_AdminList.Items[nIndex];
    AdminInfo.sChrName := sAdminName;
    AdminInfo.nLv      := nAdminPerMission;
    AdminInfo.sIPaddr  := sAdminIPaddr;
  finally
    UserEngine.m_AdminList.UnLock;
  end;
  RefAdminList();
  ButtonAdminLitsSave.Enabled:=True;
end;


procedure TfrmViewList.ButtonAdminListDelClick(Sender: TObject);
var
  nIndex    :Integer;
begin
  nIndex:=ListBoxAdminList.ItemIndex;
  if nIndex < 0 then exit;
  UserEngine.m_AdminList.Lock;
  try
    if (nIndex < 0) and (nIndex >= UserEngine.m_AdminList.Count) then exit;
    Dispose(pTAdminInfo(UserEngine.m_AdminList.Items[nIndex]));
    UserEngine.m_AdminList.Delete(nIndex);
  finally
    UserEngine.m_AdminList.UnLock;
  end;
  RefAdminList();
  ButtonAdminLitsSave.Enabled:=True;
end;


procedure TfrmViewList.RefItemBindAccount;
var
  I:Integer;
  ItemBind:pTItemBind;
begin
  GridItemBindAccount.RowCount:=2;
  GridItemBindAccount.Cells[0,1]:='';
  GridItemBindAccount.Cells[1,1]:='';
  GridItemBindAccount.Cells[2,1]:='';
  GridItemBindAccount.Cells[3,1]:='';
  ButtonItemBindAcountMod.Enabled:=False;
  ButtonItemBindAcountDel.Enabled:=False;

  g_ItemBindAccount.Lock;
  try
    GridItemBindAccount.RowCount:=g_ItemBindAccount.Count + 1;
    for I := 0 to g_ItemBindAccount.Count - 1 do begin
      ItemBind:=g_ItemBindAccount.Items[I];
      if ItemBind <> nil then begin
        GridItemBindAccount.Cells[0,I + 1]:=UserEngine.GetStdItemName(ItemBind.nItemIdx);
        GridItemBindAccount.Cells[1,I + 1]:=IntToStr(ItemBind.nItemIdx);
        GridItemBindAccount.Cells[2,I + 1]:=IntToStr(ItemBind.nMakeIdex);
        GridItemBindAccount.Cells[3,I + 1]:=ItemBind.sBindName;
      end;
    end;
  finally
    g_ItemBindAccount.UnLock;
  end;
end;

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

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

  g_ItemBindAccount.Lock;
  try
    if nIndex >= g_ItemBindAccount.Count then exit;
    ItemBind:=pTItemBind(g_ItemBindAccount.Items[nIndex]);
    EditItemBindAccountItemName.Text:=UserEngine.GetStdItemName(ItemBind.nItemIdx);
    EditItemBindAccountItemIdx.Value:=ItemBind.nItemIdx;
    EditItemBindAccountItemMakeIdx.Value:=ItemBind.nMakeIdex;
    EditItemBindAccountName.Text:=ItemBind.sBindName;
  finally
    g_ItemBindAccount.UnLock;
  end;
  ButtonItemBindAcountDel.Enabled:=True;
end;

procedure TfrmViewList.EditItemBindAccountItemIdxChange(Sender: TObject);
begin
  if EditItemBindAccountItemIdx.Text = '' then begin
    EditItemBindAccountItemIdx.Text:='0';
    exit;
  end;
  EditItemBindAccountItemName.Text:=UserEngine.GetStdItemName(EditItemBindAccountItemIdx.Value);
  ButtonItemBindAcountMod.Enabled:=True;
end;

procedure TfrmViewList.EditItemBindAccountItemMakeIdxChange(
  Sender: TObject);
begin
  if EditItemBindAccountItemIdx.Text = '' then begin
    EditItemBindAccountItemIdx.Text:='0';
    exit;
  end;
  ButtonItemBindAcountMod.Enabled:=True;
end;


procedure TfrmViewList.EditItemBindAccountNameChange(Sender: TObject);
begin
  ButtonItemBindAcountMod.Enabled:=True;
end;

procedure TfrmViewList.ButtonItemBindAcountModClick(Sender: TObject);
var
  nSelIndex:Integer;
  nMakeIdex:Integer;
  nItemIdx :Integer;
  sBindName:String;
  ItemBind:pTItemBind;
begin
  nItemIdx:=EditItemBindAccountItemIdx.Value;
  nMakeIdex:=EditItemBindAccountItemMakeIdx.Value;
  sBindName:=Trim(EditItemBindAccountName.Text);
  nSelIndex:=GridItemBindAccount.Row -1;
  if nSelIndex < 0 then exit;
  g_ItemBindAccount.Lock;
  try
    if nSelIndex >= g_ItemBindAccount.Count then exit;
    ItemBind:=g_ItemBindAccount.Items[nSelIndex];
    ItemBind.nItemIdx:=nItemIdx;
    ItemBind.nMakeIdex:=nMakeIdex;
    ItemBind.sBindName:=sBindName;
  finally
    g_ItemBindAccount.UnLock;
  end;
  SaveItemBindAccount();
  RefItemBindAccount();

end;


procedure TfrmViewList.ButtonItemBindAcountRefClick(Sender: TObject);
begin
  RefItemBindAccount();
end;


procedure TfrmViewList.ButtonItemBindAcountAddClick(Sender: TObject);
var
  I:Integer;
  nMakeIdex:Integer;
  nItemIdx :Integer;
  sBindName:String;
  ItemBind:pTItemBind;
begin
  nItemIdx:=EditItemBindAccountItemIdx.Value;
  nMakeIdex:=EditItemBindAccountItemMakeIdx.Value;
  sBindName:=Trim(EditItemBindAccountName.Text);

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

  g_ItemBindAccount.Lock;
  try
    for I := 0 to g_ItemBindAccount.Count - 1 do begin
      ItemBind:=g_ItemBindAccount.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_ItemBindAccount.Insert(0,ItemBind);
  finally
    g_ItemBindAccount.UnLock;
  end;
  SaveItemBindAccount();
  RefItemBindAccount();
end;


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

  nSelIndex:=GridItemBindAccount.Row -1;
  if nSelIndex < 0 then exit;
  g_ItemBindAccount.Lock;
  try
    if nSelIndex >= g_ItemBindAccount.Count then exit;
    ItemBind:=g_ItemBindAccount.Items[nSelIndex];
    Dispose(ItemBind);
    g_ItemBindAccount.Delete(nSelIndex);
  finally
    g_ItemBindAccount.UnLock;
  end;
  SaveItemBindAccount();
  RefItemBindAccount();
end;

procedure TfrmViewList.RefItemBindCharName;
var
  I:Integer;
  ItemBind:pTItemBind;
begin
  GridItemBindCharName.RowCount:=2;
  GridItemBindCharName.Cells[0,1]:='';
  GridItemBindCharName.Cells[1,1]:='';
  GridItemBindCharName.Cells[2,1]:='';
  GridItemBindCharName.Cells[3,1]:='';
  ButtonItemBindCharNameMod.Enabled:=False;
  ButtonItemBindCharNameDel.Enabled:=False;
  g_ItemBindCharName.Lock;
  try
    GridItemBindCharName.RowCount:=g_ItemBindCharName.Count + 1;
    for I := 0 to g_ItemBindCharName.Count - 1 do begin
      ItemBind:=g_ItemBindCharName.Items[I];
      if ItemBind <> nil then begin
        GridItemBindCharName.Cells[0,I + 1]:=UserEngine.GetStdItemName(ItemBind.nItemIdx);
        GridItemBindCharName.Cells[1,I + 1]:=IntToStr(ItemBind.nItemIdx);
        GridItemBindCharName.Cells[2,I + 1]:=IntToStr(ItemBind.nMakeIdex);
        GridItemBindCharName.Cells[3,I + 1]:=ItemBind.sBindName;
      end;
    end;
  finally
    g_ItemBindCharName.UnLock;
  end;

⌨️ 快捷键说明

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