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

الموقع العربي الاول للعبة Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   قسم الاسئلة و الاستفسارات لعمل السيرفرات الخاصة (https://silkroad4arab.com/vb/forumdisplay.php?f=226)
-   -   مساعده فى اضافت الا egy b (https://silkroad4arab.com/vb/showthread.php?t=609435)

MohamedLol 30-12-2016 10:03 PM

مساعده فى اضافت الا egy b
 
عايز احوت الا egy b فل الا Npc ده ازاى



https://s27.postimg.org/q9zrkxmfn/15...69622967_o.jpg

افندينا ™Hamboka™ 30-12-2016 11:51 PM

رد: مساعده فى اضافت الا egy b
 
اتفضل
اقتباس:

المشاركة الأصلية كتبت بواسطة kingahmed696 (المشاركة 4492849)

http://www2.0zz0.com/2012/10/22/15/311256858.gif

http://www2.0zz0.com/2012/10/22/16/593531309.png

أنا لحظت ان في ناس كتير بتسأل علي انها ازاي تضيف Item في ال NPC
فحبيت اني اشرحلكم ازاي تضيف ال Item الي انت عوزو في ال NPC بالتفصيل
نبتدي بسم الله

أولا:ال Tables الي هنشتغل عليها
1-RefPackageItem
2-RefScrapOfPackageItem
3-RefPricePolicy
4-RefShopGoods

نبتدي ب RefPackageItem (الشرح هيكون علي ال Staff D14)

كود:

1        15        86634        PACKAGE_ITEM_EU_TSTAFF_14_B_RARE        0        EXPAND_TERM_ALL SN_ITEM_EU_TSTAFF_14_B_RARE        SN_ITEM_EU_TSTAFF_14_B_RARE_TT_DESC item\europe\weapon\tstaff_14.ddj        -1        xxx        -1        xxx        -1        xxx        -1        xxx
نشرح بقي الكود دة
أول حاجة الرقم الي بالأخضر دة ال ID بتاع RefPackageitem
لو انت عاوز تعرف ايه هو اخر ID عندك في RefPackageItem تعمل ايه؟
شغل بس الكويري دة و هو هيجبهولك

كود:

SELECT MAX (ID) FROM _RefPackageItem
كدة انت جبت اخر ID في RefPackageItem زود عليه 1 وحطو مكان ال ID الي أنا حطو
يعني مثلا اخر ID
86600 هتخليه 86601
اما الي بالبنفسجي ف دة المسار بتاع صورة الItem ال بتبان في ال NPC و المسار دة في الميديا
بدل م تتعب نفسك نزل دة و فيه كل حاجة
http://files.fm/u/zzgnemv
طب كدة خلصنا RefPackageItem
ندخل علي RefScrapOfPackageItem

كود:

1        15        PACKAGE_ITEM_EU_TSTAFF_14_B_RARE        ITEM_EU_TSTAFF_14_B_RARE        0        0 133        0        0        0        0        0        0        0        0        0        0        0        0        0        -1        xxx        -1        xxx        -1        xxx        -1        xxx        89307
ايه المشكلة في دة بقي؟
دة أس المصايب أولا عشان تجيب اخر ID في RefScrapOfPackageItem
شغل الكويري دة

كود:

SELECT MAX ([Index]) FROM _RefScrapOfPackageItem
طبعا عرفين هتعملو فيه ايه
بعد كدة الرقم الي بالبنفسجي دة بتاع ايه؟ دة بتاع حاجة اسمها ال Durability
طب و تجيب الرقم دة ازاي ؟ شغل الكويري دة

كود:

DECLARE @ID int
DECLARE @Dur_U int
DECLARE @CodeName varchar(129)

SET @CodeName = 'ITEM_EU_TSTAFF_14_B_RARE'


SET @ID = (select Link from _RefObjCommon where CodeName128 = @CodeName)
SET @Dur_U = (select Dur_U from _RefObjItem where ID = @ID)


PRINT 'Durablity : '
PRINT '-----------'
PRINT ''+@Dur_U+''

الكود الي بالحمر دة كود ال Item من غير كلمة PACKAGE_
وطبعا هتحط القم الي هيطلعلك مكان الرقم الي بالبنفسجي
ندخل في RefPricePolicy و دة Table سهل أوي و دة بيبقي فيه السعر بتاع ال Item

كود:

1        15        PACKAGE_ITEM_EU_TSTAFF_14_B_RARE        1        0 1000000        -1        xxx        -1        xxx        -1        xxx        -1        xxx
الي بالأحمر دة عبارة عن الحاجة الي بيتباع بيها ال Item سواء كان Gold or Silk or Coin
كل حاجة ليها كود و دي كل الأكواد

كود:

1 = Gold
2 = Silk
4 = Gift Silk (Received Silk)
16 = Point (vSRO); Premium Silk (iSRO & kSRO)
32 = Honor Point
64 = Copper Coin
128 = Iron Coin
256 = Silver Coin
512 = Gold Coin
1024 = Arena Coin

الي بالبنفسجي دة بقي اد ايه من الحاجة دي يعني زي منا عامل كدة 1000000 جولد

ندخل علي RefShopGoods
ودة بقي الي بيتحط فيه المكان الي هيتباع فيه ال Item
ومن غير ال Table دي ال Item شم هيكون موجود في أي NPC

كود:

1        15        STORE_CH_SMITH_TAB1        PACKAGE_ITEM_EU_TSTAFF_14_B_RARE 0        -1        xxx        -1        xxx        -1        xxx        -1        xxx
الي بالاخضر دة كود ال NPC ال هتحط فيه ال Item و أنا حطو في بتاع الأسلحة في Jangan
طب والي بالبنفسجي ؟ دة ترتيب ال Item في ال NPC و لازم يكون بالدور
و بيبتدي من 0 مش 1 يعني دة أول Item في ال NPC بس لو في Item في نفس المكان دة ال SR_GameServer هيجبلك Error

وبكدة أكون خلصت شرح الحمد لله
وشكرا




hamo0 31-12-2016 12:44 AM

رد: مساعده فى اضافت الا egy b
 
هو ازاى احط كويرى اصلا فى الداتا يبز هو انتو ليه مش عيزين تشرحو ازاى احط كويرى واحطو فين

MikrotikBody 31-12-2016 01:27 AM

رد: مساعده فى اضافت الا egy b
 
اقتباس:

المشاركة الأصلية كتبت بواسطة hamo0 (المشاركة 5291833)
هو ازاى احط كويرى اصلا فى الداتا يبز هو انتو ليه مش عيزين تشرحو ازاى احط كويرى واحطو فين

easy Just use
Ctrl+N and past your Query

MikrotikBody 31-12-2016 01:29 AM

رد: مساعده فى اضافت الا egy b
 
اقتباس:

المشاركة الأصلية كتبت بواسطة افندينا ™Hamboka™ (المشاركة 5291826)
اتفضل

مفهمتش اللي هو طلبه
وعلي فكره انا رديت عليك وانت مصر علي كده

افندينا ™Hamboka™ 31-12-2016 02:08 AM

رد: مساعده فى اضافت الا egy b
 
اقتباس:

المشاركة الأصلية كتبت بواسطة MikrotikBody (المشاركة 5291835)

مفهمتش اللي هو طلبه
وعلي فكره انا رديت عليك وانت مصر علي كده

باشا الراجل عاوز يحط egy b في npc وانا مديلو طريقه اضافت ايتم في npc ايه الغلط في كد ؟؟؟:juggle::juggle:

MohamedLol 31-12-2016 02:57 AM

رد: مساعده فى اضافت الا egy b
 
جاري التجربه

ابو ليلى 01-01-2017 12:50 AM

رد: مساعده فى اضافت الا egy b
 
اتفضل حضرتك دة كوير اضافة ايتم فى ال npc
كود PHP:

/****query add item npc edited by mohamed hasan***/ 
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 @Gcoin int 
DECLARE @Scoin int 
DECLARE @Icoin int 
DECLARE @Ccoin int 
DECLARE @Acoin int 
DECLARE @Optlvl int 
DECLARE @Slot tinyint 
DECLARE @TAB varchar(128
DECLARE @
Data int 
DECLARE @SkipScrapOfPackageItem int 
DECLARE @SkipPackageItem int 
DECLARE @SkipPricePolicyOfItem int 
--- Set Variables 
SET 
@CodeName 'ITEM_CH_NECKLACE_11_A_RARE' -- Item CodeName in RefObjCommon 
SET 
@Price -- Set 0 if you don't want to set Gold Price 
SET @SilkPrice = 0 -- Set 0 if you don'
t want to set Silk Price 
SET 
@Gcoin -- Set 0 if you don't want to set Gold Coin Price 
SET @Scoin = 0 -- Set 0 if you don'
t want to set Silver Coin Price  
SET 
@Icoin -- set 0 if you don't want to set Iron Coin Price 
SET @Ccoin = 0 -- set 0 if you don'
t want to set Copper Coin Price 
SET 
@Acoin -- set 0 if you don't want to set Arena Coin Price 
SET @Optlvl = 5 -- Item Plus in npc Set 0 if you don'
t want plus for any item 
SET 
@TAB 'STORE_CH_NOVA_SET_SELLER_TAB7' -- 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(IDFROM _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(IDFROM _RefShopTab WHERE CodeName128 = @TAB) < 1
BEGIN 
    
PRINT 'TAB VALUE IS NOT VALID..!' 
    
PRINT 'FAILED.' 
    
RETURN 
END 
IF ((SELECT COUNT (RefPackageItemCodeNameFROM _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 (RefPackageItemCodeNameFROM _RefScrapOfPackageItem WHERE RefPackageItemCodeName = @PackageName) > 0
BEGIN 
    
PRINT 'There is already an entry for this item, skipping @_RefScrapOfPackageItem table..!' 
    
SET @SkipScrapOfPackageItem 
END 
IF ((SELECT COUNT (CodeName128FROM _RefPackageItem WHERE CodeName128 = @PackageName) > 0
BEGIN 
    
PRINT 'There is already an entry for this item, skipping @_RefPackageItem table..!' 
    
SET @SkipPackageItem 
END 
IF ((SELECT COUNT (PaymentDeviceFROM _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 
END 
IF ((SELECT COUNT (PaymentDeviceFROM _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 
    END 
    
ELSE 
    
BEGIN 
        SET 
@SkipPricePolicyOfItem 
    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 
SELECT TOP 1 
@INDEX = [IndexFROM _RefScrapOfPackageItem ORDER BY [IndexDESC 
SET 
@INDEX = @INDEX 
SELECT TOP 1 
@Slot SlotIndex FROM _RefShopGoods WHERE RefTabCodeName = @TAB ORDER BY SlotIndex DESC 
IF (@Slot 0
BEGIN 
    SET 
@Slot = @Slot 
END 
ELSE IF (@Slot 0
BEGIN 
    SET 
@Slot = @Slot 
END 
ELSE 
BEGIN 
    SET 
@Slot 
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 
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], CountryIDCodeName128SaleTagExpandTermNameStrIDDescStrIDAssocFileIconParam1Param1_Desc128Param2Param2_Desc128Param3Param3_Desc128Param4Param4_Desc128VALUES (115, @ID, @PackageName0'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 
(ServiceCountryRefPackageItemCodeNameRefItemCodeNameOptLevelVarianceDataMagParamNumMagParam1MagParam2MagParam3MagParam4MagParam5MagParam6MagParam7MagParam8MagParam9MagParam10MagParam11MagParam12Param1Param1_Desc128Param2Param2_Desc128Param3Param3_Desc128Param4Param4_Desc128, [Index]) VALUES (115, @PackageName, @CodeName, @Optlvl0, @Data0000000000000, -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 
/**Gold Price***/ 
IF (@SkipPricePolicyOfItem OR @SkipPricePolicyOfItem AND @Price 0
BEGIN 
    INSERT _RefPricePolicyOfItem 
(ServiceCountryRefPackageItemCodeNamePaymentDevicePreviousCostCostParam1Param1_Desc128Param2Param2_Desc128Param3Param3_Desc128Param4Param4_Desc128VALUES (115, @PackageName10, @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 
/*** Silk Price **/ 
IF (@SkipPricePolicyOfItem OR @SkipPricePolicyOfItem AND @SilkPrice 0
BEGIN 
    INSERT _RefPricePolicyOfItem 
(ServiceCountryRefPackageItemCodeNamePaymentDevicePreviousCostCostParam1Param1_Desc128Param2Param2_Desc128Param3Param3_Desc128Param4Param4_Desc128VALUES (115, @PackageName20, @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 
/*****Gold Coin***/ 
IF (@SkipPricePolicyOfItem OR @SkipPricePolicyOfItem AND @Gcoin 0
BEGIN 
    INSERT _RefPricePolicyOfItem 
(ServiceCountryRefPackageItemCodeNamePaymentDevicePreviousCostCostParam1Param1_Desc128Param2Param2_Desc128Param3Param3_Desc128Param4Param4_Desc128VALUES (115, @PackageName5120, @Gcoin, -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 = 512 (Gold Coin)' 
END 
ELSE 
BEGIN 
    
PRINT 'There is already silk / gold price, skipping _RefPricePolicyOfItem table...' 
END 
/***Silver Coin***/ 
IF (@SkipPricePolicyOfItem OR @SkipPricePolicyOfItem AND @Scoin 0
BEGIN 
    INSERT _RefPricePolicyOfItem 
(ServiceCountryRefPackageItemCodeNamePaymentDevicePreviousCostCostParam1Param1_Desc128Param2Param2_Desc128Param3Param3_Desc128Param4Param4_Desc128VALUES (115, @PackageName2560, @Scoin, -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 = 256 (Silver Coin)' 
END 
ELSE 
BEGIN 
    
PRINT 'There is already silk / gold price, skipping _RefPricePolicyOfItem table...' 
END 
/****Iron Coin****/ 
IF (@SkipPricePolicyOfItem OR @SkipPricePolicyOfItem AND @Icoin 0
BEGIN 
    INSERT _RefPricePolicyOfItem 
(ServiceCountryRefPackageItemCodeNamePaymentDevicePreviousCostCostParam1Param1_Desc128Param2Param2_Desc128Param3Param3_Desc128Param4Param4_Desc128VALUES (115, @PackageName1280, @Icoin, -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 = 128 (Iron Coin)' 
END 
ELSE 
BEGIN 
    
PRINT 'There is already silk / gold price, skipping _RefPricePolicyOfItem table...' 
END 
/****Copper Coin**/ 
IF (@SkipPricePolicyOfItem OR @SkipPricePolicyOfItem AND @Ccoin 0
BEGIN 
    INSERT _RefPricePolicyOfItem 
(ServiceCountryRefPackageItemCodeNamePaymentDevicePreviousCostCostParam1Param1_Desc128Param2Param2_Desc128Param3Param3_Desc128Param4Param4_Desc128VALUES (115, @PackageName640, @Ccoin, -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 = 64 (Copper Coin)' 
END 
ELSE 
BEGIN 
    
PRINT 'There is already silk / gold price, skipping _RefPricePolicyOfItem table...' 
END 
/****Arena Coin***/ 
IF (@SkipPricePolicyOfItem OR @SkipPricePolicyOfItem AND @Acoin 0
BEGIN 
    INSERT _RefPricePolicyOfItem 
(ServiceCountryRefPackageItemCodeNamePaymentDevicePreviousCostCostParam1Param1_Desc128Param2Param2_Desc128Param3Param3_Desc128Param4Param4_Desc128VALUES (115, @PackageName10240, @Acoin, -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 = 1024 (Arena Coin)' 
END 
ELSE 
BEGIN 
    
PRINT 'There is already silk / gold price, skipping _RefPricePolicyOfItem table...' 
END 
/************** End Prices ***************/ 
INSERT _RefShopGoods (ServiceCountryRefTabCodeNameRefPackageItemCodeNameSlotIndexParam1Param1_Desc128Param2Param2_Desc128Param3Param3_Desc128Param4Param4_Desc128VALUES (115, @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 


Jayden 02-01-2017 04:15 AM

رد: مساعده فى اضافت الا egy b
 
##


الساعة الآن 12:56 PM.

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