Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   Ограничение онлайна (исходники) (https://forum.zone-game.info/showthread.php?t=38715)

KateKate7912 20.06.2015 17:55

Ограничение онлайна (исходники)
 
Здравствуйте ребят!
Задача такая.
Нужно сделать ограничение по онлайну в исходном коде скажем в 10 человек.
В шаре я нашла статью как сделать привязку к ip адресу а с ограничением ничего подобного не нашла.
Дайте совет пожалуйста по данному вопросу! Буду благодарна! ;)

slayer48 20.06.2015 17:55

Re: Ограничение онлайна (исходники)
 
вроде бы такое в конфигах есть )

KateKate7912 20.06.2015 17:58

Re: Ограничение онлайна (исходники)
 
Цитата:

Сообщение от slayer48 (Сообщение 396611)
вроде бы такое в конфигах есть )

Вы не поняли) Нужно сделать ограничение в исходном коде именно в 5-10 человек что бы дать человеку посмотреть сборку) Конфиг не должен участвовать в этом.
Опытные администраторы поняли о чем я говорю)

Shayne 20.06.2015 18:01

Re: Ограничение онлайна (исходники)
 
Ну так посмотрите вызовы конфигов и впилите ограничение напрямую в исходники.
И что вы ходите дать посмотреть, если не способны реализовать такую простую вещь? Интересно получается...

n3k0nation 20.06.2015 18:03

Re: Ограничение онлайна (исходники)
 
Код:

public class ProtocolVersion extends L2GameClientPacket {
        private static final String _C__00_PROTOCOLVERSION = "[C] 00 ProtocolVersion";
        private int version;

        @Override
        protected void read() {
                version = readD();
        }

        @Override
        protected void execute() {
                L2GameClient client = getClient();
                if(Build.getInstance().isDebug() && version == -100500) { //net stress test
                        client.sendPacket(new RequestNetPing());
                        return;
                }
               
                if(L2World.getInstance().getAllRefPlayersCount() > 10) {
                        client.close(ServerClose.STATIC_PACKET);
                        return;
                }
               
                if (version == -2L) { //client ping
                        client.closeForce();
                        return;
                }
               
                if (version == -3L) { //status
                        client.close(new SendStatus());
                        return;
                }
               
                if(version < Config.MIN_PROTOCOL_REVISION || version > Config.MAX_PROTOCOL_REVISION) {
                        client.close(ServerClose.STATIC_PACKET);
                        return;
                }
               
                client.setPatchVersion(version);
                byte[] key = client.enableCrypt();
                byte[] answer = new byte[8];
                System.arraycopy(key, 0, answer, 0, 8);

                client.setProtocolOk(true);
                client.setProtocolVer(version);
                client.setAuthed(true);
                sendPacket(new KeyPacket(answer));
        }

        @Override
        public String getType() {
                return _C__00_PROTOCOLVERSION;
        }
}

Можно вообще засунуть в accept'e селектора, тут уж как угодно можно крутить.

KateKate7912 20.06.2015 18:13

Re: Ограничение онлайна (исходники)
 
Цитата:

Сообщение от Shayne (Сообщение 396614)
Ну так посмотрите вызовы конфигов и впилите ограничение напрямую в исходники.
И что вы ходите дать посмотреть, если не способны реализовать такую простую вещь? Интересно получается...

Я ничего не продаю, так сложилось что я не хочу что бы у него была эта сборка. Естественно я спросила у вас умного как это сделать так как не имею нужных знаний. Не могли бы вы дать пример как вписать напрямую? :) Была бы вам очень признательна!

Добавлено через 1 минуту
Цитата:

Сообщение от Pointer*Rage (Сообщение 396615)
Код:

public class ProtocolVersion extends L2GameClientPacket {
        private static final String _C__00_PROTOCOLVERSION = "[C] 00 ProtocolVersion";
        private int version;

        @Override
        protected void read() {
                version = readD();
        }

        @Override
        protected void execute() {
                L2GameClient client = getClient();
                if(Build.getInstance().isDebug() && version == -100500) { //net stress test
                        client.sendPacket(new RequestNetPing());
                        return;
                }
               
                if(L2World.getInstance().getAllRefPlayersCount() > 10) {
                        client.close(ServerClose.STATIC_PACKET);
                        return;
                }
               
                if (version == -2L) { //client ping
                        client.closeForce();
                        return;
                }
               
                if (version == -3L) { //status
                        client.close(new SendStatus());
                        return;
                }
               
                if(version < Config.MIN_PROTOCOL_REVISION || version > Config.MAX_PROTOCOL_REVISION) {
                        client.close(ServerClose.STATIC_PACKET);
                        return;
                }
               
                client.setPatchVersion(version);
                byte[] key = client.enableCrypt();
                byte[] answer = new byte[8];
                System.arraycopy(key, 0, answer, 0, 8);

                client.setProtocolOk(true);
                client.setProtocolVer(version);
                client.setAuthed(true);
                sendPacket(new KeyPacket(answer));
        }

        @Override
        public String getType() {
                return _C__00_PROTOCOLVERSION;
        }
}

Можно вообще засунуть в accept'e селектора, тут уж как угодно можно крутить.

Извините но это для меня слишком сложно)
Спасибо большое! Я подожду ответа участника выше как вписать напрямую)

n3k0nation 20.06.2015 18:17

Re: Ограничение онлайна (исходники)
 
Цитата:

Сообщение от KateKate7912 (Сообщение 396621)
Извините но это для меня слишком сложно)

Скопировать 3 строчки кода?..

Напрямую, это вот так, например:
Config.java
Находим нечто вроде этого
Код:

MAXIMUM_ONLINE_USERS = Integer.parseInt(gsSettings.getProperty("MaximumOnlineUsers", "1000"));
Изменяем на это:
Код:

MAXIMUM_ONLINE_USERS = 10;

KateKate7912 20.06.2015 18:18

Re: Ограничение онлайна (исходники)
 
Цитата:

Сообщение от Pointer*Rage (Сообщение 396623)
Скопировать 3 строчки кода?..

Напрямую, это вот так, например:
Config.java
Находим нечто вроде этого
Код:

MAXIMUM_ONLINE_USERS = Integer.parseInt(gsSettings.getProperty("MaximumOnlineUsers", "1000"));
Изменяем на это:
Код:

MAXIMUM_ONLINE_USERS = 10;

Большое вам спасибо! Вы самый добрый человек на свете!;)

slayer48 20.06.2015 19:17

Re: Ограничение онлайна (исходники)
 
ой это я не дочитал, извиняюсь =)


Текущее время: 05:41. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot