-
İçerik sayısı
69 -
Katılım
-
Son ziyaret
-
Puan
1,497 [ Bağış Yap ]
İletiler : Seris
-
-
Bir kere verison.h'yi değiştirip versionu direkt olarak düşüremezsın src de çok işin var
UPDATE USER Kısımlarını 1299 göre ayarlamalısın
uygun exe bulmalısın bulduğun exeyi srcye tanıtmalısın (sanırım private key ve 1-2 void kısmı var adı aklıma gelmiyor şuan)
sqldeki tablelerin colomslarını srcye tanıtmalısın
.. ve bunun gibi bir çok işlem var -
Üstteki Patlama olayı olmamış
KoDevelopers yazısı ön planda değil slogan tarzında durmuş
Alevleri biraz daha kaliteli ve mantıklı yerlere konumlandırman gerek olduğunu düşünüyorum
DipNot: Yanlış anlamanı istemem daha iyi bir şey çıkarmanı isterim o yüzden bana gözüken olay bu zaman harcadığın için yine de teşekkürler -
Teşekkürler
-- mesaja ek olarak --
Hocam bir deneyin isterseniz ben yapamadım
http://patch-game-knightonline.mncdn.com/knight/patch/usko/patch2083.zip -
-
-
Teşekkürler güzel bir şeye benziyor
-
Teşekkürler
-
Teşekkürler inşlh dataları da vardır
-
Alıntı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
if(UNIXTIME - m_lLastExperienceRewardTime >= 2){ // 123456789 - 0 = 123456789 >= 2 ? true.
ExpChange(200000);
m_lLastExperienceTime = UNIXTIME; // m_lLastExperienceTime = 123456789;
}
Aradan 1 saniye geçtikten sonra tekrar tetiklendiğini varsayalım.
// UNIXTIME = 123456790
// m_lLastExperienceTime = 123456789
if(UNIXTIME - m_lLastExperienceRewardTime >= 2){ // 123456790 - 123456789 = 1 >= 2 ? false.
ExpChange(200000); // çalışmayacak
m_lLastExperienceTime = UNIXTIME; // çalışmayacak
}
Aradan 5 saniye geçtikten(başlangıç zamanına göre) sonra tekrar tetiklendiğini varsayalım.
// UNIXTIME = 123456794
// m_lLastExperienceTime = 123456789
if(UNIXTIME - m_lLastExperienceRewardTime >= 2){ // 123456794 - 123456789 = 5 >= 2 ? true
ExpChange(200000);
m_lLastExperienceTime = UNIXTIME; // m_lLastExperienceTime = 123456794
}
Umarım açıklayıcı olmuştur.
Şimdi kavradım olayı aynen dediğiniz gibi *gerçek hayatta olsa nasıl yapardım* sözünü her kod yazdığımda hatırlayacağım çok beğendim sözü 2 senedir uğraşıyoruz fakat elimizden tutan yok öyle sağdan soldan gördüklerimizi deneme yanılma ile yapmaya çalışıyorum artık olayın temel mantığını anlamaya çalışarak yapacağım tekrardan ilginiz için teşekkürler
goto566 Açıklamanız için size de teşekkür ederim- 1
-
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 :) -
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 :) -
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 ? -
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 -
Sen adamsın Adamın dibisin
-
Meraklandım şuan :)
-
12 = [JP] Dagger Set
43 = [JP] One-handed Set
152 = [US] Familiar
Bu 3nü ne aradım ya lanet olsun teşekkürler -
teşekkürler
-
inşlh lualar vardır tekrar yazması aşırı sıkıcı
-
Teşekkürler bi bakalım
-
Database sql kaç ?
-
teşekkürler
-
Teşekkürler
-
Kendi packlediğimiz ko.exeyi nasıl bir işlemle launchersız açarız?
vb c# bilgim var ona göre nasıl bir işlem yaparız? -
Alıntı4. olay için ise, chaos itemlerinin base idlerine bir şekilde skill ataması yaparak belirli oranlarda tetiklenmesini sağlamalısın.
@ PENTAGRAM Hocam bu işlemler hangi void de oluyor söylebilirmisiniz ?
19xx Server Tıklayınca hata raporu verıyor yardım lutfen
Forum Çözülen Konular
tarihinde gönderildi
https://www.kodevelopers.com/unpack-exe-paylasimlari/1341-v1299-ayri-chat-amp-infobar-unpack-knightonlineexe.html
buradaki mantığı kullansa olabilir mi peki ben yanlış anladım