mimicker

alt+click to set point, ctrl+alt+click to cycle through points, click to stop

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         mimicker
// @author       fooksie
// @description  alt+click to set point, ctrl+alt+click to cycle through points, click to stop
// @match        http://cursors.io/
// @version 0.0.1.20141024144148
// @namespace https://greasyfork.org/users/4723
// ==/UserScript==
window.addEventListener("load", function() {
	var	mimic=[],
		index=0,
		lastdate=0,
		playing=true,
		canvas=document.getElementById("canvas");
	Date.prototype.valueOf=function() {
		return lastdate+=101;
		};
	function repeat() {
		if(playing) {
			var	prev=mimic[index++%mimic.length],
				event=document.createEvent("MouseEvents");
			event.initMouseEvent("mousedown", true, true, unsafeWindow, 0, 0, 0, prev[0], prev[1]);
			canvas.dispatchEvent(event);
			requestAnimationFrame(repeat);
			}
		};
	canvas.parentElement.addEventListener("click", function(event) {
		if(playing) {
			mimic=[];
			playing=false;
			}
		if(event.altKey) {
			var	prev=mimic[mimic.length-1];
			if(event.ctrlKey) {
				playing=true;
				requestAnimationFrame(repeat);
				}
			else {
				mimic.push([event.x, event.y]);
				}
			}
		});
	});