Пример #1
0
int trigger_trap(struct char_data *ch, struct obj_data *i) {
  int adj, fireperc, roll;
  struct char_data *v;

  extern struct dex_app_type dex_app[];

  if (ITEM_TYPE(i) == ITEM_TRAP) {
    if (i->obj_flags.value[TRAP_CHARGES]) {
      adj = GET_TRAP_LEV(i) - get_max_level(ch);
      adj -= dex_app[(int)GET_DEX(ch)].reaction * 5;
      fireperc = 95 + adj;
      roll = number(1, 100);
      if (roll < fireperc) {    /* trap is sprung */
        act("You hear a strange noise...", TRUE, ch, 0, 0, TO_ROOM);
        act("You hear a strange noise...", TRUE, ch, 0, 0, TO_CHAR);
        GET_TRAP_CHARGES(i) -= 1;
        if (IS_SET(GET_TRAP_EFF(i), TRAP_EFF_ROOM)) {
          for (v = real_roomp(ch->in_room)->people; v; v = v->next_in_room) {
            find_trap_damage(v, i);
          }
        }
        else {
          find_trap_damage(ch, i);
        }
        return (TRUE);
      }
    }
  }
  return (FALSE);
}
Пример #2
0
void CPageDocuments::DisplayShips(int index)
{
  CString info;
  m_list.DeleteAllItems();
  DeleteAllColumns();
  m_list.InsertColumn(0 , "船舰名字" , LVCFMT_LEFT , 100);
  m_list.InsertColumn(1 , "建造金属" , LVCFMT_LEFT , 80);
  m_list.InsertColumn(2 , "建造晶体" , LVCFMT_LEFT , 80);
  m_list.InsertColumn(3 , "建造重氢" , LVCFMT_LEFT , 80);
  m_list.InsertColumn(4 , "建造时间" , LVCFMT_LEFT , 80); 
  m_list.InsertColumn(5 , "攻击能力" , LVCFMT_LEFT , 80); 
  m_list.InsertColumn(6 , "运载能力" , LVCFMT_LEFT , 80); 
  m_list.InsertColumn(7 , "飞行速度" , LVCFMT_LEFT , 80); 
  m_list.InsertColumn(8 , "技术需求" , LVCFMT_LEFT , 250);

  for(int i = 0 ; i < BOAT_MAX ; ++i)
  {
    info.Format("%s" , BOATS_NAME[i]);
    m_list.InsertItem(i , info);

   //metal
    info.Format("%d" , BOATS_RESOURCE_NEED_BASE[i][0] );
    m_list.SetItemText(i , 1 , info);

    //crystal
    info.Format("%d" , BOATS_RESOURCE_NEED_BASE[i][1] );
    m_list.SetItemText(i , 2 , info);

    //diplogen
    info.Format("%d" , BOATS_RESOURCE_NEED_BASE[i][2] );
    m_list.SetItemText(i , 3 , info);

    //time
    double t = get_boat_produce_seconds(
                        GetDataPtr()->GetBuildingLevel(FACTORY_BUILDING_BOATYARD), //shipyard level
                        GetDataPtr()->GetBuildingLevel(FACTORY_BUILDING_NANITE),   //nanitefactory level
                        BOATS_RESOURCE_NEED_BASE[i][0] , 
                        BOATS_RESOURCE_NEED_BASE[i][1], 
                        1.0);
    
    HighFrequencyElapsedTimer timer;
    timer.Init(t * 1000);
    m_list.SetItemText(i , 4 , timer.ToCString());

    //attack force
    info.Format("%d" , UINT(SHIP_ATTACK_FORCE_BASE[i] * (1 + 0.1 * GetDataPtr()->GetResearchLevel(RESEARCH_WEAPON))) );
    m_list.SetItemText(i , 5 , info);

    //transfer capacity force    
    info.Format("%d" , SHIP_TRANSFER_CAPACITY[i] );
    m_list.SetItemText(i , 6 , info);

    //speed
    info.Format("%d" , kernel_.GetShipSpeed(ITEM_TYPE(i) , 0));
    m_list.SetItemText(i , 7 , info);

    //tech needed    
    m_list.SetItemText(i , 8 , Boats_Entry(i)->GetTechNeeded());
   }
}
Пример #3
0
int CheckForAnyTrap(struct char_data *ch, struct obj_data *i)
{
    if(DEBUG) dlog("CheckForAnyTrap");
    if((ITEM_TYPE(i) == ITEM_TRAP) && (GET_TRAP_CHARGES(i) > 0))
	   return(TriggerTrap(ch, i));

  return(FALSE);
}
Пример #4
0
int check_for_get_trap(struct char_data *ch, struct obj_data *i) {
  if ((ITEM_TYPE(i) == ITEM_TRAP) &&
      (IS_SET(GET_TRAP_EFF(i), TRAP_EFF_OBJECT)) &&
      (GET_TRAP_CHARGES(i) > 0)) {
    return (trigger_trap(ch, i));
  }
  return (FALSE);
}
Пример #5
0
//-------------------------------------------------------------------------------------------------
int CEconomy::Get_ItemSellPRICE (tagITEM &sITEM, short nSellSkillVALUE)
{
	int iPrice = 0;
	int iItemRate, iPriceRate;

	switch( sITEM.m_cType ) {
		case ITEM_TYPE_FACE_ITEM:  
		case ITEM_TYPE_HELMET	:  
		case ITEM_TYPE_ARMOR	:  
		case ITEM_TYPE_GAUNTLET :  
		case ITEM_TYPE_BOOTS	:  
		case ITEM_TYPE_KNAPSACK :  
		case ITEM_TYPE_WEAPON	:
		case ITEM_TYPE_SUBWPN	:
		case ITEM_TYPE_RIDE_PART:
			// 추가옵션은 보석과 같이
			iPrice = (int) ( 
						(float)ITEM_BASE_PRICE( sITEM.GetTYPE(), sITEM.GetItemNO() ) * 
						(float)( 40 + sITEM.GetGrade() ) * 
						(float)( 200 + sITEM.GetDurability() ) *
						(float)( 200 - Get_WorldRATE() ) * 
						(float)( 1 + nSellSkillVALUE * 0.01f ) / 1000000.f *
						(float)( (4000+sITEM.GetLife()) / 14000.f ) +
						(float)( sITEM.IsAppraisal() * GEMITEM_BASE_PRICE( sITEM.GetOption() ) * 0.2f )
					) ;
			break;

		case ITEM_TYPE_USE		:
		case ITEM_TYPE_NATURAL	:
			if ( IsEssentialGoods( ITEM_TYPE( sITEM.m_cType, sITEM.m_nItemNo ) ) ) {
				iItemRate  = this->Get_ItemRATE( ITEM_RATE_TYPE( sITEM.m_cType, sITEM.m_nItemNo ) );
				iPriceRate = ITEM_PRICE_RATE( sITEM.m_cType, sITEM.m_nItemNo );
				// 생필품.
				// 판매 가격 = ITEM_BASE * { 1000 + (ITEM_RATE - 50) * ITEM_FLUC } * (1 + 판매스킬레벨 * 0.02) * (200- WORLD_RATE) / 200000
				iPrice = (int) (
					ITEM_BASE_PRICE( sITEM.m_cType, sITEM.m_nItemNo) * 
					( 1000 + ( iItemRate-50 ) * iPriceRate ) *
					( 1 + nSellSkillVALUE * 0.01 ) * ( 200 - Get_WorldRATE() ) / 180000.f
					) ;
				break;
			}

		case ITEM_TYPE_JEWEL	:
		case ITEM_TYPE_GEM		:
		case ITEM_TYPE_QUEST	:
			// 2003.08.018 그 밖의 아이템.
			// 판매 가격 = ITEM_BASE * { 1000 + (TOWN_RATE - 50) * ITEM_FLUC } * (1 + 판매스킬레벨 * 0.02) * (200- WORLD_RATE) / 200000
			iPriceRate = ITEM_PRICE_RATE( sITEM.m_cType, sITEM.m_nItemNo );
			iPrice = (int) ( 
					ITEM_BASE_PRICE( sITEM.m_cType, sITEM.m_nItemNo) * 
					( 1000 + ( this->Get_TownRATE() - 50 ) * iPriceRate ) *
					( 1 + nSellSkillVALUE * 0.01 ) * ( 200 - Get_WorldRATE() ) / 180000.f
					) ;
			break;
	}

	return iPrice;
}
Пример #6
0
int CheckForGetTrap(struct char_data *ch, struct obj_data *i)
{
    if(DEBUG) dlog("CheckForGetTrap");
    if ((ITEM_TYPE(i) == ITEM_TRAP) && 
	(IS_SET(GET_TRAP_EFF(i),TRAP_EFF_OBJECT)) &&
	(GET_TRAP_CHARGES(i) > 0)) {
	   return(TriggerTrap(ch, i));  
	 }
    return(FALSE);
}
Пример #7
0
int check_for_move_trap(struct char_data *ch, int dir) {
  struct obj_data *i;

  for (i = real_roomp(ch->in_room)->contents; i; i = i->next_content) {
    if ((ITEM_TYPE(i) == ITEM_TRAP) &&
        (IS_SET(GET_TRAP_EFF(i), TRAP_EFF_MOVE)) && (GET_TRAP_CHARGES(i) > 0))
      if (IS_SET(GET_TRAP_EFF(i), TrapDir[dir]))
        return (trigger_trap(ch, i));
  }
  return (FALSE);
}
Пример #8
0
int check_for_inside_trap(struct char_data *ch, struct obj_data *i) {
  struct obj_data *t;

  for (t = i->contains; t; t = t->next_content) {
    if ((ITEM_TYPE(t) == ITEM_TRAP) &&
        (IS_SET(GET_TRAP_EFF(t), TRAP_EFF_OBJECT)) &&
        (GET_TRAP_CHARGES(t) > 0)) {
      return (trigger_trap(ch, t));
    }
  }
  return (FALSE);
}
Пример #9
0
int CheckForMoveTrap(struct char_data *ch, int dir)
{
  struct obj_data *i;
if(DEBUG) dlog("CheckForMoveTrap");
  for (i = real_roomp(ch->in_room)->contents; i; i = i->next_content) 
  {
    if ((ITEM_TYPE(i) == ITEM_TRAP) && 
	(IS_SET(GET_TRAP_EFF(i),TRAP_EFF_MOVE)) &&
	(GET_TRAP_CHARGES(i) > 0))
        if (IS_SET(GET_TRAP_EFF(i), TrapDir[dir])) 
	   return(TriggerTrap(ch, i));
  }
  return(FALSE);
}
Пример #10
0
int CheckForInsideTrap(struct char_data *ch, struct obj_data *i)
{
  struct obj_data *t;
if(DEBUG) dlog("CheckForInsideTrap");
  for (t = i->contains; t; t = t->next_content) 
  {
    if ((ITEM_TYPE(t) == ITEM_TRAP) && 
	(IS_SET(GET_TRAP_EFF(t),TRAP_EFF_OBJECT)) &&
	(GET_TRAP_CHARGES(t) > 0)) 
	{
	   return(TriggerTrap(ch, t));  
	 }
  }
  return(FALSE);
}
Пример #11
0
//-------------------------------------------------------------------------------------------------
int CEconomy::Get_ItemBuyPRICE (short nItemTYPE, short nItemNO, short nBuySkillVALUE)
{
	int iPrice = 0;
	int iItemRate, iPriceRate;

	switch( nItemTYPE ) {
		case ITEM_TYPE_FACE_ITEM:  
		case ITEM_TYPE_HELMET	:  
		case ITEM_TYPE_ARMOR	:  
		case ITEM_TYPE_GAUNTLET :  
		case ITEM_TYPE_BOOTS	:  
		case ITEM_TYPE_KNAPSACK :  
		case ITEM_TYPE_WEAPON	:
		case ITEM_TYPE_SUBWPN	:
		case ITEM_TYPE_RIDE_PART:
			// 2004. 1. 2 구입 가격 = 
			iPrice = (int)(	ITEM_BASE_PRICE( nItemTYPE, nItemNO ) * ( ITEM_QUALITY( nItemTYPE, nItemNO )+50.f ) * ( 1.f - nBuySkillVALUE * 0.01 ) / 100.f + 0.5f );
			break;

		case ITEM_TYPE_USE		:
		case ITEM_TYPE_NATURAL	:
			if ( IsEssentialGoods( ITEM_TYPE( nItemTYPE, nItemNO ) ) ) {
				// 생필품.
				// 구입 가격 = ITEM_BASE * { 1 + (ITEM_RATE - 50) * ITEM_FLUC / 1000 } * (1 - 구입스킬레벨 * 0.02)
				iItemRate  = this->Get_ItemRATE( ITEM_RATE_TYPE( nItemTYPE, nItemNO ) );
				iPriceRate = ITEM_PRICE_RATE( nItemTYPE, nItemNO );

				iPrice = (int) (
							ITEM_BASE_PRICE( nItemTYPE, nItemNO ) * 
							( 1.f + ( iItemRate - 50.f ) * iPriceRate / 1000.f ) * ( 1.f - nBuySkillVALUE * 0.01f ) + 0.5f );
				break;
			}

		case ITEM_TYPE_JEWEL	:
		case ITEM_TYPE_GEM		:
		case ITEM_TYPE_QUEST	:
			// 2003. 08. 18 구입 가격 = ITEM_BASE * { 1 + (TOWN_RATE - 50) * ITEM_FLUC / 1000 } * (1 - 구입스킬레벨 * 0.02)
			iPriceRate = ITEM_PRICE_RATE( nItemTYPE, nItemNO );
			iPrice = (int) ( 
							ITEM_BASE_PRICE( nItemTYPE, nItemNO ) * 
							( 1.f + ( this->Get_TownRATE() - 50.f ) * iPriceRate / 1000.f ) * ( 1 - nBuySkillVALUE * 0.01f ) + 0.5f
							);
			break;
	}

	return iPrice;
}
Пример #12
0
static int ObjNoise(struct obj_data *obj,struct char_data *ch, int pulse)
{
  int room;

  if (!obj->action_description) return(0);
  if (!ITEM_TYPE(obj,ITEM_AUDIO)) return(0);
  if (((obj->obj_flags.value[0]) && (pulse % obj->obj_flags.value[0])==0) || (!number(0,5))) {
    if (obj->carried_by)
      room = obj->carried_by->in_room;
    else if (obj->equipped_by)
      room = obj->equipped_by->in_room;
    else if (obj->in_room != NOWHERE)
      room = obj->in_room;
    else
      room = RecGetObjRoom(obj);
    MakeNoise(room, obj->action_description, obj->action_description);
    return(1);
  }
  return(0);
}
Пример #13
0
void shopping_sell( const char *arg, struct char_data *ch,
                   struct char_data *keeper,int shop_nr)
{
  char argm[100], buf[MAX_STRING_LENGTH];
  int cost,temp_cost, i;
  struct obj_data *temp1;
  float mult = 0;
  
  if(!(is_ok(keeper,ch,shop_nr)))
    return;

  if(keeper->generic != 0)
     for(i = 0; i <= MAX_TRADE; i++) {
       if(keeper->generic == FAMINE)
          if(shop_index[shop_nr].type[i] == ITEM_FOOD) {
            mult = shop_multiplier; /* we're in a famine, we sell food, so we */
            break;             /* our prices to hell ;-) -DM */ 
          }
       if(keeper->generic == DWARVES_STRIKE)
          if((shop_index[shop_nr].type[i] == ITEM_ARMOR) || (shop_index[shop_nr].type[i] == ITEM_WEAPON)) {
          mult = shop_multiplier;
          break;
       }        
     }
  
  only_argument(arg, argm);
  
  if(!(*argm))        {
    sprintf(buf, "%s What do you want to sell??"
            ,GET_NAME(ch));
    do_tell(keeper,buf,19);
    return;
  }
  
  if (!( temp1 = get_obj_in_list_vis(ch,argm,ch->carrying))) {
    sprintf(buf, shop_index[shop_nr].no_such_item2,GET_NAME(ch));
    do_tell(keeper,buf,19);
    return;
  }
  
  if( IS_OBJ_STAT( temp1, ITEM_NODROP ) && !IS_IMMORTAL( ch ) )
  {
     send_to_char("You can't let go of it, it must be CURSED!\n\r", ch);
     return;
  }

