كيفية اضافة npc جديدة

اذهب الى الأسفل

تم الحل كيفية اضافة npc جديدة

مُساهمة من طرف اعصار في الأحد أبريل 29, 2018 12:33 pm

كيفية اضافة npc جديدة لسيرفر
avatar
اعصار
مشرف قسم الحوار
مشرف قسم الحوار

المساهمات : 10
نقاط : 40477
السٌّمعَة لعضو : 10
تاريخ التسجيل : 28/04/2018

معاينة صفحة البيانات الشخصي للعضو

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تم الحل رد: كيفية اضافة npc جديدة

مُساهمة من طرف النجم الذهبي في الأحد أبريل 29, 2018 1:04 pm





الـموضع ده شـامل كـل تعديل فـى الـ NPC 

1- Add NPC & Edit NPC & Fix Crush Client 
2- Add NPC Name & Add Group Name
3- Add item in NPC
4- تغير اتـجاه الـ NPC 
5- Add New Group 
6- Add New Tab
7-غـير مـكان الـ NPC
نـبتدى الـشرح 

Add NPC

لازم الاول نـعمل زى الـصور عـشان الكورى يـتعمل 















ودلوقتى بـقا ده الـ Query اللى هنضـيف بيه الـ NPC الـجديد 

كود PHP:
الكود:
DECLARE @CHARNAME VARCHAR (30) 
DECLARE @NPCNAME VARCHAR (30) 
DECLARE @ADDNEW VARCHAR (30) 
DECLARE @GAMEWORDID INT 
SET @CHARNAME = 'ELjOkeR' --U Char Name 
SET @NPCNAME = 'Protectors' --U NPC NAME 
SET @GAMEWORDID = 1 --IMPORTANT! GET GAMEWORLD ID FROM THE LOCALY U WANT ADD THE NPC NORMAL CITYs = 1 
SET @ADDNEW = 'NPC' 
-- 
IF @ADDNEW = 'NPC' BEGIN 
DECLARE @MAXLINK VARCHAR (30) = (SELECT MAX (ID) FROM _RefObjChar)+1 
DECLARE @MAXCOMMONID VARCHAR (30) = (SELECT MAX (ID) FROM _RefObjCommon)+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,@MAXCOMMONID,'NPC_'+@NPCNAME,'xxx','xxx','SN_NPC_'+@NPCNAME,'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,'npc\npc\chinawoman_Noblegirl_event.bsr','xxx','xxx','xxx','xxx',@MAXLINK) 
SET IDENTITY_INSERT _RefObjCommon OFF 
SET IDENTITY_INSERT _RefObjChar ON 
INSERT INTO _RefObjChar (ID,Lvl,CharGender,MaxHP,MaxMP,ResistFrozen,ResistFrostbite,ResistBurn,ResistEShock,ResistPoison,ResistZombie,ResistSleep,ResistRoot,ResistSlow,ResistFear 
,ResistMyopia,ResistBlood,ResistStone,ResistDark,ResistStun,ResistDisea,ResistChaos,ResistCsePD,ResistCseMD,ResistCseSTR,ResistCseINT,ResistCseHP,ResistCseMP,Resist24,ResistBomb,Resist26 
,Resist27,Resist28,Resist29,Resist30,Resist31,Resist32,InventorySize,CanStore_TID1,CanStore_TID2,CanStore_TID3,CanStore_TID4,CanBeVehicle,CanControl,DamagePortion,MaxPassenger,AssocTactics,PD,MD,PAR,MAR,ER,BR,HR,CHR 
,ExpToGive,CreepType,Knockdown,KO_RecoverTime,DefaultSkill_1,DefaultSkill_2,DefaultSkill_3,DefaultSkill_4,DefaultSkill_5,DefaultSkill_6,DefaultSkill_7,DefaultSkill_8,DefaultSkill_9,DefaultSkill_10,TextureType,Except_1 
,Except_2,Except_3,Except_4,Except_5,Except_6,Except_7,Except_8,Except_9,Except_10,Link) VALUES 
(@MAXLINK,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 IDENTITY_INSERT _RefObjChar OFF 
SET IDENTITY_INSERT _RefShop ON 
DECLARE @ShopID VARCHAR (30) = (SELECT MAX (ID) FROM _RefShop)+1 
INSERT INTO _RefShop (Service,Country,ID,CodeName128,Param1,Param1_Desc128,Param2,Param2_Desc128,Param3,Param3_Desc128,Param4,Param4_Desc128) 
VALUES (1,15,@ShopID,'STORE_'+@NPCNAME,-1,'xxx',-1,'xxx',-1,'xxx',-1,'xxx') 
SET IDENTITY_INSERT _RefShop OFF 
SET IDENTITY_INSERT _RefShopGroup ON 
DECLARE @ShopGroupID VARCHAR (30) = (SELECT MAX (ID) FROM _RefShopGroup)+1 
INSERT INTO _RefShopGroup (Service,Country,ID,CodeName128,RefNPCCodeName,Param1,Param1_Desc128,Param2,Param2_Desc128,Param3,Param3_Desc128,Param4,Param4_Desc128) 
VALUES (1,15,@ShopGroupID,'GROUP_STORE_'+@NPCNAME,'NPC_'+@NPCNAME,-1,'xxx',-1,'xxx',-1,'xxx',-1,'xxx') 
SET IDENTITY_INSERT _RefShopGroup OFF 
SET IDENTITY_INSERT _RefShopItemGroup ON 
DECLARE @ShopItemID VARCHAR (30) = (SELECT MAX (GROUPID) FROM _RefShopItemGroup)+1 
INSERT INTO _RefShopItemGroup (Service,GroupID,CodeName128,StrID128_Group) 
VALUES (1,@ShopItemID,'STORE_'+@NPCNAME+'_GROUP1','SN_STORE_'+@NPCNAME+'_GROUP1') 
SET IDENTITY_INSERT _RefShopItemGroup OFF 
SET IDENTITY_INSERT _RefShopTab ON 
DECLARE @ShopTabID VARCHAR (30)= (SELECT MAX (ID) FROM _RefShopTab)+1 
INSERT INTO _RefShopTab (Service,Country,ID,CodeName128,RefTabGroupCodeName,StrID128_Tab) 
VALUES (1,15,@ShopTabID,'STORE_'+@NPCNAME+'_TAB1','STORE_'+@NPCNAME+'_GROUP1','SN_TAB_Stones') 
SET IDENTITY_INSERT _RefShopTab OFF 
SET IDENTITY_INSERT _RefShopTabGroup ON 
DECLARE @ShopTabGroupID VARCHAR (30) = (SELECT MAX (ID) FROM _RefShopTabGroup)+1 
INSERT INTO _RefShopTabGroup (Service,Country,ID,CodeName128,StrID128_Group) 
VALUES (1,15,@ShopTabGroupID,'STORE_'+@NPCNAME+'_GROUP1','SN_STORE_'+@NPCNAME+'_GROUP1') 
SET IDENTITY_INSERT _RefShopTabGroup OFF 
INSERT INTO _RefMappingShopGroup VALUES (1,15,'GROUP_STORE_'+@NPCNAME,'STORE_'+@NPCNAME) 
INSERT INTO _RefMappingShopWithTab VALUES (1,15,'STORE_'+@NPCNAME,'STORE_'+@NPCNAME+'_GROUP1') 
DECLARE @TACTICSID INT SET @TACTICSID = (SELECT MAX (dwTacticsID) FROM Tab_RefTactics)+10 
INSERT INTO Tab_RefTactics VALUES 
(@TACTICSID,@MAXCOMMONID,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_'+@NPCNAME) 
BEGIN
DECLARE @HIVEID INT  SET @HIVEID = (SELECT MAX (dwHiveID) FROM Tab_RefHive)+1 
INSERT INTO Tab_RefHive VALUES 
(@HIVEID,0,0,0,0,0,0,@GAMEWORDID,2,'NPC_'+@NPCNAME) 
END
BEGIN
DECLARE @REGION VARCHAR (30) SET @REGION = (SELECT (LatestRegion) FROM _Char WHERE CharName16 = @CHARNAME) 
DECLARE @POSX VARCHAR (30) SET @POSX = (SELECT (POSX) FROM _Char WHERE CharName16 = @CHARNAME) 
DECLARE @POSY VARCHAR (30) SET @POSY = (SELECT (POSY) FROM _Char WHERE CharName16 = @CHARNAME) 
DECLARE @POSZ VARCHAR (30) SET @POSZ = (SELECT (POSZ) FROM _Char WHERE CharName16 = @CHARNAME) 
DECLARE @NESTID INT SET @NESTID = (SELECT MAX (dwNestID) FROM Tab_RefNest)+1 
INSERT INTO Tab_RefNest VALUES 
(@NESTID,@HIVEID,@TACTICSID,@REGION,@POSX,@POSY,@POSZ,0,0,0,0,0,0,1,0,1,0) 
END
PRINT 'add this line to characterdata_45000 @ server_dep\silkroad\textdata' 
PRINT '' 
PRINT '1    '+@MAXCOMMONID+'    '+@NPCNAME+'    xxx    xxx    '+'SN_NPC_'+@NPCNAME+'    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    npc\npc\chinawoman_Noblegirl_event.bsr    xxx    xxx    xxx    xxx    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' 
PRINT '' 
PRINT 'Add this line to refshop.txt @ server_dep\silkroad\textdata' 
PRINT '' 
PRINT '1    15    '+@SHOPID+'    '+'STORE_'+@NPCNAME+'    -1    xxx    -1    xxx    -1    xxx    -1    xxx' 
PRINT '' 
PRINT 'Add this line to refshopgroup.txt @ server_dep\silkroad\textdata' 
PRINT '' 
PRINT '1    15    '+@SHOPGROUPID+'    '+'GROUP_STORE_'+@NPCNAME+'    '+'NPC_'+@NPCNAME+'    -1    xxx    -1    xxx    -1    xxx    -1    xxx' 
PRINT '' 
PRINT 'Add this line to shopgroupdata.txt @ server_dep\silkroad\textdata' 
PRINT '' 
PRINT '1    '+@SHOPITEMID+'    '+'STORE_'+@NPCNAME+'_GROUP1    '+'SN_STORE_'+@NPCNAME+'_GROUP1' 
PRINT '' 
PRINT 'Add this line to refshoptab.txt @ server_dep\silkroad\textdata' 
PRINT '' 
PRINT '1    15    '+@SHOPTABID+'    '+'STORE_'+@NPCNAME+'_TAB1    '+'STORE_'+@NPCNAME+'_GROUP1     SN_TAB_Stones' 
PRINT '' 
PRINT 'Add this line to refshoptabgroup.txt @ server_dep\silkroad\textdata' 
PRINT '' 
PRINT '1    15    '+@SHOPTABGROUPID+'    '+'STORE_'+@NPCNAME+'_GROUP1    '+'SN_STORE_'+@NPCNAME+'_GROUP1' 
PRINT '' 
PRINT 'Add this line to refmappingshopgroup.txt @ server_dep\silkroad\textdata' 
PRINT '' 
PRINT '1    15    '+'GROUP_STORE_'+@NPCNAME+'    '+'STORE_'+@NPCNAME 
PRINT '' 
PRINT 'Add this line to refmappingshopwithtab.txt @ server_dep\silkroad\textdata' 
PRINT '' 
PRINT '1    15    '+'STORE_'+@NPCNAME+'    '+'STORE_'+@NPCNAME+'_GROUP1' 
PRINT '' 
PRINT 'A New NPC Has ADD Succesfuly Restart U Server and Login in '+@CHARNAME 
END  
كـده كل حـاجة تـمام الـ Query هيـطلعلك Lines عشان تحتـها فى الـ Media.pk2 احـنا بقـا هنعدل الـمسافات و فى characterdata_45000 مثـال احـنا عملـنا اسم الن بى سى News
الـ SQL هيديك الـ Lines مكتوب New بس احـنا بقا هنعدلها ونخليها كدة NPC_News

كدة تـمام 




الـ NPC اتعمل بس بدون اسم فى الـجيم ولا اسم جروب !! 

1- عشـان اسم الجروب هنضيف السطر ده فى Textuisystem فى الميديا 

كود بلغة HTML:
1 SN_STORE_Newitem_GROUP1 ?? ??? ??/??/?? 0 0 0 0 0 Purchase/ Sell/ item / Avatar Rare / New Purchase/ Sell/ item / Avatar Rare / New 0 0 0 0 0 0
حط اسم النـ بى سى بتاعك بدل Newitem



2-عشان اسم الـ NPC داخل اللعبة هتضيف الـسطر ده فى textdata_object فى الميديا 

كود بلغة HTML:
1 SN_NPC_YouNPC item Nova DG11
عدل على YouNPC باسم ال NPC بتاعك 



Add item in NPC

لازم تـعمل زى الـصور عـشان الـ Query يشـغل مـعاك 













Query Add item in NPC 
كود PHP:
الكود:
USE SRO_VT_SHARD
GO
DECLARE @ID int
DECLARE @INDEX int
DECLARE @CodeName varchar(128)
DECLARE @PackageName varchar(128)
DECLARE @DescSTRID varchar(128)
DECLARE @File varchar(128)
DECLARE @Price int
DECLARE @SilkPrice int
DECLARE @Slot tinyint
DECLARE @TAB varchar(128)
DECLARE @Data int
DECLARE @SkipScrapOfPackageItem int = 0
DECLARE @SkipPackageItem int = 0
DECLARE @SkipPricePolicyOfItem int = 0
--- Set Variables
SET @CodeName = 'ITEM_EU_SHIELD_08_C_RARE' -- Item CodeName in RefObjCommon
SET @Price = 5000000 -- Set 0 if you don't want to set Gold Price
SET @SilkPrice = 256 -- Set 0 if you don't want to set Silk Price
SET @TAB = 'STORE_Honor_TAB1' -- Tab name in NPC, For _RefShopGoods
SET @PackageName = 'PACKAGE_'+@CodeName -- Do not edit if you don't know what are you doing.
--- you don't need to touch here...
IF (@CodeName = '')
BEGIN
    PRINT 'You have to edit CodeName..!'
    PRINT 'FAILED.'
    RETURN
END
IF ((SELECT COUNT(ID) FROM _RefObjCommon WHERE CodeName128 = @CodeName) < 1)
BEGIN
    PRINT 'There is no item with this CodeName..!'
    PRINT 'FAILED.'
    RETURN
END
IF (@Price < 0)
BEGIN
    PRINT 'Price is not VALID..!'
    PRINT 'FAILED.'
    RETURN
END
IF (@SilkPrice < 0)
BEGIN
    PRINT 'Silk Price is not VALID..!'
    PRINT 'FAILED.'
    RETURN
END
IF ((SELECT COUNT(ID) FROM _RefShopTab WHERE CodeName128 = @TAB) < 1)
BEGIN
    PRINT 'TAB VALUE IS NOT VALID..!'
    PRINT 'FAILED.'
    RETURN
END
IF ((SELECT COUNT (RefPackageItemCodeName) FROM _RefShopGoods WHERE RefPackageItemCodeName = @PackageName AND RefTabCodeName = @TAB) > 0)
BEGIN
    PRINT 'There is already same item in same tab..!'
    PRINT 'FAILED.'
    RETURN
END
IF ((SELECT COUNT (RefPackageItemCodeName) FROM _RefScrapOfPackageItem WHERE RefPackageItemCodeName = @PackageName) > 0)
BEGIN
    PRINT 'There is already an entry for this item, skipping @_RefScrapOfPackageItem table..!'
    SET @SkipScrapOfPackageItem = 1
END
IF ((SELECT COUNT (CodeName128) FROM _RefPackageItem WHERE CodeName128 = @PackageName) > 0)
BEGIN
    PRINT 'There is already an entry for this item, skipping @_RefPackageItem table..!'
    SET @SkipPackageItem = 1
END
IF ((SELECT COUNT (PaymentDevice) FROM _RefPricePolicyOfItem WHERE RefPackageItemCodeName = @PackageName AND PaymentDevice = '1') > 0)
BEGIN
    PRINT 'There is already an entry for this item with same PaymentDevice, skipping @_RefPricePolicyOfItem table..! (Gold)'
    SET @SkipPricePolicyOfItem = 1
END
IF ((SELECT COUNT (PaymentDevice) FROM _RefPricePolicyOfItem WHERE RefPackageItemCodeName = @PackageName AND PaymentDevice = '2') > 0)
BEGIN
    PRINT 'There is already an entry for this item with same PaymentDevice, skipping @_RefPricePolicyOfItem table..! (Silk)'
    IF (@SkipPricePolicyOfItem = 1)
    BEGIN
        SET @SkipPricePolicyOfItem = 3
    END
    ELSE
    BEGIN
        SET @SkipPricePolicyOfItem = 2
    END
END
IF (@SilkPrice = 0) AND (@Price = 0)
BEGIN
    PRINT 'You need to set a price, at least one !'
    PRINT 'FAILED.'
    RETURN
END
SELECT TOP 1 @ID = ID FROM _RefPackageItem ORDER BY ID DESC
SET @ID = @ID + 1
SELECT TOP 1 @INDEX = [Index] FROM _RefScrapOfPackageItem ORDER BY [Index] DESC
SET @INDEX = @INDEX + 1
SELECT TOP 1 @Slot = SlotIndex FROM _RefShopGoods WHERE RefTabCodeName = @TAB ORDER BY SlotIndex DESC
IF (@Slot = 0)
BEGIN
    SET @Slot = @Slot + 1
END
ELSE IF (@Slot > 0)
BEGIN
    SET @Slot = @Slot + 1
END
ELSE
BEGIN
    SET @Slot = 0
END
SET @DescSTRID = 'SN_' + @CodeName + '_TT_DESC'
SELECT @File = AssocFileIcon128 FROM _RefObjCommon WHERE CodeName128 = @CodeName
IF (@CodeName LIKE '%RING%' OR @CodeName LIKE '%NECKLACE%' OR @CodeName LIKE '%ARCHEMY%')
BEGIN
    SET @Data = 1
END
ELSE
BEGIN
    SELECT @Data = Dur_U FROM _RefObjItem WHERE ID = (SELECT Link FROM _RefObjCommon WHERE CodeName128 = @CodeName)
END
BEGIN TRANSACTION
IF (@SkipPackageItem = 0)
BEGIN
    --SET IDENTITY_INSERT _RefPackageItem ON
    INSERT _RefPackageItem ([Service], Country, ID, CodeName128, SaleTag, ExpandTerm, NameStrID, DescStrID, AssocFileIcon, Param1, Param1_Desc128, Param2, Param2_Desc128, Param3, Param3_Desc128, Param4, Param4_Desc128) VALUES (1, 15, @ID, @PackageName, 0, 'EXPAND_TERM_ALL', 'SN_'+@CodeName, @DescSTRID, @File, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx')
        IF (@@ERROR <> 0)  
        BEGIN
            PRINT 'AN ERROR HAPPENED WHILE ADDING TO _RefPackageItem, Rolling back...'
            ROLLBACK TRANSACTION
            RETURN
        END
    PRINT 'Added to _RefPackageItem !'
    --SET IDENTITY_INSERT _RefPackageItem OFF
END
IF (@SkipScrapOfPackageItem = 0)
BEGIN
    INSERT _RefScrapOfPackageItem (Service, Country, RefPackageItemCodeName, RefItemCodeName, OptLevel, Variance, Data, MagParamNum, MagParam1, MagParam2, MagParam3, MagParam4, MagParam5, MagParam6, MagParam7, MagParam8, MagParam9, MagParam10, MagParam11, MagParam12, Param1, Param1_Desc128, Param2, Param2_Desc128, Param3, Param3_Desc128, Param4, Param4_Desc128, [Index]) VALUES (1, 15, @PackageName, @CodeName, 0, 0, @Data, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx', @INDEX)
        IF (@@ERROR <> 0)  
        BEGIN
            PRINT 'AN ERROR HAPPENED WHILE ADDING TO _RefScrapOfPackageItem, Rolling back...'
            ROLLBACK TRANSACTION
            RETURN
        END
    PRINT 'Added to _RefScrapOfPackageItem !'
END
IF (@SkipPricePolicyOfItem = 2 OR @SkipPricePolicyOfItem = 0 AND @Price > 0)
BEGIN
    INSERT _RefPricePolicyOfItem (Service, Country, RefPackageItemCodeName, PaymentDevice, PreviousCost, Cost, Param1, Param1_Desc128, Param2, Param2_Desc128, Param3, Param3_Desc128, Param4, Param4_Desc128) VALUES (1, 15, @PackageName, 1, 0, @Price, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx')
        IF (@@ERROR <> 0)  
        BEGIN
            PRINT 'AN ERROR HAPPENED WHILE ADDING TO _RefPricePolicyOfItem, Rolling back...'
            ROLLBACK TRANSACTION
            RETURN
        END
    PRINT 'Added to _RefPricePolicyOfItem, PaymentDevice = 1 (Gold)'
END
IF (@SkipPricePolicyOfItem = 1 OR @SkipPricePolicyOfItem = 0 AND @SilkPrice > 0)
BEGIN
    INSERT _RefPricePolicyOfItem (Service, Country, RefPackageItemCodeName, PaymentDevice, PreviousCost, Cost, Param1, Param1_Desc128, Param2, Param2_Desc128, Param3, Param3_Desc128, Param4, Param4_Desc128) VALUES (1, 15, @PackageName, 2, 0, @SilkPrice, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx')
        IF (@@ERROR <> 0)  
        BEGIN
            PRINT 'AN ERROR HAPPENED WHILE ADDING TO _RefPricePolicyOfItem, Rolling back...'
            ROLLBACK TRANSACTION
            RETURN
        END
    PRINT 'Added to _RefPricePolicyOfItem, PaymentDevice = 2 (Silk)'
END
ELSE
BEGIN
    PRINT 'There is already silk / gold price, skipping _RefPricePolicyOfItem table...'
END
INSERT _RefShopGoods (Service, Country, RefTabCodeName, RefPackageItemCodeName, SlotIndex, Param1, Param1_Desc128, Param2, Param2_Desc128, Param3, Param3_Desc128, Param4, Param4_Desc128) VALUES (1, 15, @TAB, @PackageName, @Slot, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx')
    IF (@@ERROR <> 0)  
    BEGIN
        PRINT 'An error happened while adding to _RefShopGoods table'
        PRINT 'FAILED.'
        ROLLBACK TRANSACTION
        RETURN
    END
    PRINT 'Added to _RefShopGoods, DONE!'
COMMIT TRANSACTION  


Add New Tab 

كود PHP:
الكود:
DECLARE @CHARNAME VARCHAR (30)
DECLARE @NPCNAME VARCHAR (30)
DECLARE @ADDNEW VARCHAR (30)
DECLARE @TABNAME VARCHAR (30)
DECLARE @TABNUMBER VARCHAR (30) 
DECLARE @TABNEW VARCHAR (30)
DECLARE @GROUPNUMBER VARCHAR (30) 
DECLARE @GROUPNEW VARCHAR (30)
--
SET @ADDNEW = 'TAB' -- 'NPC' to add a new npc, 'TAB' for add a new Tab, 'GROUP' for add a new group!
SET @CHARNAME = 'ELjOkeR' --U Char Name
SET @NPCNAME = 'Avatars Mall' --U NPC NAME
SET @GROUPNUMBER  = 1
SET @TABNUMBER = 2
SET @TABNAME = 'Euro'
--
IF @TABNUMBER = 2 SET @TABNEW = '_TAB2'
IF @TABNUMBER = 3 SET @TABNEW = '_TAB3'
IF @TABNUMBER = 4 SET @TABNEW = '_TAB4'
IF @GROUPNUMBER = 1 SET @GROUPNEW = '_GROUP1'
IF @GROUPNUMBER  = 2 SET @GROUPNEW = '_GROUP2'
IF @GROUPNUMBER  = 3 SET @GROUPNEW = '_GROUP3'
IF @GROUPNUMBER  = 4 SET @GROUPNEW = '_GROUP4'
IF @GROUPNUMBER  = 5 SET @GROUPNEW = '_GROUP5'
IF @GROUPNUMBER  = 6 SET @GROUPNEW = '_GROUP6'
IF @ADDNEW = 'TAB' BEGIN
SET IDENTITY_INSERT _RefShopTab ON
DECLARE @ShopTabID VARCHAR (30) SET @ShopTabID = (SELECT MAX (ID) FROM _RefShopTab)+1
INSERT INTO _RefShopTab (Service,Country,ID,CodeName128,RefTabGroupCodeName,StrID128_Tab)
VALUES (1,15,@ShopTabID,'STORE_'+@NPCNAME+@TABNEW,'STORE_'+@NPCNAME+@GROUPNEW,'SN_'+@TABNAME)
SET IDENTITY_INSERT _RefShopTab OFF
PRINT ''
PRINT 'New Tab added Sucessfully add this new line to refshoptab.txt @ server_dep\silkroad\textdata' 
PRINT '1    15    '+@SHOPTABID+'    STORE_'+@NPCNAME+@TABNEW+'    STORE_'+@NPCNAME+@GROUPNEW+'     SN_TAB_'+@TABNAME
END  



Add New Group 

كود PHP:
الكود:
DECLARE @CHARNAME VARCHAR (30)
DECLARE @NPCNAME VARCHAR (30)
DECLARE @ADDNEW VARCHAR (30)
DECLARE @GROUPNUMBER VARCHAR (30) 
DECLARE @GROUPNEW VARCHAR (30)
SET @CHARNAME = '[GM] TIEKO' --U Char Name
SET @NPCNAME = 'STATIC' --U NPC NAME
SET @GROUPNUMBER  = 2
SET @ADDNEW = 'GROUP'
--
IF @GROUPNUMBER  = 2 SET @GROUPNEW = '_GROUP2'
IF @GROUPNUMBER  = 3 SET @GROUPNEW = '_GROUP3'
IF @GROUPNUMBER  = 4 SET @GROUPNEW = '_GROUP4'
IF @GROUPNUMBER  = 5 SET @GROUPNEW = '_GROUP5'
IF @GROUPNUMBER  = 6 SET @GROUPNEW = '_GROUP6'
IF @ADDNEW = 'GROUP' BEGIN 
SET IDENTITY_INSERT _RefShopTabGroup ON
DECLARE @ShopTabGroupID VARCHAR (30) SET @ShopTabGroupID = (SELECT MAX (ID) FROM _RefShopTabGroup)+1
INSERT INTO _RefShopTabGroup (Service,Country,ID,CodeName128,StrID128_Group)
VALUES (1,15,@ShopTabGroupID,'STORE_'+@NPCNAME+@GROUPNEW,'SN_STORE_'+@NPCNAME+@GROUPNEW)
SET IDENTITY_INSERT _RefShopTabGroup OFF
INSERT INTO _RefMappingShopWithTab VALUES (1,15,'STORE_'+@NPCNAME,'STORE_'+@NPCNAME+@GROUPNEW)
PRINT ''
PRINT 'New Group Added Succesfully '
PRINT 'add this new line to refshoptabgroup.txt @ server_dep\silkroad\textdata'
PRINT '1    15    '+@SHOPTABGROUPID+'    STORE_'+@NPCNAME+@GROUPNEW+'    SN_STORE_'+@NPCNAME+@GROUPNEW
PRINT ''
PRINT 'add this new line to refmappingshopwithtab.txt @ server_dep\silkroad\textdata'
PRINT '1    15    STORE_'+@NPCNAME+'    STORE_'+@NPCNAME+@GROUPNEW
END  


تغير اتـجاه الـ NPC هنـفتح الـ SQL 

SRO_VT_SHARD / RefHive 

نـجيب الـ ID من اسم الـ NPC وبعدين نـروح على RefNest

فى dwHiveID هـندور على الـ ID بتاع اللى NPC لاقـنا وكلو تـمام ! فى wInitiaalDir نكتب بقـا التجاه اللى عايزنو بنظر اليه 

West = -32767
South = -16384
Earth = 0
North = +16384

صـور للتوضيح 















صور لتوضيح الاتجهات 







غـير مـكان الـ NPC

1-هـتجيب Account وتوقفو فـى الـمكان الـجديد اللى هـننقل ليه الـ NPC
2-هـتجيب اسـم الـ NPC مـثال STORE_Thiefs_TAB1
اسـتخدم الـ Query ده عـشان تـجيب ID الـ NPC
كود PHP:
الكود:
use SRO_VT_SHARD 
select * from _RefObjCommon where CodeName128 like 'NPC_Thiefs'  
وبـعدين تـخش على Tab_RefTactics فى dwObjID
تدور على ال ID الى جبتو فوق بتاع ال query
طـب لـقيتو وده طـبعن هـتلاقيه جـمبة رقـم بـتاع dwTacticsID 
3- افتح Tab_RefNest 
وعلى dwTacticsID تدور على الرقم الى جبتو من الى فات
4-لما تلاقية طبعن ملاحظ ال X & y & z 
هتاخد الى فى الاكونت الى حتيطو ال X & y & Z
بس متنساش nRegionDBID 
دة فى _char تبقى LatestRegion
avatar
النجم الذهبي
المساعد العـــام
المساعد  العـــام

المساهمات : 9
نقاط : 100012808
السٌّمعَة لعضو : 15
تاريخ التسجيل : 23/04/2018
العمر : 15

معاينة صفحة البيانات الشخصي للعضو

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى