Всем привет, делаю токенизацию всех айтемов для перевода игры в статус Play To Earn, появилась необходимость заиметь список всех ID из базовой High Five, может у кого-то есть файлом отдельным, без описаний и тд
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Не проще уж 1 itemname ли открыть?)Скачай любой чистый сустем HF'a датники etcitemgrp, weapongrp, armorgrp. Вот тебе и список ИД.
А что мешает? Открыть всё это вырезать регуляркой и регуляркой вставить или в екселе? Или я что-то не понял?я уже глянул, придется всеравно перерабатывать, мне в смарт контракт надо скриптом засунуть все ID, которые можно заминтить и продать, еще додумать логику для продажи персонажей с минимальными затратами
примерно так и будет, но выношу в базу для более быстрой работы, так как после того как взяты очередные 10 ид, надо дожидаться ответа сети не отправляя следующую транзакциюА что мешает? Открыть всё это вырезать регуляркой и регуляркой вставить или в екселе? Или я что-то не понял?
с текстур.попутно вылез вопрос иконок и картинок всего этого дела, иконки понятно нашел, а где достать картинки всех айтемов, может сайт посоветуете чтоб парсеорм стянуть
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);
}
}
}