  if (!(trade_with(temp1,shop_nr))||(temp1->obj_flags.cost<1)) {
    sprintf(buf,shop_index[shop_nr].do_not_buy,
            GET_NAME(ch));
    do_tell(keeper,buf,19);
    return;
  }
  
  if( GET_GOLD(keeper)<(int) (temp1->obj_flags.cost*
      shop_index[shop_nr].profit_sell +
      ((chr_apply[ (int)GET_CHR(ch)].reaction*temp1->obj_flags.cost)/100) +
      (mult * temp1->obj_flags.cost)))
  {
    sprintf(buf,shop_index[shop_nr].missing_cash1,GET_NAME(ch));
    do_tell(keeper,buf,19);
    return;
  }
  
  cost = temp1->obj_flags.cost;
  
  if ((ITEM_TYPE(temp1) == ITEM_WAND) ||
      (ITEM_TYPE(temp1) == ITEM_STAFF))
  {
    if (temp1->obj_flags.value[1])
    {
      cost = (int)( cost * ( (float)temp1->obj_flags.value[2] /
                             (float)temp1->obj_flags.value[1] ) );
    }
    else
    {
      cost = 0;
    }
  } 
  else if (ITEM_TYPE(temp1) == ITEM_ARMOR)
  {
    if (temp1->obj_flags.value[1])
    {
      cost = (int)( cost * ( (float)temp1->obj_flags.value[0] /
                             (float)temp1->obj_flags.value[1] ) );
    }
    else
    {
      cost = 0;
    }
  }
  
  temp1->obj_flags.cost = cost;
  
  act("$n sells $p.", FALSE, ch, temp1, 0, TO_ROOM);
  temp_cost = (int) (temp1->obj_flags.cost*shop_index[shop_nr].profit_sell +
             ((chr_apply[ (int)GET_CHR(ch) ].reaction *
             temp1->obj_flags.cost)/100) + (mult * temp1->obj_flags.cost));
  if(temp_cost < 0) temp_cost=0;

  sprintf(buf,shop_index[shop_nr].message_sell,GET_NAME(ch),temp_cost);

/* (int) (temp1->obj_flags.cost*        
                shop_index[shop_nr].profit_sell +
                ((chr_apply[GET_CHR(ch)].reaction*temp1->obj_flags.cost)/100)))
; */
  
  do_tell(keeper,buf,19);
  
  sprintf(buf,"The shopkeeper now has %s.\n\r",
          temp1->short_description);
  send_to_char(buf,ch);
  
  if (GET_GOLD(keeper)< temp_cost) {
 /* (int) (temp1->obj_flags.cost*
              shop_index[shop_nr].profit_sell +
               ((chr_apply[GET_CHR(ch)].reaction*temp1->obj_flags.cost)/100))) {
 */
    sprintf(buf,shop_index[shop_nr].missing_cash1 ,GET_NAME(ch));
    do_tell(keeper,buf,19);
    return;
  }
  
