Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 01/05/19 in all areas

  1. M2 Download Center Download Here ( Internal ) hello guys i have a small farmmap for you the size of the map is 2x2. Its nothing special but i hope you enjoy it Download: pw: reco [Hidden Content]
    3 points
  2. Screen and Video preview
    1 point
  3. last time my pf script blocked over 1200 ips from that guy. So if the ips were blocked, disabling the mitigation should have fixed the problem ? or could make it worse
    1 point
  4. DROP TABLE IF EXISTS `bootlog`; CREATE TABLE `bootlog` ( `time` datetime DEFAULT NULL, `hostname` varchar(255) DEFAULT NULL, `channel` tinyint(3) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED; Change ENGINE and CHARSET for your server.
    1 point
  5. Here man [Hidden Content] Best Regards Viper
    1 point
  6. mob_proto.txt has a column for resist claw, the dump_proto doesn't consider it, or vice versa.
    1 point
  7. At first, LoadMonsterAreInfo's first error is coming from regen.txt. If you don't have this file in your pack. System will give this error. As galet said, you're just hidding that. char c_szFileName[256]; sprintf(c_szFileName, "%s\\regen.txt", GetMapDataDirectory().c_str()); LPCVOID pModelData; CMappedFile File; if (!CEterPackManager::Instance().Get(File, c_szFileName, &pModelData)) { //TraceError(" CMapOutdoorAccessor::LoadMonsterAreaInfo Load File %s ERROR", c_szFileName); return false; } The code is already explain itself. If you want to fix it, here is a fix for you. bool CMapOutdoor::LoadMonsterAreaInfo() { RemoveAllMonsterInfo(); // Remove All Monster Info char szFileName[256]; _snprintf(szFileName, sizeof(szFileName), "%s\\monsterareainfo.txt", GetMapDataDirectory().c_str()); LPCVOID pModelData; CMappedFile File; if (!CEterPackManager::Instance().Get(File, szFileName, &pModelData)) return false; CMemoryTextFileLoader textFileLoader; CTokenVector stTokenVector; textFileLoader.Bind(File.size(), pModelData); for (DWORD i = 0; i < textFileLoader.GetLineCount(); ++i) { if (!textFileLoader.SplitLine(i, &stTokenVector)) continue; stl_lowers(stTokenVector[0]); // Start to read MonsterAreaInfo.txt if (0 == stTokenVector[0].compare("m") || 0 == stTokenVector[0].compare("g")) { if (stTokenVector.size() < 11) { TraceError("CMapOutdoorAccessor::LoadMonsterAreaInfo Get MonsterInfo File Format ERROR! continue...."); continue; } CMonsterAreaInfo::EMonsterAreaInfoType eMonsterAreaInfoType; if (0 == stTokenVector[0].compare("m")) { eMonsterAreaInfoType = CMonsterAreaInfo::MONSTERAREAINFOTYPE_MONSTER; } else if (0 == stTokenVector[0].compare("g")) { eMonsterAreaInfoType = CMonsterAreaInfo::MONSTERAREAINFOTYPE_GROUP; } else { TraceError("CMapOutdoorAccessor::LoadMonsterAreaInfo Get MonsterInfo Data ERROR! continue...."); continue; } const std::string & c_rstrOriginX = stTokenVector[1].c_str(); const std::string & c_rstrOriginY = stTokenVector[2].c_str(); const std::string & c_rstrSizeX = stTokenVector[3].c_str(); const std::string & c_rstrSizeY = stTokenVector[4].c_str(); const std::string & c_rstrZ = stTokenVector[5].c_str(); const std::string & c_rstrDir = stTokenVector[6].c_str(); const std::string & c_rstrTime = stTokenVector[7].c_str(); const std::string & c_rstrPercent = stTokenVector[8].c_str(); const std::string & c_rstrCount = stTokenVector[9].c_str(); const std::string & c_rstrVID = stTokenVector[10].c_str(); long lOriginX, lOriginY, lSizeX, lSizeY, lZ, lTime, lPercent; CMonsterAreaInfo::EMonsterDir eMonsterDir; DWORD dwMonsterCount; DWORD dwMonsterVID; lOriginX = atol(c_rstrOriginX.c_str()); lOriginY = atol(c_rstrOriginY.c_str()); lSizeX = atol(c_rstrSizeX.c_str()); lSizeY = atol(c_rstrSizeY.c_str()); lZ = atol(c_rstrZ.c_str()); eMonsterDir = (CMonsterAreaInfo::EMonsterDir) atoi(c_rstrDir.c_str()); lTime = atol(c_rstrTime.c_str()); lPercent = atol(c_rstrPercent.c_str()); dwMonsterCount = (DWORD) atoi(c_rstrCount.c_str()); dwMonsterVID = (DWORD) atoi(c_rstrVID.c_str()); CMonsterAreaInfo * pMonsterAreaInfo = AddMonsterAreaInfo(lOriginX, lOriginY, lSizeX, lSizeY); pMonsterAreaInfo->SetMonsterAreaInfoType(eMonsterAreaInfoType); if (CMonsterAreaInfo::MONSTERAREAINFOTYPE_MONSTER == eMonsterAreaInfoType) pMonsterAreaInfo->SetMonsterVID(dwMonsterVID); else if (CMonsterAreaInfo::MONSTERAREAINFOTYPE_GROUP == eMonsterAreaInfoType) pMonsterAreaInfo->SetMonsterGroupID(dwMonsterVID); pMonsterAreaInfo->SetMonsterCount(dwMonsterCount); pMonsterAreaInfo->SetMonsterDirection(eMonsterDir); } } return true; } The system cannot read the actual file. File name is MonsterAreaInfo.txt but system is trying to read regen.txt. If you want, you can change monsterareainfo.txt with regen.txt - result will be same. Kind Regards ~ Ken
    1 point
  8. bool CHARACTER::IsAggressive() const { return IS_SET(m_pointsInstant.dwAIFlag, AIFLAG_AGGRESSIVE); } void CHARACTER::SetAggressive() { SET_BIT(m_pointsInstant.dwAIFlag, AIFLAG_AGGRESSIVE); }
    0 points
  9. So if I did something like this in questlua_pc.cpp->int pc_give_or_drop_item(lua_State* L) LogManager::instance().QuestRewardLog(pPC->GetCurrentQuestName().c_str(), ch->GetPlayerID(), ch->GetLevel(), dwVnum, icount); if (dwVnum->IsStackable() && !IS_SET(dwVnum->GetAntiFlag(), ITEM_ANTIFLAG_STACK)) { BYTE bCount = dwVnum->GetCount(); for (int i = 0; i < INVENTORY_MAX_NUM; ++i) { LPITEM item2 = ch->GetInventoryItem(i); if (!item2) continue; if (item2->GetVnum() == item->GetVnum()) { int j; for (j = 0; j < ITEM_SOCKET_MAX_NUM; ++j) if (item2->GetSocket(j) != dwVnum->GetSocket(j)) break; if (j != ITEM_SOCKET_MAX_NUM) continue; BYTE bCount2 = std::min(200 - item2->GetCount(), bCount); bCount -= bCount2; item2->SetCount(item2->GetCount() + bCount2); if (bCount == 0) { LPITEM item = ch->AutoGiveItem(dwVnum, icount); } } } would that work or I'm missing something?
    0 points
×
×
  • 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.