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!

My system mail isn't working

Initiate Mage
Joined
Aug 14, 2022
Messages
2
Reaction score
0
I want to use the "uspt_send_GMGiftItem" to make some tests, but mail doesn't response. What could be happening?

1698368762923 - My system mail isn't working - RaGEZONE Forums


mail fail.JPG - My system mail isn't working - RaGEZONE Forums


USE [trickster]
GO
/****** Object: StoredProcedure [dbo].[USPT_Send_GMGiftItem] Script Date: 26/10/2023 22:08:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[USPT_Send_GMGiftItem]
@Title VARCHAR(50) -- GMTool에서 작성한 우편함 제목
, @Content VARCHAR(300) -- GMTool에서 작성한 우편함 내용
, @ToCharUID INT -- 받는 캐릭터UID
, @UpdateItemList VARCHAR(1000)
-- Stream형태의 첨부된 아이템 데이터 ((ItemIndex, ItemClass, ItemAttr, AddMinute/)
AS
SET NOCOUNT ON;
SET LOCK_TIMEOUT 10000;
BEGIN

DECLARE
@CustomError INT
, @CustomErrorMsg VARCHAR(1000)
, @GetDate DATETIME
, @LogType SMALLINT
, @PostUID INT
, @SendMoney INT
, @RequestMoney INT
, @SendDate SMALLDATETIME
, @ReturnDate SMALLDATETIME

, @LogGroup INT
, @NewItemUID BIGINT
, @ItemRows TINYINT
, @ItemUpdateRows TINYINT
, @WorldCode TINYINT
, @XmlMsg XML
, @ItemIndex INT
, @ItemClass TINYINT
, @LastCount SMALLINT
, @ItemSlot TINYINT
, @ItemBreaked SMALLDATETIME
, @BeforeMoney INT
, @MoneyLogCode SMALLINT
, @UserUID INT
, @UserID VARCHAR(20)
, @CharName VARCHAR(20)
, id INT
, @AddMinute INT



, @SendCount TINYINT -- 보낸 개수
, @ToUserPostCount INT -- 보낼 대상 우편함 개수
, @UpdateMoney INT -- 업데이트 겔더

, @NewDateSeq BIGINT -- 마지막 생성된 날짜 SEQ

, @GMCharName VARCHAR(17)

, @ToUserUID INT -- 받는 유저UID
, @ToCharName VARCHAR(17) -- 받는 캐릭터명
, @ToCharLevel INT -- 받는 캐릭터레벨



SET @SendCount = 0;
SET @ToUserPostCount = 0;
SET @CustomError = 0;
SET @ItemRows = 0;
SET @ItemUpdateRows = 0;
SET @GetDate = GETDATE();
SET @GMCharName = dbo.FN_GMCharName();
SET @WorldCode = dbo.GetWorldCode();
SET @LogType = '10';
SET @LogGroup = ROUND(RAND( @ToCharUID
+ (DATEPART(mm, GETDATE()) * 100000 )
+ (DATEPART(ss, GETDATE()) * 1000 )
+ (DATEPART(ms, GETDATE()) * 1 )) * 100000000, 0, 1);

BEGIN TRY
-- 0: 일반 우편
SET @ReturnDate = dbo.FN_PostDateInfo(@GetDate, 0)

--받을 유저 정보 찾아 오기
SELECT
@ToUserUID = A.UID
, @ToCharUID = B.UID
, @ToCharLevel = D.Level
, @ToCharName = B.NAME
FROM User_Info AS A
INNER JOIN Char_Attr AS B ON A.UId = B.Owner
INNER JOIN Char_State AS C ON B.UID = C.UID AND C.authority <> 2
INNER JOIN Char_Status AS D ON C.UID = D.UID
WHERE B.UID = @ToCharUID
IF (@@ROWCOUNT <> 1)
BEGIN
SET @CustomError = 102;
RAISERROR(60000, 16, 1, @CustomError, 'Not Found ToCharName');
END


-- 아이템 저장 테이블
DECLARE @ItemListTable TABLE
(
ID SMALLINT IDENTITY(0,1) PRIMARY KEY
, CharUID INT
, ItemIndex INT
, ItemClass TINYINT
, ItemAttr SMALLINT -- 최종 수량
, AddMinute INT -- 시간제 아이템일경우 추가 시간(분)
, CurrCount SMALLINT DEFAULT(0) -- 현재 수량
, NewItemUID BIGINT DEFAULT(0) -- 새로 생성되는 UID
)



BEGIN TRAN;

-- 우편함 처리 시작
INSERT INTO Post
(
PostType -- 우편함 타입 0: 우편함, 1:선물함
, PostSubType -- 우편함 서브 타입
/*
PostType = 0 (우편함)
0 : 일반 우편
1: 선물 우편
2: 거래용 우편 (겔더 요청)
3: 대금 지급 (거래용 우편에서 받기 하면 대급 지급 용으로 겔더 발송)
PostType = 1 (선물함)
4: 유료 선물
5: GM선물
*/
, PostState -- 우편함 상태
/*

0:읽지 않음
1:읽음 (일반우편함은 내용보기 하면 바로 읽음, 선물, 거래용 우편함은 모든 아이템을 찾아가야 읽음으로 변경)
2:반송
3:삭제
*/
, Title
, Content
, PostMoneyTax -- 수수료 겔더
, PostMoney -- 보낼 겔더
, PostMoneyTakeDate -- 겔더 찾아간 날짜
, SellCode -- default 0
, ParentPostUID -- 부모 우편함UID
, CreateDate -- 우편함 등록일
)
VALUES
(
1
, 5
, 0
, @Title
, @Content
, 0
, 0
, NULL
, 0
, 0
, @GetDate
)

SET @PostUID = @@IDENTITY;

-- 보낸 캐릭터 날짜 처리
INSERT INTO PostDate
(
PostUID
, PostState -- 우편함 상태 0: 읽지 않음, 1: 읽음, 2: 반송, 3: 삭제
, UserType -- 우편함 유저Flag 0: 보낸유저, 1:받는 유저
, UserUID, CharUID, CharName, CharLevel, SendDate, ReturnDate, CreateDate
)
VALUES
(
@PostUID
, 0
, 0
, 0, 0, @GMCharName, 1, @GetDate, @ReturnDate, @GetDate
)

-- 받는 캐릭터 날짜 처리
INSERT INTO PostDate
(
PostUID
, PostState
, UserType -- 우편함 유저Flag 0: 보낸유저, 1:받는 유저
, UserUID, CharUID, CharName, CharLevel, SendDate, ReturnDate, CreateDate
)
VALUES
(
@PostUID
, 0
, 1
, @ToUserUID, 0, '', @ToCharLevel, @GetDate, @ReturnDate, @GetDate
)

IF (@@ERROR <> 0)
BEGIN
SET @CustomError = 109;
RAISERROR(60000, 16, 1, @CustomError, 'INSERT PostDate Fail');
END

SET @NewDateSeq = @@IDENTITY;




-- 첨부된 아이템 처리 시작
IF (LEN(LTRIM(RTRIM(@UpdateItemList))) > 0 )
BEGIN
-- 아이템 처리
INSERT INTO @ItemListTable(CharUID, ItemIndex, ItemClass, ItemAttr, AddMinute)
SELECT
@ToCharUID
, Col0 AS ItemIndex
, Col1 AS ItemClass
, Col2 AS ItemAttr
, Col3 AS AddMinute
FROM [dbo].[FN_Double_Split](@UpdateItemList, '/', ',')
SET @ItemRows = @@ROWCOUNT;

INSERT INTO PostItem
SELECT
@PostUID
, 0
, ItemClass
, ItemIndex
, ItemAttr
, CASE
WHEN ItemClass = 2 AND AddMinute > 0 THEN AddMinute
ELSE 0
END AS AddMinute
, CASE
WHEN ItemClass = 2 AND ItemAttr = 1 AND AddMinute = 0 THEN 0
WHEN ItemClass = 2 AND AddMinute > 0 THEN 1
WHEN ItemClass = 1 THEN 2
WHEN ItemClass = 2 AND ItemAttr > 1 THEN 2
ELSE 0
END AS ItemFlag
, @GetDate
, NULL, NULL, NULL
FROM @ItemListTable
WHERE ItemClass > 0
SET @ItemUpdateRows = @@ROWCOUNT;


-- 마이캠프 아이템은 New 탭으로 바로 저장
insert into tbl_mycamp_item
SELECT @ToUserUID, ItemIndex, 1, @GetDate, @GetDate, 0, 0, 0, 0
FROM @ItemListTable
WHERE ItemClass = 0
SET @ItemUpdateRows = @ItemUpdateRows + @@ROWCOUNT;


-- 아이템로우수와 실제 업데이트된 로우수가 다름
IF (@ItemRows <> @ItemUpdateRows)
BEGIN
SET @CustomError = 110;
SET @CustomErrorMsg = 'updated rows of items have different item_rows:' + CAST(@ItemRows AS VARCHAR) + ' itemupdaterows' + CAST(@ItemUpdateRows AS VARCHAR)
RAISERROR(60000, 16, 1, @CustomError, @CustomErrorMsg);
END

/*
-- 통합 로그 처리
SET @XmlMsg = (
SELECT * FROM(
SELECT
@GetDate AS CreatedDate
, @LogType AS LogCode
, @LogGroup AS LogGroup
, @WorldCode AS WorldCode
, @UserUID AS UserUID
, @UserID AS UserID
, @ToCharUID AS CharUID
, @ToCharName AS CharName
, (CASE WHEN a.NewItemUID > 0 THEN NewItemUID ELSE ItemUID END) AS ItemUID
, a.ItemIndex
, b.Item_Name AS ItemName
, a.ItemClass
, a.CurrCount AS BeforeCount
, a.ItemAttr AS AfterCount
, 1 AS Location
, 0 AS ItemParentUID
FROM @ItemListTable AS a
LEFT JOIN INI_Item_Index AS b ON a.ItemIndex = b.Item_Index
) AS ItemLogDetail
FOR XML AUTO, TYPE, ROOT('ItemLog')
)

*/ -- 아이템 로그 처리
-- EXEC USP_SendMsg_ItemTradeLog_Xml @XmlMsg

-- 겔더 통합 로그 처리 => LOGDB
-- EXEC USP_SendMsg_MoneyTradeLog @GetDate, @LogType, 0, NULL, NULL, @CharUID, NULL, @BeforeMoney, @UpdateMoney, 1


END
-- 아이템 처리 끝

COMMIT TRAN;


--SELECT @NewDateSeq AS NewDateSeq, @PostUID AS PostUID, @GetDate AS OccurDate, @ReturnDate AS ReturnDate


RETURN 0;

END TRY
BEGIN CATCH
IF (@@TRANCOUNT > 0)
BEGIN
ROLLBACK TRANSACTION;
END

DECLARE @ObjectName VARCHAR(128)
, @CustomMsg VARCHAR(1000)
, @ErrorLogID INT;

SET @ObjectName = OBJECT_NAME(@@PROCID);
SET @CustomMsg = CONVERT(VARCHAR, @Title) + ', '
+ CONVERT(VARCHAR, @Content ) + ', '
+ CONVERT(VARCHAR, @ToCharUID) + ', '
+ CONVERT(VARCHAR, @UpdateItemList)


-- Save ErrorLog
EXECUTE dbo.USP_Create_ErrorLog @ObjectName, @CustomMsg, @ErrorLogID OUTPUT

SELECT 0 WHERE 1=2

IF (@CustomError > 0)
RETURN @CustomError; -- 응용 프로그램 예외 처리
ELSE
RETURN 50000; -- 오류 번호
END CATCH;
END;
 

Attachments

You must be registered for see attachments list
Back
Top