vSRO Çözüldü vSRO Starter Pack Oluşturma (Belirlenen İtemleri Verdirme)

Sieger

vSRO Developer, PK2 Editor

.
Developer
Aktiflik: 100%
Lord 2000 mesaj
Katılım
6 Şub 2019
Mesajlar
2,943
Çözümler
42
Tepkime puanı
8,043
Puan
303
Konum
vsroeditor.com
Web sitesi
vsroeditor.com
Thread owner
Merhabalar,
Sistem bildiğimiz gift box mantığı ile çalışıyor, bir tablodan verileri çekip oyuncuya exec ile aktarıyor fakat şöyle bir sorunum var.
Farklı bir prosedür ile tek exec kullanarak tabloda ki tüm itemleri oyuncuya verdirebiliyorum.
Devil vermek istediğim an sorun burada başlıyor.
Bildiğiniz gibi male,female olmak üzere 2 devil var benim yapmak istediğim belirlenen ObjCharID Male ise Male Devil, Female ise Female devil vermesi.
Bunu tabloya eklemiyorum, ikinci bir exec ile verdirmeye çalışıyorum fakat hiç bi şekilde olmuyor.

Eğer tabloya eklersek nasıl yapabiliriz?
Ya da tabloya eklemez ikinci exec ile yaparsak nasıl yapabiliriz?

Bunun detaylı anlatımı ya da tam prosedürü hiç bir forum da yok.

Çözüm:

Tablodan item verdirmek yerine aşağıda yazmış olduğum şekilde sorun çözülmüştür.

Sorunu şu şekilde çözdüm, tablodan item vermiyor lakin bir tık daha ileri yürüttüm daha güzel ve temiz oldu.
USE [SRO_VT_SHARD] -- Varsa farklı bir DB adı yazabilir ya da kendinize özel bir DB oluşturup onun adını yazabilirsiniz.
GO
/****** Object: StoredProcedure [dbo].[_StarterPackBronz] Script Date: 20.06.2019 19:43:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[_StarterPackBronz]
@CharID INT
as

BEGIN
DECLARE @CharName_SpecialPack VARCHAR(64)=
(SELECT CharName16 FROM [SRO_VT_SHARD].[dbo].[_Char] WITH (NOLOCK) WHERE CharID=@CharID);
DECLARE @CharType_SpecialPack INT=
(SELECT RefObjID FROM SRO_VT_SHARD.._Char WITH (NOLOCK) WHERE CharID=@CharID);

EXEC SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName_SpecialPack,'ITEM_MALL_PREMIUM_VIETNAM_GOLDTIME_PLUS',1,0
EXEC SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName_SpecialPack,'ITEM_COS_P_CAT_SCROLL',1,0

IF(@CharType_SpecialPack BETWEEN 1907 AND 1919) -->MALE CHINESE
BEGIN
EXEC SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName_SpecialPack,'ITEM_MALL_AVATAR_M_NASRUN',1,0
END
ELSE IF(@CharType_SpecialPack BETWEEN 1920 AND 1932) -->FEMALE CHINESE
BEGIN
EXEC SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName_SpecialPack,'ITEM_MALL_AVATAR_W_NASRUN',1,0
END
ELSE IF(@CharType_SpecialPack BETWEEN 14873 AND 14887) -->MALE EUROPEAN
BEGIN
EXEC SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName_SpecialPack,'ITEM_MALL_AVATAR_M_NASRUN',1,0
END
ELSE IF(@CharType_SpecialPack BETWEEN 14888 AND 14900) -->FEMALE EUROPEAN
BEGIN
EXEC SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName_SpecialPack,'ITEM_MALL_AVATAR_W_NASRUN',1,0
END
END
BEGIN
IF @Operation = '41' and (@ItemRefID = 42548) -- Starter Pack Bronz RefItemID
EXEC SRO_VT_SHARD.._StarterPackBronz @CharID --1.Prosedürü hangi tabloya okuttuysanız onun adını yazın.
END
2. prosedürü çoğaltmak ve birden çok starter pack eklemek isterseniz 2. prosedür yerine altta ki prosedürü kullanabilirsiniz.
BEGIN
IF @Operation = '41' and (@ItemRefID = 42548) -- Starter Pack Bronz RefItemID
EXEC SRO_VT_SHARD.._StarterPackBronz @CharID --1.Prosedürü hangi tabloya okuttuysanız onun adını yazın.
END

BEGIN
IF @Operation = '41' and (@ItemRefID = 42549) -- Starter Pack Silver RefItemID
EXEC SRO_VT_SHARD.._StarterPackSilver @CharID --1.Prosedürü hangi tabloya okuttuysanız onun adını yazın.
END

BEGIN
IF @Operation = '41' and (@ItemRefID = 42550) -- Starter Pack Gold RefItemID
EXEC SRO_VT_SHARD.._StarterPackGold @CharID --1.Prosedürü hangi tabloya okuttuysanız onun adını yazın.
END

BEGIN
IF @Operation = '41' and (@ItemRefID = 42551) -- Starter Pack King RefItemID
EXEC SRO_VT_SHARD.._StarterPackKing @CharID --1.Prosedürü hangi tabloya okuttuysanız onun adını yazın.
END
 
Son düzenleme:
Eh bari bu kadar insan gift box gibi bir sistem üzerinden prosedür ile verdirmek istiyor paylaşalım örnek veriyorum 1 exec ile tablodaki tüm o tabloya koydugunuz tüm itemleri veya eşyaları verdirecek şekilde geliyor .
 
Oyla 0
Thread owner
Eh bari bu kadar insan gift box gibi bir sistem üzerinden prosedür ile verdirmek istiyor paylaşalım örnek veriyorum 1 exec ile tablodaki tüm o tabloya koydugunuz tüm itemleri veya eşyaları verdirecek şekilde geliyor .
yok olmuyor onuda denedim diye hatırlıyorum
yine ya veriyor hepsini ya vermiyor ya da çarı buga sokup gs crashliyor

müsaitsen bi deneyip bakabilirsin
 
Oyla 0
Thread owner
Oyla 0
Thread owner
IF (@Operation = '41' AND @ItemRefID = 82001) begin declare @charname1 varchar(64) Set @charname1 = (Select CharName16 from [SRO_VT_SHARD].[dbo].[_Char] where CharID = @charID); declare @GiftTh varchar(129) declare items cursor for select GiftItems from [SRO_VT_SHARD].[dbo].[_GiftMedusa] ORDER BY NEWID() open items fetch next from items into @GiftTh while(@@FETCH_STATUS=0) begin exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @charname1, @GiftTh, 1, 0 fetch next from items into @GiftTh end close items deallocate items end

Tablodaki itemleri veriyor fakat için işine adetli itemler girince exec altına yeni exec/execler ekliyorum sonrasında client bugda kalıyor, gs, shard çöküyor
shard'ı temizlemeden de giriş yapamıyorsun tekrar
 
Oyla 0
Thread owner
Konu başında yazmış olduğum çözümü kullanan arkadaşlar, kendileri kullandığında her ne kadar exec olursa olsun, sorun teşkil etmediğini söylüyor.
Kullanmak isteyenler sorunsuzca kullanabilir.

Ben sorunla karşılaşıyordum fakat şu an konu başında yazılan şekilde kullanmanız durumunda sorun teşkil etmeyecektir.
 
Oyla 0

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

Geri
Üst Alt