Список всех способностей

  • Автор темы Автор темы Unito
  • Дата начала Дата начала

Unito

Пользователь
31 Янв 2023
24
4
Имеется такой список из одной темы
Lua:
local ability_list = {
    "juggernaut_blade_fury",
    "juggernaut_healing_ward",
    "juggernaut_blade_dance",   
}

Есть ли такой же, только где есть вообще все способности игры?
 
Или в конце концов метод который выдаёт список всех возможных способностей в игре
 
Вот тебе код для Visual Studio 2022 C++
Данный код открывает файл "npc_abilities.txt" и ищет в нём строки, содержащие кавычки. Все найденные строки записываются в новый файл "output.txt". Если файл "npc_abilities.txt" не может быть открыт, программа выводит сообщение об ошибке.

Для удаления повторяющихся строк из файла "output.txt" можно воспользоваться стандартной библиотекой C++ и контейнером set

Для этого мы можем использовать ещё один контейнер set, который будет хранить слова-исключения из файла "no.txt". При добавлении уникальных строк в контейнер set для вывода, мы будем проверять каждую строку на наличие в множестве исключений. Если строка содержит слово-исключение, тогда мы её не добавляем в вывод
Сгенерирован код в ChatGPT - его косяк в том, что он все кавычки подряд хуярит, вот тебе мои которые я тестил, я не все подряд закинул в no.txt тебе ещё предстоит поработать и убрать все лишние строки

Файл npc_abilities.txt лучше взять с нового патча из файлов доты

C++:
#include <iostream>
#include <fstream>
#include <string>
#include <set>

using namespace std;

int main() {
    ifstream file("C:\\Users\\****\\Downloads\\ифе\\npc_abilities.txt"); // Путь к файлу откуда брать
    ifstream no("C:\\Users\\****\\Downloads\\ифе\\no.txt"); // Путь к файлу исключений
    ofstream output("C:\\Users\\****\\Downloads\\ифе\\output.txt"); // Путь к файлу куда сохранить результат
    set<string> unique_strings;
    set<string> exceptions;
    string line;

    // Считываем исключения из файла no.txt
    if (no.is_open()) {
        while (getline(no, line)) {
            exceptions.insert(line);
        }
        no.close();
    }
    else {
        cout << "Unable to open file no.txt" << endl;
    }

    // Ищем уникальные строки в файле npc_abilities.txt
    if (file.is_open()) {
        while (getline(file, line)) {
            size_t pos = line.find("\"");
            if (pos != string::npos) {
                size_t endpos = line.find("\"", pos + 1);
                if (endpos != string::npos) {
                    string found = line.substr(pos + 1, endpos - pos - 1);
                    // Проверяем, не является ли строка словом-исключением
                    if (exceptions.find(found) == exceptions.end()) {
                        unique_strings.insert(found);
                    }
                }
            }
        }
        file.close();

        // Перебираем уникальные строки и записываем их в файл output.txt
        for (auto it = unique_strings.begin(); it != unique_strings.end(); ++it) {
            output << *it << endl;
        }

        output.close();
    }
    else {
        cout << "Unable to open file npc_abilities.txt" << endl;
    }

    return 0;
}

Тебе останется открыть тот же Notepad++ и через маску сделать кавычки вначале и в конце строки + запятую
А так же добавить в начале local ability_list = { и в конце }

Если так, то Ctrl+H (найти и заменить). Найти ^(.*)$ Заменить "(\1)",

1680174596023.png
 

Вложения

Последнее редактирование:
Реклама: