/sro command

03/17/2019 09:06 xToffer#1
/sro command not working when using inventory tab, what i will change in the sro command?
03/17/2019 11:01 - DK#2
Quote:
Originally Posted by xToffer View Post
/sro command not working when using inventory tab, what i will change in the sro command?
Yes u need to update ur /sro - /gro - /awa Command.
03/17/2019 11:25 xToffer#3
Quote:
Originally Posted by - DK ACE View Post
Yes u need to update ur /sro - /gro - /awa Command.
i did this:
Code:
BOOL TextCmd_SetRandomOption(CScanner & s)
{
#ifdef __WORLDSERVER
	CUser* pUser = (CUser*)s.dwValue;
#ifdef __TABBED_INV
	DWORD dwTab = 0;
	dwTab = s.GetNumber();
	CItemElem* pItemElem = pUser->m_Inventory.GetAt(0 + (dwTab * 42));
#else // __TABBED_INV
	CItemElem* pItemElem = pUser->m_Inventory.GetAt(0);
#endif // __TABBED_INV
	if (pItemElem)
	{
		int nRandomOptionKind = g_xRandomOptionProperty->GetRandomOptionKind(pItemElem);
		if (nRandomOptionKind >= 0)
		{
			g_xRandomOptionProperty->InitializeRandomOption(pItemElem->GetRandomOptItemIdPtr());
			int nDst, nAdj;
			int cb = 0;
			nDst = s.GetNumber();
			while (s.tok != FINISHED)
			{
				nAdj = s.GetNumber();
				if (nDst == 48)
					break;
				if (nDst > 96 || nDst < 1)
					break;
				if (nAdj > 512 || nAdj < -512)
					break;
				g_xRandomOptionProperty->SetParam(pItemElem->GetRandomOptItemIdPtr(), nDst, nAdj);
				cb++;
				if (cb >= MAX_RANDOM_OPTION)
					break;
				nDst = s.GetNumber();
			}
			pUser->UpdateItemEx((BYTE)(pItemElem->m_dwObjId), UI_RANDOMOPTITEMID, pItemElem->GetRandomOptItemId());
		}
	}
#endif	// __WORLDSERVER
	return TRUE;
}
03/17/2019 12:03 Seigh77#4
try /sro 1 11 200 11 200 or /sro 0 11 200
03/17/2019 14:00 - DK#5
Quote:
Originally Posted by xToffer View Post
i did this:
Code:
BOOL TextCmd_SetRandomOption(CScanner & s)
{
#ifdef __WORLDSERVER
	CUser* pUser = (CUser*)s.dwValue;
#ifdef __TABBED_INV
	DWORD dwTab = 0;
	dwTab = s.GetNumber();
	CItemElem* pItemElem = pUser->m_Inventory.GetAt(0 + (dwTab * 42));
#else // __TABBED_INV
	CItemElem* pItemElem = pUser->m_Inventory.GetAt(0);
#endif // __TABBED_INV
	if (pItemElem)
	{
		int nRandomOptionKind = g_xRandomOptionProperty->GetRandomOptionKind(pItemElem);
		if (nRandomOptionKind >= 0)
		{
			g_xRandomOptionProperty->InitializeRandomOption(pItemElem->GetRandomOptItemIdPtr());
			int nDst, nAdj;
			int cb = 0;
			nDst = s.GetNumber();
			while (s.tok != FINISHED)
			{
				nAdj = s.GetNumber();
				if (nDst == 48)
					break;
				if (nDst > 96 || nDst < 1)
					break;
				if (nAdj > 512 || nAdj < -512)
					break;
				g_xRandomOptionProperty->SetParam(pItemElem->GetRandomOptItemIdPtr(), nDst, nAdj);
				cb++;
				if (cb >= MAX_RANDOM_OPTION)
					break;
				nDst = s.GetNumber();
			}
			pUser->UpdateItemEx((BYTE)(pItemElem->m_dwObjId), UI_RANDOMOPTITEMID, pItemElem->GetRandomOptItemId());
		}
	}
#endif	// __WORLDSERVER
	return TRUE;
}
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)s.dwValue;
#ifdef __TABBED_INV
CItemElem* pItemElem = NULL;
for (int i = 0; i < 4; i++)
{
pItemElem = pUser->m_Inventory.GetAt(i*MAX_INVENTORY_SLOT);
if (pItemElem)
break;
}
#else
CItemElem* pItemElem = pUser->m_Inventory.GetAt(0);
#endif

Quote:
Originally Posted by Seigh77 View Post
try /sro 1 11 200 11 200 or /sro 0 11 200
Bro, read the text please :kappa:
03/17/2019 14:27 xToffer#6
Quote:
Originally Posted by - DK ACE View Post
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)s.dwValue;
#ifdef __TABBED_INV
CItemElem* pItemElem = NULL;
for (int i = 0; i < 4; i++)
{
pItemElem = pUser->m_Inventory.GetAt(i*MAX_INVENTORY_SLOT);
if (pItemElem)
break;
}
#else
CItemElem* pItemElem = pUser->m_Inventory.GetAt(0);
#endif
thats the correct way?