  GET_GOLD(ch) += temp_cost;
    /* (int) (temp1->obj_flags.cost*
              shop_index[shop_nr].profit_sell +
               ((chr_apply[GET_CHR(ch)].reaction*temp1->obj_flags.cost)/100));
              */
  GET_GOLD(keeper) -= temp_cost;
    /* (int) (temp1->obj_flags.cost*
              shop_index[shop_nr].profit_sell +
               ((chr_apply[GET_CHR(ch)].reaction*temp1->obj_flags.cost)/100));
              */
  obj_from_char(temp1);
  if (temp1 == NULL) {
    send_to_char("As far as I am concerned, you are out..\n\r",ch);
    return;
  }
  if ((get_obj_in_list(argm,keeper->carrying)) || 
      (GET_ITEM_TYPE(temp1) == ITEM_TRASH)) {
    extract_obj(temp1);
  } else {
    obj_to_char(temp1,keeper);
  }
  return;
}
Пример #14
0
MakeSound(int pulse)
{
  int room;
  char buffer[128];
  struct obj_data *obj;
  struct char_data *ch;

/*
 *  objects
 */
  
  for (obj = object_list; obj; obj = obj->next) {
    if (ITEM_TYPE(obj) == ITEM_AUDIO) {
      if (((obj->obj_flags.value[0]) && 
	   (pulse % obj->obj_flags.value[0])==0) ||
	  (!number(0,5))) {
	if (obj->carried_by) {
	  room = obj->carried_by->in_room;
	} else if (obj->equipped_by) {
	  room = obj->equipped_by->in_room;
	} else if (obj->in_room != NOWHERE) {
	  room = obj->in_room;
	} else {
	  room = RecGetObjRoom(obj);
	}
	/*
	 *  broadcast to room
	 */
	
	if (obj->action_description) {	  
	  MakeNoise(room, obj->action_description, obj->action_description);
	}
      }
    }
  }

/*
 *   mobiles
 */

  for (ch = character_list; ch; ch = ch->next) {
    if (IS_NPC(ch) && (ch->player.sounds) && (number(0,5)==0)) {
      if (ch->specials.default_pos > POSITION_SLEEPING) {
	if (GET_POS(ch) > POSITION_SLEEPING) {
	  /*
	   *  Make the sound;
	   */
	  MakeNoise(ch->in_room, ch->player.sounds, ch->player.distant_snds);
	} else if (GET_POS(ch) == POSITION_SLEEPING) {
	  /*
	   * snore 
	   */	 
	  sprintf(buffer, "%s snores loudly.\n\r", ch->player.short_descr);
	  MakeNoise(ch->in_room, buffer, "You hear a loud snore nearby.\n\r");
	}
      } else if (GET_POS(ch) == ch->specials.default_pos) {
	/*
	 * Make the sound
	 */       
	MakeNoise(ch->in_room, ch->player.sounds, ch->player.distant_snds);
      }
    }
  }
}
Пример #15
0
int check_for_any_trap(struct char_data *ch, struct obj_data *i) {
  if ((ITEM_TYPE(i) == ITEM_TRAP) && (GET_TRAP_CHARGES(i) > 0))
    return (trigger_trap(ch, i));

  return (FALSE);
}
Пример #16
0
//--------------------------------------------------------------------------------------------------------/
/// Pat탑승 여부에 따른 스킬 활성화 / 비활성화 셋팅 : 2005/7/29 - nAvy
///
//--------------------------------------------------------------------------------------------------------/
void CSkillSlot::SetActiveSkillEnableByRideState( bool ride )
{
	_RPT0( _CRT_WARN," CSkillSlot::SetActiveSkillEnableByRideState()\n ");
	///배틀 카트가 적용되지 않는 버젼에서는 컬럼수가 틀리다.

#if defined(_GBC)
	if( ride )///pat 스킬만 Enable 나머지는 Disable
	{
		if( false == g_pAVATAR->m_Inventory.m_ItemRIDE[0].IsEmpty() )
		{
			int item_type = ITEM_TYPE( g_pAVATAR->m_Inventory.m_ItemRIDE[0].GetTYPE(), g_pAVATAR->m_Inventory.m_ItemRIDE[0].GetItemNO() );
			switch( item_type )
			{
			case TUNING_PART_BODY_CART:///카트 본체
				for( int index = MAX_JOB_SKILL; index < MAX_JOB_SKILL + MAX_PATS_SKILL; ++index )
				{
					if( m_SkillSlot[ index ] != NULL )
					{
						//홍근 공통 스킬 체크 추가.
						if( SKILL_ATTRIBUTE_CART & SKILL_ATTRIBUTE( m_SkillSlot[ index ]->GetSkillIndex() ) )
						//if( SKILL_ATTRIBUTE_CART == SKILL_ATTRIBUTE( m_SkillSlot[ index ]->GetSkillIndex() ) )
							m_SkillSlot[ index ]->SetEnable();
						else
							m_SkillSlot[ index ]->SetDisable();
					}
				}
				break;
			case TUNING_PART_BODY_CASTLEGEAR:///캐슬기어 본체
				for( int index = MAX_JOB_SKILL; index < MAX_JOB_SKILL + MAX_PATS_SKILL; ++index )
				{
					if( m_SkillSlot[ index ] != NULL )
					{
						//홍근 공통 스킬 체크 추가.
						if( SKILL_ATTRIBUTE_CASTLEGEAR & SKILL_ATTRIBUTE( m_SkillSlot[ index ]->GetSkillIndex() ) )
						//if( SKILL_ATTRIBUTE_CASTLEGEAR == SKILL_ATTRIBUTE( m_SkillSlot[ index ]->GetSkillIndex() ) )
							m_SkillSlot[ index ]->SetEnable();
						else
							m_SkillSlot[ index ]->SetDisable();
					}
				}
				break;
			default:
				_RPTF0( _CRT_ASSERT,"Invalid Type");
				break;
			}
		}
	}
	else///아바타 상태 스킬만 Enable 나머지는 Disable
	{
		for( int index = MAX_JOB_SKILL; index < MAX_JOB_SKILL + MAX_PATS_SKILL; ++index )
		{
			if( m_SkillSlot[ index ] != NULL )
			{
				//홍근 공통 스킬 체크 추가.
				//if( SKILL_ATTRIBUTE_AVATAR == SKILL_ATTRIBUTE( m_SkillSlot[ index ]->GetSkillIndex() ) )
				if( SKILL_ATTRIBUTE_AVATAR & SKILL_ATTRIBUTE( m_SkillSlot[ index ]->GetSkillIndex() ) )
					m_SkillSlot[ index ]->SetEnable();
				else
					m_SkillSlot[ index ]->SetDisable();
			}
		}
	}
#endif

}