remove obsolete LauncherServer

This commit is contained in:
wish
2022-12-31 01:59:55 +11:00
parent aa3deca70a
commit a0917fdd06
38 changed files with 0 additions and 882 deletions

View File

@@ -1,198 +0,0 @@
*{margin:0; padding:0; font-family:sans-serif!important;}
*[unselectable="on"]{cursor:default; user-select: none; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none;}
a{border:none; outline:none;}
ul{list-style:none;}
img{border-style:none;}
html,body{width:100%; height:100%; overflow:hidden;}
body{background:#092314; font-family:sans-serif; color:#d1c0a5; font-size:14px; line-height:16px;}
.grabbable{position:absolute; left:0; top:0; width:100%; height:100%;}
#main{width:1124px; height:600px; overflow:hidden; position:absolute; left:0; top:0; background-image:url(../img/background.png); background-repeat:no-repeat;}
#game_starting{display:none; position:absolute; left:0; top:0; width:100%; height:100%; background-color:rgba(0,0,0,0.5); background-image:url(../img/start_now.png); background-repeat:no-repeat; background-position:center; z-index:2000;}
#window_controls{width:106px; height:20px; position:absolute; right:10px; top:0; z-index:1000;}
#window_controls div{width:50px; height:20px; position:absolute; top:0; background-color:rgba(0,0,0,0.5); border-radius:0px 0px 5px 5px; cursor:pointer; text-align:center;}
#window_controls div:hover{background-color:rgba(150,150,150,0.3)}
#window_controls .button_min{left:0;}
#window_controls .button_close{right:0;}
#header{width:525px; height:114px; position:absolute; left:0; top:11px; background:no-repeat 0px 27px;}
#header .background{position:absolute; left:0px; top:24px; height:70px; background-color:rgba(0,0,0,0.6); width:550px; border-radius:1px 5px 5px 1px}
#header img{margin-left:17px; position:relative;}
#header p{color:#dcdcdc; position:absolute; left:330px; top:72px;}
#header p.title1 {font-weight:bold; font-size:15px; position: absolute; top:30px}
#header p.title2 {font-weight:bold; font-size:15px; position: absolute; top:48px}
#button_config{width:284px; height:33px; position:absolute; left:137px; bottom:48px; cursor:pointer; background:no-repeat 0px 0px; z-index:1000; background-image:url(../img/button_config.png);}
#button_config:hover{background-image:url(../img/button_config_hover.png);}
#log_outer{width:410px; height:86px; padding:6px 8px; position:absolute; left:65px; bottom:90px; background-color:rgba(0,0,0,0.8); border-radius:3px 3px 3px 3px; border: 1px solid #a6a08a;}
#log_outer .log_inner{display:block; width:410px; height:86px; font-size:12px; line-height:14px; color:#dcdcdc; overflow:hidden; position:absolute;}
#log_outer .log_inner p{width:400px;}
#log_outer .log_inner span.winsock{color:#d9ff07;}
#log_outer .log_inner span.white{color:#ffffff;}
#log_outer .log_inner span.green{color:#28a745;}
#log_outer .log_inner span.red{color:#bd2130;}
#login{width:300px; height:265px; position:absolute; left:129px; top:140px;}
#login .login_button{position:absolute; left:-3px; top:167px; width:300px; height:64px; background-image:url(../img/button_launch.png); cursor:pointer; display:flex; justify-content:center; align-items:center;}
#login .login_button:hover{background-image:url(../img/button_launch_hover.png);}
#login .login_button span{font-size:24px; font-weight:bold; left:113px; top:23px; color:white; cursor:pointer;}
#login .login_save{width:135px; height:12px; position:absolute; left:81px; top:236px; cursor:pointer; color:white;}
#login .login_form{width:254px; height:146px; position:absolute; left:19px; top:0;}
#login .login_form *{color:#fff; font-size:12px; outline:none; border:none; background:none;}
#login .login_form input{position:absolute; width:244px; background-color:rgba(0,0,0,0.6); padding:6px; border:1px solid #a6a08a; border-radius:2px 2px 2px 2px;}
#login .login_form input#username{top:24px;}
#login .login_form input#password{top:74px;}
#login .login_form input#server{top:124px;}
#login .login_form input[type=submit]{width:0; height:0; padding:0; border:0;}
#login .login_form label{position:absolute; font-size:16px;}
#login .login_form label.label_username{top:8px;}
#login .login_form label.label_password{top:58px;}
#login .login_form label.label_server{top:108px;}
#login #processing{display:none; position:absolute; left:-7px; top:-3px; width:307px; height:271px; background-color:rgba(0,0,0,0.8); background-image:url(../img/load.gif); background-position:center; background-size:50px 50px; background-repeat:no-repeat; border-radius:2px 2px 2px 2px; z-index:1;}
#login #processing p{color:#fff; text-align:center; width:100%; position:absolute; left:0; top:160px; z-index:2;}
#char_select{width:490px; height:290px; position:absolute; left:35px; top:115px; color:#313131; display:none;}
#char_select #units{width:398px; height:100px; position:absolute; left:45px; top:50px; background-image:url(../img/button_charsel_char.jpg);}
#char_select #units .unit{display:none; width:398px; height:100px; position:absolute; left:0; cursor:default;}
#char_select #units .unit.active{display:block;}
#char_select .scroll{width:91px; height:25px; position:absolute; left:198px; background-image:url(../img/button_charsel.png); cursor:pointer; z-index:1000;}
#char_select .scroll.up{top:14px;}
#char_select .scroll.down{top:159px; transform:scaleY(-1);}
#char_select .scroll:hover{background-image:url(../img/button_charsel_hover.png);}
#char_select #units .unit *{color:white; font-size:16px; position:absolute;}
#char_select #units .unit img{top:42px; left:18px;}
#char_select #units .unit #char_name{top:15px; font-size:30px; width:100%; text-align:center;}
#char_select #units .unit #char_weapon{top:70px; left:72px; font-weight:bold; width:120px; text-align:center;}
#char_select #units .unit #char_hr{top:43px; left:210px;}
#char_select #units .unit #char_gr{top:43px; left:280px;}
#char_select #units .unit #char_sex{top:43px; left:350px;}
#char_select #units .unit #char_uid{top:58px; left:210px;}
#char_select #units .unit #char_login{top:73px; left:210px;}
#char_select .weapon_text{position:absolute; font-weight:bold; width:120px; top:98px; left:117px; color:white; text-align:center;}
#char_select .auto_login{position:absolute; top:155px; left:50px; color:white; cursor:pointer;}
#char_select .button_add,
#char_select .button_del,
#char_select .button_log{width:130px; height:33px; position:absolute; top:195px; background-image:url(../img/button_option.png); cursor:pointer; z-index:1000; display:flex; justify-content:center; align-items:center;}
#char_select .button_add{left:40px;}
#char_select .button_del{left:179px;}
#char_select .button_log{left:318px;}
#char_select .button_add span,
#char_select .button_del span,
#char_select .button_log span{font-size: 14px; color:white; cursor:pointer;}
#char_select .button_add:hover,
#char_select .button_del:hover,
#char_select .button_log:hover{background-image:url(../img/button_option_hover.png);}
#char_select .button_start{width:300px; height:64px; position:absolute; left:90px; top:229px; background-image:url(../img/button_launch.png); cursor:pointer; z-index:1000; display:flex; justify-content:center; align-items:center;}
#char_select .button_start:hover{background-image:url(../img/button_launch_hover.png);}
#char_select .button_start span{font-size:24px; font-weight:bold; color:white; cursor:pointer;}
#dev{display:none; width:100%; z-index: 10000; position:absolute; bottom:0px;}
#dev input{width:100%; height:20px; font-size: 16px;}
#footer{width:100%; height:39px; position:absolute; left:0; bottom:0; background-color:rgba(0,0,0,0.6); overflow:hidden;}
#footer .link{padding:4px; display:block; z-index:1000; cursor:pointer;float:left;}
#launcher_info_list{width:535px; height:240px; position:absolute; right:38px; padding:5px; top:135px; overflow:hidden; overflow-y:auto; background-color:rgba(0,0,0,0.5); border-radius:3px 3px 3px 3px; border: 1px solid #a6a08a;}
#launcher_info_list .important_info, #launcher_info_list .normal_info{margin-bottom:5px;}
#launcher_info_list .head{width:513px; height:23px; position:relative;}
#launcher_info_list .head .lbl{position:absolute; left:0; top:0; width:513px; height:23px;}
#launcher_info_list .head a{position:absolute; right:10px; top:6px; display:block; width:35px; height:13px; background:no-repeat 0px 0px;}
#launcher_info_list .head a:hover{background-position:0px -13px;}
#launcher_info_list ul.article{margin-left:18px; width:517px; position:relative;}
#launcher_info_list ul.article li{width:517px; position:relative; overflow:hidden; padding:5px 0;}
#launcher_info_list ul.article li div{position:relative; float:left;}
#launcher_info_list ul.article li .date{width:110px;}
#launcher_info_list ul.article li .body{width:340px;}
#launcher_info_list ul.article li .body a{color:#d1c0a5; text-decoration:none;}
#launcher_info_list ul.article li .body a:hover{color:#EFDDC2;}
#launcher_info_list .important_info ul.article li .body a, #launcher_info_list .important_info ul.article li .date{color:#f4c833;}
#launcher_info_list .important_info ul.article li .body a:hover{color:#F8DD81;}
#launcher_info_list ul.article li .icon{width:30px; height:14px; background:no-repeat center center;}
#launcher_info_list a{cursor:pointer;}
#launcher_modal{width:100%; height:100%; position:fixed; left:0; top:0;z-index:1000; display:none; }
#launcher_modal .modal{width:100%; height:100%; position:absolute; left:0; top:0;}
#launcher_modal .dialog{position:absolute; left:282px; top:140px; width:560px; height:320px; background:url(../img/modelbg.jpeg) round;}
#launcher_modal .dialog p{color:#d1c0a5; font-size:18px; line-height:36px; width:100%; position:relative; text-align:center; padding-top:60px;}
#launcher_modal .dialog p.alert{line-height:26px; padding-top:90px; font-size:20px;}
#launcher_modal .dialog p span.uid{font-size:12px;}
#launcher_modal .dialog p span.attention{color:#f4de22;}
#launcher_modal .dialog p span.notes{color:#eb3535; font-size:16px; line-height:20px;}
#launcher_modal .dialog p div.sp{width:100%; height:10px;}
#launcher_modal .dialog .btn_box{width:100%; height:44px; position:absolute; left:0; top:252px;}
#launcher_modal .dialog .btns{text-align:center; margin:0 auto; position:relative; overflow:hidden;}
#launcher_modal .dialog .btns ul{position:relative; left:50%; float:left; list-style:none}
#launcher_modal .dialog .btns ul li{position:relative; left:-50%; float:left; margin-left:33px;}
#launcher_modal .dialog .btns ul li:first-child{margin-left:5px;}
#launcher_modal .dialog .btns ul li div{display:block; width:130px; height:35px; padding-top:9px; position:relative; background:url(../img/button_option.png) no-repeat 0px 0px; text-decoration:none; color:white; font-weight:bold; font-size:18px; line-height:18px; text-align:center; cursor:pointer;}
#launcher_modal .dialog .btns ul li div:hover,
#launcher_modal .dialog .btns ul li div.hover{background:url(../img/button_option_hover.png) no-repeat 0px 0px;}
#launcher_menu{height:86px; position:absolute; left:535px; top:416px; overflow:hidden;}
#launcher_menu .btn{width:82px; height:86px; background:no-repeat 0px 0px; float:left; margin:0 2px; cursor:pointer;}
#launcher_menu .btn:hover{background-position:0px -86px;}
#launcher_menu .btn.manual{background-image:url(../img/manual.png);}
#launcher_menu .btn.pastebin{background-image:url(../img/pastebin.png);}
/* UNUSED
#launcher_bnr{width:533px; height:129px; position:absolute; right:38px; top:30px;}
#launcher_bnr .bnr{width:523px; height:129px; position:absolute; left:0; top:0; background:no-repeat 0px 0px; overflow:hidden;}
#launcher_bnr .bnr img{margin-left:1px;}
#launcher_bnr .bnr .frame{width:523px; height:129px; position:absolute; left:0; top:0; background:no-repeat 0px 0px; cursor:pointer;}
#launcher_bnr .dots{width:10px; position:absolute; right:0; top:0; max-height:129px;}
#launcher_bnr .dots ul{position:relative; width:10px; padding-top:6px;}
#launcher_bnr .dots li{display:block; width:10px; height:10px; padding:6px 0; position:relative;}
#launcher_bnr .dots li .dot{width:10px; height:10px; background:no-repeat 0px 0px; cursor:pointer;}
#launcher_bnr .dots li .dot.crr,
#launcher_bnr .dots li .dot:hover{background-position:0px -10px;}
#launcher_bnr .dots li .dot img{display:none;}
#launcher_info_detail{width:532px; height:423px; position:absolute; right:38px; top:30px; background:no-repeat 0px 0px;}
#launcher_info_detail .article_frame{width:532px; height:423px; position:absolute; left:0; top:0; overflow:hidden; overflow-y:auto;}
#launcher_info_detail .article_frame .article{width:498px; min-height:394px; position:relative; margin:10px 0 10px 13px; padding-top:9px; background-color:#fef5e6; font-family:" Pゴシック", "MS PGothic", sans-serif; font-size:14px; line-height:18px; color:#333333;}
#launcher_info_detail .article_frame .article .article_category{width:498px; height:24px; background:no-repeat 0px 0px; margin-bottom:9px;}
#launcher_info_detail .article_frame .article .newstitle_area{width:468px; background-color:#e8d9b9; padding:4px 0 2px; margin:0 auto 10px;}
#launcher_info_detail .article_frame .article .newstext_area{width:468px; margin:0 auto;}
#launcher_info_detail .btn_back{cursor:pointer; width:160px; height:18px; position:absolute; left:184px; bottom:6px; background:no-repeat 0px 0px;}
#launcher_info_detail .btn_back:hover{background-position:0px -18px;}
#launcher_info_detail a{cursor:pointer;}
#launcher_footer{width:100%; height:39px; position:absolute; left:0; bottom:0; overflow:hidden;}
#launcher_footer .btn{display:block; position:absolute; z-index:1000; cursor:pointer;}
#launcher_footer .btn.capcom{width:101px; height:26px; background:no-repeat 0px 0px; left:31px; top:6px;}
#launcher_footer .btn.cog{width:76px; height:21px; background:no-repeat 0px 0px; left:142px; top:9px;}
#launcher_footer .btn.hangame{display:none;}
#launcher_footer p{color:#a0a0a0; font-size:12px; line-height:12px; position:absolute; left:142px; top:14px;}
#launcher_footer .share{position:absolute; right:36px; top:6px; overflow:hidden; width:136px; height:27px;}
#launcher_footer .share .btn{display:block; background:no-repeat; margin-left:10px; position:relative; float:left; cursor:pointer;}
#launcher_footer .share .btn.tw{width:28px; height:27px; background-position:0px 0px;}
#launcher_footer .share .btn.fb{width:28px; height:27px; background-position:-28px 0px;}
#launcher_footer .share .btn.yt{width:50px; height:21px; margin-top:3px; background-position:-56px -3px;}
.scroll_bar_box{width:10px; position:absolute;}
.scroll_bar_box_base{width:10px; height:100%; position:absolute; right:0; top:0; border-radius:5px; background:#000; opacity:0.4; -moz-opacity:0.4; filter: alpha(opacity=40); -ms-filter:"alpha(opacity=40)";}
.scroll_bar_box_body{width:6px; position:absolute; right:2px; border-radius:3px; background:#535353; transition:background-color 0.2s linear 0; cursor:pointer; opacity:0.8; -moz-opacity:0.8; filter: alpha(opacity=80); -ms-filter:"alpha(opacity=80)";}
.scroll_bar_box_body:hover, .scroll_bar_box_body.active{background:#FFF; transition:background-color 0.4s linear 0;}
.xboxOnly,.ps3Only,.psvOnly,.wiiuOnly{display:none}
body#cog .cogHide,body#cog .nhnOnly{display:none}
body#hangame .nhnHide,body#hangame .cogOnly{display:none}
.spOnly,.iosOnly,.droidOnly{display:none}
.consoleOnly,.nfXboxOnly,.nfPs3Only,.nfPsVOnly{display:none}
.nintendoOnly,.playstation3Only,.playstation4Only,.playstationVitaOnly{display:none}
*/

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -1,144 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="cache-control" content="max-age=604800, stale-while-revalidate=604800">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Monster Hunter Frontier Z Launcher</title>
<link rel="stylesheet" href="css/main.css">
</head>
<body>
<div id="main">
<div class="grabbable" unselectable="on" onselectstart="window.external.beginDrag(true); return false;"></div>
<div id="game_starting"></div>
<div id="window_controls">
<div class="grabbable"></div>
<div class="unselectable button_min" onclick="soundOk(); window.external.minimizeWindow()" onmouseover="soundSel()">__</div>
<div class="unselectable button_close" onclick="soundOk(); window.external.closeWindow()" onmouseover="soundSel()"></div>
</div>
<div id="header">
<div class="grabbable"></div>
<p class="background"></p>
<p class="title1">Monster Hunter</p>
<p class="title2">Frontier Z Launcher</p>
<p class="ver">release ver. 2.017 (Erupe)</p>
<img src="img/logo.png" width="303" height="114">
</div>
<div id="login">
<div id="processing">
<p>Authenticating...</p>
</div>
<div class="login_form">
<form id="login_form" onsubmit="event.preventDefault();doLogin()">
<label for="username" class="unselectable label_username">Erupe ID</label>
<input type="text" id="username" placeholder="Username" onkeypress="soundSel()" onmouseover="soundSel()" onclick="soundOk()">
<label for="password" class="unselectable label_password">Password</label>
<input type="password" id="password" placeholder="Password" onkeypress="soundSel()" onmouseover="soundSel()" onclick="soundOk()">
<label for="server" class="unselectable label_server">Server</label>
<input class="unselectable" type="text" id="server" value="Erupe" readonly>
<input type="submit">
</form>
</div>
<div class="unselectable login_button" onmouseenter="soundSel()" onclick="doLogin()"><span class="unselectable">Log In</span></div>
<div class="unselectable login_save">
<input class="unselectable" type="checkbox" id="login_save"><span id="login_save_text"> Remember Login</span>
</div>
</div>
<div id="char_select">
<div id="units"></div>
<div class="weapon_text">Current Weapon</div>
<div class="scroll up" onmouseover="soundSel()" onclick="soundOk();charselScrollUp()"></div>
<div class="scroll down" onmouseover="soundSel()" onclick="soundOk();charselScrollDown()"></div>
<div class="auto_login" onclick="autoWarning()">
<input type="checkbox" id="auto_box"><span id="auto_text"> Auto-Login</span>
</div>
<div class="button_add" onmouseenter="soundSel()" onclick="soundOk();charselAdd()"><span class="unselectable">Add Character</span></div>
<div class="button_del" onmouseenter="soundSel()" onclick="soundOk();charselDel()"><span class="unselectable">Delete Character</span></div>
<div class="button_log" onmouseenter="soundSel()" onclick="soundOk();charselLog()"><span class="unselectable">Log Out</span></div>
<div class="button_start" onmouseenter="soundSel()" onclick="soundLogin();launch()"><span class="unselectable">Launch</span></div>
</div>
<div class="unselectable" id="log_outer">
<div class="log_inner">
<p id="log_p"></p>
</div>
</div>
<div class="unselectable" id="button_config" onclick="soundOk();window.external.openMhlConfig()" onmouseover="soundSel()"></div>
<div id="launcher_info_list" class="unselectable">
<div class="important_info">
<div class="head">
<p class="lbl">Important Updates</p>
</div>
<ul class="article">
<li>
<div class="date">2022-08-02</div>
<div class="body">
<a
href="javascript:toggleModal('openLink',&quot;https://discord.com/channels/368424389416583169/929509970624532511/1003985850255818762&quot;);"
onclick="soundOk()">Server Update 9 Released!
</a>
</div>
</li>
<li>
<div class="date">2022-05-03</div>
<div class="body">
<a
href="javascript:toggleModal('openLink',&quot;https://discord.com/channels/368424389416583169/929509970624532511/969305400795078656&quot;);"
onclick="soundOk()">Eng 2.0 &amp; Ravi Patch Released!
</a>
</div>
</li>
<li>
<div class="date">2022-04-24</div>
<div class="body">
<a
href="javascript:toggleModal('openLink',&quot;https://discord.com/channels/368424389416583169/929509970624532511/969286397301248050&quot;);"
onclick="soundOk()">Launcher Patch V1.0 Released!
</a>
</div>
</li>
</ul>
</div>
<div class="normal_info">
<div class="head">
<div class="info lbl">Normal Updates</div>
</div>
<ul class="article">
<li>
<div class="date">2022-04-24</div>
<div class="body">
<a
href="javascript:toggleModal('openLink',&quot;https://discord.gg/CFnzbhQ&quot;);"
onclick="soundOk()">Join the community Discord for updates!
</a>
</div>
</li>
</ul>
</div>
</div>
<div id="launcher_menu" class="unselectable">
<div class="manual btn" onmouseenter="soundSel()" onclick="soundOk(); toggleModal('openLink', 'https://zerulight.github.io/MHFZManual/')"></div>
<div class="pastebin btn" onmouseenter="soundSel()" onclick="soundOk(); toggleModal('openLink', 'https://pastebin.com/QqAwZSTC')"></div>
</div>
<div id="footer">
<div class="link unselectable" onclick="toggleModal('openLink', 'https://github.com/ZeruLight/Erupe')"><img src="img/icons/github.png"></div>
<div class="link unselectable" onclick="toggleModal('openLink', 'https://discord.gg/CFnzbhQ')"><img src="img/icons/discord.png"></div>
</div>
<div class="grabbable" id="launcher_modal">
<div class="modal"></div>
<div class="dialog">
<p></p>
<div class="btn_box"><div class="btns unselectable"></div></div>
</div>
</div>
<div class="unselectable" id="dev">
<form action="javascript:void(0);">
<input type="text" id="console">
<input type="submit" value="eval()" onclick="doEval()">
</form>
</div>
</div>
<script src="js/script.js"></script>
</body>
</html>

View File

@@ -1,540 +0,0 @@
var __mhf_launcher = {};
var loginScreen = true;
var loggingIn = false;
var doingAuto = false;
var uids;
var selectedUid;
var firstChar;
var modalState = false;
function soundSel() {
window.external.playSound('IDR_WAV_SEL');
}
function soundOk() {
window.external.playSound('IDR_WAV_OK');
}
function soundPreLogin() {
window.external.playSound('IDR_WAV_PRE_LOGIN');
}
function soundLogin() {
window.external.playSound('IDR_WAV_LOGIN');
}
function soundNiku() {
window.external.playSound('IDR_NIKU');
}
function addLog(text, mode) {
switch (mode) {
case 'winsock':
text = '<span class="winsock">'+text+'</span><br>';
break;
case 'normal':
text = '<span class="white">'+text+'</span><br>';
break;
case 'good':
text = '<span class="green">'+text+'</span><br>';
break;
case 'error':
text = '<span class="red">'+text+'</span><br>';
break;
}
let logText = document.getElementById('log_p');
logText.innerHTML = logText.innerHTML + text;
let logBox = document.getElementsByClassName('log_inner')[0];
logBox.scrollTop = logBox.scrollHeight;
}
function loadAccount() {
let allowed = localStorage.getItem('saving');
if (allowed != 'null' && allowed == 'true') {
document.getElementById('username').value = localStorage.getItem('username');
document.getElementById('password').value = localStorage.getItem('password');
document.getElementById('login_save').checked = true;
let autoEnabled = localStorage.getItem('autologin');
if (autoEnabled != 'null' && autoEnabled == 'true') {
doingAuto = true;
doLogin();
}
}
}
function saveAccount() {
let checkbox = document.getElementById('login_save');
if (checkbox.checked == true) {
let username = document.getElementById('username').value;
let password = document.getElementById('password').value;
if (username[username.length - 1] == '+') {
username = username.slice(0, username.length - 1)
}
localStorage.setItem('username', username);
localStorage.setItem('password', password);
localStorage.setItem('saving', 'true');
} else {
localStorage.removeItem('username');
localStorage.removeItem('password');
localStorage.removeItem('saving');
localStorage.removeItem('uid');
}
}
function createCharItem(name, uid, weapon, hr, gr, date, sex) {
var icon;
const dateObject = new Date(date * 1000);
date = dateObject.toLocaleDateString('en-US');
let dateString = '';
for (var i = 0; i < date.length; i++) {
if (date[i] != '') { // invisible LTR char
dateString += date[i];
}
}
if (sex == 'M') {
sex = "♂";
} else {
sex = "♀";
}
if (hr > 999) {
hr = 999;
}
if (gr > 999) {
gr = 999;
}
switch (weapon) {
case '片手剣':
weapon = 'Sword & Shield';
icon = 'img/icons/ss.png';
break;
case '双剣':
weapon = 'Dual Swords';
icon = 'img/icons/db.png';
break;
case '大剣':
weapon = 'Greatsword';
icon = 'img/icons/gs.png';
break;
case '太刀':
weapon = 'Longsword';
icon = 'img/icons/ls.png';
break;
case 'ハンマー':
weapon = 'Hammer';
icon = 'img/icons/hm.png';
break;
case '狩猟笛':
weapon = 'Hunting Horn';
icon = 'img/icons/hh.png';
break;
case 'ランス':
weapon = 'Lance';
icon = 'img/icons/ln.png';
break;
case 'ガンランス':
weapon = 'Gunlance';
icon = 'img/icons/gl.png';
break;
case '穿龍棍':
weapon = 'Tonfa';
icon = 'img/icons/tf.png';
break;
case 'スラッシュアックスF':
weapon = 'Switch Axe F';
icon = 'img/icons/sa.png';
break;
case 'マグネットスパイク':
weapon = 'Magnet Spike';
icon = 'img/icons/ms.png';
break;
case 'ヘビィボウガン':
weapon = 'Heavy Bowgun';
icon = 'img/icons/hbg.png';
break;
case 'ライトボウガン':
weapon = 'Light Bowgun';
icon = 'img/icons/lbg.png';
break;
case '弓':
weapon = 'Bow';
icon = 'img/icons/bow.png';
break;
default:
weapon = 'Unknown';
icon = 'img/icons/uk.png';
}
let charElem = document.createElement('DIV');
charElem.setAttribute('href', '#');
charElem.id = uid;
charElem.classList.add('unit');
if (firstChar) {
firstChar = false;
selectedUid = uid;
charElem.classList.add('active');
}
let elemName = document.createElement('DIV');
elemName.id = 'char_name';
elemName.innerHTML = name;
charElem.appendChild(elemName);
let elemWeapon = document.createElement('DIV');
elemWeapon.id = 'char_weapon';
elemWeapon.innerHTML = weapon;
charElem.appendChild(elemWeapon);
let elemHr = document.createElement('DIV');
elemHr.id = 'char_hr';
elemHr.innerHTML = 'HR'+hr;
charElem.appendChild(elemHr);
let elemGr = document.createElement('DIV');
elemGr.id = 'char_gr';
elemGr.innerHTML = 'GR'+gr;
charElem.appendChild(elemGr);
let elemSex = document.createElement('DIV');
elemSex.id = 'char_sex';
elemSex.innerHTML = sex;
charElem.appendChild(elemSex);
let elemUid = document.createElement('DIV');
elemUid.id = 'char_uid';
elemUid.innerHTML = 'ID: '+uid;
charElem.appendChild(elemUid);
let elemLastLogin = document.createElement('DIV');
elemLastLogin.id = 'char_login';
elemLastLogin.innerHTML = 'Last Login: '+dateString;
charElem.appendChild(elemLastLogin);
let iconElem = document.createElement('IMG');
iconElem.src = icon;
charElem.appendChild(iconElem);
let unitsElem = document.getElementById('units');
unitsElem.appendChild(charElem);
}
function switchPrompt() {
loginScreen = !loginScreen;
if (loginScreen) {
document.getElementById('units').innerHTML = '';
document.getElementById('char_select').style.display = 'none';
document.getElementById('login').style.display = 'block';
} else { // Character selector
document.getElementById('login').style.display = 'none';
document.getElementById('char_select').style.display = 'block';
try {
// Example data for browser testing
//var charInfo = "<?xml version='1.0' encoding='shift_jis'?><CharacterInfo defaultUid=''><Character name='Cynthia' uid='211111' weapon='双剣' HR='7' GR='998' lastLogin='1645961490' sex='F' /><Character name='狩人申請可能' uid='311111' weapon='大剣' HR='7' GR='0' lastLogin='1650486502' sex='M' /></CharacterInfo>";
var charInfo = window.external.getCharacterInfo();
charInfo = charInfo.split("'").join('"');
charInfo = charInfo.split('&apos;').join("'");
} catch (e) {
addLog('Error getting character info: '+e, 'error');
}
try {
firstChar = true;
uids = new Array();
parser = new DOMParser();
let xml = parser.parseFromString(charInfo, 'text/xml');
let numChars = xml.getElementsByTagName('Character').length;
for (var i = 0; i < numChars; i++) {
let char = xml.getElementsByTagName('Character')[i].attributes;
createCharItem(
char.name.value,
char.uid.value,
char.weapon.value,
char.HR.value,
char.GR.value,
char.lastLogin.value,
char.sex.value
);
uids.push(char.uid.value);
}
} catch (e) {
addLog('Error parsing character info XML: '+e, 'error');
switchPrompt();
return;
}
let uid = localStorage.getItem('uid');
if (uid != 'null' && uids.indexOf(uid) >= 0) {
setUidIndex(uids.indexOf(uid));
}
}
}
function doLogin(option) {
if (loggingIn) {
return;
} else {
loggingIn = true;
}
let username = document.getElementById('username').value;
let password = document.getElementById('password').value;
if (username == '') {
addLog('Please enter Erupe ID!', 'error');
} else if (password == '') {
addLog('Please enter Password!', 'error');
} else {
document.getElementById('processing').style.display = 'block';
soundPreLogin();
addLog('Authenticating...', 'normal');
try {
if (option) {
addLog('Creating new character...', 'normal');
window.external.loginCog(username+'+', password, password);
} else {
window.external.loginCog(username, password, 'test');
}
} catch (e) {
addLog('Error on loginCog: '+e, 'error');
}
checkAuth();
}
}
function checkAuth() {
let loginResult = window.external.getLastAuthResult();
if (loginResult == 'AUTH_PROGRESS') {
setTimeout(checkAuth, 10);
return;
} else if (loginResult == 'AUTH_SUCCESS') {
loggingIn = false;
saveAccount();
addLog('Connected.', 'good');
if (doingAuto) {
let uid = localStorage.getItem('uid');
window.external.selectCharacter(uid, uid);
window.external.exitLauncher();
} else {
addLog('After selecting a character, press [Launch]', 'normal');
switchPrompt();
}
} else {
loggingIn = false;
addLog('Error logging in: '+loginResult+':'+window.external.getSignResult(), 'error');
}
document.getElementById('processing').style.display = 'none';
}
function checkDelete() {
let deleteResult = window.external.getLastAuthResult();
if (deleteResult == 'DEL_PROGRESS') {
setTimeout(checkDelete, 10);
return;
} else if (deleteResult == 'DEL_SUCCESS') {
doLogin(0);
switchPrompt();
toggleModal(0);
}
}
function launch() {
document.getElementById('game_starting').style.display = 'block';
try {
window.external.selectCharacter(selectedUid, selectedUid);
} catch (e) {
addLog('Error selecting character: '+e, 'error');
document.getElementById('game_starting').style.display = 'none';
}
let allowed = localStorage.getItem('saving');
if (allowed != 'null' && allowed == 'true') {
localStorage.setItem('uid', selectedUid);
let autoBox = document.getElementById('auto_box');
if (autoBox.checked) {
localStorage.setItem('autologin', true);
}
}
setTimeout(function () {
window.external.exitLauncher();
}, 3000);
}
function deleteCharacter(id) {
window.external.deleteCharacter(id);
checkDelete();
}
function autoWarning() {
let autoBox = document.getElementById('auto_box');
if (autoBox.checked) {
addLog('Auto-Login is for advanced users, to disable it you will need to clear your IE cache. Uncheck the box now if you are not an advanced user.', 'error');
}
}
function charselScrollUp() {
let index = uids.indexOf(selectedUid) - 1;
if (index < 0) {
index = uids.length - 1;
}
setUidIndex(index);
}
function charselScrollDown() {
let index = uids.indexOf(selectedUid) + 1;
if (index == uids.length) {
index = 0;
}
setUidIndex(index);
}
function setUidIndex(index) {
let units = document.getElementsByClassName('unit');
let numUnits = units.length;
for (var i = 0; i < numUnits; i++) {
units[i].classList.remove('active');
}
selectedUid = uids[index];
document.getElementById(selectedUid).classList.add('active');
}
function toggleModal(preset, url) {
let modal = document.getElementById('launcher_modal');
modalState = !modalState;
if (modalState) {
setModalContent(preset, url);
modal.style.display = 'block';
} else {
modal.style.display = 'none';
}
}
function setModalContent(preset, url) {
let modal = document.getElementById('launcher_modal');
switch (preset) {
case 'openLink':
modal.querySelector('.dialog p').innerHTML = ' \
Are you sure you want to open this URL? \
<br> \
<span class="uid">'+url+'</span> \
<br> \
<div class="sp"></div> \
<span class="attention">This will open in a browser</span> \
';
modal.querySelector('.dialog .btns').innerHTML = ' \
<ul> \
<li> \
<div onmouseover="soundSel()" onclick="soundOk(); window.external.openBrowser(\''+url+'\'); toggleModal(0)">Open</div> \
</li> \
<li> \
<div onmouseover="soundSel()" onclick="soundOk(); toggleModal(0)">Cancel</div> \
</li> \
</ul> \
';
break;
case 'confirmCharDelete':
modal.querySelector('.dialog p').innerHTML = ' \
Are you sure you want to delete your character? \
<br>NAME \
<span class="uid"> (ID: 000000)</span> \
<br> \
<div class="sp"></div> \
<span class="attention">You will not be able to recover this character, \
<br>it will be gone forever. \
</span> \
';
modal.querySelector(".dialog .btns").innerHTML = ' \
<ul> \
<li> \
<div onmouseover="soundSel();" onclick="soundOk(); deleteCharacter(\''+selectedUid+'\')">Yes</div> \
</li> \
<li> \
<div onmouseover="soundSel();" onclick="soundOk(); toggleModal(0)">Cancel</div> \
</li> \
</ul> \
';
break;
case 'addCharNew':
modal.querySelector('.dialog p').innerHTML = ' \
Are you sure you want to add a new character? \
<br> \
<div class="sp"></div> \
<span class="attention">Press [Add Character] to add a new slot.</span> \
';
modal.querySelector('.dialog .btns').innerHTML = ' \
<ul> \
<li> \
<div onmouseover="soundSel()" onclick="soundNiku(); doLogin(1); switchPrompt(); toggleModal(0)">Add Character</div> \
</li> \
<li> \
<div onmouseover="soundSel()" onclick="soundOk(); toggleModal(0)">Cancel</div> \
</li> \
</ul> \
';
break;
default:
return;
}
}
function charselAdd() {
toggleModal('addCharNew');
}
function charselDel() {
toggleModal('confirmCharDelete');
}
function charselLog() {
addLog('Disconnected.', 'error');
addLog('Enter Erupe ID and Password, then press [Log In]', 'normal');
switchPrompt();
}
function doEval() {
try {
addLog(eval(document.getElementById('console').value), 'error');
} catch (e) {
addLog('Error on doEval: '+e, 'error');
}
}
function init() {
document.addEventListener('keypress', function(e) {
switch (e.key) {
case '~':
document.getElementById('dev').style.display = 'block';
break;
case 'Enter':
if (loginScreen) {
doLogin()
} else {
soundLogin();launch()
}
break;
case ',':
if (!loginScreen) {
soundOk();charselScrollUp()
}
break;
case '.':
if (!loginScreen) {
soundOk();charselScrollDown()
}
}
});
let unselectable = document.getElementsByClassName('unselectable');
let unselectableLen = unselectable.length;
for (var i = 0; i < unselectableLen; i++) {
unselectable[i].setAttribute('unselectable', 'on');
unselectable[i].addEventListener('selectstart', function(){return false;});
unselectable[i].addEventListener('mouseover', function(){window.external.beginDrag(false);});
}
let grabbable = document.getElementsByClassName('grabbable');
let grabbableLen = grabbable.length;
for (var i = 0; i < grabbableLen; i++) {
grabbable[i].addEventListener('selectstart', function(){window.external.beginDrag(true);});
grabbable[i].addEventListener('mousedown', function(){window.external.beginDrag(true);});
grabbable[i].addEventListener('mouseup', function(){window.external.beginDrag(true);});
}
document.getElementById('login_save_text').addEventListener('click', function() {
let checkbox = document.getElementById('login_save');
checkbox.checked = !checkbox.checked;
});
document.getElementById('auto_text').addEventListener('click', function() {
let checkbox = document.getElementById('auto_box');
checkbox.checked = !checkbox.checked;
});
document.getElementById('username').focus();
loadAccount();
addLog('Winsock Ver. [2.2]', 'winsock');
addLog('Enter Erupe ID and Password, then press [Log In]', 'normal');
}
init();