Что нового

[Считывание, данные]Смена кодировки

pixtachek

Новичок
Сообщения
29
Репутация
0
AutoIt: 3.3.0.0+
Версия: 1.1

Мне нужен был релоггер для игры WoW, нашел один на немецком форуме ботоводов. Так вот этот релогер написан на аутоит, старался его запустить но он не хочет выбирать сервер( Руофф ),а на америкосовские сервера работает. Что нужно сделать чтобы этот релоггер понимал русские символы? Я бы прикрепил сам код сюда, но он уж больно огромный. Каждый раз при смене информации в GUI скрипта, он сохраняет файл settings.ini и потом оттуда же и считывает инфу.
 

Viktor217

Осваивающий
Сообщения
233
Репутация
31
Не такой уж он и большой, не говоря уже про огромность...
 
Автор
P

pixtachek

Новичок
Сообщения
29
Репутация
0
Viktor217 сказал(а):
Не такой уж он и большой, не говоря уже про огромность...

Для меня это не маленький скрипт. Простите уж за не профессионализм.
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Русские символы, скорее всего кодируются, как то.
Если не ошибаюсь, судя по скрипту, надо хоть раз вручную запустить wow и глянуть в файл Config.wtf строку "realmName". там будет имя сервира, вот в такой же тип и необходимо кодировать имя сервира в боте.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
pixtachek
И еще:
- строка 1939 и 3077: Send("r"), может быть, надо Send("к"), если русская раскладка.
- строка 1945: If WinExists("Ausfьhren") <> 0 Then WinActivate("Ausfьhren"). "Ausfьhren" - по-немецки написано, надо, наверное менять на другое.
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Ага, надо менять весь немецкий на тот, что у тебя.
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
madmasles [?]
- строка 1939 и 3077: Send("r"), может быть, надо Send("к"), если русская раскладка.
Не факт, вот это надо проверять вообще, что это значит. Может быть правильно.
 
Автор
P

pixtachek

Новичок
Сообщения
29
Репутация
0
Проверил в config.wtf там он пишет правильное название сервера. Но когда я запускаю вов через бота, то он вбивает туда самый не населённый сервер. Но вроде не было никаких иероглифов или что-то в этом роде. Если у кого-то есть клиент игры, попробуйте, может я что-то не так делаю.

К стати вот ещё одна версия бота, якобы тут всё для английских серверов( тем не менее не получается )
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
А какой сервер выбирать в боте указывается? Т.е. бот выбирает не правильный сервер, но что-то выбирает?

Для разнообразия, нужно глянуть config.wtf от правки самой игрой (когда запускается вручную) и от правки после бота (когда заупскает с бота).
 
Автор
P

pixtachek

Новичок
Сообщения
29
Репутация
0
Я тестил и так и так, когда на боте он выбирает сервер "Голдринн"(он самый ненаселённый и я полагаю, что это ему предлагает клиент от того что раньше никакой сервер не вводился), но в config.wtf он меняет на нужный "Король-лич" но почему-то не считывает его правильно.
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
а дело в том, что бот только правит файл config.wtf и запускает игру. Вот и говорю, что лучше посматерть как он редактирует этот файл....может и есть разница
 
Автор
P

pixtachek

Новичок
Сообщения
29
Репутация
0
SET realmName "Голдринн" - вот это он вбил в config.wtf в место "Гром"
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
pixtachek [?]
SET realmName "Голдринн" - вот это он вбил в config.wtf в место "Гром"
Бииинго! Вот об этом и речь.

Попробуй, что ли, строку #1808 заменить на:
Код:
$szText = StringReplace($szText, _Encoding_CyrillicTo1251($linetmpserv), 'SET realmName "' & IniRead("settings.ini", "Account", "server" & $i, "") & '"')


А в заголовок скрипта добавить строчку:
Код:
#include <Encoding.au3>


Cкачать Encoding.au3 и закинуть в папку:
Код:
..\AutoIt3\Include\
.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
pixtachek
Код:
#include <Encoding.au3>

;$sString = 'Голдринн'
$sString_ANSI = 'Голдринн'
$sString_UTF8 = _Encoding_ANSIToUTF8($sString_ANSI)

MsgBox(64, 'Info', 'ANSI: ' & $sString_ANSI & @CRLF & _
		'UTF8: ' & $sString_UTF8 & @CRLF & 'Опять ANSI: ' & _
		_Encoding_UTF8ToANSI($sString_UTF8))
Еще, имхо, можно так попробовать:
Код:
$iDec = FileGetEncoding('Полный путь к файлу config.wtf')
;...
$hFile = FileOpen('Полный путь к файлу config.wtf', $iDec) ;для чтения.
$hFile = FileOpen('Полный путь к файлу config.wtf', $iDec + 2) ;для записи.
 
Автор
P

pixtachek

Новичок
Сообщения
29
Репутация
0
Не работает. При смене этого, доступ к config.wtf закрывается. Когда пытался его открыть выдает ошибку.
Но я проверил 2-й способ
Код:
$iDec = FileGetEncoding('Полный путь к файлу config.wtf')
;...
$hFile = FileOpen('Полный путь к файлу config.wtf', $iDec) ;для чтения.
$hFile = FileOpen('Полный путь к файлу config.wtf', $iDec + 2) ;для записи.



Добавлено:
Сообщение автоматически объединено:

Если в место "Голдринн" взять все сервера что юзер вписывает в settings.ini, как должно выглядеть ?
Менять кодировку config.wtf - бессмысленно, имхо, игра не читает его и удаляет.
Код:
#include <Encoding.au3>

;$sString = 'Голдринн'
$sString_ANSI = 'Голдринн'
$sString_UTF8 = _Encoding_ANSIToUTF8($sString_ANSI)




Добавлено:
Сообщение автоматически объединено:

Попробовал воспользоваться ботом на EU серверах и всё заработало. :blink:
 
Автор
P

pixtachek

Новичок
Сообщения
29
Репутация
0
Прошу модераторов перенести тему в "Стол заказов". Может там найдется человек, который сможет закончить дело. Заранее благодарен.
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Подправил. Пробуй.
Если все заработает, то суть в том, что данные в файл необходимо было записывать в UTF8.
Т.е. перед всеми записями в файл, открывать его:
Код:
FileOpen ($szFile, 128+2)
 
Верх