الموقع العربي الاول للعبة Silkroad Online

الموقع العربي الاول للعبة Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   قسم الاسئلة و الاستفسارات لعمل السيرفرات الخاصة (https://silkroad4arab.com/vb/forumdisplay.php?f=226)
-   -   طلب شرح (https://silkroad4arab.com/vb/showthread.php?t=614274)

mohamed habib 02-04-2017 05:51 PM

طلب شرح
 
محتاج شرح لكيورى اضافة ايتم اللى هنا معلش مش عارف اعمل الكيورى زيكم فى تعليق بس جبت مكانه اهو
http://silkroad4arab.com/vb/showthread.php?t=514213
انا لسه مبتدأمش عارف اكتب ايه فى الكيورى واكتب فين
وهل فيه سطور هعدل عليها فى الميديا وايه هيا السطور دى وهل الكيورى هيدينى السطور دى زى عمل NPc ولا ايه
انا اسف خليكم معايا واحده واحده

pop2009 02-04-2017 10:17 PM

رد: طلب شرح
 
بص يا باشا انت هتمشي مع الشرح عادي جدا هتعمل التعديل بتاع ال SQL عادي كما موضح في الصور بعد كده هتستخد الكويري
كود:

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

الي هتعدل عليه
كود:

SET @CodeName = 'ITEM_EU_SHIELD_08_C_RARE' -- Item CodeName in RefObjCommon
الي مكتوب بي الاحمر ده Code Items الي موجود في RefObjCommon او بمعني اكتر كود الايتيمز الي انت عايز تضيفو في NPC
السطر الي بعدو الي هو ده
كود:

SET @Price = 5000000 -- Set 0 if you don't want to set Gold Price
ده بتاع ال Price يعني التكلفه الي حضرتك عايزه تبقي للايتيمز المضاف يعني بمعني اكتر انت عايز تشتريه بكام gold
الي هو رقم 500000 لو مش عايز تضيف ال item بجولد هتكتب مكان 5000 هتكتب 0 لو عايز تضيفو ب silk
هتعدل علي السطر الي بعدو الي هو مكتوب بالاحمر ده
هتعدل علي 256 تشوف انت مثلا لو عايز ال item بكام silk و لو مش عايزو بسيلك هتكتب 0 مكان 256
لو عايز تضيف ال item ب silk + gold هتعدل علي الرقمين 256 و 50000 زي ما انت حابيب مع العلم انك لازم تعمل اي حاجه فيهم 0 لو انت مش عايزها تكون تكلفه ال Item جوه الجيم يا رب اكون عرفت افيدك

mohamed habib 02-04-2017 11:25 PM

رد: طلب شرح
 
اولا تشكر لانك حاولت تفهمنى ثانيا انا هجيب كود الايتم اللى انا عايزه منين وهل هعدل حاجه فى الميديا وايه هيا
وبعدين هل الكيورى بيحدد اسم ال npc اللى انا عايز اضيف الايتم فيه شكرااا

Mahmoud Rashwan 03-04-2017 12:15 AM

رد: طلب شرح
 
اشتغل بى البرنامج ده
و ده موضوع تحويل دتا للمديا

mohamed habib 03-04-2017 12:51 AM

رد: طلب شرح
 
بالله عليك فهمنى الكيورى انا اسف لو كنت هدايقك

mohamed habib 03-04-2017 01:41 AM

رد: طلب شرح
 
يا جماعه انا عايز افهم هكتب اسم الNPC فين والميديا فيها حاجه هتتعدل ولا لا
من الاخر عايز شرح للحاجه اللى انا هكتبها فى الكيورى الراجل ده مشكور فهمنى بعض الحجات pop2009


pop2009 03-04-2017 02:56 AM

رد: طلب شرح
 
كود:

SET @TAB = 'STORE_Honor_TAB1' -- Tab name in NPC, For _RefShopGoods
ما هو الصف ده الي انت بتكتب اسم ال Tab فيه بتاع ال NPC الي انت هضيف فيه ال Items بتاعتك

pop2009 03-04-2017 02:57 AM

رد: طلب شرح
 
مكان الكلمه ديه
كود:

STORE_Honor_TAB1

pop2009 03-04-2017 02:59 AM

رد: طلب شرح
 
هقولك علي حاجه احلي هتخليك تتعمل افضل بص ال Table الي انت بتشتغل عليها في اضافه Items هما دول
RefPackItem
RefPricePolicy
RefScrapOfPackitem
RefShopGoods
ادخل عليهم هما ال 4 و هات كود Items موجود في 4 Table و هتفهم الدنيا ماشيه ازاي صدقني كده هتتعلم احسن من الكويري

mohamed habib 03-04-2017 03:48 AM

رد: طلب شرح
 
اقتباس:

المشاركة الأصلية كتبت بواسطة pop2009 (المشاركة 5310946)
هقولك علي حاجه احلي هتخليك تتعمل افضل بص ال Table الي انت بتشتغل عليها في اضافه Items هما دول
RefPackItem
RefPricePolicy
RefScrapOfPackitem
RefShopGoods
ادخل عليهم هما ال 4 و هات كود Items موجود في 4 Table و هتفهم الدنيا ماشيه ازاي صدقني كده هتتعلم احسن من الكويري

تمام قوى فيه حاجه هتتعدل فى الميديا

pop2009 03-04-2017 03:51 AM

رد: طلب شرح
 
اقتباس:

المشاركة الأصلية كتبت بواسطة mohamed habib (المشاركة 5310960)
تمام قوى فيه حاجه هتتعدل فى الميديا

هما هما نفسهم في الميديا بالظبط يعني الي هتعدلو في ال database خدو كوبي من الداتا هتضيفو في الميديا في نفس اساميهم بس Text

mohamed habib 03-04-2017 04:32 AM

رد: طلب شرح
 
طيب هل كل الايتم اللى انا هحتاجه موجود فى الداتا بيز ولو موجود الاقيه فين
معلش انا لسه مبتدأ فى الموضوع فمش فاهم الحوار ماشى انا اسف
وهكتب ايه فى ال PackageName اللى فى الكيورى


Mahmoud Rashwan 03-04-2017 05:18 PM

رد: طلب شرح
 
ده شرح فديو شوفو كدا

mohamed habib 03-04-2017 05:42 PM

رد: طلب شرح
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Mahmoud Rashwan (المشاركة 5311149)
ده شرح فديو شوفو كدا

الله يباركلك انا كده فهمت قوى بس فيه مشكله صغيره
مفيش اسم للتاب فى الnpc

Mahmoud Rashwan 03-04-2017 06:09 PM

رد: طلب شرح
 
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 (30SET @ShopTabID = (SELECT MAX (IDFROM _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 



الساعة الآن 03:00 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.