⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lolcastle.js.svn-base

📁 冒险岛私服Java版服务端(Odinms)源代码。学习JAVA开发的朋友
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
	}
}

function playerEntry(eim, player) {
	var map = eim.getMapFactory().getMap(mapId, false, false);
	player.changeMap(map, map.getPortal(0));
}

function playerDead(eim, player) {
	player.setHp(1);
	player.changeMap(returnMap, returnMap.getPortal(0));
	eim.unregisterPlayer(player);
	player.getClient().getSession().write(net.sf.odinms.tools.MaplePacketCreator.serverNotice(1, "You lost with " + eim.getKillCount(player) + " points."));
}

function playerDisconnected(eim, player) {
	eim.unregisterPlayer(player);
	player.getMap().removePlayer(player);
	player.setMap(returnMap);
}

function allMonstersDead(eim) {
	if (eim.getPlayerCount() > 1) {
		var maxKC = 0;
		var maxPlayer = null;
		var iter = eim.getPlayers().iterator();
		while (iter.hasNext()) {
			var curPlayer = iter.next();
			if (eim.getKillCount(curPlayer) <= maxKC) {
				playerDead(eim, curPlayer);
			} else if (eim.getKillCount(curPlayer) > maxKC) {
				if (maxPlayer != null) {
					playerDead(eim, maxPlayer);
				}
				maxPlayer = curPlayer;
				maxKC = eim.getKillCount(maxPlayer);
			}
		}
	}
	// lolo nur noch der gewinner da
	var map = eim.getMapFactory().getMap(mapId, false, false);
	var ii = net.sf.odinms.server.MapleItemInformationProvider.getInstance();
	var priceRand = 1 + Math.floor(Math.random() * 100);
	var price;
	if (priceRand <= 35) {
		// cash weapon
		var weaponId;
		do {
			weaponId = 1702000 + Math.floor(Math.random() * 176);
		} while(ii.getSlotMax(weaponId) == 0);
		price = ii.getEquipById(weaponId);
	} else if (priceRand > 35 && priceRand <= 37) {
		// uberweapons
		var uberWeapons;
		if (eim.getName().equals("lolcastle1") || eim.getName().equals("lolcastle2")) {
			// not so uber (lv50 weapons)
			uberWeapons = new Array(1452008,
						1472021,
						1462007,
						1332054,
						1312008,
						1322021,
						1302010,
						1442046,
						1432004,
						1382011,
						1412003,
						1422005,
						1402013,
						1372011);
		} else {
			// lv100 weapons
			uberWeapons = new Array(1452019,
						1472053,
						1462015,
						1332051,
						1312030,
						1322045,
						1302056,
						1442044,
						1432030,
						1382035,
						1412021,
						1422027,
						1402037,
						1372010,
						1302026, // black umbrella
						1102041 //pink adventurer cape
						);
		}
		var uberRand = Math.floor(Math.random() * uberWeapons.length);
		var weaponId = uberWeapons[uberRand];
		price = ii.randomizeStats(ii.getEquipById(weaponId));
	} else if (priceRand > 37 && priceRand <= 45) {
		// 30% scroll
		var scrolls30;
		/*
			none of these are available yet
			2040103, // face accessory hp
			2040108, // face accessory avoid
			2040203, // eye accessory acc
			2040208, // eye accessory int
		*/
		if (eim.getName().equals("lolcastle1") || eim.getName().equals("lolcastle2")) {
			scrolls30 = new Array(
							2040009, // helmet def
							2040011, // helmet hp
							2040309, // earring def
							2040405, // topwear def
							2040409, // topwear hp
							2040511, // overall def
							2040605, // bottomwear def
							2040607, // bottomwear jump
							2040609, // bottomwear hp
							2040611, // bottomwear dex
							2040713, // shoes dex
							2040717, // shoed speed
							2040809, // gloves dex
							2040813, // gloves hp
							2040905, // shield def
							2040909, // shield hp
							2041027, // cape mdef
							2041029, // cape def
							2041031, // cape hp
							2041033, // cape mp
							// 70% scrolls that don't suck
							2041034, // cape str
							2041036, // cape int
							2041038, // cape dex
							2041040, // cape luk
							2043004, // 1h-sword att
							2043104, // 1h-axe att
							2043204, // 1h-bw att
							2043304, // dagger att
							2043704, // wand matt
							2043804, // staff matt
							2044004, // 2h-sword att
							2044104, // 2h-axe att
							2044204, // 2h-bw att
							2044304, // spear att
							2044404, // pole arm att
							2044504, // bow att
							2044604, // crossbow att
							2044704 // claw att
			);
		} else {
			scrolls30 = new Array(	
							2040013, // helmet int
							2040015, // helmet acc
							2040307, // earring dex
							2044705, // claw att
							2044505, // bow att
							2043305, // dagger att
							2044605, // crossbow att
							2040407, // topwear str
							2040411, // topwear luk
							2040907, // shield luk
							2041035, // cape str
							2041037, // cape int
							2041039, // cape dex
							2041041, // cape luk
							2043105, // one-handed axe att
							2044105, // two-handed axe att
							2043205, // one-handed bw att
							2044205, // two-handed bw att
							2043005, // one-handed sword att
							2044005, // two-handed sword att
							2044405, // pole arm att
							2044305, // spear att
							2043805, // staff matt
							2043705, // wand matt
							2040715, // shoes jump
							2040509, // overall dex
							2040519, // overall int
							2040521, // overall luk
							2040811, // gloves att
							2040815, // gloves matt
							2040305, // earring int
							2040917, // shield att
							2040922, // shield matt
							2043007 // sword matt
			);
		}
		var scrollRand = Math.floor(Math.random() * scrolls30.length);
		price = new net.sf.odinms.client.Item(scrolls30[scrollRand], 0, 1);
	} else if (priceRand > 45 && priceRand <= 70) {
		// powerups
		var powerUps = new Array(new Array(2022273, 3),
						new Array(2022245, 3),
						new Array(2022179, 1));
		var powerRand = Math.floor(Math.random() * powerUps.length);
		price = new net.sf.odinms.client.Item(powerUps[powerRand][0], 0, powerUps[powerRand][1]);
	} else if (priceRand > 70 && priceRand <= 75) {
		// throwing stars
		var starId = 2070003 + Math.floor(Math.random() * 14);
		price = new net.sf.odinms.client.Item(starId, 0, ii.getSlotMax(starId));
	} else if (priceRand > 75 && priceRand <= 95) {
		// 60% scroll
		var scrolls60 = new Array(	2044701, // claw att
						2044501, // bow att
						2043301, // dagger att
						2044601, // crossbow att
						2043101, // one-handed axe att
						2044101, // two-handed axe att
						2043201, // one-handed bw att
						2044201, // two-handed bw att
						2043001, // one-handed sword att
						2044001, // two-handed sword att
						2044401, // pole arm att
						2044301, // spear att
						2043801, // staff matt
						2043701, // wand matt
						2040704, // shoes jump
						2040501, // overall dex
						2040513, // overall int
						2040516, // overall luk
						2040804, // gloves att
						2040801, // gloves dex
						2040301 // earring int
		);
		var scrollRand = Math.floor(Math.random() * scrolls60.length);
		price = new net.sf.odinms.client.Item(scrolls60[scrollRand], 0, 1);
	} else {
		// 40% scroll
		var scrolls40 = new Array(
						2040315, // earring int
						2040912, // shield def
						2040313, // one-handed sword att
						2043108, // one-handed axe att
						2043208, // one-handed bw att
						2043308, // dagger att
						2043708, // wand matt
						2043808, // staff matt
						2044008, // two-handed sword att
						2044108, // two-handed axe att
						2044208, // two-handed bw att
						2044308, // spear att
						2044408, // pole arm att
						2044508, // bow att
						2044608, // crossbow att
						2044708 // claw att
		);
		var scrollRand = Math.floor(Math.random() * scrolls40.length);
		price = new net.sf.odinms.client.Item(scrolls40[scrollRand], 0, 1);		
	}
	
	var iter = eim.getPlayers().iterator();
	while (iter.hasNext()) {
		var winner = iter.next();
		winner.getClient().getSession().write(net.sf.odinms.tools.MaplePacketCreator.serverNotice(1, "You win with " + eim.getKillCount(winner) + " points. You will be warped out in 2 minutes."));
		winner.getClient().getSession().write(net.sf.odinms.tools.MaplePacketCreator.getClock(120));
		eim.saveWinner(winner);
	}
	var winner = eim.getPlayers().get(0);
	map.spawnItemDrop(winner, winner, price, winner.getPosition(), true, false);

	eim.schedule("warpWinnersOut", 120000);
}

function timeOut() {
	var iter = em.getInstances().iterator();
	while (iter.hasNext()) {
		var eim = iter.next();
		if (eim.getPlayerCount() > 0) {
			var pIter = eim.getPlayers().iterator();
			while (pIter.hasNext()) {
				playerDead(eim, pIter.next());
			}
		}
		eim.dispose();
	}
}

function warpWinnersOut(eim) {
	var iter = eim.getPlayers().iterator();
	while (iter.hasNext()) {
		var player = iter.next();
		player.changeMap(returnMap, returnMap.getPortal(0));
		eim.unregisterPlayer(player);
	}
	eim.dispose();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -