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

📄 itmunit.pas

📁 翎风世界..传奇服务端..DELPHI源代码 包括DBServer,LogDataServer,LoginGate,LoginSrv,M2Server等..内容齐全.
💻 PAS
📖 第 1 页 / 共 3 页
字号:
          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 + -