This commit is contained in:
936
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java
vendored
Normal file
936
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java
vendored
Normal file
@@ -0,0 +1,936 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package conquerablehalls.RainbowSpringsChateau;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.L2DatabaseFactory;
|
||||
import com.l2jserver.gameserver.ThreadPoolManager;
|
||||
import com.l2jserver.gameserver.cache.HtmCache;
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.datatables.NpcData;
|
||||
import com.l2jserver.gameserver.datatables.SpawnTable;
|
||||
import com.l2jserver.gameserver.instancemanager.CHSiegeManager;
|
||||
import com.l2jserver.gameserver.instancemanager.ZoneManager;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.L2Object;
|
||||
import com.l2jserver.gameserver.model.L2Party;
|
||||
import com.l2jserver.gameserver.model.L2Spawn;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
import com.l2jserver.gameserver.model.TeleportWhereType;
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.entity.clanhall.ClanHallSiegeEngine;
|
||||
import com.l2jserver.gameserver.model.entity.clanhall.SiegableHall;
|
||||
import com.l2jserver.gameserver.model.entity.clanhall.SiegeStatus;
|
||||
import com.l2jserver.gameserver.model.items.L2Item;
|
||||
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
|
||||
import com.l2jserver.gameserver.util.Broadcast;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* Rainbow Springs Chateau clan hall siege script.
|
||||
* @author BiggBoss
|
||||
*/
|
||||
public final class RainbowSpringsChateau extends ClanHallSiegeEngine
|
||||
{
|
||||
protected static class SetFinalAttackers implements Runnable
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (_rainbow == null)
|
||||
{
|
||||
_rainbow = CHSiegeManager.getInstance().getSiegableHall(RAINBOW_SPRINGS);
|
||||
}
|
||||
|
||||
int spotLeft = 4;
|
||||
if (_rainbow.getOwnerId() > 0)
|
||||
{
|
||||
L2Clan owner = ClanTable.getInstance().getClan(_rainbow.getOwnerId());
|
||||
if (owner != null)
|
||||
{
|
||||
_rainbow.free();
|
||||
owner.setHideoutId(0);
|
||||
_acceptedClans.add(owner);
|
||||
--spotLeft;
|
||||
}
|
||||
|
||||
for (int i = 0; i < spotLeft; i++)
|
||||
{
|
||||
long counter = 0;
|
||||
L2Clan clan = null;
|
||||
for (int clanId : _warDecreesCount.keySet())
|
||||
{
|
||||
L2Clan actingClan = ClanTable.getInstance().getClan(clanId);
|
||||
if ((actingClan == null) || (actingClan.getDissolvingExpiryTime() > 0))
|
||||
{
|
||||
_warDecreesCount.remove(clanId);
|
||||
continue;
|
||||
}
|
||||
|
||||
final long count = _warDecreesCount.get(clanId);
|
||||
if (count > counter)
|
||||
{
|
||||
counter = count;
|
||||
clan = actingClan;
|
||||
}
|
||||
}
|
||||
if ((clan != null) && (_acceptedClans.size() < 4))
|
||||
{
|
||||
_acceptedClans.add(clan);
|
||||
L2PcInstance leader = clan.getLeader().getPlayerInstance();
|
||||
if (leader != null)
|
||||
{
|
||||
leader.sendMessage("Your clan has been accepted to join the RainBow Srpings Chateau siege!");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (_acceptedClans.size() >= 2)
|
||||
{
|
||||
_nextSiege = ThreadPoolManager.getInstance().scheduleGeneral(new SiegeStart(), 3600000);
|
||||
_rainbow.updateSiegeStatus(SiegeStatus.WAITING_BATTLE);
|
||||
}
|
||||
else
|
||||
{
|
||||
Broadcast.toAllOnlinePlayers("Rainbow Springs Chateau siege aborted due lack of population");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected static class SiegeStart implements Runnable
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (_rainbow == null)
|
||||
{
|
||||
_rainbow = CHSiegeManager.getInstance().getSiegableHall(RAINBOW_SPRINGS);
|
||||
}
|
||||
|
||||
// XXX _rainbow.siegeStarts();
|
||||
|
||||
spawnGourds();
|
||||
_siegeEnd = ThreadPoolManager.getInstance().scheduleGeneral(new SiegeEnd(null), _rainbow.getSiegeLenght() - 120000);
|
||||
}
|
||||
}
|
||||
|
||||
public static L2Clan _winner;
|
||||
|
||||
@Override
|
||||
public L2Clan getWinner()
|
||||
{
|
||||
return _winner;
|
||||
}
|
||||
|
||||
private static class SiegeEnd implements Runnable
|
||||
{
|
||||
private final L2Clan _winner;
|
||||
|
||||
protected SiegeEnd(L2Clan winner)
|
||||
{
|
||||
_winner = winner;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (_rainbow == null)
|
||||
{
|
||||
_rainbow = CHSiegeManager.getInstance().getSiegableHall(RAINBOW_SPRINGS);
|
||||
}
|
||||
|
||||
unSpawnGourds();
|
||||
|
||||
if (_winner != null)
|
||||
{
|
||||
_rainbow.setOwner(_winner);
|
||||
}
|
||||
|
||||
// XXX _rainbow.siegeEnds();
|
||||
|
||||
ThreadPoolManager.getInstance().scheduleGeneral(new SetFinalAttackers(), _rainbow.getNextSiegeTime());
|
||||
setRegistrationEndString((_rainbow.getNextSiegeTime() + System.currentTimeMillis()) - 3600000);
|
||||
// Teleport out of the arenas is made 2 mins after game ends
|
||||
ThreadPoolManager.getInstance().scheduleGeneral(new TeleportBack(), 120000);
|
||||
}
|
||||
}
|
||||
|
||||
protected static class TeleportBack implements Runnable
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
for (int arenaId : ARENA_ZONES)
|
||||
{
|
||||
final Collection<L2Character> chars = ZoneManager.getInstance().getZoneById(arenaId).getCharactersInside();
|
||||
for (L2Character chr : chars)
|
||||
{
|
||||
if (chr != null)
|
||||
{
|
||||
chr.teleToLocation(TeleportWhereType.TOWN);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static final int RAINBOW_SPRINGS = 62;
|
||||
|
||||
private static final int WAR_DECREES = 8034;
|
||||
private static final int RAINBOW_NECTAR = 8030;
|
||||
private static final int RAINBOW_MWATER = 8031;
|
||||
private static final int RAINBOW_WATER = 8032;
|
||||
private static final int RAINBOW_SULFUR = 8033;
|
||||
|
||||
private static final int MESSENGER = 35604;
|
||||
private static final int CARETAKER = 35603;
|
||||
private static final int CHEST = 35593;
|
||||
|
||||
private static final int[] GOURDS =
|
||||
{
|
||||
35588,
|
||||
35589,
|
||||
35590,
|
||||
35591
|
||||
};
|
||||
private static L2Spawn[] _gourds = new L2Spawn[4];
|
||||
|
||||
private static final int[] YETIS =
|
||||
{
|
||||
35596,
|
||||
35597,
|
||||
35598,
|
||||
35599
|
||||
};
|
||||
|
||||
private static final Location[] ARENAS = new Location[]
|
||||
{
|
||||
new Location(151562, -127080, -2214), // Arena 1
|
||||
new Location(153141, -125335, -2214), // Arena 2
|
||||
new Location(153892, -127530, -2214), // Arena 3
|
||||
new Location(155657, -125752, -2214), // Arena 4
|
||||
};
|
||||
|
||||
protected static final int[] ARENA_ZONES =
|
||||
{
|
||||
112081,
|
||||
112082,
|
||||
112083,
|
||||
112084
|
||||
};
|
||||
|
||||
private static final String[] _textPassages =
|
||||
{
|
||||
"Fight for Rainbow Springs!",
|
||||
"Are you a match for the Yetti?",
|
||||
"Did somebody order a knuckle sandwich?"
|
||||
};
|
||||
|
||||
private static final Skill[] DEBUFFS = {};
|
||||
|
||||
protected static Map<Integer, Long> _warDecreesCount = new HashMap<>();
|
||||
protected static List<L2Clan> _acceptedClans = new ArrayList<>(4);
|
||||
private static Map<String, ArrayList<L2Clan>> _usedTextPassages = new HashMap<>();
|
||||
private static Map<L2Clan, Integer> _pendingItemToGet = new HashMap<>();
|
||||
|
||||
protected static SiegableHall _rainbow;
|
||||
protected static ScheduledFuture<?> _nextSiege, _siegeEnd;
|
||||
private static String _registrationEnds;
|
||||
|
||||
public RainbowSpringsChateau()
|
||||
{
|
||||
super(RainbowSpringsChateau.class.getSimpleName(), "conquerablehalls", RAINBOW_SPRINGS);
|
||||
|
||||
addFirstTalkId(MESSENGER);
|
||||
addTalkId(MESSENGER);
|
||||
addFirstTalkId(CARETAKER);
|
||||
addTalkId(CARETAKER);
|
||||
addFirstTalkId(YETIS);
|
||||
addTalkId(YETIS);
|
||||
|
||||
loadAttackers();
|
||||
|
||||
_rainbow = CHSiegeManager.getInstance().getSiegableHall(RAINBOW_SPRINGS);
|
||||
if (_rainbow != null)
|
||||
{
|
||||
long delay = _rainbow.getNextSiegeTime();
|
||||
if (delay > -1)
|
||||
{
|
||||
setRegistrationEndString(delay - 3600000);
|
||||
_nextSiege = ThreadPoolManager.getInstance().scheduleGeneral(new SetFinalAttackers(), delay);
|
||||
}
|
||||
else
|
||||
{
|
||||
_log.warning("CHSiegeManager: No Date setted for RainBow Springs Chateau Clan hall siege!. SIEGE CANCELED!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String html = "";
|
||||
final int npcId = npc.getId();
|
||||
if (npcId == MESSENGER)
|
||||
{
|
||||
final String main = (_rainbow.getOwnerId() > 0) ? "messenger_yetti001.htm" : "messenger_yetti001a.htm";
|
||||
html = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/conquerablehalls/RainbowSpringsChateau/" + main);
|
||||
html = html.replace("%time%", _registrationEnds);
|
||||
if (_rainbow.getOwnerId() > 0)
|
||||
{
|
||||
html = html.replace("%owner%", ClanTable.getInstance().getClan(_rainbow.getOwnerId()).getName());
|
||||
}
|
||||
}
|
||||
else if (npcId == CARETAKER)
|
||||
{
|
||||
if (_rainbow.isInSiege())
|
||||
{
|
||||
html = "game_manager003.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
html = "game_manager001.htm";
|
||||
}
|
||||
}
|
||||
else if (Util.contains(YETIS, npcId))
|
||||
{
|
||||
// TODO: Review.
|
||||
if (_rainbow.isInSiege())
|
||||
{
|
||||
if (!player.isClanLeader())
|
||||
{
|
||||
html = "no_clan_leader.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
L2Clan clan = player.getClan();
|
||||
if (_acceptedClans.contains(clan))
|
||||
{
|
||||
int index = _acceptedClans.indexOf(clan);
|
||||
if (npcId == YETIS[index])
|
||||
{
|
||||
html = "yeti_main.htm";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
player.setLastQuestNpcObject(npc.getObjectId());
|
||||
return html;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String html = event;
|
||||
final L2Clan clan = player.getClan();
|
||||
switch (npc.getId())
|
||||
{
|
||||
case MESSENGER:
|
||||
switch (event)
|
||||
{
|
||||
case "register":
|
||||
if (!player.isClanLeader())
|
||||
{
|
||||
html = "messenger_yetti010.htm";
|
||||
}
|
||||
else if ((clan.getCastleId() > 0) || (clan.getFortId() > 0) || (clan.getHideoutId() > 0))
|
||||
{
|
||||
html = "messenger_yetti012.htm";
|
||||
}
|
||||
else if (!_rainbow.isRegistering())
|
||||
{
|
||||
html = "messenger_yetti014.htm";
|
||||
}
|
||||
else if (_warDecreesCount.containsKey(clan.getId()))
|
||||
{
|
||||
html = "messenger_yetti013.htm";
|
||||
}
|
||||
else if ((clan.getLevel() < 3) || (clan.getMembersCount() < 5))
|
||||
{
|
||||
html = "messenger_yetti011.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
final L2ItemInstance warDecrees = player.getInventory().getItemByItemId(WAR_DECREES);
|
||||
if (warDecrees == null)
|
||||
{
|
||||
html = "messenger_yetti008.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
long count = warDecrees.getCount();
|
||||
_warDecreesCount.put(clan.getId(), count);
|
||||
player.destroyItem("Rainbow Springs Registration", warDecrees, npc, true);
|
||||
updateAttacker(clan.getId(), count, false);
|
||||
html = "messenger_yetti009.htm";
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "cancel":
|
||||
if (!player.isClanLeader())
|
||||
{
|
||||
html = "messenger_yetti010.htm";
|
||||
}
|
||||
else if (!_warDecreesCount.containsKey(clan.getId()))
|
||||
{
|
||||
html = "messenger_yetti016.htm";
|
||||
}
|
||||
else if (!_rainbow.isRegistering())
|
||||
{
|
||||
html = "messenger_yetti017.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
updateAttacker(clan.getId(), 0, true);
|
||||
html = "messenger_yetti018.htm";
|
||||
}
|
||||
break;
|
||||
case "unregister":
|
||||
if (_rainbow.isRegistering())
|
||||
{
|
||||
if (_warDecreesCount.containsKey(clan.getId()))
|
||||
{
|
||||
player.addItem("Rainbow Spring unregister", WAR_DECREES, _warDecreesCount.get(clan.getId()) / 2, npc, true);
|
||||
_warDecreesCount.remove(clan.getId());
|
||||
html = "messenger_yetti019.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
html = "messenger_yetti020.htm";
|
||||
}
|
||||
}
|
||||
else if (_rainbow.isWaitingBattle())
|
||||
{
|
||||
_acceptedClans.remove(clan);
|
||||
html = "messenger_yetti020.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CARETAKER:
|
||||
if (event.equals("portToArena"))
|
||||
{
|
||||
final L2Party party = player.getParty();
|
||||
if (clan == null)
|
||||
{
|
||||
html = "game_manager009.htm";
|
||||
}
|
||||
else if (!player.isClanLeader())
|
||||
{
|
||||
html = "game_manager004.htm";
|
||||
}
|
||||
else if (!player.isInParty())
|
||||
{
|
||||
html = "game_manager005.htm";
|
||||
}
|
||||
else if (party.getLeaderObjectId() != player.getObjectId())
|
||||
{
|
||||
html = "game_manager006.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
final int clanId = player.getClanId();
|
||||
boolean nonClanMemberInParty = false;
|
||||
for (L2PcInstance member : party.getMembers())
|
||||
{
|
||||
if (member.getClanId() != clanId)
|
||||
{
|
||||
nonClanMemberInParty = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (nonClanMemberInParty)
|
||||
{
|
||||
html = "game_manager007.htm";
|
||||
}
|
||||
else if (party.getMemberCount() < 5)
|
||||
{
|
||||
html = "game_manager008.htm";
|
||||
}
|
||||
else if ((clan.getCastleId() > 0) || (clan.getFortId() > 0) || (clan.getHideoutId() > 0))
|
||||
{
|
||||
html = "game_manager010.htm";
|
||||
}
|
||||
else if (clan.getLevel() < Config.CHS_CLAN_MINLEVEL)
|
||||
{
|
||||
html = "game_manager011.htm";
|
||||
}
|
||||
// else if () // Something about the rules.
|
||||
// {
|
||||
// html = "game_manager012.htm";
|
||||
// }
|
||||
// else if () // Already registered.
|
||||
// {
|
||||
// html = "game_manager013.htm";
|
||||
// }
|
||||
else if (!_acceptedClans.contains(clan))
|
||||
{
|
||||
html = "game_manager014.htm";
|
||||
}
|
||||
// else if () // Not have enough cards to register.
|
||||
// {
|
||||
// html = "game_manager015.htm";
|
||||
// }
|
||||
else
|
||||
{
|
||||
portToArena(player, _acceptedClans.indexOf(clan));
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (event.startsWith("enterText"))
|
||||
{
|
||||
// Shouldn't happen
|
||||
if (!_acceptedClans.contains(clan))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String[] split = event.split("_ ");
|
||||
if (split.length < 2)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final String passage = split[1];
|
||||
|
||||
if (!isValidPassage(passage))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (_usedTextPassages.containsKey(passage))
|
||||
{
|
||||
ArrayList<L2Clan> list = _usedTextPassages.get(passage);
|
||||
|
||||
if (list.contains(clan))
|
||||
{
|
||||
html = "yeti_passage_used.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
list.add(clan);
|
||||
synchronized (_pendingItemToGet)
|
||||
{
|
||||
if (_pendingItemToGet.containsKey(clan))
|
||||
{
|
||||
int left = _pendingItemToGet.get(clan);
|
||||
++left;
|
||||
_pendingItemToGet.put(clan, left);
|
||||
}
|
||||
else
|
||||
{
|
||||
_pendingItemToGet.put(clan, 1);
|
||||
}
|
||||
}
|
||||
html = "yeti_item_exchange.htm";
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (event.startsWith("getItem"))
|
||||
{
|
||||
if (!_pendingItemToGet.containsKey(clan))
|
||||
{
|
||||
html = "yeti_cannot_exchange.htm";
|
||||
}
|
||||
|
||||
int left = _pendingItemToGet.get(clan);
|
||||
if (left > 0)
|
||||
{
|
||||
int itemId = Integer.parseInt(event.split("_")[1]);
|
||||
player.addItem("Rainbow Spring Chateau Siege", itemId, 1, npc, true);
|
||||
--left;
|
||||
_pendingItemToGet.put(clan, left);
|
||||
html = "yeti_main.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
html = "yeti_cannot_exchange.htm";
|
||||
}
|
||||
}
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
if (!_rainbow.isInSiege())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final L2Clan clan = killer.getClan();
|
||||
if ((clan == null) || !_acceptedClans.contains(clan))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final int npcId = npc.getId();
|
||||
final int index = _acceptedClans.indexOf(clan);
|
||||
|
||||
if (npcId == CHEST)
|
||||
{
|
||||
shoutRandomText(npc);
|
||||
}
|
||||
else if (npcId == GOURDS[index])
|
||||
{
|
||||
synchronized (this)
|
||||
{
|
||||
if (_siegeEnd != null)
|
||||
{
|
||||
_siegeEnd.cancel(false);
|
||||
}
|
||||
ThreadPoolManager.getInstance().executeGeneral(new SiegeEnd(clan));
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onItemUse(L2Item item, L2PcInstance player)
|
||||
{
|
||||
if (!_rainbow.isInSiege())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
L2Object target = player.getTarget();
|
||||
|
||||
if ((target == null) || !(target instanceof L2Npc))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
int yeti = target.getId();
|
||||
if (!isYetiTarget(yeti))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final L2Clan clan = player.getClan();
|
||||
if ((clan == null) || !_acceptedClans.contains(clan))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// Nectar must spawn the enraged yeti. Dunno if it makes any other thing
|
||||
// Also, the items must execute:
|
||||
// - Reduce gourd hpb ( reduceGourdHp(int, L2PcInstance) )
|
||||
// - Cast debuffs on enemy clans ( castDebuffsOnEnemies(int) )
|
||||
// - Change arena gourds ( moveGourds() )
|
||||
// - Increase gourd hp ( increaseGourdHp(int) )
|
||||
|
||||
final int itemId = item.getId();
|
||||
if (itemId == RAINBOW_NECTAR)
|
||||
{
|
||||
// Spawn enraged (where?)
|
||||
reduceGourdHp(_acceptedClans.indexOf(clan), player);
|
||||
}
|
||||
else if (itemId == RAINBOW_MWATER)
|
||||
{
|
||||
increaseGourdHp(_acceptedClans.indexOf(clan));
|
||||
}
|
||||
else if (itemId == RAINBOW_WATER)
|
||||
{
|
||||
moveGourds();
|
||||
}
|
||||
else if (itemId == RAINBOW_SULFUR)
|
||||
{
|
||||
castDebuffsOnEnemies(_acceptedClans.indexOf(clan));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void portToArena(L2PcInstance leader, int arena)
|
||||
{
|
||||
if ((arena < 0) || (arena > 3))
|
||||
{
|
||||
_log.warning("RainbowSptringChateau siege: Wrong arena id passed: " + arena);
|
||||
return;
|
||||
}
|
||||
for (L2PcInstance pc : leader.getParty().getMembers())
|
||||
{
|
||||
if (pc != null)
|
||||
{
|
||||
pc.stopAllEffects();
|
||||
if (pc.hasSummon())
|
||||
{
|
||||
pc.getSummon().unSummon(pc);
|
||||
}
|
||||
pc.teleToLocation(ARENAS[arena]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected static void spawnGourds()
|
||||
{
|
||||
for (int i = 0; i < _acceptedClans.size(); i++)
|
||||
{
|
||||
if (_gourds[i] == null)
|
||||
{
|
||||
try
|
||||
{
|
||||
_gourds[i] = new L2Spawn(NpcData.getInstance().getTemplate(GOURDS[i]));
|
||||
_gourds[i].setX(ARENAS[i].getX() + 150);
|
||||
_gourds[i].setY(ARENAS[i].getY() + 150);
|
||||
_gourds[i].setZ(ARENAS[i].getZ());
|
||||
_gourds[i].setHeading(1);
|
||||
_gourds[i].setAmount(1);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
SpawnTable.getInstance().addNewSpawn(_gourds[i], false);
|
||||
_gourds[i].init();
|
||||
}
|
||||
}
|
||||
|
||||
protected static void unSpawnGourds()
|
||||
{
|
||||
for (int i = 0; i < _acceptedClans.size(); i++)
|
||||
{
|
||||
_gourds[i].getLastSpawn().deleteMe();
|
||||
SpawnTable.getInstance().deleteSpawn(_gourds[i], false);
|
||||
}
|
||||
}
|
||||
|
||||
private static void moveGourds()
|
||||
{
|
||||
L2Spawn[] tempArray = _gourds;
|
||||
int iterator = _acceptedClans.size();
|
||||
for (int i = 0; i < iterator; i++)
|
||||
{
|
||||
L2Spawn oldSpawn = _gourds[(iterator - 1) - i];
|
||||
L2Spawn curSpawn = tempArray[i];
|
||||
|
||||
_gourds[(iterator - 1) - i] = curSpawn;
|
||||
|
||||
curSpawn.getLastSpawn().teleToLocation(oldSpawn.getLocation());
|
||||
}
|
||||
}
|
||||
|
||||
private static void reduceGourdHp(int index, L2PcInstance player)
|
||||
{
|
||||
L2Spawn gourd = _gourds[index];
|
||||
gourd.getLastSpawn().reduceCurrentHp(1000, player, null);
|
||||
}
|
||||
|
||||
private static void increaseGourdHp(int index)
|
||||
{
|
||||
L2Spawn gourd = _gourds[index];
|
||||
L2Npc gourdNpc = gourd.getLastSpawn();
|
||||
gourdNpc.setCurrentHp(gourdNpc.getCurrentHp() + 1000);
|
||||
}
|
||||
|
||||
private static void castDebuffsOnEnemies(int myArena)
|
||||
{
|
||||
for (int id : ARENA_ZONES)
|
||||
{
|
||||
if (id == myArena)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
final Collection<L2Character> chars = ZoneManager.getInstance().getZoneById(id).getCharactersInside();
|
||||
for (L2Character chr : chars)
|
||||
{
|
||||
if (chr != null)
|
||||
{
|
||||
for (Skill sk : DEBUFFS)
|
||||
{
|
||||
sk.applyEffects(chr, chr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void shoutRandomText(L2Npc npc)
|
||||
{
|
||||
int length = _textPassages.length;
|
||||
|
||||
if (_usedTextPassages.size() >= length)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int randomPos = getRandom(length);
|
||||
String message = _textPassages[randomPos];
|
||||
|
||||
if (_usedTextPassages.containsKey(message))
|
||||
{
|
||||
shoutRandomText(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
_usedTextPassages.put(message, new ArrayList<L2Clan>());
|
||||
int shout = Say2.NPC_SHOUT;
|
||||
int objId = npc.getObjectId();
|
||||
NpcSay say = new NpcSay(objId, shout, npc.getId(), message);
|
||||
npc.broadcastPacket(say);
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isValidPassage(String text)
|
||||
{
|
||||
for (String st : _textPassages)
|
||||
{
|
||||
if (st.equalsIgnoreCase(text))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static boolean isYetiTarget(int npcId)
|
||||
{
|
||||
for (int yeti : YETIS)
|
||||
{
|
||||
if (yeti == npcId)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static void updateAttacker(int clanId, long count, boolean remove)
|
||||
{
|
||||
try (Connection con = L2DatabaseFactory.getInstance().getConnection())
|
||||
{
|
||||
PreparedStatement statement;
|
||||
if (remove)
|
||||
{
|
||||
statement = con.prepareStatement("DELETE FROM rainbowsprings_attacker_list WHERE clanId = ?");
|
||||
statement.setInt(1, clanId);
|
||||
}
|
||||
else
|
||||
{
|
||||
statement = con.prepareStatement("INSERT INTO rainbowsprings_attacker_list VALUES (?,?)");
|
||||
statement.setInt(1, clanId);
|
||||
statement.setLong(2, count);
|
||||
}
|
||||
statement.execute();
|
||||
statement.close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadAttackers()
|
||||
{
|
||||
try (Connection con = L2DatabaseFactory.getInstance().getConnection())
|
||||
{
|
||||
PreparedStatement statement = con.prepareStatement("SELECT * FROM rainbowsprings_attacker_list");
|
||||
ResultSet rset = statement.executeQuery();
|
||||
while (rset.next())
|
||||
{
|
||||
int clanId = rset.getInt("clan_id");
|
||||
long count = rset.getLong("decrees_count");
|
||||
_warDecreesCount.put(clanId, count);
|
||||
}
|
||||
rset.close();
|
||||
statement.close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
protected static void setRegistrationEndString(long time)
|
||||
{
|
||||
Calendar c = Calendar.getInstance();
|
||||
c.setTime(new Date(time));
|
||||
int year = c.get(Calendar.YEAR);
|
||||
int month = c.get(Calendar.MONTH) + 1;
|
||||
int day = c.get(Calendar.DAY_OF_MONTH);
|
||||
int hour = c.get(Calendar.HOUR);
|
||||
int mins = c.get(Calendar.MINUTE);
|
||||
|
||||
_registrationEnds = year + "-" + month + "-" + day + " " + hour + (mins < 10 ? ":0" : ":") + mins;
|
||||
}
|
||||
|
||||
public static void launchSiege()
|
||||
{
|
||||
_nextSiege.cancel(false);
|
||||
ThreadPoolManager.getInstance().executeGeneral(new SiegeStart());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void endSiege()
|
||||
{
|
||||
if (_siegeEnd != null)
|
||||
{
|
||||
_siegeEnd.cancel(false);
|
||||
}
|
||||
ThreadPoolManager.getInstance().executeGeneral(new SiegeEnd(null));
|
||||
}
|
||||
|
||||
public static void updateAdminDate(long date)
|
||||
{
|
||||
if (_rainbow == null)
|
||||
{
|
||||
_rainbow = CHSiegeManager.getInstance().getSiegableHall(RAINBOW_SPRINGS);
|
||||
}
|
||||
|
||||
_rainbow.setNextSiegeDate(date);
|
||||
if (_nextSiege != null)
|
||||
{
|
||||
_nextSiege.cancel(true);
|
||||
}
|
||||
date -= 3600000;
|
||||
setRegistrationEndString(date);
|
||||
_nextSiege = ThreadPoolManager.getInstance().scheduleGeneral(new SetFinalAttackers(), _rainbow.getNextSiegeTime());
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new RainbowSpringsChateau();
|
||||
}
|
||||
}
|
4
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager001.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager001.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Caretaker:<br>
|
||||
Is everyone ready? Well, let's get moving! Whoever's late doesn't deserve to enjoy the game!<br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau portToArena">Enter the arena.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager002.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager002.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Caretaker:<br>
|
||||
You must follow the rules to play the game. Entry denied!<br>
|
||||
(1) Are there more than 5 in the party?<br>
|
||||
(2) Is the applicant the Clan Leader?<br>
|
||||
(3) Does the party include non-clan members?<br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau portToArena">Try to enter again.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager003.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager003.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Caretaker:<br>
|
||||
The arena is closed at this time. Have you applied to participate in the game?
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager004.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager004.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Caretaker:<br>
|
||||
You must abide by the rules in order to participate in the game.<br>
|
||||
Requirements for Participation: <font color="LEVEL">A party of more than five clan members with a Clan Leader.</font><br><br>
|
||||
The Clan Leader must be the one to apply for entry to the game.<br>
|
||||
Entry denied!<br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau portToArena">Try to enter again.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager005.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager005.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Caretaker:<br>
|
||||
You must abide by the following rules in order to participate in the game.<br>
|
||||
Rules of Participation: <font color="LEVEL">A party of more than five clan members with a Clan Leader.</font><br><br>
|
||||
You need more members in your party.<br>
|
||||
Entry denied!<br><br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau portToArena">Try to enter again.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager006.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager006.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Caretaker:<br>
|
||||
You must abide by the following rules in order to participate in the game.<br>
|
||||
Rules of Participation: <font color="LEVEL">A party of more than five clan members with a Clan Leader.</font><br><br>
|
||||
Your Clan Leader must apply as the party leader.<br>
|
||||
Entry denied!<br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau portToArena">Try to enter again.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager007.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager007.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Caretaker:<br>
|
||||
You must abide by the rules in order to participate in the game.<br>
|
||||
Rules of Participation: <font color="LEVEL">A party of more than five clan members with a Clan Leader.</font><br>
|
||||
Entry denied!<br>
|
||||
You have a non-clan member in your midst.<br><br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau portToArena">Try to enter again.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager008.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager008.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Caretaker:<br>
|
||||
You must abide by the following rules in order to participate in the game.<br>
|
||||
Rules of Participation: <font color="LEVEL">A party of more than five clan members with a Clan Leader.</font>
|
||||
Entry denied!<br><br>
|
||||
You need at least five people in order to play the game... Why don't you contact some friends?<br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau portToArena">Try to enter again.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager009.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager009.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Caretaker:<br>
|
||||
You must abide by the following rules in order to participate in the game.<br>
|
||||
Rules of Participation: <font color="LEVEL">A party of more than five clan members with a Clan Leader.</font><br>
|
||||
Entry denied!<br>
|
||||
You're not a member of a clan.<br><br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau portToArena">Try to enter again.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager010.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager010.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Caretaker:<br>
|
||||
You must abide by the following rules in order to participate in the game.<br>
|
||||
Rules of Participation: <font color="LEVEL">A party of more than five clan members with a Clan Leader.</font><br>
|
||||
Entry denied!<br>
|
||||
You're an ambitious one! One may own only one Clan Hall!<br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau portToArena">Try to enter again.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager011.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager011.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Caretaker:<br>
|
||||
You must abide by the rules in order to participate in the game.<br>
|
||||
Rules of Participation: <font color="LEVEL">A party of more than five clan members with a Clan Leader.</font><br><br>
|
||||
You must be a Clan Leader above Clan level 3 in order to apply.<br>
|
||||
Entry denied!<br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau portToArena">Try to enter again.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager012.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager012.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Caretaker:<br>
|
||||
You must abide by the following rules in order to participate in the game.<br>
|
||||
Rules of Participation: <font color="LEVEL">A party of more than five clan members with a Clan Leader.</font><br>
|
||||
Entry denied!<br>
|
||||
Read the rules again.<br><br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau portToArena">Try to enter again.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager013.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager013.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Caretaker:<br>
|
||||
You must abide by the following rules in order to participate in the game. It appears that you don't meet the requirements.<br>
|
||||
Rules of Participation: <font color="LEVEL">A party of more than five clan members with a Clan Leader.</font><br>
|
||||
Entry denied!<br>
|
||||
Let's see... You're already registered.<br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau portToArena">Try to enter again.</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager014.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager014.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Caretaker:<br>
|
||||
To participate in the game, you must abide by the rules. I'm afraid that I must deny your entry because you do not meet the following requirement:<br>
|
||||
Participation - <font color="LEVEL">You must have a party of at least 5 clan members with a clan leader as the leader of the party.</font><br><br>
|
||||
Have you registered for the game?<br><br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau portToArena">Attempt re-entry.</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager015.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/game_manager015.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Entrance Manager:<br>
|
||||
To participate in the game, you must abide by the rules. I'm afraid that I must deny your entry because you do not meet the following requirement:<br>
|
||||
Participation - <font color="LEVEL">You must have a party of at least 5 clan members with a clan leader as the leader of the party.</font><br><br>
|
||||
I'm sorry, but your name seems to have been removed from the participants' list. Apparently you didn't have enough cards to register.<br><br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau portToArena">Attempt re-entry.</a>
|
||||
</body></html>
|
9
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti001.htm
vendored
Normal file
9
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti001.htm
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<html><body>Messenger Yetti:<br>
|
||||
Pettite~ the transparent and energetic building behind me is <font color="LEVEL">Rainbow Spring</font>. Not my type, but very high class nonetheless. It's a place so nice, it's simply overlooked by ignorant adventurers. The winner gets ultimate bragging rights.<br>
|
||||
The last winner was <font color="LEVEL">%owner%</font>, challenge him if you think you can defeat a clan!<br><br>
|
||||
Registration finished at: <font color="LEVEL">%time%</font><br><br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau messenger_yetti002.htm">Hideout battle game instruction</a><br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau register">Hideout battle game registration</a><br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau messenger_yetti015.htm">Cancel registration</a><br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau messenger_yetti018.htm">Get a refund during game</a>
|
||||
</body></html>
|
8
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti001a.htm
vendored
Normal file
8
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti001a.htm
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>Messenger Yetti:<br>
|
||||
Pettite~ the transparent and lively building behind me is called <font color="LEVEL">Rainbow Spring</font>. It's not your ordinary hideout. You won't see a horde of peasants spilling blood for it. This one is special. Very high class...<br>
|
||||
Registration finished at: <font color="LEVEL">%time%</font><br><br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau messenger_yetti002.htm">Hideout battle game instruction</a><br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau register">Hideout battle game registration</a><br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau messenger_yetti015.htm">Cancel registration</a><br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau messenger_yetti018.htm">Get a refund during game</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti002.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti002.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Messenger Yeti:<br>
|
||||
To register for a Clan Hall War, you must first go fishing in Goddard Territory and obtain Clan Hall War Decrees. They compare the number of decrees submitted and select the four finalists one hour before the game starts. Those selected determine the owner of the Clan Hall by playing the game.<br>
|
||||
Submit as many decrees as possible! There's only one opportunity for registration!<br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau messenger_yetti003.htm">"How do I play the game?"</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti003.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti003.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Messenger Yeti:<br>
|
||||
Have you ever played a high stakes event? If so, you'll understand quickly. Once you enter the arena, my good friend, the Game Coordinator, will provide instructions on how the game is played. He will then call out some words, which you must spell by breaking the treasure boxes in the four circles. Combine the letters you find into words, and take them to the Coordinator! You will then get an item for use in the game!<br>
|
||||
You can use this item against the Coordinator, depending on the situation. You may hit a jackpot or impede others, or sometimes my jerk friend...ehh... Well, you'll find out soon enough.<br>
|
||||
Oh, I almost forgot the most important thing! The only way to open the Treasure Boxes is by hitting them with your <font color="LEVEL">bare hands</font>. Don't forget!<br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau messenger_yetti004.htm">"How many people can participate in the game?"</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti004.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti004.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Messenger Yeti:<br>
|
||||
It's not a game where you fight, but a game played for fun, so only like-minded people are allowed to participate. You need a fair amount of people... If you have more than five, it will work.<br>
|
||||
(You can participate if your party is composed of more than five members and your Clan level is 3 or above.)
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti005.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti005.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Messenger Yeti:<br>
|
||||
It would be fun to play together... Grarr... Too bad.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti008.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti008.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Messenger Yeti:<br>
|
||||
Grarr! I am sorry but there is a requirement to participate in the game. In order to apply, you must have Rainbow Springs Clan Hall War Decrees, and you can submit these only once. Players are ranked depending on the number of decrees submitted, so gather as many of them as you can.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti009.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti009.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Messenger Yeti:<br>
|
||||
Your application was received. We plan to make an announcement one hour before the game starts as to whether you were successfully registered or not. Don't forget to check back.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti010.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti010.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Messenger Yeti:<br>
|
||||
The Clan Leader has to come here himself in order to apply to participate in the game, or to cancel it.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti011.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti011.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Messenger Yeti:<br>
|
||||
You need many people to have a fun game. You need leaders and also players...<br>
|
||||
(You must be a Clan Leader of a Clan composed of more than five members and be above Clan level 3 in order to apply.)
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti012.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti012.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Messenger Yeti:<br>
|
||||
You already own a Clan Hall. You're greedy! You not allowed to participate in the game!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti013.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti013.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Messenger Yeti:<br>
|
||||
You're already registered. You can register only once per game! Grarr!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti014.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti014.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Messenger Yeti:<br>
|
||||
Registration for the Clan Hall war game is finished, please try the next game. To participate in a game, you must apply one hour before the game starts.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti015.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti015.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Messenger Yeti:<br>
|
||||
Do you absolutely have to cancel? If you cancel your registration now, we can only return half the decrees you submitted to us.<br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau cancel">Cancel</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti016.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti016.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Messenger Yeti:<br>
|
||||
Grarr! I can't find your name on the applicant list.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti017.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti017.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Messenger Yeti:<br>
|
||||
Check back one hour before the game starts when the participating teams are selected in case of a cancellation.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti018.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti018.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Messenger Yetti:<br>
|
||||
The game is cancelled? Okay, so you get all the applications back.<br>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau unregister">Receive it back</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti019.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti019.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Messenger Yetti:<br>
|
||||
Pettite~ here is your application!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti020.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/messenger_yetti020.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Messenger Yetti:<br>
|
||||
The returning application function is how you give back an application to a participant when the game is cancelled.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/no_clan_leader.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/no_clan_leader.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>
|
||||
I'm only authorized to talk with the clan leader.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/yeti_cannot_exchange.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/yeti_cannot_exchange.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Yeti:<br>
|
||||
I cannot exchange any item with you!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/yeti_item_exchange.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/yeti_item_exchange.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>
|
||||
No data for this html.
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/yeti_main.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/yeti_main.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
No data for this html<br>
|
||||
<edit var="passage" width = 60><br1>
|
||||
<a action="bypass -h Quest RainbowSpringsChateau enterText_ $passage">Register for Siege</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/yeti_passage_used.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/yeti_passage_used.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>
|
||||
That passage have been already used for your clan.
|
||||
</body></html>
|
Reference in New Issue
Block a user