vSRO Çözüldü weapon takas cevirme scroll paylasım

  • Konuyu Başlatan Konuyu Başlatan ruya
  • Başlangıç tarihi Başlangıç tarihi

ruya

.
Aktiflik: 7%
Muhafız 100 mesaj
Katılım
10 Ağu 2019
Mesajlar
312
Çözümler
2
Tepkime puanı
356
Puan
63
Yaş
38
Konum
sivas
Thread owner
scroll bana aittir duşen itemi başka itemle değiştirir

USE [SRO_VT_LOG]
GO

ALTER PROCEDURE [dbo].[_Weapon_Takas]
@CharID INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @TargetItemID64 BIGINT = 0, @OldRefID INT = 0, @NewRefID INT = 0;
DECLARE @ItemCode NVARCHAR(128) = '', @DG_Suffix NVARCHAR(10) = '', @ItemRace NVARCHAR(20) = '';

-- 1. ADIM: SLOT 13 ANALİZ (Item bilgilerini al)
SELECT
@TargetItemID64 = INV.ItemID,
@OldRefID = ITM.RefItemID, -- 11286 gibi
@ItemCode = R.CodeName128
FROM SRO_VT_SHARD.dbo._Inventory INV WITH (NOLOCK)
INNER JOIN SRO_VT_SHARD.dbo._Items ITM WITH (NOLOCK) ON INV.ItemID = ITM.ID64
INNER JOIN SRO_VT_SHARD.dbo._RefObjCommon R WITH (NOLOCK) ON ITM.RefItemID = R.ID
WHERE INV.CharID = @CharID AND INV.Slot = 13 AND R.TypeID1 = 3 AND R.TypeID2 = 1 AND INV.ItemID > 0;

-- 2. ADIM: TABLO KONTROLÜ (Slottaki item senin listende var mı?)
-- Eğer slottaki item _Changer_Weapon tablosunda yoksa sistemi durdur (Return)
IF NOT EXISTS (SELECT 1 FROM SRO_VT_LOG.dbo._Changer_Weapon WHERE ItemID = @OldRefID)
BEGIN
RETURN; -- Tabloda yoksa işlem yapma (Düz item koruması)
END

-- 3. ADIM: IRK VE DEGREE ANALİZİ (Sadece item isminden)
IF (@ItemCode LIKE 'ITEM_CH%') SET @ItemRace = 'ITEM_CH%'
ELSE IF (@ItemCode LIKE 'ITEM_EU%') SET @ItemRace = 'ITEM_EU%'
ELSE RETURN;

-- Degree'yi yakala (Tablodaki _01_ vb. formatına göre)
IF (@ItemCode LIKE '%_01_%') SET @DG_Suffix = '%_01_%'
ELSE IF (@ItemCode LIKE '%_02_%') SET @DG_Suffix = '%_02_%'
ELSE IF (@ItemCode LIKE '%_03_%') SET @DG_Suffix = '%_03_%'
ELSE IF (@ItemCode LIKE '%_04_%') SET @DG_Suffix = '%_04_%'
ELSE IF (@ItemCode LIKE '%_05_%') SET @DG_Suffix = '%_05_%'
ELSE IF (@ItemCode LIKE '%_06_%') SET @DG_Suffix = '%_06_%'
ELSE IF (@ItemCode LIKE '%_07_%') SET @DG_Suffix = '%_07_%'
ELSE IF (@ItemCode LIKE '%_08_%') SET @DG_Suffix = '%_08_%'
ELSE IF (@ItemCode LIKE '%_09_%') SET @DG_Suffix = '%_09_%'
ELSE IF (@ItemCode LIKE '%_10_%') SET @DG_Suffix = '%_10_%'
ELSE IF (@ItemCode LIKE '%_11_%') SET @DG_Suffix = '%_11_%'
ELSE IF (@ItemCode LIKE '%_12_%') SET @DG_Suffix = '%_12_%'
ELSE RETURN;

-- 4. ADIM: TAKAS (Aynı ırk ve aynı Degree havuzundan rastgele seç)
SELECT TOP 1 @NewRefID = E.ItemID
FROM SRO_VT_LOG.dbo._Changer_Weapon E
INNER JOIN SRO_VT_SHARD.dbo._RefObjCommon R_New ON E.ItemID = R_New.ID
WHERE R_New.CodeName128 LIKE @ItemRace -- CH ise CH, EU ise EU ile takaslar
AND R_New.CodeName128 LIKE @DG_Suffix
AND E.ItemID <> @OldRefID -- Kendisini geri vermez
AND R_New.Service = 1
ORDER BY NEWID();

-- 5. ADIM: FİNAL DEĞİŞİM VE REFRESH
IF (@NewRefID IS NOT NULL AND @NewRefID > 0)
BEGIN
BEGIN TRANSACTION
UPDATE SRO_VT_SHARD.dbo._Items SET RefItemID = @NewRefID, CreaterName = 'Excellence' WHERE ID64 = @TargetItemID64;
-- Karakteri teleport et
UPDATE SRO_VT_SHARD.dbo._Char SET LatestRegion = 25000, POSX = 0, POSY = 0, POSZ = 0 WHERE CharID = @CharID;
COMMIT TRANSACTION
END
END




---------------------------------------------------------------------------------------------------
----adlogiteme ekle
-- Weapon takas_Scroll
IF (@Operation = 41 AND @ItemRefID = 41885 AND @Slot_To = 255)
BEGIN
-- Burada prosedürün TAM ADINI çağırmalısın.
EXEC SRO_VT_LOG.dbo._Weapon_Takas @CharID = @CharID
END
---------------------------------------------------------------------------------------------------


USE [SRO_VT_LOG]
GO

/****** Object: Table [dbo].[_Changer_Weapon] Script Date: 28.2.2026 18:48:55 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[_Changer_Weapon](
[ID] [int] IDENTITY(1,1) NOT NULL,
[ItemCodeName] [varchar](max) NOT NULL,
[ItemID] [int] NOT NULL,
[Service] [tinyint] NOT NULL,
[ItemDegree] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

141885ITEM_WEAPON_CHANCER_SCROLL????? (????)xxxSN_ITEM_WEAPON_CHANCER_SCROLLSN_ITEM_WEAPON_CHANCER_SCROLL_TT_DESC003331180000300110010010000000-10-10-10-10-10000000100000xxxitem\etc\drop_mall_scroll.bsritem\etc\changer scroll.ddjxxxxxx21373

2137312001000000000000000000000000000000000000000000000000000000001000????1?????? -1RESURRECT-1xxx-1xxx-1xxx-1xxx-1xxx-1xxx-1xxx-1xxx-1xxx-1xxx-1xxx-1xxx-1xxx-1xxx-1xxx-1xxx-1xxx000
 
Thread owner
kod çalışıyormuş sadece item bugda kalmış kullanmak isteyen olursa
 
Oyla 0
Çözüm

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

Etiketler
Geri
Üst Alt