亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? objhero.pas

?? FIR引擎最新源碼+注冊(cè)
?? PAS
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
end;

function THeroObject.FindTogetherMagic: pTUserMagic;
begin
  Result := FindMagic(GetTogetherUseSpell);
end;

function THeroObject.GetTogetherUseSpell: Integer;
begin
  Result := 0;
  if m_Master = nil then Exit;
  case m_Master.m_btJob of
    0: begin
        case m_btJob of
          0: Result := 60;
          1: Result := 62;
          2: Result := 61;
        end;
      end;
    1: begin
        case m_btJob of
          0: Result := 62;
          1: Result := 65;
          2: Result := 64;
        end;
      end;
    2: begin
        case m_btJob of
          0: Result := 61;
          1: Result := 64;
          2: Result := 63;
        end;
      end;
  end;
end;

procedure THeroObject.ClientQueryBagItems();
var
  I: Integer;
  Item: pTStdItem;
  sSENDMSG: string;
  ClientItem: TClientItem;
  StdItem: TStdItem;
  UserItem: pTUserItem;
  sUserItemName: string;
begin
  sSENDMSG := '';
  for I := 0 to m_ItemList.Count - 1 do begin
    UserItem := m_ItemList.Items[I];
    Item := UserEngine.GetStdItem(UserItem.wIndex);
    if Item <> nil then begin
      StdItem := Item^;
      ItemUnit.GetItemAddValue(UserItem, StdItem);
      Move(StdItem, ClientItem.s, SizeOf(TStdItem));
      //取自定義物品名稱
      sUserItemName := '';
      if UserItem.btValue[13] = 1 then
        sUserItemName := ItemUnit.GetCustomItemName(UserItem.MakeIndex, UserItem.wIndex);
      if sUserItemName <> '' then
        ClientItem.s.Name := sUserItemName;
      ClientItem.Dura := UserItem.Dura;
      ClientItem.DuraMax := UserItem.DuraMax;
      ClientItem.MakeIndex := UserItem.MakeIndex;
      if StdItem.StdMode = 50 then begin
        ClientItem.s.Name := ClientItem.s.Name + ' #' + IntToStr(UserItem.Dura);
      end;
      sSENDMSG := sSENDMSG + EncodeBuffer(@ClientItem, SizeOf(TClientItem)) + '/';
    end;
  end;
  if sSENDMSG <> '' then begin
    m_DefMsg := MakeDefaultMsg(SM_HEROBAGITEMS, Integer(m_Master), 0, 0, m_ItemList.Count);
    SendSocket(@m_DefMsg, sSENDMSG);
  end;
end;

procedure THeroObject.GetBagItemCount;
var
  I: Integer;
  nOldBagCount: Integer;
begin
  nOldBagCount := m_nItemBagCount;
  for I := High(g_Config.nHeroBagItemCount) downto Low(g_Config.nHeroBagItemCount) do begin
    if m_Abil.Level >= g_Config.nHeroBagItemCount[I] then begin
      case I of
        0: m_nItemBagCount := 20;
        1: m_nItemBagCount := 30;
        2: m_nItemBagCount := 35;
        3: m_nItemBagCount := 40;
      end;
      Break;
    end;
  end;
  if nOldBagCount <> m_nItemBagCount then begin
    SendMsg(m_Master, RM_QUERYHEROBAGCOUNT, 0, m_nItemBagCount, 0, 0, '');
  end;
end;

function THeroObject.AddItemToBag(UserItem: pTUserItem): Boolean;
begin
  Result := False;
  if m_Master = nil then Exit;
  if m_ItemList.Count < m_nItemBagCount then begin
    m_ItemList.Add(UserItem);
    WeightChanged();
    Result := True;
  end;
end;

procedure THeroObject.SendUseMagic();
var
  I: Integer;
  sSENDMSG: string;
  UserMagic: pTUserMagic;
  ClientMagic: TClientMagic;
begin
  sSENDMSG := '';
  for I := 0 to m_MagicList.Count - 1 do begin
    UserMagic := m_MagicList.Items[I];
    if UserMagic <> nil then begin
      ClientMagic.Key := Chr(UserMagic.btKey);
      ClientMagic.Level := UserMagic.btLevel;
      ClientMagic.CurTrain := UserMagic.nTranPoint;
      ClientMagic.Def := UserMagic.MagicInfo^;
      sSENDMSG := sSENDMSG + EncodeBuffer(@ClientMagic, SizeOf(TClientMagic)) + '/';
    end;
  end;
  if sSENDMSG <> '' then begin
    m_DefMsg := MakeDefaultMsg(SM_HEROSENDMYMAGIC, 0, 0, 0, m_MagicList.Count);
    SendSocket(@m_DefMsg, sSENDMSG);
  end;
end;

procedure THeroObject.SendUseitems();
var
  I: Integer;
  Item: pTStdItem;
  sSENDMSG: string;
  ClientItem: TClientItem;
  StdItem: TStdItem;
  sUserItemName: string;
begin
  sSENDMSG := '';
  for I := Low(THumanUseItems) to High(THumanUseItems) do begin
    if m_UseItems[I].wIndex > 0 then begin
      //sItemNewName:=GetItemName(m_UseItems[i].MakeIndex);
      Item := UserEngine.GetStdItem(m_UseItems[I].wIndex);
      if Item <> nil then begin
        StdItem := Item^;
        ItemUnit.GetItemAddValue(@m_UseItems[I], StdItem);
        Move(StdItem, ClientItem.s, SizeOf(TStdItem));
        //取自定義物品名稱
        sUserItemName := '';
        if m_UseItems[I].btValue[13] = 1 then
          sUserItemName := ItemUnit.GetCustomItemName(m_UseItems[I].MakeIndex, m_UseItems[I].wIndex);
        if sUserItemName <> '' then
          ClientItem.s.Name := sUserItemName;
        ClientItem.Dura := m_UseItems[I].Dura;
        ClientItem.DuraMax := m_UseItems[I].DuraMax;
        ClientItem.MakeIndex := m_UseItems[I].MakeIndex;
        sSENDMSG := sSENDMSG + IntToStr(I) + '/' + EncodeBuffer(@ClientItem, SizeOf(TClientItem)) + '/';
      end;
    end;
  end;
  if sSENDMSG <> '' then begin
    m_DefMsg := MakeDefaultMsg(SM_SENDHEROUSEITEMS, 0, 0, 0, 0);
    SendSocket(@m_DefMsg, sSENDMSG);
  end;
end;

procedure THeroObject.SendChangeItems(nWhere1, nWhere2: Integer; UserItem1, UserItem2: pTUserItem);
var
  StdItem1: pTStdItem;
  StdItem2: pTStdItem;
  StdItem80: TStdItem;
  ClientItem: TClientItem;
  sUserItemName: string;
  sSendText: string;
begin
  sSendText := '';
  if UserItem1 <> nil then begin
    StdItem1 := UserEngine.GetStdItem(UserItem1.wIndex);
    if StdItem1 <> nil then begin
      StdItem80 := StdItem1^;
      ItemUnit.GetItemAddValue(@UserItem1, StdItem80);
      Move(StdItem80, ClientItem.s, SizeOf(TStdItem));
      //取自定義物品名稱
      sUserItemName := '';
      if UserItem1.btValue[13] = 1 then
        sUserItemName := ItemUnit.GetCustomItemName(UserItem1.MakeIndex, UserItem1.wIndex);
      if sUserItemName <> '' then
        ClientItem.s.Name := sUserItemName;
      ClientItem.MakeIndex := UserItem1.MakeIndex;
      ClientItem.Dura := UserItem1.Dura;
      ClientItem.DuraMax := UserItem1.DuraMax;
      if StdItem1.StdMode = 50 then begin
        ClientItem.s.Name := ClientItem.s.Name + ' #' + IntToStr(UserItem1.Dura);
      end;
      sSendText := '0/' + IntToStr(nWhere1) + '/' + EncodeBuffer(@ClientItem, SizeOf(TClientItem)) + '/';
    end;
  end;

  if UserItem2 <> nil then begin
    StdItem2 := UserEngine.GetStdItem(UserItem2.wIndex);
    if StdItem2 <> nil then begin
      StdItem2 := UserEngine.GetStdItem(UserItem2.wIndex);
      StdItem80 := StdItem2^;
      ItemUnit.GetItemAddValue(@UserItem2, StdItem80);
      Move(StdItem80, ClientItem.s, SizeOf(TStdItem));
      //取自定義物品名稱
      sUserItemName := '';
      if UserItem2.btValue[13] = 1 then
        sUserItemName := ItemUnit.GetCustomItemName(UserItem2.MakeIndex, UserItem2.wIndex);
      if sUserItemName <> '' then
        ClientItem.s.Name := sUserItemName;
      ClientItem.MakeIndex := UserItem2.MakeIndex;
      ClientItem.Dura := UserItem2.Dura;
      ClientItem.DuraMax := UserItem2.DuraMax;
      if StdItem2.StdMode = 50 then begin
        ClientItem.s.Name := ClientItem.s.Name + ' #' + IntToStr(UserItem2.Dura);
      end;
      if sSendText = '' then begin
        sSendText := '1/' + IntToStr(nWhere2) + '/' + EncodeBuffer(@ClientItem, SizeOf(TClientItem)) + '/';
      end else begin
        sSendText := sSendText + '1/' + IntToStr(nWhere2) + '/' + EncodeBuffer(@ClientItem, SizeOf(TClientItem)) + '/';
      end;
    end;
  end;
  if sSendText <> '' then begin
    m_DefMsg := MakeDefaultMsg(SM_HEROCHANGEITEM, Integer(m_Master), 0, 0, 0);
    SendSocket(@m_DefMsg, sSendText);
  end;
end;

procedure THeroObject.SendDelItemList(ItemList: TStringList);
var
  I: Integer;
  s10: string;
begin
  s10 := '';
  for I := 0 to ItemList.Count - 1 do begin
    s10 := s10 + ItemList.Strings[I] + '/' + IntToStr(Integer(ItemList.Objects[I])) + '/';
  end;
  m_DefMsg := MakeDefaultMsg(SM_HERODELITEMS, 0, 0, 0, ItemList.Count);
  SendSocket(@m_DefMsg, EncodeString(s10));
end;

procedure THeroObject.SendDelItems(UserItem: pTUserItem);
var
  StdItem: pTStdItem;
  StdItem80: TStdItem;
  ClientItem: TClientItem;
  sUserItemName: string;
begin
  StdItem := UserEngine.GetStdItem(UserItem.wIndex);
  if StdItem <> nil then begin
    StdItem80 := StdItem^;
    ItemUnit.GetItemAddValue(@UserItem, StdItem80);
    Move(StdItem80, ClientItem.s, SizeOf(TStdItem));
    //取自定義物品名稱
    sUserItemName := '';
    if UserItem.btValue[13] = 1 then
      sUserItemName := ItemUnit.GetCustomItemName(UserItem.MakeIndex, UserItem.wIndex);
    if sUserItemName <> '' then
      ClientItem.s.Name := sUserItemName;
    ClientItem.MakeIndex := UserItem.MakeIndex;
    ClientItem.Dura := UserItem.Dura;
    ClientItem.DuraMax := UserItem.DuraMax;
    if StdItem.StdMode = 50 then begin
      ClientItem.s.Name := ClientItem.s.Name + ' #' + IntToStr(UserItem.Dura);
    end;
    m_DefMsg := MakeDefaultMsg(SM_HERODELITEM, Integer(m_Master), 0, 0, 1);
    SendSocket(@m_DefMsg, EncodeBuffer(@ClientItem, SizeOf(TClientItem)));
  end;
end;

procedure THeroObject.SendAddItem(UserItem: pTUserItem);
var
  pStdItem: pTStdItem;
  StdItem: TStdItem;
  ClientItem: TClientItem;
  sUserItemName: string;
begin
  pStdItem := UserEngine.GetStdItem(UserItem.wIndex);
  if pStdItem = nil then Exit;
  StdItem := pStdItem^;
  ItemUnit.GetItemAddValue(UserItem, StdItem);
  Move(StdItem, ClientItem.s, SizeOf(TStdItem));
  //取自定義物品名稱
  sUserItemName := '';
  if UserItem.btValue[13] = 1 then
    sUserItemName := ItemUnit.GetCustomItemName(UserItem.MakeIndex, UserItem.wIndex);
  if sUserItemName <> '' then
    ClientItem.s.Name := sUserItemName;
  ClientItem.MakeIndex := UserItem.MakeIndex;
  ClientItem.Dura := UserItem.Dura;
  ClientItem.DuraMax := UserItem.DuraMax;
  if StdItem.StdMode = 50 then begin
    ClientItem.s.Name := ClientItem.s.Name + ' #' + IntToStr(UserItem.Dura);
  end;
  if StdItem.StdMode in [15, 19, 20, 21, 22, 23, 24, 26] then begin
    if UserItem.btValue[8] = 0 then ClientItem.s.Shape := 0
    else ClientItem.s.Shape := 130;
  end;
  m_DefMsg := MakeDefaultMsg(SM_HEROADDITEM, Integer(m_Master), 0, 0, 1);
  SendSocket(@m_DefMsg, EncodeBuffer(@ClientItem, SizeOf(TClientItem)));
end;

