Screen will explain what i mean i just want to make inventory like rental period...
http://i.epvpimg.com/jjt3b.jpg
And this is my _AddNewCOS stored procedure
Code:USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_AddNewCOS] Script Date: 1/29/2015 1:52:23 PM ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_AddNewCOS]
@OwnerCharID int,
@ReFObjID int,
@level int,
@HP int,
@MP int,
@HGP int,
@keeperNPC int,
@State int,
@inventorySize int,
@itemID int,
@PickItemConfig tinyint,
@RentEndTime smalldatetime
as
begin tran
declare @COS_ID int
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-- pet_skill_item (ÃÖ¼±È£)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
declare @MaxinventorySize tinyint
select @MaxinventorySize = InventorySize
from _RefObjCommon, _RefObjChar
where _RefObjCommon.ID = @ReFObjID and _RefObjCommon.Link = _RefObjChar.ID
if( @@rowcount = 0 or @MaxinventorySize < @inventorySize )
begin
rollback tran
return -5
end
insert into _CharCOS values @OwnerCharID, @ReFObjID, @HP, @MP, @keeperNPC, @State, NULL, @level, 0, @HGP, @PickItemConfig, @RentEndTime)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
set @COS_ID = @@identity
if (@COS_ID = 0 OR @@error <> 0)
begin
rollback tran
return -1
end
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-- pet_skill_item (ÃÖ¼±È£)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
if @MaxinventorySize > 0)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
begin
declare @slot int
set @slot = 0
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-- pet_skill_item (ÃÖ¼±È£)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
while @slot < @MaxinventorySize)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
begin
insert into _InvCOS values(@COS_ID, @slot, 0)
if (@@error <> 0)
begin
-- Àκ¥Å丮 »ý¼º ½ÇÆÐ!
rollback tran
return -2
end
set @slot = @slot + 1
end
end
/* --´õ ÀÌ»ó ÀÌ Ä÷³¿¡´Â µ¥ÀÌÅ͸¦ ³ÖÁö ¾Ê´Â´Ù!
UPDATE _Char SET EngagedCOS = @COS_ID WHERE CharID = @OwnerCharID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -3
END
*/
if( @itemID <> 0 )
begin
update _Items set Data = @COS_ID where ID64 = @itemID
if( @@error <> 0 or @@rowcount = 0 )
begin
rollback transaction
return -4
end
--BEGIN ADDITIONAL 112 SLOT IN GRAB PETS FOR 7684 DAYS
declare @serial64 bigint
select @serial64 = Serial64 from _Items where Data = @COS_ID
exec _AddTimedJobForPet @COS_ID,5,22926,1992999999,1111708465,1,28,0,0,0,0,0 @serial64
--BEGIN ADDITIONAL 112 SLOT IN GRAB PETS FOR 7684 DAYS
end
commit tran
return @COS_ID

