Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...
BurakGozet

[SORU] ASM ile oyun içerisinde işlev gerçekleştirmek.

Önerilen Mesajlar

Merhaba arkadaşlar,
Oyunda Town butonuna basınca town attırmak istiyorum bunun için yapmam gerekenleri şu şekilde kendimce listeledim

1-town butonun click eventini oluşturmak sanırım UIF editörden bu botuna bir id atamam gerekli
2-click eventi içerisinde servera paket göndermek örnek WIZ_TOWN diye bir opcode yaptığımı var sayalım tıklandığında WIZ_TOWN paketi göderecek

3-serverda paketi yakalayıp START_POSITION tablosuna göre bulunduğu zonenin town kordinatlarını çekip karakter ölü değilse gibi v.s kontrolleri yapıp WARP() fonksiyonunu çalıştırıp towna ışınlayacağım

işleyiş kafamda bu şekilde takıldığım kısım burada asm kısmı ben nasıl ollydbgda bu butonun hangi bölümde hangi adreste olduğunu bulabilirim ? nasıl bir arama yolu izlemem gerekiyor bu butonun tıklandığını nasıl bir break point ile yakalarım ollydbgda paket gönderen fonksiyonun hangi address de olduğunu nasıl bulabilirim ?

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
Merhaba arkadaşlar,
Oyunda Town butonuna basınca town attırmak istiyorum bunun için yapmam gerekenleri şu şekilde kendimce listeledim

1-town butonun click eventini oluşturmak sanırım UIF editörden bu botuna bir id atamam gerekli
2-click eventi içerisinde servera paket göndermek örnek WIZ_TOWN diye bir opcode yaptığımı var sayalım tıklandığında WIZ_TOWN paketi göderecek

3-serverda paketi yakalayıp START_POSITION tablosuna göre bulunduğu zonenin town kordinatlarını çekip karakter ölü değilse gibi v.s kontrolleri yapıp WARP() fonksiyonunu çalıştırıp towna ışınlayacağım

işleyiş kafamda bu şekilde takıldığım kısım burada asm kısmı ben nasıl ollydbgda bu butonun hangi bölümde hangi adreste olduğunu bulabilirim ? nasıl bir arama yolu izlemem gerekiyor bu butonun tıklandığını nasıl bir break point ile yakalarım ollydbgda paket gönderen fonksiyonun hangi address de olduğunu nasıl bulabilirim ?


İşi bu kadar karmaşıklaştırmak yerine, var olan ui_cmd mesaj döngüsüne eklediğin butonun idsini karşılayacak bir kod bloğu yazabilirsin. Bu bloktan da oyunun var olan town fonksiyonunu çağırabilirsin.

İletiyi paylaş


Link to post
Sitelerde Paylaş

Bir uif içerisinde herhangi bir işlem yaptığında(Click, Mouse down, mouse up vs)

ReceiveMessage(CN3UIBase * pSender, uint32_t dwMsg)

bu fonksiyon tarafından işlem görür pSender dediği bu işlem kim tarafından geldiği hangi uif nesnesi, şimdi bu fonksiyon içinde bir if vardır örnek:

if(pSender == btn_TownButton)
{
// town packeti send.
}


bun asm koduna çevirip fonksiyonun içine eklemen gerekiyor town attırma yeri için oyun içinde town fonksiyonu var onu call townsendedenfunctionadress şeklindede ekleyebilirsin bu sayede uif içinde yeni eklenen bir nesneye aktiflik vermiş olursun. Yapmak istediğinin aynısı burada yapılmış zaten bu mantık ile gidip yapabilirsin. Bu konuda exp_seal buttonuna mesela aktiflik verip uif nesnesini açtırdım. Aynısını uif nesnesini açtırmak yerine town atma fonksiyonunu çağırtarak yapabilirsin.

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
İşi bu kadar karmaşıklaştırmak yerine, var olan ui_cmd mesaj döngüsüne eklediğin butonun idsini karşılayacak bir kod bloğu yazabilirsin. Bu bloktan da oyunun var olan town fonksiyonunu çağırabilirsin.


Aslında bunu sorma sebebim asm ve ollydbg'ı birazdaha anlamak çok zaman harcıyorum yavaş öğreniyorum yeterli kaynakları bulamıyorum teşekkür ederim cevabın için mustafa çok saol
-- mesaja ek olarak --
Alıntı
Bir uif içerisinde herhangi bir işlem yaptığında(Click, Mouse down, mouse up vs)
ReceiveMessage(CN3UIBase * pSender, uint32_t dwMsg)

bu fonksiyon tarafından işlem görür pSender dediği bu işlem kim tarafından geldiği hangi uif nesnesi, şimdi bu fonksiyon içinde bir if vardır örnek:

if(pSender == btn_TownButton)
{
// town packeti send.
}


bun asm koduna çevirip fonksiyonun içine eklemen gerekiyor town attırma yeri için oyun içinde town fonksiyonu var onu call townsendedenfunctionadress şeklindede ekleyebilirsin bu sayede uif içinde yeni eklenen bir nesneye aktiflik vermiş olursun. Yapmak istediğinin aynısı burada yapılmış zaten bu mantık ile gidip yapabilirsin. Bu konuda exp_seal buttonuna mesela aktiflik verip uif nesnesini açtırdım. Aynısını uif nesnesini açtırmak yerine town atma fonksiyonunu çağırtarak yapabilirsin.


mantık oturtmamda çok yardımcı oldu çok saol faruk paylaştığın konudaki asm kodunuda inceledim ne öğrensem kardır mustafaya verdiğim cevaptaki gibi asıl amacım asm yi ve ollydbgı birazdaha kavramak kaynak edinmeye çalışıyorum yorumun için saol

İletiyi paylaş


Link to post
Sitelerde Paylaş

×
×
  • Yeni Oluştur...