📄 viewlist.pas
字号:
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 + -