Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz..
Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
vSRO Çözüldü weapon up grade scroll
- Konuyu Başlatan ruya
- Başlangıç tarihi
USE [SRO_VT_LOG]
GO
/****** Object: StoredProcedure [dbo].[_Upgrade_Scroll] Script Date: 2.4.2025 15:44:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_Upgrade_Scroll]
@CharID INT
AS
BEGIN TRY
BEGIN TRANSACTION TRAN_Upgrade_Scroll
DECLARE @OldItemCodeName VARCHAR(129)=
(SELECT ROC.CodeName128 FROM SRO_VT_SHARD.._Inventory AS INV
INNER JOIN SRO_VT_SHARD.._Items AS I ON I.ID64=INV.ItemID AND INV.Slot=13 AND INV.ItemID<>0 AND INV.CharID=@CharID AND I.OptLevel>=+7 --- Dönüştürmek için gereken + ve üzeri değer ---
INNER JOIN SRO_VT_SHARD.._RefObjCommon AS ROC ON I.RefItemID=ROC.ID AND ROC.TypeID1=3 AND ROC.TypeID2=1 AND ROC.Service=1)
DECLARE @NewItemID INT
SET @NewItemID=(SELECT ID_NewItem FROM _UpgradeItem WHERE OldItemCodeName=@OldItemCodeName)
IF (@NewItemID IS NOT NULL AND @NewItemID<>0)
BEGIN
UPDATE I SET I.RefItemID=@NewItemID, I.OptLevel=0 ---Dönüştürdükten sonraki verilecek + değeri---
FROM SRO_VT_SHARD.._Inventory AS INV
INNER JOIN SRO_VT_SHARD.._Items AS I ON I.ID64=INV.ItemID AND INV.Slot=13 AND INV.ItemID<>0 AND INV.CharID=@CharID AND I.OptLevel>=+7 --- Dönüştürmek için gereken + ve üzeri değer ---
END
Update SRO_VT_SHARD.._Items
Set MagParamNum = 0 , MagParam1 = NULL, MagParam2 = NULL, MagParam3 = NULL, MagParam4 = NULL, MagParam5 = NULL, MagParam6 = NULL, MagParam7 = NULL, MagParam8 = NULL, MagParam9 = NULL, MagParam10 = NULL, MagParam11 = NULL, MagParam12 = NULL
COMMIT TRANSACTION TRAN_Upgrade_Scroll
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION TRAN_Upgrade_Scroll
PRINT 'Error has been occured while updating process for NewItem'
END CATCH
bunun içine o sorguyu nasıl ekleriz
GO
/****** Object: StoredProcedure [dbo].[_Upgrade_Scroll] Script Date: 2.4.2025 15:44:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_Upgrade_Scroll]
@CharID INT
AS
BEGIN TRY
BEGIN TRANSACTION TRAN_Upgrade_Scroll
DECLARE @OldItemCodeName VARCHAR(129)=
(SELECT ROC.CodeName128 FROM SRO_VT_SHARD.._Inventory AS INV
INNER JOIN SRO_VT_SHARD.._Items AS I ON I.ID64=INV.ItemID AND INV.Slot=13 AND INV.ItemID<>0 AND INV.CharID=@CharID AND I.OptLevel>=+7 --- Dönüştürmek için gereken + ve üzeri değer ---
INNER JOIN SRO_VT_SHARD.._RefObjCommon AS ROC ON I.RefItemID=ROC.ID AND ROC.TypeID1=3 AND ROC.TypeID2=1 AND ROC.Service=1)
DECLARE @NewItemID INT
SET @NewItemID=(SELECT ID_NewItem FROM _UpgradeItem WHERE OldItemCodeName=@OldItemCodeName)
IF (@NewItemID IS NOT NULL AND @NewItemID<>0)
BEGIN
UPDATE I SET I.RefItemID=@NewItemID, I.OptLevel=0 ---Dönüştürdükten sonraki verilecek + değeri---
FROM SRO_VT_SHARD.._Inventory AS INV
INNER JOIN SRO_VT_SHARD.._Items AS I ON I.ID64=INV.ItemID AND INV.Slot=13 AND INV.ItemID<>0 AND INV.CharID=@CharID AND I.OptLevel>=+7 --- Dönüştürmek için gereken + ve üzeri değer ---
END
Update SRO_VT_SHARD.._Items
Set MagParamNum = 0 , MagParam1 = NULL, MagParam2 = NULL, MagParam3 = NULL, MagParam4 = NULL, MagParam5 = NULL, MagParam6 = NULL, MagParam7 = NULL, MagParam8 = NULL, MagParam9 = NULL, MagParam10 = NULL, MagParam11 = NULL, MagParam12 = NULL
COMMIT TRANSACTION TRAN_Upgrade_Scroll
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION TRAN_Upgrade_Scroll
PRINT 'Error has been occured while updating process for NewItem'
END CATCH
Üst üste post gönderildiği için tek mesajda birleştirildi:
bunun içine o sorguyu nasıl ekleriz
Oyla
0
USE [SRO_VT_LOG]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_Upgrade_Scroll]
@CharID INT
AS
BEGIN TRY
BEGIN TRANSACTION TRAN_Upgrade_Scroll
-- 1. ADIM: DEĞİŞKENLERİ VE EŞYA BİLGİSİNİ YAKALA (ADV DAHİL HESAPLAMA)
DECLARE @TargetItemID64 BIGINT;
DECLARE @OldItemCodeName VARCHAR(129);
DECLARE @NewItemID INT;
SELECT
@TargetItemID64 = I.ID64,
@OldItemCodeName = ROC.CodeName128
FROM SRO_VT_SHARD.._Inventory AS INV
INNER JOIN SRO_VT_SHARD.._Items AS I ON I.ID64 = INV.ItemID
INNER JOIN SRO_VT_SHARD.._RefObjCommon AS ROC ON I.RefItemID = ROC.ID
-- ADV değerini yan tabloya bakarak alıyoruz
OUTER APPLY (
SELECT TOP 1 nOptValue
FROM SRO_VT_SHARD.._BindingOptionWithItem
WHERE nItemDBID = INV.ItemID AND bOptType = 2
) AS ADV
WHERE INV.CharID = @CharID
AND INV.Slot = 13
AND INV.ItemID <> 0
AND (I.OptLevel + ISNULL(ADV.nOptValue, 0)) >= 7 -- Gerçek Artı Değeri (Örn: 5+2=7)
AND ROC.TypeID1 = 3 AND ROC.TypeID2 = 1 AND ROC.Service = 1;
-- 2. ADIM: DÖNÜŞÜMÜ GERÇEKLEŞTİR
IF (@TargetItemID64 IS NOT NULL)
BEGIN
SET @NewItemID = (SELECT ID_NewItem FROM _UpgradeItem WHERE OldItemCodeName = @OldItemCodeName);
IF (@NewItemID IS NOT NULL AND @NewItemID <> 0)
BEGIN
-- İtemin kendisini güncelle (Yeni ID ve Artı Sıfırlama)
UPDATE SRO_VT_SHARD.._Items
SET RefItemID = @NewItemID,
OptLevel = 0,
MagParamNum = 0,
MagParam1 = NULL, MagParam2 = NULL, MagParam3 = NULL, MagParam4 = NULL, MagParam5 = NULL, MagParam6 = NULL, MagParam7 = NULL, MagParam8 = NULL, MagParam9 = NULL, MagParam10 = NULL, MagParam11 = NULL, MagParam12 = NULL
WHERE ID64 = @TargetItemID64;
-- 3. ADIM: EĞER VARSA ADV KAYDINI SİL (Yeni iteme geçmemesi için)
DELETE FROM SRO_VT_SHARD.._BindingOptionWithItem
WHERE nItemDBID = @TargetItemID64;
END
END
COMMIT TRANSACTION TRAN_Upgrade_Scroll
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION TRAN_Upgrade_Scroll;
PRINT 'Hata oluştu: ' + ERROR_MESSAGE();
END CATCH
kod duzgun şekilde çalışıyor tarafımdan düzenlendi
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_Upgrade_Scroll]
@CharID INT
AS
BEGIN TRY
BEGIN TRANSACTION TRAN_Upgrade_Scroll
-- 1. ADIM: DEĞİŞKENLERİ VE EŞYA BİLGİSİNİ YAKALA (ADV DAHİL HESAPLAMA)
DECLARE @TargetItemID64 BIGINT;
DECLARE @OldItemCodeName VARCHAR(129);
DECLARE @NewItemID INT;
SELECT
@TargetItemID64 = I.ID64,
@OldItemCodeName = ROC.CodeName128
FROM SRO_VT_SHARD.._Inventory AS INV
INNER JOIN SRO_VT_SHARD.._Items AS I ON I.ID64 = INV.ItemID
INNER JOIN SRO_VT_SHARD.._RefObjCommon AS ROC ON I.RefItemID = ROC.ID
-- ADV değerini yan tabloya bakarak alıyoruz
OUTER APPLY (
SELECT TOP 1 nOptValue
FROM SRO_VT_SHARD.._BindingOptionWithItem
WHERE nItemDBID = INV.ItemID AND bOptType = 2
) AS ADV
WHERE INV.CharID = @CharID
AND INV.Slot = 13
AND INV.ItemID <> 0
AND (I.OptLevel + ISNULL(ADV.nOptValue, 0)) >= 7 -- Gerçek Artı Değeri (Örn: 5+2=7)
AND ROC.TypeID1 = 3 AND ROC.TypeID2 = 1 AND ROC.Service = 1;
-- 2. ADIM: DÖNÜŞÜMÜ GERÇEKLEŞTİR
IF (@TargetItemID64 IS NOT NULL)
BEGIN
SET @NewItemID = (SELECT ID_NewItem FROM _UpgradeItem WHERE OldItemCodeName = @OldItemCodeName);
IF (@NewItemID IS NOT NULL AND @NewItemID <> 0)
BEGIN
-- İtemin kendisini güncelle (Yeni ID ve Artı Sıfırlama)
UPDATE SRO_VT_SHARD.._Items
SET RefItemID = @NewItemID,
OptLevel = 0,
MagParamNum = 0,
MagParam1 = NULL, MagParam2 = NULL, MagParam3 = NULL, MagParam4 = NULL, MagParam5 = NULL, MagParam6 = NULL, MagParam7 = NULL, MagParam8 = NULL, MagParam9 = NULL, MagParam10 = NULL, MagParam11 = NULL, MagParam12 = NULL
WHERE ID64 = @TargetItemID64;
-- 3. ADIM: EĞER VARSA ADV KAYDINI SİL (Yeni iteme geçmemesi için)
DELETE FROM SRO_VT_SHARD.._BindingOptionWithItem
WHERE nItemDBID = @TargetItemID64;
END
END
COMMIT TRANSACTION TRAN_Upgrade_Scroll
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION TRAN_Upgrade_Scroll;
PRINT 'Hata oluştu: ' + ERROR_MESSAGE();
END CATCH
Üst üste post gönderildiği için tek mesajda birleştirildi:
kod duzgun şekilde çalışıyor tarafımdan düzenlendi
Oyla
0
Bu konuyu görüntüleyen kullanıcılar
Toplam: 1 (Kullanıcı: 0, ziyaretçi: 1)
Benzer konular
- Cevaplar
- 2
- Görüntüleme
- 63
- Cevaplar
- 35
- Görüntüleme
- 790
- Cevaplar
- 2
- Görüntüleme
- 126
vSRO Paylaşım
VSRo CH Yeni Weapon Görünümleri 2 (New Weapon Skins 2)
- Cevaplar
- 75
- Görüntüleme
- 2K
vSRO Paylaşım
VSRo CH Yeni Weapon Görünümleri (New Weapon Skins)
- Cevaplar
- 72
- Görüntüleme
- 2K
Etiketler
- Etiketler
- vsro +