procedure THeroObject.SendUpdateItem(UserItem: pTUserItem);
var
  StdItem: pTStdItem;
  StdItem80: TStdItem;
  ClientItem: TClientItem;
  OClientItem: TOClientItem;
  sUserItemName: string;
begin
  StdItem := UserEngine.GetStdItem(UserItem.wIndex);
  if StdItem <> nil then begin
    StdItem80 := StdItem^;
    ItemUnit.GetItemAddValue(UserItem, StdItem80);
    ClientItem.s := StdItem80;
    //取自定義物品名稱
    sUserItemName := '';
    if UserItem.btValue[13] = 1 then
      sUserItemName := ItemUnit.GetCustomItemName(UserItem.MakeIndex, UserItem.wIndex);
    if sUserItemName <> '' then
      ClientItem.s.Name := sUserItemName;

    ClientItem.MakeIndex := UserItem.MakeIndex;
    ClientItem.Dura := UserItem.Dura;
    ClientItem.DuraMax := UserItem.DuraMax;
    if StdItem.StdMode = 50 then begin
      ClientItem.s.Name := ClientItem.s.Name + ' #' + IntToStr(UserItem.Dura);
    end;
    m_DefMsg := MakeDefaultMsg(SM_HEROUPDATEITEM, Integer(Self), 0, 0, 1);
    SendSocket(@m_DefMsg, EncodeBuffer(@ClientItem, SizeOf(TClientItem)));
  end;
end;

function THeroObject.GetShowName(): string;
begin
  Result := m_sCharName;
end;

procedure THeroObject.ItemDamageRevivalRing();
var
  I: Integer;
  pSItem: pTStdItem;
  nDura, tDura: Integer;
  HeroObject: THeroObject;
begin
  for I := Low(THumanUseItems) to High(THumanUseItems) do begin
    if m_UseItems[I].wIndex > 0 then begin
      pSItem := UserEngine.GetStdItem(m_UseItems[I].wIndex);
      if pSItem <> nil then begin
