Greasy Fork

TW-FriendsEvents

Add a button for filtering friends who wants event stuff

目前为 2015-02-07 提交的版本。查看 最新版本

// ==UserScript==
// @name        TW-FriendsEvents
// @description   Add a button for filtering friends who wants event stuff
// @include     http://*.the-west.*/game.php*
// @version     1.4.3
// @nocompat Chrome
// @grant       none
// @namespace https://greasyfork.org/users/2196
// ==/UserScript==
(function(e) {
	var t = document.createElement("script");
	t.type = "application/javascript";
	t.textContent = "(" + e + ")();";
	document.body.appendChild(t);
	t.parentNode.removeChild(t);
})
		(function() {
			if (/http:\/\/.+\.the-west\..*\/game\.php.*/
					.test(window.location.href)) {
         
				FriendsEvents = {
					info : {
						lang : 'en',
						version : '1.4.3',
						min_gameversion : '2.0',
						max_gameversion : '2.2',
						description :	"<center><BR /><b>TW FriendsEvents</b><br><br><b>Add a button for filtering friends who wants event stuff</b><center>",
						url:'https://greasyfork.org/fr/scripts/1671-tw-friendsevents'
							
				    },
					id : "",
					interval : 0,
					ready : false,
					create : function(runId) {

						try {

							this.id = runId;

							WestUi.FriendsBar.friendsBarUi.friendsBar.filterTypes_[runId
									.toLowerCase()] = function(player) {

								if (player.name === Character.name)
									return false; 

								var ev = Game.sesData[runId];

								var lastActivation = WestUi.FriendsBar.friendsBarUi.friendsBar
										.getEventActivation(runId,
												player.player_id);

								var diff = lastActivation
										+ parseInt(ev.friendsbar.cooldown, 10)
										- new ServerDate().getTime() / 1000;

								return (diff < 0);

							};

							var img = $('<img class="filter_event'
									+ runId
									+ '" src="/images/interface/friendsbar/events/'
									+ runId + '.png" />');

							var here = $('div.toggler-left');

							here.before($('<div class="fbar-event-img"  />')
									.append(img));
							img
									.click(function(e) {
										if (!isDefined(WestUi.FriendsBar.friendsBarUi.friendsBar.activeFilters_[runId
												.toLowerCase()])) {

											WestUi.FriendsBar.friendsBarUi
													.inLine(runId);

											$('.filter_event' + runId).css({
												'opacity' : '1'
											});
										} else {
											WestUi.FriendsBar.friendsBarUi.friendsBar
													.setFilter(runId
															.toLowerCase(),
															null);

											$('.filter_event' + runId).css({
												'opacity' : '0.43'
											});
											WestUi.FriendsBar.friendsBarUi
													.changeEvents_('listen');
										}
									}

									);
							img.css({
								'opacity' : '0.43',
								'cursor' : 'pointer'
							});

							this.ready = true;
						} catch (e) {
							ErrorLog.log('Erreur de creation du button du FriendsEvent: ', e);
							ErrorLog.showLog();
						}
						return this;
					},getDunMp : function() {

						if (Game.worldName == 'Monde 1'
								|| Game.worldName == 'Monde 3'
								|| Game.worldName == 'Alamogordo'
								|| Game.worldName == 'Death Valley') {
							return "<div style='text-align:right;padding-right: 5px; padding-top: 15px;'><a href=\"javascript:MessagesWindow.open(\'telegram\', {insert_to: \'Dun\'})\">by Dun</a></div>";
						} else {
							if (Game.worldName == 'World 1') {
								return "<div style='text-align:right;padding-right: 5px; padding-top: 15px;'><a href=\"javascript:MessagesWindow.open(\'telegram\', {insert_to: \'Duncol\'})\">by Dun</a></div>";

							}
							return "";
						}
						;
					},
				api : function() {

						var TWApi = TheWestApi.register('TW_FriendsEvents',
								'TW FriendsEvents', FriendsEvents.info.min_gameversion,
								FriendsEvents.info.max_gameversion, 'Dun - v'
										+ FriendsEvents.info.version,
										FriendsEvents.info.url);


						TWApi
								.setGui($(
										"<div id='FriendsEventsApiContent' style=' font-family: comic sans ms;font-size: 12pt;padding-top: 10px;text-align: right;'>"
												+ FriendsEvents.info.description
												+ "</div>").after(
										FriendsEvents.getDunMp()));

					}
				};

				try {
 
					FriendsEvents.api();
					
					FriendsEvents.interval = setInterval(
							function() {

								var loading = false;
								if (Game.loaded
										&& isDefined(WestUi.FriendsBar.friendsBarUi)) {
									loading = true;

								}
								if (loading) {
									WestUi.FriendsBar.friendsBarUi.inLine = function(
											eventId) {

										WestUi.FriendsBar.friendsBarUi
												.changeEvents_('unlisten');
										$('.filter_event' + eventId).css({
											'opacity' : '1'
										});
										WestUi.FriendsBar.friendsBarUi.friendsBar
												.setFilter(eventId
														.toLowerCase(), true);

									};

									clearInterval(FriendsEvents.interval);
									var runningEvents = west.events.Manager
											.getRunningEvents();
									// for each active events
									for (var i = 0; i < runningEvents.length; i++) {
										var runId = runningEvents[i].id;
 									if(isDefined( Game.sesData[runId])) { 
										Game.sesData[runId].friendsEvent = FriendsEvents
												.create(runId);
 											}
									}

									FriendsEvents.ready = true;
								}

							}, 500);

				} catch (e) {
					ErrorLog.log("Erreur d'initialisation", e);

					FriendsEvents.ready = false;
				}

			}

		});