Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[SQL] Query to add a new custom Teleport with options very easy and very fast

Experienced Elementalist
Joined
Nov 22, 2011
Messages
255
Reaction score
111
This query will add a new custom teleport (that is not already exist) at any place in the game in just a minute.

all you have to do is to log in to the game with two characters
*character 1 >> will be place of teleport [the query just take coordinates from characters].
*character 2 >> will be near character 1 and this for the spawn position.

**thats makes teleport position and spawn position not the same.

then log out with the two characters and put the names of the two characters at the settings area.

*this query will create a link between the created teleport and any teleport you need [two ways teleport] and the linked teleport is @OwnTeleport at the settings area.

**example: if we set @OwnTeleport = 1 then after creating the new teleport ,query will add link between it and JANGAN teleport that means you will be able to teleport from JANGAN to your new teleport and from your new teleport to JANGAN too.

*the fee is the gold required to teleport.

*if you set @RequiredLVL = 0 > any character with any level can teleport

*if you set @RequiredLVL = 60 for example > only characters with lvl 60 and above can teleport.

**If you set @RequiredLVL more than 0 >> the query will create just one link [one way teleport only] from the ownteleport to the new teleport

**Query will generate all media lines and tell you where to put every line to media you will only copy this lines and past in the media text files..

Code:
USE SRO_VT_SHARD /* Add new Teleport By Arabianfox */


DECLARE @Teleport VARCHAR (64)
DECLARE @CHARNAME1 VARCHAR (30)
DECLARE @CHARNAME2 VARCHAR (30)
DECLARE @OwnTeleport INT
DECLARE @Fee INT
DECLARE @RequiredLVL INT

/* Put your settings here */
SET @Teleport = 'PVP_ZONE' -- any name you want ex: PK_ZONE or PVP_ZONE
SET @CHARNAME1 = 'CHARNAME1' -- Teleport position
SET @CHARNAME2 = 'CHARNAME2' -- Spawn position after teleport
SET @OwnTeleport = 1  -- Target teleport ID ex: 1 for Jangan - 5 for Hotan - 20 for Constantinople
SET @Fee = 50000  -- Gold amount to Pass the teleport
SET @RequiredLVL = 0  -- minimum level required to teleport 0 for no restriction - ex:90 lvl 90 and higher can teleport
/* settings area end here */

