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

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

احمد الفقى 03-11-2016 11:59 PM

Npc
 
ازاى اخلى ايتم +14 فى npc
اومفيش اى query تخلى اى ايتم +16اى حد يقفل ويفتح

mohamed9000 04-11-2016 12:03 AM

رد: Npc
 
هتفتح SQL هتختار SRO_VT_SHARD بعدين تختار _RefScrapOfPackageItem وهتيجي عند الايتم الي عايز تعملها +14 هتلاقي line اسمة OptLevel خليه 14 وهتشتغل معاك تمام

احمد الفقى 04-11-2016 12:07 AM

رد: Npc
 
بتعمل كراش بعد +11

mohamed9000 04-11-2016 12:18 AM

رد: Npc
 
لا مش عارف ايه حلها الصراحة

Dev.Ri3o 04-11-2016 12:32 AM

رد: Npc
 
هتخش على Procedure ال ADD_ITEM_EXTERN وتعلى ال Opt lvl وبعد كدة تبقى تخش على ال RefScarpOfPackageItem وتخليها 14

احمد الفقى 04-11-2016 12:38 AM

رد: Npc
 
كدة صح
اقتباس:

if (@opt_level < 14)
set @opt_level = 14
else if (@opt_level > 14)
set @opt_level = 14

احمد الفقى 04-11-2016 12:44 AM

رد: Npc
 
كراش تانى http://www.3rbz.com/uploads/a533ca4f3b771.png

Dev.Ri3o 04-11-2016 12:54 AM

رد: Npc
 
اول اتنين خليهم 0 مش 14
وخش على
_ADD_ITEM_EXTERN_CHEST
_ADD_ITEM_EXTERN_CHEST_FAST
وعدل على نفس الحاجة اول اتنين 0 واللى تحتهم الرقم اللى انت عايزو خلى 20 مثلا مش 14 وجرب تحط فى ال RefScarpOfPackageItem 14

احمد الفقى 04-11-2016 12:57 AM

رد: Npc
 
هى كانت فى اصل 0

احمد الفقى 04-11-2016 12:58 AM

رد: Npc
 
كل الملف
اقتباس:

USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_ADD_ITEM_EXTERN] Script Date: 03/11/2016 11:56:19 م ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







ALTER procedure [dbo].[_ADD_ITEM_EXTERN]
@charname varchar(64),
@codename varchar(128),
@data int,
@opt_level int
as
declare @charid int
declare @ref_item_id int
declare @link_to_item int
declare @inv_capacity int

set @inv_capacity = 45

if (not exists (select * from _RefObjCommon where Codename128 = @codename))
begin
raiserror('unknown item: %s', 1, 16, @codename)
return -1
end
if (not exists (select * from _char with (nolock) where charname16 = @charname))
begin
raiserror('not existing character: %s', 1, 16, @charname)
return -2
end
select @charid = charid, @inv_capacity = InventorySize from _char with (nolock) where charname16 = @charname
if (not exists (select * from _inventory with (nolock) where charid = @charid and slot >= 13 and slot < @inV_capacity and itemid = 0))
begin
raiserror('Inventory Full: %s', 1, 16, @charname)
return -3 -- inventory full
end
declare @empty_slot int
select top 1 @empty_slot = slot from _inventory with (nolock) where charid = @charid and slot >= 13 and slot < @inV_capacity and itemid = 0 order by slot
set @ref_item_id = 0
set @link_to_item = 0
select @ref_item_id = id, @link_to_item = link from _RefObjCommon where codename128 = @codename
if (@ref_item_id = 0 or @ref_item_id is null)
begin
raiserror('@RefItemID == NULL: %s', 1, 16, @charname)
return -4
end
if (@link_to_item = 0 or @link_to_item is null)
begin
raiserror('RefItem Link == NULL: %s', 1, 16, @charname)
return -5
end
declare @tid1 int
declare @tid2 int
declare @tid3 int
declare @tid4 int
select @tid1 = TypeID1, @tid2 = TypeID2, @tid3 = TypeID3, @tid4 = TypeID4 from _RefObjCommon where ID = @ref_item_id
declare @IS_EQUIP int
declare @IS_PET int
set @IS_EQUIP = 0
set @IS_PET = 0
if (@tid1 <> 3)
begin
raiserror('not item: %s, %s', 1, 16, @charname, @codename)
return -6 -- ¿ÀÀ×! ¾ÆÀÌÅÛÀÌ ¾Æ´Ï¾ß?
end
if (@tid1 = 3 and @tid2 = 1)
set @IS_EQUIP = 1
else if (@tid1 = 3 and @tid2 = 2 and @tid3 = 1 and (@tid4 = 1 or @tid4 = 2 ) )
set @IS_PET = 1
declare @item_id bigint
set @item_id = 0

declare @dummy_serial_number bigint
set @dummy_serial_number = 0
if (@IS_EQUIP = 1)
begin
declare @dur int
select @dur = Dur_L from _RefObjItem where ID = @link_to_item
set @data = @dur
if (@opt_level < 0)
set @opt_level = 0
else if (@opt_level > 14)
set @opt_level = 14

declare @remain_gold bigint
select @remain_gold = remaingold from _char where charid = @charid
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-- »óÁ¡°³Æí (ÃÖ¼±È£)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
exec _STRG_ADD_EQUIP_NORMAL @item_id output, @dummy_serial_number output, 6, @charid, @empty_slot, @ref_item_id, @opt_level, 0, @data
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
end
else
begin
if( @IS_PET = 1 )
set @data = 0
else
begin
declare @max_count int
select @max_count = MaxStack from _RefObjItem where ID = @link_to_item

if (@data <= 0 or @data > @max_count)
begin
set @data = @max_count
end
end

--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-- »óÁ¡°³Æí (ÃÖ¼±È£)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
exec _STRG_ADD_EXPENDABLE @item_id output, @dummy_serial_number output, 6, @charid, @empty_slot, @ref_item_id, @data

--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
end

if (@item_id > 0)
return 1
else
begin
raiserror('failed for unknown reason: %s, %s', 1, 16, @charname, @codename)
return -7
end









احمد الفقى 04-11-2016 11:58 PM

رد: Npc
 
UP

Dev.Ri3o 10-11-2016 11:40 AM

رد: Npc
 
هترفع ال optlevel بتاع ال Item من ال SMC بعد كدة هتلاقى سطر ال Item نزل فى Table اسمو _Items تروح على ال Tableوتعمل ال optlevel =14 وبعد كدة تحط ال Item فى ال NPC تعدل على ال RefScarpOfPackageItem وتخلى ال optlevel 14 ود طبعا بعد ما تكون عدلت على Procedure اسمو AddtemExtern وخليت ال optlevel =14

Dev.Ri3o 10-11-2016 11:40 AM

رد: Npc
 
##


الساعة الآن 04:59 AM.

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