(Cantidad | Category | Type | Level | Skill | Luck | Option | Exe | Set | Sockets)
void CCommandManager::CommandMake(LPOBJ lpObj,char* arg) // OK
{
	if(gServerInfo.m_CommandMakeSwitch == 0)
	{
		return;
	}
	if(gGameMaster.CheckGameMasterLevel(lpObj,gServerInfo.m_CommandMakeGameMasterLevel) == 0)
	{
		gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(106));
		return;
	}
	int qtd=0,section,type,level,skill,luck,option,exc,set,socket;
	BYTE ItemSocketOption[MAX_SOCKET_OPTION] = {0xFF,0xFF,0xFF,0xFF,0xFF};
	section = this->GetNumber(arg,0);
	if (section < 0) 
	{
		qtd		= section;
		section = this->GetNumber(arg,1);
		type	= this->GetNumber(arg,2);
		level	= this->GetNumber(arg,3);
		skill	= this->GetNumber(arg,4);
		luck	= this->GetNumber(arg,5);
		option	= this->GetNumber(arg,6);
		exc		= this->GetNumber(arg,7);
		set		= this->GetNumber(arg,8);
		socket	= this->GetNumber(arg,9);
	}
	else
	{
		type	= this->GetNumber(arg,1);
		level	= this->GetNumber(arg,2);
		skill	= this->GetNumber(arg,3);
		luck	= this->GetNumber(arg,4);
		option	= this->GetNumber(arg,5);
		exc		= this->GetNumber(arg,6);
		set		= this->GetNumber(arg,7);
		socket	= this->GetNumber(arg,8);
	}
	for(int n=0;n < socket && socket <= MAX_SOCKET_OPTION;n++)
	{
			ItemSocketOption[n] = 0xFE;
	}
	(qtd < 0) ? qtd -= qtd*2 : qtd;
	if (qtd > 0)
	{
		for(int n=0;n < qtd;n++)
		{
			GDCreateItemSend(lpObj->Index,0xEB,0,0,GET_ITEM(section,type),level,0,skill,luck,option,-1,exc,set,0,0,ItemSocketOption,0xFF,0);
		}
	}
	else
	{
		GDCreateItemSend(lpObj->Index,0xEB,0,0,GET_ITEM(section,type),level,0,skill,luck,option,-1,exc,set,0,0,ItemSocketOption,0xFF,0);
	}
	gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(107));
	gLog.Output(LOG_COMMAND,"[CommandMake][%s][%s] - (Section: %d, Type: %d, Level: %d, Skill: %d, Luck: %d, Option: %d, Exc: %d, Set: %d, Sockets: %d, [Amount: %d])",lpObj->Account,lpObj->Name,section,type,level,skill,luck,option,exc,set,socket,(qtd>0)?qtd:1);
}
void CCommandManager::CommandMakeSet(LPOBJ lpObj,char* arg) // OK
{
	if(gServerInfo.m_CommandMakeSwitch == 0)
	{
		return;
	}
	if(gGameMaster.CheckGameMasterLevel(lpObj,gServerInfo.m_CommandMakeGameMasterLevel) == 0)
	{
		gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(106));
		return;
	}
	int type	= this->GetNumber(arg,0);
	int level	= this->GetNumber(arg,1);
	int skill	= this->GetNumber(arg,2);
	int luck	= this->GetNumber(arg,3);
	int option	= this->GetNumber(arg,4);
	int exc		= this->GetNumber(arg,5);
	int set		= this->GetNumber(arg,6);
	int socket	= this->GetNumber(arg,7);
	BYTE ItemSocketOption[MAX_SOCKET_OPTION] = {0xFF,0xFF,0xFF,0xFF,0xFF};
	for(int n=0;n < socket && socket <= MAX_SOCKET_OPTION;n++)
	{
			ItemSocketOption[n] = 0xFE;
	}
		GDCreateItemSend(lpObj->Index,0xEB,0,0,GET_ITEM(7,type),level,0,skill,luck,option,-1,exc,set,0,0,ItemSocketOption,0xFF,0);
		GDCreateItemSend(lpObj->Index,0xEB,0,0,GET_ITEM(8,type),level,0,skill,luck,option,-1,exc,set,0,0,ItemSocketOption,0xFF,0);
		GDCreateItemSend(lpObj->Index,0xEB,0,0,GET_ITEM(9,type),level,0,skill,luck,option,-1,exc,set,0,0,ItemSocketOption,0xFF,0);
		GDCreateItemSend(lpObj->Index,0xEB,0,0,GET_ITEM(10,type),level,0,skill,luck,option,-1,exc,set,0,0,ItemSocketOption,0xFF,0);
		GDCreateItemSend(lpObj->Index,0xEB,0,0,GET_ITEM(11,type),level,0,skill,luck,option,-1,exc,set,0,0,ItemSocketOption,0xFF,0);
		gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(107));
		gLog.Output(LOG_COMMAND,"[CommandMakeSet][%s][%s] - (Type: %d, Level: %d, Skill: %d, Luck: %d, Option: %d, Exc: %d, Set: %d, Sockets: %d)",lpObj->Account,lpObj->Name,type,level,skill,luck,option,exc,set, socket);
	
}
void CCommandManager::CommandDrop(LPOBJ lpObj,char* arg) // OK
{
	if(gServerInfo.m_CommandMakeSwitch == 0)
	{
		return;
	}
	if(gGameMaster.CheckGameMasterLevel(lpObj,gServerInfo.m_CommandMakeGameMasterLevel) == 0)
	{
		gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(106));
		return;
	}
	int section = this->GetNumber(arg,0);
	int type = this->GetNumber(arg,1);
	int level = this->GetNumber(arg,2);
	int skill = this->GetNumber(arg,3);
	int luck = this->GetNumber(arg,4);
	int option = this->GetNumber(arg,5);
	int exc = this->GetNumber(arg,6);
	int set = this->GetNumber(arg,7);
	int socket	= this->GetNumber(arg,8);
	BYTE ItemSocketOption[MAX_SOCKET_OPTION] = {0xFF,0xFF,0xFF,0xFF,0xFF};
	for(int n=0;n < socket && socket <= MAX_SOCKET_OPTION;n++)
	{
			ItemSocketOption[n] = 0xFE;
	}
	GDCreateItemSend(lpObj->Index,lpObj->Map,(BYTE)lpObj->X,(BYTE)lpObj->Y,GET_ITEM(section,type),level,0,skill,luck,option,-1,exc,set,0,0,ItemSocketOption,0xFF,0);
	gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(107));
	gLog.Output(LOG_COMMAND,"[CommandDrop][%s][%s] - (Section: %d, Type: %d, Level: %d, Skill: %d, Luck: %d, Option: %d, Exc: %d, Set: %d, Sockets: %d)",lpObj->Account,lpObj->Name,section,type,level,skill,luck,option,exc,set,socket);
}