void CDbManager::MakeQueryAddMail( char* szSql, CMail* pMail, u_long idReceiver )
{
CItemElem item;
CPet pet;
BOOL bPet = FALSE;
if( pMail->m_pItemElem )
{
item = *pMail->m_pItemElem;
if( pMail->m_pItemElem->m_pPet )
{
pet = *pMail->m_pItemElem->m_pPet;
bPet = TRUE;
}
}
else
item.m_nItemNum = 0;
#if __VER >= 12 // __EXT_PIERCING
if( item.GetProp() && item.GetProp()->IsUltimate() )
{
sprintf( szSql, "{call MAIL_STR('A1', %d, '%02d', '%07d', '%07d', %d, %d, %d, ?, ?,"
"%d, %d, %d, %d, %d, %d, %d, %d,"
"%d, %d, %d, %d, %d, %d, %d,"
"%I64d,"
"%d, %d, %d, %d, %d"
",%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d"
",%d"
",%d, %d, %d, %d, %d" // 추가 피어싱 아이템
",%d, %d, %d, %d, %d" // 추가 피어싱 아이템
",%d" // 추가 피어싱 사이즈
")}",
pMail->m_nMail, g_appInfo.dwSys, idReceiver, pMail->m_idSender, pMail->m_nGold, pMail->m_tmCreate, pMail->m_byRead,
item.m_dwItemId, item.m_nItemNum, item.m_nRepairNumber, item.m_nHitPoint, item.m_nRepair, 0, item.m_byFlag, item.GetSerialNumber(),
item.GetOption(), item.m_bItemResist, item.m_nResistAbilityOption, item.m_idGuild, item.m_nResistSMItemId, item.m_bCharged, item.m_dwKeepTime,
item.GetRandomOptItemId(),
item.GetUltimatePiercingSize(), item.GetUltimatePiercingItem( 0 ), item.GetUltimatePiercingItem( 1 ), item.GetUltimatePiercingItem( 2 ), item.GetUltimatePiercingItem( 3 ),
bPet, pet.GetKind(), pet.GetLevel(), pet.GetExp(), pet.GetEnergy(), pet.GetLife(),
pet.GetAvailLevel( PL_D ), pet.GetAvailLevel( PL_C ), pet.GetAvailLevel( PL_B ), pet.GetAvailLevel( PL_A ), pet.GetAvailLevel( PL_S )
, item.GetUltimatePiercingItem( 4 )
, item.GetPiercingItem( 0 ), item.GetPiercingItem( 1 ), item.GetPiercingItem( 2 ), item.GetPiercingItem( 3 ), item.GetPiercingItem( 4 )
, item.GetPiercingItem( 5 ), item.GetPiercingItem( 6 ), item.GetPiercingItem( 7 ), item.GetPiercingItem( 8 ), item.GetPiercingItem( 9 )
, item.GetPiercingSize()
);
}
else
{
sprintf( szSql, "{call MAIL_STR('A1', %d, '%02d', '%07d', '%07d', %d, %d, %d, ?, ?,"
"%d, %d, %d, %d, %d, %d, %d, %d,"
"%d, %d, %d, %d, %d, %d, %d,"
"%I64d,"
"%d, %d, %d, %d, %d"
",%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d"
",%d"
",%d, %d, %d, %d, %d" // 추가 피어싱 아이템
",%d, %d, %d, %d, %d" // 추가 피어싱 아이템
",%d" // 추가 피어싱 사이즈
")}",
pMail->m_nMail, g_appInfo.dwSys, idReceiver, pMail->m_idSender, pMail->m_nGold, pMail->m_tmCreate, pMail->m_byRead,
item.m_dwItemId, item.m_nItemNum, item.m_nRepairNumber, item.m_nHitPoint, item.m_nRepair, 0, item.m_byFlag, item.GetSerialNumber(),
item.GetOption(), item.m_bItemResist, item.m_nResistAbilityOption, item.m_idGuild, item.m_nResistSMItemId, item.m_bCharged, item.m_dwKeepTime,
item.GetRandomOptItemId(),
item.GetPiercingSize(), item.GetPiercingItem( 0 ), item.GetPiercingItem( 1 ), item.GetPiercingItem( 2 ), item.GetPiercingItem( 3 ),
bPet, pet.GetKind(), pet.GetLevel(), pet.GetExp(), pet.GetEnergy(), pet.GetLife(),
pet.GetAvailLevel( PL_D ), pet.GetAvailLevel( PL_C ), pet.GetAvailLevel( PL_B ), pet.GetAvailLevel( PL_A ), pet.GetAvailLevel( PL_S )
, item.GetPiercingItem( 4 )
, item.GetPiercingItem( 5 ), item.GetPiercingItem( 6 ), item.GetPiercingItem( 7 ), item.GetPiercingItem( 8 ), item.GetPiercingItem( 9 )
, 0, 0, 0, 0, 0
, 0
);
}
#else // __EXT_PIERCING
sprintf( szSql, "{call MAIL_STR('A1', %d, '%02d', '%07d', '%07d', %d, %d, %d, ?, ?,"
"%d, %d, %d, %d, %d, %d, %d, %d,"
"%d, %d, %d, %d, %d, %d, %d,"
"%I64d,"
"%d, %d, %d, %d, %d"
",%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d"
",%d"
")}",
pMail->m_nMail, g_appInfo.dwSys, idReceiver, pMail->m_idSender, pMail->m_nGold, pMail->m_tmCreate, pMail->m_byRead,
item.m_dwItemId, item.m_nItemNum, item.m_nRepairNumber, item.m_nHitPoint, item.m_nRepair, 0, item.m_byFlag, item.GetSerialNumber(),
item.GetOption(), item.m_bItemResist, item.m_nResistAbilityOption, item.m_idGuild, item.m_nResistSMItemId, item.m_bCharged, item.m_dwKeepTime,
item.GetRandomOptItemId(),
item.GetPiercingSize(), item.GetPiercingItem( 0 ), item.GetPiercingItem( 1 ), item.GetPiercingItem( 2 ), item.GetPiercingItem( 3 ),
bPet, pet.GetKind(), pet.GetLevel(), pet.GetExp(), pet.GetEnergy(), pet.GetLife(),
pet.GetAvailLevel( PL_D ), pet.GetAvailLevel( PL_C ), pet.GetAvailLevel( PL_B ), pet.GetAvailLevel( PL_A ), pet.GetAvailLevel( PL_S )
,item.GetPiercingItem( 4 )
);
#endif // __EXT_PIERCING
}
USE [CHARACTER_01_DBF]
GO
/****** Object: StoredProcedure [dbo].[MAIL_STR] Script Date: 26/10/2016 13:04:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[MAIL_STR]
@iGu CHAR(2),
@nMail INT,
@serverindex CHAR(2),
@idReceiver CHAR(7) = '0000000',
@idSender CHAR(7) = '0000000',
@nGold INT = 0,
@
[Only registered and activated users can see links. Click Here To Register...]reate INT = 0,
@byRead INT = 0,
@
[Only registered and activated users can see links. Click Here To Register...]itle VARCHAR(128) = '',
@
[Only registered and activated users can see links. Click Here To Register...]xt VARCHAR(1024) = '',
@dwItemId INT = 0,
@nItemNum INT = 0,
@nRepairNumber INT = 0,
@nHitPoint INT = 0,
@nMaxHitPoint INT = 0,
@nMaterial INT = 0,
@byFlag INT = 0,
@dwSerialNumber INT = 0,
@nOption INT = 0,
@bItemResist INT = 0,
@nResistAbilityOption INT = 0,
@idGuild INT = 0,
@nResistSMItemId INT = 0,
@bCharged INT = 0,
@dwKeepTime INT = 0,
@nRandomOptItemId bigINT = 0,
@nPiercedSize INT = 0,
@dwItemId1 INT = 0,
@dwItemId2 INT = 0,
@dwItemId3 INT = 0,
@dwItemId4 INT = 0
------------------- Version9 Pet
,@bPet int = 0,
@nKind int = 0,
@nLevel int = 0,
@dwExp int = 0,
@
[Only registered and activated users can see links. Click Here To Register...]gy int = 0,
@
[Only registered and activated users can see links. Click Here To Register...]fe int = 0,
@anAvailLevel_D int = 0,
@anAvailLevel_C int = 0,
@anAvailLevel_B int = 0,
@anAvailLevel_A int = 0,
@anAvailLevel_S int = 0,
@dwItemId5 int = 0
----------------- Ver. 12
,@dwItemId6 int = 0, @dwItemId7 int = 0, @dwItemId8 int = 0, @dwItemId9 int = 0, @dwItemId10 int = 0
,@dwItemId11 int = 0, @dwItemId12 int = 0, @dwItemId13 int = 0, @dwItemId14 int = 0, @dwItemId15 int = 0
,@nPiercedSize2 int = 0
----------------- Ver. 13
, @szPetName varchar(32) = ''
AS
set nocount on
IF @iGu = 'S1'
BEGIN
SELECT * FROM MAIL_TBL WHERE serverindex = @serverindex AND byRead<90 order by nMail
RETURN
END
ELSE
IF @iGu = 'A1'
BEGIN
INSERT MAIL_TBL
(
nMail,
serverindex,
idReceiver,
idSender,
nGold,
tmCreate,
byRead,
szTitle,
szText,
dwItemId,
nItemNum,
nRepairNumber,
nHitPoint,
nMaxHitPoint,
nMaterial,
byFlag,
dwSerialNumber,
nOption,
bItemResist,
nResistAbilityOption,
idGuild,
nResistSMItemId,
bCharged,
dwKeepTime,
nRandomOptItemId,
nPiercedSize,
dwItemId1,
dwItemId2,
dwItemId3,
dwItemId4,
SendDt
, bPet, nKind, nLevel, dwExp, wEnergy, wLife, anAvailLevel_D, anAvailLevel_C
, anAvailLevel_B, anAvailLevel_A, anAvailLevel_S, dwItemId5
, dwItemId6, dwItemId7, dwItemId8, dwItemId9, dwItemId10, dwItemId11
, dwItemId12, dwItemId13, dwItemId14, dwItemId15, nPiercedSize2
-- Ver. 13
, szPetName
)
VALUES
(
@nMail,
@serverindex,
@idReceiver,
@idSender,
@nGold,
@
[Only registered and activated users can see links. Click Here To Register...]reate,
@byRead,
@
[Only registered and activated users can see links. Click Here To Register...]itle,
@
[Only registered and activated users can see links. Click Here To Register...]xt,
@dwItemId,
@nItemNum,
@nRepairNumber,
@nHitPoint,
@nMaxHitPoint,
@nMaterial,
@byFlag,
@dwSerialNumber,
@nOption,
@bItemResist,
@nResistAbilityOption,
@idGuild,
@nResistSMItemId,
@bCharged,
@dwKeepTime,
@nRandomOptItemId,
@nPiercedSize,
@dwItemId1,
@dwItemId2,
@dwItemId3,
@dwItemId4,
getdate()
, @bPet, @nKind, @nLevel, @dwExp, @
[Only registered and activated users can see links. Click Here To Register...]gy, @
[Only registered and activated users can see links. Click Here To Register...]fe, @anAvailLevel_D, @anAvailLevel_C
, @anAvailLevel_B, @anAvailLevel_A, @anAvailLevel_S ,@dwItemId5
, @dwItemId6, @dwItemId7, @dwItemId8, @dwItemId9, @dwItemId10, @dwItemId11
, @dwItemId12, @dwItemId13, @dwItemId14, @dwItemId15, @nPiercedSize2
-- Ver. 13
, @szPetName
)
RETURN
END
IF @iGu = 'D1'
BEGIN
UPDATE MAIL_TBL SET byRead=90, DeleteDt=getdate() WHERE nMail = @nMail AND serverindex = @serverindex
RETURN
END
IF @iGu = 'D2'
begin
--update MAIL_TBL set byRead=90, DeleteDt=getdate() where serverindex = @serverindex and tmCreate < @
[Only registered and activated users can see links. Click Here To Register...]reate
return
end
IF @iGu = 'U1'
BEGIN
UPDATE MAIL_TBL SET
ItemFlag=90, ItemReceiveDt=getdate()
WHERE nMail = @nMail AND serverindex = @serverindex
RETURN
END
IF @iGu = 'U2'
BEGIN
UPDATE MAIL_TBL SET GoldFlag=90, GetGoldDt=getdate() WHERE nMail = @nMail AND serverindex = @serverindex
RETURN
END
IF @iGu = 'U3'
BEGIN
UPDATE MAIL_TBL SET byRead = 1, ReadDt=getdate() WHERE nMail = @nMail AND serverindex = @serverindex
RETURN
END
set nocount off