IF EXISTS (SELECT CodeName128 FROM _RefObjCommon WHERE CodeName128 = 'STORE_'+@Teleport)
 BEGIN
  raiserror('The stated teleportname of %s is already exist!',11,1,@Teleport);
  RETURN;
 END
    
    DECLARE @MAXOBJ INT = (SELECT MAX (ID) FROM _RefObjCommon)+1
    DECLARE @REGION1 INT SET @REGION1 = (SELECT (LatestRegion) FROM _Char WHERE CharName16 = @CHARNAME1)
    DECLARE @POSX1 INT SET @POSX1 = (SELECT (POSX) FROM _Char WHERE CharName16 = @CHARNAME1)
    DECLARE @POSY1 INT SET @POSY1 = (SELECT (POSY) FROM _Char WHERE CharName16 = @CHARNAME1)
    DECLARE @POSZ1 INT SET @POSZ1 = (SELECT (POSZ) FROM _Char WHERE CharName16 = @CHARNAME1)
    DECLARE @LINK INT = (SELECT MAX (ID) FROM _RefObjStruct)+1
     
	SET IDENTITY_INSERT _RefObjCommon ON
    INSERT INTO _RefObjCommon (Service,ID,CodeName128,ObjName128,OrgObjCodeName128,NameStrID128,DescStrID128,CashItem,Bionic,TypeID1,TypeID2,TypeID3,TypeID4,DecayTime,Country,Rarity,CanTrade,CanSell,CanBuy,CanBorrow,CanDrop,CanPick,CanRepair,CanRevive,CanUse,CanThrow,Price,CostRepair,CostRevive,CostBorrow,KeepingFee,SellPrice,ReqLevelType1,ReqLevel1,ReqLevelType2,ReqLevel2,ReqLevelType3,ReqLevel3,ReqLevelType4,ReqLevel4,MaxContain,RegionID,Dir,OffsetX,OffsetY,OffsetZ,Speed1,Speed2,Scale,BCHeight,BCRadius,EventID,AssocFileObj128,AssocFileDrop128,AssocFileIcon128,AssocFile1_128,AssocFile2_128,Link) VALUES
    (1,@MAXOBJ,'STORE_'+@Teleport,@Teleport,'xxx','SN_STORE_'+@Teleport,'xxx',0,0,4,1,1,0,0,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,@REGION1,0,@POSX1,@POSY1,@POSZ1,0,0,50,50,30,0,'quest\teleport01.bsr','xxx','xxx','xxx','xxx',@link)
    SET IDENTITY_INSERT _RefObjCommon OFF
	
	print ''
	print 'Add the following line to teleportbuilding.txt @server_dep\silkroad\textdata folder'
    print '1	'+CONVERT(varchar(max),@MAXOBJ)+'	'+'STORE_'+@Teleport+'	'+@Teleport+'	xxx	'+'SN_STORE_'+@Teleport+'	xxx	0	0	4	1	1	0	0	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	'+CONVERT(varchar(max),@REGION1)+'	0	'+CONVERT(varchar(max),@POSX1)+'	'+CONVERT(varchar(max),@POSY1)+'	'+CONVERT(varchar(max),@POSZ1)+'	0	0	50	50	30	0	quest\teleport01.bsr	xxx	xxx	xxx	xxx	'+CONVERT(varchar(max),@link)
	print ''
	print 'Add the following line to textdata_object.txt @server_dep\silkroad\textdata folder'
	print ''
	print '1	'+'SN_STORE_'+@Teleport+'								'+@Teleport
	print ''
  	print ''

  SET IDENTITY_INSERT _RefObjStruct ON
  INSERT INTO _RefObjStruct (ID,Dummy_Data) VALUES
  (@LINK,0)
  SET IDENTITY_INSERT _RefObjStruct OFF
  
  DECLARE @MAXTELID INT = (SELECT MAX (ID) FROM _RefTeleport)+1
  DECLARE @WORLDID INT = (SELECT (WorldID) FROM _Char where CharName16 = @CHARNAME2)
  DECLARE @REGION2 INT SET @REGION2 = (SELECT (LatestRegion) FROM _Char WHERE CharName16 = @CHARNAME2)
  DECLARE @POSX2 INT SET @POSX2 = (SELECT (POSX) FROM _Char WHERE CharName16 = @CHARNAME2)
  DECLARE @POSY2 INT SET @POSY2 = (SELECT (POSY) FROM _Char WHERE CharName16 = @CHARNAME2)
  DECLARE @POSZ2 INT SET @POSZ2 = (SELECT (POSZ) FROM _Char WHERE CharName16 = @CHARNAME2)

  INSERT INTO _RefTeleport (Service,ID,CodeName128,AssocRefObjCodeName128,AssocRefObjID,ZoneName128,GenRegionID,GenPos_X,GenPos_Y,GenPos_Z,GenAreaRadius,CanBeResurrectPos,CanGotoResurrectPos,GenWorldID,BindInteractionMask,FixedService) VALUES
  (1,@MAXTELID,'GATE_'+@Teleport,'STORE_'+@Teleport,@MAXOBJ,'SN_STORE_'+@Teleport,@REGION2,@POSX2,@POSY2,@POSZ2,30,0,0,@WORLDID,1,0)
  
  print ''
  print 'Add the following line to teleportdata.txt @server_dep\silkroad\textdata folder'
  print '1	'+CONVERT(varchar(max),@MAXTELID)+'	'+'GATE_'+@Teleport+'	'+CONVERT(varchar(max),@MAXOBJ)+'	'+'SN_STORE_'+@Teleport+'	'+CONVERT(varchar(max),@REGION2)+'	'+CONVERT(varchar(max),@POSX2)+'	'+CONVERT(varchar(max),@POSY2)+'	'+CONVERT(varchar(max),@POSZ2)+'	30	0	0	'+CONVERT(varchar(max),@WORLDID)+'	1	0'
  print ''
  print ''

  IF @RequiredLVL = 0
  BEGIN
    INSERT INTO _RefTeleLink (Service,OwnerTeleport,TargetTeleport,Fee,RestrictBindMethod,RunTimeTeleportMethod,CheckResult,Restrict1,Data1_1,Data1_2,Restrict2,Data2_1,Data2_2,Restrict3,Data3_1,Data3_2,Restrict4,Data4_1,Data4_2,Restrict5,Data5_1,Data5_2) VALUES
    (1,@OwnTeleport,@MAXTELID,@Fee,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
	INSERT INTO _RefTeleLink (Service,OwnerTeleport,TargetTeleport,Fee,RestrictBindMethod,RunTimeTeleportMethod,CheckResult,Restrict1,Data1_1,Data1_2,Restrict2,Data2_1,Data2_2,Restrict3,Data3_1,Data3_2,Restrict4,Data4_1,Data4_2,Restrict5,Data5_1,Data5_2) VALUES
    (1,@MAXTELID,@OwnTeleport,@Fee,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
	
print ''
	print 'Add the following lines to teleportlink.txt @server_dep\silkroad\textdata folder'
    print '1	'+CONVERT(varchar(max),@OwnTeleport)+'	'+CONVERT(varchar(max),@MAXTELID)+'	'+CONVERT(varchar(max),@Fee)+'	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0'
    print '1	'+CONVERT(varchar(max),@MAXTELID)+'	'+CONVERT(varchar(max),@OwnTeleport)+'	'+CONVERT(varchar(max),@Fee)+'	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0'
	print ''
  END
  ELSE BEGIN
	INSERT INTO _RefTeleLink (Service,OwnerTeleport,TargetTeleport,Fee,RestrictBindMethod,RunTimeTeleportMethod,CheckResult,Restrict1,Data1_1,Data1_2,Restrict2,Data2_1,Data2_2,Restrict3,Data3_1,Data3_2,Restrict4,Data4_1,Data4_2,Restrict5,Data5_1,Data5_2) VALUES
    (1,@OwnTeleport,@MAXTELID,@Fee,0,0,0,1,@RequiredLVL,999,0,0,0,0,0,0,0,0,0,0,0,0)
	
	print ''
	print ''
	print 'Add the following line to teleportlink.txt @server_dep\silkroad\textdata folder'
	print '1	'+CONVERT(varchar(max),@OwnTeleport)+'	'+CONVERT(varchar(max),@MAXTELID)+'	'+CONVERT(varchar(max),@Fee)+'	0	0	0	1	'+CONVERT(varchar(max),@RequiredLVL)+'	999	0	0	0	0	0	0	0	0	0	0	0	0'
    print ''

  END

print ''
print 'Done!'

I hope this help many people here to put custom teleports very easy and very fast
please if you have any notice or bug or questions,just let me know...
 
Last edited:
(⌐■_■)
Joined
Feb 2, 2012
Messages
681
Reaction score
102
Thank you very much dude :w00t: :p:

I Got That Error while Executing :


Msg 8106, Level 16, State 1, Line 33
Table '_RefObjCommon' does not have the identity property. Cannot perform SET operation.
 
Last edited:
Experienced Elementalist
Joined
Nov 22, 2011
Messages
255
Reaction score
111
Thank you very much dude :w00t: :p:

I Got That Error while Executing :


Msg 8106, Level 16, State 1, Line 33
Table '_RefObjCommon' does not have the identity property. Cannot perform SET operation.

set identity property at _Refobjcommon table
 
(⌐■_■)
Joined
Feb 2, 2012
Messages
681
Reaction score
102
Bro i can Read English :p:

But The Q is How not What ^^

Can you help me ?
 
Experienced Elementalist
Joined
Nov 22, 2011
Messages
255
Reaction score
111
Bro i can Read English :p:

But The Q is How not What ^^

Can you help me ?

from SQL menu >> tools >> options >> designers then un-check "prevent saving changes that required table re-creation" then go to

_refobjcommon table > right click > design

set ID as primary key (right click > set as primary key) and from the properties at bottom set identity to "YES"
 
(⌐■_■)
Joined
Feb 2, 2012
Messages
681
Reaction score
102
Done but with errors :

Msg 544, Level 16, State 1, Line 60
Cannot insert explicit value for identity column in table '_RefTeleport' when IDENTITY_INSERT is set to OFF.

Which Column Must i Set the IDENTITY_Insert to on ?
 
(⌐■_■)
Joined
Feb 2, 2012
Messages
681
Reaction score
102
thanks but when i see Teleport i get crash

Itz Easy man , But You must Think and give me like ^^

look , The execute Process when finish it give you the line to add them to the Media

so , you must Edit the spaces between them :wink:
 
Newbie Spellweaver
Joined
Jan 30, 2012
Messages
19
Reaction score
0
and if i want to create a teleport between from all towns to the area i want what settings should i set ? :)
 
Banned
Banned
Joined
Oct 6, 2011
Messages
238
Reaction score
141
Itz Easy man , But You must Think and give me like ^^

look , The execute Process when finish it give you the line to add them to the Media

so , you must Edit the spaces between them :wink:

i do that lol
 
Experienced Elementalist
Joined
Nov 22, 2011
Messages
255
Reaction score
111
now should work fine..spaces fixed now ..now you can copy lines from result area directly to text files without edit spaces..

i make this and work 99% but i need where i can add name this Teleport im show this teleport no name

did you copy line to textdata_object.txt ?!
 
Back
Top