void HkLoadStringDLLs() { HkUnloadStringDLLs(); HINSTANCE hDLL = LoadLibraryEx("resources.dll", NULL, LOAD_LIBRARY_AS_DATAFILE); //typically resources.dll if(hDLL) vDLLs.push_back(hDLL); INI_Reader ini; if (ini.open("freelancer.ini", false)) { while (ini.read_header()) { if (ini.is_header("Resources")) { while (ini.read_value()) { if (ini.is_value("DLL")) { hDLL = LoadLibraryEx(ini.get_value_string(0), NULL, LOAD_LIBRARY_AS_DATAFILE); if (hDLL) vDLLs.push_back(hDLL); } } } } ini.close(); } }
void AP::LoadSettings() { // The path to the configuration file. char szCurDir[MAX_PATH]; GetCurrentDirectory(sizeof(szCurDir), szCurDir); string scPluginCfgFile = string(szCurDir) + "\\flhook_plugins\\alley_permissions.cfg"; INI_Reader ini; if (ini.open(scPluginCfgFile.c_str(), false)) { while (ini.read_header()) { if (ini.is_header("angels")) { while (ini.read_value()) { if (ini.is_value("permission")) { angels.push_back(stows(ini.get_value_string())); } } } else if (ini.is_header("event")) { while (ini.read_value()) { if (ini.is_value("permission")) { events.push_back(stows(ini.get_value_string())); } } } else if (ini.is_header("bastillebase")) { while (ini.read_value()) { if (ini.is_value("base")) { uint base = CreateID(ini.get_value_string()); bastillebase[base] = base; } } } } ini.close(); } }
void LoadSettings(const string &scPluginCfgFile) { set_iRenameCost = IniGetI(scPluginCfgFile, "Rename", "RenameCost", 5000000); set_iRenameTimeLimit = IniGetI(scPluginCfgFile, "Rename", "RenameTimeLimit", 3600); set_iMoveCost = IniGetI(scPluginCfgFile, "Rename", "MoveCost", 5000000); set_bCharnameTags = IniGetB(scPluginCfgFile, "Rename", "CharnameTag", false); set_bAsciiCharnameOnly = IniGetB(scPluginCfgFile, "Rename", "AsciiCharnameOnly", true); set_iMakeTagCost = IniGetI(scPluginCfgFile, "Rename", "MakeTagCost", 50000000); char szDataPath[MAX_PATH]; GetUserDataPath(szDataPath); string scPath = string(szDataPath) + "\\Accts\\MultiPlayer\\tags.ini"; INI_Reader ini; if (ini.open(scPath.c_str(), false)) { while (ini.read_header()) { if (ini.is_header("faction")) { wstring tag; while (ini.read_value()) { if (ini.is_value("tag")) { ini_get_wstring(ini, tag); mapTagToPassword[tag].tag = tag; } else if (ini.is_value("master_password")) { wstring pass; ini_get_wstring(ini, pass); mapTagToPassword[tag].master_password = pass; } else if (ini.is_value("rename_password")) { wstring pass; ini_get_wstring(ini, pass); mapTagToPassword[tag].rename_password = pass; } else if (ini.is_value("last_access")) { mapTagToPassword[tag].last_access = ini.get_value_int(0); } else if (ini.is_value("description")) { wstring description; ini_get_wstring(ini, description); mapTagToPassword[tag].description = description; } } } } ini.close(); } }
void LoadSettings() { returncode = DEFAULT_RETURNCODE; string File_FLHook = "..\\exe\\flhook_plugins\\changesys.cfg"; int iLoaded = 0; INI_Reader ini; if (ini.open(File_FLHook.c_str(), false)) { while (ini.read_header()) { if (ini.is_header("config")) { while (ini.read_value()) { if (ini.is_value("enabled")) { bPluginEnabled = ini.get_value_bool(0); } } } if (ini.is_header("AllowedSystems")) { while (ini.read_value()) { if (ini.is_value("sys")) { bPluginAllowedSystems.push_back(ini.get_value_string(0)); } if (ini.is_value("desc")) { bPluginAllowedSystemsFriendly = ini.get_value_string(); } } } } ini.close(); } ConPrint(L"ChangeSys: Loaded\n", iLoaded); }
/** Clean up old bounties **/ void CleanUpBounties() { conDebug(L"attempting to clean up bounties"); string File_FLHook_bounties = "..\\exe\\flhook_plugins\\bountytrackerbounties.cfg"; INI_Reader ini; if (ini.open(File_FLHook_bounties.c_str(), false)) { while (ini.read_header()) { if (ini.is_header("bounty")) { while (ini.read_value()) { if (ini.is_value("hit")) { wstring wscTargetName = stows(ini.get_value_string(0)); //if bounty has expired if ((uint)time(0) - stoi(mapBountyTargets[wscTargetName].issueTime) > iBountyAge) { conDebug(L"removing " + wscTargetName); //find bounty BountyTargetInfo BTIc = mapBountyTargets[wscTargetName]; //refund remaining credits to issuer HkAddCash(stows(BTIc.issuer), (stoi(BTIc.Cash) * stoi(BTIc.xTimes)));//issuer needs to be online(?) //notify issuer their bounty has been refunded //delete bounty deleteBountyCfg(BTIc); } //if target has changed name CAccount *caTargetAcc = HkGetAccountByCharname(wscTargetName); int iTargetAcc = stoi(HkGetAccountID(caTargetAcc)); if (iTargetAcc == -1) { //find bounty BountyTargetInfo BTIc = mapBountyTargets[wscTargetName]; //refund remaining credits to issuer HkAddCash(stows(BTIc.issuer), (stoi(BTIc.Cash) * stoi(BTIc.xTimes)));//issuer needs to be online(?) //notify issuer their bounty has been refunded //delete bounty deleteBountyCfg(BTIc); } } } } } ini.close(); } }
/// Read an ini file for nicknames and save the associated hashcode static void ReadIniNicknameFile(const string &filePath) { INI_Reader ini; if (ini.open(filePath.c_str(), false)) { while (ini.read_header()) { while (ini.read_value()) { if (ini.is_value("nickname")) { uint hash = CreateID(Trim(ToLower(ini.get_value_string())).c_str()); mapHashToNickname[hash] = ini.get_value_string(); } } } ini.close(); } }
void LoadSettings() { // The path to the configuration file. char szCurDir[MAX_PATH]; GetCurrentDirectory(sizeof(szCurDir), szCurDir); string scPluginCfgFile = string(szCurDir) + "\\flhook_plugins\\event.cfg"; INI_Reader ini; set_mapCargoMissions.clear(); set_mapNpcMissions.clear(); if (ini.open(scPluginCfgFile.c_str(), false)) { while (ini.read_header()) { if (ini.is_header("General")) { while (ini.read_value()) { if (ini.is_value("debug")) { set_iPluginDebug = ini.get_value_int(0); } else if (ini.is_value("cargo")) { CARGO_MISSION mis; mis.nickname = ini.get_value_string(0); mis.base = CreateID(ini.get_value_string(1)); mis.item = CreateID(ini.get_value_string(2)); mis.required_amount = ini.get_value_int(3); set_mapCargoMissions.insert(multimap<uint, CARGO_MISSION>::value_type(mis.base, mis)); } else if (ini.is_value("npc")) { NPC_MISSION mis; mis.nickname = ini.get_value_string(0); mis.system = CreateID(ini.get_value_string(1)); mis.sector = ini.get_value_string(2); pub::Reputation::GetReputationGroup(mis.reputation, ini.get_value_string(3)); mis.required_amount = ini.get_value_int(4); set_mapNpcMissions.insert(multimap<uint, NPC_MISSION>::value_type(mis.reputation, mis)); } } } ini.close(); } if (set_iPluginDebug&1) { ConPrint(L"CargoMissionSettings loaded [%d]\n",set_mapCargoMissions.size()); ConPrint(L"NpcMissionSettings loaded [%d]\n",set_mapNpcMissions.size()); } ini.close(); } // Read the last saved event status char szDataPath[MAX_PATH]; GetUserDataPath(szDataPath); string scStatsPath = string(szDataPath) + "\\Accts\\MultiPlayer\\event_stats.txt"; if (ini.open(scStatsPath.c_str(), false)) { while (ini.read_header()) { if (ini.is_header("Missions")) { while (ini.read_value()) { if (ini.is_value("cargo")) { string nickname = ini.get_value_string(0); int curr_amount = ini.get_value_int(2); for (multimap<uint, CARGO_MISSION>::iterator i = set_mapCargoMissions.begin(); i != set_mapCargoMissions.end(); ++i) { if (i->second.nickname == nickname) { i->second.curr_amount = curr_amount; } } } else if (ini.is_value("npc")) { NPC_MISSION mis; string nickname = ini.get_value_string(0); int curr_amount = ini.get_value_int(2); for (multimap<uint, NPC_MISSION>::iterator i = set_mapNpcMissions.begin(); i != set_mapNpcMissions.end(); ++i) { if (i->second.nickname == nickname) { i->second.curr_amount = curr_amount; } } } } } } ini.close(); } }
void LoadSettings() { returncode = DEFAULT_RETURNCODE; string File_FLHook = "..\\exe\\flhook_plugins\\bountytracker.cfg"; string File_FLHook_bounties = "..\\exe\\flhook_plugins\\bountytrackerbounties.cfg"; int iLoaded = 0; INI_Reader ini; if (ini.open(File_FLHook.c_str(), false)) { while (ini.read_header()) { if (ini.is_header("config")) { while (ini.read_value()) { if (ini.is_value("enabled")) { bPluginEnabled = ini.get_value_bool(0); } if (ini.is_value("CleanInterval")) { iCleanInterval = ini.get_value_int(0); conDebug(L"cleaning interval set to " + stows(itos(iCleanInterval))); } if (ini.is_value("BountyAge")) { iBountyAge = ini.get_value_int(0); conDebug(L"bounty age set to " + stows(itos(iBountyAge))); } } } }ini.close(); } if (ini.open(File_FLHook_bounties.c_str(), false)) { while (ini.read_header()) { if (ini.is_header("bounty")) { while (ini.read_value()) { if (ini.is_value("hit")) { string setTargetName = ini.get_value_string(0); wstring theTargetName = ToLower(stows(setTargetName)); BTI.Char = ToLower(ini.get_value_string(0)); BTI.Cash = ini.get_value_string(1); BTI.xTimes = ini.get_value_string(2); BTI.issuer = ToLower(ini.get_value_string(3)); BTI.active = ini.get_value_bool(4); BTI.lastIssuer = ToLower(ini.get_value_string(5)); BTI.lastTime = ini.get_value_string(6); BTI.issueTime = ini.get_value_string(7); mapBountyTargets[theTargetName] = BTI; ++iLoaded; } } } } ini.close(); } ConPrint(L"BOUNTYTRACKER: Loaded %u Bounties\n", iLoaded); }
bool loadModInfo(string scPluginCfgFile) { INI_Reader ini; string key; wstring wsKey, wsVal; if (!ini.open(scPluginCfgFile.c_str(), false)) { return false; } try { while (ini.read_header()) { if (ini.is_header("Base")) // Base Info { DataItem::BaseData base; while (ini.read_value()) { if (ini.is_value("Nickname")) { base.setNickname(stows(ini.get_value_string())); } else if (ini.is_value("Name")) { base.setName(stows(ini.get_value_string())); } else if (ini.is_value("System")) { base.setSystem(stows(ini.get_value_string())); } else if (ini.is_value("Faction")) { base.setFaction(stows(ini.get_value_string())); } } Data::addBase(base); } else if (ini.is_header("System")) // System Info { DataItem::SystemData system; while (ini.read_value()) { if (ini.is_value("Nickname")) { system.setNickname(stows(ini.get_value_string())); } else if (ini.is_value("Name")) { system.setName(stows(ini.get_value_string())); } else if (ini.is_value("Faction")) { system.setFaction(stows(ini.get_value_string())); } else if (ini.is_value("Territory")) { system.setTerritory(stows(ini.get_value_string())); } } Data::addSystem(system); } else if (ini.is_header("Ship")) // Ship Info { DataItem::ShipData ship; while (ini.read_value()) { if (ini.is_value("Nickname")) { ship.setNickname(stows(ini.get_value_string())); } else if (ini.is_value("Name")) { ship.setName(stows(ini.get_value_string())); } else if (ini.is_value("Type")) { ship.setType(ini.get_value_string()); } } Data::addShip(ship); } else if (ini.is_header("Faction")) // Faction Info { DataItem::FactionData faction; while (ini.read_value()) { if (ini.is_value("Nickname")) { faction.setNickname(stows(ini.get_value_string())); } else if (ini.is_value("Name")) { faction.setName(stows(ini.get_value_string())); } else if (ini.is_value("Short")) { faction.setShort(stows(ini.get_value_string())); } } Data::addFaction(faction); } else if (ini.is_header("Goods")) // Goods Info { DataItem::GoodsData goods; while (ini.read_value()) { if (ini.is_value("Nickname")) { goods.setNickname(stows(ini.get_value_string())); } else if (ini.is_value("Name")) { goods.setName(stows(ini.get_value_string())); } } Data::addGoods(goods); } } } catch (Exception::NickNameNotFound &e) { Print::Error(L"Can't load MOD data with error: " + e.message() + L".", L""); return false; } catch (Exception::RedeclaredNickname &e) { Print::Error(L"Can't load MOD data with error: " + e.message() + L".", L""); return false; } catch (exception &e) { string errorMessage = e.what(); Print::Error(L"Can't load MOD setting with error: " + wstring(errorMessage.begin(), errorMessage.end()) + L".", L""); return false; } ini.close(); return true; }
/** Parse the specified ini file (usually in the data/solar/asteriods) and retrieve the lootable zone details. */ void ReadLootableZone(zone_map_t &set_mmapZones, const string &systemNick, const string &defaultZoneNick, const string &file) { string path="..\\data\\"; path += file; INI_Reader ini; if (ini.open(path.c_str(), false)) { while (ini.read_header()) { if (ini.is_header("LootableZone")) { string zoneNick=defaultZoneNick; string crateNick=""; string lootNick=""; int iMinLoot = 0; int iMaxLoot = 0; uint iLootDifficulty = 0; while (ini.read_value()) { if (ini.is_value("zone")) { zoneNick=ToLower(ini.get_value_string()); } else if (ini.is_value("dynamic_loot_container")) { crateNick=ToLower(ini.get_value_string()); } else if (ini.is_value("dynamic_loot_commodity")) { lootNick=ToLower(ini.get_value_string()); } else if (ini.is_value("dynamic_loot_count")) { iMinLoot=ini.get_value_int(0); iMaxLoot=ini.get_value_int(1); } else if (ini.is_value("dynamic_loot_difficulty")) { iLootDifficulty=ini.get_value_int(0); } } LOOTABLE_ZONE lz; lz.systemID = CreateID(systemNick.c_str()); lz.zoneNick = zoneNick; lz.lootNick = lootNick; lz.iLootID = CreateID(lootNick.c_str()); lz.iCrateID = CreateID(crateNick.c_str()); lz.iMinLoot = iMinLoot; lz.iMaxLoot = iMaxLoot; lz.iLootDifficulty = iLootDifficulty; lz.pos.x = lz.pos.y = lz.pos.z = 0; lz.size.x = lz.size.y = lz.size.z = 0; bool exists = false; for (zone_map_iter_t i=set_mmapZones.begin(); i!=set_mmapZones.end(); i++) { if (i->second.zoneNick==zoneNick) { exists = true; break; } } if (!exists) set_mmapZones.insert(zone_map_pair_t(lz.systemID,lz)); } } ini.close(); } }
/** Read the zone size/rotation and position information out of the specified file and calcuate the lootable zone transformation matrix */ void ReadSystemZones(zone_map_t &set_mmapZones, const string &systemNick, const string &file) { string path="..\\data\\universe\\"; path += file; INI_Reader ini; if (ini.open(path.c_str(), false)) { while (ini.read_header()) { if (ini.is_header("zone")) { string zoneNick=""; Vector size={0,0,0}; Vector pos={0,0,0}; Vector rotation={0,0,0}; int idsName = 0; string idsNameTxt = ""; int idsInfo = 0; string idsInfoTxt = ""; while (ini.read_value()) { if (ini.is_value("nickname")) { zoneNick=ToLower(ini.get_value_string()); } else if (ini.is_value("pos")) { pos.x = ini.get_value_float(0); pos.y = ini.get_value_float(1); pos.z = ini.get_value_float(2); } else if (ini.is_value("rotate")) { rotation.x = 180 + ini.get_value_float(0); rotation.y = 180 + ini.get_value_float(1); rotation.z = 180 + ini.get_value_float(2); } else if (ini.is_value("size")) { size.x = ini.get_value_float(0); size.y = ini.get_value_float(1); size.z = ini.get_value_float(2); if (size.y==0 || size.z==0) { size.y=size.x; size.z=size.x; } } else if (ini.is_value("ids_name")) { idsName = ini.get_value_int(0); } else if (ini.is_value("ids_info")) { idsInfo = ini.get_value_int(0); } } for (zone_map_iter_t i=set_mmapZones.begin(); i!=set_mmapZones.end(); i++) { if (i->second.zoneNick==zoneNick) { i->second.pos = pos; i->second.size = size; break; } } } } ini.close(); } }
EXPORT void Import(string scPluginCfgFile, bool emptyFail) { int boardIndex = 0; string boardIndexStr = ""; string errorMessage = ""; Data::ParameterSet parameters; INI_Reader ini; if (!ini.open(scPluginCfgFile.c_str(), false)) { Common::PrintConInfo(L"Can't read config file. Don't see any possibility to load. Aborted.", true); return; } while (ini.read_header()) { if (ini.is_header("API")) { Sync::APILogin login; Sync::APIServer server; boardIndex++; while (ini.read_value()) { if (ini.is_value("URI")) { login.URI = ini.get_value_string(0); } else if (ini.is_value("Account")) { login.Account = ini.get_value_string(0); } else if (ini.is_value("Password")) { login.Password = ini.get_value_string(0); } else if (ini.is_value("Secret")) { login.Secret = Misc::Encode::stringToInt(ini.get_value_string(0)); } else if (ini.is_value("Queue")) { login.Queue = ini.get_value_int(0); } else if (ini.is_value("Operation")) { login.Operations.push_back(ini.get_value_string(0)); } else if (ini.is_value("Response")) { login.Responses.push_back(ini.get_value_string(0)); } } if (login.URI == "" || login.Account == "" || login.Password == "") { boardIndexStr = itos(boardIndex); Common::PrintConInfo(L"There is an error on configuration: At least one of the parameter (URI, Account, Password) is missing for [API] " + wstring(boardIndexStr.begin(), boardIndexStr.end()) + L". Ignoring.\r\n", true); continue; } try { server = Sync::Client::Get(login); Data::ParameterData data; data[L"Name"] = server.Name; data[L"LastSent"] = (uint)server.LastSent; data[L"Queue"] = server.QueueLimit; data[L"Delay"] = server.Delay; Data::Parameter parameter(data); parameters.push_back(parameter); } catch (exception &e) { errorMessage = e.what(); Common::PrintConInfo(L"Got a failure when try to load setting for API " + wstring(login.URI.begin(), login.URI.end()) + L": " + wstring(errorMessage.begin(), errorMessage.end())); } } } Config::Config::APIs = parameters; ini.close(); if (emptyFail && boardIndex <= 0) { Common::PrintConInfo(L"No board information. Don't see why loading. Aborted.", true); return; } }
void LoadSettings() { returncode = DEFAULT_RETURNCODE; // The path to the configuration file. string marketshipsfile = "..\\data\\equipment\\market_ships.ini"; string marketcommoditiesfile = "..\\data\\equipment\\market_commodities.ini"; string flhookitems = "..\\exe\\flhook_plugins\\alley_mf.cfg"; int shipamount1 = 0; int shipamount2 = 0; int commodamount1 = 0; int commodamount2 = 0; INI_Reader ini; if (ini.open(marketshipsfile.c_str(), false)) { while (ini.read_header()) { if (ini.is_header("BaseGood")) { while (ini.read_value()) { uint currentbase; if (ini.is_value("base")) { currentbase = CreateID(ini.get_value_string(0)); shipamount1 = shipamount1 + 1; } else if (ini.is_value("marketgood")) { mapACShips[currentbase].push_back(CreateID(ini.get_value_string(0))); shipamount2 = shipamount2 + 1; } } } } ini.close(); } if (ini.open(marketcommoditiesfile.c_str(), false)) { while (ini.read_header()) { if (ini.is_header("BaseGood")) { while (ini.read_value()) { //uint temple = CreateID("st04_03_base"); uint bastilleguard = CreateID("iw09_03_base"); uint currentbase; if (ini.is_value("base")) { currentbase = CreateID(ini.get_value_string(0)); //we don't record operations from the temple of the damned so when we come across it we'll ignore it. //if (currentbase == temple) //{ // ConPrint(L"MARKETFUCKER: Ignoring Temple of the Damned. \n"); //} if (currentbase == bastilleguard) { ConPrint(L"MARKETFUCKER: Ignoring Bastille Guard Station. \n"); } else { mapACBases.push_back(currentbase); commodamount1 = commodamount1 + 1; } } } } } ini.close(); } if (ini.open(flhookitems.c_str(), false)) { while (ini.read_header()) { if (ini.is_header("items")) { while (ini.read_value()) { uint currentitem; if (ini.is_value("item")) { currentitem = CreateID(ini.get_value_string(0)); //mapACItems.push_back(currentitem); mapACItems[currentitem] = ini.get_value_string(0); commodamount2 = commodamount2 + 1; } } } } ini.close(); } ConPrint(L"MARKETFUCKER: Loaded %u ships for %u bases \n", shipamount2, shipamount1); ConPrint(L"MARKETFUCKER: Loaded %u items for %u bases \n", commodamount2, commodamount1); }