Gamble item Error

Experienced Elementalist
Joined
Mar 3, 2013
Messages
268
Reaction score
25
please help me!
error log..

dbo.sp

other error:
first open normal open



2º normal items open


3º no update item no view item


4º relogin server view item


Help Fix Please
 

Attachments

You must be registered for see attachments list
Last edited:
I'm retired, I'm already
Banned
Joined
Oct 3, 2011
Messages
832
Reaction score
155
I also had that same problem close 3 years ago and I had to leave it like this.

You can check these lines to see if you can find a solution to this.

PHP:
USE [GunzDB]
GO

/****** Object:  Table [dbo].[GambleItem]    Script Date: 04/05/2015 14:32:49 By Jorklenis2 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[GambleItem](
	[GIID] [int] NOT NULL,
	[Name] [varchar](128) NOT NULL,
	[Description] [varchar](256) NOT NULL,
	[Price] [int] NOT NULL,
	[RegDate] [datetime] NOT NULL,
	[StartDate] [datetime] NOT NULL,
	[LifeTimeHour] [smallint] NOT NULL,
	[IsCash] [tinyint] NOT NULL,
	[Opened] [tinyint] NOT NULL,
 CONSTRAINT [PK_GambleItem] PRIMARY KEY CLUSTERED 
(
	[GIID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[GambleItem]  WITH CHECK ADD CHECK  (([GIID]>(1000000)))
GO

ALTER TABLE [dbo].[GambleItem]  WITH CHECK ADD CHECK  (([GIID]>(1000000)))
GO

ALTER TABLE [dbo].[GambleItem]  WITH CHECK ADD CHECK  (([GIID]>(1000000)))
GO

ALTER TABLE [dbo].[GambleItem]  WITH CHECK ADD CHECK  (([GIID]>(1000000)))
GO

ALTER TABLE [dbo].[GambleItem]  WITH CHECK ADD CHECK  (([GIID]>(1000000)))
GO

ALTER TABLE [dbo].[GambleItem]  WITH CHECK ADD CHECK  (([GIID]>(1000000)))
GO

ALTER TABLE [dbo].[GambleItem]  WITH CHECK ADD CHECK  (([GIID]>(1000000)))
GO

ALTER TABLE [dbo].[GambleItem] ADD  DEFAULT (getdate()) FOR [RegDate]
GO

ALTER TABLE [dbo].[GambleItem] ADD  DEFAULT ((0)) FOR [StartDate]
GO

ALTER TABLE [dbo].[GambleItem] ADD  DEFAULT ((0)) FOR [LifeTimeHour]
GO

ALTER TABLE [dbo].[GambleItem] ADD  DEFAULT ((0)) FOR [IsCash]
GO

ALTER TABLE [dbo].[GambleItem] ADD  DEFAULT ((0)) FOR [Opened]
GO


USE [GunzDB]
GO

/****** By Jorklenis2 Object:  Table [dbo].[GambleRewardItem]    Script Date: 04/05/2015 14:33:47 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[GambleRewardItem](
	[GRIID] [int] IDENTITY(1,1) NOT NULL,
	[GIID] [int] NOT NULL,
	[ItemIDMale] [int] NOT NULL,
	[ItemIDFemale] [int] NOT NULL,
	[RentHourPeriod] [int] NOT NULL,
	[RatePerThousand] [smallint] NOT NULL,
 CONSTRAINT [PK_GambleRewardItem] PRIMARY KEY CLUSTERED 
(
	[GRIID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[GambleRewardItem]  WITH CHECK ADD FOREIGN KEY([GIID])
REFERENCES [dbo].[GambleItem] ([GIID])
GO

ALTER TABLE [dbo].[GambleRewardItem]  WITH CHECK ADD FOREIGN KEY([GIID])
REFERENCES [dbo].[GambleItem] ([GIID])
GO

ALTER TABLE [dbo].[GambleRewardItem]  WITH CHECK ADD FOREIGN KEY([GIID])
REFERENCES [dbo].[GambleItem] ([GIID])
GO

ALTER TABLE [dbo].[GambleRewardItem]  WITH CHECK ADD FOREIGN KEY([GIID])
REFERENCES [dbo].[GambleItem] ([GIID])
GO

ALTER TABLE [dbo].[GambleRewardItem]  WITH CHECK ADD FOREIGN KEY([GIID])
REFERENCES [dbo].[GambleItem] ([GIID])
GO

ALTER TABLE [dbo].[GambleRewardItem]  WITH CHECK ADD CHECK  (([GIID]>(1000000)))
GO

ALTER TABLE [dbo].[GambleRewardItem]  WITH CHECK ADD CHECK  (([GIID]>(1000000)))
GO

ALTER TABLE [dbo].[GambleRewardItem]  WITH CHECK ADD CHECK  (([GIID]>(1000000)))
GO

ALTER TABLE [dbo].[GambleRewardItem]  WITH CHECK ADD CHECK  (([GIID]>(1000000)))
GO

ALTER TABLE [dbo].[GambleRewardItem]  WITH CHECK ADD CHECK  (([GIID]>(1000000)))
GO

ALTER TABLE [dbo].[GambleRewardItem]  WITH CHECK ADD CHECK  (([GIID]>(1000000)))
GO

ALTER TABLE [dbo].[GambleRewardItem]  WITH CHECK ADD CHECK  (([GIID]>(1000000)))
GO

ALTER TABLE [dbo].[GambleRewardItem] ADD  DEFAULT ((0)) FOR [RentHourPeriod]
GO


USE [GunzDB]
GO
/****** By Jorklenios2 Object:  StoredProcedure [dbo].[spChangeGambleItemToRewardNormalItem]    Script Date: 04/05/2015 14:35:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Ŭ·£ »ý¼ºÇϱâ
ALTER PROC [dbo].[spChangeGambleItemToRewardNormalItem]
 [USER=369615]Cid[/USER]				INT
	, @CIID				INT
	, [USER=503186]Gii[/USER]D				INT
	, @GRIID			INT
	, @RewardItemID		INT
    , @RewardRentPeriod INT
AS BEGIN

	SET NOCOUNT ON;

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

    DECLARE @NowDate DATETIME;
	SET @NowDate = GETDATE();	

	DECLARE [USER=474740]Gamble[/USER]ItemCount	INT;
			
	SELECT [USER=474740]Gamble[/USER]ItemCount = ISNULL(Cnt, 1)
	FROM	CharacterItem(NOLOCK)
	WHERE	CIID = @CIID
	AND		CID IS NOT NULL;
		
	-----------------------------------------------------------------------------
	
    SET XACT_ABORT ON;

	BEGIN TRAN -----------  
	
		----------------------------------------------------------------------------------------
		
		IF( [USER=474740]Gamble[/USER]ItemCount > 1 ) BEGIN
		
			UPDATE	CharacterItem 
			SET		Cnt = Cnt - 1
			WHERE	CID = [USER=369615]Cid[/USER] 
			AND		CIID = @CIID 
			
		END
		ELSE BEGIN
		
			DELETE  CharacterItem 
			WHERE	CID = [USER=369615]Cid[/USER] 
			AND		CIID = @CIID
			
		END
		
		---------------------------------------------------------------------------------------	
		
		INSERT CharacterItem(CID, ItemID, RegDate, RentDate, RentHourPeriod, Cnt)
		VALUES  [USER=369615]Cid[/USER], @RewardItemID, @NowDate, @NowDate, @RewardRentPeriod, 1)
		
		DECLARE [USER=518004]Order[/USER]CIID INT;			
		SET [USER=518004]Order[/USER]CIID = @@IDENTITY;			

	COMMIT TRAN  -----------

    SET XACT_ABORT OFF;
		

    INSERT dbo.ItemChangeLog_CharacterItem(ChangeType, ChangeDate, CID, CIID, ItemID, [Count])
    VALUES (202, @NowDate, [USER=369615]Cid[/USER], @CIID, [USER=503186]Gii[/USER]D, 1);	

    INSERT dbo.ItemChangeLog_CharacterItem(ChangeType, ChangeDate, CID, CIID, ItemID, [Count])
    VALUES (102, @NowDate, [USER=369615]Cid[/USER], [USER=518004]Order[/USER]CIID, @RewardItemID, 1);

    INSERT INTO LogDB..GambleLog(CID, GIID, RewardItemID, RegDate, RentHourPeriod, ItemCnt)
    VALUES  [USER=369615]Cid[/USER], [USER=503186]Gii[/USER]D, @RewardItemID, @NowDate, @RewardRentPeriod, 1);

    ----------------------------------------------------------------------------------------
		
	SELECT [USER=518004]Order[/USER]CIID AS 'ORDERCIID'
END  

USE [GunzDB]
GO
/****** By Jorklenios2 Object:  StoredProcedure [dbo].[spChangeGambleItemToRewardNormalItem]    Script Date: 04/05/2015 14:35:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Ŭ·£ »ý¼ºÇϱâ
ALTER PROC [dbo].[spChangeGambleItemToRewardNormalItem]
 [USER=369615]Cid[/USER]				INT
	, @CIID				INT
	, [USER=503186]Gii[/USER]D				INT
	, @GRIID			INT
	, @RewardItemID		INT
    , @RewardRentPeriod INT
AS BEGIN

	SET NOCOUNT ON;

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

    DECLARE @NowDate DATETIME;
	SET @NowDate = GETDATE();	

	DECLARE [USER=474740]Gamble[/USER]ItemCount	INT;
			
	SELECT [USER=474740]Gamble[/USER]ItemCount = ISNULL(Cnt, 1)
	FROM	CharacterItem(NOLOCK)
	WHERE	CIID = @CIID
	AND		CID IS NOT NULL;
		
	-----------------------------------------------------------------------------
	
    SET XACT_ABORT ON;

	BEGIN TRAN -----------  
	
		----------------------------------------------------------------------------------------
		
		IF( [USER=474740]Gamble[/USER]ItemCount > 1 ) BEGIN
		
			UPDATE	CharacterItem 
			SET		Cnt = Cnt - 1
			WHERE	CID = [USER=369615]Cid[/USER] 
			AND		CIID = @CIID 
			
		END
		ELSE BEGIN
		
			DELETE  CharacterItem 
			WHERE	CID = [USER=369615]Cid[/USER] 
			AND		CIID = @CIID
			
		END
		
		---------------------------------------------------------------------------------------	
		
		INSERT CharacterItem(CID, ItemID, RegDate, RentDate, RentHourPeriod, Cnt)
		VALUES  [USER=369615]Cid[/USER], @RewardItemID, @NowDate, @NowDate, @RewardRentPeriod, 1)
		
		DECLARE [USER=518004]Order[/USER]CIID INT;			
		SET [USER=518004]Order[/USER]CIID = @@IDENTITY;			

	COMMIT TRAN  -----------

    SET XACT_ABORT OFF;
		

    INSERT dbo.ItemChangeLog_CharacterItem(ChangeType, ChangeDate, CID, CIID, ItemID, [Count])
    VALUES (202, @NowDate, [USER=369615]Cid[/USER], @CIID, [USER=503186]Gii[/USER]D, 1);	

    INSERT dbo.ItemChangeLog_CharacterItem(ChangeType, ChangeDate, CID, CIID, ItemID, [Count])
    VALUES (102, @NowDate, [USER=369615]Cid[/USER], [USER=518004]Order[/USER]CIID, @RewardItemID, 1);

    INSERT INTO LogDB..GambleLog(CID, GIID, RewardItemID, RegDate, RentHourPeriod, ItemCnt)
    VALUES  [USER=369615]Cid[/USER], [USER=503186]Gii[/USER]D, @RewardItemID, @NowDate, @RewardRentPeriod, 1);

    ----------------------------------------------------------------------------------------
		
	SELECT [USER=518004]Order[/USER]CIID AS 'ORDERCIID'
END  

USE [GunzDB]
GO
/****** Object:  StoredProcedure [dbo].[spChangeGambleItemToRewardItem]    Script Date: 04/05/2015 14:36:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROC [dbo].[spChangeGambleItemToRewardItem]  
-- CREATE PROC dbo.spChangeGambleItemToRewardItem  
 [USER=369615]Cid[/USER]				INT
	, @CIID				INT
	, [USER=503186]Gii[/USER]D				INT
	, @GRIID			INT
	, @RewardItemID		INT
AS BEGIN

	SET NOCOUNT ON;

	DECLARE [USER=2000189957]Ren[/USER]tHourPeriod		INT  
	DECLARE [USER=474740]Gamble[/USER]ItemCount	INT;
	
	-----------------------------By Jorklenis2---------------------------------
			
	SELECT [USER=2000189957]Ren[/USER]tHourPeriod = ISNULL(RentHourPeriod, 0)
	FROM	GambleRewardItem gri(NOLOCK)  
	WHERE	GRIID = @GRIID
	AND		GIID = [USER=503186]Gii[/USER]D 
	AND		(ItemIDMale = @RewardItemID OR ItemIDFemale = @RewardItemID)  
	
	IF (0 = @@ROWCOUNT) BEGIN
		SELECT -1 AS 'Ret'  
		RETURN
	END
			
	SELECT [USER=474740]Gamble[/USER]ItemCount = ISNULL(Cnt, 1)
	FROM	CharacterItem(NOLOCK)
	WHERE	CIID = @CIID;
		
	-----------------------------------------------------------------------------
	
	DECLARE @NowDate	DATETIME;
	SET @NowDate = GETDATE();	
	
	-----------------------------------------------------------------------------
			
	BEGIN TRAN -----------  
	
		----------------------------------------------------------------------------------------
		
		IF( [USER=474740]Gamble[/USER]ItemCount > 1 ) BEGIN
		
			UPDATE	CharacterItem 
			SET		Cnt = Cnt - 1
			WHERE	CID = [USER=369615]Cid[/USER] 
			AND		CIID = @CIID 
			
			IF (0 <> @@ERROR) OR (0 = @@ROWCOUNT) BEGIN  
				ROLLBACK TRAN  
				SELECT -2 AS 'Ret'  
				RETURN
			END
			
		END
		ELSE BEGIN
		
			UPDATE	CharacterItem 
			SET		CID = NULL
			WHERE	CID = [USER=369615]Cid[/USER] 
			AND		CIID = @CIID
			
			IF (0 <> @@ERROR) OR (0 = @@ROWCOUNT) BEGIN  
				ROLLBACK TRAN  
				SELECT -3 AS 'Ret'  
				RETURN
			END
			
		END
		
		---------------------------------------------------------------------------------------	
		
		INSERT CharacterItem(CID, ItemID, RegDate, RentDate, RentHourPeriod, Cnt)
		VALUES  [USER=369615]Cid[/USER], @RewardItemID, @NowDate, @NowDate, [USER=2000189957]Ren[/USER]tHourPeriod, 1)
		
		DECLARE [USER=518004]Order[/USER]CIID INT;			
		SET [USER=518004]Order[/USER]CIID = @@IDENTITY;
			
		IF (0 <> @@ERROR) BEGIN  
			ROLLBACK TRAN  
			SELECT -4 AS 'Ret'  
			RETURN
		END
			
			
		INSERT dbo.ItemChangeLog_CharacterItem(ChangeType, ChangeDate, CID, CIID, ItemID, [Count])
		VALUES (202, @NowDate, [USER=369615]Cid[/USER], @CIID, [USER=503186]Gii[/USER]D, 1);	
		
		IF (0 <> @@ERROR) BEGIN  
			ROLLBACK TRAN  
			SELECT -5 AS 'Ret'  
			RETURN
		END

		INSERT dbo.ItemChangeLog_CharacterItem(ChangeType, ChangeDate, CID, CIID, ItemID, [Count])
		VALUES (102, @NowDate, [USER=369615]Cid[/USER], [USER=518004]Order[/USER]CIID, @RewardItemID, 1);
		
		IF (0 <> @@ERROR) BEGIN  
			ROLLBACK TRAN  
			SELECT -6 AS 'Ret'  
			RETURN
		END

		INSERT INTO LogDB..GambleLog(CID, GIID, RewardItemID, RegDate)  
		VALUES  [USER=369615]Cid[/USER], [USER=503186]Gii[/USER]D, @RewardItemID, @NowDate);
		
		IF (0 <> @@ERROR) BEGIN  
			ROLLBACK TRAN  
			SELECT -7 AS 'Ret'  
			RETURN
		END
		
		----------------------------------------------------------------------------------------

	COMMIT TRAN  -----------
		
	SELECT 0 AS 'Ret', [USER=518004]Order[/USER]CIID AS 'ORDERCIID'
END
 
Last edited:
Upvote 0
Newbie Spellweaver
Joined
Jul 2, 2011
Messages
78
Reaction score
21
Well...i think u didn't edit item count (x0) error

You can see this part : MMatchDBMgr::GetGambleRewardItemList
Code:
bool MMatchDBMgr::GetGambleRewardItemList( vector<MMatchGambleRewardItem*>& vGambleRewardItemList )
{
....
	for( int nIndex = 0; ! rs.IsEOF(); rs.MoveNext() )
	{
		dwGRIID				= (DWORD)rs.Field("GRIID").AsInt();
		dwGIID				= (DWORD)rs.Field("GIID" ).AsInt();
		dwItemIDMale		= (DWORD)rs.Field("ItemIDMale").AsInt();
		dwItemIDFemale		= (DWORD)rs.Field("ItemIDFemale").AsInt();
		dwItemCnt			= (DWORD)rs.Field("[COLOR="#FF0000"]ItemCnt[/COLOR]").AsInt();
		wRentHourPeriod		= (WORD)rs.Field( "RentHourPeriod" ).AsInt();
		wRatePerThousand	= (WORD)rs.Field( "RatePerThousand" ).AsInt();
....

Ok... DB is wrong.

Fix : dbo.GambleRewardItem
Code:
[COLOR="#FF0000"]Add ItemCnt(int)[/COLOR] Default(1)

ScreenShot :
 

Attachments

You must be registered for see attachments list
Last edited:
Upvote 0