Quote:
Originally Posted by Drabur
look in dpsrvr.cpp at the function that create the item
|
i got this sir can you help me please?
Code:
#ifdef __SYS_LOTTERY
void CDPSrvr::OnRouletteStart(CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long)
{
CUser *pUser = g_UserMng.GetUser(dpidCache,dpidUser);
if( IsInvalidObj(pUser) )
return;
if( !pUser->CanUseRoulette() )
return;
pUser->AddRouletteStart();
}
void CDPSrvr::OnRouletteInit(CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long)
{
CUser *pUser = g_UserMng.GetUser(dpidCache,dpidUser);
if( IsInvalidObj(pUser) )
return;
if( !pUser->CanUseRoulette() )
{
CTimeSpan tsNext = pUser->GetNextRouletteUseTime() - CTime::GetCurrentTime();
CString strError;
strError.Format("You can use the roulette again in %s", tsNext.Format("%D days, %H hours and %M Minutes"));
pUser->AddText(strError);
return;
}
pUser->AddRouletteInit();
}
void CDPSrvr::OnRouletteEnd(CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long)
{
CUser *pUser = g_UserMng.GetUser(dpidCache,dpidUser);
if( IsInvalidObj(pUser) )
return;
if( !pUser->CanUseRoulette() )
return;
DWORD dwItemId = pUser->GetRouletteWin();
if( !prj.GetItemProp(dwItemId) )
return;
CItemElem itemElem;
itemElem.m_dwItemId = dwItemId;
itemElem.m_nItemNum = 1;
itemElem.SetFlag(2);
itemElem.SetSerialNumber();
if( pUser->m_Inventory.IsFull(&itemElem,prj.GetItemProp(dwItemId),1) )
{
pUser->AddDefinedText(TID_GAME_LACKSPACE);
pUser->SetRouletteWin(NULL_ID);
return;
}
pUser->CreateItem(&itemElem);
pUser->EndRoulette();
}
void CDPSrvr::OnScratchCardInit(CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long)
{
CUser *pUser = g_UserMng.GetUser(dpidCache,dpidUser);
if( IsInvalidObj(pUser) )
return;
OBJID objidScratchCard;
CItemElem *pScratchElem = NULL;
ar >> objidScratchCard;
pScratchElem = pUser->m_Inventory.GetAtId(objidScratchCard);
if( !pScratchElem )
return;
if( pScratchElem->GetProp()->dwItemKind3 != IK3_SCRATCH )
return;
pUser->InitScratchCard(pScratchElem->m_dwItemId);
pUser->RemoveItem((BYTE)objidScratchCard,1);
}
void CDPSrvr::OnScratchCardGet(CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long)
{
CUser *pUser = g_UserMng.GetUser(dpidCache,dpidUser);
if( IsInvalidObj(pUser) )
return;
DWORD dwItemId;
DWORD dwCount;
int nIndex;
ar >> nIndex;
if( pUser->GetScratchCardWin(&dwItemId,&dwCount,nIndex) )
{
CItemElem itemElem;
itemElem.m_dwItemId = dwItemId;
itemElem.m_nItemNum = dwCount;
itemElem.SetFlag(2);
itemElem.SetSerialNumber();
if( pUser->m_Inventory.IsFull(&itemElem,itemElem.GetProp(),(short)dwCount) )
{
g_dpDBClient.SendQueryPostMail(pUser->m_idPlayer,0,itemElem,0,"Lottery","Your scratch card win!");
}else
{
pUser->CreateItem(&itemElem);
}
pUser->SetScratchCardWin(NULL_ID,NULL_ID,nIndex);
}
}
#endif