You last visited: Today at 16:52
Advertisement
[Release] vSRO adding npc querry
Discussion on [Release] vSRO adding npc querry within the SRO PServer Guides & Releases forum part of the SRO Private Server category.
08/02/2017, 08:47
#1
elite*gold: 0
Join Date: Jan 2009
Posts: 990
Received Thanks: 466
[Release] vSRO adding npc querry
Code:
/**
return value :
0 = There is no error.
**/
USE SRO_VT_SHARD
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @vcPrintMessage varchar(1024)
----------------------------------------------------------------------------------------------------
, @inyType tinyint = 1
, @vcShopCodeName varchar(128) = 'TEST_NPC'
, @vcShopModel varchar(512) = 'npc\npc\chinasystem_bookmakergirl.bsr'
, @vcShopFortress varchar(32) = 'xxx'
, @vcTargetCharName varchar(64) = 'CharName'
, @insRotation smallint = 360
, @vcShopTabCodeName varchar(32) = 'AVATAR'
, @inyShopGroupID tinyint = 1
----------------------------------------------------------------------------------------------------
IF XACT_STATE() = -1
BEGIN
SET @vcPrintMessage = '1'
END
BEGIN TRY
IF @inyType IN (2, 3)
BEGIN
DECLARE @inyTabID tinyint
SELECT TOP 1 @inyTabID = RIGHT(CodeName128, 1) + 1
FROM _RefShopTab
WHERE Service = 1
AND RefTabGroupCodeName LIKE 'STORE_' + @vcShopCodeName + '_GROUP_'
ORDER BY CodeName128 DESC
IF @inyTabID IS NULL
BEGIN
SET @vcPrintMessage = '2'
GOTO ErrorHandler
END
END
IF @inyType = 1
BEGIN
DECLARE @insRegionID smallint
, @rlPosX real
, @rlPosY real
, @rlPosZ real
, @intGameWorldID int
, @intObjLink int
, @intObjID int
, @intTacticsID int
, @intHiveID int
IF 'NPC_' + @vcShopCodeName IN (SELECT CodeName128 FROM _RefObjCommon WHERE CodeName128 = 'NPC_' + @vcShopCodeName)
BEGIN
SET @vcPrintMessage = '3'
GOTO ErrorHandler
END
ELSE IF @vcShopModel NOT LIKE '%.bsr'
BEGIN
SET @vcPrintMessage = '4'
GOTO ErrorHandler
END
ELSE IF @vcShopFortress NOT IN (SELECT CodeName128 FROM _RefSiegeFortress WHERE Service = 1) AND @vcShopFortress != 'xxx'
BEGIN
SET @vcPrintMessage = '5'
GOTO ErrorHandler
END
ELSE IF @insRotation NOT BETWEEN 0 AND 360
BEGIN
SET @vcPrintMessage = '6'
GOTO ErrorHandler
END
SELECT @insRegionID = LatestRegion
, @rlPosX = PosX
, @rlPosY = PosY
, @rlPosZ = PosZ
, @intGameWorldID = WorldID
FROM dbo._Char
WHERE CharName16 = @vcTargetCharName
IF @insRegionID IS NULL
BEGIN
SET @vcPrintMessage = '8'
GOTO ErrorHandler
END
ELSE IF @intGameWorldID NOT IN (SELECT ID FROM _RefGame_World)
BEGIN
SET @vcPrintMessage = '7'
GOTO ErrorHandler
END
BEGIN TRANSACTION
INSERT dbo._RefObjChar
VALUES (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336860180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
SET @intObjLink = SCOPE_IDENTITY()
INSERT dbo._RefObjCommon
VALUES (1, 'NPC_' + @vcShopCodeName, '?? ?? ????', 'xxx', 'SN_NPC_' + @vcShopCodeName, 'xxx', 0, 1, 1, 2, 2, 0, 5000, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, @vcShopModel, 'xxx', 'xxx', @vcShopFortress, 'xxx', @intObjLink)
SET @intObjID = SCOPE_IDENTITY()
INSERT dbo._RefShop
VALUES (1, 15, 'STORE_' + @vcShopCodeName, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx')
INSERT dbo._RefShopGroup
VALUES (1, 15, 'GROUP_STORE_' + @vcShopCodeName, 'NPC_' + @vcShopCodeName, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx')
INSERT dbo._RefShopItemGroup
VALUES (1, 'STORE_' + @vcShopCodeName + '_GROUP1', 'SN_STORE_' + @vcShopCodeName + '_GROUP1')
INSERT dbo._RefShopTab
VALUES (1, 15, 'STORE_' + @vcShopCodeName + '_TAB1', 'STORE_' + @vcShopCodeName + '_GROUP1', 'SN_TAB_' + @vcShopTabCodeName)
INSERT dbo._RefShopTabGroup
VALUES (1, 15, 'STORE_' + @vcShopCodeName + '_GROUP1', 'SN_STORE_' + @vcShopCodeName + '_GROUP1')
INSERT dbo._RefMappingShopGroup
VALUES (1, 15, 'GROUP_STORE_' + @vcShopCodeName, 'STORE_' + @vcShopCodeName)
INSERT dbo._RefMappingShopWithTab
VALUES (1, 15, 'STORE_' + @vcShopCodeName, 'STORE_' + @vcShopCodeName + '_GROUP1')
SELECT @intTacticsID = MAX(dwTacticsID) + 10
FROM dbo.Tab_RefTactics
INSERT dbo.Tab_RefTactics
VALUES (@intTacticsID, @intObjID, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'NPC_' + @vcShopCodeName)
INSERT dbo.Tab_RefHive
VALUES (0, 0, 0, 0, 0, 0, @intGameWorldID, 2, 'NPC_' + @vcShopCodeName)
SET @intHiveID = SCOPE_IDENTITY()
INSERT dbo.Tab_RefNest
VALUES (@intHiveID, @intTacticsID, @insRegionID, @rlPosX, @rlPosY, @rlPosZ, CEILING(POWER(2, 15) * (-1) + ((CONVERT(float, POWER(2, 16) - 1) / 360) * ((@insRotation + 90) % 360))), 0, 0, 0, 0, 0, 1, 0, 1, 0)
COMMIT TRANSACTION
END
ELSE IF @inyType = 2
BEGIN
DECLARE @inyGroupID tinyint
IF 'NPC_' + @vcShopCodeName NOT IN (SELECT CodeName128 FROM _RefObjCommon WHERE CodeName128 = 'NPC_' + @vcShopCodeName)
BEGIN
SET @vcPrintMessage = '9'
GOTO ErrorHandler
END
SELECT TOP 1 @inyGroupID = RIGHT(RefTabGroupCodeName, 1) + 1
FROM _RefMappingShopWithTab
WHERE Service = 1
AND RefShopCodeName = 'STORE_' + @vcShopCodeName
ORDER BY RefTabGroupCodeName DESC
IF @inyGroupID > 8
BEGIN
SET @vcPrintMessage = '10'
GOTO ErrorHandler
END
BEGIN TRANSACTION
INSERT dbo._RefShopItemGroup
VALUES (1, 'STORE_' + @vcShopCodeName + '_GROUP' + CAST(@inyGroupID AS VARCHAR(1)), 'SN_STORE_' + @vcShopCodeName + '_GROUP' + CAST(@inyGroupID AS VARCHAR(1)))
INSERT dbo._RefShopTab
VALUES (1, 15, 'STORE_' + @vcShopCodeName + '_TAB' + @inyTabID , 'STORE_' + @vcShopCodeName + '_GROUP' + CAST(@inyGroupID AS VARCHAR(1)), 'SN_TAB_' + @vcShopTabCodeName)
INSERT dbo._RefShopTabGroup
VALUES (1, 15, 'STORE_' + @vcShopCodeName + '_GROUP' + + CAST(@inyGroupID AS VARCHAR(1)), 'SN_STORE_' + @vcShopCodeName + '_GROUP' + + CAST(@inyGroupID AS VARCHAR(1)))
INSERT dbo._RefMappingShopWithTab
VALUES (1, 15, 'STORE_' + @vcShopCodeName, 'STORE_' + @vcShopCodeName + '_GROUP' + + CAST(@inyGroupID AS VARCHAR(1)))
COMMIT TRANSACTION
END
ELSE IF @inyType = 3
BEGIN
DECLARE @inyTabCount tinyint
IF 'NPC_' + @vcShopCodeName NOT IN (SELECT CodeName128 FROM _RefObjCommon WHERE CodeName128 = 'NPC_' + @vcShopCodeName)
BEGIN
SET @vcPrintMessage = '11'
GOTO ErrorHandler
END
ELSE IF 'STORE_' + @vcShopCodeName + '_GROUP' + CAST(@inyShopGroupID AS VARCHAR(1)) NOT IN (SELECT RefTabGroupCodeName FROM _RefMappingShopWithTab)
BEGIN
SET @vcPrintMessage = '12'
GOTO ErrorHandler
END
SELECT TOP 1 @inyTabCount = RIGHT(CodeName128, 1) + 1
FROM _RefShopTab
WHERE Service = 1
AND RefTabGroupCodeName = 'STORE_' + @vcShopCodeName + '_GROUP' + CAST(@inyShopGroupID AS VARCHAR(1))
ORDER BY CodeName128 DESC
IF @inyTabCount > 4
BEGIN
SET @vcPrintMessage = '13'
GOTO ErrorHandler
END
BEGIN TRANSACTION
INSERT dbo._RefShopTab
VALUES (1, 15, 'STORE_' + @vcShopCodeName + '_TAB' + CAST(@inyTabID AS VARCHAR(1)), 'STORE_' + @vcShopCodeName + '_GROUP' + CAST(@inyShopGroupID AS VARCHAR(1)), 'SN_TAB_' + @vcShopTabCodeName)
COMMIT TRANSACTION
END
END TRY
BEGIN CATCH
GOTO ErrorHandler
END CATCH
PRINT '0'
RETURN
ErrorHandler:
IF XACT_STATE() <> 0
ROLLBACK TRANSACTION
PRINT @vcPrintMessage
RETURN
08/02/2017, 09:00
#2
elite*gold: 0
Join Date: Feb 2016
Posts: 652
Received Thanks: 343
nice one gr8 job
08/02/2017, 10:04
#3
elite*gold: 270
Join Date: Apr 2017
Posts: 1,052
Received Thanks: 551
Good Work Very Useful!
08/02/2017, 11:04
#4
elite*gold: 350
Join Date: Aug 2015
Posts: 2,046
Received Thanks: 1,203
Nice good job how much querry add item npc?
08/03/2017, 13:30
#5
elite*gold: 0
Join Date: Jan 2009
Posts: 990
Received Thanks: 466
Quote:
Originally Posted by
B1QB0SS :3
Nice good job how much querry add item npc?
100$
08/07/2017, 14:16
#6
elite*gold: 0
Join Date: Mar 2013
Posts: 179
Received Thanks: 110
Code:
/**
return value :
0 = There is no error.
**/
USE SRO_VT_SHARD
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @vcPrintMessage varchar(1024)
----------------------------------------------------------------------------------------------------
, @inyType tinyint = 1
, @vcShopCodeName varchar(128) = 'TEST_NPC'
, @vcShopModel varchar(512) = 'npc\npc\chinasystem_bookmakergirl.bsr'
, @vcShopFortress varchar(32) = 'xxx'
, @vcTargetCharName varchar(64) = 'CharName'
, @insRotation smallint = 360
, @vcShopTabCodeName varchar(32) = 'AVATAR'
, @inyShopGroupID tinyint = 1
----------------------------------------------------------------------------------------------------
IF XACT_STATE() = -1
BEGIN
SET @vcPrintMessage = '1'
END
BEGIN TRY
IF @inyType IN (2, 3)
BEGIN
DECLARE @inyTabID tinyint
SELECT TOP 1 @inyTabID = RIGHT(CodeName128, 1) + 1
FROM _RefShopTab
WHERE Service = 1
AND RefTabGroupCodeName LIKE 'STORE_' + @vcShopCodeName + '_GROUP_'
ORDER BY CodeName128 DESC
IF @inyTabID IS NULL
BEGIN
SET @vcPrintMessage = '2'
GOTO ErrorHandler
END
END
IF @inyType = 1
BEGIN
DECLARE @insRegionID smallint
, @rlPosX real
, @rlPosY real
, @rlPosZ real
, @intGameWorldID int
, @intObjLink int
, @intObjID int
, @intTacticsID int
, @intHiveID int
IF 'NPC_' + @vcShopCodeName IN (SELECT CodeName128 FROM _RefObjCommon WHERE CodeName128 = 'NPC_' + @vcShopCodeName)
BEGIN
SET @vcPrintMessage = '3'
GOTO ErrorHandler
END
ELSE IF @vcShopModel NOT LIKE '%.bsr'
BEGIN
SET @vcPrintMessage = '4'
GOTO ErrorHandler
END
ELSE IF @vcShopFortress NOT IN (SELECT CodeName128 FROM _RefSiegeFortress WHERE Service = 1) AND @vcShopFortress != 'xxx'
BEGIN
SET @vcPrintMessage = '5'
GOTO ErrorHandler
END
ELSE IF @insRotation NOT BETWEEN 0 AND 360
BEGIN
SET @vcPrintMessage = '6'
GOTO ErrorHandler
END
SELECT @insRegionID = LatestRegion
, @rlPosX = PosX
, @rlPosY = PosY
, @rlPosZ = PosZ
, @intGameWorldID = WorldID
FROM dbo._Char
WHERE CharName16 = @vcTargetCharName
IF @insRegionID IS NULL
BEGIN
SET @vcPrintMessage = '8'
GOTO ErrorHandler
END
ELSE IF @intGameWorldID NOT IN (SELECT ID FROM _RefGame_World)
BEGIN
SET @vcPrintMessage = '7'
GOTO ErrorHandler
END
BEGIN TRANSACTION
INSERT dbo._RefObjChar
VALUES (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336860180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
SET @intObjLink = SCOPE_IDENTITY()
INSERT dbo._RefObjCommon
VALUES (1, 'NPC_' + @vcShopCodeName, '?? ?? ????', 'xxx', 'SN_NPC_' + @vcShopCodeName, 'xxx', 0, 1, 1, 2, 2, 0, 5000, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, @vcShopModel, 'xxx', 'xxx', @vcShopFortress, 'xxx', @intObjLink)
SET @intObjID = SCOPE_IDENTITY()
INSERT dbo._RefShop
VALUES (1, 15, 'STORE_' + @vcShopCodeName, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx')
INSERT dbo._RefShopGroup
VALUES (1, 15, 'GROUP_STORE_' + @vcShopCodeName, 'NPC_' + @vcShopCodeName, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx')
INSERT dbo._RefShopItemGroup
VALUES (1, 'STORE_' + @vcShopCodeName + '_GROUP1', 'SN_STORE_' + @vcShopCodeName + '_GROUP1')
INSERT dbo._RefShopTab
VALUES (1, 15, 'STORE_' + @vcShopCodeName + '_TAB1', 'STORE_' + @vcShopCodeName + '_GROUP1', 'SN_TAB_' + @vcShopTabCodeName)
INSERT dbo._RefShopTabGroup
VALUES (1, 15, 'STORE_' + @vcShopCodeName + '_GROUP1', 'SN_STORE_' + @vcShopCodeName + '_GROUP1')
INSERT dbo._RefMappingShopGroup
VALUES (1, 15, 'GROUP_STORE_' + @vcShopCodeName, 'STORE_' + @vcShopCodeName)
INSERT dbo._RefMappingShopWithTab
VALUES (1, 15, 'STORE_' + @vcShopCodeName, 'STORE_' + @vcShopCodeName + '_GROUP1')
SELECT @intTacticsID = MAX(dwTacticsID) + 10
FROM dbo.Tab_RefTactics
INSERT dbo.Tab_RefTactics
VALUES (@intTacticsID, @intObjID, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'NPC_' + @vcShopCodeName)
INSERT dbo.Tab_RefHive
VALUES (0, 0, 0, 0, 0, 0, @intGameWorldID, 2, 'NPC_' + @vcShopCodeName)
SET @intHiveID = SCOPE_IDENTITY()
INSERT dbo.Tab_RefNest
VALUES (@intHiveID, @intTacticsID, @insRegionID, @rlPosX, @rlPosY, @rlPosZ, CEILING(POWER(2, 15) * (-1) + ((CONVERT(float, POWER(2, 16) - 1) / 360) * ((@insRotation + 90) % 360))), 0, 0, 0, 0, 0, 1, 0, 1, 0)
COMMIT TRANSACTION
END
ELSE IF @inyType = 2
BEGIN
DECLARE @inyGroupID tinyint
IF 'NPC_' + @vcShopCodeName NOT IN (SELECT CodeName128 FROM _RefObjCommon WHERE CodeName128 = 'NPC_' + @vcShopCodeName)
BEGIN
SET @vcPrintMessage = '9'
GOTO ErrorHandler
END
SELECT TOP 1 @inyGroupID = RIGHT(RefTabGroupCodeName, 1) + 1
FROM _RefMappingShopWithTab
WHERE Service = 1
AND RefShopCodeName = 'STORE_' + @vcShopCodeName
ORDER BY RefTabGroupCodeName DESC
IF @inyGroupID > 8
BEGIN
SET @vcPrintMessage = '10'
GOTO ErrorHandler
END
BEGIN TRANSACTION
INSERT dbo._RefShopItemGroup
VALUES (1, 'STORE_' + @vcShopCodeName + '_GROUP' + CAST(@inyGroupID AS VARCHAR(1)), 'SN_STORE_' + @vcShopCodeName + '_GROUP' + CAST(@inyGroupID AS VARCHAR(1)))
INSERT dbo._RefShopTab
VALUES (1, 15, 'STORE_' + @vcShopCodeName + '_TAB' + @inyTabID , 'STORE_' + @vcShopCodeName + '_GROUP' + CAST(@inyGroupID AS VARCHAR(1)), 'SN_TAB_' + @vcShopTabCodeName)
INSERT dbo._RefShopTabGroup
VALUES (1, 15, 'STORE_' + @vcShopCodeName + '_GROUP' + + CAST(@inyGroupID AS VARCHAR(1)), 'SN_STORE_' + @vcShopCodeName + '_GROUP' + + CAST(@inyGroupID AS VARCHAR(1)))
INSERT dbo._RefMappingShopWithTab
VALUES (1, 15, 'STORE_' + @vcShopCodeName, 'STORE_' + @vcShopCodeName + '_GROUP' + + CAST(@inyGroupID AS VARCHAR(1)))
COMMIT TRANSACTION
END
ELSE IF @inyType = 3
BEGIN
DECLARE @inyTabCount tinyint
IF 'NPC_' + @vcShopCodeName NOT IN (SELECT CodeName128 FROM _RefObjCommon WHERE CodeName128 = 'NPC_' + @vcShopCodeName)
BEGIN
SET @vcPrintMessage = '11'
GOTO ErrorHandler
END
ELSE IF 'STORE_' + @vcShopCodeName + '_GROUP' + CAST(@inyShopGroupID AS VARCHAR(1)) NOT IN (SELECT RefTabGroupCodeName FROM _RefMappingShopWithTab)
BEGIN
SET @vcPrintMessage = '12'
GOTO ErrorHandler
END
SELECT TOP 1 @inyTabCount = RIGHT(CodeName128, 1) + 1
FROM _RefShopTab
WHERE Service = 1
AND RefTabGroupCodeName = 'STORE_' + @vcShopCodeName + '_GROUP' + CAST(@inyShopGroupID AS VARCHAR(1))
ORDER BY CodeName128 DESC
IF @inyTabCount > 4
BEGIN
SET @vcPrintMessage = '13'
GOTO ErrorHandler
END
BEGIN TRANSACTION
INSERT dbo._RefShopTab
VALUES (1, 15, 'STORE_' + @vcShopCodeName + '_TAB' + CAST(@inyTabID AS VARCHAR(1)), 'STORE_' + @vcShopCodeName + '_GROUP' + CAST(@inyShopGroupID AS VARCHAR(1)), 'SN_TAB_' + @vcShopTabCodeName)
COMMIT TRANSACTION
END
END TRY
BEGIN CATCH
GOTO ErrorHandler
END CATCH
PRINT '0'
RETURN
ErrorHandler:
IF XACT_STATE() <> 0
ROLLBACK TRANSACTION
PRINT @vcPrintMessage
RETURN
Similar Threads
Visualize max skill / adding new npc item / adding new npc
04/10/2016 - SRO Private Server - 4 Replies
Hello !
I'm a little bit confused about disabling some skills from the client.You know if a server is cap 80 I don't want skills above to appear.I tried to make this happen some time ago and the client crashed every time I opened the skill window "S".
I know it's about disabling some skills by putting 0 instead of 1 in a line but how do I do it in the proper way because, as I said, it crashed every time.
And secondly, is there a software of an easy way to add new NPCs, add new items to...
Adding NPC's and Adding Items in Shopping Mall
03/19/2015 - CO2 Private Server - 21 Replies
Hello there,
I have an 5518 source; Albetros Source.
Now I have a few questions about it.
1. How do you add new NPC's and where can I find them in the Source?
2. How to add items in the Shopping Mall. I tried a few things but that didn't helped me alot.
3. How to set game char to GM. I tried to give it 5 but that didn't helped either. I looked in the Commands file and that was 5. But it didn't helped.
Thanks...
Adding NPC in NPC Dialog
12/17/2013 - CO2 Private Server - 3 Replies
Okay so I'm running 5165 (Conqure SX) I'm new to Conqure and a little rusty in c# I was wondering weather I could charge more cps each time you want a higher level so 15-16 costing 2k cps and 16-17 3k and if so would this be about right #endregion
#region Vanish CO leveling NPC
case 0001:
{
if (option == 0)
...
[Request Help] In adding new Uniques Spawn + adding its notice
03/14/2013 - SRO Private Server - 13 Replies
Hello ...
I am learning some DB Editing ..
i wanted any one to explain HOW TO ,
add new unique spawn at one place , like add a Devil shitan at jangan door ever 2 hours from last kill ..
++ i wanted to know how to add Unique Notice ..
like " Demon shitan has appeared in Roc Mt. "
All times are GMT +2. The time now is 16:53 .