Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...
KO Developers Platformuna Hoşgeldin!
TheMariaPuder

[Yardım] 1298 Pvp servarda İnv Pointi

Önerilen Mesajlar

Admin
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 😄

 

İletiyi paylaş


Link to post
Sitelerde Paylaş
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

İletiyi paylaş


Link to post
Sitelerde Paylaş

×
×
  • Yeni Oluştur...