Selaa lähdekoodia

Additional dialog for olympiad manager, thanks Charus.

_DS_ 15 vuotta sitten
vanhempi
sitoutus
019c09ec77

+ 21 - 11
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2OlympiadManagerInstance.java

@@ -68,6 +68,7 @@ public class L2OlympiadManagerInstance extends L2Npc
 			if (!player.isNoble() || player.getClassId().level() < 3)
 				return;
 
+			int passes;
 			int val = Integer.parseInt(command.substring(14));
 			NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
 
@@ -116,19 +117,12 @@ public class L2OlympiadManagerInstance extends L2Npc
 					Olympiad.getInstance().registerNoble(player, true);
 					break;
 				case 6:
-					int passes = Olympiad.getInstance().getNoblessePasses(player);
+					passes = Olympiad.getInstance().getNoblessePasses(player, false);
 					if (passes > 0)
 					{
-						L2ItemInstance item = player.getInventory().addItem("Olympiad", GATE_PASS, passes, player, this);
-
-						InventoryUpdate iu = new InventoryUpdate();
-						iu.addModifiedItem(item);
-						player.sendPacket(iu);
-
-						SystemMessage sm = new SystemMessage(SystemMessageId.EARNED_ITEM);
-						sm.addItemNumber(passes);
-						sm.addItemName(item);
-						player.sendPacket(sm);
+						html.setFile(Olympiad.OLYMPIAD_HTML_PATH + "noble_settle.htm");
+						html.replace("%objectId%", String.valueOf(getObjectId()));
+						player.sendPacket(html);
 					}
 					else
 					{
@@ -150,6 +144,22 @@ public class L2OlympiadManagerInstance extends L2Npc
 					html.replace("%objectId%", String.valueOf(getObjectId()));
 					player.sendPacket(html);
 					break;
+				case 10:
+					passes = Olympiad.getInstance().getNoblessePasses(player, true);
+					if (passes > 0)
+					{
+						L2ItemInstance item = player.getInventory().addItem("Olympiad", GATE_PASS, passes, player, this);
+
+						InventoryUpdate iu = new InventoryUpdate();
+						iu.addModifiedItem(item);
+						player.sendPacket(iu);
+
+						SystemMessage sm = new SystemMessage(SystemMessageId.EARNED_ITEM);
+						sm.addItemNumber(passes);
+						sm.addItemName(item);
+						player.sendPacket(sm);
+					}
+					break;
 				default:
 					_logOlymp.warning("Olympiad System: Couldnt send packet for request " + val);
 				break;

+ 7 - 4
L2_GameServer/java/net/sf/l2j/gameserver/model/olympiad/Olympiad.java

@@ -1420,7 +1420,7 @@ public class Olympiad
 		
 	}
 	
-	public int getNoblessePasses(L2PcInstance player)
+	public int getNoblessePasses(L2PcInstance player, boolean clear)
 	{
 		if (_period != 1 || _noblesRank.isEmpty())
 			return 0;
@@ -1452,9 +1452,12 @@ public class Olympiad
 			default:
 				points += Config.ALT_OLY_RANK5_POINTS;
 		}
-		
-		noble.set(POINTS, 0);
-		updateNobleStats(objId, noble);
+
+		if (clear)
+		{
+			noble.set(POINTS, 0);
+			updateNobleStats(objId, noble);
+		}
 		
 		points *= Config.ALT_OLY_GP_PER_POINT;