Сообщений: 225
Тем: 15
Зарегистрирован: Nov 2010
Репутация:
201
Факинг шит! Ищите ошибки в гугле ...
Установлен слишком большой параметр -Xmx в батнике запуска гейм/гео/логин сервера.
Сообщений: 544
Тем: 45
Зарегистрирован: Dec 2010
Репутация:
106
01-02-2011, 08:20 PM
(Сообщение последний раз редактировалось: 01-03-2011, 01:02 PM Amorph1s.)
Сообщений: 1
Тем: 0
Зарегистрирован: Feb 2011
Репутация:
0
02-15-2011, 04:07 PM
(Сообщение последний раз редактировалось: 02-16-2011, 12:08 AM Cool.)
как гео отключить там_?
Сообщений: 2,124
Тем: 84
Зарегистрирован: Jul 2010
Репутация:
3,419
Описание:
Как все знают гео-дата в L2Phoenix включена всегда по умолчанию что конешно неудобно когда сервер например находится в разработке.
Чтобы исправить эту ситуацию пришлось немного поработать чтобы была возможность отключать гео-дату в сборке L2Phoenix 20715.
Как установить моё дополнение:
Для начала вам нужно пройти сюда в исходниках: Ваша_Папка\java\config\geodata.properties и открыв файл добавить: GeodataEnabled = False
Для работы в исходниках нам понадобится программа: Notepad++ лично я пользуюсь так как удобно искать куски кода.
И так программа есть поехали, делайте всё внимательно и всё у вас получится.
В исходниках идём сюда: Ваша_Папка\java\l2p\Config.java
Открыв файл ищем строчку: public static boolean GEODATA_DEBUG;
Вставляем выше той строчки: public static boolean GEODATA_ENABLED;
Ищем в этом же файле: Цитата:GEODATA_DEBUG = getBooleanProperty(geodataSettings, "GeodataDebug", false);
Вставляем выше той строчки: GEODATA_ENABLED = getBooleanProperty(geodataSettings, "GeodataEnabled", true);
В исходниках идём сюда: Ваша_Папка\java\l2p\gameserver\geodata\GeoEngine.java
Открыв файл ищем код:
Цитата:public static int getHeight(int x, int y, int z, int refIndex)
{
return NgetHeight(x - L2World.MAP_MIN_X >> 4, y - L2World.MAP_MIN_Y >> 4, z, refIndex);
}
И вставляем в этот код, должно получится так:
Цитата:public static int getHeight(int x, int y, int z, int refIndex)
{
if(!Config.GEODATA_ENABLED)
{
return z;
}
return NgetHeight(x - L2World.MAP_MIN_X >> 4, y - L2World.MAP_MIN_Y >> 4, z, refIndex);
}
Ищем в этом же файле код:
Цитата:public static void loadGeo()
{
log.info("Geo Engine: - Loading Geodata...");
File f = new File("./geodata");
if(!f.exists() || !f.isDirectory())
{
log.info("Geo Engine: Files missing, loading aborted.");
return;
}
И вставляем в этот код, должно получится так:
Цитата:public static void loadGeo()
{
if(Config.GEODATA_ENABLED)
{
log.info("Geo Engine: - Loading Geodata...");
File f = new File("./geodata");
if(!f.exists() || !f.isDirectory())
{
log.info("Geo Engine: Files missing, loading aborted.");
Config.GEODATA_ENABLED = false;
return;
}
Ищем в этом же файле код:
Цитата:log.info("Geo Engine: - Loaded " + counter + " map(s), max layers: " + MAX_LAYERS);
if(Config.COMPACT_GEO)
compact(true);
if(Config.ALLOW_DOORS)
for(L2DoorInstance door : DoorTable.getInstance().getDoors())
if(!door.isOpen() && door.getGeodata())
{
applyControl(door);
door.geoOpen = false;
}
}
И заменяем полностью на этот код, должно получится так:
Цитата:log.info("Geo Engine: - Loaded " + counter + " map(s), max layers: " + MAX_LAYERS);
if(counter == 0)
{
Config.GEODATA_ENABLED = false;
}
if(Config.COMPACT_GEO)
{
compact(true);
}
if(Config.ALLOW_DOORS)
{
for(L2DoorInstance door : DoorTable.getInstance().getDoors())
{
if(!door.isOpen() && door.getGeodata())
{
applyControl(door);
door.geoOpen = false;
}
}
}
}
else
{
log.info("Geo Engine: - Skipping geodata loading...");
}
}
В исходниках идём сюда: Ваша_Папка\java\l2p\gameserver\model\L2Character.java
Открыв файл ищем код:
Цитата:ArrayList<Location> moveList = GeoEngine.MoveList(getX(), getY(), getZ(), dest.x, dest.y, ref, true); // onlyFullPath = true - проверяем весь путь до конца
if(moveList != null) // null - до конца пути дойти нельзя
{
if(moveList.isEmpty()) // уже стоим на нужной клетке
return false;
applyOffset(moveList, offset);
if(moveList.isEmpty()) // уже стоим на нужной клетке
return false;
_targetRecorder.clear();
_targetRecorder.add(moveList);
return true;
}
И ниже после } вставляем:
Цитата:if(!Config.GEODATA_ENABLED)
{
applyOffset(dest, offset);
setSimplePath(dest);
return true;
}
Теперь если всё правильно сделали, скомпилировали и в конфиге geodata.properties поставили False, то гео-дата отключится и сможете ходить.
Автор: santaZX
Сообщений: 5
Тем: 0
Зарегистрирован: Mar 2011
Репутация:
0
Помогите!!!
Логин и гейм сервер запускается норм . как подходит дело к выбору сервера нажимаю допустим на Bartz 1 и в командной строке вылетает вот такая фентифлюшечка:
Starting L2P Login Server.
01:15:49.312 Gameserver Version: exported, build date: 2010.08.12 03:12
01:15:49.343 loading login config
01:15:49.375 MLog clients using java 1.4+ standard logging.
01:15:49.562 Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true
; trace: 10]
01:15:49.640 Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSourc
e [ acquireIncrement -> 5, acquireRetryAttempts -> 0, acquireRetryDelay -> 100,
autoCommitOnClose -> true, automaticTestTable -> null, breakAfterAcquireFailure
-> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectio
nTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSource
Name -> 2yk50q8e17h4v651j9tbzy|1787038, debugUnreturnedConnectionStackTraces ->
false, description -> null, driverClass -> com.mysql.jdbc.Driver, factoryClassLo
cation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 2yk
50q8e17h4v651j9tbzy|1787038, idleConnectionTestPeriod -> 60, initialPoolSize ->
1, jdbcUrl -> jdbc:mysql://localhost/l2db, maxAdministrativeTaskTime -> 0, maxCo
nnectionAge -> 0, maxIdleTime -> 600, maxIdleTimeExcessConnections -> 0, maxPool
Size -> 10, maxStatements -> 100, maxStatementsPerConnection -> 0, minPoolSize -
> 1, numHelperThreads -> 5, numThreadsAwaitingCheckoutDefaultUser -> 0, preferre
dTestQuery -> null, properties -> {user=******, password=******}, propertyCycle
-> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unret
urnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]
01:15:49.984 Loading LoginController...
01:15:50.000 Loaded Whirlpool as default crypt.
01:15:52.890 Cached 10 KeyPairs for RSA communication
01:15:53.156 Stored 20 keys for Blowfish communication
01:15:53.171 Loaded 127 server names
01:15:53.187 Loaded 1 registered Game Servers
01:15:53.578 Cached 10 RSA keys for Game Server communication.
01:15:53.640 Listening for GameServers on 127.0.0.1:9014
01:15:53.640 LoginServer: GS listener started.
01:15:53.640 LoginServer Telnet server is currently disabled.
01:15:53.640 Login Server ready on port 2106
01:15:53.640 0 banned IPs defined
01:15:54.421 Free memory 25 Mb of 30 Mb
01:15:54.437 Init connection crypt for gameserver 127.0.0.1: NewCrypt
01:15:54.437 Trying to register server: 1, 127.0.0.1
01:15:54.437 Login watchdog thread started
01:15:54.437 Updated Gameserver Bartz Hostname's:
01:15:54.437 InternalHostname: 127.0.0.1
01:15:54.437 ExternalHostname: 127.0.0.1
01:15:54.437 Server registration successful.
java.lang.NullPointerException
at l2p.loginserver.gameservercon.lspackets.PlayerAuthResponse.<init>(Pla
yerAuthResponse.java:17)
at l2p.loginserver.gameservercon.gspackets.PlayerAuthRequest.read(Player
AuthRequest.java:48)
at l2p.loginserver.gameservercon.gspackets.ClientBasePacket.run(ClientBa
sePacket.java:84)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Сообщений: 4,393
Тем: 77
Зарегистрирован: Jul 2009
Репутация:
69,266
Открой класс PlayerAuthResponse и замени
Код: public PlayerAuthResponse(L2LoginClient client, boolean authedOnLs)
{
writeC(3);
writeS(client.getAccount());
writeC(authedOnLs ? 1 : 0);
writeD(client.getSessionKey().playOkID1);
writeD(client.getSessionKey().playOkID2);
writeD(client.getSessionKey().loginOkID1);
writeD(client.getSessionKey().loginOkID2);
writeS(String.valueOf(client.getBonus())); //TODO переработать на использование account_fields
writeS(client.account_fields.serialize());
writeD(client.getBonusExpire());
}
.
на
Код: public PlayerAuthResponse(L2LoginClient client, boolean authedOnLs)
{
writeC(3);
writeS(client.getAccount());
writeC(authedOnLs ? 1 : 0);
writeD(client.getSessionKey().playOkID1);
writeD(client.getSessionKey().playOkID2);
writeD(client.getSessionKey().loginOkID1);
writeD(client.getSessionKey().loginOkID2);
writeS(String.valueOf(client.getBonus())); //TODO переработать на использование account_fields
if(client.account_fields != null)
{
writeS(client.account_fields.serialize());
writeD(client.getBonusExpire());
}
}
Сообщений: 5
Тем: 0
Зарегистрирован: Mar 2011
Репутация:
0
Извени что спрашиваю , но
1- Где найти этот файл PlayerAuthResponse. В папке с сером его нет
2- через что его открыть?
Сообщений: 5,670
Тем: 145
Зарегистрирован: Nov 2008
Репутация:
33,771
Цитата:l2p\loginserver\gameservercon\lspackets\PlayerAuthResponse.java
Открывать через любой редактор текста.
Web программист\разработчик
— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
Сообщений: 5
Тем: 0
Зарегистрирован: Mar 2011
Репутация:
0
чувствую я уже на пути к успеху. но вот когда я меняю код как посоветовал мне Ozzy
сохраняю и там нету типа .class тем самым я незнаю как сохранить. может нада под. java сохранять? и запихивать в l2p\loginserver\gameservercon\lspackets\ ?
Сообщений: 5,670
Тем: 145
Зарегистрирован: Nov 2008
Репутация:
33,771
Изменили java, сохранили и компилирйуте, потом соданный файл l2pserver.jar скидывайте в папку с сервером.
Web программист\разработчик
— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
|