비밀5: 최후/상황16/민수/로봇
보이기
var getUrlParameter = function getUrlParameter(sParam) { var sPageURL = window.location.search.substring(1), sURLVariables = sPageURL.split('&'), sParameterName, i; for (i = 0; i < sURLVariables.length; i++) { sParameterName = sURLVariables[i].split('='); if (sParameterName[0] === sParam) { return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]); } } }; if(getUrlParameter('offset') == 127){ var cvs = document.getElementById("cvs"); cvs.innerHTML = ('<canvas id="canvas" width="512" height="512"></canvas>'); var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); var x = 256; var speed = 0; var attack = 20; var enemySpeed = 1; var okdLeft = 0; var okdRight = 0; var turn = 0 var timer = null; var donotrun = 0; var obstacleList = new Array(); var scr = new Array("Error", "<strong><i>(지잉-)</i></strong><br><br>무언가 장전되는 소리가 들렸다. 그리고 다시는 듣고 싶지 않았던 그 소리가 들리기 시작했다.<br><br><strong><i>(투콰콰콰콰-)</i></strong><br><br><strong><i>(깡!) (팅-)</i></strong><br><br>저걸 어떻게 개조한 건진 모르겠지만, 기관총이 계속 나를 향해 공격하고 있었다.<br>저것에 한 대라도 맞는다면... 상상하기도 싫다.", "<i>(틱- 틱-)</i><br><br>기관총이 총알을 전부 쓴 것 같다. 민수는 이정도는 예상했다는 듯이 코웃음을 치며 총알을 장전하고 있었다.<br><br><strong>민수</strong> : 그래, 이래야지... 이래야 죽이는 맛이 좀 나지!<br><br>그리고서는 이전보다 더 빠른 속도로 기관총 총알을 갈기기 시작했다.", "숨이 조금씩 차기 시작한다. 민수도 이 정도까지는 예상하지 못한 것 같다. 당황한 티가 역력했기 때문이다.<br><br><strong>민수</strong> : 뭐 이런 놈이 다 있어... 망할, 최고 속력이다. 이제 죽어라!"); document.onkeydown = function(event) { if(event.keyCode == 37) { if(okdLeft) return; speed -= 10; okdLeft = 1; } else if(event.keyCode == 39) { if(okdRight) return; speed += 10; okdRight = 1; } }; document.onkeyup = function(event) { console.log(1); if(event.keyCode == 37) { speed += 10; okdLeft = 0; } else if(event.keyCode == 39) { speed -= 10; okdRight = 0; } }; var nextTurn = function(){ donotrun = 1; if(timer !== null) clearInterval(timer); ctx.fillStyle = "black"; ctx.fillRect(0, 0, 512, 512); ctx.strokeStyle = "white"; ctx.strokeRect(40, 432, 432, 40); x += speed; if(x < 60) x = 60; if(x > 452) x = 452; ctx.fillStyle = "white"; ctx.beginPath(); ctx.arc(x, 452, 17, 0, 2*Math.PI); ctx.fill(); turn++; if(turn <= 3){ document.getElementById('scr').innerHTML = scr[turn]; setTimeout(function(){ donotrun = 0; timer = setInterval(drawField, 30); enemySpeed = 1 - turn * 0.1; generateObstacles(); }, 7000); } else{ window.location = "https://game.uncyclopedia.kr/w/index.php?title=%EB%B9%84%EB%B0%805:_%EC%B5%9C%ED%9B%84/%EC%83%81%ED%99%A916/3%EC%B8%B5/%EB%AF%BC%EC%88%98&offset=128"; } } var drawField = function(){ ctx.fillStyle = "black"; ctx.fillRect(0, 0, 512, 512); ctx.strokeStyle = "white"; ctx.strokeRect(40, 432, 432, 40); x += speed; if(x < 60) x = 60; if(x > 452) x = 452; ctx.fillStyle = "white"; ctx.beginPath(); ctx.arc(x, 452, 17, 0, 2*Math.PI); ctx.fill(); ctx.fillStyle = "red"; for(var i=0; i<obstacleList.length; i++){ obstacleList[i].y += 4 * Math.sqrt(1 / enemySpeed); ctx.fillRect(obstacleList[i].x - 10, obstacleList[i].y - 10, 20, 20); if(425 < obstacleList[i].y && obstacleList[i].y < 479 && x-27 < obstacleList[i].x && obstacleList[i].x < x+27){ gameOver(); return; } } }; var generateObstacles = function(){ if(donotrun) return; console.log(enemySpeed); var tmp = { y : 15, x : Math.random() * 480 + 16 } obstacleList.push(tmp); enemySpeed *= 0.98; if(enemySpeed < 0.4 - turn * 0.05){ setTimeout(nextTurn, 4000); return; } setTimeout(generateObstacles, 400 * enemySpeed); } var gameOver = function(){ clearInterval(timer); ctx.fillStyle = "black"; ctx.fillRect(0, 0, 512, 512); ctx.strokeStyle = "white"; ctx.strokeRect(40, 432, 432, 40); x += speed; if(x < 60) x = 60; if(x > 452) x = 452; ctx.fillStyle = "white"; ctx.beginPath(); ctx.arc(x, 452, 17, 0, 2*Math.PI); ctx.fill(); ctx.fillStyle = "red"; ctx.font = "60px Arial"; ctx.textAlign = "center"; ctx.fillText("GAME OVER", 256, 256); setTimeout(function(){ window.location = "https://game.uncyclopedia.kr/w/index.php?title=%EB%B9%84%EB%B0%805:_%EC%B5%9C%ED%9B%84/%EC%83%81%ED%99%A915/%EC%95%84%EC%A7%80%ED%8A%B8&offset=2"; }, 1000); } nextTurn(); } else if(getUrlParameter('offset') == 146){ var password = { // private property _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", // public method for encoding encode : function (input) { var output = ""; var chr1, chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; input = password._utf8_encode(input); while (i < input.length) { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) { enc3 = enc4 = 64; } else if (isNaN(chr3)) { enc4 = 64; } output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4); } return output; }, // public method for decoding decode : function (input) { var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (i < input.length) { enc1 = this._keyStr.indexOf(input.charAt(i++)); enc2 = this._keyStr.indexOf(input.charAt(i++)); enc3 = this._keyStr.indexOf(input.charAt(i++)); enc4 = this._keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) { output = output + String.fromCharCode(chr2); } if (enc4 != 64) { output = output + String.fromCharCode(chr3); } } output = password._utf8_decode(output); return output; }, // private method for UTF-8 encoding _utf8_encode : function (string) { string = string.replace(/\r\n/g,"\n"); var utftext = ""; for (var n = 0; n < string.length; n++) { var c = string.charCodeAt(n); if (c < 128) { utftext += String.fromCharCode(c); } else if((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); } } return utftext; }, // private method for UTF-8 decoding _utf8_decode : function (utftext) { var string = ""; var i = 0; var c = c1 = c2 = 0; while ( i < utftext.length ) { c = utftext.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i+1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; } } // 출처: 스프링연구소(spring-lab) document.getElementById(atob('cHQtbXl0YWxr')).innerHTML = atob('PGEgaHJlZj0iaHR0cHM6Ly9nYW1lLnVuY3ljbG9wZWRpYS5rci93L2luZGV4LnBocD90aXRsZT0lRUIlQjklODQlRUIlQjAlODA1Ol8lRUMlQjUlOUMlRUQlOUIlODQvJUVDJTgzJTgxJUVEJTk5JUE5MTYvMyVFQyVCOCVCNS8lRUIlQUYlQkMlRUMlODglOTgmb2Zmc2V0PTE0Ni4xIj4=') + password.decode('7Yag66Gg') + '</a>'; }