KO Developers

Go Back   KO Developers > Mini KO Forum (Yardım & İstek) > Genel Yardım > Çözülen Konular


Çözülen Konular Forum üyelerimiz tarafından çözüme kavuşturulmuş konular.


Beğeni Geçmişi6Beğeniler

 
LinkBack Seçenekler Stil
Okunmamış 12 Kasım 2017, 11:32   #1 (permalink)
Uzaklaştırılmış

Avatar Yok


Üyelik tarihi: 19 Temmuz 2017
Mesajlar: 69[+]
Kredi Bakiyeniz: 1.346
Ettiği teşekkür sayısı: 15
5 Mesaja 6 Kez Teşekkür Aldı

Standart Basit Süre Sistemi

Merhabalar,

Knight online source işine 2 senedir ilgileniyorum bu süre olayını halen kavrayamadım yani mantığını çözemedim yani 2 saniye de 1 exp verme olayını yapmaya çalışıyorum öğrenmek amacıyla saçma sapan şeyler oluyor.

UNIXTIME ile yapmaya çalışıyorum internetten bi ton video izliyorum yok abi olmuyor 2 saniye önemli de değil yani 10 sn de bir işlem yaptırmak istiyorum kod vermeyen abilerimiz mantığını söylerlerse veya detaylı bir makale verebilirse çok güzel olur şimdiden teşekkürler
Seris isimli Üye şimdilik offline konumundadır  
Okunmamış 12 Kasım 2017, 12:59   #2 (permalink)

PENTAGRAM - ait Kullanıcı Resmi (Avatar)


Üyelik tarihi: 04 Temmuz 2017
Mesajlar: 366[+]
Ettiği teşekkür sayısı: 83
181 Mesaja 749 Kez Teşekkür Aldı
Kullanıcı Envanteri Renkli konu başlığı (aylık)Kişisel Rütbe Şekillendirme (kalıcı)İsim Şekillendirme (kalıcı)Sabit Konu (Haftalık)Server Tanıtımı Alt Forum (Aylık)

Standart Cevap: Basit Süre Sistemi

Alıntı:
Seris Nickli Üyeden Alıntı Mesajı göster
Merhabalar,

Knight online source işine 2 senedir ilgileniyorum bu süre olayını halen kavrayamadım yani mantığını çözemedim yani 2 saniye de 1 exp verme olayını yapmaya çalışıyorum öğrenmek amacıyla saçma sapan şeyler oluyor.

UNIXTIME ile yapmaya çalışıyorum internetten bi ton video izliyorum yok abi olmuyor 2 saniye önemli de değil yani 10 sn de bir işlem yaptırmak istiyorum kod vermeyen abilerimiz mantığını söylerlerse veya detaylı bir makale verebilirse çok güzel olur şimdiden teşekkürler
cpp Kod:
  1. uint64 m_lLastExperienceRewardTime = 0; // User.h içerisine tanımlanacak
  2.  
  3. void CUser::Update(){
  4. /* ... */ // Mevcut kod bloğu
  5. if(UNIXTIME - m_lLastExperienceRewardTime >= 2){
  6. ExpChange(200000);
  7. m_lLastExperienceRewardTime = UNIXTIME;
  8. }
  9. }

Her 2 saniyede bir 200k experience verir.
Seris bunu beğendi

__________________

İmzalardaki resim ve linkleri görebilmeniz için mesaj sayınız 10 veya daha fazla olmalı. Şu anda 0 mesajınız var.

