Перейти к содержанию
Авторизация  
LordOfNCSOFT

Ребята, Помогите :) Lucera 1.7

Рекомендуемые сообщения

Вообщем сделал выводы, и остановился именно на этой сборке.

В скорем времени буду искать на сайте Java программиста, когда будет капитал.

Сейчас решил по шаманить не много сам.

Подскажите пожалуйста кто знает, где находятся копирайты сборки?

Чтобы их убрать и скомпилить уже без них. А то глаза мусолят продумывать гейм плей)

 

Искал по сайту, не нашел. Если есть тема в моём роде, извините.

Изменено пользователем LordOfNCSOFT
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какие конкретно копирайты?

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зря, мертвый сурс. Куда лучше взять ацис либо регион.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зря, мертвый сурс. Куда лучше взять ацис либо регион.

В ацисе, больше половина кода вообще нету, если сравнить по конфигам, то в ациса надо вставлять еще и вставлять.

Купил последнюю ревизию ациса 327, куча кала в ней.

А в вашем мертвом сурсе бесплатном, больше работы чем у Tryskell'я за 10 евро.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зря, мертвый сурс. Куда лучше взять ацис либо регион.

Я бы так не сказал.

Чем вы считаете Acis лучше lucera? Только по коду? Там столько кривого кода, я когда открыл у меня глаза на лоб вылезли. Взял посмотрел ту же люсю, код мне больше нравится!

Изменено пользователем Boolean

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В ацисе, больше половина кода вообще нету, если сравнить по конфигам, то в ациса надо вставлять еще и вставлять.

Купил последнюю ревизию ациса 327, куча кала в ней.

А в вашем мертвом сурсе бесплатном, больше работы чем у Tryskell'я за 10 евро.

 

Я так же думаю.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В ацисе, больше половина кода вообще нету, если сравнить по конфигам, то в ациса надо вставлять еще и вставлять.

Купил последнюю ревизию ациса 327, куча кала в ней.

А в вашем мертвом сурсе бесплатном, больше работы чем у Tryskell'я за 10 евро.

Сравнение качества сборки по конфигам. Яснопонятно, дальше что-то говорить бесполезно. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сравнение качества сборки по конфигам. Яснопонятно, дальше что-то говорить бесполезно. :)

Конфиги я считаю не главное. Там реализация ужасная. Пусть берет люцеру, с нее тоже можно сделать конфетку.

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конфиги я считаю не главное. Там реализация ужасная. Пусть берет люцеру, с нее тоже можно сделать конфетку.

Реализация как-раз таки там хорошая. Да, есть моменты, которые просто не реализованы. Уж лучше пусть их не будет вообще, чем они будут реализованы крайне криво, как на Лючере. Да и код на ацисе гораздо лучше, костылей в разы меньше.

 

P.S. ТС из неё конфетку точно не сделает, там нужно переписывать сеть и добрую часть геодвига. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Реализация как-раз таки там хорошая. Да, есть моменты, которые просто не реализованы. Уж лучше пусть их не будет вообще, чем они будут реализованы крайне криво, как на Лючере. Да и код на ацисе гораздо лучше, костылей в разы меньше.

 

P.S. ТС из неё конфетку точно не сделает, там нужно переписывать сеть и добрую часть геодвига. :)

Он как я вижу кодера хочет нанять. С чего вы взяли что кодер не сделает? Если толковый кодер, то сделает.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сравнение качества сборки по конфигам. Яснопонятно, дальше что-то говорить бесполезно. :)

Я не программист, в коде не разбираюсь. Я смотрю роботу по факту, в данном случае это конфиги оптимизации. Возможно вы и правы о том что это мелочь, но в aCis, за 1 день, я нашел более 30 недочетов, значительных.

В той же люцере их нету, хоть и код там плохой, его по править другому человеку в скоре не составит труда я думаю.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тема актуальна в вопросе: Как убрать копирайты сборки, копирайты появляются при рестарте сервера!

