Сообщений: 25
Тем: 5
Зарегистрирован: Nov 2010
Репутация:
83
Доброго все здравия.
Ребята подскажите как правильно прикрутить теле порт.
сборка Исходы "fw-tm.ru 2.1"
Суть в следующем присобачил в комунке теле порт. при нажатии на теле порт в выбранную локацию в консоли пишет
PHP код: <?php
[15:19:36] WARN Direct access to bypass: _bbsteleport 144179 25574 -2180 5000
Player: ADM
код байпас HTML
PHP код: <?php
<tr><td><center><button action="bypass _bbsteleport 146086 26302 -2195 5000" value="Weapons and Armor Shop" width=180 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></center></td></tr>
code TeleportCommunity. java
CODE JAVA
PHP код: <?php
package services.community;
import l2p.gameserver.database.DatabaseFactory;
import l2p.commons.dbutils.DbUtils;
import l2p.gameserver.Config;
import l2p.gameserver.data.htm.HtmCache;
import l2p.gameserver.data.xml.holder.ResidenceHolder;
import l2p.gameserver.handler.bbs.CommunityBoardManager;
import l2p.gameserver.handler.bbs.ICommunityBoardHandler;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.Zone.ZoneType;
import l2p.gameserver.model.base.TeamType;
import l2p.gameserver.model.entity.Reflection;
import l2p.gameserver.model.entity.olympiad.Olympiad;
import l2p.gameserver.model.entity.residence.Castle;
import l2p.gameserver.scripts.Functions;
import l2p.gameserver.scripts.ScriptFile;
import l2p.gameserver.serverpackets.ShowBoard;
import l2p.gameserver.serverpackets.components.SystemMsg;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.StringTokenizer;
/**
* @author STIGMATED
* @date 19.11.2011
* @time 22:04:15
*/
public class TeleporterCommunity implements ScriptFile, ICommunityBoardHandler
{
private static final Logger _log = Logger.getLogger(TeleporterCommunity.class);
public static final String[] COMMANDS = new String[]
{
"_bbstp",
"_bbstpdelete",
"_bbstpsave",
"_bbstpteleport",
"_bbstpteleport0" // телепорт для закладок игроков
};
@Override
public String[] getBypassCommands()
{
return COMMANDS;
}
@Override
public void onBypassCommand(final Player player, final String bypass)
{
_log.info("haha0");
final StringTokenizer st = new StringTokenizer(bypass, " ");
final String cmd = st.nextToken();
if(COMMANDS[0].equalsIgnoreCase(cmd))
listBookmarks(player);
else if(COMMANDS[1].equalsIgnoreCase(cmd)) // _bbstpdelete
{ _log.info("haha1");
final int id = Integer.parseInt(st.nextToken());
deleteBookmark(player, id);
listBookmarks(player);
}
else if(COMMANDS[2].equalsIgnoreCase(cmd)) // _bbstpsave
{ _log.info("haha2");
String name = null;
try
{
name = st.nextToken();
}
catch(final Exception e)
{
listBookmarks(player);
return;
}
addBookmark(player, name.trim());
listBookmarks(player);
}
else if(COMMANDS[3].equalsIgnoreCase(cmd)) // _bbstpteleport
{ _log.info("haha3");
final int x = Integer.parseInt(st.nextToken());
final int y = Integer.parseInt(st.nextToken());
final int z = Integer.parseInt(st.nextToken());
final int price = Integer.parseInt(st.nextToken());
teleport(player, x, y, z, price);
listBookmarks(player);
}
else if(COMMANDS[4].equalsIgnoreCase(cmd)) // _bbstpteleport0
{_log.info("haha4");
final int x = Integer.parseInt(st.nextToken());
final int y = Integer.parseInt(st.nextToken());
final int z = Integer.parseInt(st.nextToken());
teleport(player, x, y, z, -1);
listBookmarks(player);
}
}
private final void teleport(final Player player, final int x, final int y, final int z, final int price)
{
if(player.isDead() || player.isAlikeDead() || player.isFlying() || player.isTerritoryFlagEquipped() || player.isInZone(ZoneType.no_escape) || player.isInObserverMode())
{ _log.info("haha-Bad");
player.sendMessage("Телепортация невозможна");
return;
}
if(!Config.COMMUNITY_BOARD_TELEPORT_FIGHT)
if(player.isInCombat() || player.isAttackingNow() || player.isCastingNow())
{
player.sendMessage("Телепортация невозможна");
return;
}
// На оли тп нельзя) после регистрации тоже
if(player.isInOlympiadMode() || player.getOlympiadGame() != null || Olympiad.isRegisteredInComp(player) || player.getTeam() != TeamType.NONE)
return;
if(price > 0 && player.getAdena() < price)
{
player.sendPacket(SystemMsg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
return;
}
// проверяем пользовательские телепорты
if(price == -1)
if(Functions.getItemCount(player, Config.COMMUNITY_BOARD_TELEPORT_ITEM) < Config.COMMUNITY_BOARD_TELEPORT_PRICE)
{
player.sendPacket(SystemMsg.INCORRECT_ITEM_COUNT);
return;
}
// Можно ли телепортироваться в города, где идет осада
if(!Config.COMMUNITY_BOARD_TELEPORT_IN_SIEGE_TOWN)
{
// Нельзя телепортироваться в города, где идет осада
final Castle castle = ResidenceHolder.getInstance().getResidenceByCoord(Castle.class, x, y, z, player.getReflection());
if(castle != null && castle.getSiegeEvent().isInProgress())
{
player.sendPacket(SystemMsg.YOU_CANNOT_TELEPORT_TO_A_VILLAGE_THAT_IS_IN_A_SIEGE);
return;
}
}
if(price > 0)
player.reduceAdena(price, false);
else if(price == -1)
Functions.removeItem(player, Config.COMMUNITY_BOARD_TELEPORT_ITEM, Config.COMMUNITY_BOARD_TELEPORT_PRICE);
player.teleToLocation(x, y, z);
}
private final void listBookmarks(final Player player)
{
Connection con = null;
PreparedStatement statement = null;
ResultSet rs = null;
try
{
con = DatabaseFactory.getInstance().getConnection();
statement = con.prepareStatement("SELECT * FROM bbs_teleport WHERE charId=?");
statement.setLong(1, player.getObjectId());
rs = statement.executeQuery();
final StringBuilder html = new StringBuilder(200);
html.append("<table width=220>");
while (rs.next())
{
html.append("<tr><td><button value=\"").append(rs.getString("name")).append("\" action=\"bypass _bbstpteleport0 ").append(rs.getInt("x")).append(" ").append(rs.getInt("y")).append(" ").append(rs.getInt("z")).append("\" width=100 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
html.append("<td><button value=\"Удалить\" action=\"bypass _bbstpdelete ").append(rs.getInt("id")).append("\" width=100 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>");
}
html.append("</table>");
String tpl = HtmCache.getInstance().getNotNull("scripts/services/community/pages/teleport.htm", player);
tpl = tpl.replace("%tp%", html.toString());
ShowBoard.separateAndSend(tpl, player);
}
catch(final Exception e)
{
_log.error("Failed get teleport list", e);
}
finally
{
DbUtils.closeQuietly(con, statement, rs);
}
}
private final void deleteBookmark(final Player player, final int id)
{
Connection con = null;
PreparedStatement statement = null;
try
{
con = DatabaseFactory.getInstance().getConnection();
statement = con.prepareStatement("DELETE FROM bbs_teleport WHERE charId=? AND id=?");
statement.setInt(1, player.getObjectId());
statement.setInt(2, id);
statement.execute();
}
catch(final Exception e)
{
_log.error("Failed delete bookmark for DB", e);
}
finally
{
DbUtils.closeQuietly(con);
}
}
private final void addBookmark(final Player player, final String bName)
{
if(player.isDead() || player.isAlikeDead() || player.isCastingNow() || player.isAttackingNow() || player.isInObserverMode())
{
player.sendMessage("Сохранить закладку в вашем состоянии нельзя");
return;
}
if(player.isInCombat())
{
player.sendMessage("Сохранить закладку в режиме боя нельзя");
return;
}
if(Config.COMMUNITY_BOARD_TELEPORT_ADDITIONAL_RULES)
if(player.isInZone(ZoneType.SIEGE) || player.isInZone(ZoneType.RESIDENCE) || player.isInZone(ZoneType.battle_zone) || player.isInZone(ZoneType.epic) || player.isInZone(ZoneType.no_restart) || player.isInZone(ZoneType.no_summon) || player.isInZone(ZoneType.no_escape))
{
player.sendMessage("Сохранить закладку в вашем состоянии нельзя");
return;
}
if(StringUtils.isEmpty(bName))
{
player.sendMessage("Вы не ввели Имя закладки");
return;
}
Connection con = null;
PreparedStatement statement = null;
ResultSet rs = null;
try
{
con = DatabaseFactory.getInstance().getConnection();
statement = con.prepareStatement("SELECT COUNT(*) FROM bbs_teleport WHERE charId=?");
statement.setLong(1, player.getObjectId());
rs = statement.executeQuery();
rs.next();
if(rs.getInt(1) <= Config.COMMUNITY_BOARD_TELEPORT_COUNT - 1)
{
statement = con.prepareStatement("SELECT COUNT(*) FROM bbs_teleport WHERE charId=? AND name=?");
statement.setLong(1, player.getObjectId());
statement.setString(2, bName);
rs = statement.executeQuery();
rs.next();
if(rs.getInt(1) == 0)
{
statement = con.prepareStatement("INSERT INTO bbs_teleport (`charId`,`x`,`y`,`z`,`name`) VALUES(?,?,?,?,?)");
statement.setInt(1, player.getObjectId());
statement.setInt(2, player.getX());
statement.setInt(3, player.getY());
statement.setInt(4, player.getZ());
statement.setString(5, bName);
statement.execute();
}
else
{
statement = con.prepareStatement("UPDATE bbs_teleport SET `x`=?, `y`=?, `z`=? WHERE `charId`=? AND `name`=?");
statement.setInt(1, player.getObjectId());
statement.setInt(2, player.getX());
statement.setInt(3, player.getY());
statement.setInt(4, player.getZ());
statement.setString(5, bName);
statement.execute();
}
}
else
player.sendMessage("Вы не можете сохранить более 10 закладок");
}
catch(final Exception e)
{
_log.error("Failed add bookmark for DB", e);
}
finally
{
DbUtils.closeQuietly(con, statement, rs);
}
}
@Override
public void onWriteCommand(final Player player, final String bypass, final String arg1, final String arg2, final String arg3, final String arg4, final String arg5)
{}
@Override
public void onLoad()
{
if(Config.COMMUNITYBOARD_ENABLED)
{
_log.info("CommunityBoard: Teleporter service loaded.");
CommunityBoardManager.getInstance().registerHandler(this);
}
}
@Override
public void onReload()
{
if(Config.COMMUNITYBOARD_ENABLED)
CommunityBoardManager.getInstance().removeHandler(this);
}
@Override
public void onShutdown()
{}
}
Огромная просьба помогите наведите на мысль пожалуйста.
Пытался изменить доступ на публичный результата не дало
Сообщений: 1,053
Тем: 33
Зарегистрирован: Sep 2011
Репутация:
12,172
SkyMD Написал:Доброго все здравия.
Ребята подскажите как правильно прикрутить теле порт.
сборка Исходы "fw-tm.ru 2.1"
Суть в следующем присобачил в комунке теле порт. при нажатии на теле порт в выбранную локацию в консоли пишет
PHP код: <?php
[15:19:36] WARN Direct access to bypass: _bbsteleport 144179 25574 -2180 5000
Player: ADM
код байпас HTML
PHP код: <?php
<tr><td><center><button action="bypass _bbsteleport 146086 26302 -2195 5000" value="Weapons and Armor Shop" width=180 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></center></td></tr>
code TeleportCommunity.java
CODE JAVA
PHP код: <?php
package services.community;
import l2p.gameserver.database.DatabaseFactory;
import l2p.commons.dbutils.DbUtils;
import l2p.gameserver.Config;
import l2p.gameserver.data.htm.HtmCache;
import l2p.gameserver.data.xml.holder.ResidenceHolder;
import l2p.gameserver.handler.bbs.CommunityBoardManager;
import l2p.gameserver.handler.bbs.ICommunityBoardHandler;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.Zone.ZoneType;
import l2p.gameserver.model.base.TeamType;
import l2p.gameserver.model.entity.Reflection;
import l2p.gameserver.model.entity.olympiad.Olympiad;
import l2p.gameserver.model.entity.residence.Castle;
import l2p.gameserver.scripts.Functions;
import l2p.gameserver.scripts.ScriptFile;
import l2p.gameserver.serverpackets.ShowBoard;
import l2p.gameserver.serverpackets.components.SystemMsg;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.StringTokenizer;
/**
* @author STIGMATED
* @date 19.11.2011
* @time 22:04:15
*/
public class TeleporterCommunity implements ScriptFile, ICommunityBoardHandler
{
private static final Logger _log = Logger.getLogger(TeleporterCommunity.class);
public static final String[] COMMANDS = new String[]
{
"_bbstp",
"_bbstpdelete",
"_bbstpsave",
"_bbstpteleport",
"_bbstpteleport0" // телепорт для закладок игроков
};
@Override
public String[] getBypassCommands()
{
return COMMANDS;
}
@Override
public void onBypassCommand(final Player player, final String bypass)
{
_log.info("haha0");
final StringTokenizer st = new StringTokenizer(bypass, " ");
final String cmd = st.nextToken();
if(COMMANDS[0].equalsIgnoreCase(cmd))
listBookmarks(player);
else if(COMMANDS[1].equalsIgnoreCase(cmd)) // _bbstpdelete
{ _log.info("haha1");
final int id = Integer.parseInt(st.nextToken());
deleteBookmark(player, id);
listBookmarks(player);
}
else if(COMMANDS[2].equalsIgnoreCase(cmd)) // _bbstpsave
{ _log.info("haha2");
String name = null;
try
{
name = st.nextToken();
}
catch(final Exception e)
{
listBookmarks(player);
return;
}
addBookmark(player, name.trim());
listBookmarks(player);
}
else if(COMMANDS[3].equalsIgnoreCase(cmd)) // _bbstpteleport
{ _log.info("haha3");
final int x = Integer.parseInt(st.nextToken());
final int y = Integer.parseInt(st.nextToken());
final int z = Integer.parseInt(st.nextToken());
final int price = Integer.parseInt(st.nextToken());
teleport(player, x, y, z, price);
listBookmarks(player);
}
else if(COMMANDS[4].equalsIgnoreCase(cmd)) // _bbstpteleport0
{_log.info("haha4");
final int x = Integer.parseInt(st.nextToken());
final int y = Integer.parseInt(st.nextToken());
final int z = Integer.parseInt(st.nextToken());
teleport(player, x, y, z, -1);
listBookmarks(player);
}
}
private final void teleport(final Player player, final int x, final int y, final int z, final int price)
{
if(player.isDead() || player.isAlikeDead() || player.isFlying() || player.isTerritoryFlagEquipped() || player.isInZone(ZoneType.no_escape) || player.isInObserverMode())
{ _log.info("haha-Bad");
player.sendMessage("Телепортация невозможна");
return;
}
if(!Config.COMMUNITY_BOARD_TELEPORT_FIGHT)
if(player.isInCombat() || player.isAttackingNow() || player.isCastingNow())
{
player.sendMessage("Телепортация невозможна");
return;
}
// На оли тп нельзя) после регистрации тоже
if(player.isInOlympiadMode() || player.getOlympiadGame() != null || Olympiad.isRegisteredInComp(player) || player.getTeam() != TeamType.NONE)
return;
if(price > 0 && player.getAdena() < price)
{
player.sendPacket(SystemMsg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
return;
}
// проверяем пользовательские телепорты
if(price == -1)
if(Functions.getItemCount(player, Config.COMMUNITY_BOARD_TELEPORT_ITEM) < Config.COMMUNITY_BOARD_TELEPORT_PRICE)
{
player.sendPacket(SystemMsg.INCORRECT_ITEM_COUNT);
return;
}
// Можно ли телепортироваться в города, где идет осада
if(!Config.COMMUNITY_BOARD_TELEPORT_IN_SIEGE_TOWN)
{
// Нельзя телепортироваться в города, где идет осада
final Castle castle = ResidenceHolder.getInstance().getResidenceByCoord(Castle.class, x, y, z, player.getReflection());
if(castle != null && castle.getSiegeEvent().isInProgress())
{
player.sendPacket(SystemMsg.YOU_CANNOT_TELEPORT_TO_A_VILLAGE_THAT_IS_IN_A_SIEGE);
return;
}
}
if(price > 0)
player.reduceAdena(price, false);
else if(price == -1)
Functions.removeItem(player, Config.COMMUNITY_BOARD_TELEPORT_ITEM, Config.COMMUNITY_BOARD_TELEPORT_PRICE);
player.teleToLocation(x, y, z);
}
private final void listBookmarks(final Player player)
{
Connection con = null;
PreparedStatement statement = null;
ResultSet rs = null;
try
{
con = DatabaseFactory.getInstance().getConnection();
statement = con.prepareStatement("SELECT * FROM bbs_teleport WHERE charId=?");
statement.setLong(1, player.getObjectId());
rs = statement.executeQuery();
final StringBuilder html = new StringBuilder(200);
html.append("<table width=220>");
while (rs.next())
{
html.append("<tr><td><button value=\"").append(rs.getString("name")).append("\" action=\"bypass _bbstpteleport0 ").append(rs.getInt("x")).append(" ").append(rs.getInt("y")).append(" ").append(rs.getInt("z")).append("\" width=100 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
html.append("<td><button value=\"Удалить\" action=\"bypass _bbstpdelete ").append(rs.getInt("id")).append("\" width=100 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>");
}
html.append("</table>");
String tpl = HtmCache.getInstance().getNotNull("scripts/services/community/pages/teleport.htm", player);
tpl = tpl.replace("%tp%", html.toString());
ShowBoard.separateAndSend(tpl, player);
}
catch(final Exception e)
{
_log.error("Failed get teleport list", e);
}
finally
{
DbUtils.closeQuietly(con, statement, rs);
}
}
private final void deleteBookmark(final Player player, final int id)
{
Connection con = null;
PreparedStatement statement = null;
try
{
con = DatabaseFactory.getInstance().getConnection();
statement = con.prepareStatement("DELETE FROM bbs_teleport WHERE charId=? AND id=?");
statement.setInt(1, player.getObjectId());
statement.setInt(2, id);
statement.execute();
}
catch(final Exception e)
{
_log.error("Failed delete bookmark for DB", e);
}
finally
{
DbUtils.closeQuietly(con);
}
}
private final void addBookmark(final Player player, final String bName)
{
if(player.isDead() || player.isAlikeDead() || player.isCastingNow() || player.isAttackingNow() || player.isInObserverMode())
{
player.sendMessage("Сохранить закладку в вашем состоянии нельзя");
return;
}
if(player.isInCombat())
{
player.sendMessage("Сохранить закладку в режиме боя нельзя");
return;
}
if(Config.COMMUNITY_BOARD_TELEPORT_ADDITIONAL_RULES)
if(player.isInZone(ZoneType.SIEGE) || player.isInZone(ZoneType.RESIDENCE) || player.isInZone(ZoneType.battle_zone) || player.isInZone(ZoneType.epic) || player.isInZone(ZoneType.no_restart) || player.isInZone(ZoneType.no_summon) || player.isInZone(ZoneType.no_escape))
{
player.sendMessage("Сохранить закладку в вашем состоянии нельзя");
return;
}
if(StringUtils.isEmpty(bName))
{
player.sendMessage("Вы не ввели Имя закладки");
return;
}
Connection con = null;
PreparedStatement statement = null;
ResultSet rs = null;
try
{
con = DatabaseFactory.getInstance().getConnection();
statement = con.prepareStatement("SELECT COUNT(*) FROM bbs_teleport WHERE charId=?");
statement.setLong(1, player.getObjectId());
rs = statement.executeQuery();
rs.next();
if(rs.getInt(1) <= Config.COMMUNITY_BOARD_TELEPORT_COUNT - 1)
{
statement = con.prepareStatement("SELECT COUNT(*) FROM bbs_teleport WHERE charId=? AND name=?");
statement.setLong(1, player.getObjectId());
statement.setString(2, bName);
rs = statement.executeQuery();
rs.next();
if(rs.getInt(1) == 0)
{
statement = con.prepareStatement("INSERT INTO bbs_teleport (`charId`,`x`,`y`,`z`,`name`) VALUES(?,?,?,?,?)");
statement.setInt(1, player.getObjectId());
statement.setInt(2, player.getX());
statement.setInt(3, player.getY());
statement.setInt(4, player.getZ());
statement.setString(5, bName);
statement.execute();
}
else
{
statement = con.prepareStatement("UPDATE bbs_teleport SET `x`=?, `y`=?, `z`=? WHERE `charId`=? AND `name`=?");
statement.setInt(1, player.getObjectId());
statement.setInt(2, player.getX());
statement.setInt(3, player.getY());
statement.setInt(4, player.getZ());
statement.setString(5, bName);
statement.execute();
}
}
else
player.sendMessage("Вы не можете сохранить более 10 закладок");
}
catch(final Exception e)
{
_log.error("Failed add bookmark for DB", e);
}
finally
{
DbUtils.closeQuietly(con, statement, rs);
}
}
@Override
public void onWriteCommand(final Player player, final String bypass, final String arg1, final String arg2, final String arg3, final String arg4, final String arg5)
{}
@Override
public void onLoad()
{
if(Config.COMMUNITYBOARD_ENABLED)
{
_log.info("CommunityBoard: Teleporter service loaded.");
CommunityBoardManager.getInstance().registerHandler(this);
}
}
@Override
public void onReload()
{
if(Config.COMMUNITYBOARD_ENABLED)
CommunityBoardManager.getInstance().removeHandler(this);
}
@Override
public void onShutdown()
{}
}
Огромная просьба помогите наведите на мысль пожалуйста.
Пытался изменить доступ на публичный результата не далоВот перечень байпасов.
Код: public static final String[] COMMANDS = new String[]
{
"_bbstp",
"_bbstpdelete",
"_bbstpsave",
"_bbstpteleport",
"_bbstpteleport0" // телепорт для закладок игроков
};
По сути правильно будет выглядеть так.
PHP код: <?php
<tr><td><center><button action="bypass _bbstpteleport 146086 26302 -2195 5000" value="Weapons and Armor Shop" width=180 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></center></td></tr>
Сообщений: 25
Тем: 5
Зарегистрирован: Nov 2010
Репутация:
83
08-11-2012, 04:15 PM
(Сообщение последний раз редактировалось: 08-11-2012, 06:14 PM SkyMD.)
в общем сначала заругалась на отсутствие базы телепорта. (я лох =))
далее
вариант А
PHP код: <?php
<tr><td><center><button action="bypass _bbstpteleport;teleport 146086 26302 -2195 5000" value="Weapons and Armor Shop" width=180 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></center></td></tr>
вариант Б
PHP код: <?php
<tr><td><center><button action="bypass _bbstpteleport 146086 26302 -2195 5000" value="Weapons and Armor Shop" width=180 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></center></td></tr>
когда жму открывает пустую страницу
в консоли пишет
PHP код: <?php
[16:11:48] INFO player COMMANDS[3],ADM[268484312]
но не тпшит а тупо открывает пустую страницу
блин зашел в таблицу тп на ту что ругалась а она пустая...
кароч структура ее такая
PHP код: <?php
TpID Name CharID xPos yPos zPos
нема ни у кого sql файла
Добавлено через 1 час 59 минут
Все раздуплился! В конфигах забыл Тру поставить. Тему можно закрыть
|