- Katılım
- 23 Eki 2022
- Mesajlar
- 8,185
- Çözümler
- 12
- Tepkime puanı
- 4,847
- Puanları
- 113
- Yaş
- 28
Merhaba,
Bu konuda vSRO için hazırlanmış "limited time +plus scroll system" mantığını paylaşıyorum.
Bu sistem, iteme + basıldığında bunu loglayarak belirli süre sonra + değerini düşürme / geri alma mantığıyla çalışır.
Bu sistem:
CREATE TABLE [dbo].[_PlusScrollLog](
[ID] [int] IDENTITY(1,1) NOT NULL,
[CharID] [int] NOT NULL,
[Serial64] [bigint] NOT NULL,
[StartTime] [datetime] NOT NULL,
[PlusTime] [int] NOT NULL
)
if (@Operation = 41)
begin
if (@ItemRefID = '1337')
begin
insert into [_PlusScrollLog]
(CharID,Serial64,StartTime,PlusTime)
values (@CharID,@ItemSerial,Getdate(),3) -- 3 hours
end
end
if (@EventID in (6,9,4,11))
begin
declare @OldItemSerial bigint =
(Select Serial64 from _PlusScrollLog where CharID = @CharID)
declare @OldTime datetime =
(select Top(1) StartTime from HILBILED.._PlusScrollLog
where CharID = @CharID and Serial64 = @OldItemSerial
order by StartTime desc)
if DATEDIFF(HOUR,3,GETDATE()) >= @OldTime
begin
Update SRO_VT_SHARD.._Items
set Optlevel -= 2
where Serial64 = @OldItemSerial
Delete from HILBILED.._PlusScrollLog
where Serial64 = @OldItemSerial
end
end
Bu konuda vSRO için hazırlanmış "limited time +plus scroll system" mantığını paylaşıyorum.
Bu sistem, iteme + basıldığında bunu loglayarak belirli süre sonra + değerini düşürme / geri alma mantığıyla çalışır.
Sistem Mantığı
Bu sistem:
- scroll kullanıldığında itemi loglar
- Item + basma işlemini _PlusScrollLog tablosuna kaydeder
- Belirlenen süre sonunda itemin + değerini düşürür
- Süre bazlı "temporary upgrade" sistemi oluşturur
Database – Log Table
CREATE TABLE [dbo].[_PlusScrollLog](
[ID] [int] IDENTITY(1,1) NOT NULL,
[CharID] [int] NOT NULL,
[Serial64] [bigint] NOT NULL,
[StartTime] [datetime] NOT NULL,
[PlusTime] [int] NOT NULL
)
_AddLogItem Procedure (Scroll Kullanımı)
if (@Operation = 41)
begin
if (@ItemRefID = '1337')
begin
insert into [_PlusScrollLog]
(CharID,Serial64,StartTime,PlusTime)
values (@CharID,@ItemSerial,Getdate(),3) -- 3 hours
end
end
_AddLogChar (Süre Kontrol Sistemi)
if (@EventID in (6,9,4,11))
begin
declare @OldItemSerial bigint =
(Select Serial64 from _PlusScrollLog where CharID = @CharID)
declare @OldTime datetime =
(select Top(1) StartTime from HILBILED.._PlusScrollLog
where CharID = @CharID and Serial64 = @OldItemSerial
order by StartTime desc)
if DATEDIFF(HOUR,3,GETDATE()) >= @OldTime
begin
Update SRO_VT_SHARD.._Items
set Optlevel -= 2
where Serial64 = @OldItemSerial
Delete from HILBILED.._PlusScrollLog
where Serial64 = @OldItemSerial
end
end
Sistem Ne Yapar?
- Scroll ile + basılan itemi kayıt altına alır
- 3 saat (veya ayarlanan süre) sonra kontrol eder
- Süre dolmuşsa itemin + değerini düşürür
- Log kaydını siler
Kullanım Alanları
- Temporary premium item sistemi
- Event + item boost sistemi
- PvP server "buff scroll" mekanikleri
- Pay2Win kontrollü upgrade sistemleri
Not
- EventID ve Operation server files'a göre değişebilir
- ItemRefID (1337) örnektir, gerçek scroll ID ile değiştirilmelidir
- Timer sistemi offline/online duruma göre optimize edilmelidir
- Production serverda dikkatli test edilmelidir
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.
