Sync with L2JServer Jan 26th 2015.

This commit is contained in:
mobius
2015-01-27 01:59:37 +00:00
parent 5d7ab65416
commit bfe682bbe3
63 changed files with 1049 additions and 1306 deletions

View File

@ -170,6 +170,8 @@ public abstract class Chamber extends Quest
private final String INSTANCE_TEMPLATE;
protected Location[] ROOM_ENTER_POINTS;
// Misc
private static final String RETURN = Chamber.class.getSimpleName() + "_return";
protected Chamber(int questId, String name, String descr, int instanceId, String instanceTemplateName, int entranceGKId, int roomGKFirstId, int roomGKLastId, int aenkinelId, int boxId)
{
@ -362,20 +364,18 @@ public abstract class Chamber extends Quest
for (L2PcInstance partyMember : party.getMembers())
{
final QuestState st = getQuestState(partyMember, true);
if (st.hasQuestItems(DELUSION_MARK))
if (hasQuestItems(partyMember, DELUSION_MARK))
{
st.takeItems(DELUSION_MARK, -1);
takeItems(partyMember, DELUSION_MARK, -1);
}
if (party.isLeader(partyMember))
{
st.giveItems(DELUSION_MARK, 1);
giveItems(partyMember, DELUSION_MARK, 1);
}
// Save location for teleport back into main hall
st.set("return_point", Integer.toString(partyMember.getX()) + ";" + Integer.toString(partyMember.getY()) + ";" + Integer.toString(partyMember.getZ()));
partyMember.getVariables().set(RETURN, Integer.toString(partyMember.getX()) + ";" + Integer.toString(partyMember.getY()) + ";" + Integer.toString(partyMember.getZ()));
partyMember.setInstanceId(world.getInstanceId());
world.addAllowed(partyMember.getObjectId());
@ -445,26 +445,21 @@ public abstract class Chamber extends Quest
}
final Instance inst = InstanceManager.getInstance().getInstance(player.getInstanceId());
Location ret = inst.getSpawnLoc();
final QuestState st = getQuestState(player, false);
if (st != null)
final String return_point = player.getVariables().getString(RETURN, null);
if (return_point != null)
{
String return_point = st.get("return_point");
if (return_point != null)
String[] coords = return_point.split(";");
if (coords.length == 3)
{
String[] coords = return_point.split(";");
if (coords.length == 3)
try
{
int x = Integer.parseInt(coords[0]);
int y = Integer.parseInt(coords[1]);
int z = Integer.parseInt(coords[2]);
ret.setLocation(new Location(x, y, z));
}
catch (Exception e)
{
try
{
int x = Integer.parseInt(coords[0]);
int y = Integer.parseInt(coords[1]);
int z = Integer.parseInt(coords[2]);
ret.setLocation(new Location(x, y, z));
}
catch (Exception e)
{
}
}
}
}
@ -487,15 +482,8 @@ public abstract class Chamber extends Quest
{
final CDWorld world = (CDWorld) tmpworld;
QuestState st = getQuestState(player, false);
if (st == null)
{
st = newQuestState(player);
}
// Change room from dialog
else if (event.equals("next_room"))
if (event.equals("next_room"))
{
if (player.getParty() == null)
{
@ -509,7 +497,7 @@ public abstract class Chamber extends Quest
else if (hasQuestItems(player, DELUSION_MARK))
{
st.takeItems(DELUSION_MARK, 1);
takeItems(player, DELUSION_MARK, 1);
world.stopRoomChangeTask();
changeRoom(world);
}
@ -519,7 +507,6 @@ public abstract class Chamber extends Quest
htmltext = getHtm(player.getHtmlPrefix(), "data/scripts/instances/ChambersOfDelusion/no_item.html");
}
}
else if (event.equals("go_out"))
{
if (player.getParty() == null)
@ -545,7 +532,6 @@ public abstract class Chamber extends Quest
inst.setEmptyDestroyTime(0);
}
}
else if (event.equals("look_party"))
{
if ((player.getParty() != null) && (player.getParty() == world.getPartyInside()))