•         

            

            

  • HyperFilter | DoS Protection | DDoS Protection | DoS Mitigation | DDoS Mitigation | AntiDoS | AntiDDoS | Proxy Shielding

[İSTEK] 21xx Severlerde +60 Skilleri

  • Konbuyu başlatan Konbuyu başlatan x1x123
  • Başlangıç tarihi Başlangıç tarihi

x1x123

Kayıtlı Üye
Katılım
11 Kasım 2014
Mesajlar
90
21xx serverlarde +60 skillerinin otomatik açılması için bir kod veya prosüdür gönderirmisiniz
 
Cevap: [İSTEK] 21xx Severlerde +60 Skilleri



Bunu işledikden sonra

Kod:
Create PROCEDURE [dbo].[EDIT_QUEST](

@strUserId varchar(21),

@sQuestId smallint,

@bQuestStatus tinyint

)

AS

DECLARE @binQuest binary(400), @sQuestCount smallint, @tmpQuestId smallint, @tmpQuestStatus tinyint, @strQuest varbinary(400), @i int, @freePos int, @bFound tinyint

BEGIN

SELECT @binQuest = CAST(strQuest as varbinary(400)), @sQuestCount = sQuestCount FROM USERDATA WHERE strUserId = @strUserId









SET @freePos = null

SET @bFound = 0

SET @i = 1









IF (@binQuest IS NULL)

SET @binQuest = CONVERT(varbinary(400), 0)





WHILE (@i < 400 AND @bFound = 0)

BEGIN

SET @tmpQuestId = SUBSTRING(@binQuest, @i, 2) + SUBSTRING(@binQuest, @i, 1)

SET @tmpQuestStatus = SUBSTRING(@binQuest, @i + 2, 1)









IF (@tmpQuestId = @sQuestId)

BEGIN

SET @bFound = 1

IF (@bQuestStatus IS NULL)

BEGIN

SET @sQuestCount = @sQuestCount - 1

SET @sQuestId = 0

SET @bQuestStatus = 0

END 









SET @strQuest = SUBSTRING(@binQuest, 1, @i - 1) 

+ CAST(SUBSTRING(CONVERT(varbinary(2), @sQuestId), 2, 1) AS varbinary(1))

+ CAST(SUBSTRING(CONVERT(varbinary(2), @sQuestId), 1, 1) AS varbinary(1))

+ CAST(@bQuestStatus as varbinary(1))

 

+ SUBSTRING(@binQuest, @i + 3, 400 - (@i + 3))

END

ELSE IF (@tmpQuestId = 0 AND @freePos IS NULL)

BEGIN

SET @freePos = @i

END









SET @i = @i + 3

END





IF (@bFound = 0 AND @freePos IS NOT NULL)

BEGIN

SET @sQuestCount = @sQuestCount + 1

SET @strQuest = SUBSTRING(@binQuest, 1, @freePos - 1) 

+ CAST(SUBSTRING(CONVERT(varbinary(2), @sQuestId), 2, 1) AS varbinary(1))

+ CAST(SUBSTRING(CONVERT(varbinary(2), @sQuestId), 1, 1) AS varbinary(1))

+ CAST(@bQuestStatus as varbinary(1)) 

+ SUBSTRING(@binQuest, @freePos + 3, 400 - (@freePos + 3))

END

















IF (@bFound = 0 AND @freePos IS NULL)

BEGIN

print'error'

END

ELSE

BEGIN

UPDATE USERDATA SET strQuest = @strQuest, sQuestCount = @sQuestCount WHERE strUserId = @strUserId

END

END





GO

Create_New_Char'a gel "IF (@@ERROR <> 0)" bunun bi üstüne alttakileri yapıştır yeni açılan charlarda master skilleri açılır tabi v19xx için bu.19xx kullanıyosan büyük ihtimalle sorunun çözülür. 21xxde denemedim belki ordada olabilir

Kod:
EXEC EDIT_QUEST @strCharID,51 , 2

EXEC EDIT_QUEST @strCharID,510 , 2

EXEC EDIT_QUEST @strCharID,511 , 2

