UO-Dev Arama

 




Paylaş

İçerde : 1 misafir, 0 üye : --- Sayfalar: 1
Yazar

Drolyn


UO-Dev Üyesi
Skill Title: Apprentice
Online durumu
Toplam Mesaj: 76
Oyun Tarzı: Pp
Emulatör: 0.56b
Tecrübe: Diğer
Yaş: 28
Karma:   2   Level 1
Messenger: Msn iletişim
Mesaj #55347   18-01-2012 16:17 GMT    
        
Merhabalar,

her ne kadar bunun için uoloader dosyası olsada. aslında çok basit bi işlemdir, bunun için küçük bi döküman yazma gereği duydum. uoloader 64 bit sistemlerde sorun verebilir.

ultima clientlerinin kasmasının tek sebebi client çalıştığında peekmessage apisini çalışması ve bu apinin çalıştığı sürece windows mesajlarını kontrol etmesinden kaynaklanır. tabi binlerce message geldiginden api'nin onları işlemesi cpu'nun canına okur.

yapılması gereken tek şey peekmessage apisine hook atıp araya sleep eklemektedir...

örnek - delphi
Kod:
peekmessage apisinin user32.dll deki tam karşılığı = function PeekMessage(var lpMsg: TMsg; hWnd: HWND;
  wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
********************************************************************************************************
apiye hook atmak için nette bi ton döküman bulabilirsiniz. ben size kısa örnek vericek gerisi sizin becerinize kalmış..

hook atılacak api oncelikle (değişken) olarak tanımlanır...

************
var
peekmessagehook : function (var lpMsg: TMsg; hWnd: HWND;
  wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
************

sonra peek message client tarafından çağrıldıgında işlenecek kod bloğu yazılır...

**************
function PeekMessageproc(var lpMsg: TMsg; hWnd: HWND;
  wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
begin
sleep(5); //sleep 5 yada 10 değeri yeterlidir. fazlası clienti dondurur !!!
result:=peekmessagehook(lpmsg,hwnd,wMsgFilterMin,wMsgFilterMax,wRemoveMsg); //burada ise clientteki peekmessage'nin işlemesine devam et dedik. bunu demesek client hata verecektir.
**************

geriye kaldı apimizi hooklamaya nette bi ton kod vardır ben sadece kullanımı aktarıcam...

*******************
apihook('user32.dll','PeekMessageA',@peekmessagehook,@peekmessageproc);
*******************

PeekMessageA - peekmessage apisi peekmessagea diye geçmektedir user32.dll de ve peekmessagew apiside vardır buda unicode karakterlerde kullanılır.


cpu reduce işlemi kısaca bu kadardır...

not: api hook ileri düzey bi işlemdir. yapacagınız yanlış işlemde sisteme ciddi zarar verebilirsiniz...

Döküman yazarı by ErCaN...


 TheRaskol, Afronola, Nydrian*
Yazar

TheRaskol


Root Administrator
Skill Title: Master
Online durumu
Toplam Mesaj: 2455
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 24
Karma:   10   Level 2
Messenger: Msn iletişim
Mesaj #55448   19-01-2012 16:43 GMT    
        
Ercan tarafından yapılmış güzel bir paylaşım.
Herkes kullanır diye tahmin ediyorum.


Yazar

Drolyn


UO-Dev Üyesi
Skill Title: Apprentice
Online durumu
Toplam Mesaj: 76
Oyun Tarzı: Pp
Emulatör: 0.56b
Tecrübe: Diğer
Yaş: 28
Karma:   2   Level 1
Messenger: Msn iletişim
Mesaj #55451   19-01-2012 16:58 GMT    
        
yazılım geliştirenler için küçük ama önemli bir bilgi. belirttiğim gibi ileri düzey bir işlemdir ve yapacakları en küçük hata direk sistemi kararsızlığa sokabilir.


Yazar

Lousen


UO-Dev Üyesi
Skill Title: Apprentice
Online durumu
Toplam Mesaj: 93
Oyun Tarzı: Pvp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 19
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #55495   19-01-2012 23:22 GMT    
        
normal cliente mi uygulancak connectöre mi?



Yazar

Drolyn


UO-Dev Üyesi
Skill Title: Apprentice
Online durumu
Toplam Mesaj: 76
Oyun Tarzı: Pp
Emulatör: 0.56b
Tecrübe: Diğer
Yaş: 28
Karma:   2   Level 1
Messenger: Msn iletişim
Mesaj #55497   19-01-2012 23:26 GMT    
        
normal client'e !


 Lousen
Yazar

berk97


Yasaklı
Skill Title: Novice
Online durumu
Toplam Mesaj: 12
Oyun Tarzı: Pvp
Emulatör: 0.56b
Tecrübe: World Builder
Yaş: 15
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #55547   20-01-2012 22:25 GMT    
        
denedim olmuyor :S



Yazar

Drolyn


UO-Dev Üyesi
Skill Title: Apprentice
Online durumu
Toplam Mesaj: 76
Oyun Tarzı: Pp
Emulatör: 0.56b
Tecrübe: Diğer
Yaş: 28
Karma:   2   Level 1
Messenger: Msn iletişim
Mesaj #55555   20-01-2012 23:08 GMT    
        
hook işlemleri dll olarak yapılır. önce bi dll hazırlıyacaksın dll içine hook kodları gireceksin sonra clienti çalıştırırken dll'ini inject ederek açacaksın ki çalışsın


Sayfalar: 1



Benzer Konular

KonularMesajlarSon gönderenTarih
UO clientlerinde login.cfg kullanmamak...3Drolyn09-12-2011


Keywords:

ultima online, RunUO, ultima online download, sphere scripting, role play, uo grafik, second age ultima, uo loop, macroman, pvp server, server kurulumu, sphere, multool, ml mulls, 56b 55r 55i, htmlgumps, client 4x, client edit, sphere release, osi, rp server, sunucular, ghost mouse, inside uo, kingdom reborn, stygian abyss, uo nasıl oynanır, mondain's legacy, age of shadows, world build, grandmaster, ultima online pvp, player dosyaları, ultima online indir, frp game, RunUO 1.0.0, razor, uo rice, hue editör, skill tools, ultima online patch, axis, world build, verdata, verdata patcher, map editör, gump editör, mul patcher, aos mulls, scriptler, anim edit, anim publish, hues mul, hosting vps, event dialog, account sistemi, skill gain, static yapımı,