Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!
Affected files
Old: Total playtime accumulation (increasing counter)
New: Remaining playtime countdown (decreasing timer). When the remaining time reaches 0, the player is disconnected.
-
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
-
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
-
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
-
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.,Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
-
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
-
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
-
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
-
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Old: Total playtime accumulation (increasing counter)
New: Remaining playtime countdown (decreasing timer). When the remaining time reaches 0, the player is disconnected.
Ekli dosyalar
Son düzenleme:
Do u have an image of the system?
It is a mandatory rule to share image of systems in this forum.
It is a mandatory rule to share image of systems in this forum.
i added explanationDo u have an image of the system?
It is a mandatory rule to share image of systems in this forum.
Do u have an image of the system?
It is a mandatory rule to share image of systems in this forum.
Görsel kanıt eklenebilecek bir konu değil aslında, açıklamayı şöyle yapalım konu ile ilgili :
Yeni Oynama Süresi Sistemi
Kalan süreye dayalı geri sayım, otomatik bağlantı kesme ve süre yükleme sistemi
Kalan süreye dayalı geri sayım, otomatik bağlantı kesme ve süre yükleme sistemi
Sistem Nedir?
Yeni Oynama Süresi Sistemi, oyuncuların oyunda kullanabileceği süreyi kontrol eden bir geri sayım sistemidir.
Eski sistemde oyuncunun toplam oynama süresi sürekli artarken, yeni sistemde oyuncunun kalan oynama süresi dakika dakika azalır.
Oyuncunun kalan süresi 0 dakikaya ulaştığında oyun bağlantısı otomatik olarak kesilir.
Bu sistem aşağıdaki projelerde kullanılabilir:
- Süreli oyun erişimi
- Premium veya VIP üyelik sistemi
- İnternet kafe tarzı kullanım sistemi
- Yeni oyuncular için deneme süresi
- Günlük oyun süresi sınırı
- Etkinliklerden oyun süresi kazanma
- Mağazadan süre paketi satın alma
- Görev ve sandık ödülleri
Eski Sistem ile Yeni Sistem Arasındaki Fark
Eski Sistem
Eski sistemde
playtime değeri, oyuncunun toplam oynama süresini tutuyordu.Oyuncu oyunda kaldıkça değer sürekli artıyordu.
Kod:
Başlangıç: 0 dakika
10 dakika sonra: 10
30 dakika sonra: 30
1 saat sonra: 60
Bu sistem yalnızca oyuncunun toplam kaç dakika oynadığını hesaplamak için kullanılıyordu.
Yeni Sistem
Yeni sistemde
playtime değeri artık toplam oynanan süreyi değil, oyuncunun kalan oynama süresini tutar.Sayaç yukarı doğru artmak yerine aşağı doğru azalır.
Kod:
Başlangıç süresi: 60 dakika
10 dakika sonra: 50 dakika
30 dakika sonra: 30 dakika
60 dakika sonra: 0 dakika
Kalan süre sıfıra ulaştığında oyuncunun bağlantısı kesilir.
Sistemin Çalışma Mantığı
Sistem genel olarak aşağıdaki şekilde çalışır:
- Oyuncuya belirli miktarda oynama süresi tanımlanır.
- Oyuncu giriş yaptığında kalan süresi kontrol edilir.
- Kalan süre oyuncuya mesaj olarak gösterilir.
- Oyuncu çevrim içi olduğu sürece her dakika süre azalır.
- Kalan süre sıfıra ulaştığında oyuncunun bağlantısı kesilir.
- Oyuncu eşya, komut veya Lua fonksiyonu üzerinden yeni süre kazanabilir.
Veritabanı Yapısı
Sistem,
player tablosundaki playtime sütununu kullanır.
Kod:
player.playtime
Bu sütun artık oyuncunun toplam oynama süresini değil, kalan oynama süresini dakika cinsinden saklar.
Kod:
playtime = 60
Oyuncunun 60 dakika oynama hakkı olduğunu belirtir.
Kod:
playtime = 120
Oyuncunun 120 dakika, yani 2 saat oynama hakkı olduğunu belirtir.
Kod:
playtime = 0
Oyuncunun oynama süresinin bittiğini belirtir.
Yeni Karakterlerin Başlangıç Süresi
Yeni oluşturulan karakterler varsayılan olarak:
Kod:
60 dakika
oynama süresiyle başlar.
Bu nedenle yeni bir karakter ilk oluşturulduğunda yaklaşık 1 saat oyun oynayabilir.
Oyuna Giriş Kontrolü
Oyuna giriş kontrolü
input_login.cpp dosyasında gerçekleştirilir.Oyuncu oyuna giriş yaptığında sistem, karakterin
playtime değerini kontrol eder.Kalan Süre Sıfırdan Büyükse
Oyuncunun kalan süresi varsa giriş işlemi normal şekilde devam eder.
Oyuncuya kalan süresi mesaj olarak gösterilir.
Kod:
Kalan oynama süreniz: 60 dakika.
Kalan Süre Sıfırsa
Oyuncunun
playtime değeri sıfırsa:- Oyuncuya oynama süresinin bittiğini belirten mesaj gönderilir.
- Oyuncuya bağlantısının kesileceği bildirilir.
- 5 saniye beklenir.
- Oyuncunun bağlantısı otomatik olarak kesilir.
Örnek mesaj:
Kod:
Oynama süreniz sona ermiştir.
5 saniye içinde bağlantınız kesilecektir.
5 saniyelik bekleme süresi, oyuncunun neden oyundan çıkarıldığını anlayabilmesi için kullanılır.
Oynama Süresinin Azaltılması
Süre azaltma işlemi
char.cpp içerisindeki kayıt veya zamanlama olayında gerçekleştirilir.Oyuncu çevrim içi olduğu sürece kalan oynama süresi her dakika 1 azalır.
Kod:
Her 1 dakikada playtime değeri 1 azalır.
Örnek:
Kod:
Başlangıç: 60 dakika
1 dakika sonra: 59 dakika
2 dakika sonra: 58 dakika
10 dakika sonra: 50 dakika
Oyuncu oyundan çıktığında kalan süre veritabanına kaydedilir.
Oyuncu tekrar giriş yaptığında süre kaldığı yerden devam eder.
Süre Sıfıra Ulaştığında
Kalan süre sıfıra ulaştığında:
- Oyuncuya süre bitiş mesajı gönderilir.
- Kalan süre veritabanına kaydedilir.
- Oyuncunun bağlantısı otomatik olarak kesilir.
Bu sayede oyuncu, oynama hakkı bittikten sonra sunucuda kalamaz.
Oynama Süresi Yükleme Eşyası
Sisteme yeni bir eşya kullanım alt türü eklenmiştir:
Kod:
USE_PLAYTIME_CHARGE
Bu alt türe sahip bir eşya kullanıldığında oyuncuya oynama süresi eklenir.
Eşyanın vereceği süre
value[0] alanından belirlenir.
Kod:
value[0] = 60
Oyuncuya 60 dakika ekler.
Kod:
value[0] = 120
Oyuncuya 120 dakika, yani 2 saat ekler.
Kod:
value[0] = 240
Oyuncuya 240 dakika, yani 4 saat ekler.
Örnek Kullanım
Oyuncunun mevcut süresi:
Kod:
20 dakika
Oyuncu, 60 dakika veren bir süre eşyası kullanırsa:
Kod:
20 + 60 = 80 dakika
Oyuncunun yeni kalan oynama süresi 80 dakika olur.
Item Proto Ayarları
Oynama süresi veren eşyalar
DB/item_proto içerisinde aşağıdaki değerlerle yapılandırılmalıdır.
Kod:
type = 1
subtype = 30
value0 = Verilecek dakika miktarı
Değerlerin açıklaması:
- type = 1: ITEM_USE
- subtype = 30: USE_PLAYTIME_CHARGE
- value0: Oyuncuya eklenecek dakika miktarı
60 Dakikalık Eşya
Kod:
type = 1
subtype = 30
value0 = 60
120 Dakikalık Eşya
Kod:
type = 1
subtype = 30
value0 = 120
240 Dakikalık Eşya
Kod:
type = 1
subtype = 30
value0 = 240
Bu yapı sayesinde farklı miktarlarda oynama süresi veren birçok eşya hazırlanabilir.
/recharge Komutu
Sisteme, oyuncunun kalan oynama süresine manuel olarak dakika eklemek için yeni bir komut eklenmiştir.
Komut kullanımı:
Kod:
/recharge <dakika>
Örnek:
Kod:
/recharge 60
Bu komut, oyuncunun mevcut oynama süresine 60 dakika ekler.
Oyuncunun 30 dakikası varsa:
Kod:
30 + 60 = 90 dakika
olur.
Parametresiz Kullanım
Komut dakika belirtilmeden kullanılırsa kullanım bilgisi gösterilir.
Kod:
/recharge
Örnek çıktı:
Kod:
Kullanım: /recharge <dakika>
Bu komut aşağıdaki işlemler için kullanılabilir:
- Sistemi test etmek
- Oyunculara manuel süre vermek
- Etkinlik ödülü dağıtmak
- Hatalı süreleri düzeltmek
- Game Master işlemleri gerçekleştirmek
Lua API Desteği
Sistemin görevler ve etkinlikler üzerinden yönetilebilmesi için Lua API fonksiyonları eklenmiştir.
pc.get_playtime()
Oyuncunun kalan oynama süresini dakika cinsinden döndürür.
Kod:
local remaining_time = pc.get_playtime()
say("Kalan oynama süren: " .. remaining_time .. " dakika.")
Oyuncunun 45 dakikası varsa fonksiyon:
Kod:
45
değerini döndürür.
Bu fonksiyon aşağıdaki alanlarda kullanılabilir:
- Görev ekranında kalan süreyi göstermek
- Süresi azalan oyuncuya uyarı vermek
- Süresi olmayan oyuncunun göreve girişini engellemek
- Süreye bağlı etkinlik hazırlamak
pc.add_playtime(minutes)
Oyuncunun kalan oynama süresine belirtilen miktarda dakika ekler.
Kod:
pc.add_playtime(60)
Bu kod oyuncuya 60 dakika oynama süresi ekler.
Görev örneği:
Kod:
say_title("Oynama Süresi Ödülü")
say("Bu görevi tamamladığın için")
say("60 dakika oynama süresi kazandın.")
pc.add_playtime(60)
Bu fonksiyon aşağıdaki sistemlerle birlikte kullanılabilir:
- Görevler
- Etkinlikler
- Günlük giriş ödülleri
- Boss ödülleri
- Sandık sistemleri
- Premium üyelikler
- Kupon sistemleri
- Nesne market satın alımları
Örnek Oyuncu Senaryosu
1. Karakter Oluşturma
Yeni karakter oluşturulduğunda:
Kod:
playtime = 60
olarak ayarlanır.
Oyuncunun 60 dakika oynama hakkı bulunur.
2. Oyuna Giriş
Oyuncu giriş yaptığında aşağıdaki mesajı görür:
Kod:
Kalan oynama süreniz: 60 dakika.
3. Oyunda Süre Geçirmesi
Oyuncu 25 dakika oynarsa:
Kod:
60 - 25 = 35 dakika
süresi kalır.
4. Oyundan Çıkış ve Tekrar Giriş
Oyuncu oyundan çıktığında kalan 35 dakika veritabanına kaydedilir.
Tekrar giriş yaptığında:
Kod:
Kalan oynama süreniz: 35 dakika.
mesajını görür.
Sistem tekrar 60 dakikadan başlamaz. Kalan süre üzerinden devam eder.
5. Süre Yükleme
Oyuncu 60 dakika veren bir eşya kullanırsa:
Kod:
35 + 60 = 95 dakika
olur.
6. Sürenin Bitmesi
Oyuncu oynamaya devam ettikçe sayaç azalır.
Kod:
3 dakika
2 dakika
1 dakika
0 dakika
Süre sıfıra ulaştığında oyuncunun bağlantısı kesilir.
Oyuncu tekrar giriş yapmaya çalışırsa süre bitiş mesajı gösterilir ve 5 saniye sonra bağlantısı tekrar kesilir.
Oyuncunun yeniden oynayabilmesi için karakterine yeni süre eklenmesi gerekir.
Bu Sistem Ne İşe Yarar?
Süreli Üyelik Sistemi
Oyunculara satın aldıkları pakete göre oyun süresi verilebilir.
Kod:
1 saatlik paket
5 saatlik paket
24 saatlik paket
100 saatlik paket
İnternet Kafe Sistemi
Oyuncuya satın aldığı veya tanımlanan süre kadar oyun erişimi verilebilir.
Süre bittiğinde oyuncunun bağlantısı otomatik olarak kesilir.
Yeni Oyuncu Deneme Süresi
Yeni oyunculara ücretsiz olarak 60 dakika deneme süresi verilebilir.
Oyuncular daha sonra görevlerden, etkinliklerden, eşyalardan veya mağazadan yeni süre kazanabilir.
Etkinlik Ödülleri
Oyunculara etkinlik ödülü olarak oynama süresi verilebilir.
Kod:
Boss öldürme ödülü: 30 dakika
Günlük görev ödülü: 60 dakika
Haftalık etkinlik ödülü: 240 dakika
Premium veya VIP Sistem
Premium oyunculara daha yüksek miktarda oynama süresi tanımlanabilir.
Kod:
Normal oyuncu: 60 dakika
Premium oyuncu: 600 dakika
VIP oyuncu: Düzenli yenilenen süre
Günlük Oyun Süresi Limiti
Oyunculara her gün belirli miktarda oynama süresi verilebilir.
Örneğin, oyuncuya günlük 120 dakika tanımlanırsa iki saatlik kullanım sonunda oyuncu oyundan çıkarılır.
Sistemin Avantajları
- Oynama süresi veritabanında saklanır.
- Oyuncu çıkış yaptığında kalan süre kaybolmaz.
- Süre her dakika otomatik olarak azalır.
- Süre sıfırlandığında oyuncu otomatik olarak çıkarılır.
- Eşyalar üzerinden süre eklenebilir.
- Yönetici komutuyla manuel süre verilebilir.
- Lua görevleri üzerinden süre yönetilebilir.
- Mağaza ve ödeme sistemlerine bağlanabilir.
- Etkinlik ödülü olarak kullanılabilir.
- Farklı süre paketleri hazırlanabilir.
Dikkat Edilmesi Gereken Noktalar
Süre Dakika Cinsindedir
playtime alanındaki değer dakika olarak değerlendirilir.
Kod:
60 = 60 dakika
120 = 2 saat
1440 = 24 saat
Eski Verilerin Dönüştürülmesi
Eski sistemde
playtime toplam oynama süresini tuttuğu için mevcut oyuncuların değerleri çok yüksek olabilir.Örneğin:
Kod:
playtime = 150000
değerine sahip eski bir karakter yeni sisteme doğrudan geçirilirse, oyuncuya 150.000 dakika oynama hakkı verilmiş olur.
Bu nedenle sistem kurulurken eski değerlerin sıfırlanması veya uygun bir başlangıç süresine dönüştürülmesi gerekir.
Örnek SQL sorgusu:
SQL:
UPDATE player.player
SET playtime = 60;
[WARNING]Bu sorgu bütün karakterlerin oynama süresini 60 dakika olarak değiştirir. Canlı veritabanında işlem yapılmadan önce mutlaka yedek alınmalıdır.[/WARNING]
XenForo kurulumunuzda
WARNING etiketi desteklenmiyorsa bu bölümü normal kalın yazı olarak kullanabilirsiniz.Sürenin Negatife Düşmesi
Süre azaltılırken
playtime değerinin sıfırın altına düşmesi engellenmelidir.
C++:
if (playtime > 0)
{
playtime--;
}
Süre sıfıra ulaştığında değer sıfır olarak korunmalı ve oyuncunun bağlantısı kesilmelidir.
Eşya Kullanım Kontrolleri
Süre yükleme eşyası kullanılırken:
- Eşya alt türü kontrol edilmelidir.
value[0]değeri sıfırdan büyük olmalıdır.- Süre başarıyla eklendikten sonra eşya tüketilmelidir.
- Oyuncuya eklenen süre mesaj olarak bildirilmelidir.
Örnek mesaj:
Kod:
Oynama sürenize 60 dakika eklendi.
Toplam kalan süreniz: 125 dakika.
Maksimum Süre Sınırı
Oyuncuların sınırsız miktarda süre biriktirmesini önlemek için maksimum süre sınırı eklenebilir.
Örnek:
Kod:
Maksimum oynama süresi: 43.200 dakika
43.200 dakika yaklaşık 30 güne karşılık gelir.
Özet
Yeni sistemde
playtime, oyuncunun toplam oynama süresini değil, kalan oynama hakkını temsil eder.Oyuncu çevrim içi olduğu sürece sayaç her dakika azalır. Kalan süre sıfıra ulaştığında oyuncunun bağlantısı otomatik olarak kesilir.
Yeni karakterler 60 dakika ile başlar. Oyuncular süre yükleme eşyaları,
/recharge komutu veya Lua fonksiyonları aracılığıyla yeni oynama süresi kazanabilir.Sistem; süreli üyelik, premium erişim, internet kafe modeli, etkinlik ödülleri, günlük limit ve kontrollü oyun erişimi gibi birçok farklı projede kullanılabilir.
İyi forumlar.
Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 1, Misafir: 0)
Benzer konular
- Cevaplar
- 1
- Görüntüleme
- 266
- Cevaplar
- 23
- Görüntüleme
- 2K
- Cevaplar
- 8
- Görüntüleme
- 1K
Altın Konu
[C++] Prevent Ride in War (PvP) Maps
- Cevaplar
- 7
- Görüntüleme
- 2K