www.kingkoxp.forummum.com Yeni sitemiz

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!!
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol