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

📄 viewrcd.pas

📁 传奇服务端代码 DBServerSQL.rar 通讯部分
💻 PAS
📖 第 1 页 / 共 4 页
字号:
0049A697   BA09000000             mov     edx, $00000009
0049A69C   8B45F8                 mov     eax, [ebp-$08]

* Reference to: grids.TStringGrid.SetCells(TStringGrid;Integer;Integer;AnsiString);
|
0049A69F   E8D0CBFFFF             call    00497274
0049A6A4   6A00                   push    $00
0049A6A6   B90B000000             mov     ecx, $0000000B
0049A6AB   BA0A000000             mov     edx, $0000000A
0049A6B0   8B45F8                 mov     eax, [ebp-$08]

* Reference to: grids.TStringGrid.SetCells(TStringGrid;Integer;Integer;AnsiString);
|
0049A6B3   E8BCCBFFFF             call    00497274
0049A6B8   6A00                   push    $00
0049A6BA   B90B000000             mov     ecx, $0000000B
0049A6BF   BA0B000000             mov     edx, $0000000B
0049A6C4   8B45F8                 mov     eax, [ebp-$08]

* Reference to: grids.TStringGrid.SetCells(TStringGrid;Integer;Integer;AnsiString);
|
0049A6C7   E8A8CBFFFF             call    00497274
0049A6CC   6A00                   push    $00
0049A6CE   B90D000000             mov     ecx, $0000000D
0049A6D3   33D2                   xor     edx, edx
0049A6D5   8B45F8                 mov     eax, [ebp-$08]

* Reference to: grids.TStringGrid.SetCells(TStringGrid;Integer;Integer;AnsiString);
|
0049A6D8   E897CBFFFF             call    00497274
0049A6DD   6A00                   push    $00
0049A6DF   B90D000000             mov     ecx, $0000000D
0049A6E4   BA01000000             mov     edx, $00000001
0049A6E9   8B45F8                 mov     eax, [ebp-$08]

* Reference to: grids.TStringGrid.SetCells(TStringGrid;Integer;Integer;AnsiString);
|
0049A6EC   E883CBFFFF             call    00497274
0049A6F1   6A00                   push    $00
0049A6F3   B90D000000             mov     ecx, $0000000D
0049A6F8   BA02000000             mov     edx, $00000002
0049A6FD   8B45F8                 mov     eax, [ebp-$08]

* Reference to: grids.TStringGrid.SetCells(TStringGrid;Integer;Integer;AnsiString);
|
0049A700   E86FCBFFFF             call    00497274
0049A705   6A00                   push    $00
0049A707   B90D000000             mov     ecx, $0000000D
0049A70C   BA03000000             mov     edx, $00000003
0049A711   8B45F8                 mov     eax, [ebp-$08]

* Reference to: grids.TStringGrid.SetCells(TStringGrid;Integer;Integer;AnsiString);
|
0049A714   E85BCBFFFF             call    00497274
0049A719   6A00                   push    $00
0049A71B   B90D000000             mov     ecx, $0000000D
0049A720   BA04000000             mov     edx, $00000004
0049A725   8B45F8                 mov     eax, [ebp-$08]

* Reference to: grids.TStringGrid.SetCells(TStringGrid;Integer;Integer;AnsiString);
|
0049A728   E847CBFFFF             call    00497274
0049A72D   68D8A94900             push    $0049A9D8
0049A732   B90D000000             mov     ecx, $0000000D
0049A737   BA05000000             mov     edx, $00000005
0049A73C   8B45F8                 mov     eax, [ebp-$08]

* Reference to: grids.TStringGrid.SetCells(TStringGrid;Integer;Integer;AnsiString);
|
0049A73F   E830CBFFFF             call    00497274
0049A744   68D8A94900             push    $0049A9D8
0049A749   B90D000000             mov     ecx, $0000000D
0049A74E   BA06000000             mov     edx, $00000006
0049A753   8B45F8                 mov     eax, [ebp-$08]

* Reference to: grids.TStringGrid.SetCells(TStringGrid;Integer;Integer;AnsiString);
|
0049A756   E819CBFFFF             call    00497274
0049A75B   68D8A94900             push    $0049A9D8
0049A760   B90D000000             mov     ecx, $0000000D
0049A765   BA07000000             mov     edx, $00000007
0049A76A   8B45F8                 mov     eax, [ebp-$08]

