TheMariaPuder 39 #1 Oluşturuldu: Aralık 19, 2017 Merhabalar 1298 pvp servarda İvntory Pointi Lazım Elinde olan yardımcı olabilirmi Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
Nero 867 Admin #2 Aralık 19, 2017 tarihinde gönderildi Public Sub InventoryOku() Dim tmpBase As Long, tmpLng1 As Long, tmpLng2 As Long, tmpLng3 As Long, tmpLng4 As Long Dim lngItemID As Long, lngItemID_Ext As Long, lngItemNameLen As Long, AdrItemName As Long Dim ItemNameB() As Byte Dim ItemName As String Dim i As Integer tmpBase = ReadLong(KO_PTR_DLG) 'read KO_DLGBMA adress tmpLng1 = ReadLong(tmpBase + &H1A0) 'first pointer For i = 26 To 53 'read 0 to 41 inventory slots (0=earring, 1=helmet, 2=earring, 3=necklace, 4=pauldron ....14=first inventory slot) tmpLng2 = ReadLong(tmpLng1 + (&H134 + (4 * i))) 'inventory slot tmpLng3 = ReadLong(tmpLng2 + &H38) 'item id adress tmpLng4 = ReadLong(tmpLng2 + &H3C) 'item id_ext adress lngItemID = ReadLong(tmpLng3) 'item id value lngItemID_Ext = ReadLong(tmpLng4) 'item id_ext value lngItemID = lngItemID + lngItemID_Ext 'real item id lngItemNameLen = ReadLong(tmpLng3 + &H10) 'n° characters in item name AdrItemName = ReadLong(tmpLng3 + &HC) 'item name adress ItemName = "" 'reset ItemName variable If lngItemNameLen > 0 Then ReadByteArray AdrItemName, ItemNameB, lngItemNameLen 'get item name (byte array) ItemName = StrConv(ItemNameB, vbUnicode) 'convert it to string End If If Form2.List1.ListCount = "28" Then Else Form2.List1.AddItem Form2.List1.ListCount + 1 & "-) " & ItemName Form1.List1.AddItem Form1.List1.ListCount + 1 & "-) " & lngItemID End If Next End Sub Function InventoryItemBase(slot As Integer) As Long Dim a As Long, b As Long, c As Long a = ReadLong(KO_PTR_DLG) b = ReadLong(a + &H1A0) c = ReadLong(b + (&H174 + (4 * slot))) InventoryItemBase = c End Function Function InventoryItemBase(slot As Integer) As Long Dim a As Long, b As Long, c As Long a = ReadLong(KO_PTR_DLG) b = ReadLong(a + &H1A0) c = ReadLong(b + (&H174 + (4 * slot))) InventoryItemBase = c End Function Public Function InventoryItemID(slot As Integer) As Long InventoryItemID = ReadLong(ReadLong(InventoryItemBase(slot) + &H38)) End Function Public Function InvItemCount(slot As Long) As Long 'InvItemCount = ReadLong(ReadLong(ReadLong(ReadLong(ReadLong(KO_PTR_DLG) + &H1A0) + (&H1B0 + (4 * Slot))) + &H40)) InvItemCount = ReadLong(ReadLong(ReadLong(ReadLong(KO_PTR_DLG) + &H1A0) + (&H1B0 + (4 * slot))) + &H40) End Function Public Function InvItemStage(slot As Long) As Long InvItemStage = ReadLong(ReadLong(ReadLong(ReadLong(ReadLong(KO_PTR_DLG) + &H1A0) + (&H1B0 + (4 * slot))) + &H3C)) End Function Public Sub GetInventory() Dim tmpBase As Long, tmpLng1 As Long, tmpLng2 As Long, tmpLng3 As Long, tmpLng4 As Long Dim lngItemID As Long, lngItemID_Ext As Long, lngItemNameLen As Long, AdrItemName As Long Dim ItemNameB() As Byte Dim ItemName As String Dim i As Integer Dim InvItemCount(54) As Long Dim InvItemID(54) As Long Dim InvItemName(54) As Long tmpBase = ReadLong(KO_PTR_DLG) 'read KO_DLGBMA adress tmpLng1 = ReadLong(tmpBase + &H1A0) 'first pointer For i = 26 To 53 'read 0 to 41 inventory slots (0=earring, 1=helmet, 2=earring, 3=necklace, 4=pauldron ....14=first inventory slot) tmpLng2 = ReadLong(tmpLng1 + (&H144 + (4 * i))) 'inventory slot tmpLng3 = ReadLong(tmpLng2 + &H38) 'item id adress tmpLng4 = ReadLong(tmpLng2 + &H3C) 'item id_ext adress InvItemCount(i) = ReadLong(tmpLng2 + &H40) lngItemID = ReadLong(tmpLng3) 'item id value lngItemID_Ext = ReadLong(tmpLng4) 'item id_ext value lngItemID = lngItemID + lngItemID_Ext 'real item id lngItemNameLen = ReadLong(tmpLng3 + &H10) 'n° characters in item name AdrItemName = ReadLong(tmpLng3 + &HC) 'item name adress ItemName = "" 'reset ItemName variable If lngItemNameLen > 0 Then ReadByteArray AdrItemName, ItemNameB, lngItemNameLen 'get item name (byte array) ItemName = StrConv(ItemNameB, vbUnicode) 'convert it to string End If InvItemID(i) = lngItemID InvItemName(i) = ItemName 'If Form2.List1.ListCount = "28" Then 'Exit Sub 'Else 'Form1.List1.AddItem InvItemName(i) 'End If Next End Sub Public Function InvItemID(slot As Long) As Long InvItemID = ReadLong(ReadLong(ReadLong(ReadLong(ReadLong(KO_PTR_DLG) + &H1A0) + (&H178 + (4 * slot))) + &H38)) + ReadLong(ReadLong(ReadLong(ReadLong(ReadLong(KO_PTR_DLG) + &H1A0) + (&H178 + (4 * slot))) + &H3C)) End Function bende birinin eskiden arşivinden yolladığı sourcelerdeki bunlar var sadece 1298 uyumludur inşallah çünkü 1298 koxp kodları içinden çıkma bunlar 😄 Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
TheMariaPuder 39 #3 Konu Sahibi Aralık 20, 2017 tarihinde gönderildi Alıntı Public Sub InventoryOku() Dim tmpBase As Long, tmpLng1 As Long, tmpLng2 As Long, tmpLng3 As Long, tmpLng4 As Long Dim lngItemID As Long, lngItemID_Ext As Long, lngItemNameLen As Long, AdrItemName As Long Dim ItemNameB() As Byte Dim ItemName As String Dim i As Integer tmpBase = ReadLong(KO_PTR_DLG) 'read KO_DLGBMA adress tmpLng1 = ReadLong(tmpBase + &H1A0) 'first pointer For i = 26 To 53 'read 0 to 41 inventory slots (0=earring, 1=helmet, 2=earring, 3=necklace, 4=pauldron ....14=first inventory slot) tmpLng2 = ReadLong(tmpLng1 + (&H134 + (4 * i))) 'inventory slot tmpLng3 = ReadLong(tmpLng2 + &H38) 'item id adress tmpLng4 = ReadLong(tmpLng2 + &H3C) 'item id_ext adress lngItemID = ReadLong(tmpLng3) 'item id value lngItemID_Ext = ReadLong(tmpLng4) 'item id_ext value lngItemID = lngItemID + lngItemID_Ext 'real item id lngItemNameLen = ReadLong(tmpLng3 + &H10) 'n° characters in item name AdrItemName = ReadLong(tmpLng3 + &HC) 'item name adress ItemName = "" 'reset ItemName variable If lngItemNameLen > 0 Then ReadByteArray AdrItemName, ItemNameB, lngItemNameLen 'get item name (byte array) ItemName = StrConv(ItemNameB, vbUnicode) 'convert it to string End If If Form2.List1.ListCount = "28" Then Else Form2.List1.AddItem Form2.List1.ListCount + 1 & "-) " & ItemName Form1.List1.AddItem Form1.List1.ListCount + 1 & "-) " & lngItemID End If Next End Sub Function InventoryItemBase(slot As Integer) As Long Dim a As Long, b As Long, c As Long a = ReadLong(KO_PTR_DLG) b = ReadLong(a + &H1A0) c = ReadLong(b + (&H174 + (4 * slot))) InventoryItemBase = c End Function Function InventoryItemBase(slot As Integer) As Long Dim a As Long, b As Long, c As Long a = ReadLong(KO_PTR_DLG) b = ReadLong(a + &H1A0) c = ReadLong(b + (&H174 + (4 * slot))) InventoryItemBase = c End Function Public Function InventoryItemID(slot As Integer) As Long InventoryItemID = ReadLong(ReadLong(InventoryItemBase(slot) + &H38)) End Function Public Function InvItemCount(slot As Long) As Long 'InvItemCount = ReadLong(ReadLong(ReadLong(ReadLong(ReadLong(KO_PTR_DLG) + &H1A0) + (&H1B0 + (4 * Slot))) + &H40)) InvItemCount = ReadLong(ReadLong(ReadLong(ReadLong(KO_PTR_DLG) + &H1A0) + (&H1B0 + (4 * slot))) + &H40) End Function Public Function InvItemStage(slot As Long) As Long InvItemStage = ReadLong(ReadLong(ReadLong(ReadLong(ReadLong(KO_PTR_DLG) + &H1A0) + (&H1B0 + (4 * slot))) + &H3C)) End Function Public Sub GetInventory() Dim tmpBase As Long, tmpLng1 As Long, tmpLng2 As Long, tmpLng3 As Long, tmpLng4 As Long Dim lngItemID As Long, lngItemID_Ext As Long, lngItemNameLen As Long, AdrItemName As Long Dim ItemNameB() As Byte Dim ItemName As String Dim i As Integer Dim InvItemCount(54) As Long Dim InvItemID(54) As Long Dim InvItemName(54) As Long tmpBase = ReadLong(KO_PTR_DLG) 'read KO_DLGBMA adress tmpLng1 = ReadLong(tmpBase + &H1A0) 'first pointer For i = 26 To 53 'read 0 to 41 inventory slots (0=earring, 1=helmet, 2=earring, 3=necklace, 4=pauldron ....14=first inventory slot) tmpLng2 = ReadLong(tmpLng1 + (&H144 + (4 * i))) 'inventory slot tmpLng3 = ReadLong(tmpLng2 + &H38) 'item id adress tmpLng4 = ReadLong(tmpLng2 + &H3C) 'item id_ext adress InvItemCount(i) = ReadLong(tmpLng2 + &H40) lngItemID = ReadLong(tmpLng3) 'item id value lngItemID_Ext = ReadLong(tmpLng4) 'item id_ext value lngItemID = lngItemID + lngItemID_Ext 'real item id lngItemNameLen = ReadLong(tmpLng3 + &H10) 'n° characters in item name AdrItemName = ReadLong(tmpLng3 + &HC) 'item name adress ItemName = "" 'reset ItemName variable If lngItemNameLen > 0 Then ReadByteArray AdrItemName, ItemNameB, lngItemNameLen 'get item name (byte array) ItemName = StrConv(ItemNameB, vbUnicode) 'convert it to string End If InvItemID(i) = lngItemID InvItemName(i) = ItemName 'If Form2.List1.ListCount = "28" Then 'Exit Sub 'Else 'Form1.List1.AddItem InvItemName(i) 'End If Next End Sub Public Function InvItemID(slot As Long) As Long InvItemID = ReadLong(ReadLong(ReadLong(ReadLong(ReadLong(KO_PTR_DLG) + &H1A0) + (&H178 + (4 * slot))) + &H38)) + ReadLong(ReadLong(ReadLong(ReadLong(ReadLong(KO_PTR_DLG) + &H1A0) + (&H178 + (4 * slot))) + &H3C)) End Function bende birinin eskiden arşivinden yolladığı sourcelerdeki bunlar var sadece 1298 uyumludur inşallah çünkü 1298 koxp kodları içinden çıkma bunlar 😄 Cok tesekkur ederim inceleyebilecegim bir src varsa cok sevinirim blackmanin projesindekinler eski oldudugundan dolayi pek birsey yapamadımda Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş