vSRO Çözüldü Pc Limit:2 Stall Char Limit:1 Olarak Ayarlama (Maxiguard) Bu Konu Hakkında Bilgisi Olan ?

Bartu

C#’ın cümleleri benden, noktalı virgülleri sizden.

Developer
.
Aktiflik: 52%
Çırak 500 mesaj
Katılım
3 Kas 2024
Mesajlar
975
Çözümler
22
Tepkime puanı
4,131
Puan
93
Konum
Hindistan
Thread owner
Yani toplam 3 karakter girebiliyor. Stall karakter için bir limit eklemem gerekli. Aslında mantığını anladım, fakat yaparken tereddüt ettim. Çok fazla log tutturacak bir işlem de yapmak istemiyorum. 3. karakter girdiğinde, 1 dakika içinde stall açmazsa oyundan atsın mantığıyla bir şey yapmayı düşünüyorum. Bu konu hakkında yardımcı olabilecek ya da "Mantığı şöyle yaparsan iyi olur" diyebilecek bir kişi var mı?
 
Evet onun için trigger vs yaptım denedim bir sorun yok fakat fazla yük bindirmek istemedim atarım sunucu aldigimda 3. Char girdiğinde stal almazsa 15 saniye içinde disconnet yiyor
O zaman siz tam olarak belirttiğim şekilde yani Aries Silkroad da ki gibi bir sistem yapmışsınız umarım yakında düzenli bir paylaşım gelir :)
 
Oyla 0
MaxiGuard_User---hwidlist_V2 tablosunu kullanarak aynı hwid id ve ip limit kullanılan 3 char giriş yaptıysa 1 charın lastesregionu 25000, vs vs town bölgelerini yazdım eğer 3 chardan 1 i o bölgede değilse disconnet yedirmek için aşağıdaki prosedürü execlettim
Kod:
İçeriği görebilmek için Giriş yap ya da üye ol.
15 saniye delay hakkı verdim notice geçirdim
Triggerlattım okuması içinde
Örnek teleport mantıklı prosedür
Kod:
İçeriği görebilmek için Giriş yap ya da üye ol.

Problem Çözülmüştür, Fikir Veren Arkadaşlara Teşekkür Ediyorum Tekrardan...


Peki hwid 4 diyelim oyunda 5. char için bunu yapmak istersek hangi alanları güncellemem gerekli?
 
Oyla 0
Thread owner
Peki hwid 4 diyelim oyunda 5. char için bunu yapmak istersek hangi alanları güncellemem gerekli?
Remonun attığı prosedürü kullanarak kaç cap de serverin ona göre ayarlayabilirsin benim attığım procedur örnek tam kodlari eski sunucuda kaldı
 
Oyla 0
-- Seviye sınırını belirleyen değişken (dinamik olarak ayarlanabilir)
DECLARE @LevelLimit INT = 101;

-- Donanım kimliğini (HWID) alma
DECLARE @Hwid VARCHAR(128) = (SELECT enigma FROM hwidlist_V2 WITH (NOLOCK) WHERE charname = @Charname);

-- Aynı HWID'e sahip karakterlerin toplam seviyesini hesaplama
DECLARE @TotalLevel INT = (
SELECT SUM(level)
FROM hwidlist_V2 WITH (NOLOCK)
WHERE enigma = @Hwid
);

-- Aynı HWID'e sahip karakterlerin toplam sayısını hesaplama
DECLARE @CharCount INT = (
SELECT COUNT(*)
FROM hwidlist_V2 WITH (NOLOCK)
WHERE enigma = @Hwid
);

-- En son giriş yapan karakteri bulma
DECLARE @LastLoggedChar VARCHAR(25) = (
SELECT TOP 1 charname
FROM hwidlist_V2 WITH (NOLOCK)
WHERE enigma = @Hwid
ORDER BY logindate DESC -- En son giriş yapmış karakter
);

-- Eğer toplam karakter sayısı 3 veya daha fazla ise ve toplam seviye sınırı aşılmışsa
IF @CharCount >= 3 AND @TotalLevel > @LevelLimit
BEGIN
-- Son giren karakteri DC attırma
INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)
VALUES ('500', '0', '2', 'Level limit exceeded. Last character disconnected.', @LastLoggedChar, GETDATE());

-- Oyuncuların uyarıyı görmesi için 3 saniye bekletme
WAITFOR DELAY '00:00:03';

-- Disconnect komutunu gönderme
INSERT INTO _BridgeCommands (CommandID, Executor, Data1, Date)
VALUES (1, 'StallAsim', @LastLoggedChar, GETDATE());
END

-- Eğer toplam karakter sayısı 3'e ulaştıysa ve toplam seviye sınırı aşılmadıysa
IF @CharCount >= 3 AND @TotalLevel <= @LevelLimit
BEGIN
-- 3. karakterin sadece 1 seviye olması gerektiğini kontrol eden işlem
IF (SELECT level FROM hwidlist_V2 WHERE charname = @Charname) > 1
BEGIN
INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)
VALUES ('500', '0', '2', 'Pc Limit 2 + 1 Char Stall Character Level 1 !', @Charname, GETDATE());

-- Oyuncuların uyarıyı görmesi için 3 saniye bekletme
WAITFOR DELAY '00:00:03';

-- Disconnect komutunu gönderme
INSERT INTO _BridgeCommands (CommandID, Executor, Data1, Date)
VALUES (1, 'StallAsim', @Charname, GETDATE());
END
END

100 lv sınırı olan bir oyun için bunu kullanabilirsiniz konu hakkında fazla kaynak bulamadım bunu keşfettikten sonra geliştirdim. Öncelikle pc limit olayını örnek veriyorum 2+1 yapmak için lv sınırınızın (2x100)+1 şeklinde hesaplanmasını kontrol ediyor. Bunu suistimal etmemeleri için veya yüksek karakterlerin dc olmasından sonra stall charının oyuna etki etmemesi için yine kontrol yapıyor. Bence gayet sağlıklı oldu bir hata olursa çözümlemek için ulaşabilirsiniz
 
Oyla 0

Bu konuyu görüntüleyen kullanıcılar

Geri
Üst Alt