Список всех ID HF

Ne1s

Прославленный
Местный
Сообщения
314
Розыгрыши
0
Репутация
354
Реакции
142
Баллы
1 435
Всем привет, делаю токенизацию всех айтемов для перевода игры в статус Play To Earn, появилась необходимость заиметь список всех ID из базовой High Five, может у кого-то есть файлом отдельным, без описаний и тд
 
Скачай любой чистый сустем HF'a датники etcitemgrp, weapongrp, armorgrp. Вот тебе и список ИД.
 
Реакции: Ne1s

    Ne1s

    Баллов: 3
    Спасибо за подсказку
я уже глянул, придется всеравно перерабатывать, мне в смарт контракт надо скриптом засунуть все ID, которые можно заминтить и продать, еще додумать логику для продажи персонажей с минимальными затратами
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
А что мешает? Открыть всё это вырезать регуляркой и регуляркой вставить или в екселе? Или я что-то не понял?
 
примерно так и будет, но выношу в базу для более быстрой работы, так как после того как взяты очередные 10 ид, надо дожидаться ответа сети не отправляя следующую транзакцию

попутно вылез вопрос иконок и картинок всего этого дела, иконки понятно нашел, а где достать картинки всех айтемов, может сайт посоветуете чтоб парсеорм стянуть
 
с текстур.
 
Я вот так делаю "парсинг" с item-name когда формирую списки для мультиселов или данных с клиента.
Java:
public class DO SOMETHING CLASS
{
    private static String type;
    static final AtomicReference<Map<Integer, List<String>>> local_ru = new AtomicReference<>(new HashMap<>());
    static final AtomicReference<Map<Integer, List<String>>> local_en = new AtomicReference<>(new HashMap<>());

    synchronized void load_locale_en(String type) throws IOException
    {
        Path upgradeFile;
        if (type.equalsIgnoreCase("main"))
        {
            upgradeFile = Paths.get("C:/MrKirill1232/item_name_en.txt");
        }
        else if (type.equalsIgnoreCase("classic"))
        {
            upgradeFile = Paths.get("C:/MrKirill1232/item_name_en_classic.txt");
        }
        else
        {
            upgradeFile = Paths.get("C:/MrKirill1232/item_name_en_essence.txt");
        }
        if (!Files.exists(upgradeFile))
        {
            System.err.println("File not found - " + upgradeFile);
        }
        List<String> fileContent = Files.readAllLines(upgradeFile);
        for (String str : fileContent)
        {
            List<String> translate_en;
            StringTokenizer st = new StringTokenizer(str, "\t");
            while ( st.hasMoreTokens() ){
                String token = st.nextToken();
                if ( token.startsWith("\t") )
                {
                    token = token.substring(1);
                }
                if ( token.startsWith("id=") )
                {
                    int index = Integer.parseInt(token.substring(3));
                    translate_en = parseData(st);
                    local_en.get().put(index, translate_en);
                }
            }
        }
    }

    synchronized void load_locale_ru(String type) throws IOException
    {
        Path upgradeFile;
        if (type.equalsIgnoreCase("main"))
        {
            upgradeFile = Paths.get("C:/MrKirill1232/item_name_ru.txt");
        }
        else if (type.equalsIgnoreCase("classic"))
        {
            upgradeFile = Paths.get("C:/MrKirill1232/item_name_ru_classic.txt");
        }
        else
        {
            upgradeFile = Paths.get("C:/MrKirill1232/item_name_ru_essence.txt");
        }
        if (!Files.exists(upgradeFile))
        {
            System.err.println("File not found - " + upgradeFile);
        }
        List<String> fileContent = Files.readAllLines(upgradeFile);
        for (String str : fileContent)
        {
            List<String> translate_ru;
            StringTokenizer st = new StringTokenizer(str, "\t");
            while ( st.hasMoreTokens() )
            {
                String token = st.nextToken();
                if ( token.startsWith("\t") )
                {
                    token = token.substring(1);
                }
                if ( token.startsWith("id=") )
                {
                    int index = Integer.parseInt(token.substring(3));
                    translate_ru = parseData(st);
                    local_ru.get().put(index, translate_ru);
                }
            }
        }
    }

    private List<String> parseData (StringTokenizer st)
    {
        List<String> translate = new ArrayList<>();
        while ( st.hasMoreTokens() )
        {
            String token = st.nextToken();
            if (token.startsWith("name=["))
            {
                StringBuilder name = new StringBuilder();
                translate.add(getFullString(name.append(token.substring(6)), token, st).toString());
            }
            if (token.startsWith("additionalname=["))
            {
                StringBuilder add_name = new StringBuilder();
                translate.add(getFullString(add_name.append(token.substring(16)), token, st).toString());

            }
            if (token.startsWith("description=["))
            {
                StringBuilder desc = new StringBuilder();
                translate.add(getFullString(desc.append(token.substring(13)), token, st).toString());
            }
        }
        return translate;
    }

    private StringBuilder getFullString(StringBuilder sender, String token, StringTokenizer st){
        while (!token.endsWith("]"))
        {
            token = st.nextToken();
            if (token.endsWith("]"))
            {
                sender.append(" ").append(token);
                break;
            }
            else
            {
                sender.append(" ").append(token);
            }
        }
        while ( sender.toString().contains("[") || sender.toString().contains("]") )
        {
            sender = new StringBuilder(sender.toString().replace("[", "").replace("]", ""));
        }
        return sender;
    }

    private StringBuilder getCommentItemNameString(int item_id, String enchantLevel)
    {
        StringBuilder sender = new StringBuilder();
        sender.append("\t<!-- ");
        if (local_ru.get().get(item_id) != null)
        {
            sender.append(local_ru.get().get(item_id).get(0));
            if (!local_ru.get().get(item_id).get(1).isEmpty())
            {
                sender.append(" [").append(local_ru.get().get(item_id).get(1)).append("]");
            }
            if (!enchantLevel.equalsIgnoreCase("0"))
            {
                sender.append(" +").append(enchantLevel);
            }
        }
        if (local_en.get().get(item_id) != null)
        {
            sender.append(" / ");
            sender.append(local_en.get().get(item_id).get(0));
            if (!local_en.get().get(item_id).get(1).isEmpty())
            {
                sender.append(" [").append(local_en.get().get(item_id).get(1)).append("]");
            }
            if (!enchantLevel.equalsIgnoreCase("0"))
            {
                sender.append(" +").append(enchantLevel);
            }
        }
        return sender.append(" -->").append("\n");
    }
    public DO SOMETHING CLASS()
    {

    }

    public static void main(String[] args) {
        type = "essence";
        try
        {
            new commonCreationCentral().load_locale_en(type);
            new commonCreationCentral().load_locale_ru(type);
            try
            {
                new DO SOMETHING CLASS;
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }
        catch (Exception e)
        {
            System.err.println("" + e);
        }
    }
}