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

📄 itmunit.pas

📁 原版翎风(LF)引擎(M2)源码(Delphi)
💻 PAS
📖 第 1 页 / 共 3 页
字号:
              Inc(AddAbility.wMP, AC2);
              Inc(AddAbility.btUnLuck, MAC);
              Inc(AddAbility.btLuck, MAC2);
            end;
          20, 24:
            begin //004C0FF0
              Inc(AddAbility.wHitPoint, AC2);
              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 + -