Рейтинг темы:
  • 1 Голос(ов) - 1 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
ошибка байпасса
#1
при обращении к нпц ничего не происходит, в гс вылазит лог:


PHP код:
<?php 
Telnet server is currently disabled
.
Registered on login as Server 1 : Bartz
FourSepulchersManager
: Entry time: Sun Mar 11 20:55:16 AZT 2012
[Bypass] Command 'setTeam1Member' requires valid interaction character, but not
found
. Ask player Alister what happend
[Bypass] Command 'setTeam2Member' requires valid interaction character, but not
found
. Ask player Alister what happend

сборка l2dc/l2j

хтмл код нпц:
PHP код:
<?php 
<br><br>
<
tr><a action="bypass -h setTeam2Member">блаблабал.</a></tr><br>
<
tr><a action="bypass -h setTeam1Member">блаблабла</a></tr><br>
<
br>

нпц присвоен специальный класс, код в нем (не весь :Olen'Smile:

PHP код:
<?php 
public void onBypassFeedback(L2PcInstance player, String command)
{

if (
command.startsWith("setTeam1Member"))
{
showHtmlMenu(player, getObjectId(), 1);
}
else if (
command.startsWith("setTeam2Member"))
{
showHtmlMenu(player, getObjectId(), 2);
}
}


помогите Sad
Ответ
#2
Наугад тут скажу:
Попробуйте сделать что-то по типу: npc_%objectId%_Chat 1
Ответ
#3
попробовал различные варианты, к сожалению, не помогло
Ответ
#4
ап. проблема актуальна
Ответ
#5
Скорее всего ошибка в коде Java.
Как я понял,в логах пишет,что требуется валидный ID чара,но не находит его.
Ответ
#6
весь код:
PHP код:
<?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 objectId, L2NpcTemplate template)
{
super(objectId, template);
setInstanceType(InstanceType.L2FactionInstance);
}


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

@
Override
public void onBypassFeedback(L2PcInstance player, String 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(1, player.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(1, objId);
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_X, Config.FACTION_TEAM1_BASE_Y, Config.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(1, player.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(1, objId);
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_X, Config.FACTION_TEAM2_BASE_Y, Config.FACTION_TEAM2_BASE_Z);
}
}
}
}
else
{
super.onBypassFeedback(player, command);
}
}

@
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(player, INTERACTION_DISTANCE, false, false))
{
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_INTERACT, this);
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 player, NpcHtmlMessage html)
{
html.replace("%objectId%", String.valueOf(getObjectId()));
html.replace("%npcname%", getName());
html.replace("%npcId%", String.valueOf(getNpcId()));
player.sendPacket(html);
}
}
Ответ
#7
iqman Написал:Наугад тут скажу:
Попробуйте сделать что-то по типу: npc_%objectId%_Chat 1

Если я правильно рассудил по данному коду html.replace("%objectId%", String.valueOf(getObjectId()));
то нужно вот так
npc_%objectId%_setTeam1Member
Ответ
#8
Уверены что этот тот кусок кода?
В логе вывода не вижу того исключения,которое есть в логах у Вашего сервера.
Ответ
#9
niko42 Написал:Если я правильно рассудил по данному коду html.replace("%objectId%", String.valueOf(getObjectId()));
то нужно вот так
npc_%objectId%_setTeam1Member

вот что получилось в логах. специально пробовал разными чарами, на разный аккаунтах
PHP код:
<?php 
[Bypass] Command 'npc_268475938_setTeam1Member' requires valid interaction chara
cter
, but not found. Ask player Alister what happend
[Bypass] Command 'npc_268475938_setTeam1Member' requires valid interaction chara
cter
, but not found. Ask player Alister what happend
[Bypass] Command 'npc_268475938_setTeam1Member' requires valid interaction chara
cter
, but not found. Ask player gm what happend
[Bypass] Command 'npc_268475938_setTeam1Member' requires valid interaction chara
cter
, but not found. Ask player gm what happend

LeMoN Написал:Уверены что этот тот кусок кода?
В логе вывода не вижу того исключения,которое есть в логах у Вашего сервера.
видимо, нет, но я не знаю, где еще может быть ошибка... поэтому и прошу помощи
Ответ
#10
не актуально. сделал через классмастера, через нового нпц так и не получилось :Olen':
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Что за ошибка? serg5777 22 10,164 07-11-2023, 09:49 PM
Последний пост: ntking
  Ошибка Cannot read field "race" valdemart123 0 1,276 12-04-2021, 04:44 AM
Последний пост: valdemart123
  При запуске game server на сайте (sw13) ошибка mysql 0 AndreDeiu 1 1,668 09-27-2020, 11:32 PM
Последний пост: Lord_Gothic
  Ошибка геймсервера zane 9 2,989 04-27-2018, 12:28 PM
Последний пост: DmnC
  Ошибка загрузки гейм сервера zane 5 2,364 04-17-2018, 08:03 PM
Последний пост: zane
  Ошибка телепорта Rork 1 1,464 03-02-2018, 03:05 PM
Последний пост: Gaikotsu
  Ошибка с ГМ шопом silok 1 1,495 01-11-2018, 07:36 AM
Последний пост: Narsell
  Ошибка PWSOFT Ananim 0 1,540 07-07-2017, 11:42 AM
Последний пост: Ananim
  Ошибка _aveList; knaif 1 1,588 06-22-2017, 03:07 PM
Последний пост: Trimius
  Ошибка KastaMeN 1 1,989 06-16-2017, 11:32 PM
Последний пост: Mangol

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)