- Katılım
- 13 Haz 2012
- Konular
- 2,515
- Mesajlar
- 6,499
- Online süresi
- 5h 37m
- Reaksiyon Skoru
- 428
- Altın Konu
- 0
- TM Yaşı
- 14 Yıl 1 Gün
- Başarım Puanı
- 301
- MmoLira
- 222
- 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!
Eğer gerçekten çalışıyor ise çok güzel bir quest. Eminim çok işe yarayacaktır. Paylaşımlarınızın devamını bekliyoruz.
- Katılım
- 30 Eyl 2010
- Konular
- 1,962
- Mesajlar
- 11,050
- Çözüm
- 1
- Online süresi
- 18d 13h
- Reaksiyon Skoru
- 1,616
- Altın Konu
- 0
- TM Yaşı
- 15 Yıl 8 Ay 18 Gün
- Başarım Puanı
- 359
- MmoLira
- 9,960
- DevLira
- 0
konu iiçin tşkler
bu konuların devamında bekliyoruz
zaten bu şekilde svlerde buglu edit olmıcak
bu konuların devamında bekliyoruzzaten bu şekilde svlerde buglu edit olmıcak

- Katılım
- 25 Ağu 2010
- Konular
- 4
- Mesajlar
- 182
- Reaksiyon Skoru
- 22
- Altın Konu
- 0
- TM Yaşı
- 15 Yıl 9 Ay 24 Gün
- Başarım Puanı
- 59
- MmoLira
- 0
- DevLira
- 0
öncelikle çok teşekkür ederim gayet güzel bi sistem ve kullanılabilir. Eline sağlık.
Geliştirmen açısından bi öneri söylüyeyim;
Buglu market scriptleri vardı. Aynı iteme iki tane kritik, delici , ortalama zarar ... vb efsunları açık sayesinde getirebiliyorlardı.
Acaba bunuda çözmen mümkünmü?
Efsun oranını kontrol edekerken bi itemde aynı efsundan iki tane olmamasınıda kontrol ettirebilirmisin ?
Eger öyle olursa daha kullanışlı olur.
Tekrardan teşekkürler
Geliştirmen açısından bi öneri söylüyeyim;
Buglu market scriptleri vardı. Aynı iteme iki tane kritik, delici , ortalama zarar ... vb efsunları açık sayesinde getirebiliyorlardı.
Acaba bunuda çözmen mümkünmü?
Efsun oranını kontrol edekerken bi itemde aynı efsundan iki tane olmamasınıda kontrol ettirebilirmisin ?
Eger öyle olursa daha kullanışlı olur.
Tekrardan teşekkürler
- Katılım
- 6 Haz 2012
- Konular
- 7
- Mesajlar
- 557
- Online süresi
- 51m 6s
- Reaksiyon Skoru
- 116
- Altın Konu
- 0
- TM Yaşı
- 14 Yıl 8 Gün
- Başarım Puanı
- 101
- MmoLira
- 23
- DevLira
- 0
Paylaşım için teşekkürler, kullanan olacaktır başarılarının devamını dilerim.. 

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.
Sistem nasıl işler?
Yönetici 20095 kodlu NPC'ye gider ve "Edit Sil" e tıklar. Daha sonra sistem oyunda kayıtlı olan tüm karakterlerin sırayla eşyalarını tek tek kontrol eder. Örneğin önce A oyuncusunun seçer daha sonra A'ya ait tüm eşyaları kontrol eder. Daha sonra B karakterine ait tüm eşyaları kontrol eder. Sistem bu şekilde işliyor.
NOT: Daha verimli ve hızlı çalışabilmesi için bir kaç şey yapmam gerekiyordu fakat en oluru bu şekilde oluyor. Normalde efsun değerlerini item_attr.sql yani oyunun efsunlarının tablosundaki değerler ile karşılaştıracaktı böylece en ufak bir sıkıntıda, efsun puanı 1 fazla olsa bile silecekti fakat şuan en düşük efsunu yani 8'i göz önüne alırsak 21 olunca silecek yani arada bir 12 puanlık efsun farkı var. Buda artık olacak mecburen. Yapabileceğim bir şey yok çünkü herkeste item_attr.sql farklı olabiliyor ya da efsunlar eksik olabiliyor. Diğer taraftan eşyaları sorgularken sadece count'u yani sayısı 1 olan eşyalar üzerinde işlem yapacak böylece sistem biraz daha hızlanıyor. Sonuçta editli hiçbir eşyanın count sayı değeri 2 olamaz.
Edit Eşya Kontrol Sistemi ile ilgili resimler
![]()
![]()
![]()
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.
LUA dosyasını oluşturma:
1-) usr/game/share/locale/turkey/quest bölümüne "editsil.lua" adında bir lua dosyası açalım. Daha sonra dosyasının içine aşağıdaki kodları yazalım:
PHP:quest editsil begin state start begin when 20095.chat."Edit Sil" with pc.is_gm() begin say_title("Bilgilendirme:") say("") say("Eşyalarda edit olup olmadığı kontrol edildi.") say("Sohbet penceresini kontrol edin.") say("") maxHpAd = "MAX_HP" ortalamaHasarSaldiriDegeri = 60 beceriHasariHpUretimi = 30 digerEfsunlar = 20 efsunMaxHpKontrol = mysql_query10("select lv5 from player.item_attr where apply='"..maxHpAd.."' ") efsunMaxHpDeger = tonumber(efsunMaxHpKontrol.lv5[1]) oyuncuBilgisiSorgula = mysql_query10("select * from player.player") oyuncuBilgisiSorgulaSay = tonumber(table.getn(oyuncuBilgisiSorgula)) for i=1,oyuncuBilgisiSorgulaSay,1 do oyuncuHesap_id = tonumber(oyuncuBilgisiSorgula.account_id[i]) oyuncuKarakterAdi = tostring(oyuncuBilgisiSorgula.name[i]) oyuncuEsyaKontrol = mysql_query10("select * from player.item where owner_id='"..oyuncuHesap_id.."' and count='1' ") oyuncuEsyaKontrolSay = tonumber(table.getn(oyuncuEsyaKontrol)) for k=1,oyuncuEsyaKontrolSay,1 do esyaKimlik = tonumber(oyuncuEsyaKontrol.id[k]) esyaKodu = tonumber(oyuncuEsyaKontrol.vnum[k]) oyuncuEsyaEfsunDiziTip = { tonumber(oyuncuEsyaKontrol.attrtype0[k]), tonumber(oyuncuEsyaKontrol.attrtype1[k]), tonumber(oyuncuEsyaKontrol.attrtype2[k]), tonumber(oyuncuEsyaKontrol.attrtype3[k]), tonumber(oyuncuEsyaKontrol.attrtype4[k]), tonumber(oyuncuEsyaKontrol.attrtype5[k]), tonumber(oyuncuEsyaKontrol.attrtype6[k]) } oyuncuEsyaEfsunDiziDeger = { tonumber(oyuncuEsyaKontrol.attrvalue0[k]), tonumber(oyuncuEsyaKontrol.attrvalue1[k]), tonumber(oyuncuEsyaKontrol.attrvalue2[k]), tonumber(oyuncuEsyaKontrol.attrvalue3[k]), tonumber(oyuncuEsyaKontrol.attrvalue4[k]), tonumber(oyuncuEsyaKontrol.attrvalue5[k]), tonumber(oyuncuEsyaKontrol.attrvalue6[k]) } oyuncuEsyaEfsunDiziSay = tonumber(table.getn(oyuncuEsyaEfsunDiziDeger)) for p=1,oyuncuEsyaEfsunDiziSay,1 do efsunTipi = tonumber(oyuncuEsyaEfsunDiziTip[p]) efsunDegeri = tonumber(oyuncuEsyaEfsunDiziDeger[p]) if efsunTipi == 1 then if efsunDegeri > efsunMaxHpDeger then editEsyaSil = mysql_query10("delete from player.item where owner_id='"..oyuncuHesap_id.."' and id='"..esyaKimlik.."' ") if editEsyaSil then syschat("Edit eşya bulundu ve silindi. Karakter adı: "..oyuncuKarakterAdi.." | Eşya Kodu: "..esyaKodu.." | Efsun kodu: "..efsunTipi.. " | Efsun değeri: "..efsunDegeri) end -- silme kontrol end -- edit kontrol ve edit silme endi elseif efsunTipi == 72 or efsunTipi == 53 then if efsunDegeri > ortalamaHasarSaldiriDegeri then editEsyaSil = mysql_query10("delete from player.item where owner_id='"..oyuncuHesap_id.."' and id='"..esyaKimlik.."' ") if editEsyaSil then syschat("Edit eşya bulundu ve silindi. Karakter adı: "..oyuncuKarakterAdi.." | Eşya Kodu: "..esyaKodu.." | Efsun kodu: "..efsunTipi.. " | Efsun değeri: "..efsunDegeri) end -- silme kontrol end -- edit kontrol ve edit silme endi elseif efsunTipi == 71 or efsunTipi == 10 then if efsunDegeri > beceriHasariHpUretimi then editEsyaSil = mysql_query10("delete from player.item where owner_id='"..oyuncuHesap_id.."' and id='"..esyaKimlik.."' ") if editEsyaSil then syschat("Edit eşya bulundu ve silindi. Karakter adı: "..oyuncuKarakterAdi.." | Eşya Kodu: "..esyaKodu.." | Efsun kodu: "..efsunTipi.. " | Efsun değeri: "..efsunDegeri) end -- silme kontrol end else if efsunDegeri > digerEfsunlar then editEsyaSil = mysql_query10("delete from player.item where owner_id='"..oyuncuHesap_id.."' and id='"..esyaKimlik.."' ") if editEsyaSil then syschat("Edit eşya bulundu ve silindi. Karakter adı: "..oyuncuKarakterAdi.." | Eşya Kodu: "..esyaKodu.." | Efsun kodu: "..efsunTipi.. " | Efsun değeri: "..efsunDegeri) end -- silme kontrol end end -- max hp tipini kontrol endi end -- for p endi end -- for k endi end -- for i endi end end end
Hazır indirmek isteyenler için:
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Bunu kaydedip çıkıyoruz.
2-)Putty'e geliyoruz.
cd /usr/game/share/locale/turkey/quest yazıp enterliyoruz. Daha sonra şu komutu yazıyoruz.
./qc editsil.lua
Putty ile de işimiz bitti.
3-) Oyuna dönüyoruz ve bir GM karakter ile "/reload q" çekiyoruz.
4-) Daha sonra edit eşya yaratarak 20095 kodlu NPCden sistemi kontrol edebilirsiniz.
NOT: Sistem TR tipi efsun oranlarına göre ayarlanmıştır.
Ş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
- 692





iyide ben ninjanın okuna ORT Ekliyorum 200 li alıyorum count 200 oluyor yani bunuda düzenlesen iyi olur