- Katılım
- 11 Ağu 2010
- Konular
- 67
- Mesajlar
- 1,092
- Online süresi
- 25717s
- Reaksiyon Skoru
- 476
- Altın Konu
- 0
- Başarım Puanı
- 188
- TM Yaşı
- 15 Yıl 8 Ay 15 Gün
- MmoLira
- 264
- DevLira
- 0
Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!
Merhabalar,
Bir arkadaşın önerisi üzerine bu sistemi hazırlamaya karar verdim. Umarım beğenirsiniz ve kullanılırsınız. Öncelikle sistemde herhangi bir bug olduğunu düşünmüyorum. En azından kontrol ettiğim kadarı ile olabilecek her türlü bugu engellemeye çalıştım. Eğer herhangi bir bug ile karşılaşırsanız lütfen bildirin. Kısa sürede düzeltir yenisini yayınlarım. Buna ek olarak sistemi biraz aceleye getirdiğim için kodlamada acemilik yapmış olabilirim. Fonksiyonları kullanarak yapacaktım fakat aceleye getirdiğim için bu şekilde oldu. Yinede kullanışlı ve herhangi bir sorun görünmüyor.
Peki nedir Offline Alışveriş Sistemi?
Oyuncuların oyunda olmasalar dahi eşyalarını satabilecekleri bir sistemdir.
Sistem nasıl işler?
Oyuncular satmak istedikleri eşyayı NPC'nin üzerine atarlar. Daha sonra karşılarına fiyat, ne kadar süre satışta kalacağı ve hangi kategoriye eklemek istediği bilgileri gelir. Gerekli seçimi yaptıktan sonra eşya alışverişe ekler. Oyuncu dilerse eşyasını geri çekebilir ve eşyasının fiyatını güncelleyebilir. Oyuncunun eşyasının süresi dolarsa o eşyanın satışı engellenir ve süresi bittikten sonra herhangi bir oyuna çıkış-giriş durumunda eşya oyuncunun kasasına yollanır ve alışveriş listesinden silinir. Eğer oyuncunun eşyası satılırsa, Alışveriş Kasasına parası kayıt edilir. Satılan tüm eşyaların parası orada tutulur ve oyuncu dilerse parasını çekebilir.
MySQL dosyasını "player" veritabanına ekliyoruz. Herhangi bir işlem yapmanıza gerek yok. (REBOOT atmanıza gerek yok eklemeyi yaptıktan sonra)
Şimdi bir işlem daha yapmamız gerekiyor. "Player" tablosuna aşağıdaki gibi sağ tıklayıp "Design Table" diyoruz.
Daha sonra "alisveris_param" adında sütun ekliyoruz veritabanımıza.
ÖNEMLİ UYARI: Default değerini mutlaka 0 yapın! Çok önemli.
VİP Sütunu eklemek:
"player" tablosuna sağ tıklıyor "Design Table" diyoruz. Daha sonra aşağıdaki gibi bir "vip" sütunu ekliyoruz:
ÖNEMLİ UYARI: Default değerini mutlaka 0 yapın! Çok önemli.
ÖNEMLİ UYARI: Kişiyi VİP yapmak için 1 değerini girin. Eğer 1 dışında bir sayı yazarsanız VİP sistemi çalışmaz. 0 yaparsanız VİP özelliği gider, 1 yazarsanız aktif olur.
PARA MİKTARI ARASINA .(NOKTA) KOYMA:
Şimdi para tutarlarının arasına .(nokta) koyma fonksiyonuna geldik. Bu fonksiyonu da eklemeniz gerekiyor. Eğer bu fonksiyonu eklemezseniz sistem çalışmaz. Ona göre kodlandı. Şimdi o fonksiyonu eklemeyi göstereceğim:
"questlib.lua" dosyasını açıyoruz ve en alta aşağıdaki kodları ekleyip kapatıyoruz. Reboot atmanıza gerek yok. Başka işlem yapmanıza da gerek yok. "questlib.lua" nın en altına aşağıdaki vermiş olduğum kodu eklemeniz yeterli.
Fonksiyon kodu:
Bu işlem de bittikten sonra "quest_functions" dosyasını açıyor ve en alta "genel_veri" fonksiyonunu ekliyoruz. Bura ile de işimiz bitti.
LUA dosyasını okutma:
1-) usr/game/share/locale/turkey/quest bölümüne "alisveris_sistemi.lua" dosyasını atıyoruz. Daha sonra;
2-)Putty'e geliyoruz.
cd /usr/game/share/locale/turkey/quest yazıp enterliyoruz. Daha sonra şu komutu yazıyoruz.
./qc alisveris_sistemi.lua
Putty ile de işimiz bitti.
3-) Oyuna dönüyoruz ve bir GM karakter ile "/reload q" çekiyoruz.
4-) Daha sonra Offline Alışveriş Sistemini kullanmaya başlayabilirsiniz.
Bir arkadaşın önerisi üzerine bu sistemi hazırlamaya karar verdim. Umarım beğenirsiniz ve kullanılırsınız. Öncelikle sistemde herhangi bir bug olduğunu düşünmüyorum. En azından kontrol ettiğim kadarı ile olabilecek her türlü bugu engellemeye çalıştım. Eğer herhangi bir bug ile karşılaşırsanız lütfen bildirin. Kısa sürede düzeltir yenisini yayınlarım. Buna ek olarak sistemi biraz aceleye getirdiğim için kodlamada acemilik yapmış olabilirim. Fonksiyonları kullanarak yapacaktım fakat aceleye getirdiğim için bu şekilde oldu. Yinede kullanışlı ve herhangi bir sorun görünmüyor.
Peki nedir Offline Alışveriş Sistemi?
Oyuncuların oyunda olmasalar dahi eşyalarını satabilecekleri bir sistemdir.
Sistem nasıl işler?
Oyuncular satmak istedikleri eşyayı NPC'nin üzerine atarlar. Daha sonra karşılarına fiyat, ne kadar süre satışta kalacağı ve hangi kategoriye eklemek istediği bilgileri gelir. Gerekli seçimi yaptıktan sonra eşya alışverişe ekler. Oyuncu dilerse eşyasını geri çekebilir ve eşyasının fiyatını güncelleyebilir. Oyuncunun eşyasının süresi dolarsa o eşyanın satışı engellenir ve süresi bittikten sonra herhangi bir oyuna çıkış-giriş durumunda eşya oyuncunun kasasına yollanır ve alışveriş listesinden silinir. Eğer oyuncunun eşyası satılırsa, Alışveriş Kasasına parası kayıt edilir. Satılan tüm eşyaların parası orada tutulur ve oyuncu dilerse parasını çekebilir.
Dilerseniz sistemin nasıl işlediği ile ilgili ayrıntılı bir video paylaşayım:
LUA DOSYASI:
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:
"questing.lua" dosyasını açıyor ve en altına aşağıdaki fonksiyonu ekliyoruz:
MYSQL FONKSİYONU:
Ş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.
Daha sonra kullanacağımız veritabanı dosyasını indiriyoruz.
LUA DOSYASI:
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
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:
"questing.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.
Daha sonra kullanacağımız veritabanı dosyasını indiriyoruz.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
MySQL dosyasını "player" veritabanına ekliyoruz. Herhangi bir işlem yapmanıza gerek yok. (REBOOT atmanıza gerek yok eklemeyi yaptıktan sonra)
Şimdi bir işlem daha yapmamız gerekiyor. "Player" tablosuna aşağıdaki gibi sağ tıklayıp "Design Table" diyoruz.
Daha sonra "alisveris_param" adında sütun ekliyoruz veritabanımıza.
ÖNEMLİ UYARI: Default değerini mutlaka 0 yapın! Çok önemli.
VİP Sütunu eklemek:
"player" tablosuna sağ tıklıyor "Design Table" diyoruz. Daha sonra aşağıdaki gibi bir "vip" sütunu ekliyoruz:
ÖNEMLİ UYARI: Default değerini mutlaka 0 yapın! Çok önemli.
ÖNEMLİ UYARI: Kişiyi VİP yapmak için 1 değerini girin. Eğer 1 dışında bir sayı yazarsanız VİP sistemi çalışmaz. 0 yaparsanız VİP özelliği gider, 1 yazarsanız aktif olur.
PARA MİKTARI ARASINA .(NOKTA) KOYMA:
Şimdi para tutarlarının arasına .(nokta) koyma fonksiyonuna geldik. Bu fonksiyonu da eklemeniz gerekiyor. Eğer bu fonksiyonu eklemezseniz sistem çalışmaz. Ona göre kodlandı. Şimdi o fonksiyonu eklemeyi göstereceğim:
"questlib.lua" dosyasını açıyoruz ve en alta aşağıdaki kodları ekleyip kapatıyoruz. Reboot atmanıza gerek yok. Başka işlem yapmanıza da gerek yok. "questlib.lua" nın en altına aşağıdaki vermiş olduğum kodu eklemeniz yeterli.
Fonksiyon kodu:
PHP:
function genel_veri(gelen_miktar)
gelen2 = tostring(gelen_miktar)
local gelen = gelen_miktar
local sayac = 10
local basamak = 1
local ilkhal = basamak
while true do
if gelen / sayac >= 1 then
basamak = basamak + 1
sayac = sayac * 10
else
break
end
end
t = {}
sonucText = ""
for i=1, string.len(gelen2) do
t[i]= (string.sub(gelen2,i,i))
end
for k , v in pairs(t) do--1324
if (basamak == 9 or basamak == 6 or basamak == 3) and sonucText != "" then
sonucText = sonucText.."."
sonucText = sonucText..v
else
sonucText = sonucText..v
end
basamak = basamak - 1
end
return sonucText
end
Bu işlem de bittikten sonra "quest_functions" dosyasını açıyor ve en alta "genel_veri" fonksiyonunu ekliyoruz. Bura ile de işimiz bitti.
LUA dosyasını okutma:
1-) usr/game/share/locale/turkey/quest bölümüne "alisveris_sistemi.lua" dosyasını atıyoruz. Daha sonra;
2-)Putty'e geliyoruz.
cd /usr/game/share/locale/turkey/quest yazıp enterliyoruz. Daha sonra şu komutu yazıyoruz.
./qc alisveris_sistemi.lua
Putty ile de işimiz bitti.
3-) Oyuna dönüyoruz ve bir GM karakter ile "/reload q" çekiyoruz.
4-) Daha sonra Offline Alışveriş Sistemini kullanmaya başlayabilirsiniz.
Moderatör tarafında düzenlendi:
En Çok Reaksiyon Alan Mesajlar
Alışveriş Sistemi ile ilgili güncelleme yapıldı.
Eşya koyma özelliğini sadece VİP üyeler yapabilirler.
Sistemin aktif olması için yeni LUA dosyasını indirin ve player.sql tablosuna "vip" adında yeni sütun ekleyin.
Anlatım konuya da eklenmiştir.
Öğeyi görmek için üye olmalısınız.
Eşyanın Nesne Market'e gelmeme sorunu çözüldü. Konu güncellendi.
Öğeyi görmek için üye olmalısınız.
Arkadaşın MySQL'inde sıkıntı vardı. Sunucusunda MySQL kodları çalışmıyordu o sorunu giderdim ve sistem şuan çalışır durumda.
Sistemde herhangi bir hata yoktur arkadaşlar. Düzgün şekilde ekleyin ve sunucunuzda MySQL kodları çalıştığından emin olun.
- Katılım
- 18 Ağu 2010
- Konular
- 408
- Mesajlar
- 7,501
- Online süresi
- 1ay 13g
- Reaksiyon Skoru
- 5,833
- Altın Konu
- 0
- Başarım Puanı
- 294
- TM Yaşı
- 15 Yıl 8 Ay 9 Gün
- MmoLira
- 4,623
- DevLira
- 0
###
Son düzenleme:
- Katılım
- 18 Ağu 2010
- Konular
- 408
- Mesajlar
- 7,501
- Online süresi
- 1ay 13g
- Reaksiyon Skoru
- 5,833
- Altın Konu
- 0
- Başarım Puanı
- 294
- TM Yaşı
- 15 Yıl 8 Ay 9 Gün
- MmoLira
- 4,623
- DevLira
- 0
###
Son düzenleme:
- Katılım
- 11 Ağu 2010
- Konular
- 67
- Mesajlar
- 1,092
- Online süresi
- 25717s
- Reaksiyon Skoru
- 476
- Altın Konu
- 0
- Başarım Puanı
- 188
- TM Yaşı
- 15 Yıl 8 Ay 15 Gün
- MmoLira
- 264
- DevLira
- 0
güncelleme olarak markete süreli itemlerin kostüm gibi şeylerin koyulamamasını engellermisin
Evet engellenir. Bunun için tüm kostüm kodları gerekli olacak yalnız. Hatırlattığın iyi oldu. Çırak sandıklarını da engellemem gerekli. Aynı şekilde bazı aktarılamayan önemli eşyaları.
- Durum
- Üzgünüz bu konu cevaplar için kapatılmıştır...
Şu an konuyu görüntüleyenler (Toplam : 2, Üye: 0, Misafir: 2)
Benzer konular
- Cevaplar
- 2
- Görüntüleme
- 169
- Cevaplar
- 15
- Görüntüleme
- 603
- Cevaplar
- 2
- Görüntüleme
- 88

