Did anyone ever do it better? NO, because they're so fucking marvelous
so i decided to try being "fucking marvelous" doing that system.
HI GUYS! a few hours I have been provocative by a server super system
without mention any names so i am here today to release that system
so what that system do or how it works? well
Procedure:Quote:
automatic skill up system. It adds all available skills to your own char based on Mastery and MasteryLevel to a Specific level you will have to choice it its really simple
Code:
USE [SRO_VT_ERIUS] GO /****** Object: StoredProcedure [dbo].[Ed_UPDATE_CHARSKILLS] Script Date: 7/30/2017 12:52:05 AM ******/ 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].[Ed_UPDATE_CHARSKILLS] @CharID 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 SRO_VT_SHARD.dbo._Char WITH (NOLOCK) WHERE CharID = @CharID IF (@intCharID IS NULL OR @intCharID = 0) BEGIN SET @intReturnValue = 100 GOTO ErrorHandler END /**_# [_CharSkill] DELETE FROM TABLE*/ DELETE FROM SRO_VT_SHARD.dbo._CharSkill WHERE CharID = @intCharID AND SkillID NOT IN (SELECT SkillID FROM SRO_VT_SHARD.dbo._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 SRO_VT_SHARD.dbo._RefSkill RS JOIN SRO_VT_SHARD.dbo._CharSkillMastery CSM ON RS.ReqCommon_Mastery1 = CSM.MasteryID WHERE RS.Service = 1 AND RS.ID NOT IN (SELECT SkillID FROM SRO_VT_SHARD.dbo._RefCharDefault_Skill) AND RS.ReqCommon_MasteryLevel1 <= CSM.Level AND CSM.CharID = @intCharID GROUP BY Basic_Group ) MGS JOIN SRO_VT_SHARD.dbo._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 SRO_VT_SHARD.dbo._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
Code:
IF @EventID = 22 AND @Data2<=60 BEGIN DECLARE @intReturnValue int EXEC @intReturnValue = SRO_VT_ERIUS.dbo.Ed_UPDATE_CHARSKILLS @CharID SELECT @intReturnValue AS ReturnValue END
-Add the Procedure to the Database name you choice.
- Add The Second Procedure to your LOG_DB.dbo.AddLogChar
-@Data2<=60 "60 is the level you will choice!
Cheeeeeers
Original Procedure was taken from "Syloxx"
Re-coded by me, to meet the condition