Edit Eşya Kontrol Sistemi[LUA] 1

indirmek için izniniz yok
  • Konuyu başlatan Konuyu başlatan thenemne0032
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 194
  • Görüntüleme Görüntüleme 23K

thenemne0032

Level 6
Katılım
11 Ağu 2010
Konular
67
Mesajlar
1,092
Online süresi
7h 8m
Reaksiyon Skoru
476
Altın Konu
0
TM Yaşı
15 Yıl 10 Ay 7 Gün
Başarım Puanı
188
MmoLira
264
DevLira
0
Ticaret - 0%
0   0   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!

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:



 
Moderatör tarafında düzenlendi:

En Çok Reaksiyon Alan Mesajlar

pythondan yapın ozaman game.py
serverCommandList={

"exit": self.__ClientKapat,


en altta herhangi biyere

Kod:
def __ClientKapat(self, name):
     import app, player
     if str(name) == str(player.GetName())
          app.Exit()


cmdchat("exit"..player_name.."")

sonuna iki nokta koymayı unutmuşum

if str(name) == str(player.GetName()):
Arkadaşlar efsun kontrolünü veritabanı üzerinden yapmaya çalışıyorum.

Şöyle anlatayım:

Sistem eşyaların efsunlarını item_attr.sql tablosunda kontrol edecek ve oradaki lv5 yani en çok gelen efsun değerinden 1 fazla olsa bile işlem yapıp hesabı kapatacak. Şuan üzerinde uğraşıyorum eğer yapabilirsem konuyu güncelleyeceğim.
Güzel Bir Sistem Aslında Hangi Oyuncuda Edit Oldgunuda Yazssa Süper Olurdu.
 
Güzel Bir Sistem Aslında Hangi Oyuncuda Edit Oldgunuda Yazssa Süper Olurdu.

Teşekkürler söylediğiniz için. Hem ismi söyleyecek hem de edit olan kişinin hesabını kapatacak.

Konu güncellenecektir.
 
Teşekkürler söylediğiniz için. Hem ismi söyleyecek hem de edit olan kişinin hesabını kapatacak.

Konu güncellenecektir.
hesabını kapatmasına gerek yok editi silsin ve hangi nicli hesabda edit var onu söylesin yeterli.
 
hesabını kapatmasına gerek yok editi silsin ve hangi nicli hesabda edit var onu söylesin yeterli.

Tamamdır. Güncelleyeceğim.

Önerisi olan arkadaşlar yazarlarsa geliştirir konuyu güncellerim.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)