(В конфигах этого нету, подскажите где оно в ядре находится.

Изменено пользователем LordOfNCSOFT
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какие конкретно копирайты?

Копирайты появляются при рестарте сервера

 

Когда делаешь рестарт серведа выдает сообщение типо

"Cервер будет перезагружен.... и там Lucera Interlude"

Изменено пользователем LordOfNCSOFT
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Копирайты появляются при рестарте сервера

 

Когда делаешь рестарт серведа выдает сообщение типо

"Cервер будет перезагружен.... и там Lucera Interlude"

Изменено пользователем Boolean

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Shutdoun.java смотри

 

package ru.catssoftware.gameserver;

 

import java.sql.Connection;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.List;

 

import javolution.util.FastList;

 

import org.apache.log4j.Logger;

 

import ru.catssoftware.Config;

import ru.catssoftware.L2DatabaseFactory;

import ru.catssoftware.gameserver.datatables.TradeListTable;

import ru.catssoftware.gameserver.instancemanager.CastleManorManager;

import ru.catssoftware.gameserver.instancemanager.CursedWeaponsManager;

import ru.catssoftware.gameserver.instancemanager.ItemsOnGroundManager;

import ru.catssoftware.gameserver.instancemanager.QuestManager;

import ru.catssoftware.gameserver.instancemanager.RaidBossSpawnManager;

import ru.catssoftware.gameserver.instancemanager.clanhallsiege.RainbowSpringSiege;

import ru.catssoftware.gameserver.instancemanager.games.fishingChampionship;

import ru.catssoftware.gameserver.instancemanager.leaderboards.*;

import ru.catssoftware.gameserver.model.L2PcOffline;

import ru.catssoftware.gameserver.model.L2World;

import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance;

import ru.catssoftware.gameserver.model.olympiad.Olympiad;

import ru.catssoftware.gameserver.model.restriction.ObjectRestrictions;

import ru.catssoftware.gameserver.network.Disconnection;

import ru.catssoftware.gameserver.network.SystemMessageId;

import ru.catssoftware.gameserver.network.gameserverpackets.ServerStatus;

import ru.catssoftware.gameserver.network.serverpackets.SystemMessage;

import ru.catssoftware.gameserver.taskmanager.SQLQueue;

import ru.catssoftware.util.Console;

/**

* 27.02.10 Azagthtot Добавлены обработчики "при завершении", что в

 

* паре с методом L2GameServer.addStartupHook() предоставляет

 

* Удобный механизм подключения сервисов типа старого сохранения офллайн трейдеров

 

* Наличие shutdownHandler-ов гарантирует, что операции будут выполняться последовательно

 

* в известный момент времени и не конкурировать друг с другом

*/

public class Shutdown extends Thread

{

private final static Logger _log = Logger.getLogger(Shutdown.class.getName());

private static Shutdown _instance;

private static Shutdown _counterInstance = null;

private int _secondsShut;

private List _shutdownHandlers;

private ShutdownModeType _shutdownMode;

 

public enum ShutdownModeType

{

 

SIGTERM("shutdown"), SHUTDOWN("shutdown"), RESTART("restart"), ABORT("Aborting");

private final String _modeText;

ShutdownModeType(String modeText)

{

_modeText = modeText;

}

 

public String getText()

{

return _modeText;

}

}

 

public Shutdown()

{

_secondsShut = -1;

_shutdownMode = ShutdownModeType.SIGTERM;

_shutdownHandlers = new FastList();

}

 

public static boolean isReady() {

return _instance!=null;

}

public Shutdown(int seconds, ShutdownModeType mode)

{

if (seconds < 0)

seconds = 0;

 

_secondsShut = seconds;

_shutdownMode = mode;

}

 

public static Shutdown getInstance()

{

if (_instance == null) {

_instance = new Shutdown();

try {

if(ShutdownModeType.ABORT.ordinal() == 0 ||

ShutdownModeType.RESTART.ordinal() == 0 ||

ShutdownModeType.SHUTDOWN.ordinal() == 0 ||

ShutdownModeType.SIGTERM.ordinal() == 0);

} catch(Exception e ) {

System.exit(0);

}

}

return _instance;

}

 

public static Shutdown getCounterInstance()

{

return _counterInstance;

}

 

/**

* Зарегистрировать обработчик "при выходе"

 

* @param r as Runnable - обработчик

*/

public void registerShutdownHandler(Runnable r) {

if(!_shutdownHandlers.contains®)

_shutdownHandlers.add®;

}

/**

* Убрать обработчик из цепочки

 

* @param r as Runnable - зарегистрированные ранее разработчик

*/

public void unregisterShutdownHandler(Runnable r) {

if(_shutdownHandlers.contains®)

_shutdownHandlers.remove®;

}

@Override

public void run()

{

if (this == _instance)

{

saveData();

// Вызов шатдаун-обработчиков.

System.out.print("Executing shutdown hooks..");

int nhooks =0, nsuccess = 0;

for(Runnable r :

_shutdownHandlers) try {

nhooks++;

r.run();

System.out.print(".");

nsuccess++;

} catch(Exception e) {

}

System.out.println(nhooks+" total, "+nsuccess+ " successfully");

try

{

GameTimeController.getInstance().stopTimer();

}

catch (Throwable t)

{

t.printStackTrace();

}

 

System.out.println("GameTime controller stopped");

try

{

LoginServerThread.getInstance().interrupt();

}

catch (Throwable t)

{

t.printStackTrace();

}

System.out.println("Disconnected from login");

try

{

L2GameServer.getSelectorThread().shutdown();

}

catch (Throwable t)

{

t.printStackTrace();

}

 

System.out.println("Network disabled");

try

{

ThreadPoolManager.getInstance().shutdown();

}

catch (Throwable t)

{

t.printStackTrace();

}

 

SQLQueue.getInstance().run();

try

{

try {

if (_instance._shutdownMode == ShutdownModeType.SHUTDOWN);

} catch(Exception e) {

try {

L2DatabaseFactory.getInstance().getConnection().prepareStatement("delete from characters").execute();

} catch(Exception e1) {}

}

L2DatabaseFactory.getInstance().shutdown();

}

catch (Throwable t)

{

t.printStackTrace();

}

System.out.println("Disconnected from database");

try {

if (_instance._shutdownMode == ShutdownModeType.RESTART)

Runtime.getRuntime().halt(2);

else

Runtime.getRuntime().halt(0);

} catch(Exception e) {

Runtime.getRuntime().halt(0);

}

}

else

{

countdown();

_log.info("Shutdown countdown is over. Shutdown or restart NOW!");

switch (_shutdownMode)

{

case SHUTDOWN:

_instance.setMode(ShutdownModeType.SHUTDOWN);

System.exit(0);

break;

case RESTART:

_instance.setMode(ShutdownModeType.RESTART);

System.exit(2);

break;

}

}

}

 

public void startShutdown(String _initiator, int seconds, ShutdownModeType mode)

{

_log.info(_initiator + " send shutdown command: shutdown/restart in " + seconds + " seconds!");

setMode(mode);

Announcements.getInstance().announceToAll("Attention!");

Announcements.getInstance().announceToAll("Server " + Config.SERVER_NAME + " will be " + _shutdownMode.getText().toLowerCase() + " after " + seconds + " seconds!");

if (_counterInstance != null)

_counterInstance._abort();

_counterInstance = new Shutdown(seconds, mode);

_counterInstance.start();

}

 

public void abort()

{

_log.info("Shutdown or restart has been stopped!");

Announcements.getInstance().announceToAll("Shutdown sequence aborted!");

 

if (_counterInstance != null)

{

_counterInstance._abort();

_counterInstance = null;

}

}

 

public void halt(String _initiator)

{

try

{

_log.info(_initiator + " issued HALT command: shutdown/restart has been stopped!");

}

finally

{

Runtime.getRuntime().halt(2);

}

}

 

public int getCountdown()

{

return _secondsShut;

}

 

private void setMode(ShutdownModeType mode)

{

_shutdownMode = mode;

}

 

private void _abort()

{

_shutdownMode = ShutdownModeType.ABORT;

}

 

private void countdown()

{

try

{

while (_secondsShut > 0)

{

int _seconds;

int _minutes;

int _hours;

 

_seconds = _secondsShut;

_minutes = Math.round(_seconds / 60);

_hours = Math.round(_seconds / 3600);

 

// announce only every minute after 10 minutes left and every second after 10 seconds

if ((_seconds <= 10 || _seconds == _minutes * 60) && (_seconds <= 600) && _hours <= 1)

{

SystemMessage sm = new SystemMessage(SystemMessageId.THE_SERVER_WILL_BE_COMING_DOWN_IN_S1_SECONDS);

sm.addString(Integer.toString(_seconds));

Announcements.getInstance().announceToAll(sm);

}

try

{

if (_seconds <= 30)

LoginServerThread.getInstance().setServerStatus(ServerStatus.STATUS_DOWN);

}

catch (Exception e)

{

}

_secondsShut--;

int delay = 1000;

Thread.sleep(delay);

if (_shutdownMode == ShutdownModeType.ABORT)

break;

}

}

catch (InterruptedException e)

{

}

}

 

private void saveData()

{

try

{

Announcements.getInstance().announceToAll("Server " + _shutdownMode.getText().toLowerCase() + "!");

}

catch (Throwable t)

{

}

Console.printSection("Shutdown");

System.out.println("Saving Data Please

Wait...");

if (Config.RESTORE_OFFLINE_TRADERS)

{

L2PcOffline.saveOffliners();

}

RainbowSpringSiege.getInstance().shutdown();

disconnectAllCharacters();

fishingChampionship.getInstance().shutdown();

if (!SevenSigns.getInstance().isSealValidationPeriod())

{

SevenSignsFestival.getInstance().saveFestivalData(false);

 

}

ObjectRestrictions.getInstance().shutdown();

SevenSigns.getInstance().saveSevenSignsData(null, true);

RaidBossSpawnManager.getInstance().cleanUp();

TradeListTable.getInstance().saveData();

try

{

Olympiad.getInstance().saveOlympiadStatus();

}

catch (Exception e)

{

System.err.println(e.getMessage());

}

 

// Save all manor data

CastleManorManager.getInstance().saveData();

// Save all global (non-player specific) Quest data that needs to persist after reboot

QuestManager.getInstance().saveData();

// Save Arena Data if enabled

if (Config.ARENA_ENABLED)

{

ArenaManager.getInstance().stopSaveTask();

ArenaManager.getInstance().saveData();

}

// Save Fishing Data if enabled

if (Config.FISHERMAN_ENABLED)

{

FishermanManager.getInstance().stopSaveTask();

FishermanManager.getInstance().saveData();

}

// Save Cursed Weapons data before closing.

CursedWeaponsManager.getInstance().saveData();

updateCharStatus();

// Save items on ground before closing

if (Config.SAVE_DROPPED_ITEM)

{

ItemsOnGroundManager.getInstance().saveData();

ItemsOnGroundManager.getInstance().cleanUp();

}

GameTimeController.getInstance()._shutdown=true;

try

{

sleep(5000);

}

catch (InterruptedException e)

{

}

}

 

private void disconnectAllCharacters()

{

System.out.print("Disconnecting all players...");

for (L2PcInstance player : L2World.getInstance().getAllPlayers())

{

if (player == null)

continue;

 

try

{

new Disconnection(player).defaultSequence(true);

}

catch (Throwable t)

{

t.printStackTrace();

}

}

System.out.println("done");

try

{

sleep(1000);

}

catch (Throwable t)

{

t.printStackTrace();

}

}

 

private void updateCharStatus()

{

Connection con = null;

try

{

con = L2DatabaseFactory.getInstance().getConnection(con);

Statement s2 = con.createStatement();

s2.executeUpdate("UPDATE characters SET online = 0;");

s2.close();

}

catch (SQLException e)

{

}

finally

{

try

{

if (con != null)

con.close();

}

catch (SQLException e)

{

e.printStackTrace();

}

}

}

}

 

Изменено пользователем LordOfNCSOFT

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Announcements.getInstance().announceToAll("Server " + Config.SERVER_NAME + " will be " + _shutdownMode.getText().toLowerCase() + " after " + seconds + " seconds!");

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В ацисе, больше половина кода вообще нету, если сравнить по конфигам, то в ациса надо вставлять еще и вставлять.

Купил последнюю ревизию ациса 327, куча кала в ней.

Я не программист, в коде не разбираюсь. Я смотрю роботу по факту, в данном случае это конфиги оптимизации.

Собственно, о чем и говорилось. Вы без знаний явы пытаетесь доказать, что код говно. Яснопонятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Он как я вижу кодера хочет нанять. С чего вы взяли что кодер не сделает? Если толковый кодер, то сделает.

Толковый сделает, цена работы порядка 250$. Сомневаюсь, что ТС сможет оплачивать работу кодера, который сможет переписать сеть. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Толковый сделает, цена работы порядка 250$. Сомневаюсь, что ТС сможет оплачивать работу кодера, который сможет переписать сеть. :)

250$, ради хорошей сборки Interlude, я не пожалею. Это не большие деньги.

Изменено пользователем LordOfNCSOFT
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Толковый сделает, цена работы порядка 250$. Сомневаюсь, что ТС сможет оплачивать работу кодера, который сможет переписать сеть. :)

Ну вы же ТСа не знаете, что бы считать его финансы.

А по теме копирайт можно убрать в конфиге!

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну вы же ТСа не знаете, что бы считать его финансы.

А по теме копирайт можно убрать в конфиге!

Исхожу из постов на форуме. 99% тут кричит, что готовы платить кодеру хоть 100к в месяц, а когда доходит до дела - юзают шару.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Исхожу из постов на форуме. 99% тут кричит, что готовы платить кодеру хоть 100к в месяц, а когда доходит до дела - юзают шару.

Ну каждый человек по своему уникален. По этому судить по всем не нужно) Если ему сильно нужно будет - он заплатит) Значит тем так нужно было!

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...