📄 viewlist.~pas
字号:
sItemName: string;
nNoDropCount: Integer;
nDropCount: Integer;
nDropLimit: Integer;
nSelIndex: Integer;
MonDrop: pTMonDrop;
begin
sItemName := Trim(EditItemName.Text);
nDropCount := EditDropCount.Value;
nDropLimit := EditCountLimit.Value;
nNoDropCount := EditNoDropCount.Value;
nSelIndex := StringGridMonDropLimit.Row - 1;
if nSelIndex < 0 then Exit;
g_MonDropLimitLIst.Lock;
try
if nSelIndex >= g_MonDropLimitLIst.Count then Exit;
MonDrop := pTMonDrop(g_MonDropLimitLIst.Objects[nSelIndex]);
MonDrop.sItemName := sItemName;
MonDrop.nDropCount := nDropCount;
MonDrop.nNoDropCount := nNoDropCount;
MonDrop.nCountLimit := nDropLimit;
finally
g_MonDropLimitLIst.UnLock;
end;
SaveMonDropLimitList();
RefMonDropLimit();
end;
procedure TfrmViewList.ButtonMonDropLimitAddClick(Sender: TObject);
var
i: Integer;
sItemName: string;
nNoDropCount: Integer;
nDropCount: Integer;
nDropLimit: Integer;
MonDrop: pTMonDrop;
begin
sItemName := Trim(EditItemName.Text);
nDropCount := EditDropCount.Value;
nDropLimit := EditCountLimit.Value;
nNoDropCount := EditNoDropCount.Value;
g_MonDropLimitLIst.Lock;
try
for i := 0 to g_MonDropLimitLIst.Count - 1 do begin
MonDrop := pTMonDrop(g_MonDropLimitLIst.Objects[i]);
if CompareText(MonDrop.sItemName, sItemName) = 0 then begin
Application.MessageBox('输入的物品名已经在列表中!!!', '提示信息', MB_OK + MB_ICONERROR);
Exit;
end;
end;
New(MonDrop);
MonDrop.sItemName := sItemName;
MonDrop.nDropCount := nDropCount;
MonDrop.nNoDropCount := nNoDropCount;
MonDrop.nCountLimit := nDropLimit;
g_MonDropLimitLIst.AddObject(sItemName, TObject(MonDrop));
finally
g_MonDropLimitLIst.UnLock;
end;
SaveMonDropLimitList();
RefMonDropLimit();
end;
procedure TfrmViewList.ButtonMonDropLimitDelClick(Sender: TObject);
var
nSelIndex: Integer;
MonDrop: pTMonDrop;
begin
nSelIndex := StringGridMonDropLimit.Row - 1;
if nSelIndex < 0 then Exit;
g_MonDropLimitLIst.Lock;
try
if nSelIndex >= g_MonDropLimitLIst.Count then Exit;
MonDrop := pTMonDrop(g_MonDropLimitLIst.Objects[nSelIndex]);
DisPose(MonDrop);
g_MonDropLimitLIst.Delete(nSelIndex);
finally
g_MonDropLimitLIst.UnLock;
end;
SaveMonDropLimitList();
RefMonDropLimit();
end;
procedure TfrmViewList.ListBoxGameLogListClick(Sender: TObject);
begin
if not boOpened then Exit;
if ListBoxGameLogList.ItemIndex >= 0 then
ButtonGameLogDel.Enabled := True;
end;
procedure TfrmViewList.ListBoxitemList2Click(Sender: TObject);
begin
if not boOpened then Exit;
if ListBoxitemList2.ItemIndex >= 0 then
ButtonGameLogAdd.Enabled := True;
end;
procedure TfrmViewList.ButtonGameLogAddClick(Sender: TObject);
var
i: Integer;
begin
if ListBoxitemList2.ItemIndex >= 0 then begin
for i := 0 to ListBoxGameLogList.Items.Count - 1 do begin
if ListBoxGameLogList.Items.Strings[i] = ListBoxitemList2.Items.Strings[ListBoxitemList2.ItemIndex] then begin
Application.MessageBox('此物品已在列表中!!!', '错误信息', MB_OK + MB_ICONERROR);
Exit;
end;
end;
ListBoxGameLogList.Items.Add(ListBoxitemList2.Items.Strings[ListBoxitemList2.ItemIndex]);
ModValue();
end;
end;
procedure TfrmViewList.ButtonGameLogDelClick(Sender: TObject);
begin
if ListBoxGameLogList.ItemIndex >= 0 then begin
ListBoxGameLogList.Items.Delete(ListBoxGameLogList.ItemIndex);
ModValue();
end;
if ListBoxGameLogList.ItemIndex < 0 then
ButtonGameLogDel.Enabled := False;
end;
procedure TfrmViewList.ButtonGameLogAddAllClick(Sender: TObject);
var
i: Integer;
begin
ListBoxGameLogList.Items.Clear;
for i := 0 to ListBoxitemList2.Items.Count - 1 do begin
ListBoxGameLogList.Items.Add(ListBoxitemList2.Items.Strings[i]);
end;
ModValue();
end;
procedure TfrmViewList.ButtonGameLogDelAllClick(Sender: TObject);
begin
ListBoxGameLogList.Items.Clear;
ButtonGameLogDel.Enabled := False;
ModValue();
end;
procedure TfrmViewList.ButtonGameLogSaveClick(Sender: TObject);
var
i: Integer;
begin
g_GameLogItemNameList.Lock;
try
g_GameLogItemNameList.Clear;
for i := 0 to ListBoxGameLogList.Items.Count - 1 do begin
g_GameLogItemNameList.Add(ListBoxGameLogList.Items.Strings[i])
end;
finally
g_GameLogItemNameList.UnLock;
end;
uModValue();
{$IF SoftVersion <> VERDEMO}
SaveGameLogItemNameList();
{$IFEND}
if Application.MessageBox('此设置必须重新加载物品数据库才能生效,是否重新加载?', '确认信息', MB_YESNO + MB_ICONQUESTION) = mrYes then begin
FrmDB.LoadItemsDB();
end;
end;
procedure TfrmViewList.ButtonDisableTakeOffAddClick(Sender: TObject);
var
i: Integer;
begin
if ListBoxitemList3.ItemIndex >= 0 then begin
for i := 0 to ListBoxDisableTakeOffList.Items.Count - 1 do begin
if ListBoxDisableTakeOffList.Items.Strings[i] = ListBoxitemList3.Items.Strings[ListBoxitemList3.ItemIndex] then begin
Application.MessageBox('此物品已在列表中!!!', '错误信息', MB_OK + MB_ICONERROR);
Exit;
end;
end;
ListBoxDisableTakeOffList.Items.AddObject(IntToStr(ListBoxitemList3.ItemIndex) + ' ' + ListBoxitemList3.Items.Strings[ListBoxitemList3.ItemIndex], TObject(ListBoxitemList3.ItemIndex));
ModValue();
end;
end;
procedure TfrmViewList.ButtonDisableTakeOffDelClick(Sender: TObject);
begin
if ListBoxDisableTakeOffList.ItemIndex >= 0 then begin
ListBoxDisableTakeOffList.Items.Delete(ListBoxDisableTakeOffList.ItemIndex);
ModValue();
end;
if ListBoxDisableTakeOffList.ItemIndex < 0 then
ButtonDisableTakeOffDel.Enabled := False;
end;
procedure TfrmViewList.ListBoxDisableTakeOffListClick(Sender: TObject);
begin
if not boOpened then Exit;
if ListBoxDisableTakeOffList.ItemIndex >= 0 then
ButtonDisableTakeOffDel.Enabled := True;
end;
procedure TfrmViewList.ListBoxitemList3Click(Sender: TObject);
begin
if not boOpened then Exit;
if ListBoxitemList3.ItemIndex >= 0 then
ButtonDisableTakeOffAdd.Enabled := True;
end;
procedure TfrmViewList.ButtonDisableTakeOffAddAllClick(Sender: TObject);
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
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}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -