📄 itmunit.pas
字号:
Inc(AddAbility.wSpeedPoint,MAC2);
end;
52: begin //原本与 20,24 一个属性,现在分开单独进行设置
if g_Config.boAddUserItemNewValue then begin
Inc(AddAbility.wHitPoint,AC2);
Inc(AddAbility.wSpeedPoint,MAC2);
end else begin
AddAbility.wAC:=MakeLong(LoWord(AddAbility.wAC) + AC,HiWord(AddAbility.wAC) + AC2);
AddAbility.wMAC:=MakeLong(LoWord(AddAbility.wMAC) + MAC,HiWord(AddAbility.wMAC) + MAC2);
end;
end;
62: begin
Inc(AddAbility.HandWeight,AC2);
Inc(AddAbility.Weight,MAC);
Inc(AddAbility.WearWeight,MAC2);
end;
21: begin
Inc(AddAbility.wHealthRecover,AC2);
Inc(AddAbility.wSpellRecover,MAC2);
Inc(AddAbility.nHitSpeed,AC);
Dec(AddAbility.nHitSpeed,MAC);
end;
54: begin //Belt
if g_Config.boAddUserItemNewValue then begin
Inc(AddAbility.wHealthRecover,AC2);
Inc(AddAbility.wSpellRecover,MAC2);
Inc(AddAbility.nHitSpeed,AC);
Dec(AddAbility.nHitSpeed,MAC);
end else begin
AddAbility.wAC:=MakeLong(LoWord(AddAbility.wAC) + AC,HiWord(AddAbility.wAC) + AC2);
AddAbility.wMAC:=MakeLong(LoWord(AddAbility.wMAC) + MAC,HiWord(AddAbility.wMAC) + MAC2);
end;
end;
64: begin //Belt
Inc(AddAbility.wHealthRecover,AC2);
Inc(AddAbility.wSpellRecover,MAC2);
Inc(AddAbility.nHitSpeed,AC);
Dec(AddAbility.nHitSpeed,MAC);
end;
23: begin
Inc(AddAbility.wAntiPoison,AC2);
Inc(AddAbility.wPoisonRecover,MAC2);
Inc(AddAbility.nHitSpeed,AC);
Dec(AddAbility.nHitSpeed,MAC);
end;
{21: begin //格吧捞
Inc(AddAbility.wAntiMagic,AC2);
Inc(AddAbility.btUnLuck,MAC);
Inc(AddAbility.btLuck,MAC2);
end;
22, //格吧捞
41: begin //迫骂
Inc(AddAbility.wHitPoint,AC2);
Inc(AddAbility.wSpeedPoint,MAC2);
end;
23: begin //格吧捞
Inc(AddAbility.wHealthRecover,AC2);
Inc(AddAbility.wSpellRecover,MAC2);
Inc(AddAbility.nHitSpeed,AC);
Dec(AddAbility.nHitSpeed,MAC);
end;
32: begin //馆瘤
Inc(AddAbility.wAntiPoison,AC2);
Inc(AddAbility.wPoisonRecover,MAC2);
Inc(AddAbility.nHitSpeed,AC);
Dec(AddAbility.nHitSpeed,MAC);
end;
else begin
AddAbility.wAC := MakeLong(LoWord(AddAbility.wAC) + AC,HiWord(AddAbility.wAC) + AC2);
AddAbility.wMAC := MakeLong(LoWord(AddAbility.wMAC) + MAC,HiWord(AddAbility.wMAC) + MAC2);
end;}
end;
end;
end;
AddAbility.wDC:=MakeLong(LoWord(AddAbility.wDC) + DC,HiWord(AddAbility.wDC) + DC2);
AddAbility.wMC:=MakeLong(LoWord(AddAbility.wMC) + MC,HiWord(AddAbility.wMC) + MC2);
AddAbility.wSC:=MakeLong(LoWord(AddAbility.wSC) + SC,HiWord(AddAbility.wSC) + SC2);
end;
{ TItemUnit }
constructor TItemUnit.Create;
begin
m_ItemNameList:=TGList.Create;
end;
destructor TItemUnit.Destroy;
var
I: Integer;
begin
for I := 0 to m_ItemNameList.Count - 1 do begin
Dispose(pTItemName(m_ItemNameList.Items[I]));
end;
m_ItemNameList.Free;
inherited;
end;
function GetItemName(UserItem:pTUserItem):String;
begin
//取自定义物品名称
Result := '';
if UserItem.btValue[13] = 1 then
Result := ItemUnit.GetCustomItemName(UserItem.MakeIndex,UserItem.wIndex);
if Result = '' then
Result := UserEngine.GetStdItemName(UserItem.wIndex);
end;
function TItemUnit.GetCustomItemName(nMakeIndex,
nItemIndex: Integer): String;
var
I: Integer;
ItemName:pTItemName;
begin
Result:='';
m_ItemNameList.Lock;
try
for I := 0 to m_ItemNameList.Count - 1 do begin
ItemName:=m_ItemNameList.Items[I];
if (ItemName.nMakeIndex = nMakeIndex) and (ItemName.nItemIndex = nItemIndex) then begin
Result:=ItemName.sItemName;
break;
end;
end;
finally
m_ItemNameList.UnLock;
end;
end;
function TItemUnit.AddCustomItemName(nMakeIndex, nItemIndex: Integer;
sItemName: String): Boolean;
var
I: Integer;
ItemName:pTItemName;
begin
Result:=False;
m_ItemNameList.Lock;
try
for I := 0 to m_ItemNameList.Count - 1 do begin
ItemName:=m_ItemNameList.Items[I];
if (ItemName.nMakeIndex = nMakeIndex) and (ItemName.nItemIndex = nItemIndex) then begin
exit;
end;
end;
New(ItemName);
ItemName.nMakeIndex:=nMakeIndex;
ItemName.nItemIndex:=nItemIndex;
ItemName.sItemName:=sItemName;
m_ItemNameList.Add(ItemName);
Result:=True;
finally
m_ItemNameList.UnLock;
end;
end;
function TItemUnit.DelCustomItemName(nMakeIndex, nItemIndex: Integer): Boolean;
var
I: Integer;
ItemName:pTItemName;
begin
Result:=False;
m_ItemNameList.Lock;
try
for I := 0 to m_ItemNameList.Count - 1 do begin
ItemName:=m_ItemNameList.Items[I];
if (ItemName.nMakeIndex = nMakeIndex) and (ItemName.nItemIndex = nItemIndex) then begin
Dispose(ItemName);
m_ItemNameList.Delete(I);
Result:=True;
exit;
end;
end;
finally
m_ItemNameList.UnLock;
end;
end;
function TItemUnit.LoadCustomItemName: Boolean;
var
I:integer;
LoadList:TStringList;
sFileName:String;
sLineText:String;
sMakeIndex:String;
sItemIndex:String;
nMakeIndex:Integer;
nItemIndex:Integer;
sItemName:String;
ItemName:pTItemName;
begin
Result:=False;
sFileName:=g_Config.sEnvirDir + 'ItemNameList.txt';
LoadList:=TStringList.Create;
if FileExists(sFileName) then begin
m_ItemNameList.Lock;
try
m_ItemNameList.Clear;
LoadList.LoadFromFile(sFileName);
for I := 0 to LoadList.Count - 1 do begin
sLineText:=Trim(LoadList.Strings[I]);
sLineText:=GetValidStr3(sLineText, sMakeIndex, [' ',#9]);
sLineText:=GetValidStr3(sLineText, sItemIndex, [' ',#9]);
sLineText:=GetValidStr3(sLineText, sItemName, [' ',#9]);
nMakeIndex:=Str_ToInt(sMakeIndex,-1);
nItemIndex:=Str_ToInt(sItemIndex,-1);
if (nMakeIndex >= 0) and (nItemIndex >= 0) then begin
New(ItemName);
ItemName.nMakeIndex:=nMakeIndex;
ItemName.nItemIndex:=nItemIndex;
ItemName.sItemName:=sItemName;
m_ItemNameList.Add(ItemName);
end;
end;
Result:=True;
finally
m_ItemNameList.UnLock;
end;
end else begin
LoadList.SaveToFile(sFileName);
end;
LoadList.Free;
end;
function TItemUnit.SaveCustomItemName: Boolean;
var
I:integer;
SaveList:TStringList;
sFileName:String;
ItemName:pTItemName;
begin
sFileName:=g_Config.sEnvirDir + 'ItemNameList.txt';
SaveList:=TStringList.Create;
m_ItemNameList.Lock;
try
for I := 0 to m_ItemNameList.Count - 1 do begin
ItemName:=m_ItemNameList.Items[I];
SaveList.Add(IntToStr(ItemName.nMakeIndex) + #9 + IntToStr(ItemName.nItemIndex) + #9 + ItemName.sItemName);
end;
finally
m_ItemNameList.UnLock;
end;
SaveList.SaveToFile(sFileName);
SaveList.Free;
Result:=True;
end;
procedure TItemUnit.Lock;
begin
m_ItemNameList.Lock;
end;
procedure TItemUnit.UnLock;
begin
m_ItemNameList.UnLock;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -