Skip to content

Latest commit

 

History

History

clanwar 1v1

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Open (MFeatureDefine.h)
Add this

#define _LADDERGAME

Open (MMatchDBMgr.cpp)
Find

MMatchDBMgr::GetLadderTeamID

Replace

bool MMatchDBMgr::GetLadderTeamID(const int nTeamTableIndex, const int* pnMemberCIDArray, const int nMemberCount, int* pnoutTID)
{
  _STATUS_DB_START;

  if (!CheckOpen()) return false;


  CString strSQL;

  // ÇöÀç´Â 4¸í ÆÀ¹Û¿¡ Áö¿øÇÏÁö ¾Ê´Â´Ù.
  if ((nTeamTableIndex == 4) && (nMemberCount == 4))
  {
    strSQL.Format(g_szDB_GET_LADDER_TEAM4_ID, pnMemberCIDArray[0], pnMemberCIDArray[1], pnMemberCIDArray[2], pnMemberCIDArray[3]);
  }

#ifdef _LADDERGAME
  else if ((nTeamTableIndex == 1) && (nMemberCount == 1))
  {
    // for test
    strSQL.Format(g_szDB_GET_LADDER_TEAM4_ID, pnMemberCIDArray[0], 1, 1, 1);
  }
  else if ((nTeamTableIndex == 2) && (nMemberCount == 2))
  {
    // for test
    strSQL.Format(g_szDB_GET_LADDER_TEAM4_ID, pnMemberCIDArray[0], pnMemberCIDArray[1], 1, 1);
  }
#endif
  else
  {
    return false;
  }

  CODBCRecordset rs(&m_DB);


  try 
  {
    rs.Open(strSQL, CRecordset::forwardOnly, CRecordset::readOnly);
  } 
  catch(CDBException* e)
  {

    ExceptionHandler(strSQL, e);
    *pnoutTID = 0;
    return false;
  }

  if ((rs.IsOpen() == FALSE) || (rs.GetRecordCount() <= 0) || (rs.IsBOF()==TRUE)) 
  {
    *pnoutTID = 0;
    return false;
  }

  char szFieldName[64] = "";

  //#ifdef _DEBUG
  strcpy(szFieldName, "TID4");	// Áö±ÝÀº ¸ðµÎ´Ù TID4·Î ÅëÀÏÁß
  //#else
  //	sprintf(szFieldName, "TID%d", nTeamTableIndex);
  //#endif

  *pnoutTID = rs.Field(szFieldName).AsInt();


  _STATUS_DB_END(42);
  return true;


}

Open (MTeamGameStrategy.cpp)
Find

MClanGameStrategy::MClanGameStrategy

Replace

MClanGameStrategy::MClanGameStrategy()
{
#ifdef _LADDERGAME
  for (int i = MLADDERTYPE_NORMAL_1VS1; i <= MLADDERTYPE_NORMAL_2VS2; i++)
  {
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_MANSION, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_PRISON_II, 5);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_BATTLE_ARENA, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_TOWN, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_DUNGEON, 2);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_PORT, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_CASTLE, 5);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_ISLAND, 5);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_GARDEN, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_FACTORY, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_HIGH_HAVEN, 10);
  }
#endif // _LADDERGAME

  for (int i = MLADDERTYPE_NORMAL_2VS2; i <= MLADDERTYPE_NORMAL_3VS3; i++) //CLANWAR MAPS22
  {
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_MANSION, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_PRISON_II, 5);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_BATTLE_ARENA, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_TOWN, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_DUNGEON, 2);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_PORT, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_CASTLE, 5);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_ISLAND, 5);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_GARDEN, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_FACTORY, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_HIGH_HAVEN, 10);
  }

  for (int i = MLADDERTYPE_NORMAL_4VS4; i < MLADDERTYPE_MAX; i++)
  {
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_MANSION, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_PRISON_II, 5);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_BATTLE_ARENA, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_TOWN, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_DUNGEON, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_PORT, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_ISLAND, 5);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_GARDEN, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_CASTLE, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_FACTORY, 10);
    InsertLadderRandomMap(m_RandomMapVec[i], MMATCH_MAP_HIGH_HAVEN, 10);
  }
}

Find

