Development Project Of Silkroad Server Files !

02/08/2012 15:40 Dr.Abdelfattah#16
Quote:
Originally Posted by Shifty* View Post
If he's explaining it wrong it will just confuse people and it will NOT be useful. He shouldn't be doing guides about stuff he doesn't know anything about.
If I'm wrong So tell me where's the part i wrote it wrong or even if i made wrong explain
Also plz don't mention English cuz i use packets in my explain and so not by meaning packet but i mean this package or this stored pro.
But i don't think i give wrong explain about them !
Anyway i try to help but same people SPAM in my thread
Also if all of that is wrong and useless as someone see , I just say in Thread post that don't post shit out here , but some of people keep spamming and insult
anyway i don't care about them they are just un-respectable people But Where's my fault in my work?

------------------------

Named : _ADD_ITEM_EXTERN_CHEST_FAST_FULL_DATA

PHP Code:
/****** Object:  StoredProcedure [dbo].[_ADD_ITEM_EXTERN_CHEST_FAST_FULL_DATA]    Script Date: 02/08/2012 15:28:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER procedure 
[dbo].[_ADD_ITEM_EXTERN_CHEST_FAST_FULL_DATA]
@
JID            int,
@
ItemToAdd        int,
@
data            int,
@
opt_level        int,
@
MagParamNum tinyint,
@
MagParam1  bigint,
@
MagParam2  bigint,
@
MagParam3  bigint,
@
MagParam4  bigint,
@
MagParam5  bigint,
@
MagParam6  bigint,
@
MagParam7  bigint,
@
MagParam8  bigint,
@
MagParam9  bigint,
@
MagParam10 bigint,
@
MagParam11 bigint,
@
MagParam12 bigint,
@
Serial64   bigint

as

    if (
not exists(select * from sysobjects where name = '_TEMP_ADDITEMEXTERN_CHEST_LOG'))
    
begin
        create table _TEMP_ADDITEMEXTERN_CHEST_LOG
        
(
            
ID int identity(0, 1) not null,
            
LogString varchar(256),
            
LogDate datetime default getdate() not null
        
)
    
end

    
declare @LogString varchar(256)
    declare @
link_to_item int

    
if (not exists (select UserJID from _User with (nolock) where UserJID = @JID))
    
begin
        set 
@LogString = 'not existing account ID: ' + cast(@JID as char(15))
        
insert into _TEMP_ADDITEMEXTERN_CHEST_LOG(LogString) values(@LogString)
        
raiserror('%s', 1, 16, @LogString)
        return -
2
    end

    
if (not exists (select * from _chest with (nolock) where UserJID = @JID and (itemid = 0 or itemid is null)))
    
begin
        set 
@LogString = 'chest Full! JID is ' + cast(@JID as char(15)) + ', item: ' + cast(@ItemToAdd as char(15))
        
insert into _TEMP_ADDITEMEXTERN_CHEST_LOG(LogString) values(@LogString)
        
raiserror('%s', 1, 16, @LogString)
        return -
3
    end

    
declare @empty_slot int
    select top 1 
@empty_slot = slot from _chest with (nolock) where UserJID = @JID and (itemid = 0 or itemid is null) order by slot
    
    set 
@link_to_item = 0
    
    select 
@link_to_item = link from _RefObjCommon where ID = @ItemToAdd

    
if (@link_to_item = 0 or @link_to_item is null)
    
begin
        set 
@LogString = 'RefItem Link == NULL JID is ' + cast(@JID as char(15))
        
insert into _TEMP_ADDITEMEXTERN_CHEST_LOG(LogString) values(@LogString)
        
raiserror('%s', 1, 16, @LogString)
        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 = @ItemToAdd

    
declare @IS_EQUIP int
    
declare @IS_PET int

    set 
@IS_EQUIP = 0
    set 
@IS_PET = 0

    
if (@tid1 <> 3)
    
begin
        set 
@LogString = 'not item! JID is '  + cast(@JID as char(15)) + 'item is: ' + cast(@ItemToAdd as char(15))
        
insert into _TEMP_ADDITEMEXTERN_CHEST_LOG(LogString) values(@LogString)
        
raiserror('%s', 1, 16, @LogString)
        return -
6        -- &#3615;ภภื! พฦภฬลภฬ พฦดฯพ฿?
    
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

    
if (@IS_EQUIP = 1)
    
begin
        select 
@data = Dur_L from _RefObjItem where ID = @link_to_item
        
        
if (@opt_level < 0)
            
set @opt_level = 0
        
else if (@opt_level > 12)
            
set @opt_level = 12
    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)  
                
set @data = @max_count  
        end

        set 
@opt_level = 0
    end

    
-------------------------------------------------------------------------------- let's generate item !!!
    set xact_abort on

begin transaction
    
    declare @dummy_serial_number bigint
    set @dummy_serial_number = 0

    declare @NewItemID bigint
    set @NewItemID = 0

    EXEC @NewItemID = _STRG_ALLOC_ITEM_NoTX @dummy_serial_number OUTPUT
    
    IF (@NewItemID = 0)
    BEGIN
        rollback transaction
        set @LogString = '
failed to allocate new item id! JID is '  + cast(@JID as char(15)) + ', Item Is: ' + cast(@ItemToAdd as char(15))
        
        insert into _TEMP_ADDITEMEXTERN_CHEST_LOG(LogString) values(@LogString)
        raiserror('
%s', 1, 16, @LogString)
        return -7
    END

  if( @IS_PET = 1 )
      UPDATE _Items SET 
        RefItemID = @ItemToAdd, 
        OptLevel = @Opt_Level,
        Data = @Data, 
        Variance = 0 ,
        MagParamNum    =        @MagParamNum,
        MagParam1      =        @MagParam1  ,
        MagParam2      =        @MagParam2  ,
        MagParam3      =        @MagParam3  ,
        MagParam4      =        @MagParam4  ,
        MagParam5      =        @MagParam5  ,
        MagParam6      =        @MagParam6  ,
        MagParam7      =        @MagParam7  ,
        MagParam8      =        @MagParam8  ,
        MagParam9      =        @MagParam9  ,
        MagParam10     =        @MagParam10 ,
        MagParam11     =        @MagParam11 ,
        MagParam12     =        @MagParam12 ,
        Serial64       =        @Serial64   
    WHERE ID64 = @NewItemID
  else
      UPDATE _Items SET 
        RefItemID = @ItemToAdd, 
        OptLevel = @Opt_Level, 
        Data = @Data ,
        MagParamNum    =        @MagParamNum,
        MagParam1      =        @MagParam1  ,
        MagParam2      =        @MagParam2  ,
        MagParam3      =        @MagParam3  ,
        MagParam4      =        @MagParam4  ,
        MagParam5      =        @MagParam5  ,
        MagParam6      =        @MagParam6  ,
        MagParam7      =        @MagParam7  ,
        MagParam8      =        @MagParam8  ,
        MagParam9      =        @MagParam9  ,
        MagParam10     =        @MagParam10 ,
        MagParam11     =        @MagParam11 ,
        MagParam12     =        @MagParam12 ,
        Serial64       =        @Serial64   
    WHERE ID64 = @NewItemID
  
    IF (@@ERROR <> 0)
    BEGIN
        rollback transaction
        set @LogString = '
failed to create new item! JID is '  + cast(@JID as char(15)) + ', Item Is: ' + cast(@ItemToAdd as char(15))

        insert into _TEMP_ADDITEMEXTERN_CHEST_LOG(LogString) values(@LogString)
        raiserror('
%s', 1, 16, @LogString)
        return -8
    END

    UPDATE _chest SET ItemID = @NewItemID WHERE UserJID = @JID AND Slot = @empty_slot
    IF (@@ROWCOUNT = 0 OR @@ERROR <> 0)
    BEGIN
        rollback transaction
        set @LogString = '
failed to insert item to chest! JID is ' + cast(@JID as char(15)) + ', Item Is: ' + cast(@ItemToAdd as char(15))

        insert into _TEMP_ADDITEMEXTERN_CHEST_LOG(LogString) values(@LogString)
        raiserror('
%s', 1, 16, @LogString)
        return -9
    END

    --------------------------------------------------------------------------------
    if (@NewItemID <= 0)
    begin
        rollback transaction
        set @LogString = '
item generation failed for unknown reason! JID is ' + cast(@JID as char(15)) + ', Item Is: ' + cast(@ItemToAdd as char(15))

        insert into _TEMP_ADDITEMEXTERN_CHEST_LOG(LogString) values(@LogString)
        raiserror('
%s', 1, 16, @LogString)
        return -10
    end

commit transaction

    set @LogString = '
success ' + 'jid: ' + cast(@JID as char(15)) + ', item: ' + cast(@ItemToAdd as char(15)) + cast(@data as varchar(10)) + ', slot: ' + cast(@empty_slot as varchar(10))
    insert into _TEMP_ADDITEMEXTERN_CHEST_LOG(LogString) values(@LogString)

    return 1 
This one don't need any explain as it's same as _ADD_ITEM_EXTERN_CHEST_FAST but checking full data like params and If you need any explain in a part of it just tell me :)
02/08/2012 19:31 •ᵔBeGodOfWarᵔ•#17
Finally thread cleaned :)
02/08/2012 19:35 Dr.Abdelfattah#18
Quote:
Originally Posted by •ᵔBeGodOfWarᵔ• View Post
Finally thread cleaned :)
Hope it stay clean tell i finish out this project