- Katılım
- 4 Nis 2015
- Konular
- 5
- Mesajlar
- 119
- Online süresi
- 35m 51s
- Reaksiyon Skoru
- 14
- Altın Konu
- 0
- TM Yaşı
- 11 Yıl 2 Ay 10 Gün
- Başarım Puanı
- 64
- MmoLira
- 65
- DevLira
- 0
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!
teşekkürler 

- Katılım
- 20 Tem 2018
- Konular
- 81
- Mesajlar
- 1,326
- Çözüm
- 6
- Online süresi
- 21d 16h
- Reaksiyon Skoru
- 297
- Altın Konu
- 0
- TM Yaşı
- 7 Yıl 10 Ay 27 Gün
- Başarım Puanı
- 159
- MmoLira
- 1,155
- DevLira
- 0
Paylaşım İçin Teşekkürler.
- Katılım
- 22 Tem 2009
- Konular
- 5
- Mesajlar
- 62
- Reaksiyon Skoru
- 10
- Altın Konu
- 0
- TM Yaşı
- 16 Yıl 10 Ay 28 Gün
- Başarım Puanı
- 77
- MmoLira
- 55
- DevLira
- 0
Paylaşım İçin Teşekkürler.
- Katılım
- 30 Haz 2019
- Konular
- 30
- Mesajlar
- 646
- Çözüm
- 23
- Online süresi
- 1mo 3d
- Reaksiyon Skoru
- 223
- Altın Konu
- 0
- TM Yaşı
- 6 Yıl 11 Ay 18 Gün
- Başarım Puanı
- 134
- MmoLira
- 5,722
- DevLira
- 18
Merhabalar,
@ZacqooLeaven; arkadaşımın isteği üzerine Edit Eşya Kontrol Sistemini kodladım.
Peki nedir Edit Eşya Kontrol Sistemi?
Bu sistem oyunculardaki tüm eşyaları tek tek efsunlarıyla birlikte kontrol eder ve oyunun efsun düzeninden farklı bir şey algıladığında o eşyayı siler. Kontrol işlemini item_attr.sql dosyasından yani sizin oyununuzun efsun ayarlarının olduğu dosyadan yapar. Bu nedenden oyunun efsunlarından 1 puan fazla dâhi olsa hesabı kapatır ve eşyayı siler. Aynı şekilde aynı tip efsuna sahip bir eşya algıladığında da yada item_attr.sql de olmayan bir efsun algıladığında da sistem hesabı kapatır ve eşyayı siler.
Sistem nasıl işler?
40004 kodlu yüzüğe tıklanıp sistem açılabilir ya da kapatılabilir. Sistem açıkken her 1 saatte oyundaki tüm eşyaları tarar ve oyunun efsun ayarlarından farklı bir edit durumu algıladığı an hesabı kapatır, eşyayı siler. Sistemi kapatırsanız tarama da durur. Dilediğiniz zaman taramayı açıp kapatabilirsiniz.
Not: Bu sistemden edit olan hiçbir oyuncu kaçamaz. Her ne kadar eşya envanterdeyken hemen silinmiyor olsa dâhi o eşyaya sahip olan hesaplar kapatılacağı için, kişi o eşyayı kullanmaya fırsat dâhi bulamaz ve eşyayı verdiği her hesap kapanır. Ayrıca IP adresinden tespit edip diğer hesaplarını da kapatabilirsiniz.
Dilerseniz sistemin nasıl işlediği ile ilgili ayrıntılı bir video paylaşayım:
Tabii ki doğal olarak bu sistem MySQL veritabanı üzerinden işleyecek. İlk olarak MySQL kodları sunucumuzda çalışmıyorsa aşağıdaki işlemleri yapalım:
"quetlib.lua" dosyasını açıyor ve en altına aşağıdaki fonksiyonu ekliyoruz:
MYSQL FONKSİYONU:
PHP:mysql_query10 = function(query) if not pre then local rt = io.open('CONFIG','r'):read('*all') pre,_= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+) %s(%S+).+','-h%1 -u%2 -p%3 -D%4') end math.randomseed(os.time()) local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2 ^10),{},{} --os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi) -- für MySQL51 os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi) -- für MySQL55 for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi); for i = 2, table.getn(t) do table.foreach(t[i],function(a,b) out[i-1] = out[i-1] or {} out[i-1][a] = tostring(b) or b or 'NULL' out[t[1][a]] = out[t[1][a]] or {} out[t[1][a]][i-1] = tostring(b) or b or 'NULL' end) end return out end
Şimdi "quest_functions" dosyamızı açalım ve "mysql_query10" var mı yok mu kontrol edelim. Eğer yoksa en alta "mysql_query10" kodunu ekleyelim. Burası ile de işimiz bitti.
Şimdi gelelim yapmamızın gereken son ayara daha sonra yeni dosyayı indirmeniz için vereceğim:
* Veritabanını açıyoruz Account veritabanından Account tablosuna sağ tıklıyoruz ve yeni bir sütun ekliyoruz aşağıdaki gibi ve default değerini 0 yapıyoruz. Mutlaka default değerini 0 yapın!
![]()
İşimiz bitti burası ile artık dosyamızı verebilirim dilerseniz aşağıdaki kodla kendiniz oluşturabilir yada buradaki linkten hazır halini indirebilirsiniz.
Hazır indirmek isteyenler için:
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Teşekkürler.
- Katılım
- 6 Eyl 2017
- Konular
- 53
- Mesajlar
- 358
- Çözüm
- 1
- Online süresi
- 1mo 8d
- Reaksiyon Skoru
- 169
- Altın Konu
- 1
- TM Yaşı
- 8 Yıl 9 Ay 10 Gün
- Başarım Puanı
- 129
- Yaş
- 32
- MmoLira
- 6,490
- DevLira
- 78
Tamamen saçmalık böyle belirli aralıklar ile sistemde tarama yapan fonksiyonlar oyunun işlem gücünü zayıflatır. Bunun yerine c++ tarafında create item kısmında veya moveitem kısmında sorgulama yapılarak kontrol ettirilebilir. Koca bi tabloyu taramakmi mantıklı tek bir itemi denetlemek mı? Kesinlikle tavsiye etmiyorum.
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 2
- Görüntüleme
- 70
- Cevaplar
- 2
- Görüntüleme
- 270
- Cevaplar
- 8
- Görüntüleme
- 691




