(need help)Awakening transfer System

08/13/2012 21:54 xsrf#1
Hallo, ich habe vorhin mal das Awakening System in der Pixelfehler Source gesucht, das es Ingame Erweckungen von einem Helm auf eine Suit macht.


Ich suche nun eine möglichkeit, das man nur noch erweckung mit dem gleichen Gegenstand also bsp Helm & Helm/Suit & Suit tauschen kann.


Malibu meinte etwas von einer Abfrage oder ähnlichem.

Bin leider seit heut mittag ratlos s:
08/14/2012 08:18 Crystal-Craft#2
tipp: DpSrvr.cpp(WorldServer)

OnTransferAwake:
Quote:
if(g_xRandomOptionProperty->GetRandomOptionKind(pDest) != g_xRandomOptionProperty->GetRandomOptionKind(pSource))
{
pUser->AddText("The items should have the same random option kind!");
return;
}
08/15/2012 17:33 Jopsi332#3
Quote:
Originally Posted by Crystal-Craft View Post
tipp: DpSrvr.cpp(WorldServer)

OnTransferAwake:
das ist nicht dafür da...


füg einfach

das in den dpsrvr teil ein

Code:
	if(pSource->GetProp()->dwParts != pDest->GetProp()->dwParts )
		return;
unter

Code:
#ifdef __TRANSFER_AWAKE
void CDPSrvr::OnSendTransferAwake( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long )//TransferAwake Funktion
{

	CUser *pUser = g_UserMng.GetUser(dpidCache,dpidUser);
	if(IsInvalidObj(pUser))
		return;

	DWORD dwDest,dwSource,dwMat;
	ar >> dwDest >> dwSource >> dwMat;
	int Cost;
	Cost = 2000000;
	CItemElem *pDest = NULL, *pSource = NULL, *pMat = NULL;
	if(pUser->GetGold() < Cost)
		return;
	pMat = pUser->m_Inventory.GetAtId(dwMat);
	if(!pMat)
		return;
	if(pMat->GetProp()->dwID != 21)
		return;
	pDest = pUser->m_Inventory.GetAtId(dwDest);
	if(!pDest)
		return;
	pSource = pUser->m_Inventory.GetAtId(dwSource);
	if(!pSource)
		return;