vSRO Çözüldü Belirli Seviyelerde Cheste item göndertme oto ? (Maxiguard )

realmardinspor

.
Aktiflik: 12%
500 mesaj Muhafız
Katılım
3 Haz 2019
Mesajlar
908
Çözümler
5
Tepkime puanı
231
Puan
43
Yaş
28
Konum
İstanbul / Esenler
Thread owner
Arkadaşlar Belirli Levellerde Oyunculara Oto bir şekilde item göndertmek istiyorum.

Örnek: 40. Seviyeye Ulaştınız Tebrikler , Chestinize %İtemin İsmi% 2 Adet gönderilmiştir.
Örnek: 50. Seviyeye Ulaştınız Tebrikler , Chestinize %İtemin İsmi% 2 Adet gönderilmiştir.
Örnek: 60. Seviyeye Ulaştınız Tebrikler , Chestinize %İtemin İsmi% 2 Adet gönderilmiştir.

%İtemin ismini sistem otomatik ne gönderiyorsa onu yazmalı%

Bu şekilde ?
 
Thread owner
o zaman belirli levele ulaşan karaktere özel olarak göndericeksin 1000 kişi aynı anda belirlediğin levele ulaşamazki 😂
Kanka bir yerde görmüştüm. mesala 50 Lw Oldum Auto Cheste item geliyordu. bunu elle yollayacak hali yok :) birşeyi tetikliyor ki geliyor
 
Oyla 0
aynen evet benden bundan bahsediyorum, tetiklemesi için bakman gereken biryer var. Ben burda sana direk prosedürü kopyala yapıştır yaparsam hazır emek verilmiş bir kodu kullanıcaksın. Vsro da veya silkroad'da oyun içinde oluşan eventları takip edebildiğin bir yer var SRO_VT_LOG bu veritabanı oyun içinde olan şeyleri logluyor oraya bakıp birşeyler yapabilirsin
 
Oyla 1
@Hades 'in de belirttiği gibi _AddLogChar prosedürünü ilglendiren bir durum , burada Leveli takip eden EventID lerden yola çıkarak bir Query yazacaksın.
Daha sonra Bunu içeri olarak elde ettireceğin prosedüre göre uyarlayıp o karakter her data Lv'inde güncellenerek Itemcestine itemi alabilecek.
Balığı drekt kimse vermek istemez , ama tutmayı öğretebilir.
 
Oyla 0
Sorununuz cozuldumu bir geri dönüş bekliyoruz. Cozulmediyse akşam forum discordundan iletişime geçerseniz yardımcı olurum
 
Oyla 0
Merhaba bir deneme yaptım test etmekte fayda var geliştirme yapılabilir
USE [SRO_VT_LOG]
GO
/****** Object: StoredProcedure [dbo].[_AddLogChar] Script Date: 4/22/2024 2:16:12 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[_AddLogChar]
@CharID int,
@EventID tinyint,
@Data1 int,
@Data2 int,
@strPos varchar(64),
@Desc varchar(128)
AS
BEGIN
DECLARE @Charname16 varchar(64)
DECLARE @ItemCodename varchar(128)
DECLARE @ItemQuantity int = 1
DECLARE @ItemName varchar(128)
DECLARE @RewardLevel varchar(20)
DECLARE @NoticeMessage varchar(200)
DECLARE @AlreadyRewarded BIT


SELECT @Charname16 = CharName16 FROM SRO_VT_SHARD.._Char WHERE CharID = @CharID


IF @Data2 IN (10, 20, 30)
BEGIN
-- Her seviye için farklı item kodlarını ayarlayın
SET @ItemCodename = CASE
WHEN @Data2 = 10 THEN 'ITEM_ETC_SD_TOKEN_02'
WHEN @Data2 = 20 THEN 'ITEM_ETC_SD_TOKEN_03'
WHEN @Data2 = 30 THEN 'ITEM_ETC_SD_TOKEN_04'
ELSE NULL
END


SELECT @ItemName = NameStrID128 FROM SRO_VT_SHARD.._RefObjCommon WHERE CodeName128 = @ItemCodename
SET @RewardLevel = 'Level ' + CAST(@Data2 AS VARCHAR) + ' Reward'


SELECT @AlreadyRewarded = CASE
WHEN EXISTS (SELECT 1 FROM _RewardedLevels WHERE CharID = @CharID AND Level = @Data2) THEN 1
ELSE 0
END

IF @AlreadyRewarded = 0
BEGIN

EXEC MaxiGuard_User.._AddItemToChest @CharID, @ItemCodename, @ItemQuantity, @RewardLevel


SET @NoticeMessage = FORMATMESSAGE('[%%s] Levele [%%s] Kazandın!', @Charname16, @ItemName)
INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)
VALUES (500, 'GameServer', @Charname16, @NoticeMessage, @RewardLevel, GETDATE())


INSERT INTO _LogEventChar (CharID, EventTime, EventID, Data1, Data2, strDesc)
VALUES (@CharID, GETDATE(), @EventID, @Data1, @Data2, @NoticeMessage)


INSERT INTO _RewardedLevels (CharID, Level)
VALUES (@CharID, @Data2)
END
END


END


declare @len_pos int
declare @len_desc int
set @len_pos = len(@strPos)
set @len_desc = len(@Desc)
if (@len_pos > 0 and @len_desc > 0)
begin
insert _LogEventChar values(@CharID, GetDate(), @EventID, @Data1, @Data2, @strPos, @Desc)
end
else if (@len_pos > 0 and @len_desc = 0)
begin
insert _LogEventChar (CharID, EventTime, EventID, Data1, Data2, EventPos) values(@CharID, GetDate(), @EventID, @Data1, @Data2, @strPos)
end
else if (@len_pos = 0 and @len_desc > 0)
begin
insert _LogEventChar (CharID, EventTime, EventID, Data1, Data2, strDesc) values(@CharID, GetDate(), @EventID, @Data1, @Data2, @Desc)
end
else
begin
insert _LogEventChar (CharID, EventTime, EventID, Data1, Data2) values(@CharID, GetDate(), @EventID, @Data1, @Data2)
end

CREATE TABLE _RewardedLevels (
CharID INT,
Level INT,
PRIMARY KEY (CharID, Level)
)
SRO[2024-04-22 14-21-56]_49.jpg
 
Oyla 0

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

Geri
Üst Alt