void IL2Client::game_TargetByName( const wchar_t *name ) { //L2Client *cl = (L2Client *)m_pcl; UserInfo *usr = get_UserInfo(); CharArray *ca = get_WorldChars(); NpcArray *na = get_WorldNpcs(); unsigned int nPassed = 0, i = 0, count = ca->GetCount(); unsigned int objectID = 0; if( _wcsicmp( name, usr->charName ) == 0 ) { objectID = usr->objectID; } if( objectID == 0 ) { // try chars count = ca->GetCount(); nPassed = 0; if( count > 0 ) { ca->Lock(); for( i=0; i<CharArray::CHARARRAY_MAX_CHARS; i++ ) { if( ca->chars_array[i]->isUnused() ) continue; nPassed++; if( _wcsicmp( name, ca->chars_array[i]->charName ) == 0 ) { objectID = ca->chars_array[i]->objectID; break; } if( nPassed >= count ) break; } ca->Unlock(); } } if( objectID == 0 ) { // try NPCs count = na->getCount(); nPassed = 0; if( count > 0 ) { na->Lock(); for( i=0; i<NpcArray::NPCA_MAX_NPCS; i++ ) { if( na->npcs_array[i]->isUnused() ) continue; nPassed++; if( _wcsicmp( name, na->npcs_array[i]->charName ) == 0 ) { objectID = na->npcs_array[i]->objectID; break; } if( nPassed >= count ) break; } na->Unlock(); } } if( objectID == 0 ) return; game_Action( objectID ); }