* Reference to: grids.TStringGrid.SetCells(TStringGrid;Integer;Integer;AnsiString);
|
0049A76D   E802CBFFFF             call    00497274
0049A772   68D8A94900             push    $0049A9D8
0049A777   B90D000000             mov     ecx, $0000000D
0049A77C   BA08000000             mov     edx, $00000008
0049A781   8B45F8                 mov     eax, [ebp-$08]

* Reference to: grids.TStringGrid.SetCells(TStringGrid;Integer;Integer;AnsiString);
|
0049A784   E8EBCAFFFF             call    00497274
0049A789   68D8A94900             push    $0049A9D8
0049A78E   B90D000000             mov     ecx, $0000000D
0049A793   BA09000000             mov     edx, $00000009
0049A798   8B45F8                 mov     eax, [ebp-$08]

* Reference to: grids.TStringGrid.SetCells(TStringGrid;Integer;Integer;AnsiString);
|
0049A79B   E8D4CAFFFF             call    00497274
0049A7A0   68D8A94900             push    $0049A9D8
0049A7A5   B90D000000             mov     ecx, $0000000D
0049A7AA   BA0A000000             mov     edx, $0000000A
0049A7AF   8B45F8                 mov     eax, [ebp-$08]

* Reference to: grids.TStringGrid.SetCells(TStringGrid;Integer;Integer;AnsiString);
|
0049A7B2   E8BDCAFFFF             call    00497274
0049A7B7   68D8A94900             push    $0049A9D8
0049A7BC   B90D000000             mov     ecx, $0000000D
0049A7C1   BA0B000000             mov     edx, $0000000B
0049A7C6   8B45F8                 mov     eax, [ebp-$08]

* Reference to: grids.TStringGrid.SetCells(TStringGrid;Integer;Integer;AnsiString);
|
0049A7C9   E8A6CAFFFF             call    00497274
0049A7CE   59                     pop     ecx
0049A7CF   59                     pop     ecx
0049A7D0   5D                     pop     ebp
0049A7D1   C3                     ret

*)
end;

procedure TFrmFDBViewer.sub_49A9DC();
begin
  BagItemGrid.Cells[0, 0] := 'Index';
  BagItemGrid.Cells[1, 0] := 'MakeID';
  BagItemGrid.Cells[2, 0] := 'StdIndex';
  BagItemGrid.Cells[3, 0] := 'Dura';
end;

procedure TFrmFDBViewer.sub_49AA84();
begin
  SaveItemGrid.Cells[0, 0] := 'MakeID';
  SaveItemGrid.Cells[1, 0] := 'StdIndex';
  SaveItemGrid.Cells[2, 0] := 'Dura';
end;

procedure TFrmFDBViewer.sub_49AB10();
begin
  UseMagicGrid.Cells[0, 0] := 'MagIdx';
  UseMagicGrid.Cells[1, 0] := 'Level';
  UseMagicGrid.Cells[2, 0] := 'Key';
  UseMagicGrid.Cells[3, 0] := 'TranPoint';
end;

procedure TFrmFDBViewer.ShowBagItem(nIndex: integer; sName: string; Item: TUserItem);
begin
  if Item.wIndex > 0 then begin
    BagItemGrid.Cells[0, nIndex] := sName;
    BagItemGrid.Cells[1, nIndex] := IntToStr(Item.MakeIndex);
    BagItemGrid.Cells[2, nIndex] := IntToStr(Item.wIndex);
    BagItemGrid.Cells[3, nIndex] := IntToStr(Item.Dura) + '/' + IntToStr(Item.DuraMax);
  end else begin
    BagItemGrid.Cells[0, nIndex] := sName;
    BagItemGrid.Cells[1, nIndex] := '';
    BagItemGrid.Cells[2, nIndex] := '';
    BagItemGrid.Cells[3, nIndex] := '';
  end;

end;

procedure TFrmFDBViewer.ShowHumanInfo();
//0x049AB9C
var
  HumData: pTHumData;
