[RELEASE] Automatic Skill Query by Syloxx

01/06/2015 03:44 Syloxx#1
Hello Elitepvpers,

Today iŽll release my automatic skill up query. It adds all available skills to your char based on Mastery and MasteryLevel.

Procedure:
Code:
USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_UPDATE_CHARSKILLS]    Script Date: 06.01.2015 05:06:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

/**
version : 2
author : Syloxx
created date: 2015-05-01
description : add all aviable skills to character.
return value :
0 = No Errors
100 = The charname does not exists.
101 = Unknown Error.
**/

CREATE PROCEDURE [dbo].[_UPDATE_CHARSKILLS]
	  @nvcCharName nvarchar(30)
AS
SET NOCOUNT ON
SET XACT_ABORT ON

DECLARE	  @intReturnValue int
		, @intCharID int
		, @intSkillID int

/**_# Rollback and return if inside an uncommittable transaction.*/
IF XACT_STATE() = -1
BEGIN
	SET @intReturnValue = 1
	GOTO ErrorHandler
END

BEGIN TRY
	SELECT	  @intCharID = CharID
	FROM	  _Char WITH (NOLOCK)
	WHERE	  CharName16 = @nvcCharName

	IF (@intCharID IS NULL OR @intCharID = 0)
	BEGIN
		SET @intReturnValue = 100
		GOTO ErrorHandler
	END

	/**_# [_CharSkill] DELETE FROM TABLE*/
	DELETE FROM _CharSkill WHERE CharID = @intCharID AND SkillID NOT IN (SELECT SkillID FROM _RefCharDefault_Skill)

	/**_# [UPDATE_SKILL_CURSOR] CREATE AND EXECUTE*/
	DECLARE UPDATE_SKILL_CURSOR CURSOR FOR
		SELECT	RS.ID
		FROM
			(
			SELECT	  Basic_Group
					, MAX(Basic_Level) AS Basic_Level
			FROM	  _RefSkill RS
			JOIN	  _CharSkillMastery CSM
			ON		  RS.ReqCommon_Mastery1 = CSM.MasteryID
			WHERE	  RS.Service = 1
			AND		  RS.ID NOT IN (SELECT SkillID FROM _RefCharDefault_Skill)
			AND		  RS.ReqCommon_MasteryLevel1 <= CSM.Level
			AND		  CSM.CharID = @intCharID
			GROUP BY  Basic_Group
			) MGS
		JOIN	  _RefSkill RS
		ON		  RS.Basic_Group = MGS.Basic_Group
		AND		  RS.Basic_Level = MGS.Basic_Level
		WHERE	  RS.ReqLearn_SP != 0

	OPEN UPDATE_SKILL_CURSOR
	FETCH NEXT FROM UPDATE_SKILL_CURSOR INTO @intSkillID
	WHILE @@FETCH_STATUS = 0
		BEGIN

			/**_# [_CharSkill] INSERT INTO TABLE*/
			INSERT INTO _CharSkill (CharID, SkillID, Enable)
			VALUES (@intCharID, @intSkillID, 1)

			FETCH NEXT FROM UPDATE_SKILL_CURSOR INTO @intSkillID
		END
	CLOSE UPDATE_SKILL_CURSOR
	DEALLOCATE UPDATE_SKILL_CURSOR
END TRY
BEGIN CATCH
	SET @intReturnValue = 101
	GOTO ErrorHandler
END CATCH

RETURN 0

ErrorHandler:
IF XACT_STATE() <> 0
	ROLLBACK TRANSACTION
	RETURN @intReturnValue
T-SQL:
Code:
USE SRO_VT_SHARD
DECLARE @intReturnValue int

EXEC @intReturnValue = _UPDATE_CHARSKILLS Charname
SELECT @intReturnValue AS ReturnValue
Tutorial:
-Add the Procedure to your Database.
-Insert the T-SQL content to a "New Query".
-Replace Charname with your Charname and click on "Execute"

Download attachment for better formating!
Don't remove / edit the header!
Press thanks if you use this query!

-Syloxx
01/06/2015 23:28 NotEvenMad#2
Gord job mate
01/06/2015 23:39 Hamza FiGo#3
Thanks for sharing

But it lvl ed up all skills and worked for euro + chn ?
01/07/2015 00:21 ​Exo#4
Quote:
Originally Posted by hamzafigo View Post
Thanks for sharing

But it lvl ed up all skills and worked for euro + chn ?
If you looked at the query you will see it's not adding entered skillids, it first checks all available skills based on mastery and adds them. so yes it should work for both races
01/07/2015 02:00 Syloxx#5
Fixed Client Crash on combo skills
01/07/2015 02:04 CrewMember#6
Good Job, nice dude
01/07/2015 14:25 Aaron*#7
Great one syloxx! you are a great sql coder, thanks ^^
01/07/2015 15:23 Albert Dev#8
nicce 1 ^^
11/07/2015 00:58 YajiroOfBoe#9
hmm tryed it, but nothing happens. still no skills
11/07/2015 01:14 Bocc1337#10
nice thx :)
11/07/2015 18:45 [GM]HeroZ#11
Nice
11/11/2015 19:17 RedStormOnline#12
Nice thanks
11/11/2015 23:25 ronz007#13
fail
11/16/2015 05:34 [GM] Maximus#14
Thx your sharing bro. :)
08/30/2017 00:01 MinaThabit#15
Thanks