Oto priest çoğu kişinin uğraştığı bişeydi koxp yapımından anlıyosanız yapabilceğiniz genel bi konu olcak bu o yüzden kod paylaşmıyorum... vb de tam nasıl odlgunu bilmiyorum kodların ben c# kullanıyorum bildiğiniz üzere.. Neyse baslayalım..
Biliyosunuz bişey okutmak için mesela kendi hpniizi okudurken ptrchar + ofsethp yapıyosunuz partydekilerinde bunun mantıgıyla hemen hemen aynı ofset sayısı biraz daha fazla sadece
1805 için party pointerı :
Kod:
PtrParty = 0xC061c0
Party sayısını alalım :
Kod:
HP = ((((0xC061c0+ 0x1c8) +0x35c) + 0x0) + 0x360)
Örneğin partydeki 1. kişinin Bilgilerini alalım :
Kod:
HP = ((((0xC061c0+ 0x1c8) +0x35c) + 0x0) + 0x14)
MaxHP = ((((0xC061c0+ 0x1c8) +0x35c) + 0x0) + 0x18)
MP = ((((0xC061c0+ 0x1c8) +0x35c) + 0x0) + 0x1c)
MaxMP = ((((0xC061c0+ 0x1c8) +0x35c) + 0x0) + 0x20)
ID = ((((0xC061c0+ 0x1c8) +0x35c) + 0x0) + 0x8)
Gördüğünüz gibi değişen sadece son ofsetler.. bu sadece 1. party üyesi için geçerlidir. 2. partyüyesi için tek fark 0x0 ofsetini iki kere toplamak 3. party üyesinde 3 kere 4. party üyesinde 4 kere toplatmak. yani;
4. party üyesi için hp :
Kod:
HP = (((((((0xC061c0+ 0x1c8) +0x35c) + 0x0) + 0x0) + 0x0) + 0x0) + 0x14)
Priest skill kodları ise :
Kod:
"3101" + SkillID + "00" + CharID + PartyUyesiID + "0000000000000000000000000F00"
"3101" + SkillID + "00" + CharID + PartyUyesiID + "0000000000000000000048A0"
-------------------------------------------------------
1. party üyesi için C# Örnek...
//1. party kalan hp
publicint AdresPartyHP;
publicIntPtr AdresPartyHP1;
publicint AdresPartyHP2;
publicIntPtr AdresPartyHP3;
publicint AdresPartyHP4;
publicIntPtr AdresPartyHP5;
publicint AdresPartyHP6;
publicIntPtr AdresPartyHP7;
[size=9]publicInt32 OffsetPartyHP = 0x1c8;
publicInt32 OffsetPartyHP1 = 0x35c;
publicInt32 OffsetPartyHP2 = 0x0;
publicInt32 OffsetPartyHP3 = 0x14;
[/size]
AdresPartyHP = BitConverter.ToInt32(ReadMemory(GameProcessHandle, newIntPtr(PartyHPValue)), 0);
AdresPartyHP1 = newIntPtr(AdresPartyHP + OffsetPartyHP);
AdresPartyHP2 = BitConverter.ToInt32(ReadMemory(GameProcessHandle, AdresPartyHP1), 0);
AdresPartyHP3 = newIntPtr(AdresPartyHP2 + OffsetPartyHP1);
AdresPartyHP4 = BitConverter.ToInt32(ReadMemory(GameProcessHandle, AdresPartyHP3), 0);
AdresPartyHP5 = newIntPtr(AdresPartyHP4 + OffsetPartyHP2);
AdresPartyHP6 = BitConverter.ToInt32(ReadMemory(GameProcessHandle, AdresPartyHP5), 0);
AdresPartyHP7 = newIntPtr(AdresPartyHP6 + OffsetPartyHP3);
[size=9][size=9]String partyHPuye1 = [/size]BitConverter.ToInt32(ReadMemory(GameProcessHandle, AdresPartyHP7), 0);
-------------------------------------------------------------------------------
1. party üyesi için VB kodu
Dim pPtr, pPtr1, pPtr2, pPtr3, party As Long
pPtr = ReadLong("&HC061C0")
pPtr1 = ReadLong(pPtr + &H1c8)
pPtr2 = ReadLong(pPtr1 + &H35c)
pPtr3 = ReadLong(pPtr2 + &H0)
party = ReadLong(pPtr3 + &H14)
son oalrakta party i bir labela yazdırın denenmiştir calısıyor
------------------------------------------------------------------
PT_COUNT = 0x360;
PT_ID = 0x8;
PT_LVL = 0xC;
PT_RACE = 0x10;
PT_HP = 0x14;
PT_MAXHP = 0x18;
PT_MP = 0x1C;
PT_MAXMP = 0x20;
PT_NAME = 0x30
örnek kodlarımızdaki 0x14 (&H14) bize 1. üyenin hpsini vermişti onun yerine 0x8 (&H8) yazarsanız id sini elde edersiniz... yukardaki dğeişen ofsetler verilmiştir...
[/size]
Biliyosunuz bişey okutmak için mesela kendi hpniizi okudurken ptrchar + ofsethp yapıyosunuz partydekilerinde bunun mantıgıyla hemen hemen aynı ofset sayısı biraz daha fazla sadece
1805 için party pointerı :
Kod:
PtrParty = 0xC061c0
Party sayısını alalım :
Kod:
HP = ((((0xC061c0+ 0x1c8) +0x35c) + 0x0) + 0x360)
Örneğin partydeki 1. kişinin Bilgilerini alalım :
Kod:
HP = ((((0xC061c0+ 0x1c8) +0x35c) + 0x0) + 0x14)
MaxHP = ((((0xC061c0+ 0x1c8) +0x35c) + 0x0) + 0x18)
MP = ((((0xC061c0+ 0x1c8) +0x35c) + 0x0) + 0x1c)
MaxMP = ((((0xC061c0+ 0x1c8) +0x35c) + 0x0) + 0x20)
ID = ((((0xC061c0+ 0x1c8) +0x35c) + 0x0) + 0x8)
Gördüğünüz gibi değişen sadece son ofsetler.. bu sadece 1. party üyesi için geçerlidir. 2. partyüyesi için tek fark 0x0 ofsetini iki kere toplamak 3. party üyesinde 3 kere 4. party üyesinde 4 kere toplatmak. yani;
4. party üyesi için hp :
Kod:
HP = (((((((0xC061c0+ 0x1c8) +0x35c) + 0x0) + 0x0) + 0x0) + 0x0) + 0x14)
Priest skill kodları ise :
Kod:
"3101" + SkillID + "00" + CharID + PartyUyesiID + "0000000000000000000000000F00"
"3101" + SkillID + "00" + CharID + PartyUyesiID + "0000000000000000000048A0"
-------------------------------------------------------
1. party üyesi için C# Örnek...
//1. party kalan hp
publicint AdresPartyHP;
publicIntPtr AdresPartyHP1;
publicint AdresPartyHP2;
publicIntPtr AdresPartyHP3;
publicint AdresPartyHP4;
publicIntPtr AdresPartyHP5;
publicint AdresPartyHP6;
publicIntPtr AdresPartyHP7;
[size=9]publicInt32 OffsetPartyHP = 0x1c8;
publicInt32 OffsetPartyHP1 = 0x35c;
publicInt32 OffsetPartyHP2 = 0x0;
publicInt32 OffsetPartyHP3 = 0x14;
[/size]
AdresPartyHP = BitConverter.ToInt32(ReadMemory(GameProcessHandle, newIntPtr(PartyHPValue)), 0);
AdresPartyHP1 = newIntPtr(AdresPartyHP + OffsetPartyHP);
AdresPartyHP2 = BitConverter.ToInt32(ReadMemory(GameProcessHandle, AdresPartyHP1), 0);
AdresPartyHP3 = newIntPtr(AdresPartyHP2 + OffsetPartyHP1);
AdresPartyHP4 = BitConverter.ToInt32(ReadMemory(GameProcessHandle, AdresPartyHP3), 0);
AdresPartyHP5 = newIntPtr(AdresPartyHP4 + OffsetPartyHP2);
AdresPartyHP6 = BitConverter.ToInt32(ReadMemory(GameProcessHandle, AdresPartyHP5), 0);
AdresPartyHP7 = newIntPtr(AdresPartyHP6 + OffsetPartyHP3);
[size=9][size=9]String partyHPuye1 = [/size]BitConverter.ToInt32(ReadMemory(GameProcessHandle, AdresPartyHP7), 0);
-------------------------------------------------------------------------------
1. party üyesi için VB kodu
Dim pPtr, pPtr1, pPtr2, pPtr3, party As Long
pPtr = ReadLong("&HC061C0")
pPtr1 = ReadLong(pPtr + &H1c8)
pPtr2 = ReadLong(pPtr1 + &H35c)
pPtr3 = ReadLong(pPtr2 + &H0)
party = ReadLong(pPtr3 + &H14)
son oalrakta party i bir labela yazdırın denenmiştir calısıyor
------------------------------------------------------------------
PT_COUNT = 0x360;
PT_ID = 0x8;
PT_LVL = 0xC;
PT_RACE = 0x10;
PT_HP = 0x14;
PT_MAXHP = 0x18;
PT_MP = 0x1C;
PT_MAXMP = 0x20;
PT_NAME = 0x30
örnek kodlarımızdaki 0x14 (&H14) bize 1. üyenin hpsini vermişti onun yerine 0x8 (&H8) yazarsanız id sini elde edersiniz... yukardaki dğeişen ofsetler verilmiştir...
[/size]