Help Roulette

04/15/2018 12:21 Rapid0#1
How to remove Event Reward:? so i can trade the prize through trade thanks in advanced :handsdown:
[Only registered and activated users can see links. Click Here To Register...]
04/15/2018 13:04 Drabur#2
look in dpsrvr.cpp at the function that create the item
04/15/2018 15:08 Rapid0#3
Quote:
Originally Posted by Drabur View Post
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
04/15/2018 15:10 Drabur#4
Quote:
Originally Posted by Rapid0 View Post
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
PHP Code:
itemElem.SetFlag(2); 
remove this
04/15/2018 16:03 Rapid0#5
Quote:
Originally Posted by Drabur View Post
PHP Code:
itemElem.SetFlag(2); 
remove this
Copy that sir :) Thank you very much! :handsdown:

Quote:
Originally Posted by Drabur View Post
PHP Code:
itemElem.SetFlag(2); 
remove this
i got this sir
[Only registered and activated users can see links. Click Here To Register...]
04/16/2018 00:26 Dr. Peacock#6
Try

itemElem.SetFlag(0);*
Or
itemElem.SetFlag(1);*
04/16/2018 05:51 Avalion#7
Try removing the system and adding it back in again.