Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Problem z skryptem pythona do tłumaczenia dropu

Featured Replies

Opublikowano

Cześć

 

Dziś chciałem dodać sobie skrypt Pythona który generuje komentarze z nazwami pobieranymi z item_names.txt do mob_drop_item.txt ale coś mi nie idzie..

 

Moja wersja Pythona:

CKod został skopiowany
Python 3.9.18

 

Na początku skrypt krzyczał o "import chardet"

 

Zainstalowałem go poleceniem:

CKod został skopiowany
pkg install py39-chardet

 

Lecz teraz mam taki błąd przy generowaniu nowego mob_drop_item.txt

TextKod został skopiowany
Traceback (most recent call last):  File "/usr/home/mt2/share/converter/drop.py", line 22, in <module>    vnum, name = line.strip().split('\t')ValueError: not enough values to unpack (expected 2, got 1)

 

A oto sam skrypt:

 

PythonKod został skopiowany
import chardetimport codecs def detect_encoding(filename):    with open(filename, 'rb') as f:        result = chardet.detect(f.read())    return result['encoding'] with codecs.open('item_names.txt', 'r', encoding='cp1250') as source_file:    contents = source_file.read() with codecs.open('item_names_utf8.txt', 'w', encoding='utf-8') as target_file:    target_file.write(contents) with open('item_names_utf8.txt', 'r', encoding='utf-8') as f:    item_names = {}    for line in f:        if 'VNUM' in line or 'LOCALE_NAME' in line:            continue        vnum, name = line.strip().split('\t')        item_names[vnum] = name drop_cpp_encoding = detect_encoding('mob_drop_item.txt')with open('mob_drop_item.txt', 'r', encoding=drop_cpp_encoding) as f:    lines = f.readlines() new_lines = []for line in lines:    if line.startswith('Group') or 'exp' in line:        new_lines.append(line)    else:        parts = line.split('\t')        if len(parts) > 2 and parts[2] in item_names:            line = line.rstrip() + ' // ' + item_names[parts[2]] + '\n'        new_lines.append(line) with open('mob_drop_item2.txt', 'w', encoding='utf-8') as f:    f.writelines(new_lines)

 

Rozwiązane przez Sevence

Opublikowano
  • Rozwiązanie

Z błędu wynika, że w pliku item_names_utf8 napotyka złe formatowanie albo puste linie. Spróbuj zmienić tak: 

PythonKod został skopiowany
with open('item_names_utf8.txt', 'r', encoding='utf-8') as f:	item_names = {}	for line in f:		if 'VNUM' in line or 'LOCALE_NAME' in line:			continue		parts = line.strip().split('\t')		if len(parts) == 2:			vnum, name = parts			item_names[vnum] = name

 

Nie wiem, co tam używasz tabów czy spacje, ale to sobie dostosuj tu masz taby bo wyrzuci błędy z syntaxem.

Opublikowano
  • Autor

Dziękuje @Sevence ❤️ 

 

Nie ukrywam, że można to rozbudować o tłumaczenie moba nawet 😄 no ale można go też wpisać w Group

image.png.7dd088035eae8e4c641836e300710f1e.png

Edytowane przez Marchewa

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.