EXEC EDIT_QUEST @strCharID,53 , 2

EXEC EDIT_QUEST @strCharID,515 , 2

EXEC EDIT_QUEST @strCharID,516 , 2

EXEC EDIT_QUEST @strCharID,517 , 2

EXEC EDIT_QUEST @strCharID,52 , 2

EXEC EDIT_QUEST @strCharID,512 , 2

EXEC EDIT_QUEST @strCharID,513 , 2

EXEC EDIT_QUEST @strCharID,514 , 2

EXEC EDIT_QUEST @strCharID,54 , 2

EXEC EDIT_QUEST @strCharID,518 , 2

EXEC EDIT_QUEST @strCharID,519 , 2

EXEC EDIT_QUEST @strCharID,520 , 2

EXEC EDIT_QUEST @strCharID,521 , 2

EXEC EDIT_QUEST @strCharID,522 , 2

EXEC EDIT_QUEST @strCharID,523 , 2
 
Cevap: [İSTEK] 21xx Severlerde +60 Skilleri









USE [kn_online]

GO

/****** Object: StoredProcedure [dbo].[EDIT_QUEST] Script Date: 26.03.2024 17:40:32 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

ALTER PROCEDURE [dbo].[EDIT_QUEST]

(

@strUserId varchar(21),

@sQuestId smallint,

@bQuestStatus tinyint

)

AS

DECLARE @binQuest binary(400), @sQuestCount smallint, @tmpQuestId smallint, @tmpQuestStatus tinyint, @strQuest varbinary(400), @i int, @freePos int, @bFound tinyint

BEGIN

SELECT @binQuest = CAST(strQuest as varbinary(400)), @sQuestCount = sQuestCount FROM USERDATA WHERE strUserId = @strUserId





SET @freePos = null

SET @bFound = 0

SET @i = 1





IF (@binQuest IS NULL)

SET @binQuest = CONVERT(varbinary(400), 0)





WHILE (@i < 400 AND @bFound = 0)

BEGIN

SET @tmpQuestId = SUBSTRING(@binQuest, @i, 2) + SUBSTRING(@binQuest, @i, 1)

SET @tmpQuestStatus = SUBSTRING(@binQuest, @i + 2, 1)





IF (@tmpQuestId = @sQuestId)

BEGIN

SET @bFound = 1

IF (@bQuestStatus IS NULL)

BEGIN

SET @sQuestCount = @sQuestCount - 1

SET @sQuestId = 0

SET @bQuestStatus = 0

END





SET @strQuest = SUBSTRING(@binQuest, 1, @i - 1)

+ CAST(SUBSTRING(CONVERT(varbinary(2), @sQuestId), 2, 1) AS varbinary(1))

+ CAST(SUBSTRING(CONVERT(varbinary(2), @sQuestId), 1, 1) AS varbinary(1))

+ CAST(@bQuestStatus as varbinary(1))

+ SUBSTRING(@binQuest, @i + 3, 400 - (@i + 3))

END

ELSE IF (@tmpQuestId = 0 AND @freePos IS NULL)

BEGIN

SET @freePos = @i

END





SET @i = @i + 3

END





IF (@bFound = 0 AND @freePos IS NOT NULL)

BEGIN

SET @sQuestCount = @sQuestCount + 1

SET @strQuest = SUBSTRING(@binQuest, 1, @freePos - 1)

+ CAST(SUBSTRING(CONVERT(varbinary(2), @sQuestId), 2, 1) AS varbinary(1))

+ CAST(SUBSTRING(CONVERT(varbinary(2), @sQuestId), 1, 1) AS varbinary(1))

+ CAST(@bQuestStatus as varbinary(1))

+ SUBSTRING(@binQuest, @freePos + 3, 400 - (@freePos + 3))

END









IF (@bFound = 0 AND @freePos IS NULL)

BEGIN

print'error'

END

ELSE

BEGIN

UPDATE USERDATA SET strQuest = @strQuest, sQuestCount = @sQuestCount WHERE strUserId = @strUserId

END

END







bir dene istersen
 
Geri
Üst