std::string ItemEffect::oneline_str() { std::string result = ""; std::vector<std::string> string_vec; string_vec.push_back(this->small_convert("HCV: ", (long double)this->health_current_val)); string_vec.push_back(this->small_convert("HMV: ", (long double)this->health_max_val)); string_vec.push_back(this->small_convert("HRR: ", (long double)this->health_regen_rate)); string_vec.push_back(this->small_convert("HRI: ", (long double)this->health_regen_interval)); string_vec.push_back(this->small_convert("MCV: ", (long double)this->mana_current_val)); string_vec.push_back(this->small_convert("MMV: ", (long double)this->mana_max_val)); string_vec.push_back(this->small_convert("MRR: ", (long double)this->mana_regen_rate)); string_vec.push_back(this->small_convert("MRI: ", (long double)this->mana_regen_interval)); string_vec.push_back(this->small_convert("ACV: ", (long double)this->armor_current_val)); string_vec.push_back(this->small_convert("AMV: ", (long double)this->armor_max_val)); string_vec.push_back(this->small_convert("ARR: ", (long double)this->armor_regen_rate)); string_vec.push_back(this->small_convert("ARI: ", (long double)this->armor_regen_interval)); string_vec.push_back(this->small_convert("DCV: ", (long double)this->damage_current_val)); string_vec.push_back(this->small_convert("DMV: ", (long double)this->damage_max_val)); string_vec.push_back(this->small_convert("DRR: ", (long double)this->damage_regen_rate)); string_vec.push_back(this->small_convert("DRI: ", (long double)this->damage_regen_interval)); return StringJoin(string_vec, ' ', true); };
std::string ItemEffect::full_str() { std::string result = ""; std::vector<std::string> string_vec; string_vec.push_back("HCV: "+std::to_string((long double)this->health_current_val)); string_vec.push_back("HMV: "+std::to_string((long double)this->health_max_val)); string_vec.push_back("HRR: "+std::to_string((long double)this->health_regen_rate)); string_vec.push_back("HRI: "+std::to_string((long double)this->health_regen_interval)); string_vec.push_back("MCV: "+std::to_string((long double)this->mana_current_val)); string_vec.push_back("MMV: "+std::to_string((long double)this->mana_max_val)); string_vec.push_back("MRR: "+std::to_string((long double)this->mana_regen_rate)); string_vec.push_back("MRI: "+std::to_string((long double)this->mana_regen_interval)); string_vec.push_back("ACV: "+std::to_string((long double)this->armor_current_val)); string_vec.push_back("AMV: "+std::to_string((long double)this->armor_max_val)); string_vec.push_back("ARR: "+std::to_string((long double)this->armor_regen_rate)); string_vec.push_back("ARI: "+std::to_string((long double)this->armor_regen_interval)); string_vec.push_back("DCV: "+std::to_string((long double)this->damage_current_val)); string_vec.push_back("DMV: "+std::to_string((long double)this->damage_max_val)); string_vec.push_back("DRR: "+std::to_string((long double)this->damage_regen_rate)); string_vec.push_back("DRI: "+std::to_string((long double)this->damage_regen_interval)); return StringJoin(string_vec, '\n', false); };
std::string get_config_path() { //ex: C:\Users\Mark\Documents\Visual Studio //2010\Projects\FirstCPPApplication\Debug\BiochRL++.exe std::string exepath = get_exe_path(); std::vector<std::string> exesplit = StringSplit(exepath, kPathSeparator); exesplit.pop_back(); std::string data = "config"; data+=kPathSeparator; exesplit.push_back(data); return StringJoin(exesplit, kPathSeparator, false); };
static bool HandleGroupListCommand(ChatHandler* handler, char const* args) { // Get ALL the variables! Player* playerTarget; ObjectGuid guidTarget; std::string nameTarget; std::string zoneName; const char* onlineState = ""; // Parse the guid to uint32... ObjectGuid parseGUID = ObjectGuid::Create<HighGuid::Player>(strtoull(args, nullptr, 10)); // ... and try to extract a player out of it. if (ObjectMgr::GetPlayerNameByGUID(parseGUID, nameTarget)) { playerTarget = ObjectAccessor::FindPlayer(parseGUID); guidTarget = parseGUID; } // If not, we return false and end right away. else if (!handler->extractPlayerTarget((char*)args, &playerTarget, &guidTarget, &nameTarget)) return false; // Next, we need a group. So we define a group variable. Group* groupTarget = NULL; // We try to extract a group from an online player. if (playerTarget) groupTarget = playerTarget->GetGroup(); // If not, we extract it from the SQL. if (!groupTarget) { PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GROUP_MEMBER); stmt->setUInt64(0, guidTarget.GetCounter()); PreparedQueryResult resultGroup = CharacterDatabase.Query(stmt); if (resultGroup) groupTarget = sGroupMgr->GetGroupByDbStoreId((*resultGroup)[0].GetUInt32()); } // If both fails, players simply has no party. Return false. if (!groupTarget) { handler->PSendSysMessage(LANG_GROUP_NOT_IN_GROUP, nameTarget.c_str()); handler->SetSentErrorMessage(true); return false; } // We get the group members after successfully detecting a group. Group::MemberSlotList const& members = groupTarget->GetMemberSlots(); // To avoid a cluster f**k, namely trying multiple queries to simply get a group member count... handler->PSendSysMessage(LANG_GROUP_TYPE, (groupTarget->isRaidGroup() ? "raid" : "party"), std::to_string(members.size()).c_str()); // ... we simply move the group type and member count print after retrieving the slots and simply output it's size. // While rather dirty codestyle-wise, it saves space (if only a little). For each member, we look several informations up. for (Group::MemberSlotList::const_iterator itr = members.begin(); itr != members.end(); ++itr) { // Define temporary variable slot to iterator. Group::MemberSlot const& slot = *itr; // Check for given flag and assign it to that iterator std::string flags; if (slot.flags & MEMBER_FLAG_ASSISTANT) flags = "Assistant"; if (slot.flags & MEMBER_FLAG_MAINTANK) { if (!flags.empty()) flags.append(", "); flags.append("MainTank"); } if (slot.flags & MEMBER_FLAG_MAINASSIST) { if (!flags.empty()) flags.append(", "); flags.append("MainAssist"); } if (flags.empty()) flags = "None"; // Check if iterator is online. If is... Player* p = ObjectAccessor::FindPlayer((*itr).guid); std::string phases; if (p) { // ... than, it prints information like "is online", where he is, etc... onlineState = "online"; phases = StringJoin(p->GetPhases(), ", "); AreaTableEntry const* area = sAreaTableStore.LookupEntry(p->GetAreaId()); if (area) { AreaTableEntry const* zone = sAreaTableStore.LookupEntry(area->ParentAreaID); if (zone) zoneName = zone->AreaName->Str[handler->GetSessionDbcLocale()]; } } else { // ... else, everything is set to offline or neutral values. zoneName = "<ERROR>"; onlineState = "Offline"; } // Now we can print those informations for every single member of each group! handler->PSendSysMessage(LANG_GROUP_PLAYER_NAME_GUID, slot.name.c_str(), onlineState, zoneName.c_str(), phases.c_str(), slot.guid.ToString().c_str(), flags.c_str(), lfg::GetRolesString(slot.roles).c_str()); } // And finish after every iterator is done. return true; }
std::string AttributeContainer::PrettyPrint() { return StringJoin(this->PrettyVector(), '\n', false); };
std::string NameLibraryCHeader(const std::vector<StringView>& library_name) { return StringJoin(library_name, "/") + "/c/fidl.h"; }
std::string NameLibrary(const std::vector<StringView>& library_name) { return StringJoin(library_name, "."); }