Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Gold rate help

Junior Spellweaver
Joined
Jun 28, 2013
Messages
147
Reaction score
13
I use this
USE [C9World]
GO
/****** Object: StoredProcedure [Game].[UspAddPcMoney] Script Date: 11/26/2015 21:50:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


/******************************************************************************
** Name: UspAddPcMoney
** Desc: 특정 PC 의 개인 소지금에 일정 금액을 증/감
**
** Auth: B4nFter
** Date: 2008-04-21
*******************************************************************************
** Change History
*******************************************************************************
** Date: Auth: Desc:
** -------- -------- ---------------------------------------
** 2009-03-26 B4nFter 개인 소지금 테이블 변경 (Game.TblPcStat → Game.TblPcInfo)
** 2009-03-05 JUDY 개인 소지금 값을 업데이트시 받을 수 있도록 변경
** 2008-04-25 B4nFter 증/감 을 동시에 하도록 수정
** 2009-08-17 김석천 with(updlock)삭제
*******************************************************************************/
ALTER PROCEDURE [Game].[UspAddPcMoney]
@pPcNo BIGINT, -- PC 번호
@paddMoney INT OUTPUT, -- 가산 금액 (+/-) (출력)
@pMaxMoney INT -- 최대 금액
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED


DECLARE @AerrNo INT
DECLARE @aCurMoney INT
SET @AerrNo = 0
SET @aCurMoney = 0


-- PC 가 존재하는지 여부 체크
IF NOT EXISTS(
SELECT *
FROM Game.TblPcBase
WHERE cPcNo = @pPcNo
AND cDateDel = '1900-01-01'
)
BEGIN
SET @AerrNo = 2 -- PC가 존재하지 않음
GOTO LABEL_END2
END




SELECT
@aCurMoney = cMoney
FROM Game.TblPcInfo
WHERE cPcNo = @pPcNo


IF ((@@ERROR <> 0) OR (@@ROWCOUNT <= 0))
BEGIN
SET @AerrNo = 2 -- PC가 존재하지 않음
GOTO LABEL_END1
END

-- 제한 금액 도달여부 체크
IF (0 < @paddMoney)
BEGIN
SET @paddMoney = @paddMoney * 100
-- 현재 금액 + 가산 금액 (+) > 최대 금액 인지 체크
IF (@aCurMoney + @paddMoney > @pMaxMoney)
BEGIN
SET @AerrNo = 3 -- 최고 금액 제한 도달
GOTO LABEL_END1
END
END
ELSE
BEGIN
-- 현재 금액 + 가산 금액 (-) < 0 인지 체크
IF (@aCurMoney + @paddMoney < 0)
BEGIN
SET @AerrNo = 4 -- 최저 금액 제한 도달
GOTO LABEL_END1
END
END


-- 소지 금액 갱신
UPDATE Game.TblPcInfo
SET
@paddMoney =
cMoney = @aCurMoney + @paddMoney
WHERE cPcNo = @pPcNo


IF ((@@ERROR <> 0) OR (@@ROWCOUNT <= 0))
BEGIN
SET @AerrNo = 1 -- SQL 내부오류
GOTO LABEL_END1
END


LABEL_END1:
IF (0 <> @AerrNo)
BEGIN
SET @paddMoney = @aCurMoney
END


LABEL_END2:
RETURN @AerrNo)
But mssql give me error
Incorrect syntax near ')'.
How to solve this?
 
Back
Top