From: Hendrik B. <nh...@us...> - 2011-06-28 21:16:36
|
Update of /cvsroot/arianne/stendhal/src/games/stendhal/server/script In directory vz-cvs-4.sog:/tmp/cvs-serv28201/src/games/stendhal/server/script Added Files: ContMoveAndStrengthenOnlinePlayers.java Log Message: automatically teleporting new players out of int_semos_guard_house and afterlife to a random location and giving them a high level --- NEW FILE: ContMoveAndStrengthenOnlinePlayers.java --- /* $Id: ContMoveAndStrengthenOnlinePlayers.java,v 1.1 2011/06/28 21:16:33 nhnb Exp $ */ /*************************************************************************** * (C) Copyright 2003-2010 - Stendhal * *************************************************************************** *************************************************************************** * * * This program 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 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ package games.stendhal.server.script; import games.stendhal.common.Direction; import games.stendhal.common.Rand; import games.stendhal.server.core.engine.SingletonRepository; import games.stendhal.server.core.engine.StendhalRPWorld; import games.stendhal.server.core.engine.StendhalRPZone; import games.stendhal.server.core.events.TurnListener; import games.stendhal.server.core.scripting.ScriptImpl; import games.stendhal.server.entity.item.Item; import games.stendhal.server.entity.item.StackableItem; import games.stendhal.server.entity.player.Player; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import marauroa.common.game.IRPZone; /** * Script to make all players stronger and immune to poison before randomly distributing them * over all zones of the running server * * @author madmetzger */ public class ContMoveAndStrengthenOnlinePlayers extends ScriptImpl { private List<StendhalRPZone> zones = new ArrayList<StendhalRPZone>(); /** * Create the script and initialize the list of zones */ public ContMoveAndStrengthenOnlinePlayers() { StendhalRPWorld rpWorld = SingletonRepository.getRPWorld(); for (IRPZone irpZone : rpWorld) { StendhalRPZone irpZone2 = (StendhalRPZone) irpZone; if (!irpZone2.getName().startsWith("int")) { zones.add(irpZone2); } } } @Override public void execute(final Player admin, List<String> args) { SingletonRepository.getTurnNotifier().notifyInSeconds(5, new ContMoveAndStrengthenPlayersTurnListener()); } private class ContMoveAndStrengthenPlayersTurnListener implements TurnListener { private StendhalRPZone zoneGuardHouse; private StendhalRPZone zoneAfterlife; public ContMoveAndStrengthenPlayersTurnListener() { zoneGuardHouse = StendhalRPWorld.get().getZone("int_semos_guard_house"); zoneAfterlife = StendhalRPWorld.get().getZone("int_afterlife"); } public void onTurnReached(int currentTurn) { List<Player> list = new LinkedList<Player>(); list.addAll(zoneGuardHouse.getPlayers()); list.addAll(zoneAfterlife.getPlayers()); for (Player player : list) { equipPlayer(player); player.setDefXP(999999999); player.addXP(999999999); player.setImmune(); StendhalRPZone zone = zones.get(Rand.rand(zones.size())); int x = Rand.rand(zone.getWidth() - 4) + 2; int y = Rand.rand(zone.getHeight() - 5) + 2; player.teleport(zone, x, y, Direction.DOWN, player); } SingletonRepository.getTurnNotifier().notifyInSeconds(5, new ContMoveAndStrengthenPlayersTurnListener()); } private void equipPlayer(Player player) { StackableItem money = (StackableItem) SingletonRepository.getEntityManager().getItem("money"); money.setQuantity(5000); player.equipToInventoryOnly(money); StackableItem potions = (StackableItem) SingletonRepository.getEntityManager().getItem("greater potion"); potions.setQuantity(5000); player.equipToInventoryOnly(potions); if(!player.isEquipped("chaos dagger")) { Item first = (Item) player.getSlot("rhand").getFirst(); player.drop(first); Item dagger = SingletonRepository.getEntityManager().getItem("chaos dagger"); player.equip("rhand", dagger); } if(!player.isEquipped("chaos shield")) { Item first = (Item) player.getSlot("lhand").getFirst(); player.drop(first); Item shield = SingletonRepository.getEntityManager().getItem("chaos shield"); player.equip("lhand", shield); } if(!player.isEquipped("black helmet")) { Item first = (Item) player.getSlot("head").getFirst(); player.drop(first); Item helmet = SingletonRepository.getEntityManager().getItem("black helmet"); player.equip("head", helmet); } if(!player.isEquipped("elvish legs")) { Item first = (Item) player.getSlot("legs").getFirst(); player.drop(first); Item legs = SingletonRepository.getEntityManager().getItem("elvish legs"); player.equip("legs", legs); } if(!player.isEquipped("killer boots")) { Item first = (Item) player.getSlot("feet").getFirst(); player.drop(first); Item boots = SingletonRepository.getEntityManager().getItem("killer boots"); player.equip("feet", boots); } if(!player.isEquipped("green dragon cloak")) { Item first = (Item) player.getSlot("cloak").getFirst(); player.drop(first); Item cloak = SingletonRepository.getEntityManager().getItem("green dragon cloak"); player.equip("cloak", cloak); } } } } |