Hi, all is in the title, I tried to write some SQL code on level procedure, but it appair to be a little bit heavy, here's my code if someone can help :
Thank you
Code:
DECLARE @SkList table(SkId int)
DECLARE @clss int
DECLARE [USER=16085]lev[/USER]l int
DECLARE @TotalSk int
DECLARE @sklrn int
DECLARE @i int
/* GET CHAR INFOS */
SELECT @clss = nClass FROM tCharacterShape WHERE nCharNo = @nCharNo
SELECT [USER=16085]lev[/USER]l = nLevel FROM tCharacter WHERE nCharNo = @nCharNo
/* SKILL LIST */
IF [USER=16085]lev[/USER]l = '10'
BEGIN
IF @clss = '4' OR @clss = '5'
BEGIN
insert @SkList(SkId) values(1)
insert @SkList(SkId) values(20)
insert @SkList(SkId) values(80)
insert @SkList(SkId) values(21)
END
END
IF [USER=16085]lev[/USER]l = '20'
BEGIN
IF @clss = '5'
BEGIN
insert @SkList(SkId) values(2)
insert @SkList(SkId) values(21)
insert @SkList(SkId) values(40)
insert @SkList(SkId) values(60)
insert @SkList(SkId) values(81)
insert @SkList(SkId) values(140)
insert @SkList(SkId) values(160)
insert @SkList(SkId) values(180)
insert @SkList(SkId) values(260)
insert @SkList(SkId) values(505)
END
IF @clss = '4'
BEGIN
insert @SkList(SkId) values(120)
insert @SkList(SkId) values(100)
insert @SkList(SkId) values(21)
insert @SkList(SkId) values(40)
insert @SkList(SkId) values(60)
insert @SkList(SkId) values(81)
insert @SkList(SkId) values(140)
insert @SkList(SkId) values(180)
insert @SkList(SkId) values(260)
insert @SkList(SkId) values(505)
END
END
SELECT @TotalSk = count(SkId) FROM @SkList
SET @i = 0
/* LEARN SKILLS */
WHILE @i < @TotalSk + 1
BEGIN
WITH tab AS (SELECT (ROW_NUMBER() OVER (ORDER BY myTable.SomeField)) as row,* FROM @SkList)
SELECT @sklrn = SkId FROM tab WHERE row = @i
EXEC [dbo].[p_Skill_Set] @nCharNo, @sklrn, '0', '0', '0', '0', '0', '0', '0', '0', 0
SET @i = @i + 1
END
Thank you