Leaderboard
Popular Content
Showing content with the highest reputation on 01/05/19 in all areas
-
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
-
1 point
-
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 worse1 point
-
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
-
1 point
-
mob_proto.txt has a column for resist claw, the dump_proto doesn't consider it, or vice versa.1 point
-
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 ~ Ken1 point
-
bool CHARACTER::IsAggressive() const { return IS_SET(m_pointsInstant.dwAIFlag, AIFLAG_AGGRESSIVE); } void CHARACTER::SetAggressive() { SET_BIT(m_pointsInstant.dwAIFlag, AIFLAG_AGGRESSIVE); }0 points
-
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