- Katılım
- 4 Ağu 2010
- Konular
- 356
- Mesajlar
- 4,122
- Çözüm
- 74
- Online süresi
- 3mo 14d
- Reaksiyon Skoru
- 2,235
- Altın Konu
- 82
- Başarım Puanı
- 292
- Yaş
- 32
- MmoLira
- 3,067
- DevLira
- 138
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
Anlatım Tamamen Bana Aittir.
Dün ki Konumuzda Client-Game İle Arasındaki İletişimden Bahsettik. Bugün ise Game-Client İletişiminden Bahsedeceğim.
Dün ki Konumuzda DungeonInfo Sisteminden Örnek Alarak Başladık ve Tekrar DungeonInfo İle Devam Edeceğiz. DungeonInfo Sistemimiz de Buton İle Soğuma Süresini Sıfırladık. Fakat Bu İşlem QuestFlag ile Gerçekleştiği İçin Soğuma Süresi Anlık Penceremizde Güncellenmiyordu. Işınlandığımızda Güncelleniyordu. Çünkü Karakter Tekrar Load Olduğu İçin affect.sql, quest.sql vs. Tekrar Load Ediyordu.
Dün ki Konumuzu Okuduysanız Şimdi ki Anlatacaklarımı da İyi Anlayacaksınız.
Öncelikle Paket.h'de Bir Adet Sabit Sayı Tanımlıyorum.
Ardından Bir Struct Yapısı Oluşturup İçine Elemanlarımı Veri Tipleri İle Birlikte Ekliyorum.
Burayı Hallettik.
Şimdi Dün Yaptığımız DungeonInfo.cpp Dosyamızdaki Fonksiyon İçindeki Nelerin Client Tarafına İletileceğini Yapalım.
TPacketGCSendResetTime Yapımızı packet adlı Bir Değişkenin Temsil Etmesini İstiyorum.
packet.bHeader Değişkenine HEADER_GC_DUNGEON_INFO_RESET_TIME Sabit Değeri Atıyorum.
packet.dungeonIdx Elamanımıza idx (Client'den Gelen Sayımız) Atıyorum.
packet.iFlagTime Elamanımıza iTime Değişkenin Değerini Atıyorum.
Özet:
bHeader Bizim Sabit Sayımız.
dungeonIdx Client'e Göndereceğimiz ve Client'deki Butonlardan Gelen Sayımızı Alacak Eleman.
iFlagTime Sıfırlama Süremiz. Yani Client'e 0 Olarak Göndereceğiz.
GameSource Bu Kadar Şimdi Client Source Tarafına Geçelim.
GameSource/Packet.h 'deki Olayı ClientSource/Packet.h 'de Anlatmayacağım Bir Fark Yok Copy-Paste
ClientSource/PythonNetworkStream.cpp
Burada Başlık ve Boyutları Belirliyoruz.
ClientSource/PythonNetworkStream.h
Burada Tanımlamayı Yapıyorum.
ClientSource/PythonNetworkStreamPhaseGame.cpp
Burada Aynı Mantık İnput_Main.cpp'deki Gibi Fakat Bu Sefer Game'den Gelen Paketimiz
Burada Kısa ve Özetle Anlatmam Gerekirse (Burada Herşey Döngü İçindedir): header Değişkenimiz Her Döngüde Paket Başlıklarımıza Karşılık Gelir. Bizim Paket Başlığımıza Karşılık Geldiğinde Bizi RecvDungeonInfoResetTime() Adlı Fonksiyona Gönderir ve Bu Fonksiyon Paketi Okur ve İlgili İşlemleri Yapar.
Gelelim Fonksiyona
TPacketGCSendResetTime Yapımızı packet adlı Bir Değişkenin Temsil Etmesini İstiyorum.
Ardından Bu Paket Yapısının Boyutu Kadar Veri Almasını ve Bu Verilerin Paket Değişkenine Yerleştirilmesini Yapıyorum.
Son Olarak;
PyCallClassMemberFunc ()
İşlemi İle Root Tarafında Kullanacaklarımı Yazıyorum. Game Tarafından Ne Getirdiysek Onların Root Tarafına Aktarılması İçin.
Client Source İşlemi Bitti Şimdi Root Tarafına Geçelim.
Root/Game.py
Client'den Gelen 2 Argümanlı İşlev İsmimizi Yazıyoruz.
Herşey Bu Kadar. Sizin Böyle Bir Sisteminizin Olmasına Gerek Yok veya constInfo.dungeonDurations[] Ne İşe Yaradığını Anlatmayacağım Burada Size Client-Game ve Game-Client İlişkisinin Nasıl Çalıştığından Bahsetmek İstedim.
Dün Sadece Client'den Game Tarafına Gönderdiğimizde Pencerede Anlık Yenilenmiyordu Sadece Işınlandığımızda Yenileniyordu. Şimdi Game-Client Tarafını Yaptık.
O Nedenle Artık Anlık Güncelleniyor.
KANIT:
Dün ki Konumuzda Client-Game İle Arasındaki İletişimden Bahsettik. Bugün ise Game-Client İletişiminden Bahsedeceğim.
Dün ki Konumuzda DungeonInfo Sisteminden Örnek Alarak Başladık ve Tekrar DungeonInfo İle Devam Edeceğiz. DungeonInfo Sistemimiz de Buton İle Soğuma Süresini Sıfırladık. Fakat Bu İşlem QuestFlag ile Gerçekleştiği İçin Soğuma Süresi Anlık Penceremizde Güncellenmiyordu. Işınlandığımızda Güncelleniyordu. Çünkü Karakter Tekrar Load Olduğu İçin affect.sql, quest.sql vs. Tekrar Load Ediyordu.
Dün ki Konumuzu Okuduysanız Şimdi ki Anlatacaklarımı da İyi Anlayacaksınız.
Öncelikle Paket.h'de Bir Adet Sabit Sayı Tanımlıyorum.
Ardından Bir Struct Yapısı Oluşturup İçine Elemanlarımı Veri Tipleri İle Birlikte Ekliyorum.
Burayı Hallettik.
Şimdi Dün Yaptığımız DungeonInfo.cpp Dosyamızdaki Fonksiyon İçindeki Nelerin Client Tarafına İletileceğini Yapalım.
TPacketGCSendResetTime Yapımızı packet adlı Bir Değişkenin Temsil Etmesini İstiyorum.
packet.bHeader Değişkenine HEADER_GC_DUNGEON_INFO_RESET_TIME Sabit Değeri Atıyorum.
packet.dungeonIdx Elamanımıza idx (Client'den Gelen Sayımız) Atıyorum.
packet.iFlagTime Elamanımıza iTime Değişkenin Değerini Atıyorum.
Özet:
bHeader Bizim Sabit Sayımız.
dungeonIdx Client'e Göndereceğimiz ve Client'deki Butonlardan Gelen Sayımızı Alacak Eleman.
iFlagTime Sıfırlama Süremiz. Yani Client'e 0 Olarak Göndereceğiz.
GameSource Bu Kadar Şimdi Client Source Tarafına Geçelim.
GameSource/Packet.h 'deki Olayı ClientSource/Packet.h 'de Anlatmayacağım Bir Fark Yok Copy-Paste
ClientSource/PythonNetworkStream.cpp
Burada Başlık ve Boyutları Belirliyoruz.
ClientSource/PythonNetworkStream.h
Burada Tanımlamayı Yapıyorum.
ClientSource/PythonNetworkStreamPhaseGame.cpp
Burada Aynı Mantık İnput_Main.cpp'deki Gibi Fakat Bu Sefer Game'den Gelen Paketimiz
Burada Kısa ve Özetle Anlatmam Gerekirse (Burada Herşey Döngü İçindedir): header Değişkenimiz Her Döngüde Paket Başlıklarımıza Karşılık Gelir. Bizim Paket Başlığımıza Karşılık Geldiğinde Bizi RecvDungeonInfoResetTime() Adlı Fonksiyona Gönderir ve Bu Fonksiyon Paketi Okur ve İlgili İşlemleri Yapar.
Gelelim Fonksiyona
TPacketGCSendResetTime Yapımızı packet adlı Bir Değişkenin Temsil Etmesini İstiyorum.
Ardından Bu Paket Yapısının Boyutu Kadar Veri Almasını ve Bu Verilerin Paket Değişkenine Yerleştirilmesini Yapıyorum.
Son Olarak;
PyCallClassMemberFunc ()
İşlemi İle Root Tarafında Kullanacaklarımı Yazıyorum. Game Tarafından Ne Getirdiysek Onların Root Tarafına Aktarılması İçin.
Client Source İşlemi Bitti Şimdi Root Tarafına Geçelim.
Root/Game.py
Client'den Gelen 2 Argümanlı İşlev İsmimizi Yazıyoruz.
Herşey Bu Kadar. Sizin Böyle Bir Sisteminizin Olmasına Gerek Yok veya constInfo.dungeonDurations[] Ne İşe Yaradığını Anlatmayacağım Burada Size Client-Game ve Game-Client İlişkisinin Nasıl Çalıştığından Bahsetmek İstedim.
Dün Sadece Client'den Game Tarafına Gönderdiğimizde Pencerede Anlık Yenilenmiyordu Sadece Işınlandığımızda Yenileniyordu. Şimdi Game-Client Tarafını Yaptık.
O Nedenle Artık Anlık Güncelleniyor.
KANIT:
Son düzenleme:
En Çok Reaksiyon Alan Mesajlar
paylaşım için teşekkürler. Beyaz temada yazılar okunmuyor düzeltir misinsen beyaz tema mı kullanıyorsun. @recepin94 ne diyo bu
Paylaşım için teşekkürler
paylaşım için teşekkürler. Beyaz temada yazılar okunmuyor düzeltir misin
Onca yazıyı nasıl değiştireyim 2 dk dark moduna alpaylaşım için teşekkürler. Beyaz temada yazılar okunmuyor düzeltir misin
Paylaşım için teşekkürler.Anlatım Tamamen Bana Aittir.
Dün ki Konumuzda Client-Game İle Arasındaki İletişimden Bahsettik. Bugün ise Game-Client İletişiminden Bahsedeceğim.
Dün ki Konumuzda DungeonInfo Sisteminden Örnek Alarak Başladık ve Tekrar DungeonInfo İle Devam Edeceğiz. DungeonInfo Sistemimiz de Buton İle Soğuma Süresini Sıfırladık. Fakat Bu İşlem QuestFlag ile Gerçekleştiği İçin Soğuma Süresi Anlık Penceremizde Güncellenmiyordu. Işınlandığımızda Güncelleniyordu. Çünkü Karakter Tekrar Load Olduğu İçin affect.sql, quest.sql vs. Tekrar Load Ediyordu.
Dün ki Konumuzu Okuduysanız Şimdi ki Anlatacaklarımı da İyi Anlayacaksınız.
Öncelikle Paket.h'de Bir Adet Sabit Sayı Tanımlıyorum.
Öğeyi görmek için üye olmalısınız.
Ardından Bir Struct Yapısı Oluşturup İçine Elemanlarımı Veri Tipleri İle Birlikte Ekliyorum.
Öğeyi görmek için üye olmalısınız.
Burayı Hallettik.
Şimdi Dün Yaptığımız DungeonInfo.cpp Dosyamızdaki Fonksiyon İçindeki Nelerin Client Tarafına İletileceğini Yapalım.
Öğeyi görmek için üye olmalısınız.
TPacketGCSendResetTime Yapımızı packet adlı Bir Değişkenin Temsil Etmesini İstiyorum.
packet.bHeader Değişkenine HEADER_GC_DUNGEON_INFO_RESET_TIME Sabit Değeri Atıyorum.
packet.dungeonIdx Elamanımıza idx (Client'den Gelen Sayımız) Atıyorum.
packet.iFlagTime Elamanımıza iTime Değişkenin Değerini Atıyorum.
Özet:
bHeader Bizim Sabit Sayımız.
dungeonIdx Client'e Göndereceğimiz ve Client'deki Butonlardan Gelen Sayımızı Alacak Eleman.
iFlagTime Sıfırlama Süremiz. Yani Client'e 0 Olarak Göndereceğiz.
GameSource Bu Kadar Şimdi Client Source Tarafına Geçelim.
GameSource/Packet.h 'deki Olayı Anlatmayacağım Bir Fark Yok Copy-Paste
ClientSource/PythonNetworkStream.cpp
Burada Başlık ve Boyutları Belirliyoruz.
Öğeyi görmek için üye olmalısınız.
ClientSource/PythonNetworkStream.h
Burada Tanımlamayı Yapıyorum.
Öğeyi görmek için üye olmalısınız.
ClientSource/PythonNetworkStreamPhaseGame.cpp
Burada Aynı Mantık İnput_Main.cpp'deki Gibi Fakat Bu Sefer Game'den Gelen Paketimiz
Öğeyi görmek için üye olmalısınız.
Burada Kısa ve Özetle Anlatmam Gerekirse (Burada Herşey Döngü İçindedir): header Değişkenimiz Her Döngüde Paket Başlıklarımıza Karşılık Gelir. Bizim Paket Başlığımıza Karşılık Geldiğinde Bizi RecvDungeonInfoResetTime() Adlı Fonksiyona Gönderir ve Bu Fonksiyon Paketi Okur ve İlgili İşlemleri Yapar.
Gelelim Fonksiyona
Öğeyi görmek için üye olmalısınız.
TPacketGCSendResetTime Yapımızı packet adlı Bir Değişkenin Temsil Etmesini İstiyorum.
Ardından Bu Paket Yapısının Boyutu Kadar Veri Almasını ve Bu Verilerin Paket Değişkenine Yerleştirilmesini Yapıyorum.
Son Olarak;
PyCallClassMemberFunc ()
İşlemi İle Root Tarafında Kullanacaklarımı Yazıyorum. Game Tarafından Ne Getirdiysek Onların Root Tarafına Aktarılması İçin.
Client Source İşlemi Bitti Şimdi Root Tarafına Geçelim.
Root/Game.py
Client'den Gelen 2 Argümanlı İşlev İsmimizi Yazıyoruz.
Öğeyi görmek için üye olmalısınız.
Herşey Bu Kadar. Sizin Böyle Bir Sisteminizin Olmasına Gerek Yok veya constInfo.dungeonDurations[] Ne İşe Yaradığını Anlatmayacağım Burada Size Client-Game ve Game-Client İlişkisinin Nasıl Çalıştığından Bahsetmek İstedim.
Dün Sadece Client'den Game Tarafına Gönderdiğimizde Pencerede Anlık Yenilenmiyordu Sadece Işınlandığımızda Yenileniyordu. Şimdi Game-Client Tarafını Yaptık.
O Nedenle Artık Anlık Güncelleniyor.
KANIT:
Öğeyi görmek için üye olmalısınız.
- Katılım
- 11 Mar 2017
- Konular
- 146
- Mesajlar
- 2,117
- Çözüm
- 20
- Online süresi
- 6mo 15d
- Reaksiyon Skoru
- 1,776
- Altın Konu
- 2
- Başarım Puanı
- 284
- MmoLira
- 3,271
- DevLira
- 16
Paylaşım için teşekkürler
- Katılım
- 29 Eki 2011
- Konular
- 52
- Mesajlar
- 638
- Çözüm
- 59
- Online süresi
- 2mo 15d
- Reaksiyon Skoru
- 237
- Altın Konu
- 0
- TM Yaşı
- 14 Yıl 7 Ay 15 Gün
- Başarım Puanı
- 181
- MmoLira
- 12,934
- DevLira
- 18
paylaşım için teşekkürler. Beyaz temada yazılar okunmuyor düzeltir misin
- Katılım
- 17 Ara 2017
- Konular
- 62
- Mesajlar
- 951
- Online süresi
- 9d 13h
- Reaksiyon Skoru
- 418
- Altın Konu
- 2
- TM Yaşı
- 8 Yıl 5 Ay 25 Gün
- Başarım Puanı
- 164
- MmoLira
- 4,378
- DevLira
- 9
paylaşım için teşekkürler. Beyaz temada yazılar okunmuyor düzeltir misin
sen beyaz tema mı kullanıyorsun. @recepin94 ne diyo bu 
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
Altın Konu
[C++] Client-Game Paket Transferi
- Cevaplar
- 12
- Görüntüleme
- 1K
- Kilitli
- Cevaplar
- 16
- Görüntüleme
- 1K
- Cevaplar
- 10
- Görüntüleme
- 2K
- Cevaplar
- 27
- Görüntüleme
- 702
- Cevaplar
- 3
- Görüntüleme
- 331