//        if (i = U_RINGR) or (i = U_RINGL) then begin
        if (pSItem.Shape in [114, 160, 161, 162]) or (((I = U_WEAPON) or (I = U_RIGHTHAND)) and (pSItem.AniCount in [114, 160, 161, 162])) then begin
          nDura := m_UseItems[I].Dura;
          tDura := Round(nDura / 1000 {1.03});

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合九色综合欧美就去吻| 日韩免费视频一区二区| 日日摸夜夜添夜夜添精品视频| 久久网站热最新地址| 自拍偷拍国产精品| 欧美一区二区三区小说| 94-欧美-setu| 国产一区二区三区美女| 婷婷久久综合九色综合伊人色| 国产嫩草影院久久久久| 欧美精选午夜久久久乱码6080| 成人18视频日本| 久草精品在线观看| 丝袜美腿亚洲综合| 亚洲欧美激情小说另类| 久久久久国产一区二区三区四区 | 麻豆精品国产91久久久久久| 国产精品福利一区| 亚洲精品在线免费观看视频| 欧美片网站yy| 欧美日韩另类国产亚洲欧美一级| 国产成人精品免费视频网站| 免费成人深夜小野草| 亚洲一区二区三区四区五区黄| 欧美激情一区二区| 久久久久一区二区三区四区| 91精品国产综合久久婷婷香蕉| 欧美性生交片4| www.综合网.com| 成人午夜大片免费观看| 国产一区二区看久久| 日本一道高清亚洲日美韩| 五月婷婷欧美视频| 一级精品视频在线观看宜春院| 国产精品伦理一区二区| 国产午夜亚洲精品羞羞网站| 日韩欧美国产成人一区二区| 欧美精品电影在线播放| 91精品欧美一区二区三区综合在 | 国产精品久久久久一区二区三区 | 欧美国产欧美亚州国产日韩mv天天看完整| 日韩视频一区二区三区在线播放 | 国产很黄免费观看久久| 国内精品久久久久影院色 | 色综合天天性综合| av中文字幕不卡| av不卡一区二区三区| 99精品久久久久久| 色狠狠av一区二区三区| 91官网在线观看| 欧美日韩黄色一区二区| 欧美一区二区三区免费大片| 日韩欧美国产三级| 久久精品夜夜夜夜久久| 国产精品久久99| 依依成人精品视频| 无码av免费一区二区三区试看| 日韩av网站免费在线| 麻豆成人久久精品二区三区小说| 久久国产婷婷国产香蕉| 国产乱子伦视频一区二区三区| 国产a区久久久| 91视频国产资源| 欧美精品aⅴ在线视频| 欧美变态tickle挠乳网站| 久久久久久久久久电影| 亚洲欧洲国产日本综合| 亚洲激情在线播放| 蜜桃视频免费观看一区| 国产成人av资源| 在线观看一区二区精品视频| 91麻豆精品国产91久久久| 久久久久99精品一区| 亚洲另类在线一区| 日本不卡一二三| 风间由美一区二区av101| 色av成人天堂桃色av| 91精品国产综合久久久久久久久久| 精品剧情v国产在线观看在线| 久久久精品欧美丰满| 亚洲欧美乱综合| 久久精品国产亚洲a| 91丨九色丨蝌蚪富婆spa| 欧美一区二区在线播放| 国产精品热久久久久夜色精品三区| 亚洲第一在线综合网站| 国产精品一区二区你懂的| 欧美在线高清视频| 国产欧美一区二区三区在线老狼| 亚洲一区二区欧美| 岛国精品在线播放| 91精品国产麻豆国产自产在线 | 日本va欧美va精品发布| 北条麻妃国产九九精品视频| 日韩一级片在线观看| 亚洲精品自拍动漫在线| 国产一区在线不卡| 欧美撒尿777hd撒尿| 国产精品免费看片| 麻豆91精品91久久久的内涵| 日本精品视频一区二区三区| 亚洲精品一区二区三区福利 | 日本一区二区免费在线| 三级在线观看一区二区| 一道本成人在线| 中文字幕av不卡| 国内精品在线播放| 91精品国产色综合久久ai换脸 | 欧美三级韩国三级日本三斤| 中文成人av在线| 久久精品国产亚洲高清剧情介绍| 欧美性猛交xxxx乱大交退制版| 国产欧美精品日韩区二区麻豆天美| 日本成人超碰在线观看| 在线亚洲免费视频| 国产精品久久福利| 粉嫩av亚洲一区二区图片| 日韩精品中文字幕一区| 午夜电影久久久| 91成人免费在线| 亚洲另类中文字| 色综合久久久久综合| 国产精品黄色在线观看| 国产成人啪免费观看软件 | 亚洲尤物在线视频观看| 丁香婷婷综合五月| 久久精品亚洲麻豆av一区二区| 日韩 欧美一区二区三区| 欧美男人的天堂一二区| 一区二区不卡在线播放| 色综合天天综合在线视频| 亚洲人一二三区| 99久久伊人网影院| 国产精品超碰97尤物18| 成年人网站91| 亚洲私人影院在线观看| 99精品久久只有精品| 亚洲欧美日韩小说| 色综合中文字幕| 亚洲一区二三区| 欧美日本一道本| 美女视频网站黄色亚洲| 精品乱人伦一区二区三区| 国内精品国产三级国产a久久| 精品不卡在线视频| 国产精品18久久久久久久久| 国产精品三级视频| 91片在线免费观看| 亚洲一区二区不卡免费| 欧美日韩久久不卡| 欧美a一区二区| www精品美女久久久tv| 国产精品一二三| 亚洲欧洲www| 欧美色综合天天久久综合精品| 日本一区中文字幕| 久久九九国产精品| 91麻豆精品在线观看| 亚洲午夜av在线| 日韩欧美一级在线播放| 国产精品69毛片高清亚洲| 亚洲三级免费观看| 欧美丰满高潮xxxx喷水动漫| 国产精品综合在线视频| 中文字幕一区二区三区乱码在线| 欧洲精品一区二区| 美国十次了思思久久精品导航| 国产欧美日韩在线观看| 色狠狠一区二区| 老司机免费视频一区二区| 中文一区在线播放| 欧美专区日韩专区| 理论片日本一区| 国产精品久久久久国产精品日日| 欧美性色aⅴ视频一区日韩精品| 久久99热这里只有精品| 中文字幕中文乱码欧美一区二区| 欧美精品一卡二卡| 丰满少妇久久久久久久| 午夜久久电影网| 国产嫩草影院久久久久| 欧美日韩成人在线| 丰满岳乱妇一区二区三区| 午夜电影久久久| 国产精品国产三级国产普通话蜜臀 | 久久男人中文字幕资源站| 91热门视频在线观看| 蜜臂av日日欢夜夜爽一区| 国产精品夫妻自拍| 欧美成人性战久久| 日本韩国欧美一区二区三区| 国模娜娜一区二区三区| 尤物av一区二区| 国产拍揄自揄精品视频麻豆| 欧美日本不卡视频| 91美女在线观看| 国产大片一区二区| 天天av天天翘天天综合网| 18成人在线观看| 国产日韩欧美亚洲|