Herkese Merhabalar. Bu makalede sizlere, editör kullanmadan nasıl inventory ve Innhostes başlangıç item ayarlayabileceğinizi detaylı bir şekilde anlatacağım. Geçelim konumuza...
yazıp F5 yapıyoruz ve prosedürümüzü işletiyoruz. bu sayede her yeni hesap ve karakter oluşturulduğunda itemleri inventory'e eklemiş olacağız. Kolay gelsin.
Kod:
A) INVENTORY BASLANGIÇ
- Öncelikle veritabanımızda yeni bir tablo oluşturuyoruz. Veritabanımız üzerine sağ tıklayıp New Query diyoruz. Aşağıdaki kodları girip F5'e basıyoruz.
USE [KnightOnline]
GO
/****** Object: Table [dbo].[BEGINNER_ITEM] Script Date: 14.08.2023 22:07:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[BEGINNER_ITEM](
[iClass] [smallint] NOT NULL,
[strClass] [char](10) NULL,
[Gold] [bigint] NOT NULL,
[strItem] [binary](1200) NULL
) ON [PRIMARY]
GO
- Tablomuzu oluşturduk şimdi verilerimizi ekleyelim. Veritabanımız üzerine sağ tıklayıp New Query diyoruz.
INSERT INTO BEGINNER_ITEM VALUES
(1 , 'Warrior' , 0 , 0),
(2 , 'Rogue' , 0 , 0),
(3 , 'Magician' , 0 , 0),
(4 , 'Priest' , 0 , 0)
- Şimdi sıra tablo ile etkileşime geçeçek olan diğer prosedürümüzde;
USE [KnightOnline]
GO
/****** Object: StoredProcedure [dbo].[GIVE_BEGINNER_ITEM] Script Date: 14.08.2023 22:09:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[GIVE_BEGINNER_ITEM]
@strUserId varchar(21)
AS
BEGIN
DECLARE @Class smallint
DECLARE @MASTER smallint
SELECT @Class = Cast(SubString(Cast(Class as varchar(3)), 2, 2) as smallint) FROM USERDATA WHERE strUserId = @strUserId
IF @Class = 1 OR @Class = 5 OR @Class = 6
SET @Class = 1
IF @Class = 2 OR @Class = 7 OR @Class = 8
SET @Class = 2
IF @Class = 3 OR @Class = 9 OR @Class = 10
SET @Class = 3
IF @Class =4 OR @Class = 11 OR @Class = 12
SET @Class = 4
UPDATE USERDATA SET strItem = (SELECT strItem FROM BEGINNER_ITEM WHERE iClass = @Class), Gold = (SELECT Gold FROM BEGINNER_ITEM WHERE iClass = @Class) WHERE strUserId = @strUserId
END
NOT : KODLARIN BAŞLANGICINDAKİ USE KISMININ YANINDA KÖŞELİ PARANTEZ İÇİNDEKİ VERİTABANI İSMİNİ KENDİ VERİTABANI İSMİNİZ İLE DEĞİŞTİRİN.
- Şimdi geldik işin en can alıcı noktasına. Bu işlemleri yaptıktan sonra herhangi bir hesap açarak oyuna giriyoruz. Diyelim ki warrior itemi yerleştireceksiniz. Warrior çar açın ve oyuna girip istediğiniz itemleri karakterin üzerine yerleştirin. Karakterin ismi farketmez. İtem yerleştirme işleminiz bittikten sonra oyundan çıkın.Daha sonra veritabanınıza gelip USERDATA tablosunu sağ tıklayın ve ardından SELECT TOP seçeneğine tıklayın. Sağ tarafta açılan pencerede itemleri yerleştirdiğiniz karakterin ismini göreceksiniz. O karakterin bulunduğu satırda strITEM sütununu bulun ve orada binary yani ikili veri göreceksiniz. Ordaki veriyi üzerine sağ tıklayıp kopyalayın ve ardından veritabanımıza tekrar sağ tıklayıp New Query tıklıyoruz. Aşağıdaki kodları yapıştırıp F5 tıkladıktan sonra işlemimizi tamamlamış oluyoruz.
update BEGINNER_ITEM set strItem = (Kopyaladığımız değer buraya) where iClass = 1
NOT: iClass KISMINA ROGUE İÇİN 2 , MAGE İÇİN 3 VE PRIEST İÇİN 4 YAZIYORUZ.
- Daha sonra Stored Procedure kısmında CREATE_NEW_CHAR prosedürünü açıp uygun bir alana
exec GIVE_BEGINNER_ITEM @StrCharID
yazıp F5 yapıyoruz ve prosedürümüzü işletiyoruz. bu sayede her yeni hesap ve karakter oluşturulduğunda itemleri inventory'e eklemiş olacağız. Kolay gelsin.
Moderatör tarafında düzenlendi: