Jump to content

Max 3 bonuses on an item


Recommended Posts

Hi. I want to add max 3 bonuses on some items.

I found in char_item.cpp this function:

case USE_ADD_ATTRIBUTE :

[]...[]

if (item2->GetAttributeCount() < 4) {
  // 연재가 특수처리
  // 절대로 연재가 추가 안될거라 하여 하드 코딩함.
  if (item->GetVnum() == 71152 || item->GetVnum() == 76024)
  {
    if ((item2->GetType() == ITEM_WEAPON)
        || (item2->GetType() == ITEM_ARMOR && item2->GetSubType() == ARMOR_BODY))
    {
      bool bCanUse = true;
      for (int i = 0; i < ITEM_LIMIT_MAX_NUM; ++i)
      {
        if (item2->GetLimitType(i) == LIMIT_LEVEL && item2->GetLimitValue(i) > 40)
        {
          bCanUse = false;
          break;
        }
      }
      if (false == bCanUse)
      {
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("적용 레벨보다 높아 사용이 불가능합니다."));
        break;
      }
    }
    else
    {
      ChatPacket(CHAT_TYPE_INFO, LC_TEXT("무기와 갑옷에만 사용 가능합니다."));
      break;
    }
  }
  char buf[21];
  snprintf(buf, sizeof(buf), "%u", item2->GetID());

  item2->AddAttribute();
  ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성 추가에 성공하였습니다."));

  int iAddedIdx = item2->GetAttributeCount() - 1;
  LogManager::instance().ItemLog(
    GetPlayerID(),
    item2->GetAttributeType(iAddedIdx),
    item2->GetAttributeValue(iAddedIdx),
    item->GetID(),
    "ADD_ATTRIBUTE2_SUCCESS",
    buf,
    GetDesc()->GetHostName(),
    item->GetOriginalVnum());

  item->SetCount(item->GetCount() - 1);
} else {
  ChatPacket(CHAT_TYPE_INFO, LC_TEXT("더이상 이 아이템을 이용하여 속성을 추가할 수 없습니다."));
}

I saw in the funcions above the line

if (item2->GetAttributeCount() < 4) {

so i adapted a funcions which looks like this

 

 if (item2->GetVnum() == 19060) {
    if (item2->GetAttributeCount() < 3) {
      // 연재가 특수처리
      // 절대로 연재가 추가 안될거라 하여 하드 코딩함.
      char buf[21];
      snprintf(buf, sizeof(buf), "%u", item2->GetID());

      item2->AddAttribute();
      ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성 추가에 성공하였습니다."));

      int iAddedIdx = item2->GetAttributeCount() - 1;
      LogManager::instance().ItemLog(
        GetPlayerID(),
        item2->GetAttributeType(iAddedIdx),
        item2->GetAttributeValue(iAddedIdx),
        item->GetID(),
        "ADD_ATTRIBUTE2_SUCCESS",
        buf,
        GetDesc()->GetHostName(),
        item->GetOriginalVnum());

      item->SetCount(item->GetCount() - 1);
    } else {
      ChatPacket(CHAT_TYPE_INFO, LC_TEXT("더이상 이 아이템을 이용하여 속성을 추가할 수 없습니다."));
    }
  } else {
    if (item2->GetAttributeCount() < 4) {
      // 연재가 특수처리
      // 절대로 연재가 추가 안될거라 하여 하드 코딩함.
      if (item->GetVnum() == 71152 || item->GetVnum() == 76024)
      {
        if ((item2->GetType() == ITEM_WEAPON)
            || (item2->GetType() == ITEM_ARMOR && item2->GetSubType() == ARMOR_BODY))
        {
          bool bCanUse = true;
          for (int i = 0; i < ITEM_LIMIT_MAX_NUM; ++i)
          {
            if (item2->GetLimitType(i) == LIMIT_LEVEL && item2->GetLimitValue(i) > 40)
            {
              bCanUse = false;
              break;
            }
          }
          if (false == bCanUse)
          {
            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("적용 레벨보다 높아 사용이 불가능합니다."));
            break;
          }
        }
        else
        {
          ChatPacket(CHAT_TYPE_INFO, LC_TEXT("무기와 갑옷에만 사용 가능합니다."));
          break;
        }
      }
      char buf[21];
      snprintf(buf, sizeof(buf), "%u", item2->GetID());

      item2->AddAttribute();
      ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성 추가에 성공하였습니다."));

      int iAddedIdx = item2->GetAttributeCount() - 1;
      LogManager::instance().ItemLog(
        GetPlayerID(),
        item2->GetAttributeType(iAddedIdx),
        item2->GetAttributeValue(iAddedIdx),
        item->GetID(),
        "ADD_ATTRIBUTE2_SUCCESS",
        buf,
        GetDesc()->GetHostName(),
        item->GetOriginalVnum());

      item->SetCount(item->GetCount() - 1);
    } else {
      ChatPacket(CHAT_TYPE_INFO, LC_TEXT("더이상 이 아이템을 이용하여 속성을 추가할 수 없습니다."));
    }
  }

Soo, now when i add bonuses on the item with vnum 19060, should be added only 3 bonuses.

The only problem i have is that this just dont work.

Did someone have any ideas?

Thanks and sorry for my bad english.
 

Link to comment
Share on other sites

  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.