MClanGameStrategy::GetRandomMap(int nTeamMember)

Replace

int MClanGameStrategy::GetRandomMap(int nTeamMember)
{
  int nVecIndex = 0;
  int nMaxSize = 0;
  switch (nTeamMember)
  {
#ifdef _LADDERGAME
  case 1:
    nVecIndex = MLADDERTYPE_NORMAL_1VS1;
    break;
#endif // _LADDERGAME
  case 2:
    nVecIndex = MLADDERTYPE_NORMAL_2VS2;
    break;
  case 3:
    nVecIndex = MLADDERTYPE_NORMAL_3VS3;
    break;
  case 4:
    nVecIndex = MLADDERTYPE_NORMAL_4VS4;
    break;
  };

  nMaxSize = (int)m_RandomMapVec[nVecIndex].size();

  int nRandomMapIndex = 0;
  int nRandomMap = 0;

  if (nMaxSize != 0) {
    nRandomMapIndex = rand() % nMaxSize;
    nRandomMap = m_RandomMapVec[nVecIndex][nRandomMapIndex];
  }

  return nRandomMap;
}

Open (ZInterfaceListener.cpp)
Find

case MSM_CLAN:

Replace

    case MSM_CLAN:
      {
        bool bRightMember = false;
        for (int i = 0; i < MLADDERTYPE_MAX; i++)
        {
          if ((g_nNeedLadderMemberCount[i]-1) == nCount)
          {
            bRightMember = true;
            break;
          }
        }

        // ÀûÀýÇÑ ¼öÀÇ ÆÀÀ̸é

        if((0<nCount) && (bRightMember))
        {
          ZGetGameClient()->RequestProposal(MPROPOSAL_CLAN_INVITE, ppNames, nCount);
        } 
#ifdef _LADDERGAME
        // if this MChannel - This Name (##############) execute this
        else if (nCount == 0)
        {
          // ÀÚ±â ÀڽŸ¸À϶§
          char szMember[1][MATCHOBJECT_NAME_LENGTH];
          char* ppMember[1];

          ppMember[0] = szMember[0];
          strcpy(szMember[0], ZGetMyInfo()->GetCharName());

          // Balance ¿É¼Ç
          int nBalancedMatching = 0;
          ZIDLResource* pResource = ZGetGameInterface()->GetIDLResource();
          MButton* pButton = (MButton*)pResource->FindWidget("BalancedMatchingCheckBox");
          if ((pButton) && (pButton->GetCheck()))
          {
            nBalancedMatching = 1;
          }
          int nAntiLead = 0;
          MButton* pButton2 = (MButton*)pResource->FindWidget("AntiLeadCheckBox");
          if ((pButton2) && (pButton2->GetCheck()))
          {
            nAntiLead = 1;
          }
          ZPostLadderRequestChallenge(ppMember, 1, nBalancedMatching, nAntiLead);
        }
#else
        else if (nCount == 0)
        {
          // ÀÚ±â ÀڽŸ¸À϶§
          char szMember[1][MATCHOBJECT_NAME_LENGTH];
          char* ppMember[1];

          ppMember[0] = szMember[0];
          strcpy(szMember[0], ZGetMyInfo()->GetCharName());

          // Balance ¿É¼Ç
          int nBalancedMatching = 0;
          ZIDLResource* pResource = ZGetGameInterface()->GetIDLResource();
          MButton* pButton = (MButton*)pResource->FindWidget("BalancedMatchingCheckBox");
          if ((pButton) && (pButton->GetCheck()))
          {
            nBalancedMatching = 1;
          }
          int nAntiLead = 0;
          MButton* pButton2 = (MButton*)pResource->FindWidget("AntiLeadCheckBox");
          if ((pButton2) && (pButton2->GetCheck()))
          {
            nAntiLead = 1;
          }
          ZPostLadderRequestChallenge(ppMember, 1, nBalancedMatching, nAntiLead);
        }
#endif
        // else normal proposal
        else
        {
          ZChatOutput(MCOLOR(ZCOLOR_CHAT_SYSTEM), 
            ZMsg(MSG_LADDER_INVALID_COUNT) );
        }
      }
      break;
    }
  }
END_IMPLEMENT_LISTENER();

img