Вот тот самый гайд с mmorpg-devs про CPW(то есть автопатчер).
Вот самый лёгкий на сегодняшний день способ:
Качаете файлик CPW.exe и кидаете в корень игры, не в element! Нажимаете и ждете, смотрите в консоле ход выполнения подготовки. После этого вы получаете полностью готовый клиент для того что бы залить в CPW.
Принцип роботы:
1.Распаковка всех pck архивов.
2.Удаления всех pck архивов.
3.Перемещения из element\xxx.files.pck в element\xxx (включая особые операции с Bug.pck и Script.pck).
4.Удаления всех пустых xxx.files.pck папок.
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
И вуаля. Файлы распакованы
То есть клиент уже готов для создания автопатчера!
Автор ASTREL
Опубликовал на zhyk Metoocomet
Теперь сам гайд о создании автопатчера:
Исходные тексты, немного документации и сама программа — [Ссылки могут видеть только зарегистрированные пользователи. ]
При копировании и распространении, ссылка на эму тему — обязательна.
— java 6!
— работает везде, если руки прямые (windows, linux, bsd)
Гайд по его установке:
1) Распаковываем patcher.tar.gz в любую, удобную для Вас папку.
2) Скачиваем MySQL-5.0 /Current Release и приступаем к установке.
Гайд по установке MySQL
3) Подключаемся к MySQL (Я использую Navicat for MySQL) Юзаем Google
И создаем базу с названием pwu:
Далее правой кнопкой мыши кликаем на созданую Вами базу, и выбираем
(1) Execute Batch Files
(2) Указываем путь до файла install.sql - Находиться в патчере, папка config
(3)Жмем Start
3) Переходим к распакованому патчеру.
Видим там 4 папки и 3 файла.
Код
Папки:
config
files
log
lib
Файлы:
cpw
pw-cpw.jar
README
Создаем тут же bat файл со следующим содержанием:
Код
java -jar -Xmx256m pw-cpw.jar install
pause
Здесь есть уже готовый BAT.
Внимание "java -jar -Xmx256m pw-cpw.jar install" что бы выполнить какое либо другое действие install меняем на любую из следующих команд:
Код
install — установить программу
rsagen — перегенерировать RSA ключи
x executable… — прописать RSA ключи в список исполняемых файлов
initial — создать базовый билд
new [revision number] — создать новый патч, если указано с версией number
revision [revision number] — создать новый патч, если указано с версией number
listgen — пересоздать списки файлов
listupdate — пересоздать списки файлов
В папке files/CPW/info
Создаем файл pid ( [Ссылки могут видеть только зарегистрированные пользователи. ] ) без какого либо указания формата.
пишим в этом файле
Код
101
Такая же цифра должна быть в клиенте patcher\server\pid.ini
Код
[Version]
pid=101
Запускаем Install.bat
Есле ошибок не возникло, можете приступать к созданию патча
В files\new\element помещаем всю папку из клиента element
Исключение составляют *.pck Их мы должны распаковать!
В распакованом виде они должны находиться в папках с соответствующим названием.
Пример: У нас был models.pck архив, после распаковки получилась models.pck.filles папка.
Открыли models.pck.filles и увидели там папку models, Она то нам и нужна.
Помещаем ее в files\new\element
Так делаем со всеми архивами!
Внимание в В files\new\element недолжно быть ни одного *.pck файла!!!
И так, теперь можно приступать.
Создайте новый bat и замените install на initial в старом
Код
java -jar -Xmx256m pw-cpw.jar initial
pause
Запускаем наш новый bat и... ждем... ждем... и опять ждем.
По окончанию Ваш патч будит находиться в папке files\CPW
Скопируйте эту папку на сервер в opt/lampp/htdocs/ (есле CoLinux)
Или на Ваш FTP
Внимание что бы сделать новый патч, используем команду new!
Удаляем файлы из files\new\element и копируем в эту же папку новые файлы
Запускаем батник, для тех кто еще не понял как это делаеться:
Код
java -jar -Xmx256m pw-cpw.jar new
pause
И снова ждем...
Готовый патч окажеться опять же в папке files\CPW
И это еще не все)))
В наш патчер, прямо рядом с bat файлами ложим 2 файла
Launcher.exe и patcher.exe
Делаем новый bat
Код
java -jar -Xmx256m pw-cpw.jar x Launcher.exe patcher.exe
pause
и запускаем.. По окончанию закиньте пропатченые Launcher.exe и patcher.exe в клиент
и измените в клиенте \patcher\server\updateserver.txt
[Ссылки могут видеть только зарегистрированные пользователи. ] IP/CPW/
либо
[Ссылки могут видеть только зарегистрированные пользователи. ] FTP/CPW/
запускаем сервер с регистрацией
запускаем в клиенте launcher\FixIt.bat
А дальше как сказал один умный человек "дело техники"
Гайд написал NioFBI
Опубликовал на zhyk.ru Metoocomet
Последний раз редактировалось metoocomet96; 02.04.2011 в 07:05.
Запускаем наш новый bat и... ждем... ждем... и опять ждем.
По окончанию Ваш патч будит находиться в папке files\CPW
У меня не появляется патч в этой папке, и ждать нужно пару секунд всего, а не так как написано "и... ждем... ждем... и опять ждем" в чем может быть проблема?
У меня не появляется патч в этой папке, и ждать нужно пару секунд всего, а не так как написано "и... ждем... ждем... и опять ждем" в чем может быть проблема?
Ошибка значить у вас, ибо нужно ждать ждать ждать, даже на мощных системах - это занимает от 20-30минут.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
С предидущей проблемой разобрался, нужнобыло после пункта
Цитата:
Сообщение от metoocomet96
Запускаем Install.bat
Есле ошибок не возникло, можете приступать к созданию патча
внести данные логин, пароль...
Это все сделано, файлы на сервер залиты, элемент и патчер в клиенте заменены...
Запускаю fixit.bat или launcher.exe без разници и мне пишет сервер на профилактике...
Что не так сделал?
у меня обновляет launcher.exe, стадию "сервер на профилактике" прошел, сделал по видео:
Гайд по установке CPW
,
[Ссылки могут видеть только зарегистрированные пользователи. ]
обновляет, не говорит что на профилактике, версию как и в видео пишет 1, теперь в самой игре говорит что старый клиент обнови.
Кто что с этим подскажет...сервер 1.4.4 v2
p,s если ставите на убунту/дебан ( она не ест bat файлы ) то вместо батника создаете sh файл с таким же содержанием, даете права 777 и запускаете из терминала)
________________
Он знает, что во мраке, Но свет обитает с Ним. (С.Майер (с)) Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
p,s если ставите на убунту/дебан ( она не ест bat файлы ) то вместо батника создаете sh файл с таким же содержанием, даете права 777 и запускаете из терминала)
аж не как ты не запустишь батник с таким же содержимым, да и на линуксоидных системах не нужно запускать батники..
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Добрый день, несколько раз перечитал гайд, столько же пересмотрел видео. Но добиться корректной работы CPW, у себя на сервере, не получается.
Хочу уточнить, обработка файлов, должна проводится на серверной машине или возможно удаленно подключится к базе сервера?
Если выполняю действия описанные в гайде, на локальной машине, все нормально обрабатывается но после переноса на сервер, клиент не видит обновы.
А при попытке подключится удаленно к базе данных сервера, батник начинает ругаться
Цитата:
0fHOd4dBIeb0dhqoAvKzIQJBAOpJPoLdIRc1MKA4WTTJ8Fk9C8 EV6VDHxT5YhfvW7H9p4T8tGEmgI/Cv
Z2KeSPAoAsKZgYINWfop9OW7L3rOa3ECQQC1wB+yJY/e2WufUhBMXr+DHCz5CMhqh1tMzAQuAVEbIYj3
TjqvRw6YXQDf44poDRG3R6ofp6se8y0WPYt3XHqHAkAhwBVqQr K+piHwIs3vBdxC7sFfumlXAsBOX/BF
PEvrevRA5p0mFhS3Wn1ZPpYhSpJDOFvowUWh/SNTaOjJFy1xAkBNBMlpuLkq+n+82A3IDy6g5MO6FJq5
afqqpJnw1OYF1UQxaJk9xaLNtju0pLv2M/OZ82iIWYkOaIZmslXzkuDpAkBtI9ikQahfEt3hMQF9r9HF
LWiH9e0iaXsxdRvZwuPMM9Tg3d1HYfr9l1lwnuabvBoAXERTL+ AoGX3rUbVHZHHD
[INFO 2012-07-10 13-13-33] Saving keys.
[INFO 2012-07-10 13-13-33] Input mysql server (eg, localhost):
ip host
[INFO 2012-07-10 13-13-46] Input mysql login (eg, pwu):
Login
[INFO 2012-07-10 13-13-52] Input mysql password (eg, superpuperpassword):
pass
[INFO 2012-07-10 13-14-00] Input mysql database name (eg, pwu):
pwu
[INFO 2012-07-10 13-14-14] Saving config.
[INFO 2012-07-10 13-14-14] Creating table.
[FATAL 2012-07-10 13-14-23] Database error: SQL exception.
java.sql.SQLException: null, message from server: "Host '94.232.73.193' is not
allowed to connect to this MySQL server"
at com.mysql.jdbc.SQLError.createSQLException(SQLErro r.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLErro r.java:956)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:10 96)
at com.mysql.jdbc.ConnectionImpl.createNewIO(Connecti onImpl.java:2048)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImp l.java:723)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connect ion.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(Unknown Sou
rce)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:40 6)
at com.mysql.jdbc.ConnectionImpl.getInstance(Connecti onImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonReg isteringDriver.java
:282)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.pwemu.clientupdater.CPWDB.<init>(CPWDB.java:29 )
at com.pwemu.clientupdater.CPW.loadDb(CPW.java:42)
at com.pwemu.clientupdater.CPW.install(CPW.java:116)
at com.pwemu.clientupdater.CPW.main(CPW.java:67)
Exception in thread "main" java.lang.NullPointerException
at com.pwemu.clientupdater.CPW.loadDb(CPW.java:48)
at com.pwemu.clientupdater.CPW.install(CPW.java:116)
at com.pwemu.clientupdater.CPW.main(CPW.java:67)
Просьба, подскажите что не так и как с этим бороться?
P.S Пытался провести обработку обновы на сервере по примеру
Цитата:
Сообщение от Quantity
p,s если ставите на убунту/дебан ( она не ест bat файлы ) то вместо батника создаете sh файл с таким же содержанием, даете права 777 и запускаете из терминала)
безрезультатно, не корректная команда. Сервер на Debian 6.0.5
Последний раз редактировалось s.n.o.w.m.a.n; 10.07.2012 в 14:24.
вопросик: вот вроде установил CPW, вот про создание обновы (стартовый создался) чтобы изменить один файл какие нужны действия: просто заменить в "files\new\" нужный файл и запустить так "new 2" или удалить всё из "files\new\ " положить новый файл и запускать? испортить боюсь всё
народ выложите кто нить разжеванный гайд по установки а то вот с какими ошибками встречаюсь
1) на этапе залиибки базы pwu
Цитата:
[Err] 42000 - [SQL Server]Incorrect syntax near the keyword 'IF'.
42000 - [SQL Server]Line 2: Incorrect syntax near '`'.
[Err] DROP TABLE IF EXISTS `files`;
CREATE TABLE IF NOT EXISTS `files` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`added` int(11) NOT NULL,
`size` bigint(20) NOT NULL,
`revision` int(4) NOT NULL,
`md5` varchar(32) NOT NULL,
`type` enum('element','launcher','patcher') NOT NULL DEFAULT 'element',
`folder` varchar(1024) NOT NULL,
`folder_base64` varchar(1024) NOT NULL,
`file` varchar(512) NOT NULL,
`file_base64` varchar(512) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
[Msg] Finished - Unsuccessfully
--------------------------------------------------
2) на этапе вводов данных.. ну сервер понятно localhost а логин? sa? root? или как там предлагает pwu? пароль тож, от чего именно вводить?
3) после выполнения initial, возникает вот какие ошибки..
Last packet sent to the server was 0 ms ago.
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:40 6)
at com.mysql.jdbc.SQLError.createCommunicationsExcept ion(SQLError.java:1074)
at com.mysql.jdbc.ConnectionImpl.createNewIO(Connecti onImpl.java:2120)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImp l.java:723)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connect ion.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:40 6)
at com.mysql.jdbc.ConnectionImpl.getInstance(Connecti onImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonReg isteringDriver.java:282)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.pwemu.clientupdater.CPWDB.<init>(CPWDB.java:29 )
at com.pwemu.clientupdater.CPW.loadDb(CPW.java:42)
at com.pwemu.clientupdater.CPW.initial(CPW.java:143)
at com.pwemu.clientupdater.CPW.main(CPW.java:73)
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsExce ption: Communications link failure
Last packet sent to the server was 0 ms ago.
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:40 6)
at com.mysql.jdbc.SQLError.createCommunicationsExcept ion(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:335)
at com.mysql.jdbc.ConnectionImpl.createNewIO(Connecti onImpl.java:2043)
... 15 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at com.mysql.jdbc.StandardSocketFactory.connect(Stand ardSocketFactory.java:253)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
... 16 more
[INFO 2013-02-03 14-01-12] Input mysql server (eg, localhost):
??????????????
[INFO 2013-02-03 14-02-59] Input mysql login (eg, pwu):
??????????????
[INFO 2013-02-03 14-03-02] Input mysql password (eg, superpuperpassword):
??????????????
[INFO 2013-02-03 14-03-17] Input mysql database name (eg, pwu):
??????????????
[INFO 2013-02-03 14-03-21] Saving config.
[INFO 2013-02-03 14-03-21] Creating table.
[FATAL 2013-02-03 14-03-21] Database error: SQL exception.
com.mysql.jdbc.exceptions.jdbc4.CommunicationsExce ption: Communications link failure
Last packet sent to the server was 0 ms ago.
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Construc tor.java:532)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:40 6)
at com.mysql.jdbc.SQLError.createCommunicationsExcept ion(SQLError.java:1074)
at com.mysql.jdbc.ConnectionImpl.createNewIO(Connecti onImpl.java:2120)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImp l.java:723)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connect ion.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Construc tor.java:532)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:40 6)
at com.mysql.jdbc.ConnectionImpl.getInstance(Connecti onImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonReg isteringDriver.java:282)
at java.sql.DriverManager.getConnection(DriverManager .java:620)
at java.sql.DriverManager.getConnection(DriverManager .java:200)
at com.pwemu.clientupdater.CPWDB.<init>(CPWDB.java:29 )
at com.pwemu.clientupdater.CPW.loadDb(CPW.java:42)
at com.pwemu.clientupdater.CPW.install(CPW.java:116)
at com.pwemu.clientupdater.CPW.main(CPW.java:67)
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsExce ption: Communications link failure
Last packet sent to the server was 0 ms ago.
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Construc tor.java:532)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:40 6)
at com.mysql.jdbc.SQLError.createCommunicationsExcept ion(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:335)
at com.mysql.jdbc.ConnectionImpl.createNewIO(Connecti onImpl.java:2043)
... 15 more
Caused by: java.net.UnknownHostException: localhosts
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddre ss.java:867)
at java.net.InetAddress.getAddressFromNameService(Ine tAddress.java:1246)
at java.net.InetAddress.getAllByName0(InetAddress.jav a:1197)
at java.net.InetAddress.getAllByName(InetAddress.java :1128)
at java.net.InetAddress.getAllByName(InetAddress.java :1064)
at com.mysql.jdbc.StandardSocketFactory.connect(Stand ardSocketFactory.java:243)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
... 16 more
Exception in thread "main" java.lang.NullPointerException
at com.pwemu.clientupdater.CPW.loadDb(CPW.java:48)
at com.pwemu.clientupdater.CPW.install(CPW.java:116)
at com.pwemu.clientupdater.CPW.main(CPW.java:67)
./instal.sh: line 2: pause: command not found
то же самое кто знает как решить ип пишу найм логин базу все пишу и такое( как проверить какая версия джавы стоит? из-за джавы может быть такое?
Последний раз редактировалось devakoz09; 03.02.2013 в 18:09.