ошибка байпасса - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Ответ
Опции темы
Непрочитано 11.03.2012, 19:58   #1
Пользователь

Автор темы (Топик Стартер) ошибка байпасса

при обращении к нпц ничего не происходит, в гс вылазит лог:


PHP код:
Telnet server is currently disabled.
Registered on login as Server 1 Bartz
FourSepulchersManager
Entry timeSun Mar 11 20:55:16 AZT 2012
[BypassCommand 'setTeam1Member' requires valid interaction characterbut not
found
Ask player Alister what happend
[BypassCommand 'setTeam2Member' requires valid interaction characterbut not
found
Ask player Alister what happend 
сборка l2dc/l2j

хтмл код нпц:
PHP код:
<br><br>
<
tr><a action="bypass -h setTeam2Member">блаблабал.</a></tr><br>
<
tr><a action="bypass -h setTeam1Member">блаблабла</a></tr><br>
<
br
нпц присвоен специальный класс, код в нем (не весь ):

PHP код:
    public void onBypassFeedback(L2PcInstance playerString command)
    {
        
        if (
command.startsWith("setTeam1Member"))
        {
            
showHtmlMenu(playergetObjectId(), 1);
        }
        else if (
command.startsWith("setTeam2Member"))
        {
            
showHtmlMenu(playergetObjectId(), 2);
        }


помогите
DarkFall вне форума Ответить с цитированием
Непрочитано 11.03.2012, 22:38   #2
Изгнанные

По умолчанию Re: ошибка байпасса

Наугад тут скажу:
Попробуйте сделать что-то по типу: npc_%objectId%_Chat 1
L2scripts-Guard вне форума Отправить сообщение для L2scripts-Guard с помощью Skype™ Ответить с цитированием
Непрочитано 12.03.2012, 11:51   #3
Пользователь

Автор темы (Топик Стартер) Re: ошибка байпасса

попробовал различные варианты, к сожалению, не помогло
DarkFall вне форума Ответить с цитированием
Непрочитано 15.03.2012, 18:11   #4
Пользователь

Автор темы (Топик Стартер) Re: ошибка байпасса

ап. проблема актуальна
DarkFall вне форума Ответить с цитированием
Непрочитано 15.03.2012, 18:16   #5
Пользователь

По умолчанию Re: ошибка байпасса

Скорее всего ошибка в коде Java.
Как я понял,в логах пишет,что требуется валидный ID чара,но не находит его.
LeMoN вне форума Ответить с цитированием
Непрочитано 15.03.2012, 20:45   #6
Пользователь

Автор темы (Топик Стартер) Re: ошибка байпасса

весь код:
PHP код:
package com.l2jserver.gameserver.model.actor.instance;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.StringTokenizer;
import java.lang.Object;
import java.lang.String;

import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
import com.l2jserver.gameserver.network.serverpackets.MyTargetSelected;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.network.serverpackets.SocialAction;
import com.l2jserver.gameserver.network.serverpackets.ValidateLocation;
import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
import com.l2jserver.util.Rnd;


import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;

import java.util.logging.Logger;

public class 
L2FactionInstance extends L2NpcInstance
{
    public 
L2FactionInstance(int objectIdL2NpcTemplate template)
    {    
        
super(objectIdtemplate);
        
setInstanceType(InstanceType.L2FactionInstance);
    }
    

    private static 
Logger _log Logger.getLogger(L2FactionInstance.class.getName());

    @
Override
    
public void onBypassFeedback(L2PcInstance playerString command)
    {
        
player.sendPacket(ActionFailed.STATIC_PACKET);
        
StringTokenizer st = new StringTokenizer(command" ");
        
String actualCommand st.nextToken();
        
String val "";
        if (
st.countTokens() >= 1)
        {
            
val st.nextToken();
        }
        
        else if (
actualCommand.equalsIgnoreCase("info"))
        {
            
String htmFile "data/html/mods/Faction/info.htm";
            
String htmContent HtmCache.getInstance().getHtm(htmFile);
            if (
htmContent != null)
            {
                
NpcHtmlMessage showHtml = new NpcHtmlMessage(1);
                
showHtml.setHtml(htmContent);
                
player.sendPacket(showHtml);
            }
            else
            {
                
_log.info("Failed to load info.htm File at data/html/mods/Faction! Make sure that you fix it soon!");
            }
        }
        else if (
command.startsWith("setTeam1Member"))
        
//else if (command.startsWith("2ndClass"))
        
{
            
setTarget(player);
            if (
player.isTeam1Member())
            {
                
player.sendMessage("You are already fighting for " Config.FACTION_TEAM1_NAME " faction!");
                
player.sendPacket(ActionFailed.STATIC_PACKET);
            }
            else
            {
                if (
player.isTeam2Member())
                {
                    
player.sendMessage("You can't change your Faction!");
                    
player.sendPacket(ActionFailed.STATIC_PACKET);
                }
                else
                {
                    
player.setTeam1Member(true);
                    
Connection connection null;
                    try
                    {
                        
connection L2DatabaseFactory.getInstance().getConnection();
                        
PreparedStatement statement connection.prepareStatement("SELECT obj_id FROM characters where char_name=?");
                        
statement.setString(1player.getName());
                        
ResultSet rset statement.executeQuery();
                        
int objId 0;
                        if (
rset.next())
                        {
                            
objId rset.getInt(1);
                        }
                        
rset.close();
                        
statement.close();
                        if (
objId == 0)
                        {
                            
connection.close();
                            return;
                        }
                        
statement connection.prepareStatement("UPDATE characters SET Team1Member=1 WHERE obj_id=?");
                        
statement.setInt(1objId);
                        
statement.execute();
                        
statement.close();
                        
connection.close();
                    }
                    catch (
Exception e)
                    {
                        
// do nothing
                    
}
                    
finally
                    
{
                        try
                        {
                            
connection.close();
                        }
                        catch (
Exception e)
                        {
                            
// do nothing
                        
}
                    }
                    
System.out.println("Faction Engine: Player " player.getName() + " has chosen to join the " Config.FACTION_TEAM1_NAME " faction!");
                    if (
player.isTeam1Member() == true)
                    {
                        
player.broadcastUserInfo();
                        
player.sendMessage("You are now fighiting for the " Config.FACTION_TEAM1_NAME " faction ");
                        
player.getAppearance().setNameColor(Config.FACTION_TEAM1_NAME_COLOR);
                        
player.setTitle(Config.FACTION_TEAM1_NAME);
                        
player.teleToLocation(Config.FACTION_TEAM1_BASE_XConfig.FACTION_TEAM1_BASE_YConfig.FACTION_TEAM1_BASE_Z);
                    }
                }
            }
        }
        else if (
actualCommand.equalsIgnoreCase("setTeam2Member"))
        {
            
setTarget(player);
            if (
player.isTeam2Member())
            {
                
player.sendMessage("You are allready fighting for the " Config.FACTION_TEAM2_NAME " faction!");
                
player.sendPacket(ActionFailed.STATIC_PACKET);
            }
            else
            {
                if (
player.isTeam1Member())
                {
                    
player.sendMessage("You can't change faction!");
                    
player.sendPacket(ActionFailed.STATIC_PACKET);
                }
                else
                {
                    
player.setTeam2Member(true);
                    
Connection connection null;
                    try
                    {
                        
connection L2DatabaseFactory.getInstance().getConnection();
                        
PreparedStatement statement connection.prepareStatement("SELECT obj_id FROM characters where char_name=?");
                        
statement.setString(1player.getName());
                        
ResultSet rset statement.executeQuery();
                        
int objId 0;
                        if (
rset.next())
                        {
                            
objId rset.getInt(1);
                        }
                        
rset.close();
                        
statement.close();
                        if (
objId == 0)
                        {
                            
connection.close();
                            return;
                        }
                        
statement connection.prepareStatement("UPDATE characters SET Team2Member=1 WHERE obj_id=?");
                        
statement.setInt(1objId);
                        
statement.execute();
                        
statement.close();
                        
connection.close();
                    }
                    catch (
Exception e)
                    {
                        
// do nothing
                    
}
                    
finally
                    
{
                        try
                        {
                            
connection.close();
                        }
                        catch (
Exception e)
                        {
                            
// do nothing
                        
}
                    }
                    
System.out.println("Faction Engine: Player " player.getName() + " has chosen to join the " Config.FACTION_TEAM2_NAME " faction!");
                    if (
player.isTeam2Member() == true)
                    {
                        
player.broadcastUserInfo();
                        
player.sendMessage("You are now fighiting now for the " Config.FACTION_TEAM2_NAME " faction!");
                        
player.getAppearance().setNameColor(Config.FACTION_TEAM2_NAME_COLOR);
                        
player.setTitle(Config.FACTION_TEAM2_NAME);
                        
player.teleToLocation(Config.FACTION_TEAM2_BASE_XConfig.FACTION_TEAM2_BASE_YConfig.FACTION_TEAM2_BASE_Z);
                    }
                }
            }
        }
        else
        {
            
super.onBypassFeedback(playercommand);
        }
    }

    @
Override
    
public void onAction(L2PcInstance player)
    {
        if (
this != player.getTarget())
        {
            
player.setTarget(this);
            
player.sendPacket(new MyTargetSelected(getObjectId(), player.getLevel() - getLevel()));
            
player.sendPacket(new ValidateLocation(this));
        }
        else if (
isInsideRadius(playerINTERACTION_DISTANCEfalsefalse))
        {
            
SocialAction sa = new SocialAction(getObjectId(), Rnd.get(8));
            
broadcastPacket(sa);
            
//wtf?
            //player.setLastFolkNPC(this);
            
showMessageWindow(player);
            
player.sendPacket(ActionFailed.STATIC_PACKET);
        }
        else
        {
            
player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACTthis);
            
player.sendPacket(ActionFailed.STATIC_PACKET);
        }
    }

    private 
void showMessageWindow(L2PcInstance player)
    {
        
NpcHtmlMessage html = new NpcHtmlMessage(1);
        
html.setFile(null"data/html/mods/Faction/faction.htm");
        
html.replace("%objectId%"String.valueOf(getObjectId()));
        
html.replace("%npcname%"getName());
        
player.sendPacket(html);
    }

    private 
void sendHtmlMessage(L2PcInstance playerNpcHtmlMessage html)
    {
        
html.replace("%objectId%"String.valueOf(getObjectId()));
        
html.replace("%npcname%"getName());
        
html.replace("%npcId%"String.valueOf(getNpcId()));
        
player.sendPacket(html);
    }

DarkFall вне форума Ответить с цитированием
Непрочитано 15.03.2012, 21:11   #7
Пользователь

По умолчанию Re: ошибка байпасса

Цитата:
Сообщение от iqman Посмотреть сообщение
Наугад тут скажу:
Попробуйте сделать что-то по типу: npc_%objectId%_Chat 1
Если я правильно рассудил по данному коду html.replace("%objectId%", String.valueOf(getObjectId()));
то нужно вот так
npc_%objectId%_setTeam1Member
niko42 вне форума Ответить с цитированием
Непрочитано 15.03.2012, 21:14   #8
Пользователь

По умолчанию Re: ошибка байпасса

Уверены что этот тот кусок кода?
В логе вывода не вижу того исключения,которое есть в логах у Вашего сервера.
LeMoN вне форума Ответить с цитированием
Непрочитано 16.03.2012, 13:20   #9
Пользователь

Автор темы (Топик Стартер) Re: ошибка байпасса

Цитата:
Сообщение от niko42 Посмотреть сообщение
Если я правильно рассудил по данному коду html.replace("%objectId%", String.valueOf(getObjectId()));
то нужно вот так
npc_%objectId%_setTeam1Member
вот что получилось в логах. специально пробовал разными чарами, на разный аккаунтах
PHP код:
[BypassCommand 'npc_268475938_setTeam1Member' requires valid interaction chara
cter
but not foundAsk player Alister what happend
[BypassCommand 'npc_268475938_setTeam1Member' requires valid interaction chara
cter
but not foundAsk player Alister what happend
[BypassCommand 'npc_268475938_setTeam1Member' requires valid interaction chara
cter
but not foundAsk player gm what happend
[BypassCommand 'npc_268475938_setTeam1Member' requires valid interaction chara
cter
but not foundAsk player gm what happend 
Цитата:
Сообщение от LeMoN Посмотреть сообщение
Уверены что этот тот кусок кода?
В логе вывода не вижу того исключения,которое есть в логах у Вашего сервера.
видимо, нет, но я не знаю, где еще может быть ошибка... поэтому и прошу помощи
DarkFall вне форума Ответить с цитированием
Непрочитано 24.03.2012, 20:45   #10
Пользователь

Автор темы (Топик Стартер) Re: ошибка байпасса

не актуально. сделал через классмастера, через нового нпц так и не получилось
DarkFall вне форума Ответить с цитированием
Ответ

Метки
l2dc, l2j-copypaste, lol, share, шара


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


© 2007–2019 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 03:33. Часовой пояс GMT +3.

Вверх