'You' are only your limit.
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] |
İmzalardaki resim ve linkleri görebilmeniz için mesaj sayınız 10 veya daha fazla olmalı. Şu anda 0 mesajınız var.
| skype | [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
PENTAGRAM isimli Üye şimdilik offline konumundadır  
Okunmamış 12 Kasım 2017, 13:00   #3 (permalink)
Uzaklaştırılmış

Avatar Yok


Üyelik tarihi: 19 Temmuz 2017
Mesajlar: 69[+]
Kredi Bakiyeniz: 1.346
Ettiği teşekkür sayısı: 15
5 Mesaja 6 Kez Teşekkür Aldı

Standart Cevap: Basit Süre Sistemi

Birazdan deneyeceğim fakat

m_lLastExperienceTime = UNIXTIME;

bu işlem sıfırlıyor mu süreyi?
-- mesaja ek olarak --
uint64 m_lLastExperienceRewardTime = 0;

ve bu,verdiğiniz kod içerisinde yok neden tanımlanacak ?
Seris isimli Üye şimdilik offline konumundadır  
Okunmamış 12 Kasım 2017, 13:06   #4 (permalink)

PENTAGRAM - ait Kullanıcı Resmi (Avatar)


Üyelik tarihi: 04 Temmuz 2017
Mesajlar: 366[+]
Ettiği teşekkür sayısı: 83
181 Mesaja 749 Kez Teşekkür Aldı
Kullanıcı Envanteri Renkli konu başlığı (aylık)Kişisel Rütbe Şekillendirme (kalıcı)İsim Şekillendirme (kalıcı)Sabit Konu (Haftalık)Server Tanıtımı Alt Forum (Aylık)

Standart Cevap: Basit Süre Sistemi

Alıntı:
Seris Nickli Üyeden Alıntı Mesajı göster
Birazdan deneyeceğim fakat

m_lLastExperienceTime = UNIXTIME;

bu işlem sıfırlıyor mu süreyi?
-- mesaja ek olarak --
uint64 m_lLastExperienceRewardTime = 0;

ve bu,verdiğiniz kod içerisinde yok neden tanımlanacak ?
(İlgileniyorsan) mantığı da şu;

UNIXTIME dediğimiz şey, 01/01/1970 00:00 tarihinden bu yana geçen saniye sayısıdır. An itibarı ile değeri 1510480883'tur (tabi ben bu postu yazana kadar bu değer artacaktır.) Öncelikle, yapmak istediğin şey için, son işlem zamanını saklayacak bir değişken tanımladık. Bu değişkenin adı m_lLastExperienceRewardTime. CUser::Update fonksiyonu periyodik olmasa dahi paket geldikçe çağrılan bir fonksiyon. En kötü ihtimalle, 10 saniyede bir(WIZ_SPEEDHACK_CHECK), ortalama 1.5 saniyede bir (WIZ_MOVE, WIZ_ROTATE), en iyi ihtimalle paket trafiğine bağlı olarak tetiklenir, 0.1 saniyeye kadar düşebilir tetiklenme süresi. Fonksiyonun en alt kısmında, UNIXTIME değerinden, m_lLastExperienceRewardTime değerini çıkarttık. Aradaki fark, bize son experience ödülünden bu yana geçen saniye sayısını verir. Eğer sonuç 2 veya daha fazla ise, oyuncuya ödülünü verip, m_lLastExperienceRewardTime değerini, yani son işlem değerini UNIXTIME olarak güncelledik. Olay bundan ibaret.
Seris bunu beğendi

__________________

İmzalardaki resim ve linkleri görebilmeniz için mesaj sayınız 10 veya daha fazla olmalı. Şu anda 0 mesajınız var.

'You' are only your limit.
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] |
İmzalardaki resim ve linkleri görebilmeniz için mesaj sayınız 10 veya daha fazla olmalı. Şu anda 0 mesajınız var.
| skype | [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
PENTAGRAM isimli Üye şimdilik offline konumundadır  
PENTAGRAM Üyemize Teşekkür Edenler:
Seris (12 Kasım 2017)
Okunmamış 12 Kasım 2017, 13:18   #5 (permalink)
while (true) { printf("f*ck this life!"); }

Mewtwo - ait Kullanıcı Resmi (Avatar)


Üyelik tarihi: 02 Temmuz 2017
Bulunduğu yer: Eskişehir
Mesajlar: 1.057[+]
Ettiği teşekkür sayısı: 42
362 Mesaja 1.115 Kez Teşekkür Aldı
Kullanıcı Envanteri Server Tanıtımı Alt Forum (Aylık)Sabit Konu (Haftalık)Kişisel Rütbe (kalıcı)Sabit Konu (Aylık)Görünmezlik (kalıcı)

Standart Cevap: Basit Süre Sistemi

Alıntı:
Seris Nickli Üyeden Alıntı Mesajı göster
kod vermeyen abilerimiz
@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] keşke kod vermeseydin abisi.

@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] bu durumdan ciddi ciddi şikayetci misin?

__________________

İmzalardaki resim ve linkleri görebilmeniz için mesaj sayınız 10 veya daha fazla olmalı. Şu anda 0 mesajınız var.
Mewtwo isimli Üye şimdilik offline konumundadır  
Okunmamış 12 Kasım 2017, 13:25   #6 (permalink)
Uzaklaştırılmış

Avatar Yok


Üyelik tarihi: 19 Temmuz 2017
Mesajlar: 69[+]
Kredi Bakiyeniz: 1.346
Ettiği teşekkür sayısı: 15
5 Mesaja 6 Kez Teşekkür Aldı

Standart Cevap: Basit Süre Sistemi

Hocam yok şikayet demeyelim yani yapılıyor sağdan soldan kodlara bakıp yapabiliyorum sıkıntı olan mantığı çözmem farklı bir projem var mantığını çözmeden yapmam çok zor
-- mesaja ek olarak --
Hocam anladım fakat halen RewardTime ile verdiğiniz kod arasındaki bağı anlamadım yani verdiğiniz kodu,RewardTime nasıl okuyor nerden görüyor,yani onu nasıl baz alarak işlem yapıyor?

ve if(UNIXTIME - m_lLastExperienceTime >= 2){ burada vermiş olduğunuz işlem büyüktür işareti yerine == yaparsak daha mantıklı değil mi sekme olayları felan mı oluyor? ve UNIXTIME dan sonra gelen - nin olayı nedir ? sayarken 2-1-0 diye mi gidiyor yoksa 0-1-2 mi diye işlem yapıyor - olayı + koysak ne değişir?

Hocam çok uğraştırdığımın farkındayım fakat baya uğraştım bazı noktaları pekiştirmem gerekiyor bir projem var ufakta olsa benim için büyük bir öneme sahip o yüzden detaya indim biraz
Seris isimli Üye şimdilik offline konumundadır  
Okunmamış 12 Kasım 2017, 13:30   #7 (permalink)

PENTAGRAM - ait Kullanıcı Resmi (Avatar)


Üyelik tarihi: 04 Temmuz 2017
Mesajlar: 366[+]
Ettiği teşekkür sayısı: 83
181 Mesaja 749 Kez Teşekkür Aldı
Kullanıcı Envanteri Renkli konu başlığı (aylık)Kişisel Rütbe Şekillendirme (kalıcı)İsim Şekillendirme (kalıcı)Sabit Konu (Haftalık)Server Tanıtımı Alt Forum (Aylık)

Standart Cevap: Basit Süre Sistemi

Alıntı:
Seris Nickli Üyeden Alıntı Mesajı göster
Hocam anladım fakat halen RewardTime ile verdiğiniz kod arasındaki bağı anlamadım yani verdiğiniz kodu,RewardTime nasıl okuyor nerden görüyor,yani onu nasıl baz alarak işlem yapıyor?

ve if(UNIXTIME - m_lLastExperienceTime >= 2){ burada vermiş olduğunuz işlem büyüktür işareti yerine == yaparsak daha mantıklı değil mi sekme olayları felan mı oluyor? ve UNIXTIME dan sonra gelen - nin olayı nedir ? sayarken 2-1-0 diye mi gidiyor yoksa 0-1-2 mi diye işlem yapıyor - olayı + koysak ne değişir?

Hocam çok uğraştırdığımın farkındayım fakat baya uğraştım bazı noktaları pekiştirmem gerekiyor bir projem var ufakta olsa benim için büyük bir öneme sahip o yüzden detaya indim biraz
Birincisi, 'hocam' kelimesi kadar dünyada nefret ettiğim bir kelime daha yoktur, bana karşı hitap ederken kullanmazsan mutlu olurum.

Diğer hususa gelecek olursak, 2. değişkenin de m_lLastExperienceRewardTime olması lazım. Düzelttim.
Seris bunu beğendi

__________________

İmzalardaki resim ve linkleri görebilmeniz için mesaj sayınız 10 veya daha fazla olmalı. Şu anda 0 mesajınız var.

'You' are only your limit.
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] |
İmzalardaki resim ve linkleri görebilmeniz için mesaj sayınız 10 veya daha fazla olmalı. Şu anda 0 mesajınız var.
| skype | [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
PENTAGRAM isimli Üye şimdilik offline konumundadır  
PENTAGRAM Üyemize Teşekkür Edenler:
Seris (12 Kasım 2017)
Okunmamış 12 Kasım 2017, 13:41   #8 (permalink)
Uzaklaştırılmış

Avatar Yok


Üyelik tarihi: 19 Temmuz 2017
Mesajlar: 69[+]
Kredi Bakiyeniz: 1.346
Ettiği teşekkür sayısı: 15
5 Mesaja 6 Kez Teşekkür Aldı

Standart Cevap: Basit Süre Sistemi

Alıntı:
Birincisi, 'hocam' kelimesi kadar dünyada nefret ettiğim bir kelime daha yoktur, bana karşı hitap ederken kullanmazsan mutlu olurum.
Genel de bu ortamlarda hocam kelimesi kullanıldığı için dedim k.bakmayın nasıl hitap edeceğimi bilemedim :/

Alıntı:
Diğer hususa gelecek olursak, 2. değişkenin de m_lLastExperienceRewardTime olması lazım. Düzelttim.
Bende ona takıldım zaten çözmeye çalışıyorum mantığını yok En büyük sorun buydu diğerini ben deneme yanılma ile yaparım çok teşekkür ediyorum ilginiz için
Seris isimli Üye şimdilik offline konumundadır  
Okunmamış 12 Kasım 2017, 13:41   #9 (permalink)
Aktif Üye

goto566 - ait Kullanıcı Resmi (Avatar)


Üyelik tarihi: 08 Ağustos 2017
Mesajlar: 131[+]
Kredi Bakiyeniz: 6.121
Ettiği teşekkür sayısı: 9
18 Mesaja 29 Kez Teşekkür Aldı

Standart Cevap: Basit Süre Sistemi

UNIXTIME = 1510480883 dersek,
m_lLastExperienceTime başlangıçda 0 olacak.

sen UNIXTIME -m_lLastExperienceTime derken
1510480883 - 0 diyorsun. yani sonuc =1510480883
if(UNIXTIME - m_lLastExperienceTime >= 2)// ile sonuc2 den buyuk veya eşitmi diye kontrol ediyor. eğerki 2den büyük veya eşitse expini veriyor ve sonra
m_lLastExperienceTime değerini 1510480883 yapıyor.
her saniye UNIXTIME değeri ayrı bir thread'da otomatik olarak artmaktadır.
Seris bunu beğendi
goto566 isimli Üye şimdilik offline konumundadır  
goto566 Üyemize Teşekkür Edenler:
Seris (12 Kasım 2017)
Okunmamış 12 Kasım 2017, 13:43   #10 (permalink)

PENTAGRAM - ait Kullanıcı Resmi (Avatar)


Üyelik tarihi: 04 Temmuz 2017
Mesajlar: 366[+]
Ettiği teşekkür sayısı: 83
181 Mesaja 749 Kez Teşekkür Aldı
Kullanıcı Envanteri Renkli konu başlığı (aylık)Kişisel Rütbe Şekillendirme (kalıcı)İsim Şekillendirme (kalıcı)Sabit Konu (Haftalık)Server Tanıtımı Alt Forum (Aylık)

Standart Cevap: Basit Süre Sistemi

Alıntı:
Seris Nickli Üyeden Alıntı Mesajı göster
Hocam yok şikayet demeyelim yani yapılıyor sağdan soldan kodlara bakıp yapabiliyorum sıkıntı olan mantığı çözmem farklı bir projem var mantığını çözmeden yapmam çok zor
-- mesaja ek olarak --
Hocam anladım fakat halen RewardTime ile verdiğiniz kod arasındaki bağı anlamadım yani verdiğiniz kodu,RewardTime nasıl okuyor nerden görüyor,yani onu nasıl baz alarak işlem yapıyor?

ve if(UNIXTIME - m_lLastExperienceTime >= 2){ burada vermiş olduğunuz işlem büyüktür işareti yerine == yaparsak daha mantıklı değil mi sekme olayları felan mı oluyor? ve UNIXTIME dan sonra gelen - nin olayı nedir ? sayarken 2-1-0 diye mi gidiyor yoksa 0-1-2 mi diye işlem yapıyor - olayı + koysak ne değişir?

Hocam çok uğraştırdığımın farkındayım fakat baya uğraştım bazı noktaları pekiştirmem gerekiyor bir projem var ufakta olsa benim için büyük bir öneme sahip o yüzden detaya indim biraz
Hayır, == koyman daha mantıklı değil, yazdığım açıklamayı okumamışsın. CUser::Update fonksiyonunun periyodik olarak çağrılmadığından bahsettim sana, bazen 10 saniyede bir, bazen 1.5 saniyede bir tetikleniyor. Sen, aradaki farkı sabit olarak 2 saniye kontrol edersen, fonksiyon 5 saniye aralıkla tetiklendiğinde ne olacak?

2 senedir kaynak kodları ile uğraştığından bahsediyorsun ama kendini tam anlamıyla vermediğini görüyorum. Programlama, yazarak değil akılda kurarak yapılır. Kod yazmak, işin kolay kısmı. Çözmek istediğin bir problemi öncelikle program olarak düşünmeyip, gerçek hayatta olsa nasıl yapardım diye düşünmen lazım. Problemi kafanda çözdüktan sonra kodunu yazması en kolay kısmı.

m_lLastExperienceRewardTime'nin ilk değeri 0.

CUser::Update fonksiyonunun ilk kez çağrılışını izleyelim.

// UNIXTIME = 123456789
// m_lLastExperienceRewardTime = 0
cpp Kod:
  1. if(UNIXTIME - m_lLastExperienceRewardTime >= 2){ // 123456789 - 0 = 123456789 >= 2  ? true.
  2. ExpChange(200000);
  3. m_lLastExperienceTime = UNIXTIME; // m_lLastExperienceTime = 123456789;
  4. }
Aradan 1 saniye geçtikten sonra tekrar tetiklendiğini varsayalım.
// UNIXTIME = 123456790
// m_lLastExperienceTime = 123456789
cpp Kod:
  1. if(UNIXTIME - m_lLastExperienceRewardTime >= 2){ // 123456790 - 123456789 = 1 >= 2  ? false.
  2. ExpChange(200000); // çalışmayacak
  3. m_lLastExperienceTime = UNIXTIME; // çalışmayacak
  4. }
Aradan 5 saniye geçtikten(başlangıç zamanına göre) sonra tekrar tetiklendiğini varsayalım.
// UNIXTIME = 123456794
// m_lLastExperienceTime = 123456789
cpp Kod:
  1. if(UNIXTIME - m_lLastExperienceRewardTime >= 2){ // 123456794 - 123456789 = 5 >= 2  ? true
  2. ExpChange(200000);
  3. m_lLastExperienceTime = UNIXTIME; // m_lLastExperienceTime = 123456794
  4. }

Umarım açıklayıcı olmuştur.
Seris bunu beğendi

__________________

İmzalardaki resim ve linkleri görebilmeniz için mesaj sayınız 10 veya daha fazla olmalı. Şu anda 0 mesajınız var.

'You' are only your limit.
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] |
İmzalardaki resim ve linkleri görebilmeniz için mesaj sayınız 10 veya daha fazla olmalı. Şu anda 0 mesajınız var.
| skype | [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
PENTAGRAM isimli Üye şimdilik offline konumundadır  
 


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Geçerli forum için yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
[1298] Kumar Sistemi hoobstank 1298 Paylaşım 70 09 Haziran 2019 13:54
Öneri Davetiye sistemi SnaypeR Şikayet ve Öneriler 2 28 Ekim 2017 11:29


Forum Site Hakkında
vBulletin® tarafından desteklenmektedir Versiyon 3.8.4
Telif hakkı ©2000 - 2019, Jelsoft Enterprises Ltd.

Sitemizdeki içerikler kopyalanmaya karşı DMCA ile korunmaktadır. DMCA.com Protection Status
İçerik sağlayıcı paylaşım sitelerinden biri olan kodevelopers.com Forum Adresimizde T.C.K 20.ci Madde ve 5651 Sayılı Kanun'un 4.cü maddesinin (2).ci fıkrasına göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. kodevelopers.com hakkında yapılacak tüm hukuksal Şikayetler için admin@kodevelopers.com Mail adresimiz üzerinden iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 1 (Bir) Hafta içerisinde kodevelopers.com yönetimi olarak tarafımızdan gereken işlemler yapılacak ve Avukatımız size dönüş yapacaktır.
© 2017 KO Developers ( by NERONLINEWORLD 2011/2013 )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182

Search Engine Friendly URLs by vBSEO 3.6.0