[QUERY] Create Instance / Dungeons

10/20/2014 14:41 Royalblade*#1
I rarely ever release shit. But hey, let's see how you guys make this work ;)

It's pretty simple actually and doesn't require much knowledge or work, however, it's still something that almost nobody can do properly.

Wrote this query when I was being lazy and didnt wanna do shit. I never tested it and never completed it.. BUT its gives you the basic idea of how dungeons and instances work.

Just so you know, the query probably doesnt work since I was under heavy alcohol abuse when i wrote it. Just read it and undnerstand what you gotta do.. then inser the needed lines and your done. It's pretty easy to do, but all the arabs are gonna fail. When you do, please post. I love having a good laugh at people when they fail while having all the needed information at hand.

Special thanks to Snow*' by the way.

PHP Code:
CREATE PROCEDURE _RoyalCreateInstance
@Charname VARCHAR(32),
@
AreaName VARCHAR(32),
@
MaxWorlds INT,
@
MaxPlayers INT,
@
MinEntranceLevel TINYINT,
@
MaxEnterPerDay TINYINT,
@
HorseAllowed BIT,
@
JobAllowed BIT,
@
PetAllowed BIT
AS

BEGIN TRAN
BEGIN 
TRY

    DECLARE @
JobAllowedString VARCHAR(3) = CASE 
                                            
WHEN @JobAllowed 
                                                THEN 
'OFF'
                                            
ELSE 'ON'
                                           
END,
            @
PetAllowedString VARCHAR(3) = CASE
                                            
WHEN @PetAllowed 1
                                                THEN 
'OFF'
                                            
ELSE 'ON'
                                           
END,
            @
HorseAllowedString VARCHAR(3) = CASE
                                                
WHEN @HorseAllowed 1
                                                    THEN 
'OFF'
                                                
ELSE 'ON'
                                             
END,
            @
WorldID INT,
            @
RegionID INT,
            @
PosX REAL,
            @
PosY REAL,
            @
PosZ REAL;
            
    
SELECT    @RegionID LatestRegion,
            @
PosX PosX,
            @
PosY PosY,
            @
PosZ PosZ
    FROM    SRO_VT_SHARD
.._Char 
    WHERE    CharName16 
= @Charname
    
    
IF    @RegionID IS NULL
        BEGIN
            ROLLBACK TRAN
            RAISERROR 
('Charname not found'160)
            RETURN
        
END

    DELETE FROM     SRO_VT_SHARD
.._RefGame_World_Config WHERE GroupCodeName128 'GROUP_' + @AreaName
    INSERT INTO     SRO_VT_SHARD
.._RefGame_World_Config (ServiceGroupCodeName128ValueCodeName128ValueType)
    
VALUES        (1'GROUP' + @AreaName'GAME_WORLD_NORMALIZE_TYPE''GAME_WORLD_NORMALIZE_TYPE_A''STRING'),
                (
1'GROUP' + @AreaName'ENTER_LIMIT_CONDITION_ENTRY''NUM_LIMIT''STRING'),
                (
1'GROUP' + @AreaName'ENTER_LIMIT_CONDITION_PARTY''ON''STRING'),
                (
1'GROUP' + @AreaName'ENTER_LIMIT_CONDITION_LEVEL_MINIMUM_NUM'CAST(@MinEntranceLevel AS VARCHAR(5)), 'INT32'),
                (
1'GROUP' + @AreaName'ENTER_LIMIT_CONDITION_ENTRY_MAXIMUM_NUM'CAST(@MaxEnterPerDay AS VARCHAR(5)), 'INT32'),
                (
1'GROUP' + @AreaName'ENTER_LIMIT_CONDITION_REENTRY''ON''STRING'),
                (
1'GROUP' + @AreaName'ENTER_LIMIT_CONDITION_JOB_CLOTHES_TAKE_OFF', @JobAllowedString'STRING'),
                (
1'GROUP' + @AreaName'ENTER_LIMIT_CONDITION_RIDE_COS_NOT_RIDING', @HorseAllowed'STRING'),
                (
1'GROUP' + @AreaName'ENTER_LIMIT_CONDITION_TRADE_COS_NOT_RIDING', @PetAllowedString'STRING'),
                (
1'GROUP' + @AreaName'ENTER_LIMIT_CONDITION_GAME_WORLD_ASSIGNED''ON''STRING'),
                (
1'GROUP' + @AreaName'PARTYMONSTER_SPAWN''OFF''STRING'),
                (
1'GROUP' + @AreaName'ENTER_LIMIT_CONDITION_FRPVP_VOUCHER_TAKE_OFF''ON''STRING'),
                (
1'GROUP' + @AreaName'REF_GAME_WORLD_NPC''INS_' + @AreaName'STRING')

    IF 
EXISTS(SELECT FROM SRO_VT_SHARD.._RefGame_World WHERE WorldCodeName128 'INS_' + @AreaName)
        
BEGIN
            UPDATE    SRO_VT_SHARD
.._RefGame_World 
            SET        Type 
1
                    
WorldMaxCount = @MaxWorlds
                    
WorldMaxUserCount = @MaxPlayers
                    
WorldDurationTime 7200000
                    
WorldEmptyRemainTime 300000 
            WHERE    WorldCodeName128 
'INS_' + @AreaName
        END
    
ELSE IF NOT EXISTS(SELECT FROM SRO_VT_SHARD.._RefGame_World WHERE WorldCodeName128 'INS_' + @AreaName)
        
BEGIN
            INSERT INTO SRO_VT_SHARD
.._RefGame_World (WorldCodeName128TypeWorldMaxCountWorldMaxUserCountWorldEntryTypeWorldEntranceTypeWorldLeaveTypeWorldDurationTimeWorldEmptyRemainTimeConfigGroupCodeName128)
            
SELECT        'INS_' + @AreaName1, @MaxWorlds, @MaxPlayers0007200000300000'GROUP_' + @AreaName    
        END
        
    
IF EXISTS(SELECT FROM SRO_VT_SHARD.._RefTeleport WHERE CodeName128 LIKE 'GATE_' + @AreaName)
        
BEGIN
            UPDATE    SRO_VT_SHARD
.._RefTeleport
            SET        GenWorldID 
= @WorldID
            WHERE    CodeName128 LIKE 
'GATE_' + @AreaName
            
            SELECT    Service
IDCodeName128AssocRefObjCodeName128AssocRefObjIDZoneName128GenRegionIDGenPos_XGenPos_YGenPos_ZGenAreaRadiusCanBeResurrectPosCanGotoResurrectPosGenWorldID
            FROM    SRO_VT_SHARD
.._RefTeleport
            WHERE    CodeName128 LIKE 
'GATE_' + @AreaName
        END
    
ELSE
        
BEGIN
            SELECT 
'Could''t find _RefTeleport line, after you''ve create a teleporter run the following query: '
            
SELECT 'UPDATE _RefTeleport SET GenWorldID = @WorldID WHERE CodeName128 LIKE ''PORTERNAMEHERE'' '
        
END
    
    SELECT        
*, '''OLD LINES!!! @_RefInstance_World_Region'
    
FROM        SRO_VT_SHARD.._RefInstance_World_Region
    WHERE        RegionID 
= @RegionID
    
    DELETE FROM    SRO_VT_SHARD
.._RefInstance_World_Region WHERE RegionID = @RegionID
    INSERT INTO SRO_VT_SHARD
.._RefInstance_World_Region (WorldIDRegionID)
    
VALUES        (1, @RegionID),
                (@
WorldID, @RegionID)
                
    
SELECT        'Old lines at _RefInstance_World_Region have been deleted'
    
    
SELECT        *, '''OLD LINES!!! @_RefInstance_World_Start_Pos & new ones added'
    
FROM        SRO_VT_SHARD.._RefInstance_World_Start_Pos
    WHERE        RegionID 
= @RegionID
    
    DELETE FROM    SRO_VT_SHARD
.._RefInstance_World_Start_Pos
    INSERT INTO SRO_VT_SHARD
.._RefInstance_World_Start_Pos (WorldIDRegionIDPosXPosYPosZParam)
    
SELECT        @WorldID, @RegionID, @PosX, @PosY, @PosZ0
    
    SELECT        
'Old lines at _RefInstance_World_Start_Pos have been deleted & new ones added'
    
    
END TRY

BEGIN CATCH
    DECLARE        @
ErMessage NVARCHAR(2048) = 'Error occured at RefGameWorld Update/Insert | ERR MSG: ' ERROR_MESSAGE(),
                @
ErSeverity INT ERROR_SEVERITY(),
                @
ErState INT ERROR_STATE();
    
RAISERROR    (@ErMessage, @ErSeverity, @ErState)
    
ROLLBACK TRAN
    
RETURN
    
END CATCH

COMMIT TRAN 
10/22/2014 07:06 PortalDark#2
#Approved
10/22/2014 07:39 Mr.gotsha#3
if you tell me more explain it will be better because i don't know this PROCEDURE what he do ?
10/22/2014 10:47 D1nt3#4
Quote:
Originally Posted by Mr.gotsha View Post
if you tell me more explain it will be better because i don't know this PROCEDURE what he do ?
he do? :D read the query to know pretty easy
10/22/2014 15:52 Snow*#5
It's completely fine now since I can make triggers ^_^ thanks for the credits tho
10/23/2014 03:32 where_love2003#6
Nice one +1
10/24/2014 20:21 karemsa#7
Good job.
02/02/2015 23:56 DrugAddict#8
I'm arabian and i didn't fail when i tried to do it :p thanks anyway xD worked well ^^
02/03/2015 00:01 ​Exo#9
Quote:
Originally Posted by DrugAddict View Post
I'm arabian and i didn't fail when i tried to do it :p thanks anyway xD worked well ^^
Heard of sarcasm? DUHH
02/03/2015 18:45 Storxy_#10
Quote:
Originally Posted by Mr.gotsha View Post
if you tell me more explain it will be better because i don't know this PROCEDURE what he do ?
i think you should help yourself better than ask about ready things.
[Only registered and activated users can see links. Click Here To Register...]
02/04/2015 01:33 TheRunner#11
Thanks Very Much it's really useful to me thank u
02/04/2015 01:44 ​Exo#12
People lying about getting this to work..
I love it ^^
02/04/2015 02:36 Snow*#13
Just reading this give you enough information to create both instances/triggers.
02/04/2015 15:20 Memoirs#14
thanks, useful :)
02/04/2015 19:10 ILowe#15
How it works?