Introduction
Hello guys, welcome to my bugs + fixes compilation thread. Below, you will find all sorts of fixes, from queries, to simply changing the percentage of premium. I hope you take the time to read this thread, and take everything said into account. I have to state here too, not all of this information is mine, some of it is from other people. Credits shall be given once due. Okay, let's begin.
Setting GM's - With no corruption
We've all been wondering this - How am I going to get a trustworthy team of GM's? Well, look no further - here's the answer.
1) - Open your SQL Management Studio
2) - Open your SRO_VT_ACCOUNT (Or whatever you've called it)
3) - And open _SecurityDescriptionGroupAssign
4) - Delete any rows that have 10 in nGroupID, remember only nGroupID that have number 10, after you finish start add these three lines
5)
Code:
10 14 10 28 10 29
7) - Extra - The GM's won't have cmds such as /zoe, /makeitem
How to Fix C9 Error
1)- In your Local Area Network
If you have a LAN config basically this,
----
IP:192.168.1.XX
Subnet: 255.255.255.0
Gateway: 192.168.1.1
----
2) Click the "Advanced" button
3) -
4) In the IP addresses click add and add your WAN ip with subnet mask 255.255.255.0 then OK OK OK OK
5) Now in the cert srNodeType.ini
wip: your WAN IP
nip: your WAN IP
6) Now in server MachineManager, AgentServer, SR_GameServer
spoof it to your WAN IP using chern0byl's patch 103 - 105...
7) You're good to go!
How to add Job Rates(QUERY)
1)
Code:
USE [SRO_VT_SHARD_INIT] GO UPDATE dbo._RefObjCommon SET Price = 383*20 WHERE Price = 383 UPDATE dbo._RefObjCommon SET SellPrice = 191*20 WHERE SellPrice = 191 UPDATE dbo._RefPricePolicyOfItem SET Cost = 383*20 WHERE Cost = 383
Adding items into Npc / Item Mall(QUERY)
1) - Download the extractor
2) SRO_VT_SHARD\refpackageitem and Media.pk2\server_dep\silkroad\textdata\refpackagei tem.txt
first in the database for generating ID after in media.pk2,
Code:
1 15 1864 PACKAGE_ITEM_PRE_MALL_AVATAR_M_SAYTAN_DRESS 0 EXPAND_TERM_ALL SN_ITEM_PRE_MALL_AVATAR_M_SAYTAN_DRESS SN_ITEM_PRE_MALL_AVATAR_M_SAYTAN_DRESS_TT_DESC item\Avatar\mall_avatar_m_saytan_dress.ddj -1 XXX -1 xxx -1 xxx -1 xxx 1=on 0=off Id automatically generated Item code 1=item mall new items 0=normal Icon name in Media.pk2\Icon64\item\avatar\
Code:
>>>>>>>>>>>>for silk item:<<<<<<<<<<<<<< 1 15 PACKAGE_ITEM_MALL_AVATAR_M_SAYTAN_DRESS 2 0 300 -1 xxx -1 xxx -1 xxx -1 xxx 1 15 PACKAGE_ITEM_MALL_AVATAR_M_SAYTAN_DRESS 4 0 0 -1 xxx -1 xxx -1 xxx -1 xxx 1 15 PACKAGE_ITEM_MALL_AVATAR_M_SAYTAN_DRESS 16 0 0 -1 xxx -1 xxx -1 xxx -1 xxx 1=on 0=off Item code price >>>>>>>>>>>>For gold item:<<<<<<<<<<<<<< 1 15 PACKAGE_ITEM_EU_W_HEAVY_11_SA_SET_B 1 0 3413000 -1 xxx -1 xxx -1 xxx -1 xxx 1=on 0=off Item code price
Code:
1 15 PACKAGE_ITEM_PRE_MALL_AVATAR_M_SAYTAN_DRESS ITEM_PRE_MALL_AVATAR_M_SAYTAN_DRESS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 xxx -1 xxx -1 xxx -1 xxx 1864 1=on 0=off Item code Id automatically generated
Code:
1 15 MALL_AVATAR_DRESS PACKAGE_ITEM_PRE_MALL_AVATAR_M_SAYTAN_DRESS 66 -1 xxx -1 xxx -1 xxx -1 xxx 1=on 0=off Shop+Table ID Item code Slot(starts at 0)for example Item mall with only Shaytan avatar dress : 1 15 MALL_AVATAR_DRESS PACKAGE_ITEM_PRE_MALL_AVATAR_M_SAYTAN_DRESS 0 -1 xxx -1 xxx -1 xxx -1 xxx 1 15 MALL_AVATAR_DRESS PACKAGE_ITEM_PRE_MALL_AVATAR_W_SAYTAN_DRESS 1 -1 xxx -1 xxx -1 xxx -1 xxx
Download this editor -
File\Open,
Select folder extracted previously:
Then click import
6) Done!
How to make a Registration page
1) Downloads below;
How to fix F1 - 4 slot bug
This bug is a pretty easy one to fix. It's the bug where you login, and you have the basic starter items on your Slots in the F1 bar (exchange, trace etc) and when you replace & relogin they're there again.
1)
Code:
UPDATE _RefCharDefault_Quest SET Service = 1 delete from _CHARQUEST where QuestID = 1 INSERT INTO _CharQuest (CharID, QuestID, Status,AchievementCount,StartTime,EndTime,QuestData1,QuestData2) SELECT CharID, 1,5,0, '2012-04-13 20:44:00','2012-04-13 20:44:00',31458135,0 FROM _CHAR where CharID > 0
Change magic pop rate(Query)
Code:
USE [SRO_VT_SHARD] GO /* MsSQL Script For Change Magic Pop Rates - CEZALAND - ! ******** ! */ DECLARE @Rate int SET @Rate = 10 UPDATE dbo._RefGachaItemSet SET Ratio = Ratio*@Rate WHERE Ratio*@Rate < 32768 -- 32767 max value for smallint
Add new unique spot(Query)
Code:
USE SRO_VT_SHARD DECLARE @UNIQUE VARCHAR (129) DECLARE @CHARNAME VARCHAR (64) DECLARE @mindealy INT DECLARE @maxdelay int DECLARE @INITRADIUS INT DECLARE @RADIUS int DECLARE @MAXNEST int = (SELECT MAX (dwNestID) FROM Tab_RefNest)+1 DECLARE @MAXHIVE int = (SELECT MAX (dwHiveID) FROM Tab_RefHive)+1 DECLARE @MAXTACTICS int = (SELECT MAX (dwTacticsID) FROM Tab_RefTactics)+1 /* put your settings here */ SET @UNIQUE = 'MOB_CH_TIGERWOMAN_L2' -- Unique code name from _RefobjCommon table SET @CHARNAME = 'WildOne' -- Character name from _Char table to get mob position X Y Z SET @mindealy = 1 -- Minimum time before appears in seconds SET @maxdelay = 5 -- Maximum time before appears in seconds SET @INITRADIUS = 100 -- Radius around spot unique can generated at SET @RADIUS = 200 -- Radius around spot Unique can move in /* end of settings area */ /* get ID of mob by code name */ Declare @MOBID int SET @MOBID = (SELECT ID FROM _RefObjCommon WHERE CodeName128 = @UNIQUE) --SET IDENTITY_INSERT Tab_RefTactics ON INSERT INTO Tab_RefTactics (dwTacticsID,dwObjID,btAIQoS,nMaxStamina,btMaxStaminaVariance,nSightRange,btAggressType,AggressData,btChangeTarget,btHelpRequestTo,btHelpResponseTo,btBattleStyle,BattleStyleData,btDiversionBasis,DiversionBasisData1,DiversionBasisData2,DiversionBasisData3,DiversionBasisData4,DiversionBasisData5,DiversionBasisData6,DiversionBasisData7,DiversionBasisData8,btDiversionKeepBasis,DiversionKeepBasisData1,DiversionKeepBasisData2,DiversionKeepBasisData3,DiversionKeepBasisData4,DiversionKeepBasisData5,DiversionKeepBasisData6,DiversionKeepBasisData7,DiversionKeepBasisData8,btKeepDistance,KeepDistanceData,btTraceType,btTraceBoundary,TraceData,btHomingType,HomingData,btAggressTypeOnHoming,btFleeType,dwChampionTacticsID,AdditionOptionFlag,szDescString128) VALUES (@MAXTACTICS,@MOBID,0,500,50,200,0,0,2,2,2,0,0,5,0,0,0,0,0,30,0,0,4,0,0,0,0,0,0,0,0,0,0,0,1,500,0,0,2,0,0,112,@UNIQUE) --SET IDENTITY_INSERT Tab_RefTactics OFF --SET IDENTITY_INSERT Tab_RefHive ON INSERT INTO Tab_RefHive (dwHiveID,btKeepMonsterCountType,dwOverwriteMaxTotalCount,fMonsterCountPerPC,dwSpawnSpeedIncreaseRate,dwMaxIncreaseRate,btFlag,GameWorldID,HatchObjType,szDescString128) VALUES (@MAXHIVE,0,1,0,0,0,0,1,1,@UNIQUE) --SET IDENTITY_INSERT Tab_RefHive OFF /* get position coordinates of your character */ DECLARE @REGION INT SET @REGION = (SELECT (LatestRegion) FROM _Char WHERE CharName16 = @CHARNAME) DECLARE @POSX INT SET @POSX = (SELECT (POSX) FROM _Char WHERE CharName16 = @CHARNAME) DECLARE @POSY INT SET @POSY = (SELECT (POSY) FROM _Char WHERE CharName16 = @CHARNAME) DECLARE @POSZ INT SET @POSZ = (SELECT (POSZ) FROM _Char WHERE CharName16 = @CHARNAME) --SET IDENTITY_INSERT Tab_RefNest ON INSERT INTO Tab_RefNest (dwNestID,dwHiveID,dwTacticsID,nRegionDBID,fLocalPosX,fLocalPosY,fLocalPosZ,wInitialDir,nRadius,nGenerateRadius,nChampionGenPercentage,dwDelayTimeMin,dwDelayTimeMax,dwMaxTotalCount,btFlag,btRespawn,btType) VALUES (@MAXNEST,@MAXHIVE,@MAXTACTICS,@REGION,@POSX,@POSY,@POSZ,0,@RADIUS,@INITRADIUS,0,@mindealy,@maxdelay,1,0,1,0) --SET IDENTITY_INSERT Tab_RefNest OFF print '' print '' print 'Done!'
Job / Guild 0 Penalty Time
Code:
USE [SRO_VT_SHARD] GO /******By Jangan ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER procedure [dbo].[_AddTimedJob] @CharID int, @Category tinyint, @JobID int, @TimeToKeep int, @Data1 int, @Data2 int, --##begin due to develop composite item @Data3 int, @Data4 int, @Data5 int, @Data6 int, @Data7 int, @Data8 int, @Serial64 bigint, @JID int --##end due to develop composite item as if (not exists (select CharID from _Char with (nolock) where CharID = @CharID)) return -1 if (@TimeToKeep <= 0) return -2 declare @NewJobID int set @NewJobID = 0 --##JobID 1 = Guild // JobID 2 = Thief/Hunter/Trader --##If you want to only have one not both, then just modify the line below! if (@JobID = 1 or @JobID = 2) BEGIN return -1 END ELSE BEGIN --##begin due to develop composite item insert into _TimedJob(CharID,Category,JobID,TimeToKeep,Data1,Data2,Data3,Data4,Data5,Data6,Data7,Data8,Serial64,JID) values(@CharID, @Category, @JobID, @TimeToKeep, @Data1, @Data2, @Data3, @Data4, @Data5, @Data6, @Data7, @Data8, @Serial64, @JID) END --##end due to develop composite item set @NewJobID = @@identity if (@@error <> 0 or @@rowcount = 0) return -3 return @NewJobID
Reset all characters skills
Code:
USE [SRO_VT_SHARD] GO --Made by ModGift for ******** -- edit by InPanic Kev -- update _ClientConfig set Data = '0' -- edit by InPanic Kev -- DELETE FROM [dbo].[_CharSkill] WHERE SKillID NOT LIKE '1' and SKillID NOT LIKE '2' and SKillID NOT LIKE '40' and SKillID NOT LIKE '70' and SKillID NOT LIKE '8421' and SKillID NOT LIKE '8419' and SKillID NOT LIKE '8420' and SKillID NOT LIKE '9354' and SKillID NOT LIKE '9355' and SKillID NOT LIKE '9944' and SKillID NOT LIKE '10625' and SKillID NOT LIKE '11162' and SKillID NOT LIKE '11526' GO UPDATE [dbo].[_CharSkillMastery] SET [Level] = '0' --- UPDATE [dbo].[_Char] SET RemainSkillPoint = RemainSkillPoint + @GiveSP WHERE CharName16 = @CharName
Change Stones Rate
Code:
USE SRO_VT_SHARD GO UPDATE _RefObjItem SET Param4 = Here Put The Rate You Want % WHERE ID BETWEEN 4630 AND 5013
Change Mob Level
Code:
USE SRO_VT_SHARD Declare @link int, @codename varchar(max), @level int, @newlevel int; set @codename = 'SN_MOB_SD_HIKE' /* <- from textdata_object.txt */ set @link = (SELECT Link FROM _RefObJCommon WHERE NameStrID128 = @codename) set @newlevel = ( case when (SELECT Lvl FROM _RefObjChar WHERE ID = @link)+10 <= 120 THEN (SELECT Lvl FROM _RefObjChar WHERE ID = @link)+10 ELSE 120 end); UPDATE _RefObjChar SET Lvl = @newlevel WHERE ID = @link UPDATE _RefObjChar SET ExpToGive = cast(ExpToGive*1.1 as bigint) WHERE ID = @link UPDATE _RefObjChar SET MaxHP = cast(MaxHP*1.1 as bigint) WHERE ID = @link
Change character title by charname
Code:
use SRO_VT_SHARD Update _Char set HwanLevel = 'Title Num' where CharName16 = 'Cher Name'
Add new Teleport
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 = 'unique_area1' -- any name you want ex: PK_ZONE or PVP_ZONE SET @CHARNAME1 = '[GM]WildOne' -- Teleport position SET @CHARNAME2 = 'Road' -- 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\ins_quest_teleport.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!'
Change inventory size by charname
Code:
USE([SRO_VT_SHARD_INIT]) GO() Declare @CharName Varchar (64) Set @CharName = 'Kira'/* Char Name */ Update(dbo._Char) InventorySize = 109 /* Number Of Slot Max 109 */ WHERE CharID = (SELECT CharID FROM [dbo].[_Char] WHERE CharName16 = @CharName)
Databases
vSRO[v188] -
vSRO[v193](New job system) -
vSRO Installation Tutorial(video)
EXTRAS
This guide will be updated daily with new things to be added, oh and, if I helped you, press thanks :-)