begin
  HumData := @ChrRecord.Data;
  HumanGrid.Cells[0, 2] := IntToStr(n2F8);
  HumanGrid.Cells[1, 2] := HumData.sChrName;
  HumanGrid.Cells[2, 2] := HumData.sCurMap;
  HumanGrid.Cells[3, 2] := IntToStr(HumData.wCurX);
  HumanGrid.Cells[4, 2] := IntToStr(HumData.wCurY);
  HumanGrid.Cells[5, 2] := IntToStr(HumData.btDir);
  HumanGrid.Cells[6, 2] := IntToStr(HumData.btJob);
  HumanGrid.Cells[7, 2] := IntToStr(HumData.btSex);
  HumanGrid.Cells[8, 2] := IntToStr(HumData.btHair);
  HumanGrid.Cells[9, 2] := IntToStr(HumData.nGold);
  HumanGrid.Cells[10, 2] := HumData.sDearName;
  HumanGrid.Cells[11, 2] := HumData.sHomeMap;

  HumanGrid.Cells[0, 4]  := IntToStr(HumData.wHomeX);
  HumanGrid.Cells[1, 4]  := IntToStr(HumData.wHomeY);
  HumanGrid.Cells[2, 4]  := IntToStr(HumData.Abil.Level);
  HumanGrid.Cells[3, 4]  := IntToStr(HumData.Abil.AC);
  HumanGrid.Cells[4, 4]  := IntToStr(HumData.Abil.MAC);
  //  HumanGrid.Cells[5,4]:=IntToStr(HumData.Abil.bt49);
  HumanGrid.Cells[6, 4]  := IntToStr(LoByte(HumData.Abil.DC));
  HumanGrid.Cells[7, 4]  := IntToStr(HiByte(HumData.Abil.DC));
  HumanGrid.Cells[8, 4]  := IntToStr(LoByte(HumData.Abil.MC));
  HumanGrid.Cells[9, 4]  := IntToStr(HiByte(HumData.Abil.MC));
  HumanGrid.Cells[10, 4] := IntToStr(LoByte(HumData.Abil.SC));
  HumanGrid.Cells[11, 4] := IntToStr(HiByte(HumData.Abil.SC));

  //  HumanGrid.Cells[0,6]:=IntToStr(HumData.Abil.bt48);
  HumanGrid.Cells[1, 6]  := IntToStr(HumData.Abil.HP);
  HumanGrid.Cells[2, 6]  := IntToStr(HumData.Abil.HP);
  HumanGrid.Cells[3, 6]  := IntToStr(HumData.Abil.MaxMP);
  HumanGrid.Cells[4, 6]  := IntToStr(HumData.Abil.MaxMP);
  //  HumanGrid.Cells[5,6]:=IntToStr(HumData.Abil.bt48);
  HumanGrid.Cells[6, 6]  := IntToStr(HumData.Abil.Exp);
  HumanGrid.Cells[7, 6]  := IntToStr(HumData.Abil.MaxExp);
  HumanGrid.Cells[8, 6]  := IntToStr(HumData.nPKPoint);
  HumanGrid.Cells[9, 6]  := '';
  HumanGrid.Cells[10, 6] := HumData.sAccount;
  HumanGrid.Cells[11, 6] := DateTimeToStr(ChrRecord.Header.CreateDate);

  HumanGrid.Cells[0, 8] := HumData.sDearName;
  HumanGrid.Cells[1, 8] := HumData.sMasterName;
  HumanGrid.Cells[2, 8] := HumData.sStoragePwd;
  HumanGrid.Cells[3, 8] := IntToStr(HumData.btCreditPoint);

end;
//0049B295
procedure TFrmFDBViewer.ShowBagItems();
var
  i, ii: integer;
