Ayrıntılı Koxp Yapımı Ders 12
Ayrıntılı Koxp Yapımı Ders 12
Oto Priest.. Party dekilerin HP,MP,ID,JOB Bulma
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"
Kod:
-------------------------------------------------------
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;
publicInt32 OffsetPartyHP = 0x1c8;
publicInt32 OffsetPartyHP1 = 0x35c;
publicInt32 OffsetPartyHP2 = 0x0;
publicInt32 OffsetPartyHP3 = 0x14;
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);
String partyHPuye1 = 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..
ßUGÜN 16788 ziyaretçi (37338 klik) KİŞİ ßURADAYDI!!