Сообщений: 555
Тем: 2
Зарегистрирован: Feb 2011
Репутация:
1,507
тьма и ужас. скинь этот квест :\
Сообщений: 112
Тем: 26
Зарегистрирован: Sep 2012
Репутация:
-216
Сообщений: 555
Тем: 2
Зарегистрирован: Feb 2011
Репутация:
1,507
Код: private void teleportWithTag(L2PcInstance player, int x, int y, int z) {
L2Npc npc = (L2Npc) player.getKnownList().getKnownObjects().get(AbyssalSaintessElcadia2);
player.teleToLocation(x, y, z);
if (npcTag != null)
npcTag.teleToLocation(x, y, z);
}
сменить на
Код: private void teleportWithTag(L2PcInstance player, int x, int y, int z) {
L2Npc npc = (L2Npc) player.getKnownList().getKnownObjects().get(AbyssalSaintessElcadia2);
player.teleToLocation(x, y, z);
if (npc != null)
npc.teleToLocation(x, y, z);
}
Сообщений: 112
Тем: 26
Зарегистрирован: Sep 2012
Репутация:
-216
KID Написал:Код: private void teleportWithTag(L2PcInstance player, int x, int y, int z) {
L2Npc npc = (L2Npc) player.getKnownList().getKnownObjects().get(AbyssalSaintessElcadia2);
player.teleToLocation(x, y, z);
if (npcTag != null)
npcTag.teleToLocation(x, y, z);
}
сменить на
Код: private void teleportWithTag(L2PcInstance player, int x, int y, int z) {
L2Npc npc = (L2Npc) player.getKnownList().getKnownObjects().get(AbyssalSaintessElcadia2);
player.teleToLocation(x, y, z);
if (npc != null)
npc.teleToLocation(x, y, z);
}
Спасибо вроде кв работает
Сообщений: 555
Тем: 2
Зарегистрирован: Feb 2011
Репутация:
1,507
Читай больше, ты сталкиваешься со слишком простыми ошибками
Сообщений: 112
Тем: 26
Зарегистрирован: Sep 2012
Репутация:
-216
Help!!
Не получается написать правельную переменную
Код: ----------
3. ERROR in \Q10295_SevenSignSolinaTomb.java (at line 218)
for (L2DoorInstance d : [color=Red]world.getDoors())[/color]
^^^^^^^^
The method [color=Red]getDoors()[/color] is undefined for the type InstanceManager.InstanceWorld
Вот сам код
Код: private void openEnterDoors(L2PcInstance player)
{
InstanceWorld world = InstanceManager.getInstance().getPlayerWorld(player);
[color=Red]for (L2DoorInstance d : world.getDoors())[/color]
{
for (int i = 0;i < enterDoors.length; i++)
{
if (d.getDoorId() == enterDoors[i])
d.openMe();
}
}
}
Помогите пожалуйста
Вот если кому нужно gameserver\model\actor\instance\L2DoorIns tance
http://www.fayloobmennik.net/2900705
Буду очень признателен вам!
Сообщений: 555
Тем: 2
Зарегистрирован: Feb 2011
Репутация:
1,507
Сообщений: 112
Тем: 26
Зарегистрирован: Sep 2012
Репутация:
-216
KID Написал:Скинь InstanceWorld.java
Интернет не работал.
Есть только InstanceManager$InstanceWorld
Код: package l2.brick.gameserver.instancemanager;
import javolution.util.FastList;
public static class InstanceManager$InstanceWorld
{
public boolean isLocked;
public int instanceId;
public int templateId;
public FastList allowed;
public volatile int status;
public InstanceManager$InstanceWorld()
{
isLocked = false;
templateId = -1;
allowed = new FastList();
}
}
И на всякий случай InstanceManager
Код: // Decompiled by DJ v3.12.12.96 Copyright 2011 Atanas Neshkov Date: 06.06.2013 20:37:49
// Home Page: http://members.fortunecity.com/neshkov/dj.html http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name: InstanceManager.java
package l2.brick.gameserver.instancemanager;
import java.io.*;
import java.sql.*;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javolution.io.UTF8StreamReader;
import javolution.text.CharArray;
import javolution.util.FastList;
import javolution.util.FastMap;
import javolution.xml.stream.XMLStreamException;
import javolution.xml.stream.XMLStreamReaderImpl;
import l2.brick.Config;
import l2.brick.L2DatabaseFactory;
import l2.brick.gameserver.model.actor.instance.L2PcInstance;
import l2.brick.gameserver.model.entity.Instance;
public class InstanceManager
{
private static class SingletonHolder
{
protected static final InstanceManager _instance = new InstanceManager();
private SingletonHolder()
{
}
}
public static class InstanceWorld
{
public boolean isLocked;
public int instanceId;
public int templateId;
public FastList allowed;
public volatile int status;
public InstanceWorld()
{
isLocked = false;
templateId = -1;
allowed = new FastList();
}
}
public long getInstanceTime(int playerObjId, int id)
{
if(!_playerInstanceTimes.containsKey(Integer.valueOf(playerObjId)))
restoreInstanceTimes(playerObjId);
if(((Map)_playerInstanceTimes.get(Integer.valueOf(playerObjId))).containsKey(Integer.valueOf(id)))
return ((Long)((Map)_playerInstanceTimes.get(Integer.valueOf(playerObjId))).get(Integer.valueOf(id))).longValue();
else
return -1L;
}
public Map getAllInstanceTimes(int playerObjId)
{
if(!_playerInstanceTimes.containsKey(Integer.valueOf(playerObjId)))
restoreInstanceTimes(playerObjId);
return (Map)_playerInstanceTimes.get(Integer.valueOf(playerObjId));
}
public void setInstanceTime(int playerObjId, int id, long time)
{
Connection con;
if(!_playerInstanceTimes.containsKey(Integer.valueOf(playerObjId)))
restoreInstanceTimes(playerObjId);
con = null;
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = con.prepareStatement("INSERT INTO character_instance_time (charId,instanceId,time) values (?,?,?) ON DUPLICATE KEY UPDATE time=?");
statement.setInt(1, playerObjId);
statement.setInt(2, id);
statement.setLong(3, time);
statement.setLong(4, time);
statement.execute();
statement.close();
((Map)_playerInstanceTimes.get(Integer.valueOf(playerObjId))).put(Integer.valueOf(id), Long.valueOf(time));
L2DatabaseFactory.close(con);
break MISSING_BLOCK_LABEL_186;
Exception e;
e;
_log.log(Level.WARNING, (new StringBuilder()).append("Could not insert character instance time data: ").append(e.getMessage()).toString(), e);
L2DatabaseFactory.close(con);
break MISSING_BLOCK_LABEL_186;
Exception exception;
exception;
L2DatabaseFactory.close(con);
throw exception;
}
public void deleteInstanceTime(int playerObjId, int id)
{
Connection con = null;
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = con.prepareStatement("DELETE FROM character_instance_time WHERE charId=? AND instanceId=?");
statement.setInt(1, playerObjId);
statement.setInt(2, id);
statement.execute();
statement.close();
((Map)_playerInstanceTimes.get(Integer.valueOf(playerObjId))).remove(Integer.valueOf(id));
L2DatabaseFactory.close(con);
break MISSING_BLOCK_LABEL_137;
Exception e;
e;
_log.log(Level.WARNING, (new StringBuilder()).append("Could not delete character instance time data: ").append(e.getMessage()).toString(), e);
L2DatabaseFactory.close(con);
break MISSING_BLOCK_LABEL_137;
Exception exception;
exception;
L2DatabaseFactory.close(con);
throw exception;
}
public void restoreInstanceTimes(int playerObjId)
{
Connection con;
if(_playerInstanceTimes.containsKey(Integer.valueOf(playerObjId)))
return;
_playerInstanceTimes.put(Integer.valueOf(playerObjId), new FastMap());
con = null;
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = con.prepareStatement("SELECT instanceId,time FROM character_instance_time WHERE charId=?");
statement.setInt(1, playerObjId);
ResultSet rset;
for(rset = statement.executeQuery(); rset.next();)
{
int id = rset.getInt("instanceId");
long time = rset.getLong("time");
if(time < System.currentTimeMillis())
deleteInstanceTime(playerObjId, id);
else
((Map)_playerInstanceTimes.get(Integer.valueOf(playerObjId))).put(Integer.valueOf(id), Long.valueOf(time));
}
rset.close();
statement.close();
L2DatabaseFactory.close(con);
break MISSING_BLOCK_LABEL_227;
Exception e;
e;
_log.log(Level.WARNING, (new StringBuilder()).append("Could not delete character instance time data: ").append(e.getMessage()).toString(), e);
L2DatabaseFactory.close(con);
break MISSING_BLOCK_LABEL_227;
Exception exception;
exception;
L2DatabaseFactory.close(con);
throw exception;
}
public String getInstanceIdName(int id)
{
if(_instanceIdNames.containsKey(Integer.valueOf(id)))
return (String)_instanceIdNames.get(Integer.valueOf(id));
else
return "UnknownInstance";
}
private void loadInstanceNames()
{
InputStream in = null;
in = new FileInputStream((new StringBuilder()).append(Config.DATAPACK_ROOT).append("/data/instancenames.xml").toString());
XMLStreamReaderImpl xpp = new XMLStreamReaderImpl();
xpp.setInput((new UTF8StreamReader()).setInput(in));
for(int e = xpp.getEventType(); e != 8; e = xpp.next())
if(e == 1 && xpp.getLocalName().toString().equals("instance"))
{
Integer id = Integer.valueOf(xpp.getAttributeValue(null, "id").toString());
String name = xpp.getAttributeValue(null, "name").toString();
_instanceIdNames.put(id, name);
}
FileNotFoundException e;
try
{
in.close();
}
// Misplaced declaration of an exception variable
catch(FileNotFoundException e) { }
break MISSING_BLOCK_LABEL_222;
e;
_log.warning("instancenames.xml could not be loaded: file not found");
try
{
in.close();
}
// Misplaced declaration of an exception variable
catch(FileNotFoundException e) { }
break MISSING_BLOCK_LABEL_222;
XMLStreamException xppe;
xppe;
_log.log(Level.WARNING, (new StringBuilder()).append("Error while loading instance names: ").append(xppe.getMessage()).toString(), xppe);
try
{
in.close();
}
// Misplaced declaration of an exception variable
catch(XMLStreamException xppe) { }
break MISSING_BLOCK_LABEL_222;
Exception exception;
exception;
try
{
in.close();
}
catch(Exception e) { }
throw exception;
}
public void addWorld(InstanceWorld world)
{
_instanceWorlds.put(Integer.valueOf(world.instanceId), world);
}
public InstanceWorld getWorld(int instanceId)
{
return (InstanceWorld)_instanceWorlds.get(Integer.valueOf(instanceId));
}
public InstanceWorld getPlayerWorld(L2PcInstance player)
{
for(Iterator i$ = _instanceWorlds.values().iterator(); i$.hasNext();)
{
InstanceWorld temp = (InstanceWorld)i$.next();
if(temp != null && temp.allowed.contains(Integer.valueOf(player.getObjectId())))
return temp;
}
return null;
}
private InstanceManager()
{
_instanceList = new FastMap();
_instanceWorlds = new FastMap();
_dynamic = 0x493e0;
_playerInstanceTimes = new FastMap();
_log.info("Initializing InstanceManager");
loadInstanceNames();
_log.info((new StringBuilder()).append("Loaded ").append(_instanceIdNames.size()).append(" instance names").toString());
createWorld();
}
public static final InstanceManager getInstance()
{
return SingletonHolder._instance;
}
private void createWorld()
{
Instance themultiverse = new Instance(-1);
themultiverse.setName("multiverse");
_instanceList.put(Integer.valueOf(-1), themultiverse);
_log.info("Multiverse Instance created");
Instance universe = new Instance(0);
universe.setName("universe");
_instanceList.put(Integer.valueOf(0), universe);
_log.info("Universe Instance created");
}
public void destroyInstance(int instanceid)
{
if(instanceid <= 0)
return;
Instance temp = (Instance)_instanceList.get(Integer.valueOf(instanceid));
if(temp != null)
{
temp.removeNpcs();
temp.removePlayers();
temp.removeDoors();
temp.cancelTimer();
_instanceList.remove(Integer.valueOf(instanceid));
if(_instanceWorlds.containsKey(Integer.valueOf(instanceid)))
_instanceWorlds.remove(Integer.valueOf(instanceid));
}
}
public Instance getInstance(int instanceid)
{
return (Instance)_instanceList.get(Integer.valueOf(instanceid));
}
public FastMap getInstances()
{
return _instanceList;
}
public int getPlayerInstance(int objectId)
{
for(Iterator i$ = _instanceList.values().iterator(); i$.hasNext();)
{
Instance temp = (Instance)i$.next();
if(temp != null && temp.containsPlayer(objectId))
return temp.getId();
}
return 0;
}
public boolean createInstance(int id)
{
if(getInstance(id) != null)
{
return false;
} else
{
Instance instance = new Instance(id);
_instanceList.put(Integer.valueOf(id), instance);
return true;
}
}
public boolean createInstanceFromTemplate(int id, String template)
{
if(getInstance(id) != null)
{
return false;
} else
{
Instance instance = new Instance(id);
_instanceList.put(Integer.valueOf(id), instance);
instance.loadInstanceTemplate(template);
return true;
}
}
public int createDynamicInstance(String template)
{
do
{
if(getInstance(_dynamic) == null)
break;
_dynamic++;
if(_dynamic == 0x7fffffff)
{
_log.warning("InstanceManager: More then 2147183647 instances created");
_dynamic = 0x493e0;
}
} while(true);
Instance instance = new Instance(_dynamic);
_instanceList.put(Integer.valueOf(_dynamic), instance);
if(template != null)
instance.loadInstanceTemplate(template);
return _dynamic;
}
private static final Logger _log = Logger.getLogger(l2/brick/gameserver/instancemanager/InstanceManager.getName());
private FastMap _instanceList;
private FastMap _instanceWorlds;
private int _dynamic;
private static final Map _instanceIdNames = new FastMap();
private Map _playerInstanceTimes;
private static final String ADD_INSTANCE_TIME = "INSERT INTO character_instance_time (charId,instanceId,time) values (?,?,?) ON DUPLICATE KEY UPDATE time=?";
private static final String RESTORE_INSTANCE_TIMES = "SELECT instanceId,time FROM character_instance_time WHERE charId=?";
private static final String DELETE_INSTANCE_TIME = "DELETE FROM character_instance_time WHERE charId=? AND instanceId=?";
}
Сообщений: 31
Тем: 2
Зарегистрирован: Apr 2013
Репутация:
210
В Вашем ядре нет метода getDoors у класса InstanceWorld.
Если Вам нужно в квесте открывать определенные двери, реализуйте это независимо от инстанса.
Если нужна помощь - пишите в лс, скайп или icq, помогу
|