void GLPVPTyrannyAgent::SetRewardBuff()
{
m_sRewardBuffCount = 0;
typedef std::multimap<DWORD,SNATIVEID> MAP_REWARDBUFF;
typedef MAP_REWARDBUFF::iterator MAP_REWARDBUFF_ITER;
MAP_REWARDBUFF mapREWARDBUFFGET;
mapREWARDBUFFGET.clear();
while ( mapREWARDBUFFGET.size() < 4 )
{
int nRand = RandomNumber ( 0, 9 );
if ( nRand > 9 ) return;
if ( nRand < 0 ) return;
//const SNATIVEID &sID = SNATIVEID(m_sRewardBuff[nRand].wMainID,m_sRewardBuff[nRand].wSubID);
const SNATIVEID &sID = m_sRewardBuff[nRand].sidSkill;
MAP_REWARDBUFF_ITER iter = mapREWARDBUFFGET.find ( sID.dwID );
if ( iter == mapREWARDBUFFGET.end() )
{
PGLSKILL pSkill = GLSkillMan::GetInstance().GetData ( sID );
if ( pSkill )
{
m_nBuffPicked[m_sRewardBuffCount] = nRand;
m_sRewardBuffCount++;
mapREWARDBUFFGET.insert ( std::make_pair ( sID.dwID, sID ) );
}
}
}
//Send the Ducking selected reward buffs to client
GLMSG::SNETPC_TYRANNY_A2C_BUFF_REWARD netmsgbuffreward;
for( int i=0; i<TYRANNY_REWARD_BUFF_NUM; ++i )
{
int nPicked = GetPicked(i);
netmsgbuffreward.sRewardBuff[i] = m_sRewardBuff[nPicked].sidSkill;
}
GLAgentServer::GetInstance().SENDTOALLCLIENT ( &netmsgbuffreward );
GLAgentServer::GetInstance().CONSOLEMSG_WRITE("[Tyranny] Buff Picked: (%d)",m_sRewardBuffCount );
);
CDebugSet::ToFileWithTime( "_PVP_TW.txt", "SetRewardBuff - %d Total Buff Picked", m_sRewardBuffCount );
mapREWARDBUFFGET.clear();
}
int GLPVPTyrannyAgent::GetPicked( int i )
{
return m_nBuffPicked[i];
}