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

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

derron116 24.02.2011 14:58

Помогите переделать проверку! Пожалуйста!
 
PHP код:

else if (playerInstance.getKarma() > 0)
            {
                
htmContent HtmCache.getInstance().getHtm(htmlPath+"Karma.htm");
                if (
htmContent != null)
                    
npcHtmlMessage.setHtml(htmContent);
            } 

Это проверка на Карму при регистрации на ТвТ.

То что тут проверяет и по какому принципу мне понятно...

Вопрос вот в чем... как сделать проверку на IP адрес.

Т.е. посмотреть все IP которые уже зарегистрировались
Сравнить их с IP того кто пытается зарегистрироваться.

Если есть такой IP среди зарегистрированных то вывести
PHP код:

HtmCache.getInstance().getHtm(htmlPath+"IP.htm"); 

Если такого нету, то пропустить дальше.

Помогите мои мысли перевоплотить в священный Java код:)

Добавлено через 51 минуту
PHP код:

if (!Config.ALT_OLY_SAME_IP)
                {
                    
String _playerOneIp _playerOne.getClient().getConnection().getInetAddress().getHostAddress();
                    
String _playerTwoIp _playerTwo.getClient().getConnection().getInetAddress().getHostAddress();
                    if (
_playerOneIp.equals(_playerTwoIp))
                    {
                        
String classed "no";
                        switch (
_type)
                        {
                            case 
CLASSED:
                                
classed "yes";
                                break;
                        }
                        if (
Config.ALT_OLY_LOG_FIGHTS)
                        {
                            
LogRecord record = new LogRecord(Level.INFO_playerOneName " default");
                            
record.setParameters(new Object[] { _playerOneName_playerTwoName0D0D00"same ip"0classed });
                            
_logResults.log(record);
                        }
                        
_playerOne.sendMessage("Match aborted due to same ip-address of your enemy.");
                        
_playerTwo.sendMessage("Match aborted due to same ip-address of your enemy.");
                        
_aborted true;
                        
clearPlayers();
                    }
                } 

Немного порывшись нашел вот такую проверку на IP в олимпиаде.

KilRoy 24.02.2011 23:13

Re: Помогите переделать проверку! Пожалуйста!
 
Выводи методы туда куда тебе надо (в твт), и делай по аналогии как в олимпе, только учти что там не 1н плеер ;)
Тут минимум знания англ языка + знание структуры сервера + немного копипаста ну и + импровизация :)

derron116 25.02.2011 01:18

Re: Помогите переделать проверку! Пожалуйста!
 
Ну то, что там для 2-х это понятно... не понятно как это сделать для н-ного количества... для всей массы....

Ro_0TT 25.02.2011 07:49

Re: Помогите переделать проверку! Пожалуйста!
 
Сборка какая? :obamafacepalm: Введите уже меры наказания за не указание сборки...)

derron116 25.02.2011 11:31

Re: Помогите переделать проверку! Пожалуйста!
 
L2open, GF, 690.

Ro_0TT 25.02.2011 12:31

Re: Помогите переделать проверку! Пожалуйста!
 
Не знаю эту сборку, в общем суть в том, что в эвентах есть массив игроков, типо:
GArray<L2Player> players;

Или массив двух команд, но суть не этом... При регистрации проходим по всему массиву и проверяем наличие такого же IP как и у игрока:

 
String IPRegPlayer = regPlayer.getClient().getConnection().getInetAddress().getHostAddress(); //Получаем IP адрес игрока, который регистрируется
for(L2Player pl : players)
	if (pl!=null)
		if(pl.getClient().getConnection().getInetAddress().getHostAddress().equals(IPRegPlayer)) //получаем IP адрес каждого игрока, который уже зарегестрирован на эвенте, если нашли - запрещаем регистрацию.
		{
			regPlayer.sendMessage("Совпадение IP адресса, вы не можете зарегестрироваться на эвенте");
			return;
		}
Code: Java
Дальше сам... ничего сложного в этом нет.

derron116 25.02.2011 12:54

Re: Помогите переделать проверку! Пожалуйста!
 
Спасибо большое! Буду тестить.

Добавлено через 23 минуты
Код:

String IPRegPlayer = playerInstance.getClient().getConnection().getInetAddress().getHostAddress(); //Получаем IP адрес игрока, который регистрируется
for(L2Character pl : players)
        if (pl!=null)
                if(pl.getClient().getConnection().getInetAddress().getHostAddress().equals(IPRegPlayer)) //получаем IP адрес каждого игрока, который уже зарегестрирован на эвенте, если нашли - запрещаем регистрацию.
                {
                        playerInstance.sendMessage("Совпадение IP адресса, вы не можете зарегестрироваться на эвенте");
                        return;
                }

По идеи так... Логика есть?:)

Ro_0TT 25.02.2011 13:26

Re: Помогите переделать проверку! Пожалуйста!
 
Либо L2Player либо L2PcInstance. "playerInstance" - это лишь название переменной.

derron116 25.02.2011 14:32

Re: Помогите переделать проверку! Пожалуйста!
 
Код:

String IPRegPlayer = L2PcInstance.getClient().getConnection().getInetAddress().getHostAddress(); //Получаем IP адрес игрока, который регистрируется
for(L2Character pl : players)
        if (pl!=null)
                if(pl.getClient().getConnection().getInetAddress().getHostAddress().equals(IPRegPlayer)) //получаем IP адрес каждого игрока, который уже зарегестрирован на эвенте, если нашли - запрещаем регистрацию.
                {
                        L2PcInstance.sendMessage("Совпадение IP адресса, вы не можете зарегестрироваться на эвенте");
                        return;
                }

Тоесть конечный результат вот такой?

Ro_0TT 25.02.2011 14:42

Re: Помогите переделать проверку! Пожалуйста!
 
О боже.. :facepalm:, ты сам-то слушал это?

 
String IPRegPlayer = regPlayer.getClient().getConnection().getInetAddress().getHostAddress(); //Получаем IP адрес игрока, который регистрируется
for(L2PcInstance pl : players)
	if (pl!=null)
		if(pl.getClient().getConnection().getInetAddress().getHostAddress().equals(IPRegPlayer)) //получаем IP адрес каждого игрока, который уже зарегестрирован на эвенте, если нашли - запрещаем регистрацию.
		{
			regPlayer.sendMessage("Совпадение IP адресса, вы не можете зарегестрироваться на эвенте");
			return;
		}
Code: Java


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

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