begin
  for i := 1 to BagItemGrid.RowCount - 1 do begin
    for ii := 0 to BagItemGrid.ColCount - 1 do begin
      BagItemGrid.Cells[ii, i] := '';
    end;
  end;
  ShowBagItem(1, 'Dress', ChrRecord.Data.HumItems[0]);
  ShowBagItem(2, 'Weapon', ChrRecord.Data.HumItems[1]);
  ShowBagItem(3, 'RHand', ChrRecord.Data.HumItems[2]);
  ShowBagItem(4, 'Necklace', ChrRecord.Data.HumItems[3]);
  ShowBagItem(5, 'Helmet', ChrRecord.Data.HumItems[4]);
  ShowBagItem(6, 'LBrace', ChrRecord.Data.HumItems[5]);
  ShowBagItem(7, 'RBrace', ChrRecord.Data.HumItems[6]);
  ShowBagItem(8, 'LRing', ChrRecord.Data.HumItems[7]);
  ShowBagItem(9, 'RRing', ChrRecord.Data.HumItems[8]);
  ShowBagItem(10, 'Bujuk', ChrRecord.Data.HumItems[9]);
  ShowBagItem(11, 'Belt', ChrRecord.Data.HumItems[10]);
  ShowBagItem(12, 'Boots', ChrRecord.Data.HumItems[11]);
  ShowBagItem(13, 'Charm', ChrRecord.Data.HumItems[12]);
  for i := Low(ChrRecord.Data.BagItems) to High(ChrRecord.Data.BagItems) do begin
    ShowBagItem(i + 13, IntToStr(i + 1), ChrRecord.Data.BagItems[i]);
  end;
end;

procedure TFrmFDBViewer.ShowUseMagic();
//0x0049B4D8
var
  i, ii: integer;
begin
  for i := 1 to UseMagicGrid.RowCount - 1 do begin
    for ii := 0 to UseMagicGrid.ColCount - 1 do begin
      UseMagicGrid.Cells[ii, i] := '';
    end;
  end;
  for I := Low(ChrRecord.Data.Magic) to High(ChrRecord.Data.Magic) do begin
    if ChrRecord.Data.Magic[i].wMagIdx <= 0 then break;
    UseMagicGrid.Cells[0, i + 1] := IntToStr(ChrRecord.Data.Magic[i].wMagIdx);
    UseMagicGrid.Cells[1, i + 1] := IntToStr(ChrRecord.Data.Magic[i].btLevel);
    UseMagicGrid.Cells[2, i + 1] := Chr(ChrRecord.Data.Magic[i].btKey);
    UseMagicGrid.Cells[3, i + 1] := IntToStr(ChrRecord.Data.Magic[i].nTranPoint);
  end;
end;

procedure TFrmFDBViewer.ShowSaveItem();
//0x0049B628
var
  i, ii: integer;
begin
  for i := 1 to SaveItemGrid.RowCount - 1 do begin
    for ii := 0 to SaveItemGrid.ColCount - 1 do begin
      SaveItemGrid.Cells[ii, i] := '';
    end;
  end;
  for I := Low(ChrRecord.Data.StorageItems) to High(ChrRecord.Data.StorageItems) do
  begin
    if ChrRecord.Data.StorageItems[i].wIndex <= 0 then Continue;
    SaveItemGrid.Cells[0, i + 1] := IntToStr(ChrRecord.Data.StorageItems[i].MakeIndex);
    SaveItemGrid.Cells[1, i + 1] := IntToStr(ChrRecord.Data.StorageItems[i].wIndex);
    SaveItemGrid.Cells[2, i + 1] :=
      IntToStr(ChrRecord.Data.StorageItems[i].Dura) + '/' +
      IntToStr(ChrRecord.Data.StorageItems[i].DuraMax);
  end;
end;

procedure TFrmFDBViewer._PROC_0049B9E4(Sender: TObject);
begin
(*
0049B9E4   000400                 add     [eax+eax], al
0049B9E7   00558B                 add     [ebp-$75], dl
0049B9EA   EC                     in      al, dx
0049B9EB   83C4F4                 add     esp, -$0C
0049B9EE   8955F4                 mov     [ebp-$0C], edx
0049B9F1   8945F8                 mov     [ebp-$08], eax
0049B9F4   8B4508                 mov     eax, [ebp+$08]
0049B9F7   8B40FC                 mov     eax, [eax-$04]

* Reference to control TFrmFDBViewer.BagItemGrid : TStringGrid
|
0049B9FA   8B80D8020000           mov     eax, [eax+$02D8]
0049BA00   8945FC                 mov     [ebp-$04], eax
0049BA03   8BE5                   mov     esp, ebp
0049BA05   5D                     pop     ebp
0049BA06   C3                     ret

*)
end;

procedure TFrmFDBViewer._PROC_0049BB54(Sender: TObject);
begin
(*
0049BB54   55                     push    ebp
0049BB55   8BEC                   mov     ebp, esp
0049BB57   33C0                   xor     eax, eax
0049BB59   55                     push    ebp

* Possible String Reference to: '闁z

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -